From f300cd076f79d5f73d35ae77389db28d451f96f9 Mon Sep 17 00:00:00 2001 From: Christoph Hehl Date: Sun, 10 May 2026 10:46:05 +0200 Subject: [PATCH] br-office-suite --- .env.example | 29 + ...g_API_mit_Installation_Fehlerhandling.docx | Bin 0 -> 889779 bytes README.md | 43 + backend/package-lock.json | 2072 ++++++++++ backend/package.json | 28 + backend/src/config/db.js | 32 + backend/src/config/env.js | 32 + backend/src/db/000_migration_table.sql | 5 + backend/src/db/bootstrap.js | 155 + .../migrations/001_extensions_and_types.sql | 14 + backend/src/db/migrations/002_core_schema.sql | 268 ++ .../003_triggers_views_and_helpers.sql | 89 + .../src/db/migrations/004_rls_policies.sql | 161 + .../src/db/migrations/005_roles_and_seed.sql | 23 + .../migrations/006_prod_login_hardening.sql | 61 + .../src/db/migrations/007_auth_functions.sql | 32 + ...umbers_calendar_and_committee_defaults.sql | 47 + ...08_case_type_catalog_and_case_workflow.sql | 52 + .../009_calendar_personal_events_and_sync.sql | 28 + .../010_case_type_catalog_and_dropdowns.sql | 54 + .../011_meeting_number_generator.sql | 52 + ...2_agenda_item_pool_and_case_number_fix.sql | 30 + ...genda_numbers_case_links_and_decisions.sql | 62 + .../014_decision_number_generator.sql | 38 + .../015_document_item_deleted_at_backfill.sql | 5 + .../016_meeting_protocol_template.sql | 56 + .../db/migrations/017_document_versioning.sql | 55 + .../018_meeting_decision_report_template.sql | 46 + .../db/migrations/019_committee_member.sql | 24 + backend/src/db/migrations/020_task_id.sql | 6 + .../src/db/migrations/021_meeting_quorum.sql | 16 + .../db/migrations/022_permissions_matrix.sql | 586 +++ backend/src/db/migrations/023_finance.sql | 197 + .../src/db/migrations/024_decision_voting.sql | 175 + .../src/db/migrations/025_kummerkasten.sql | 82 + ...6_remove_kummerkasten_default_duration.sql | 2 + ...7_remove_kummerkasten_duration_minutes.sql | 2 + .../028_finance_invoice_lines_tax_codes.sql | 180 + .../db/migrations/029_department_catalog.sql | 95 + .../migrations/030_conf_level_oeffentlich.sql | 12 + ...1_document_categories_public_documents.sql | 152 + .../032_public_documents_password.sql | 8 + .../033_public_documents_intro_default.sql | 4 + .../034_comment_protocol_toggle.sql | 6 + .../035_meeting_protocol_attendees.sql | 18 + .../036_agenda_item_return_workflow.sql | 49 + ...037_agenda_item_parent_child_followups.sql | 45 + .../038_agenda_item_followup_klaerung.sql | 23 + .../039_template_html_editor_assets.sql | 80 + .../040_formular_editor_navigation.sql | 4 + backend/src/middleware/auth.js | 18 + backend/src/middleware/errorHandler.js | 4 + backend/src/middleware/rbac.js | 38 + backend/src/middleware/security.js | 20 + backend/src/middleware/upload.js | 5 + backend/src/middleware/validate.js | 10 + backend/src/modules/agenda-items/routes.js | 385 ++ backend/src/modules/audit/routes.js | 24 + backend/src/modules/auth/routes.js | 255 ++ backend/src/modules/auth/schemas.js | 27 + backend/src/modules/auth/service.js | 165 + backend/src/modules/calendar/ics.js | 244 ++ backend/src/modules/calendar/routes.js | 759 ++++ backend/src/modules/cases/routes.js | 998 +++++ backend/src/modules/comments/routes.js | 328 ++ backend/src/modules/committees/routes.js | 602 +++ backend/src/modules/crudFactory.js | 92 + backend/src/modules/dashboard/routes.js | 32 + backend/src/modules/deadlines/routes.js | 23 + backend/src/modules/decisions/routes.js | 989 +++++ backend/src/modules/departments/routes.js | 276 ++ .../src/modules/document-categories/routes.js | 264 ++ backend/src/modules/documents/routes.js | 897 +++++ backend/src/modules/finance/routes.js | 937 +++++ backend/src/modules/kummerkasten/routes.js | 375 ++ backend/src/modules/meetings/routes.js | 1754 +++++++++ backend/src/modules/notifications/routes.js | 348 ++ backend/src/modules/permissions/routes.js | 269 ++ backend/src/modules/reports/routes.js | 146 + backend/src/modules/tasks/routes.js | 435 ++ backend/src/modules/tasks/schemas.js | 46 + backend/src/modules/templates/routes.js | 402 ++ backend/src/modules/users/routes.js | 22 + backend/src/server.js | 79 + backend/src/services/accessControl.js | 120 + backend/src/services/clamav.js | 8 + backend/src/services/mail.js | 57 + backend/src/services/meetingDecisionReport.js | 379 ++ backend/src/services/meetingProtocol.js | 776 ++++ backend/src/services/storage.js | 119 + backend/src/services/totp.js | 65 + backend/src/services/webauthn.js | 148 + backend/src/utils/audit.js | 9 + backend/src/utils/jwt.js | 33 + database/README.md | 12 + .../migrations/001_extensions_and_types.sql | 14 + database/migrations/002_core_schema.sql | 268 ++ .../003_triggers_views_and_helpers.sql | 89 + database/migrations/004_rls_policies.sql | 161 + database/migrations/005_roles_and_seed.sql | 23 + .../migrations/006_prod_login_hardening.sql | 32 + database/migrations/007_auth_functions.sql | 32 + ...umbers_calendar_and_committee_defaults.sql | 47 + ...08_case_type_catalog_and_case_workflow.sql | 52 + .../009_calendar_personal_events_and_sync.sql | 28 + .../010_case_type_catalog_and_dropdowns.sql | 54 + .../011_meeting_number_generator.sql | 52 + ...2_agenda_item_pool_and_case_number_fix.sql | 30 + ...genda_numbers_case_links_and_decisions.sql | 62 + .../014_decision_number_generator.sql | 38 + .../015_document_item_deleted_at_backfill.sql | 5 + .../016_meeting_protocol_template.sql | 56 + .../migrations/017_document_versioning.sql | 55 + .../018_meeting_decision_report_template.sql | 46 + database/migrations/019_committee_member.sql | 23 + database/migrations/020_task_id.sql | 6 + database/migrations/021_meeting_quorum.sql | 16 + .../migrations/022_permissions_matrix.sql | 586 +++ database/migrations/023_finance.sql | 197 + database/migrations/024_decision_voting.sql | 175 + database/migrations/025_kummerkasten.sql | 82 + ...6_remove_kummerkasten_default_duration.sql | 2 + ...7_remove_kummerkasten_duration_minutes.sql | 2 + .../028_finance_invoice_lines_tax_codes.sql | 180 + .../migrations/029_department_catalog.sql | 95 + .../migrations/030_conf_level_oeffentlich.sql | 12 + ...1_document_categories_public_documents.sql | 152 + .../032_public_documents_password.sql | 8 + .../033_public_documents_intro_default.sql | 4 + .../034_comment_protocol_toggle.sql | 6 + .../035_meeting_protocol_attendees.sql | 18 + .../036_agenda_item_return_workflow.sql | 49 + ...037_agenda_item_parent_child_followups.sql | 45 + .../038_agenda_item_followup_klaerung.sql | 23 + .../039_template_html_editor_assets.sql | 80 + .../040_formular_editor_navigation.sql | 4 + docker-compose.local.yml | 52 + docs/DEPLOYMENT.md | 22 + docs/SECURITY.md | 23 + .../dist/assets/br-office-logo-DlHO8fHZ.png | Bin 0 -> 798090 bytes frontend/dist/assets/index-BkJ2qG11.css | 1 + frontend/dist/assets/index-DfTZCsJJ.js | 1818 +++++++++ frontend/dist/index.html | 13 + frontend/index.html | 12 + frontend/package-lock.json | 3489 +++++++++++++++++ frontend/package.json | 22 + frontend/src/App.jsx | 124 + frontend/src/assets/br-office-logo.png | Bin 0 -> 798090 bytes frontend/src/components/CrudPage.jsx | 183 + frontend/src/components/Layout.jsx | 438 +++ frontend/src/components/LookupModal.jsx | 44 + frontend/src/components/SectionCard.jsx | 14 + frontend/src/lib/access.js | 27 + frontend/src/lib/api.js | 247 ++ frontend/src/lib/auth.js | 55 + frontend/src/main.jsx | 13 + frontend/src/pages/AgendaItemsPage.jsx | 345 ++ frontend/src/pages/AuditPage.jsx | 24 + frontend/src/pages/CalendarPage.jsx | 1181 ++++++ frontend/src/pages/CasesPage.jsx | 1086 +++++ frontend/src/pages/CommentsPage.jsx | 402 ++ frontend/src/pages/CommitteesPage.jsx | 565 +++ frontend/src/pages/DashboardPage.jsx | 244 ++ frontend/src/pages/DeadlinesPage.jsx | 866 ++++ frontend/src/pages/DecisionsPage.jsx | 1181 ++++++ frontend/src/pages/DepartmentsPage.jsx | 332 ++ frontend/src/pages/DocumentCategoriesPage.jsx | 299 ++ frontend/src/pages/DocumentsPage.jsx | 845 ++++ frontend/src/pages/FinancePage.jsx | 674 ++++ frontend/src/pages/FinanceTaxCodesPage.jsx | 225 ++ frontend/src/pages/KummerkastenAdminPage.jsx | 267 ++ frontend/src/pages/KummerkastenPage.jsx | 377 ++ frontend/src/pages/Layout.jsx | 171 + frontend/src/pages/LoginPage.jsx | 493 +++ frontend/src/pages/MeetingsPage.jsx | 1913 +++++++++ frontend/src/pages/NotificationsPage.jsx | 303 ++ frontend/src/pages/PermissionsPage.jsx | 331 ++ .../src/pages/PublicDocumentsAdminPage.jsx | 223 ++ frontend/src/pages/PublicDocumentsPage.jsx | 208 + frontend/src/pages/ReportsPage.jsx | 112 + frontend/src/pages/SecurityPage.jsx | 68 + frontend/src/pages/TasksPage.jsx | 791 ++++ frontend/src/pages/TemplatesPage.jsx | 590 +++ frontend/src/pages/UsersPage.jsx | 406 ++ frontend/src/styles.css | 842 ++++ frontend/vite.config.js | 3 + 186 files changed, 43202 insertions(+) create mode 100644 .env.example create mode 100644 BR-Office-Suite_Handbuch_Testbeschreibung_API_mit_Installation_Fehlerhandling.docx create mode 100644 README.md create mode 100644 backend/package-lock.json create mode 100644 backend/package.json create mode 100644 backend/src/config/db.js create mode 100644 backend/src/config/env.js create mode 100644 backend/src/db/000_migration_table.sql create mode 100644 backend/src/db/bootstrap.js create mode 100644 backend/src/db/migrations/001_extensions_and_types.sql create mode 100644 backend/src/db/migrations/002_core_schema.sql create mode 100644 backend/src/db/migrations/003_triggers_views_and_helpers.sql create mode 100644 backend/src/db/migrations/004_rls_policies.sql create mode 100644 backend/src/db/migrations/005_roles_and_seed.sql create mode 100644 backend/src/db/migrations/006_prod_login_hardening.sql create mode 100644 backend/src/db/migrations/007_auth_functions.sql create mode 100644 backend/src/db/migrations/008_case_numbers_calendar_and_committee_defaults.sql create mode 100644 backend/src/db/migrations/008_case_type_catalog_and_case_workflow.sql create mode 100644 backend/src/db/migrations/009_calendar_personal_events_and_sync.sql create mode 100644 backend/src/db/migrations/010_case_type_catalog_and_dropdowns.sql create mode 100644 backend/src/db/migrations/011_meeting_number_generator.sql create mode 100644 backend/src/db/migrations/012_agenda_item_pool_and_case_number_fix.sql create mode 100644 backend/src/db/migrations/013_agenda_numbers_case_links_and_decisions.sql create mode 100644 backend/src/db/migrations/014_decision_number_generator.sql create mode 100644 backend/src/db/migrations/015_document_item_deleted_at_backfill.sql create mode 100644 backend/src/db/migrations/016_meeting_protocol_template.sql create mode 100644 backend/src/db/migrations/017_document_versioning.sql create mode 100644 backend/src/db/migrations/018_meeting_decision_report_template.sql create mode 100644 backend/src/db/migrations/019_committee_member.sql create mode 100644 backend/src/db/migrations/020_task_id.sql create mode 100644 backend/src/db/migrations/021_meeting_quorum.sql create mode 100644 backend/src/db/migrations/022_permissions_matrix.sql create mode 100644 backend/src/db/migrations/023_finance.sql create mode 100644 backend/src/db/migrations/024_decision_voting.sql create mode 100644 backend/src/db/migrations/025_kummerkasten.sql create mode 100644 backend/src/db/migrations/026_remove_kummerkasten_default_duration.sql create mode 100644 backend/src/db/migrations/027_remove_kummerkasten_duration_minutes.sql create mode 100644 backend/src/db/migrations/028_finance_invoice_lines_tax_codes.sql create mode 100644 backend/src/db/migrations/029_department_catalog.sql create mode 100644 backend/src/db/migrations/030_conf_level_oeffentlich.sql create mode 100644 backend/src/db/migrations/031_document_categories_public_documents.sql create mode 100644 backend/src/db/migrations/032_public_documents_password.sql create mode 100644 backend/src/db/migrations/033_public_documents_intro_default.sql create mode 100644 backend/src/db/migrations/034_comment_protocol_toggle.sql create mode 100644 backend/src/db/migrations/035_meeting_protocol_attendees.sql create mode 100644 backend/src/db/migrations/036_agenda_item_return_workflow.sql create mode 100644 backend/src/db/migrations/037_agenda_item_parent_child_followups.sql create mode 100644 backend/src/db/migrations/038_agenda_item_followup_klaerung.sql create mode 100644 backend/src/db/migrations/039_template_html_editor_assets.sql create mode 100644 backend/src/db/migrations/040_formular_editor_navigation.sql create mode 100644 backend/src/middleware/auth.js create mode 100644 backend/src/middleware/errorHandler.js create mode 100644 backend/src/middleware/rbac.js create mode 100644 backend/src/middleware/security.js create mode 100644 backend/src/middleware/upload.js create mode 100644 backend/src/middleware/validate.js create mode 100644 backend/src/modules/agenda-items/routes.js create mode 100644 backend/src/modules/audit/routes.js create mode 100644 backend/src/modules/auth/routes.js create mode 100644 backend/src/modules/auth/schemas.js create mode 100644 backend/src/modules/auth/service.js create mode 100644 backend/src/modules/calendar/ics.js create mode 100644 backend/src/modules/calendar/routes.js create mode 100644 backend/src/modules/cases/routes.js create mode 100644 backend/src/modules/comments/routes.js create mode 100644 backend/src/modules/committees/routes.js create mode 100644 backend/src/modules/crudFactory.js create mode 100644 backend/src/modules/dashboard/routes.js create mode 100644 backend/src/modules/deadlines/routes.js create mode 100644 backend/src/modules/decisions/routes.js create mode 100644 backend/src/modules/departments/routes.js create mode 100644 backend/src/modules/document-categories/routes.js create mode 100644 backend/src/modules/documents/routes.js create mode 100644 backend/src/modules/finance/routes.js create mode 100644 backend/src/modules/kummerkasten/routes.js create mode 100644 backend/src/modules/meetings/routes.js create mode 100644 backend/src/modules/notifications/routes.js create mode 100644 backend/src/modules/permissions/routes.js create mode 100644 backend/src/modules/reports/routes.js create mode 100644 backend/src/modules/tasks/routes.js create mode 100644 backend/src/modules/tasks/schemas.js create mode 100644 backend/src/modules/templates/routes.js create mode 100644 backend/src/modules/users/routes.js create mode 100644 backend/src/server.js create mode 100644 backend/src/services/accessControl.js create mode 100644 backend/src/services/clamav.js create mode 100644 backend/src/services/mail.js create mode 100644 backend/src/services/meetingDecisionReport.js create mode 100644 backend/src/services/meetingProtocol.js create mode 100644 backend/src/services/storage.js create mode 100644 backend/src/services/totp.js create mode 100644 backend/src/services/webauthn.js create mode 100644 backend/src/utils/audit.js create mode 100644 backend/src/utils/jwt.js create mode 100644 database/README.md create mode 100644 database/migrations/001_extensions_and_types.sql create mode 100644 database/migrations/002_core_schema.sql create mode 100644 database/migrations/003_triggers_views_and_helpers.sql create mode 100644 database/migrations/004_rls_policies.sql create mode 100644 database/migrations/005_roles_and_seed.sql create mode 100644 database/migrations/006_prod_login_hardening.sql create mode 100644 database/migrations/007_auth_functions.sql create mode 100644 database/migrations/008_case_numbers_calendar_and_committee_defaults.sql create mode 100644 database/migrations/008_case_type_catalog_and_case_workflow.sql create mode 100644 database/migrations/009_calendar_personal_events_and_sync.sql create mode 100644 database/migrations/010_case_type_catalog_and_dropdowns.sql create mode 100644 database/migrations/011_meeting_number_generator.sql create mode 100644 database/migrations/012_agenda_item_pool_and_case_number_fix.sql create mode 100644 database/migrations/013_agenda_numbers_case_links_and_decisions.sql create mode 100644 database/migrations/014_decision_number_generator.sql create mode 100644 database/migrations/015_document_item_deleted_at_backfill.sql create mode 100644 database/migrations/016_meeting_protocol_template.sql create mode 100644 database/migrations/017_document_versioning.sql create mode 100644 database/migrations/018_meeting_decision_report_template.sql create mode 100644 database/migrations/019_committee_member.sql create mode 100644 database/migrations/020_task_id.sql create mode 100644 database/migrations/021_meeting_quorum.sql create mode 100644 database/migrations/022_permissions_matrix.sql create mode 100644 database/migrations/023_finance.sql create mode 100644 database/migrations/024_decision_voting.sql create mode 100644 database/migrations/025_kummerkasten.sql create mode 100644 database/migrations/026_remove_kummerkasten_default_duration.sql create mode 100644 database/migrations/027_remove_kummerkasten_duration_minutes.sql create mode 100644 database/migrations/028_finance_invoice_lines_tax_codes.sql create mode 100644 database/migrations/029_department_catalog.sql create mode 100644 database/migrations/030_conf_level_oeffentlich.sql create mode 100644 database/migrations/031_document_categories_public_documents.sql create mode 100644 database/migrations/032_public_documents_password.sql create mode 100644 database/migrations/033_public_documents_intro_default.sql create mode 100644 database/migrations/034_comment_protocol_toggle.sql create mode 100644 database/migrations/035_meeting_protocol_attendees.sql create mode 100644 database/migrations/036_agenda_item_return_workflow.sql create mode 100644 database/migrations/037_agenda_item_parent_child_followups.sql create mode 100644 database/migrations/038_agenda_item_followup_klaerung.sql create mode 100644 database/migrations/039_template_html_editor_assets.sql create mode 100644 database/migrations/040_formular_editor_navigation.sql create mode 100644 docker-compose.local.yml create mode 100644 docs/DEPLOYMENT.md create mode 100644 docs/SECURITY.md create mode 100644 frontend/dist/assets/br-office-logo-DlHO8fHZ.png create mode 100644 frontend/dist/assets/index-BkJ2qG11.css create mode 100644 frontend/dist/assets/index-DfTZCsJJ.js create mode 100644 frontend/dist/index.html create mode 100644 frontend/index.html create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/src/App.jsx create mode 100644 frontend/src/assets/br-office-logo.png create mode 100644 frontend/src/components/CrudPage.jsx create mode 100644 frontend/src/components/Layout.jsx create mode 100644 frontend/src/components/LookupModal.jsx create mode 100644 frontend/src/components/SectionCard.jsx create mode 100644 frontend/src/lib/access.js create mode 100644 frontend/src/lib/api.js create mode 100644 frontend/src/lib/auth.js create mode 100644 frontend/src/main.jsx create mode 100644 frontend/src/pages/AgendaItemsPage.jsx create mode 100644 frontend/src/pages/AuditPage.jsx create mode 100644 frontend/src/pages/CalendarPage.jsx create mode 100644 frontend/src/pages/CasesPage.jsx create mode 100644 frontend/src/pages/CommentsPage.jsx create mode 100644 frontend/src/pages/CommitteesPage.jsx create mode 100644 frontend/src/pages/DashboardPage.jsx create mode 100644 frontend/src/pages/DeadlinesPage.jsx create mode 100644 frontend/src/pages/DecisionsPage.jsx create mode 100644 frontend/src/pages/DepartmentsPage.jsx create mode 100644 frontend/src/pages/DocumentCategoriesPage.jsx create mode 100644 frontend/src/pages/DocumentsPage.jsx create mode 100644 frontend/src/pages/FinancePage.jsx create mode 100644 frontend/src/pages/FinanceTaxCodesPage.jsx create mode 100644 frontend/src/pages/KummerkastenAdminPage.jsx create mode 100644 frontend/src/pages/KummerkastenPage.jsx create mode 100644 frontend/src/pages/Layout.jsx create mode 100644 frontend/src/pages/LoginPage.jsx create mode 100644 frontend/src/pages/MeetingsPage.jsx create mode 100644 frontend/src/pages/NotificationsPage.jsx create mode 100644 frontend/src/pages/PermissionsPage.jsx create mode 100644 frontend/src/pages/PublicDocumentsAdminPage.jsx create mode 100644 frontend/src/pages/PublicDocumentsPage.jsx create mode 100644 frontend/src/pages/ReportsPage.jsx create mode 100644 frontend/src/pages/SecurityPage.jsx create mode 100644 frontend/src/pages/TasksPage.jsx create mode 100644 frontend/src/pages/TemplatesPage.jsx create mode 100644 frontend/src/pages/UsersPage.jsx create mode 100644 frontend/src/styles.css create mode 100644 frontend/vite.config.js diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..e8d0004 --- /dev/null +++ b/.env.example @@ -0,0 +1,29 @@ +NODE_ENV=development +PORT=8080 +CORS_ORIGIN=http://localhost:5173 +JWT_ACCESS_SECRET=change-me-access +JWT_REFRESH_SECRET=change-me-refresh +COOKIE_SECURE=false +FORCE_MFA_FOR_PRIVILEGED=true +RP_ID=localhost +RP_ORIGIN=http://localhost:5173 +DATABASE_URL=postgres://br_app:change_me@localhost:5432/br_office +UPLOAD_DIR=./uploads +STORAGE_PROVIDER=local +S3_ENDPOINT=http://localhost:9000 +S3_BUCKET=br-office +S3_ACCESS_KEY=minio +S3_SECRET_KEY=miniosecret +CLAMAV_HOST=localhost +CLAMAV_PORT=3310 +VITE_API_BASE_URL=http://localhost:8080/api + +FILE_ENCRYPTION_ENABLED=true +FILE_ENCRYPTION_KEY=please-change-this-encryption-key +SMTP_HOST=smtp.example.com +SMTP_PORT=587 +SMTP_USER=smtp-user@example.com +SMTP_PASS=please-change-this-password +SMTP_FROM=BR Office +SMTP_SECURE=false +SMTP_REQUIRE_TLS=true diff --git a/BR-Office-Suite_Handbuch_Testbeschreibung_API_mit_Installation_Fehlerhandling.docx b/BR-Office-Suite_Handbuch_Testbeschreibung_API_mit_Installation_Fehlerhandling.docx new file mode 100644 index 0000000000000000000000000000000000000000..df892a05b973650388a043e1e90867de2fddeb4a GIT binary patch literal 889779 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%0DS7odiOls;^Z$TbjEM6*qkG0Sq7z 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%0A&1tUeh82xfIJ47TB+gDaT<(OLtZs`^u zxe--?F{bU+HNdKmo7gfg3gF=}x7p8>6QzBEWI7c!!vcE^4d)3HYbdEHQ|qEKTiTW( zb$dSf=2G!$zt%^@0ZE>pBc2B1?A9E=Lj==2EwKldgTTuDm6iU{jhlgz)WV)})jvL( zW({~zsN0FUop8~!-CqNQ2J|V-WrUX{O3_DOr8y#PM;4tz$Y4O)Rb#wl4pz#y)C7yb znwvBH{9dxNYeIuFl~p3TS{l;H(~S%{-C&WWf^fdvIA{aLpgar5>=C}^$Q=o2A*aT^ zSzm2LBj@zDE{PaEf)iJ?3%Vpk-R@b{@@|3UjnM%P2|7{l%&`oa8>4~Y`mkO13d^o5 z)jC5Ey#`NIt4+diMOlfE>;6GSJrn=tGrgR*SC$PWgvxVRyW{&CBy`#1MlyX6oH}KL zJtLiErKq099=uFNCK{~~c0=WrjVR%ekqsFcnTp5e69wMG(FFO~hkm0xxnVEHyHO2X zaa-?t4L|;Bf79rZ$+cWKbq7=xqqE*WyDXVltQ;v~>_w~UHO`lrt}`$+&*<5(R7D+~TzQ>@ zu1#$?_cMT%PJQehRBtStVD?*q&nI*)$}o45|Fs4R$$dTkkKM2Ojr#PJ?wFbcG$_k2C{t<8d z4S%-7zLB9B=j6f0B9(>v$qF5wHo20b`zq4&LP=uzbA4WL4;JiKnXad^YjnZ^b60` zBk;v9e8-Gz*Cy_58XFr|_3X)M1yMggF>i!^X;ppN&lao0u%v3TyJQ9?28da``wUN? zO5n5d)7826s^e^nFE7Ou!VmFr2KxJRmlRJX8Iz>s_3J%$U%Y;;qbQtEXhStYUh$Pr z`e}ps_6|y3&TeWOOiJ|a`$JCU&Jx*#07l7x+;x10=?21a@X=``c~N?r5q^9e3A8L% zu>_(2lWK5&;OL~6c7d7z@8+5 z!|?K;iVC$W#PeT!4&Z!+7B-r1aGqMNR`5{OdBKGDiK1f8Ur6=3VG0~5NUf}mXXcDY z(_T1Bc_xr}CQjR4ZMOrk<}r1p9k6^s4i+Eh$GiCL;DLAyI=aCl1smRzs34-bH90$p zkMkc#VcoR~uez?hKwkSeoo{aQD_IJy`&rC+wsn|_@P4{c#%OpliW5K=pG&|_&MGv) za>C)P(M7NwY5C|w?}V8j+7!)zr&ENMr%_w#`U4#NRW{bLhj zrEF5bnTh|rUuP@owY9RyY2-mgMUgX@vVizy#>%&;AR`m4C;3tmUUzuZ9+8sE+e#?So)|fxXY#lIN5SaHXoI4aWgQ==8q2bP=N$(Zl`ae?d z0A7+~b1vsTEr2Voc~(fjmib=mC8grD(e2sL(b1u$#hm->-;?W0m*oKU2mvIQdXAHZ)Ge`uT5UzWZ2(X$b_u}2M^2ju;y@^)eegY2I5l}kFQ+;I zYX{eXx;?Pn7Ff}02cwS za*}UCY%Gt@B3*DlN9VUl8VbDd&(UPx!lUk+-PuNJ1!2al|D^#bZE>5P@BtJsT3KD8 zxVKx5NPuYqOL4x@bA~Uwt2h+|ZMQMAd=!5`k`MZM|D}-9tCTnt|*stqPyn@;C8^lgWEXVPz?fZrw)}apXMZ9^Cyr>Ai9TXxf;JPU9QEBHT7ZfDzsJ>C<-Nq!SiBOuFhNwJcHX+&* zeTidWd}MFh_dbQNql03KBK6FUOj1EzN?!rFiHbagbY8&~}z+D1X5}j$AHEe&&;yHU)jD$l#Y=4~>pi1Jr0$mR~`? zhS^Vp�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 )8- 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

)lOya-^3Lltp`u&Qg{(K}C@uox0~q4k2z~QU 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

nN4q40+NGrUfx5Z;~53`}qYmWNbF_!xpOO zd0B(yJI6{@9XricbH`7^w=I9x^NM0V_FyLn;^zm8C#9O54^w*S)7GpHa{HZS>3P*- zR^K__cec^+Y>lokT|!-(m6mQ2RozX_y`)@(-k?i&^eoZi~*8S0GQE zTSMfAWKy7E1=7_rFRF~$X6zKAg%yS*`d?6VSv)Q#&Ve8~-O!HxnXc^anr0I}-zDW# zq>1ms0F3k&kb)u{)8OsK*JdED3{A)r0J@7L_m#q+Wo%JZsi{X6Gq3hcg!3<7?q-7+ z6d4HPr<=a*f}i8>ec*j`Ugk9pjYc!SD$fb~`s({UfO(WSuTSr^Rg{*b9fd620LatN z)%-i&d-C$_S9G$#`eUAxW8@*^;^JVIEN&5bBwActygs@0VR@OW*s%EGqhp)jwz4+U zZmZyNu4HGDZ2hX$Uc`jRIZ~F65_b{jo4k??gt?Y@2^M-y+I!GIsH?0Urj`5rqkGiv zLv#9YXY{ohemUb2b2v@F?A+Y6DF^qOe^5{)^Q$-wSpY>}O%>alULu_S^y!mEpw4Y5 z)cvkG3Sf>DiN|>J@uR)3XW~sPQ%~ zDfpu-VxBw=c|K!(F)mAy3~;R#Lg8%Is)@0&vAH>v&e}$=(k)|{b-I$p762J}oJX0a zF>90R^t_O5&hJOzm&L`&z}k<(8H2mGbEjAgnSzDuF2+$aBHfk0qvaGa8IZB!sU{3G z2hA*Jnb!pJ@#j~g9dj%=4%BA5MuCkuS?qQdF`1K_TLQ%g}+s zp5bg0E}V2g2E@NCT~;4^ezQ1S!gAM~8W?gS+nyvoE)+&OsnBKdOxK^yu7L2(GiWyN zrb2%6jLSmAcff_7yx$DQD`l9=kBBBKK0%aw^rNFdm1Nv`6lXT)QD_J>>ud-J#l)k4 zI~tT~pz(42GPJs>V2Tl_E`cT_Yb~+3L!GJq?f~br9*J+v>;(kzR)#d3z-O_Y{ns7S zU%XUmjAF@f^v8-M3kl_YheuGU{oa`dC_i;lyB)vt>76<==RZ&VC0=pXX9k1MTOZsJn#6~45d zr*AvL1o!VdepHNUsHey@*QjeN+K5)#Nq2jzmUescoCwD}(`^4Cc`q5&mjesOu%Qk@ zBxS}v5yaN*2C|G%+w-4-R=y+@RqX)_1BPWVfv-H1l09?< z5*(eKN8_M$!<*3VQY)lb2e70_!mpDKsC2Say?ecGlYmZ^U`SbTFPpx)QL)}`lHZS1 z#*9fk6?=te6Ho*1eWhKClUxG<{w76{(<~hyTN-mDiQ>haNB%IRL;%;VPTbaJKxj(n1 z+^B+1Z1&5@NOg`Gb-^we*8p*`o`jn>?Jsh2F_|*Tm#|pqep3i&rz6Q)+E&#v*~a@5 zD>V==O{ejJn+GRlPn@8MyM05|Af&QWi*{>XH|L>xCe$D?or`@@-sj@h7u)siA_m^B z2(lrrRDO6~U~N$v=kSkev-@jHC$?FpL2cMy9wI z2inX0#CtVCmF99X9l^WhR!p+MYR~sSb1f0K;Z|(7!iI=yK)oxXhRsUF(_Uk5K{W&8 z5gl9IR>tlGmeS=SlaiBotidB6y4I60BWY#-9q+u^01HG>C+JSuD|Aj+rp>e4hLeP}^YaTL zmiHZx3j-J<3&?nL@sgA?B)azNfQkg61DUE>fB(Y<`>@HG75SIDSNF+#M)7y5yiuJ9 zrdTP2x{{7&svJDe>$XXN!C`_VJ;6Vs0-=6>b^-0{DWnY-&sao1;+*g8+?*b*-gx#i zZA}mg4X2C{o7BhYVe*2VvIjZoPPHboIi`gw?vy!5ayTECDm(O?)*Gr6;=KX76rLhk zp=bG8xcq7U`{h|v^~jASWRMC#07giLx!w}j_>`(v(pM=&B>v?!0*6 z{-tk$RYHmP09`0GNj&AFuaAh6qtjSS;LiRWG>Qa}!-Cns_q)48(R~|&_+PfTWs_rsk>jJNkm$=(UDh$iQE-I^N{KctqcMn@1LF~Wr9|*=Tw%e_bI$}tKR%K zae$4j;vXO9W5h7(CFXn4bxnWZ05~hk=i7bP@8xck5-%s+rqvy2r8vG-Fk_z{s68dhQ;i+* z$C@8?42kFe8v&MN_QBc)iN6F3BYdlHK1$Kcus{B%hKK$1y3Azwd%KP z3A+F$#;c52{ach+RF#VY%}7r@06Bgi)A_zu#t*OH8~?`;+(-r5wa6tDgBc z!L4i7z9lR|T|@U1|3BR(|2G|Bk4~oe(dRb=f+%@|w{L3SD23d8_)kzv0|XQR000O8 z_fo1{9EFpGR5t+t?N|W-6#xJLcW-iJFKuOHX<;vEZDD6+G%j#%XVkn^R2)zEElLas z1W5=GJOp=l4Fq?02=4AO5Q2r^?(QDknE=5Chr!+52KU>M-~XP6b6)ORcddI_{m=~6 z)m8iZYJYooO%p6HD~5uEiv$M;haw^VNf8e2MJ62Fb5g{oz$edR={Mk>z`;p;`l#%d zy1(G6jj=_9a7=-R=y_DOD%jO(chp)x*>qW0?J{jKmr<))rfNx0HraZ)=$V=M>LWUO zWUH%-w-0`IqCfh3^rsn@Ap-Qne3$c=^sdC0gO0hby2-lTFZAJ;l+P;2%Pi#fQ&>Xe(9>OjQR<;77juL$xiQCjIT=OR}HpFAUY; z+fY2Uw6gr-q${D~hs@b5g#Q~YYjVyJ&@(~! zw121-V|e^;flr@&gWn+VLh#9<;@_SN*|+~+2wd-dkQ~8$vVzY64_Yn~gKir!%|44= zstw8WKaI}+mrHw~&Tw$@Dw}k7H)oCgNCB6&X+>KH8k@)OP1a)oh$K*)6V2WrNY zjiDLo3bUoXe3KJ6FX4zuiP@%RQ%g!}rAVVE32w>A@_MnkxwxP6wh85oLTT0I)wk!e z@gjN>7_64cCw2@yOGxGaq9IvA#>crUH=OxEt$~oqo;ALc6NsivDJ?DO4cpJVdBLFD zloh$~-aizlC|dyWZzNH&E?vm0%6N{S9CH7LChDq=c-j%Hb+grk))Al=$s`a0IvUi->47 z2H%XcFtQ^+Z45O>>rIbB|53@5e*E~HY_g*Q4-GZ(7Btt z+&>&PsHFZuJY_S_=d+@@ToMVbae_}<**2SMRBGN)qG)L3E}3D`oELQ;WjbQeYrW@v z&$z2&C2OOrpdVF~6dYEo(vLORM8mC2!5@RCI^Om1^)Mp$E>}=%ggFx8DmJ#nASrtE?}_w?0Dq z$;0q?Tbwm1+B=s&g24CsenJUhF$D~<$;+IM5?Q}y`m%(ZRgnT-+b-Szuvu$Gkb4WM zu6C@db~G?prPpq1yV#NevgXd_{Eg$OL#QAvmXxZ`W4{lATraj{UPgYvhtXsrpE;l7 z2ConK@9P-J*&nt~s#`r>W@=W%P^Qi|Lc7oi`INY5z?qD|K}L4qE;#b=tcQ+n5Pa*= zH$5uMwiLOYcqtWM@zU)?vW=0Mnw**1qGOyyseyaJDzzs!jK2?L*N$;+G4XQY5Lz;|$x?mWVjLBpXvZ zP4Ms>)6($0Qm)R9#>@0FY#bxN}QZm!r*sI1$8-0~BXrK6@+<+?m-4N~n8Q#J{8SLZ30qM>Q3;PiyRl5u%e z)uHGO%MUpQZI7EYGP?+ENY@q{5i>Jf)LTda9c2Ae)3fTXd$S7e<&*U%9eH~Iz*Mxf zih6VxpgU-i6xKjmlgGvf6fO8a)XH^M#NnWVmXvjVasBk8iR#5(BnLu7DxrY!$0J`1 zX69;EJ$62lJ&m6wWjqf%Bi7Rlcy%hAq5G-xJC5=7Cq!r9rH7WsV+{jENqeSCak;=iHyoB`WjCLW7%QRxGRK$(X3)}mqhd>C4P!hmczNMi6{u0-lZ zb^!I*3^=W|wM-}rmZSK~pl`}wdnmyE-ed-=R@{HGPK2M zBOl^G74=5Qz+kQ3W=W}B#j<0f%Y5{12jSuVv@51W!IseH+e;6;o9*rm!;*LgMm8qZ z!j_!~aBc14rTt4ZA^|l@=pp;&`ub2hScvpZKlZG;)_vPb&=iABml)W~ZEN1&p5$%3 z=HpylrdrnQ_dj4{dTh&l&GATg%Z{r}<-Ox@j(U7Jh(Q5+ku23eLTY)q8r_ZQQ*epS zwl9(nb$EJ*Z!D*LVWQCq2?8!-Em!`ZG$f=1mXyR?y2SWpLQxx>O!TlHU8*#8a5M}l zhUFw=5^RZynKT|YwqHM^qZ=@05b)x6U2V`041}*rP#Y%7y%3g_d#R zd0U(PUR&T34)gu$%OjaAUsuB=elX}@eU^;|pJ4wbvF9USsa=^YVr5;`{M}px&|oe5 zsf`{_k;!LdV_n_D$HPU~S$m#JKla)F;nDi`=Yb98cTP$eYvf@dticTLZ7=~+2vB1b z7Nw|1&1#ayDfpT^eUVBX3tS-1gaV)}`RoPj`6iI9uD7pOa8%Sv62@aF5zD}2cXF4J zhkKK)_T&A)PR#nAIB7IWN}Xi`(w}mTDWX&un6_S*kMH8@%xBd7Y9Rg-$WW4e!7aY_sROk-HE!B2|otdr$r_1k->zkRq z7r-h~rse}3RtXUp(qHcPfegjaYAfpuD%EYuhxF)@&wKJSV%1zFC+-;_O-?pGJNv#5 zAWwA-jd$hqoSYy+8 zO}y^2r+Rr%W?+Y(q)L}eC4fjyNvR&wtyZCZwdUH-%couR^Wtd1!rHh({mR0dm6ItsHUvbwt24d+W5DP&XA zpu}mn-8^M#I$Bz07M4-Fle@dGt+)JqLea7XwsSS{_t%c}J5D$GdQIWA-moaTNORJF@=$xW5zeqsORtA^rIiOi8zIFoaC?XW)=T}w` zwD;4SFX+`S-I9twx}v zEx{cigo0sR%}OVFXLmhiWv}z5)dsZt+Y81`2V;gMe=!pi6B_6>EQASm`9nSsWvAZp z(x;u+b{$#DQ#Y8GJ>|aVNT71YYD42_?akO2=4k{*PgtSeuu_)Y2JAX0B8|#=|D7=t zll_$Kg69d$dH?nbT6312Z9o`Naa{A-J^5As+U72=>E_$(H_x8Qrc8P#R4hg_4BU97 zq8`|+rF`o>3zZJ&SZr;go?>NVJF#;O@xUh0b9-D-3RqG51Gxn=pSYc}=_SexZY>Nt z-O_T0QNX}=dsV0`BrYYOMd z1L#b2#zvRH$>1DXfi!O3^>^yci-n%kc&`%1D)aqY|LMz@^@qGoj*llko^`zt2JNOs zyPeA!u0~j#p}`t(pb_w~*qlYu;rRgNpA_ERP!v@`-0l|zDSV6DM1Cz1@j7fm3!>JK zG*!=3X%886Imlk+dhZ`;qr*)}%2`$A0E59~WF`o@0rgT@tpd8}>MDAdue_lo9@;oR zNtZ$+(4h(xI9R=MA^AU^U z;0G8`pdsadtc1Mbb`Kr(jq&=G#^y!X-~nFqq;0*^1h+*+|=$sg@u2Wq`tThPyC6N-ZOLp{#=E(b7EvfzHuXN5AL`?m(CGPwrGQ)WvhN_WG^93i#c z&|#jYX3ml}(GUI&jhubpT#w!gO?Czfvi;Q^5Ue_!aGDs8gO!5JYNBfRP~9EROU~QI z+%??DcxyoCE=>K-oHvSz1YrSe&&+fJ*kdGmXVQpxLMn(%ebsouUhT#dE_bAcJCn)h#+E#MUQ@T zXYgPn`2rER@kftNP;c$kDcjhz?QcLCx~*=`JuQ+Ajm@o%XU2xr%3LuJ^RdV(Sv03iyVz!V>=sQx=c{I73d-)1lDAEUu8z^m@WSnB zKw(S`d**!kTAs!;JEKYCq{ZpJsVL-?Ei?$MPfw2~s<$2uCEH(}jvm%f4>YL~mRc(~ zdHn+d8gHI(LLFVz@FB72u*8K#P_#A4c8#%^+VUm#et|Q_-cb3qxoCb+SNMvN%q&DI}B#y{v8@V&5jVoBN zwgS3>`I$3-9^PU9(HxpNq7&4CSd>R23hedC-*e zG5GZMQkf3x4fge6{;{NVIwzgwdBTmvxM@=8NkbPY)7Y+thj@HquvLXQtrHq zP}94U}NKBqZ5{)Kt({{8N4;_Mbk#gGnZc~(HQTBEYPfNb8-gUH0E6a}fLUdR^^r>D9M|gqPXXVCHmLlls#pbKLiij$b=Gn=vvn zIVa$Bxq-d}dAgpSIkB)Z(o$0P4h)2U^TNi5ZBC{IW$C~6kGv?h;ra8(v9NE%F9-6X z4JnRjy<@UlvhxLC$fM#m3g({B>$MWdPtsk&q@_a(e7IyU6hB1KUhR7N%2Voz0jC-# zIbLXY3Y`cIoIDn7@kraVjcHbz)Nv1W<^{Qw z0y^)>@GRW_V{O0i3w_N&!hHL7vGvhtvt`)Z^c%My<*#X0*X&O%@^Yk z6ZgI_jO%R)!AIg4+a-{;yu7-y^4--=$cmw@bbLybZ#ULA zMMQe|z3_i*47cV`3@A(wXLkQ+zgMSKHFrEXu)d!_jUTO$yBq}HQ+oD_C*czupdHMW z!z5@hf4H>|w6!)DRjiHw)VdZ$GX_80Stn^Rxtz&U^e7TlYKzn~g!xD6@^K$c-;^*V zl!T4^RcG|1oHe$9?0}*t4lP;-hNshe`Xdql`uX$o$=yye2b<%r+cneEqj}G}Gxx~N zkd&k(e7+wGGdtrOGa)~hf!T9<*4v+1P55kM!-gAwRMl{{Jj!``Y7Nd+yrYo{u?ANd zGQO*d21Lm9CBFXN*nG8qPkF1@Hl-wXnM}oJ8#kyruv2q*c!#iPY%i4aNW@1t}JjL>!kkd<}m#o_#R)-F?I z9uqUOHs?|Q(bNMy&9!l7-6_T6XiI>HF5#tZx^|PpLSx7j*_*CPQezL7qqClFqBQ&i zHrqyKc(i@zb+7=o_c=(?!Xqh8EaIKn&z0Yc24={R*#Vd?haJe^n2GtAkZ^`a584q@ z#J47o`=RPDKNAxhQd8#*2#2Sqr^h-Lv5?o$5v8Wvd!sw6Nvcnx5E9@)RuWK_!xZyD=UKz zHg@*9%DUpMgVD@3HNTt1^F4Rf9r!;iVn*-=U*(%<4h}Bvw7M4C*~#I=g3sAEU-G4>-pMX4H z;hbqK-2(AE-<~|VDhlDS5kPzy*4sM(RC26MllXWn)QdX0doMsrXB|V|$ycaF09rt$ zzYO)+Z@e4JV+H&u+gXv?N*Cb&savd+mPBPhcya6;oa<|Elyia zbD0;sZJH*GxHi4T#;0m@DHRej-|OlW%D;93Uf#rl@K3e*@{oyn;%_`PCMYVK6_S>u znjBpuz$e^{60f#Sc<^}j%2`s#qP&)?o4?QoKqC~t#EoJ4q_Y{)QXm=u4Y2;>6etsL zK>~F)r^vlFa8PNCwnXeR>YAFyzP=(UwYyAtGehf%a+#1~6seNk4)(uMz_w9%0>^iH zd~!PHN>q1zO2FNqH#g~BPA}Wt-7O*_GRkBRn5XIHBXL>T@{SKQ34=5JQ;6C4Rn5e7tC}IB3Eu;YD6R>^A|9U>-sXWgsyfNFY3~>DQ zvR11qcHQegkB_8(Z_w2Kek|S(PM)ifbJamm4EUc83PlA(MDmk~3ceoVWzxBQmsAm# zkU@KedQ?(ONu$_@MOVy)7tNtiQ%dDp~0d`195 zQx^RCtmehPO`tEkSw!`PpAIX_>+r>1RN*NWovoaXh%pGgiDAk8WMOE&Sd#@vRJsA_ z;vLAvauHrI6%Nf-SV@x#qDVI0r7l0RM@&+hsgc?8%I?TGScDI4D;XW{-=2~;DW|ye z1}AmoLZo;u4_d0{CBHfJCw&`#x)nRi4G7jJk_`T=8VjM*W67)Qz1 z_>usOONjHhG2M2~r~O<=Us@YBQxXwB@UG8@xtQX=Z6&rd@^%Ho1&=G(c}k)!wv3Z~ zO`as~q@xa-&t1+J`33lV9p83^R_=P(`3b4N9cQUYSZgxd#h6ihFo}nXz1iYb=gf*OJdT>*8uPf`EO#E3wLGlG4VXshSuKe5us_g_;naC zH`m$9B1TE}4I(fc@xO!&46&@>*4iAhlNj#A7S891l!a9!#BoiiRDOKpe%@_@aEM4kPefS-of=WXiT;5tN=7 zt^d=c-eU6eS!Ovc)+rDGw2UBhArsmqaYUSvoQ09LG|7_E`TWKtd+05iNS7Cha5!w9 z&Qmry$qtM^9^rBQAPgDy!M}6gaMH4LoS~zRd-V@JL6oNQXOtPmcn{SEbl7h(3rsgX znz-XtS1xjXvZxWgIv6+ak2o!eAUeKNxmp>o=hw28ewrqG>+#^9p(YdaX6ML<2z*Lu zHksS5<(;@x8Z}iejE(gDdr`7&4hD0TgW3SWZU59b-Jmqb0k^`y8coH?%4sARP1kHi z>#_dGgdv0HV&V3eUxDo#A@cC;iJ~xDkX*t7m~QTVj+weqUenkZL+ngaW>~lGqGIWR z+hcWgp*PVVc32__4>!SZX1(8GTmL*rti($r|BKpdWbguvox2V4lvY7q*=u=y!glIN z_v#>iA&4Gb$p6DA(Aa9hGaB7tf4(eW$woq2wqlpDCcFF4=>B|NWE=Q1uls9BM2$L^ z+s8V>5$8`E-U$*KwoWf_p*C(RW$=N@ETcPTWdd}%yoRjAM$k+fEg#L&c~B0yj~R4* zI`-an&v(fMzdR6gXUe7sewr9AGyUOSS=RVN&2(H2vqa3Q0YCAtkw_iQfDn#!r=#Vm zrbaa4T;GKLWABICa6JNOvtM50OO^K7F)Qd#8&+Imeux#zzB$F`;?9#{OAYV_;J_GF+z1*wk}` zA}2M}viSo8D{w z0sTT)s089G_qj6Ru4+#>XKm{n`PCm9u)7xG(+pUcPH0^Oy-@&Nj z@#%sb>3PS%e#^J*hLlS^Ap7S%*H^Q5a-0YV-~l1c<2? zx<*A+Dc=SYzVLUkUYeioJqCDdGpw};w%tIA8^$@SLi!~)R+>;x(0O(FGyo`(RVK!z zbTTpxqMf(5t`=)0^H2RgCWw>as;b%@&gKw<_{muOg%p?~81@u8*qABrrpNu!qod>V zs-hsz;WR1YB!!o{`8^0>#9U3VQu`5Ub2A-kKuMg_a)Fs&Gcd=Bo1Bg%T39)}<&lBQ^ zXF%YP^TWI{BE42_a*pDqD=V23ChpApy@j6*jm;PqB|NG4fSTIEebm1)!*yLx*f!7$ z!Qm@x?wI(-OdhlH*>oZgblRKvJWG(2Mh)Y%D;*ChlmrKF$%xX)k96EQ^!VbA zYJ*>@c}K)yd6^@aCcReOr=zSe^|e(Tubxjmz?LPV!n2$oobm4VZ%2^T1)XrOcDKT9 zxW=Fx7+66|r1t8WPNGI%QtfEug)!*r=7G%6!(0<4hkGDB`K1HnA3I$IcqktCCvI01 z>;ZpLkUrPztJ7awKVuc|mlo%jrXsZjkN3#^=AQpVX8l(5e4(guR{$=qFXMrOsAa_N z8K9;Pd65SCXzc832!LSav^pC|-ptUT8DK=CaPHF|q+IUa&FBoraak5`8I>N}R~^sM zLCV-{_xYUX1!edJf=wQ=;RMyr_}f25ZO}rExQorcjHN%&kr=*VKjLSy_^h@RNQjTM zw{V*qlW;hzp#`i5ug?`11q=dqu64GnYp*jBU2Y(L;bmUNmj$uN5e(Blce9D@3y5L( zV7r8m1-JFq#qvR-IVeX*KD#gwpjIO4X~IOM#3jMk%UxGle1n6b*0h7qgtHxBNQFz^ zplYgS*SiZ_M*_L8b{0na+PPVHjt1fo6pLyM_o9)7h#00iO>G0jx;z_sTI9s}JkO&b zGKJD`na(dI%$w2D6I!Ju2RZFmWc6QH*w)u+>S!8x?@s?^(U+IRPqQfZt@r1)uVe&h z{&XytUMdQw@|gwZSUM_e|@wX zKTKe2cDz$5gJh3|d0M~Em7bD0;2ey1JIv}`LQUxYqpUU) z%Zi65Cx#HKMu=*-78?_#JZB24m7Xs-0{rN5D~XEZY_R|v>nmN+PDC~zWa>>7v$w=X z;u&&sia8@@MrHz!KO^faIv0zi?I@Kek=TfEaSzLjd5CC;v|beYTw>PKlQPrk*zd6# zS#%ss|hkjA_pu|VPG^@RA-dvx7~hhBgP z+}Avm)2O*EYo<#lBQV4~Q^riFM%K*`;0TJzUZN%ydk#pNZ#&J-GX(N`5jtE-jAXHJ ze2Z1rN@BCz7D166Z8by={^YT_>&GWX-$#g{Rf)-V>`+<9I(Ix3wLkxqgQB^MMYPz< zz_Nh7ty{a(()HN|VPl68Gr%=K5y*wTc(6_p?eNxw`mHs(2 zJ%}!VHbW|Vv}{4`aoN#QT~ccqrr$@Oj7W#OyRwwaXHCw>Yj%xIFHZ6i%as?RuUajSekNerG^$al^Dfob@}MB9zTw z6z2*A#KEhBDfjEy0|KpE2>h&DMr7%VjXMDrTTO*ei3xwch1j_KwC7~J380=Y?3_nP zH^=IfJK0?$rt*QO#xb6VX9>@Rlx#uJWiuP05Jk^nZ{%{?etr&#@gJ8iN!Y4{+BL20aN-&)FB(39{i5Pd9PL|CY|41ob4 zAAkeJPl{PN#?f#=muIM%|n0f^?h-JKT&qa*Q)q zZTKur9#f*c3dU#3v_xLIktSbjAD_au<@bJzE(A(yyMCWJP#b&Mpdumj3Klz@|9y1* z=X=~1*WB!s3Yf6Oh2lypDhRJc;yCW^^XM^M;g5BwG*F>-@(nUklnl%L$^Z`Z&{trZ z5L1$)@4e6gga5?YTd=_6P@|0yQ-D3Zt zCdPtcWAF#e&(tz4n zIzRO5bw*hDVoPN`Y=OofokV!(YfB88n{JE2t4x^K+UAzw$paP8OF%wyQXrVWba1q#z zK;NPxjmsYWyq__pYk#s*1OQduEcVlfyzyGzeXr(tnI>07kWFz^nil#!f7A_@N?&6C zE5Xk0xmvUNPH=8oIl&zuNe%@-1o!-XJ#%sWY^*D|?oC{ZAsnS!i$BtvZy2dvJ{RgK zXn{rRiQ2p#b_bUi(-4Ujsb0DfteDvz7}*LVy5DaSq;#b+*+&*JC7`bY63}opvo_`8 z1=yY9@m`mBDDwCnpo@yu;1w?+KdQhGn&TdM4RtF^hrsXKa zzJwe;$stW<*WBT=JQVDjYay$3UJ$t1ob4A0jT916%O7g?Y`E%_^OMby1ZnjC{MY7)XGeVQT}I4B zL+f$DjRSD3RxQ2>d!~aPjf*}vK($RkXLb;r@(I_~eBAm-WXpjqHV3a;4!Lxu2~zNV zCVc-Lf4?-9z)G*>`#Wd}NtkGe_aiY4kF7d5+R0kgB|XLu<$NREz+%AJ<%fGlByF7c zZcGKbsfkN@eRGWOJQ^6aP8Akr)<&0}A<)_ZnP(;8Q9G?Q+h|b1@RM#FB0p#4Vx-(% z;!zwOR1@eeyipQ9UGB%sBDei$3>e@pUT^cM6)2}_AUw6laODgwf>uemwO0|*L3P!s z_tibojP~y9A5cRvGRgW=`88cCfmr3ipul`09u*gURsK38`Nu;gEefB`Z#ikTuu1d6 zABkd!Q3o_Y8KZH(@oeCRU;1)uD4%D>?p5f<0 zQ3ek;fPW5uH!?Bce@nY9BVkTvK+p3< z@(7*5wSXvImSDb_B&5%c@XTbeyA^OwDh-H=h&cubqDeFssQKA`LFuG>7hBb|YU(;C0txJ&R`w`mM{!54Cbz|fmZS(=mz z!TTbG@@2LN`I!1lW+1+wKG;iZXTwVGzGko2yaGt|?w$%Tbn`dkt7QUoi&yt8dDT6| zU^3sPNoq=3Rg1<%bc0ORSU>LMgTJa_&Xmdgf+*|hQCm%RkC^fRg3!0S&*;fsaPclT zYM-AKktIq8EODA=qI=boq`(z#N-fTI&aL%q+m zV?h?&;B&{ZFt9r7+V%#h3?837O%^%$TNKd~S(=b~v)P{o>9-GSYAz41E|a;$`0OFn z1#QCOWEmi`+Ddk8ME@naq-+>oU|`{r155R(k#MG|@z%!rrsd@nrmtWxHX@gmY7$e) zydsKugYcqg4^Si%d?XMns~B^1tJDWX&-n`J2cgfHTjtY@I5cT!PSfbDL!cFfDoPoS zYDBzfNS98|UYNKWYX{_>VzhM97%}6gNJz$H*DpkfqQ~h5WhSiZ;{r6i42t(>6#XM( zYf4+b3bBmK**cM-IiO5s$E~Sig-V-S==p;usmxbJDDLaI^W#>5^V zDiTFF97kYIubaS4g&7U4H$wCaUa86HWa!@w)?!?V+A`Z&6d~kM;#F0rvN}yEDSBr5 zCPE-EEsIHUW@OBx$=V@80H>=Zqp*8{s>t~x)DV94xlDqyu<2kv}9*p?U>OOF2i zP4w6We%pI=#1wW#*Ve7QH4Wu~+so~Z*qUgLnOmknDk%t}#ylS+Q^ zned>eSh4GA|EsoLes$^!K<>G)#~)!t*YEScKA{h1Kt~eE24s>as*W4sTN|U^oryf> znX=f9iM}Do*uJ&X-Dow3(s;GMkbxkvKk?O)k@MUiopn!Y@-vKUhDJP+S;;SH~q-=l7DW_fMMQ5Y?i$%gA{zV%o?Vtdh zO8SG!8AAokR7NEuG>%IaKv_<^fyHtRedBc-+e`*7;Q?GG&35|}c`-K2bXFb!41Ucb;t*mhJ3_3$>?9bg$(m}kL>toad{2Y32xbZCd;9$pkW`f?8GNdNT?RMo$}O`|YMVSI zEh2`2PE$rA)|#wH!QZ$XH`=nEh2biAEoV~iLnYH<3b4XLr`-@}S^Ht|h zZqVD~!b|1goYvafyretZwK(2hHtpZeX^<*I1_=|w`y%&~=Hj!Qn#*wI+szWR-@!yA zUb3E6QdchBbg$V3=9`3pa5U{hekcqH2br#$;^5llM-VCd9>OuR;#$u~rt_esg6=+? zorK6YIshfrwS4S=G!JAJ`MoVmlb5I#FGcl%6 z6YpLFECZkW{w15C3n|kGx+9k-f*V-~2!aF?V6o;!ojLX76y~H?Jb3+pr|5;JtN7lP z!g`#@q;F^7aC6}!hmCoP!nseCbIUcW)$em}%(z`mfri7BSrU>%m(s<${38wD%EQ&1 zMZX~*=Lw|7{uz*!RWr20&t&nyfk0EbsVn`wtWjVAe(dzHacp}x+0+;j_#dfq*O_xW zd{(1DR)Y6i`D}U)@Ho_VpO)OQZ-B}A4p&1fnJMX&qtY6d44xO8W$4Y(hH+apL@RgY zdot@WBQq-?&IVJUhJ6bU)@DC7m>s1H*kuN#!*-mSl3xCHY-H8lgH#Y(X}^WkmbPhW*uV8Mb;ClK_U ziD(t6UL*RO#Pxne7qTiHP#a8P{9%eP}7yM|sc64*=xN zu+}XZoS~71*SKLOKlSHk)az^xSsYiF1I9)B3Q{4rPYS(m)VjbekPJ4J8@+VpRnESl zLAC2jDy7W_=pR*>jd|j)X--K}Fw#|C_0sT*Ci(BTpYSh@o+<|cmU8YQ9Z>B7cP#v8 zPIU6)q@;QGb!*4iIk&Y|vzhy|Uszu3zQI3$V?+AA9SYa#bT&_?MWLeMg^}O} zTh$Q~9}m>MX}~I6`H;P;owl!e^`TjTI+aS^b=eG|u3I#vY`AzE=fB|0wbj5FymnC1H9ga0UHB5v0 z*TQY{{IA^?3jO!Gnlc)%$cum5SpR=|gYo}y*G$d?Uyusum%tudTx^4%N4Tu&0+K3& zN`$vuWcal4Yii?l5E$TF!r%MfwKz1D)w;i+RxYr9OhrYFAojPqa)}Q}3byh4H@re~ z3xlu1>FTsp)SH-?r*D*)3Hi}>=E?@YJ)}7ky#04mC@mXzJ5!BZ!2{py#s)TgfM{Bi zS4I!EcI)XpG;yxPQA#HW{$E=*@i19CbRjcV0~5%>Y!(-==BBbj{3Am+h+J)^VmnRJ z8r&{#TCtVc;QeeY27tA~+n|P^WroU9b2{s^2{~9y?gn5az7n-_8wkHQ?J{`DMgz{IWF*}^PuXtNdu2U4qD1Vyfw-}i z-Uwr4B#lNF+E69rMSeIk>XVF7WQkT}fwY4E#bEbMs{{}Od@H(Y2N)u;@~i>$XL%01 z3z@%oo`28QlGicp?!4zZK!m}Mgs0vzIW9&_1#h|<^hjup9O7nAqzKr+vJsFU`s%6~ ziz!S#O8so_f+Rqs1@NfBpM(m0JlaAFQaXX*za;h{;w8dJNR5oW;H7NQ2@yq*)x{1W zW5rG4xA|Nxs@uLY+Ki_6HiQg8R_D?AT$($roL}hr-5aGbumRYfb@;ItgdffW07_M zD!?!Pkx%$$ZEv?&iAi~>7e|M+G1(ET=2d?bX{y_f1aH(X~#E zD63`V{%%2Mzi8)I>~EDU^ev%TY0re;Ka&0+Wx?x;nT)Pv_4eO#&r}^xc^;%JsW>iG zeq2U3`02xmtq(!mg71e2NixQy&?F3aLM~4p=1pNEzyl$MiQ-N;X0W$`t)8QNZ?*3G z_Kp@SC-+6vr?#iR_ZWNAhc)HZQ`O{i857VyNQJCpzm3Dm;zi)0nQ{84U+K_~WkUWx z>=G+#`v!m5uLFqwOJdQ$)SL97QF{sH!_2mV{?M1t24uqYo`dgif4;aDNoGH@m>r>E z;bEX7;W-rEO)5d__^^}#zHsX}PKQmrbL#Gq=xSD@)Zn@fcbW8$+@JR<{*`EHW?)5` zLZikKk<7@%K1M2}!h~*E{ypBfUFGLEGKK z#5_$)9yBQ1-`nPJn*`t(bu~pG_Ec9)oOH}1eJBjCK}o_N8oCebwma#LDNVft4ypQd zc{2XRavNEf&HQfv$iiv=t&gw0+8CErJ}K`592-W}-(vEv;hTGYre){n z84N9#>ugQ7|3+1)kmG5W+In%kUmFA?yKkyJm}n#;{xvu=G&avlL-FT}1V?q$3^Zh8 zu9d+@1{jzSP>W7Ko~V=d7$oB{zSYU)hxy)Aq-=p4{-|ZogX5cEqsx_$szzn5G+73g zj$e9d3&rp$%<4KE2Pov z<~V1|rso&MxH+pFM-RL%eF1|&Bweoovl>I{@v?@UvXy~}Dq)ytb#kq7=v_=S&5<%E z#l;6}*|&DNk^W9*wjw{`e+ryD`TxG|Rpg^FBf(A3k`%~K5&yl8eIhFANfc1wgw|oW z@95tBStjuk;)8kQ7OwfvUZQ^CMsY{^%eQhD)?gP??%%b(`Pj+yFNh-i;|jM9_&}mV zMU;C`j5z+%9XU1+OEHI-wWQ;Fz@BVnuKmqIdF&UpMKlP67|8PV@0V!LR!JeWy&~)*<`%|3?h~HE9s|t63l-K1Yfl|Bq6ju-4A!FXqZ$(iig-3o!77 zMP+VR3S>6Y@|;<=%CwIsE+?w#|0`0#MSE}%{h^KtvG5EMe?~wwvs4H2FLuITrt#{N z#`KLioBh|ll*goBj^XVj7nQ#GNd@5o7mNAbx24BvHnU#|y!?7o_Wxxr{f@?0KcRy0 z1FJHzh<9!~0}nqlBf*#WxsZg?tI_$k%0`eOS_Wzk#XxX)a1O+F!5x}6MTrm*Pd9sc zYj~?$sZMK2O~d0ld8cv?;_+nLt%0TJt(zK~Y6HZ+JwZH zQBl$sk1hNYg7SMi<8;)J`Gr)^i(>(wlkRNyaYW)2j?$SHeH3C+I=<5clsR%~jpO4B z9R3V}mHq%rupYPh{P9`n00=?0A;Pq&h>OWqET~ zdv?~iei)zE!DGB)>G$h${cJZkw|Ydp9xm4d-lnEOC@C(wZ62OuSFb0)mvEULq`8~B z+|LWC*x5rvt1OH2=EC{5eupW&l{HQp$jtn{_h}VtjZ|EmWkDN&R#-e zc`Uc<$Uax*Cd`-PCEljI1W$Tc(09H zdFPGBH%;=n8r`cBya!Wy^R=$nBxGe#JTdyP5jAVgsA+5$s%GYT&DbmxCeF;4Wn@|+ zZhx+w-Y3Vg4jC~ggZ5>g!qtijS(FDC;hY!jsb?bfEp8+q&#{F!aX%F!PzK{VLy4Oe zrj`kU97b=Siz%OZ?xMafQs#EJvl2sS=9vo5>jFb0k@PDQ4Whn@<`4*+O)Y}i-{HP1 zyr+5tB^_&CmAPIh$X4jTuPqObyIpWHiZo5@qf|wmT^&jQMf3I zN=XO;(heyt-8FP~m(o3Sr<8Q(&`5VTh;&OgNK1Fk5O+}j=bRho%l+L8^9APJx%OJm zv);Y;TJ!+6BuHv7T>TgLzNjXVqbTY5c)mvOsahxzbOdP=5#7$f?R;|9PvJTz4lkr0qG-q~%sI-}H zr{C29nfd;}!$WH@tIhY%HTti-XngSADs^NeLF#C2T^zP6=lv>xMM*G(b}|zQtS5%E zAe@g%X-0eDD5x#~S}!aavYisToSaq+-q-%l1ef}A=tZyysigE6uiN(7_ceWX(2Utk zEm8mmfhDa2%cQ@!945+lHU^ru1CRK^S)gvY+mc~`wi`{kq1UbRx8bS78}MLOk`AQoQ+?-dZq8p zWOB%;{YCgkje~v1{b|GIri%3eHr!99yJV!zjWO_aJvX6~pzV|&gUY#LFs*jhF9~1f z-FamdVm_pg4WQvqABRU|2q3PEX&g?2-HLQLaTq@gn63|3YWEf&?{8=Md3eBFER>4q z7S`jfl5^nxd6W)sTq09TLpI}yLPn~n86#b+K2&sf?0Rc)pBM>N^B-TEYACUQ?f354 zA~bj$ZhCTZdK+Sw@`Njr%kPyJ7E~c?;GUN+1Mh?6*qOGkj^^`xR*x3udH%!U1b#lz zmx9N?sA-%KyeD3`-MTeR+g_~|!n<+qWkFQO6oW|)g`Q=UC|RGp#fI~3MqIrS5@K^) z=~YBPeiBPbP%hd$szOli^QkB3Djo!ZT~Zf0*c(8+PBYaLQh%GN1&;Opg7d{+pPC<< zG+|WdDp3u~=U^lmZ!OB2{k#kbrwn+9hez4d`cuyHuXXLqLO_5M%*z^MFI36nYp|R0 zlls%4UBzIYH(9Kl>{+Z&N0<{5FmcVkuYE{j)Mxg%jh&w+LH|>JO6ciZRnfRN91ye& ziRDZnA~g+7{vLRd0}UzSeZa}hoi)$H;fhOmjSGQx()JUMYzL#JXwK89zk%|9KKRx& zx?;_J`A%;d{1@oiP~C0e1W^;>z#OidQ@^5ZH6>-N?yl0IV;LRJmv_%#s&G39D-WA! zIY~*f02t5Qi~M`f*%6hG6E3UzU|Fl*T`zf&tjQYsK5NfwdQ_Pf{=+iugp|=v9 z0@5Sbs~_C4>07H-igQjan#Gpc5zlH{Jg~J&$c~rggHc8W)|%#-YN-tQk-ZcdF&_|pDUKp1 zFmbVH@p4Z+hNt58ars03WdA$~9TDAbid$@ow!MhK*@jV^cUesEL|Y)wSw;{_p*eSi z26&vHg~=4{mpj+TVk$U3zRK*g^0rN%2FA=({^|wbxp28NAw0LhC94Y0m2=O5uEE}F zvMl1feZ5&<56nF)dUM#LMhom`>_fg@{xGBZ2_XqwXZ~GkAkk4bhJwIi_($@?Zx?Aw zf5O%gZI4Dl^{Qu6A7BFWjT|?lz*5>R=oI2x(w(EjnGV^QuCY9_8RZTs!#`-#s)b4^ zYLm>&xS8m{YspmKtSjqzS9wRp;iuC*smo77y4`^2M%F3`8AJfvp|mHFX>Z=L21vC# zsa!zI_VVSUWaCK(_V$r;@oH{v39UzZt|W>u_q*4-p9B$at%J-d)DhSwdkT1OcSXAz zRcmtwNvc!}bPDuF6ysdXRg=eOPk!_1skMvD`o(izex1#KHnj3(r5vz-3XWwchhMZ$ z4v%eWevOtz`NS<9ho`=MtFg3WV&o)WY6wA(5MyCxCgg4$J5|O-0@Q3*ES(H-pze8W zZEtr(L2Wl??spjV(gkj#?q8LfK_=`;<=emE16BtK!E`m+!4w4yCb|Q=dT==58vfYAGdJR(&{spgV$o$bb$RF zkK3z=o6yFOkJ_K*5Z%tiDt9attwNLK$oLtCvx#22-`JV4+HcC8ZchdVL{yC-;0~b2gPbw%ptqi49a&pv(IaopNJ|2G|_CHL=F8Bv-OOusLm_ zYDM40R3_6R;LW_J|QF~xNx#=fAzF2L087B*b0I$+~k05|KZ%d-EVQ$tR50kbT^LwU1 zz|f874)$AVA8wr!USPELhs$f@3PM9G0}0y0cOT9Tztuvir+jFN9}#IjBtE#e{_?K; z9xrV<>8slxx8mKC>yz(|vD@?e^0G`zPEJe(A`PRT(#=-E~cEdzLeD*hEyH zV*2!L-NiKd0< zNA0y5v92G9jR~wDX5L**#lok;Z)Xs{uTGlLnsP8&dX2e>ExEv9gd#GbS5mVz>v5U) zY2-!Gn_%|ZHb1&frc%COjI%5M4|HesKG9*wsoHoMJ9e}jA!D8J|~s7D7ISd zj=t&=*~l1~=L($YTYGK@ua%jYHuu&p6I6o)fF`BZfi%uylC?j$-OAOT8hw@t)tFg` z5EOFH_!h>vm?rIUD|d7F@Fm^~2_WKC1E-4m82e1H59THqk9i(0S$+!?#u^JELIUjj zK$>CPHXz#cSw-^&zVY!)j?g57*DKk%#;xPIYoz9IjS_p5yntvgj?imeMsF;t*#3Jp zN3(?6lgL*A7#!NY=hic04VvgymV$`${Hx*aZs+PHLe^Z@UtUT-j$(cNmN#8cc$br& z&ZyZ=^>~PI3bVpv6?JJdv%kgO3jlOWB{%occ0fGpX5Vwt@5j%4lx3gi1~}Ajy=uj_ z$pl>)laK+wRskZAH((2XiWEUTRbbU*IsaK0M)iYPCroW-@-I;K>1Je@-QH0qS2J;t z3Xxkr>Q!c`dd;llZJX#o;yAttjDGMQdSP94>*|$}dcJ$pf=g$%H^6(D-cxj}dS|7* z(88!+P>WOR@hPdO7G83M(uz~Rl1dv`!Q!RS3!Ccu~ba1lO(!XnSNd2Kbi()2xk zBq=TJx#SMzfoiTaw^0!YC#(1gYPrPXd_Lbjo8qoALs0%V@=Y z9zKhL)ka`!Vva7cCQcYe@qKQtO2P^rr&VjUW_yE05eKNF4;mFXjSb~0Dp+Po=(DPc zjhWfMp&ptEB1%f&ic=)UBxDsqVhNHcaS-!JV^|qf=@KynKrteH1C_CW|wsoQy$vQM?3@qd`!z6sgQ_8#8OE#Jr^AP6-klw`%zcE^Z^D{rQcKIAZ94lx zf>QwD8)Qr*ZW$vBXk29S)ZzCMcEu)ZhQwxO&?0?(`v!>L#5^=jCy3oiPXnj$hAilc zgsHXz!abBUtk-T-55bgDUJb&PKUQYo_+`62@?fxXz{si}xN_@W%H*%+%8|^Nhyj%F zj=8uX(=*6-UF5Bqz;Sy^d2_9G+Cr{a^=q<`f?9LE*JkTM!llOWU8Om%pX2QjFYv2B zMQ#C!$JKj=Fri*27Q)%GDbw@-pSxn3p`gZvpP4~%C$68(!}>k27;{K7n<&)VbsnU8 z2a3NLqlJkfz6rhX(22z_(RhEqqxA;R?W-HBmeu&--iA8&&+17S^!QXFAY!aSEMdVe z&SQ+5vmYXV(C=R zaFw7z4sLEunX(JzwEEY#{ABpVi6S-1^7l<*5zZorcJ&XnlRt)1#Is)UUD|!NN&Y-I zaTBkKHarsf@IE}C+Y5pbZH*XQRKsFC@G+MQo?mzE+I%2nNqGYNX#&(Vwo(iYt~(Yx z?LK;SuVoi0a1$SN?qsTjl-ors03|6KK!;DIgYv5`k3&hN-X&2w*BHOHHnlxM^0C#1 zaT=S-_q6&GRd2+z0~=LBd<@t3uQbuoZm;%vmG!*D$ zM=?nnRq3FIwa8v~IUbI6fu_`CQOx`}NiFbjW|R#I3noIZBE(8Ze(Qp(Oi_OgqC50| z(02v~+Se)E!nX{6WaW$ICr-e%y0O9UNg@{~3BS(JwOYkKuj2z0jH<$le?ZVIXHys}gL!)ERFc z=p7RC#79=Ir=Q{^GiE0h=nkhGO1uqmfxPj7NePA#!V7kVpIe96S_=oSRIfPf8VnDT zO$UvlBMOio+Y}FsdKw>UUIGFb8bqsSRO+*;F|zQV-sxs}nCLw54w%(}0cn*-j}BVI zpv}+tBeHM_3`Kczyq}3(2GNaUK8K3s@`#_AkN^SKRYR5ry{2I|ZZ&tUno88S(Ez<# zvSZ;OPHs(+L3|qdnK#@3U75?Dk@86xK>X(FudndE?wF`J)iefZu?j!#DWYL(RK_0j zk5BlO-I_%XPFa09`1Lvpm+ePIq?Qt0^vdgXEZ~Ed*-W+GfSvu`vtt-1#m(?a{1tsq zNe9m2CykHt8}tk>d{j~C8uAm$eX|E2hy0%Zu*R5;i;hj;aw^lZx=iloT{!R z+o4`Xia}uK$bs@07R-fd`GSMm1}Qh26S1rh>YSf?9TwlLn}dN zhDHIcjJvJBc1Dy^zG1-J0}*!0Do>v@=A`NFl)hF`;fUX?)h1t<0OTzC_8c1TR~y0f z{>>EKBaw3brd}3rMJPk_lz_Q!)U{vLHG1Zh#n8qn8DI9C4~J81PEflhesbAnr~UZIeG9cq3oSKK}@y&&j6d5`=XsyKkf{6w|4G4IztUV1Dlr6FyEf$IpW8V zkmpqK#9^E)|^>IByw-lB4xw;)j-5>y2mR2#VHNtAvyv+bpR zaYZTxAqVz+MTf}I0SM&1*xC1>DyIX%yukh?Ke34AWSBdvjK1x%(YVo^xMcJ;<2`9W z?e%9Ex+B!CvBvWJ8q!h2qMpaxdqV@8DZu7ZTr5<3wIFnicN+_sf6Y|Ol!go_8fKPipDsVuY zdbSq~h7t(=9QIu<)Uz%PhMsI+hOnf%R>CN)`%ghXj-~?cKh|zqjPwMJchH-{9F?yx z6q)obKth=U$vmaGV*2&%1fX^EvDTAtj!h^XPTcm+Nb1aNVPHePz-k$>>A`M)<4wGP zmvZ?tFbr3r_1hPg{#7%V!Z0zz+(6X^q>^5I4=(0Wfwi&aL{k%y{mD?48lSRes}k?2 zPdUU_ugOLW%*AaEmBVEBiqQYSPLSCUg{tND1mUU-q4D;}U-m zqQSSJ^p~5FXGysiw{dMXI~`r>z)dl?@AV>nXRe#c2FiMK8C|-tX%hYZqt@Jy{Yhu9 zYkeV=99I$X(W;7(&|7kDQO7mv$Ah@o<%jcepfGz`3f1|+^>%|k%FzpyW;SEX#?l}; zzI7)H9n3NFCaAL7@sLjvIsVG{ucL~@=P|7Bl^X92#vST5!aZ9$1j#A+z%^supog1? zlPgQ1YZI&NWDHNs7Yqi3C)gZy@cU}r0l8(W7aP-2tV@{k>I(9wecQ9!Q0UYY4% zH0-RHurXIR(TNOiLSeMSGY7rj9&f;s;3X_CPr=96$7Y{QL|V?i=yxZfS%ZEq#ZhBO zy68^-wmY6)rSlE?cWCFQ#PxRC{cM=&V+=T!o}Den1vHv6u^5eSh9%gc<1vsqJ$CX7 znMGV$OfGwKLHc2IsOPg?0+CvNXzI(K82o=@W3d`^XOG|+v6^BuTlucgZc1{bQ!hA* z4SCTP7iz+xu2IwcuN#E_e*Rw^LsAJ1OV{+)D=*LW#itTrob4Gc4aM(MM4(xF+J(sz z*WD!Er?J4hAc{o&fT}$Etnj=;0KKQ1LV40M$!GVIrRp|m3!2_*S0W+A+dlyX&O^)8 zX(Rq?x~`~+k8^^>!Dt>8*gu&Ba>O3+HwCaHg3_uyH`=HwoUs4f^DIbqZ{;C=bK(7}Smr&O}Yk=*Y&_XKf^ZwrN~(6X|iui}d+BRc^& z(uF)Cza6#CDfQ@ZYV6=$fD(#K0-U^B*=Hx-4@V4F$WQAgOOJ?dL>BgWbzvr-5Fp-z z1zg8cu5ma=0u=4e3)n0Om`-o&*AvrhpCSR6P9;fW8Z8=7;VjtpUO6r0>TxK7yqvtB zr13wusc8RfQx%5ral)n&=PeEvuyr}T$dBbNbqWPJf;52F?KVFU(_|J?G(?}`Z16=FnA zjkAJhKZjmt_kZnP$E{ekV8-a}A&@V8(U+$!Ux-NpQU`u5i7RU= zvXj&6EU9$4&S+9dxiSk6#};v* zoprD%FvZWd*3!;P=;ZY5&u;W#VVv$M>7-&9pyC;}@&+a$qwor{C@D~4--I8g!|@5h zqV22IP;$Vgo~%@`%FM0=|uABO{rAyDE1`t4%4+J`imGe;es5f`RUXu;FXDP!s^;seATPiM&YUSer; zTr+X7nSA_hlE36mJerH(1m*;aUZVoPCIrso=0fJ?H5BAi{v9gtO$}1(#YURO{%Rdlb6a9jGXAXpf0iw)_5X*1qIHRNTpR#4^;yNg-)BhvJDU?~ z|Gz&{S~y~x^!FS|d|1XxCJ^!S9yc8JN}jY6(eo*%6?RtL;D3*ADb!#RN>~e`3K4}$ zIQ;8y7`|f|ay5a%uK%r@?V=6(st5@-^g`l)nK68&>fW~qIcEGS zd?^qvOr*#Ysk-@h!UTm5`)x4NsW{=XQUU)OW3HoY5&AP8xI&w1!r-v?gjZ14Fa@pGT)ORr(?p;+NmMPx%{e zmA6J~WY^(&JxZbAmwo$Kp}>9Wqe;qyH?{I<^q1CUFPsYeEg^#Y-|3lhuReaPqpK4d z2fq-nP)m!}_$*ewsapGU3@nPh;x&RBBE7BFBL%J9zAzsF1b7Mze4|-F_{lZDgU?L# zr-nM!!%@rrr=a1=SXcTxW^NJNDO__xZboG0jdQHrEpRZVT_=7ssWQ2( zN2f_9zk-N^wlhjFXv|_B5M5S)LL7j|OO$Nc!HVR;2w7e8yk&b}UXD-wuqhd}OwI4s z!O1UsH%rQb6Gv%zxPMBy(M-T_PkU|r&30_-hw6sRpq2At%8!y~yaJ#Z2wpyu(2ny>cW~C@auiRh1J0AvHN(5 z*;=~#-GvSk_0CDoYgHmOqcNkHq) z2EqotHI&e_$W%xuVsA2_OBJ%4X(Qm4M4q29Hc|63c;Gz=b2m-u2cMctfnF?P#;Ho7 zfAxQe%b?&a9r-;)rV@Iq1e9#r)s5`a-{+sNdvcykf)sk44*d!@7A{X z2BvB&c`&0tRIZ}i4x!~B)tky@f-Z(o!knT)?-h0$1T{q}02{8n?qA3&deeX3NM7S^_=q=LvwdY&Jo`D7n_&;QvnA#;K?D5<^_2{|wf4R$LU?}Wv=(3$` z6SNYUAPZ4ZtjTitFYAzk;q>kc1i_~F|KsncGdTaPviScE9&*dss(ey_hfDun^%ut! z;{MlcNXt~5CtaLVo}5yDOIvWl{)1RfoNdx|iuCvS^XacI5IWh&r&KtZ|2}j9l$Er_ z(2)d=_#0yWHDdZ7oru1h7VZzY>?-LZJa-~e`WL?rl4nA}`Ju7?#lI2T7YQ{K!dgyp z8LvXK87b^wG^JBh{+sJ=InMIxf%8r<`&$(-1LI z2?qvV+aWRfeI}f z_8GNKM$phgct}W#-Tp&5G-^dm%+$mL3pgwz+uFw0>~hFzeD)5@uzXPU7-G3`)P@k1 z&Uwv$>0^NvT9?UuF6G6ivW!?P)&eSMawptps&RvQ#1n%qg!exI3~=PGTl!K`RkoJ(H4> z#VGuqj;}mv zK;G(;OM_bUpks!J)K7fRs?cvkqow~9x%{^8*+BpBVE?c?S$s9RSXh-^V%{nG3Lj`CrKDgVB-hiu<7EUn zqQ%8*-I59RY*sC+b0^!mDNX&S-g!? z7CndiO+h&x)z*<@OoxE+)K?*uvB=HMsSxFD<#|*Tl=EB!=U&m5I{YsEJ@YXbvHA*} z4o7D{D-pNqc-=9h!AUM=k5`2pQE?l3%F7%%hAR~s_gD$aA2~R9oPQrT7W(EQxDfN$ zMeea?m)hmN+V|FQyPp`3{?2oHtk>#l@67MY5%INntLn4XlQ0xg)&F63vvxg5AnHPzYNn(8Y6-{fGe~bEJi=HL4)v9 zYu$dW3c&ipacNDiy|)aeswU7YJR+bj+TG|#mNw=nEv0*anrcsh`^3?YYOAZ?2ecwZ zrSV#4YtR)52K=>He-z(l^Q&L=q7s8nvz+c&n8>;VZpGkUIKGTdSou|&QW?uJh zkui;e*+!N5I1=w>`JY(8YRlMXfsvvyu@3mxGbP z!R-9mGR^rCaZ^KvhA)|c? zCNT;Eu)e~Ygp90I2EW7US;PzxL@vE)(}$owgWrXVi>t1-f9P8od&P32wCu-}@bez*k!UA?qT~k*n)nal9GwPLQu&(;j39Ds%)(aCoJrrW`~ z*d7n(>(y$z^t`;L)c2|rQecBB^3#p_uObHWne{X!ZBf!6K(2qG0gaCn&Z6Vlz55`9 zZK?JCJrlL&6-tNSGt-~GD}!PEe3qgwQzxv@z-9ce@D&$H0Rhp+-b?R?Y=%>rc40a& zHHSripIWRb^?7=*O7(s0u70F`y;0;rHa)Xa(M4|=bf`m5+XQ8L(!@M8G_-CG{}06I z6$bKg_R4Gi+Wd6A_}D(}^d62aFeYZr*PAaYlUE+`4RW9ZuJ_1B!jj=cg}jS0mZ3#z zXBH3l92F%67O>kuQcJ73)FD8D9A?9E^5?DU%OVme_nqwRvzjp_@+N9)9mT~xig~HI zRGTIPL`acb--yU+Yo%7)niSEg3I(d*ZG{G40CUG-w!ZDt(G;#<=h_=Z#bbjndV#Nk zTeG)Un$Hzz5)xA+i$dAAR>_2g{ri9RRcrrsaQ8U9_BxqN*DM^My=Ol1nJ?9{(wVS! z${{vwGhOh714h@`7{CmK7hW_Zr}KuI9@ht?;C9!od@IPpB@by#a_Z4i5q)sixKUpE z{o+7=#mWsUO?S@_M?9@Gxl+hC^4aeO%*IKOsLb{(n~0)tdr{IZlNz2{OE&Al#!CS& zhr{(Z^P_JNUtoL7giu;nCub^+0khZXxvKjvaB$Ddm%nTLB^(qN)SW_zyL0VMa#G0$ z^4>a>o&#T+lt+eTigrh|U6wsgL_WNI)rPDK zJ*O;=9x9$1ni*1wf2p5Iflf|R{g zVqggWVUrVQINid=MogAbyYA}uX^r_V9xt%~!$TJg@Hs%sY-V$t9_ShI9K3&q=T&gs zQ1}{;ZDhKqsIu}mqzpO&W^ZSYA?bM4$`WyOoztUn6_<} z?`lACLHOlUlatn6jH}*t>j)ttu`wxZo-zY0nx-<~#>ek=drf6$9LAmv?gMinHHGD* zmNV8mH8x~`Z(c2GFd|do-!<4alJJ$Bhi7LZ0X!wkhx{59b>_aZ`Z<%?%Jxb2y|J#e zTB%-x!6i4aAErIm2Y2Zh1|X2fW=BW<$O8>EH3b!w%fK1iAgUD2Lgyb_CFrxOiH??l zM$C1%S~apb>%y3^LZz>#p~1Q~6o}P}8s>KX`{0zXsp%HIh&16%lsU(l6U1_^T~$kOC6*TNf)!YvTa}W?9*AKECBUo_gIX$CbPqgce5|eLuv% zDM;|kz81LpyYv`szHOdMG0!WS7}jjm;_vv`YQE7j8-SMBHR>o=zIyX{PZbHfr^@F zX;!-t{NR3f(Ua~WKXVTnTHoR_jXFLpI;PMUCr!Wr5-)S*Dlp7`o!NLOncPXQDBawU zvYla-o;^LK&1{c+8iDY%tP6eek&2qw_K=@FZavGAIZKJezeLK%e)68Me>cKIDQ4=Yxvy_fN(0XK`OW(X;>i3;o{+j$u8{rj_T$X9jxK`IQ;2$)7U@4iBg2wF zd3mPIEnMg%6QHXLr2KqJi>oP0@vd!y{gEJaWp%rQTe?)-CF;>=%DV3>b0#H72{C%3&>o_ym#`^E$9!dKw3u z^7jA9Idm6&(z!r+o;*a04egF5B!F+qQEP@`ueCm2OBZ|Yl^W}mkJrmu28X9^Z|@E7 zoF6ZF(BVjnq3u5oEhM~t<&UAHGpyZg@s#aERwn$(CS}AJ8=F^IPig_bs?aR|Kad$E z`Vw=DtXJ!&FL6P#p(XLQAJmHJp9VR-+qE_O1M8#@V;B?3RVrDr600MzsV>U50Q z*bFwqTQOjNk|D&|Y+8gSVa5I3%`Z&}Efe9iT zuG$a(vVqOZpI9Td4)svyadM!<@5Q+=jtufVlZjncb*h$8YjC~Qg0I-*!01l_n#b|} z)f}aTBl^RUiOW~d-~{U?z%LNMJJKx+# z=|a&n(pbG;)b$6+@{FamRPR)*;@?i8cw(RRTvRmbVf&PE+1>rn zMo`IOJ4(7BUM(|+*)&F9q1JGf3)p`xO$i3$^-<+7yWdRojL(er<{;PC&Cnc@M5Hd4 zJd8Yt^W_GDGIC&^kGKBg@;u5cKIF8T;?~HGD4JvG0`EwKFIZ=xF&2TLq@dxsJ?Nj=K&*4tb>&}R^Y$&a zWp!!xvjT@jlYr>j@PmL&*2@I*VrD|>T}@z&1UU{>fw3g{1SDhBff8NFSvc=Y&N|)@ z$KV5Vje~KG6ja=Q83pFe?M_k*7Oug&JMO#gkLKJaxr0pZnJf1uHf4#B zrZ9mh(mUracia>7#oxNRH4Z$*am0#KMgrKKlDq%{ocvz{0y;n4u%BkS zuqa}T_vX=dX}gebYLWU*q6;xX8)D=K>q-u7g7duyMAkEYfG7<`Kr|{(PvB^H= zdpM#L)@s~zITU0ssu&4GfM`#vhrGV2(H27nQ+2KAmo7twRqxc~v`$>a!t<{fu_@_0 zYwHRtb&HEy)tYpE3XO)3nonELnk6Qe!B>af-DO2mQ{kP83j+8DdN7=o&%`7Qz>r2c zSL{Lv$LAL$jTzRyJ8TemV26 z_($e8lvkyVHyY1zE)c;z_)8@le#*1*y6qL!&;83e_&WC9Qd8fGKZQ8}$>TCzQlx+(HQ zpPV76T13igF)8=NJDmg~fue`!&;7o-r^F7ieFnlct?n@ zsG%W(h!piTwdFTB(?@5%Nm)D4f@qpnAIzLB&A?@L^%SFQoPhIUU+;oIo0qXIr=B%PG zcOnjDKy+H`m%A^d#oaRtIm(v$z|5-Beh>g&VeS+ccRxa#u4`fp#b0$C64f#5mPeFvF5kp*Y^%XP- zPiRQ_PbbZYigxFD(9@#AZxx0&2y8j&DE%?kclR_Bv~_|DSKDY-Vf>&_`63?yA$a8B zXg|>Bn5*_|QNOy{;qb5&dUaH9ze~84>R=+1#^#gYg7vs=u);x$3$tx%r4MdBdznQ| z)qULzsT}kS{8h8Qc4A^;{*cSxi!GKZOr`hUnw^7nUcoZVfA3t2H$)P$gH!7)=6NkG zha$i(qq>a?D=YOdi#gPx^oGE<{ls$paO>#ZJ-_6vpRdK=fZ<=gGjFD&cn|^miSl&~ zb!n{C4Y_TXxwwEw==sOsk?MvztDV_G-664NG@L9gP3>epS7Oh#Z9`&xK{8fplu7U9 z1+=~8jMNg(BhCd)AEx3l*nFd9Ho5I*2l{~XkFk`D%8GbrdtVB=pF)X(4?YO}Z7Lp5~_XfhdVYd_+RcR1`gj}&`xOv&xJR19)R7o0wa6LiY` zpRwRZWoTu0Ulyq>G*5nKqzu=AQ5W65=WObKa%rinTUJ<_QovjXSp}!Z`_oJ!xZ*gQ z3S$~Ekh|^Fi)#}8Fi%_-M+K59jcTVp0TN8*Ak^KG{jC2;EK=l|*<|tjR!PIXM6SKm8Sa7Z;$JqSiKiE%s75(IpZYJj(Uf^E)o_e%*wGDCAi>G`(L+Sd^!M-GX+i*; zFXcZse*V?XNbp zq@*CR5fNe%zrib009<(izYon$u_jrvx(ZfUM4-b7viy(c3E4evqP?q=&eGXF^leH7 zq3s#|*;n&hDLy`oiNh4TCt7Kcom~^u_4~`}1$C)>W(PthlfEex-7R4iFb?MT4K0tw zg29h{S8ew}GFMh};|oni+WyYVknjhX4Udm!z3sv71=G>dJ-rFTIfTwPvmVd;q?Img z6fg!wrLQSfl;xV1WZd_qb9#kf80_qc(`&3Y)OdoAb5=pCO+Ghsc&PWyi_NSJPUdyt^dv{}7TwM{NfjZ?SOWQ&o|Nl`Vs*#;hp(XJ!aO(^`A)a`j88>W&&*+^5f z7SE{EQvxz|*vcz`2zZo4!mo&S6y!5zF0W?m(po@7KUE$W%uV;~UY=XB;zwYd-Sw0V zOyU%L%ctcqHZW-2AG^GVIOgh!wTD?xn!jf|T&2F{$-QM)MB7zy=01Rz{lKyCD^;0@&=|v1GacId7dLt(fO=)wO509T9j8;nD z4id6MA$h_ho&*C@g9IVWw+YTiQ}vaV5^GY6Kb8*e27ElhH~msy^nzvY>_5Xyuf1gi z!L)##SwXJ9u3JO8S>;X%gUW3p^!iZFY5g6G-BBI*S_*}KL-=FdK;aw>tEWS@&i{HG z8P4dSu(R6y)Da0k^j=l}$Xc z2{FrC6A_{^cDA=OIa|-WT6VaoKdU&C(QrEtoRJizeF!{*^Hoay(-^OdM4^EFbVqyM*HK=$-6IK5IE#}0t8a|^T>_6 za1q(>tF+Y$p2rlrJg%{Dr$4NZ=WWg<5zP8XizcVXLAOftfZ1P*<6>jk?U(5G+*cL` z&wl$6k*x3uI9N5*B~Sp!4`esz2F|#(TWc5NK>0YRlx5Rh(= z8akvyx}*gJB!=!(=?3Xe>8_!XZjg=vhVJg>w|LZNzwh4f{vF?Ud~@&@$IM#yy6!8^ z^NM?c=9=Xkw;Y{>y63LtqPoI9$q$W|#4i!zIPUSq$e`l?R08pR{E#}5AtNbs5BM3K zC!MaKolnan!TA0pyrh8%eanYHh{eV^G+EFd>hnqff!1tl#m4M(JUk3Z6-t^Q;$AK( zfa^m|t98AnVYj}VAvFEk^YO(7R9iJ&_*%7mvv1O(FPrYqj;ad&**&GnUurEF^2XyN z{2Db?VYEwD8;>n*{V)=DbzKotzwAAT|8cS`q@pTjT(2x{VnTK7b*9^w*X-jz=TK3Ccqf@|PfYIQW!To;-DqG$ztfog7uZUcff? zEcbwx&Dl1cQ4sZ4^5(U7c*_&lK98#=kL7v4_7!P0X%AYCH*fH`B}ADJrnMPpX@(3d zrnd~_VXqCx9k&hDE{=^n4?!11?Eb>rF#}`t-%Gbx)UqVW4HZ9SJ*L5s($hm{S11Eh zt-_9@QLDD7OEMZP8OK!rSiU!!{>P7;K;R+k8bTNPOK9<=md=Tnh~4Z%^WH-X2%A@n zl}%;rZGLJ(42f%}pFDMMcXw7cmw9!O);bD%Qu3=@*vfZB6H|@42V$2J6_xK6&k!Mz z0{@r7sA>$3K#@9QeS*xz#j>YQG#!Qvx%(Y8+NIwhpl9Jjj@jwyZ-vHer}_AM^X;Hj z1g0IzZM10)!oQ_K&Fs-HKYcQ4{H1);I@7OLZTsB%FDaq!%b-ca(b$qXoB%1Ynw^>2 z#z%gcJyP}do39gNPG6FEC)GR2)Rv2oM)S2rcj)&P9}x4S{H~B?1av!=S!U{gWMa~( zrAXYHsU>6|zF$7J3kq_MEy*YNks$@qu20Wz(RaU!)=snI2vJpiWRLUPAIN7Y`Askm z270kiL7}~j)-=*MgKs!kzh`rp&p5Bo8+?(!V4+^AC+1M}0V4Nl?fx@bMP?Y{svKAc{|HGgAs)p3nxRCaZq`w=X)4 z9iMS>Pd%I*m6aEyILZQ8rfQpF zp-pAAJrcMMRU86G6RYU$p7;5N#LL=at2eGqj+=QTBXSq&yH;q88o)4?0U=4Q9vxQbv zn8$cA`1x~NR?0{{Q`3~H5qQ`skmPEymhw6y>|dj#L(l6j*YcL`x=8h z>&NMEW*gkHTqjXf8h15NtJt1gpU)n44Kduh8IsM==HAez4Q5~;D)S2GK4!6broGc& zIf5lv6!GVDGiy~~LzSEJulIGI-dBi=h(WfszG-gGWgZ_2dy-&$HqC^Z#RtCqZBMxY zXT-cTiHw%9;WPM1aJgTYe|I`}fy`&(qmo$6tza(mM4$;($sU?()RfuUYdCgDx?CfY zf!}zQ#J{wd6ZZ8D!5kObo1Rcb8CRVg^IZ%P9}VFYkww4>IxnvLD*O;?R@qrB`<@P^ zG~-+{QgU&Hh~-Sryyvi-`7{;YgHJhP^UNOS@;A z%6gkA=sdEvva+%m)DI1WoA*GB1Nc|=x|QZKQc?+pK3vb$lunD16G3L9#shUS9UZ(r zRoz>0P!0#npB~-0CSOW~=w2Pi1=y;&Lz-HH{?td-PRLqXR`FM}ycIkNJT86PjQVse z=1YCij!2km%~FRCkpgnUZj$kimv#>M^71yduY>QxSQ}zW4D!M)Yamc>y zp{9ebLPbTfbJ-SD4N@iR9K=GbViiOB{k+PAw-Q!SCaaKp1D1Hd^ZV(aIYfyart(9_ z3(e3M$jC7zck1bsK^;4@dAk?G!i>80nb~gvYzYwa-oYLj35g7;EX7TL-#>6lUqAh8Zf@Az>D1g|+WWY$T*Sa_|Y?F&@$$>|F|Z#bcYbowjivHVFS}$%b{_^FjjgaK1KO&9SQoQ*5})D-Ogy(_~1| zc(c<24+alJ5V1accG0@&cKd{oaHi42hGM}RqWi=7{`0Zj_0}oRLjxSw#>O(w+oPkS z*pm6;3yWXQ7B08ZRQSts-{gD#RLhyMTnX3FY%w?f`{T*D))0938*zX$rt$lq3F{51Q%LdX^Ix5dR2+&U`gp&>L1;xfg(Q{U~>*emvm zz2nPtT1Ppnj{WL}Nb<_!s>!R#OZ;7f<85U`y3WUsY+krB1{}$WDYs-mn)dC^t`0K5I4maRqzgvtNF{8Rmr8OEaFRPPQKJ_ zjW@YacWg-+S8eS?5&eb(rBbzu`uOio=g)O{pjRz=pVH{)=m;)1Z6nU)Qu+IOd-3r% zMo>4O`)9W!JZ-LN@)(Cbdv+9CJc}_8>ewHvZ8cC)*;(eZg7>-JKEsju*-Qve;mj!tlbx0?ny7;C9Hkk@M1$?F@(~1* zcSu5y6R9izdgsT7s5*O6)j!40A`lj5R1}u$sTJ>zEei*e+|+yd9|8v@xB7#N5{uVBm?h)r_Ij>G*JW3_1@qS?to(%5-v9!G{wQ6E#sjqVN;#T9;FANInDgLi2NECfncV zs0$J*1GeHF&afSeg@qM-5{FK7NF&hv`e@Yn+?utb!nWGty++w*U=OpwuC<#l8(r-w zya7crmLrBtk6yp~xf&eYA2)T;#!m&YfSoUm*H1rJ_3;&5Sy}V-_U)n~fBAA_82!Yq z%1gMdqTI26L85Mt5wim4t_99q_pPPx){epfymaxRR24ueXAaB_>^K{`U%2)(RKYS4D+c zQx)|OX0tl;JDK#E`)f;IPf3&@O%gqyOtcgdyu4XEx%Id*HU&G+{KH7rc*$1N?co3l z+_+?UvmtGEOww3(bcma}HG+Qf02~`qjw3K)IB6+U@y#4BEZ^w4q*Q zYuDs*TO5~(f$@!U=>2S#=u?A=(4ZLb%3-;5e?{d2wr0n&A@M2SXkM4R3d6CIF{A&K zz&JhUidTM&bIBbU9mUM|*QrljK^&%2pCj=mAdV2J0QE;oMvMyMEKD~g$(hHgeuR7c z_QOXqo3;yB_@Y)fQTm)3f;~jpInE zy8B03wku9QdaLdwxHDm<=P67~i`&P59^!9>_y)(t#p-gY>D^;iopNE^9zwILz8`ok zX|9Z7T>D>`LHR91e(l+ZuCo z^HnM5-qw+jo=oXPX(?)d{>!baNiK(?*_hRK=l6JZb;rH?8v={ibM%}PZLt@&sw#N` z;G?*hwSh*|S4_5JXUTp*>KF1Rl9qnWngHc!^Knf zZDnO838kU(Qwy88p93Ip9G%r27LT=t=*Vm)7Vvb>RN->#cY+Hy{zh8%5KVno9gn*s zc4&e+x9NsDfIoKb+KhcN2jc4WXR|KrWT0mRI}h!L;Dh2uac{y-nFJ5dL4+GFBI{Fy>hK#1C^VAVNkOny*l^aeu_zpd8p$7 z=k0xEL@K`$R+TYKVcS7A;cCJG!;41%*w58+pI2B6bJP^G>fJc&aI5hd^ z&`@zW0*?T!XT;Xf=&-lH!M}iGZxaM|Jv#C1a8z3yB^GH`mV#ol>%xDVl(%H-oTCV7 z3ke9w(G+PYUb|^bm`@cOfT9v`i8`TPEbTK1b%!YrP6Zq%B=F#|TQ=JicG#UiLHRwI{gZ`}RbwRQ}@h4n(ZQ_U)9W2LhSci?F}h9_O!WOf^E279_V^_yj`qny89A}va2Idi(%CY zWm;(P{NX&jyA9fV!Ry#@-aXj;^SaT6v#v(w?uwz>ip>uNOg2B)h_|6+q)#DRraw?k zHKe1><+yX0{F;KIqfgE9esL|9Q(6_ra%C!>O#7*5v!@;70$Ob1;a!`!kpKB0a$_Bj zY|5L!J5LP&3Tg756Q1+9cDruJ`ctK7suoT!*q_a=_R3_JSJxd3;vTXU=`=65WE#hM zh4MFHk~1;s&ezJO-0hdpJV$Z1BwS=kyV#?ht>}-H3aA&NjpDf6r^y2zNzB*f%7xo5 z$bWMDjDc?R_VV9woO4h^bLe$)m8s#`)}bMcOb7TyE3DtJ$wE}Xadl=(%5zB7=VvJ* zp@Amg8r#HVo$pD?o%~n?pnbveNe4lBQq6q;O3F|F@d(ZvjinbXVXoCWcP)Ur%D3lO zZMJ^KJ)@B!&Y)4PAg)=U85`;y-rrA8#H3lIAiSsngi3&6Wr(8-HF*Sq)AE;=K4g!nv%R-Ymd3wSA!NKoRb+ipX;;9wS(KJ+tDXBpgpF~GtfeSUc zPp#Z;PNMzKl4fUb{oG=iQVh*TrBuG(Wn7NFlSyUqIfc;EpdXOy3B%xX=v|*C68Vb)Vf*Fx>~khhSEFAvB2bC5iRQ+>FgzG zN;ZH}$;9P~-m@g8n9cRVhY*+rrZ%5{F?b#eMm(6?9&1yu8)DI={oZ(x^);^Nxo#>Y z4vOO*AAgPG^PmoL{pMn}e?_!)-!HBUs-imzO_o)Zqj;vEgDLzT=XaS)T_sUP#Zv{4 z1QXNT-T5-cozo(yn%qQ5$(Y%X+?tDaQg;#0>LAQ?&P80M?{2ZDcKDU1b096RCva(3 z%oNE0heYg@c`*YqTizy~s-|Bf#)lxT*C=q0=9Y~jgCzjlh5$dHcyfq=RSrika=*-l5Imn#RR(0lr| zZgj8E%jB0oOZ-Z`0Jv+VuJYYuw#2qs+Wh{A9RN!}w7sM@Nl>m9x} zkPw)vc}N4O$w1!_F40FuIyz1LxwpAqjk`bqJ{lB4Wd1q1IXs^3stX}`;>u%Jy1ny3 zZRtKjOib+9X6Vu}*{0=P8qGh2 z>NY*Qi%1Ytz#<{1WNex3kBU0EE3Ym`V}w*!OGrrcc6Z<0P-NTaLP)FY8cK8m@c3+~ z8`JU?J@*HZW2*VWu2OW4wnLN>T2pti{pBx$XvoNvL=G_gZnn;@>v!fy9go+T1|)`V zjQjG-Aur+JXi-BK;6A5{g}t%?&=VWVd3&BMva*WH`IZo3t=($OLG$dbY%-?9d?k3O zNw~@Q_6%}&N>%^uTgKO~ZoOg3dZ|&wc|aI`Ca2(rMIs_BTx1rD;)TFTL){IjE|253 zKDi8<4C<#Nb?Q(Zf7d0Ow0L~ER#ZPs(BwXu4s|5Py=(3o31p>!C@GgA4ZPQ(ut4-`LF8O?pK=Z2O>A^nMk#P;YAp}DqK!VPqtI{AlN@g_E>PyfDKNqG%H6OOo$0tYXJQc26K#s4U9InL zZRlvX-os^rQ4g&>h7+U^1YoBJ{#0|$E6u&J_~(G^tI-9M)ZF=$vVE+*rt%Kp8(gz? zi*30>x_$nZX=-5|F2{T81MnAa9un_GIusc&y;?RtSk{{l_lrZk@XhkCukLw2rvi+s z*<+HOmD#9bn!}QhTJ2+iWtD$U&rdGtfL$m5n$Sz20HU0t$& z5`4H`+`y!**tkC}6%m_yPjgie6XO!$a3}zk4tlM86O=d7)Q8wX?GSAN1bowr75LAo zQ|8ru3r&gDdzUv9Mp4l4kvcH6%ro{pg4N@CXV*NiFoD@{r;5N)4k2mXYV>?h0O!?} zUT?dCVORq9**}(n=kL32oY&c zH0wl;j&_*$geNUdo*^O2EnBG-!59Yv_OK8BGfyn|hbP+cSLB32cQ)NAH*CbjjNX~w z=%q$#LiRBUwU#s)mQ3_3rVYAY=vL^7TXp-fp*T)&6(RY^mQb@E8&S$I{&n?NNzd8P>fP0BHtA~M znQC#^$$E0%144WGCF-u@WF2Ohu1Ab==c*rWyWcy{2LN#d0HZBHhROV_YBn9JRR`WB zL`@hMtTz?X>sYQ2w<<}1z)<0mt@)~Di=isb>V4L#4ZHsRox?Vr*2qTDU{kQ6^~u2* znCFZDRB;~n#_{6k-L@(dHGhdez{Bj%?=ZPBg}SpggQV(r46C@-9IGR}l8;KBAB|p} zZsK4PFg0A5IWuVTj@Ek0O%9K~qkmPbRqsAynfk>eZ~bg20W?2fY#-KC><~IADG5t< zabRS5E<@o^sgG(ZI8Sy)@dB!#;xtnb%+G%TZjU#g--gohZUCqWF}y< z^Daz*(LfwEQ%xp*K~~{wHV(>3BP;GeYPHSg4j6j=GSPmAr<;tFrPpBW&2USBOF;+8 zl8Hu@ox@XC==>9LC=WLfjogzwVD^eh{fY5xm-{;r6>np4N~Ycg?lLml=8}1r48?$5 zW*csQoa-|2Xwtc;n3T}r1Z~>>JU$wS`VQ>)g(a+QEz$GB=ZOHZ3)X;a28J1Db-jb2 zKgp5BXW;hG>qxDC)?g=z-QYqe*50)r6_5$powA&$(=55$YuHJGs>vqc#ad0`p{MTZ zi@pBt$$We1INfmB=ZmscZ#vx|H3tTE6NJD-)vWmVyH)uKn+h!jmS7QjWV?!zO4Qhn zlbVoy26b<>K{GR%-(VcKD!}|w>uSg4c^1Ys?eq7b#IPMW`DF5I&1`)uTx`Ia)2>ld zMLhzErkZh6nWk#bVN*5jZwF<+$>#Tt4;1;%JSx$-z@&p*wo`qtv^3y%aFXG@7VAGT zy-<-{fI9^)kB9TYn{CU0CRJ%m8ptE-PW>3WG1Z}Fid)V&^p zi5`x{bMBpyTQ4`y??&`3JSm@gsM>5!UvTK`^gVr@t%K}*z>h@H>}>I9F3|uJwU&xU zaM)k!bAP2=oNriyGpH%xFAs~|@m_pOX?cEmQ0oLymc0_Vep0ikzBcf}IGCW)wAjy} zUey~75ZP16pg@hi$2ADYJAB#LGU;kRRLZ@Bp^q|zV4iA4_~a_NN!P#=ws!@d>ROXI z#g!w@%Y99Ze|UM~7{TtC(Fcf@TVsou z-vg7cDo!a1gac>#80%LRW?}u323({G@OAKnNGjUVhM`0R|7>uf=h@RNn-NWrCCi)v zT9EqD;X)5hlHZUQ63MOW6dfIHTs%JBCdVKXb&bQhPpKTHJD5OPDf%ifTgDEF1h#Zv z5{hPZh@$;1+<3C0j18OW!{YS5fU7v-=Hy&cUV7+PUg&&hVRU@iMqWpfklhU2Yjw_F z@3>4WzP{iBc32qE1lE~^rVs1n<=xUe@Y@KcPbts%TB`ZJ9aqTzOYxdAs&RIqxyf)- zJGmkjiMRQ*Yq^!{Q5f4|xkhFxq`|Q4BN7QbyxU@a7gL)BpOXxt-kWY+3->BEe11<% z9ityh6$BfmF>yKpNy3=BE4YZRTd^18f<~`C#`^JXA&r2fud)V<9vAD3N^R3?^+KlCN~Y&bqE?Fb1ur3``KMr zx%q%Wa{41yD!xdxjGQ8V2k*$zMy*HeWB8m?>JKlocELZTNQq6pUQwBXmda)16k83# z$=fa<{#ny-ki3w8wGkN?S4^n_q>MYLqko9W>4a2Scm2GB{^Q4wlwm}r1J`4*Q|-xq zPwrD#T3ZHLShzu3(zCPUu1F+ixWS_%pEylF$$=TF#F>OaduNdaT_Yo(rUqvUlSAU; zXgb)v9bh0fmHH$xI`kwq8R&+ffT}i!t6!^@XXB+2Z!R5I>nJbrfob4Z6;&N;74wS6y(kTJWS z*KtKTzI4;OZ@dnhuH4Tw{8?8pdXO`uGrF5+GAlWX8(+Qi(R{*saRj;b&c}WSJZ!W22L!>6+C}dpvuNXW{1)Oz3jF zkiz#BE!#V_ed_8B5eCMgc7#~Bcf+-xg|#d?uThCN?+B`Q?z*;r%wQi2_|C(sO`HW6 zMC;}z1%3{v&uvqwJ(hL4hEKvx!6FOA$f0BK!@w*aOa3h)c{Pbqc1}c+u#^V*ah9A| zcJ?vZiyi&4IPdVJS*;R2zgstl>Gu$FZ@WKrtF(|RLs?nbR2}V=)#)o2Zn~KM>@FkY z^_`=$=^7(F;+$gd@Cj9%Rx{@l>#Z%2+iQ~c&bsePs9jxhy0!HvIINBPG>A*hnlh^yqjjqVO1Eg$|$I^f@F z6ipe>skio1sh?krQ1C_z%s?c0fspC6@@=N~H5#Hv2!mc727$D6O)JlD`KB>OmXmP? zrcu)h2&AHo^tZ3q9AWp2J)shZb3;kF=D$~iG^M38 z)y`!Bah@igD~)m{^Gv65zC4NbGaJqJB^K}qm6Kp$`I&hwm&oQamz}JUutf-kdIVqD z%gsv%l9({h#vSvb4V9oZIVB~t8t`>f9&79;6BEu; zE3G$z}F2t%uy?uaDv%CS7_5#51#QZKqm;|~t zhu)sy#l_XaPwPpOAvYB{x~W8t7D>)-=K^4GQ99Y3l*GGiwYjG2PlI2vZH;7~x!ZPu z+tbQ0jhml4>#k9w_(3gyZk(J16U53jx!4q$C}l3GU=O#@Rrd-k%ocEv+?%VPuJfS5 z}%#J6BKz;l;(q8jtnwr7{$V)o@}8`PRwGt15EaSn)JgtLaW=%Y>Xc zfzkL(2V8~#@iaNP`3%HhGRHo!I*P13wx2DxBKs7dw_*Veu}^*Rw}x>39>VSY z@v#@h@uk(#iSrjhL5NnfH3xh2GPil!#+O$X+^I~tC50l0>C{`}+Y4uBU~e-*?wLlX zOVtxgv2Y)f$<;tyQL`$dS!C{zRgPmpGU?`T0vAmwXQ;=)|r|kyb^~1v{t6 zUnNttaN*p)RZ4I=0dEruoxVus6-ShOcjd7@pBYgsEP^^+YPdcCMZKH54{PA9Z%4rr zWyT9;5m&&fGEN<`!d*XDxW3=JUvHM4j4htkGHRtjxQ|qUlW+T@!TK*Zxi5OFps!HQ zm47&^s6^}V@n8x8Jhv#%Sn{67`KqDxSXFLc`2OmW_`KTG@GXRzhL)DPJLg6M`|R?N zOh&s%VUZ>TT zhrrPHNW?LmfoLOV_r!`=6l7#dA9c_Hg?t8=h4Q-~{2B+OX>ss_AIjU<>=pt%V{WAd zj|1Us{e3R1tZ{dynz7t;i#&_~vIn13`(rVCU%-i%ZKtihdA0+OeQo|WXPrr_Z*b80 zn(^evBBoc8EAFp6&ttgFuh90#$|SRtIJB{eT`!V56Ery(Bj^8OJ1v?l)<`SKVbvcS z^IvdHz&BkDd1E~z#Kl#sonl6tB)m&@h>HM+rK)L(Nr(07C|x{tu^L>+h(JhJ6qaJ0 z*wE0>%5c2?PW_GJv&L6eYhQCF@1|Gb=bVEoSSQ^^OPS6m;3x#}H6= zSS`=UxoR;i@)b3Jwbk7( z`2o34$Rf>QI0LD5pYGV|RyQjqWd}29Rpp<2UZU5mmIy?`nWLiI`tD!V=6gmAs`PXg zKi!zf6NkteW~)8OVQb}QaeoN>=Y%IY08@R*XR~qZH`LV8j%~ra=cp>D1|3e0Hev=qwMEZOvjm$)_cWK%)fETlYjV$fl1-5ZZ>{lQj9JEx;>f3B zRI&(2nn%aaWs~oQ=Il#@-wn$JC^fl0J=_1DJ}*(E&{jkcYh+|NS9|ZRQ`L9vuQbF+ z=F3%(Kb8t|ekXmrHvcpTrW;5`-Otjakv3rs_ zl%qCRcidg(Cv8BMIC0k4c=l@T_)^J;vDV>uzR9agrK%tJBNK4XChL!@*WYP(mKh)n zPJrmvPAI)b!;-TZgcWQm{3`8I&|aCvBSnEkPI8lGXXB4mw?N?E8Ur0nZ{B_fCCMZ;(nh1@kVn(dBk8OgYqb6Bjkpnsd{wDXpm- zfWH~JxFz%U=9Y9?+Z#Xkrh_;hijj=kjpHS9j-W&aebNU{C1oeY?w9_>;@kq|Ub{iT zZ5(IFz3X<6=xF|mVkuxf2HOnel+5QCud}*Mya8P1G?MNSRm1J$!O@(?kA{b0p~+k$ z_VOp!;_Hu5tZQHH3%H&9(_m+f(Z(5|2gJw?MBtJdRV=Qj7v=ltOuF}idMdf4yPB#a znJIiVX+=d`BL)b!*A10_iJ+o0o1R_~q7w1dzp^_yOn&X`eA%aF8B~k;in}tz$?;r2 zO)mbrwlYtxaQbXzx`1vyl&=XhD=X{0lPL+hB{BLYc28+zvW$hrUZP{Vcer1eE}QAp zLQC7a9mFpzb+klp*fmUb22%r@KqnFiP%6^vM5lbWG+WXUDjBH{3?tn1Av}FQ%-5qa?17|Dtu`ugS<03MC#{KcI(iZsm)<`i{O z=33?*S~(%h9$!vo_+_={d{LDZ6)VduHpkiy4@cF!!vRXf#l_|BVjmG}yuH0y_@1Ty zyXf%jFyBukB4SX9(U zm0^I0*F_f5`QqZz+uDM;>@YwQR#9QA(~P`3)dY@rEz!TT0#w*So4e9-(rBQQ(1$>@ z+2{d3%q)^-!U-ah{Kqoveb@$x8HbB@v;BSRG}+M+1+m*(1uU-?YFjMPh-BBhxn|?h zVPR++S*BP>VsuK1`WhdL)C-+56+;XEc5GNeclReECRhJ$av{Xip!6?{jT2Mdf>TN= z-#xU1Fi6_}CmBrk&onA5qWA7ADq_IE_y%~R==*!b*#F$VI68uX#+Oy8pxgA|OEn-@ z@u-nB&@DA>u@l)(^MxjPJe6@6Id@kKASMA=??{qGY;-h35xMdbRNT&`gLP-BX}7Iw zXnip0;Gm}uFpxRVi=D+~+z|YHmiTuB+cAcFje(bK$R&%aOsSLOCKr8^%_S)B*CHRf z%oLHut>AvhWs0NJ+O4YM`?)TS)gt860wj*aTdU3{h(BIerEhkBj7x7_270!`v*HS@ ze_OZNJ30yr8*4?$BkS39){Vrtyrr^J;8G?c2|m85cD)@Q+YiaNZ=0&3JH`Sshjbfs zegT*Vx6s>_%Y<+x>iHRo`Vq;>aB>>4bxYnMi3w7AQhO<6sCd{+ntuNcUhrqkdA~+T zcg3_B$6l%FBu~T1{k?JcH#!j^EKy|p#KO7v$AeW$J+S%gPQTLk?>ydq@dxaj1{~$D zlHn-Cha)X=Ct6IasL?8_rl4%{D5%+8BnNPlp@inC{GOOZFQen*4Gm4!ezu&oWE!Iq zHw*iB=Mw}T@ zcAA5(*NUF526ldU!#xFM)MPsz-c9RF*lN1_;*CZbB#C`Za()Hw-e2WN*U-QhMS)33 zybBGHj^m#emQzdY(D(KBSznJmG^l?pj7Z{(Q1?(6^&pTEp#QrCG$*#N3R78S%eH2- z)lVT+x<<&jEbnxy?7ijuZNn}~>JTbY5OtC5AwO`%s@v6EpvxH zRB4%hklfAF9eJys`c7K);SRYRZtac}IBxo7q((j4q09Z;O1w{c7wuGK0;u0`R^AV0 z!!?Y$+>&fF6BDRyPw#-bPw{u%@4oeN+Ldlfr~UA+Y0N=TLo1k!=DFJ)25T=^!ep*` zcdEJXy8C6bJFp5-)qyycvzd^3swacM%3aTipQGHqFR8AA0}>v8d3|{u#`-q)8kxv!yw`l>B0`k=e{E!?B3%no+c#o*kByHL5t&GU zflrhg{_$g)IO6c=I0_0f(~*+2%B~M812Tg|l+?_!@)co|0^wbK z9`__RS4pde7RvCxXhKuwXH(2=ljc+CuZ~DU+O(@(3JxrqR%eiQq0>ny4Oo|(wk|H6 z0yVifEaN|dlV=26!=lybu6a>HJR42Xkm``Tx_ZO>V5ZMg49l5nKb`SLv#z-mGl)6N z*mQU^4mQ2)*XW&d7=$-I)4Q~>xC?dI;V?JaXV%+0NWYyd(vf%jrQ9M?7$+M&&s7*~ z?fK|j#f?*!AF<|y)Z;l-wg(x~CkTL7N2a0G`>detDaUYek&jVbxq76ekm~Z%a<)`n z+cLe1GqSG16TDRxhm$u#-BCz;SQMX37hgBX(37;!*&ifA^on+`gHPf%LHY}0lA_OF z(c_G+r>(CRK#&usQHdW8^;3WQR_7#J_L1fg(w!ssmdC1cye|{xzdJmX1gv+IG7NzK)N=#Vh7C-+*&>6wy(rQ>FHep!XXe&-pQ$H zI<4~xbsziT8t5-QDB~qfU0F;g-g){cm1}ozuj*#CS5%O(i@!l)H>bh)OCqKb`oerpi4wjr=sX;)G4*n-VKUGCW+A=C}$+R+KUh z=d))Qa;eQooVI!Z-4+Rk&OCJYu!9={18ttVLZ?T&_UApLh^p?x_m4U%%)uIY`D40l zo(Xv-nESdpn-12M#5^u>85u%{)6F?qYbz@!o8zK7DMckY75Y8qG>x7_aB%(;)iMQg zsZE@A#4{7=FsS1`6a3}I7F&#+;&}R?#Y4_Zg579Z+Z5w!$Ihh|h%MWyjIZ@)C+6#Z z&Jk;BYLb(a8-D!QNkP84wpwKZrqMDq8>L;El)+5oFw@XLLAc`PtK+uY-v)jBVCjeA zkW9EE#mh$oCn%LH;QoGuW(><5;9kdk0SK%w)t?~)Cq^Dc3#0B*7?~J6>Fgr>V7n~{O)o#F+m`T|yE2IZn1%&in4pKy%X4K8$sfC{cxELt`0I zXwv>F&ddRr*P2mw&h6RDjqMoDNx;oTW;2I2Yr zzJb@@sjqyZTPO`>03E==)2IR7X>ee3L`NY%J{Nn9%2gi>u`p~hoz{}1dTbx@ai37z z0QQi5u6jT2e!ZOdaHz&d&pzc~tki#o5d{CFd;zkUf~D&v{BB*2IL7Wz{#d@s>YwA` z{(o}GpEaaqRL~tufv@JujyS1_!hP0w^1r5-(?D(N4=)lMM_A7RE{mfy@@vjbFr?Zh zQO-?K>Ke3W;CEhpw+IKPF9du)CKGk(=R-;2LFKCAm5G~}Z7+*=l4dc~koT5<)(2@X z;=n36_W0a$zRz3j!j|(X0MB3ztWo|ty%Sid{P(Q7y0?hawGIf4R#!`N+vhqMLe)ip z1>d*^sScfoOX$PFt$uy{>rwqldArCd`MD_Xcu2?(UAMg9p@<{~emqr{25%L{iu_85 zd7n$(MP%px0F8~}kM+IHDND%0eEPW#9*_k0Tc;|8R}b%pkq_7?QOo0Z%hXcsf2p)Y zL)$ep?{q+4;}g(wL(`_e)Z|LYf6TwM-D*;dP?vzwj{~=bKPw8KRxGci(k}DxJ}p{w zcO$8}Jc}qwE}!EA=Qku-o~W*dqVTLrPsnaNFX7=Q_nN}(OyT4q3y3Jd?fo9!Cv#I< z=dj@WNmn0(CJ;@idWTQFhVN25;UmW5&vnlp7U*|p_Rfj=Dec4iU-U6NTr(;a@I?YCA5YN0s9L=2ZH=q{}l&r2h!*MCTg5o=Qrb~QE2<8yggZVgG* z;)?L*S zZGZgV>l=Ww6aBX#oL`?js#AEBUm2xHJDfjXkQ}i~oC1RP#nU9FS)0=vYe|Yf*J1Z# z!{$UJ0bmB;-LWi8j3+gOYX4Y?42dCp=+Z2&(FWVZY@PK>l6D}Ze`&I?u-Hp>4ZCz} z`T5ozRH#l(M<X1X)=H2smJ^`tF*5Fa9KQsf`XcL@G|CdSIW7+{WuL zAl8M2$+58gOa`1RfC)s0{@9s{)YkJ?q8C?B_vV|Y3|FJM zp^3-2i(mwbds1B;GO+|=*+01nQK=XBTOptl-3;&;B`HhqY=31x$;+4V76#dl<}inr zB+37^Qv6zbf!fyL@0;U?{->%SwFh!2X>iC3@4kH6(`Afr8>|0`oY(zOm_ZZr7knM} z2Am#TxbtN$5$^>82{{W(LRTNr5_bTa(5?QbG&&cDUpj#n*)D4GB&{<8mclHlHOBc6 z=|WkU@hI37vDnAJHbZ;Kds;l-zvq$A(Pf%^7+|7CWA?7L7#&<^nxC(AkWx_iVu3FI zSg1Rb=k0(@NJrA&Z(b6lO{;tK8k-HDHoa4U^ra+~JRt@~q`@*qw%pmz(Q$yblISg7 zUcwuOKD*lAV%#U=f69k^V(%03&wyY)i|*gD*z(;%_>7fq_UhYUMrR%-Jj(wZz0+9> zM_nY&8PurrIBk_B+g^1tWmw)#74 zaSCbwnX3zbot^c2!ZZ&Z1Ao5p{0$VOit816>s*;OdOz}9lDWl`sHoLwP}^ba#M4JJ zAs!#rjD6y#H^-MvfWK9wS#^NAtc<>>${Jrj6H8h zg;BSeRkes-rxE4uf@UVm1XD6c$z%p%Mpjsj<#1A}c1ooL-Y6PmqINplIh{hPsHm_7 z6>8IOW_je#xf10g{<%&}Qqt@X+t@}&OMa{Fb8pX|`K!m?1-^B%KPN|f1_tUK?~!zW z5bw+y5A-%08X6*!#N}VU;e*~GlDt3N8x+=Y9xARjKPex9SiY~}; zd+>$0UjD`~sBjRh5;e9tt)OgIPEX+MbI?$PcqbbKKvvvOwlj zpNUADn3s)BI3{LmECT$I8*KLveFt=i1>7e_#;hC(SPYl&)YaqTZDZ$Z>{HQf4i1on zy4!fx6Y&Z51nh3Qhm{VIBoVIalqf@qHo4!Q{MV=!Wd%UQ+O(6Hbn6@Sc9%$b1Qyzx zMpCk8XJbzWBT*L9W@mHM#u93#{GnE!S0GA5fDYhqY{OOt! zb*e}MRud%jrux;t(QdOiVozcCy*QaC7@v!6VaF4Qu|AVmsod*7hxazUf;_~}Q@C$o zd93TA5X;%}?OC4!em@8ArrOa)O{&RZrRI)y>_D8cvPSShpC%x&zITP~G!upAZdW&_ zm#qAbmPsm#$_*~JgTxjd0Tmw&4|(qr*!8D=pziObo(Y5l2$qER8(R6Ot#+72GG#Dv zJQijW7N+^gSof&eJ<@%edp(D^FaK=0_4L(%&iY-wMs1Jsgeva*!%&TVVgnJMhxOh` zL_Nn~Z(l_p&*WwWF6GesO3O*gSd!bI{o+=>K9{_x2D&s9q2DIbZqq7Ywc`Jlg@r}7 zv99~g$71bfO{b!V`ixdmbQD%m5xtAu{>jd?8TxK*ZSB+hQ_Z9E7l{)wfPca5Pu4db zS^1%-tH&n(^m=%Y5r_{<%eZ3F9Lf&Rz)lbTNbD6B8Kdi-)7J2`(|M zo)kLt746890A-7e-2VS)`wFP4)~;Pb8tD#kgS3EjhalY{9ZH968l*wGk(BO~kZw?r z?(UNA?z)@uobSYcV|;fEh7M(|_4b_4jAy<>X(hE>YSK!M?Ts;5%iRGX-QC^OTh6*y z>s}*@So`~%$6FJDC+6H13^MWg=vLuyfTd|;)z{!Rps#@&TyKo$qyOd=O{KL;)2Xn9 zCz=cwp9PgM{p`K@4w%iLW;r|G-0q+L%_~YqYJ9lMR;IjHtDf8SOn;{*$P)!Ce2v3t z4(_Jp>f9RJ)=)d0PF?YB4pCC*i`1))im}?-+L4i{#;Z^4~>2|P;3|JHL7|vfBS=X4a1bmFWrTuhw zml^9xRe*#F78cD6arSleN0w9)cGh=U6?Q%iw}%?z$%s%;m-1ORoZsvaoc*4hCne;Uxqh$mhhk#t z%U3F#iK_rKMzNX+NJs>VZ4{=;B{fN6^8{XBN?JQXI%{AB935-mT!r>xd)9?yE9dHI zzrxv?EK|8W3FI8@H8e85O*Q~ckA&Fn!DyAyAlZlVseDf4PE3_MJ^@2tmXg=N7N`e( zeaPDSGecvqUd{DY-4xKOm8py=f3)+9f#gGd%wNC-&eSKh%-e1a6q)PnXlmSYhhU#% z1fji_k^(leRRpQoHQ3{KNcQd?P7tBua$D3o8eL76nG)hypDkqduHnXL)*yL#dj$m3 z(e*xCV$ofQN=SJ>Pk>}M-9osx=ZD!=B2lOb)2mfVw(0x^gbNLoKRWS;rKCKo6H}_N z0R2l5E2PKZJi_AU!z_{YwV05;{)Z2>y?bt3oXEaNw0rqjdrU>+mO4UJAI54KUogct z%@?Rv&;aOFF1sXSS>QOFPp8ginS<}RDq#NKA2+=>IyodEN9kKdIjX6#EV~L!lkyqY z(^9LfV@%(w(;Zw0aAxC8L?qVfTCbd&qPlYjjtrYb9=*+qFO~H@+wk!FAY6B}DccfB z2?qe3?(ScE(1?37atfO>-6;V&j#UmBiO2j}LHwsOuU}tV{baN#Z_JHszCixWxcoA} z|2nl`#BiuBB~2J9LrIcghsSgT&1$0u1SF7m;v#7g@T8{w&eI2Dicf`*@k-zOMtf_m#N1|VVfe@^z&B|; zUPt$Tldtvf_Kea60s(~kyOt?T@9xdFWnHti2w#;^?vrB`f!cQuF}s6i$kI47y#&n7 zQe3Kg=+@N6V)i}6Wcwt*lWiPxvd$~lb*)q|U1h%35?-^y=J$Rizw0a0<2{O@uxr%j z1l$&xWs%JRNrp`i3?AwI9>_WGQ#@7U3axgw-7~~-Q93LM)=pKzl z^JRIpZ@Y4KyzwiCEq<-Z4(fc9Mfh^>mm2Lut&-@%@nhP>y45?JwSwWW5n|r6ITxrZV_T?7nXcLvU-{ zZm2pTJhQ$mLEuJ*yr*xghjziBM~&U+oOm!QA+Vc+R=wK2cSUJB@ox4{(QiFZ5B{xS zE9?SlYD(LkfqtEc&UUw({R4zIC%m?XtsNOwc`v&`MwD5iCaGtha>-VEiIP$ep`#PI zh^Xk^{_tdD56A#peBo_@*7Q4&E%f@wPS{V2h7!g6E=}(GO~;>|qr80=-z}=016Jxm zIuzO7>dZwc*Kmd!!rsj0^b66=aXn{`TE6WOMy?l7YGk z8e6a>J~0W&V3v{+E^bStiCqUX7boXR_D)Qs_=#<7*)}>|sc7rlzrS?~0 zA+lP;#A%*EAib|IiC>tSI`w15_V{qG=7fmUb8&ImVT--iXj&V8BMPLKk&esJTdD|8 z5Ym0_Gjo%}!cv25#Iv3Sha}aXdr027Q?f0sgCO;g++zJ)98;@h@j$Se!e_O2HnHxb zmHCc7KWsoV0lRh|eFG!p`4I|lBpa0Z#OC$oG>p* zn1fO&_(detKUKw0){RVb@Q;<0l?n3m%LxfBuh7wRX&$4Dih81~V+%lPRL9*?YJKl2 z$fWz5-uW5$%2Hf8n_pOvCcuJWcnx?P4k*mA+5SRI>SZ;XmK+1k7wAYU|B}UNG||Nn zil)H{yfHy5z*}djGB}a4D@Yg^7z&My>}UG6jD5)i<^38b9S8iLwK+63RC%f@1V?gz zAi-RO!QF;F$AS(u{OL9L%FT2`P`w27RiVb@Nd5I|YnZo@=LEp&Z>~cth0Pu~c&o!Y zMKiSsX+-;Hm!aQa9oPZ%>@2kJ&vlWxHB7MraM7?d7a@oWXT2{qUC?tgGE(yLhJI)N zTCzSmD>?*?;R!~~X2iu8j#t-ZDvPvsfc4kzhd=QC7JlMy3V`|ikKreW$ZAy*Q2#(L zf+iFswg*>U(lHz#P0E1G^1(sIXWaHhIw$i+=)!~G|6)aw);!7}F#t1YH@X;bvX4ydy^2644c$_?Dc94N`|^k1uj@{oe)QDcw6u^SS=xqK%RPL2S9o3B zJ?-DPS`TvlJ5kPHRyLRdvk_O`t=Gz!?6U4D*sv&`Yo|!JpwOfA7xRGlM<48PRY2gK zYl|{k%^o+z)bF3veeY{KSC)0c7dI2q;g7&a&ElRmuyXkqf0OXIfrYKW`j_0IxG zCCE6*cizl(hwiSv)RdAJNa&~K#?Piua=-(V>3mF61@-Wie`*BAVr$K@O7)qH12o-Y z(~9D9i`PYjGDch5;w{$(R)yZ6G}nKiqH<9US!>P6grco8a;zX{W)AduN9oy|A*FcE zenGX8{+g41A|4kLy<^9MiuXk1RmiKO(=H3ZhCbikEV`+<)tSP9!R)|kXfWnS+j{pP zKB9btW(Yrr#Uz#J+0j;iXQ(z*Fq#;G->m!r0z3|)5Wl6dv!37}S@j*yiio#0YAi9n zvFc`%5Rk5AcaiDM;fdmiUqVbDw`ww}9E-*;5x2@?-+YCYq_AcL#<%sb#(WwldsZJT z;eAjB>Vwz;KkI|+KMqyQA@}2|aOnv`_3M-|;f?4N?e8C)JmVIIH5%f}kfa`Tmm(B5 zxj_pTk@ZB;PX4N*Dp4jxbqEnaDh^9YF&AA0wbCMPa;?iD~SLXZ5uC3B(xO zp|8d25WP1GOlhL!F{&-@8M_j+-@JMd_=rAB%t5w`YhRnX85 z2A?0+xmG|^6TFUvG*X@o!g&Tp@beDufGq*X#T5)W4}C_dt;s>=VK!ZnpSOeRl2{qq zAjN1c*mKN>Py}DXF%=sFIcvy|cR1_Uw5&}1W)iS|lBd@+w0^g2r`ND>H-|Kg)ECW@ zyJi;cjftYOgU5t7bPOCUoaE6ogAFmUJyz;=JS2`lNzES@k=i~9QnkVVTB6)_dHG40j{nGp$p?8g zHadyuist=RuuhbIOB79@2k)DHZssApvB@u5RacuP>T*D!OA~a5z`6DMPyr?&z4TaC zz+u%ehuZ;lzxNtU5UM=ECIGx{A|Tv&DH9y54Doknx|!L6P{EDYH6L{vhZ?ZE61ZHCUx=>UNjMqtpD!$AC&03cRx1o7(6E_<(L|S+*@Dj# zae4KwGi?IAhJ)B$3l)bMl!h5tjb~iO+9+lFwE{v?DU5sT(?+)9nU3urodsnk;}*!m0AW!j+($Edb{RI z(F4#gwpho~{B7@r?h?NZBp;O_lR~4YE@@ajMC-AJ&$VXpb?C`RQJT*caH=>g9H&JT z(eZfhQ+fHaNC+;->LiA&_-86s<3E+%sdoOS{6_RX5J*fBnDn)?qk}$I=y$nWs|Nzf zgL@jAZni+PVcKyNdc}oXd^0&^#_-^rlqjwK%^M+1U~hZ((S+5Lgk)|{`CyY6CQ{-9qaII!`!ocp7Mg@;=$uI6Bh>#N?#J zHig1CdvY;xnsd6!R!m%8Kv7X>@O!M5jLgU6TSvyTX*gq`vAVV{YQ=j>i^x^CBjuNS ztakxWzE9?-&~6c_$iKcr345h)Vqo(7R;xAzxC?)g7{B)54hxfq1;F{W7g@j!k~^-h z8G}SZ=(k;vR3J`^jln4y-@LtD&V=^9CZA@*(+nakjNMr;?;BCRhi+%X4=Bw&_q@$J zZ5$`Dw6wf}wtqq9tn~NnqGq3ePhxT)W{Kmr?b>C=w|(N{B(h*0oj(&B8hS_${vZvK zsYLYLJx~Vt-YzvT-hgoRF(DHf>5@t4`~!e=QV;xUf>8c_1-lhYm`U|CwN%KEr` z>jGpA9TP61qT(*m8!PVt1@lxnYCP&pcihvq2ovmUH+iHqZeBfq7>WYNZ>qfcGV*UK zjlpdf%3cp&)diWDgNYO_4t3>T=!RC$G7LC8#FmF3bXs~+QXem9OS@#ZpAAOmPpCg#d;4V- zk-B^sEjp@2rLL!>PREsdfkj_2*cm4H{A9I#b2GlfpVw-;_%-bUdGBQa6HzCAxrWziPY-P>%+v;RGgPFcdO&uF0R$a%Vhz`T&2G{g=4=(>Y!lkm#m zN3Ngz4GZu+ui@BfW0qnSDyq(!G8edtakuFXH zN_xSK$sT!JPI7W`S5gU#OnrlcgPCevb;n7&$P*QgR=TTAH2Bf^vzs>C4PQCAM~_xV zj2cfri_-r9{g6opt@d1Jec~vuc1{AbdhVw(j^jvybq9%f)3yZ&X~CkPkNVA~b3 zaY>1r&?>TFEix%yGBR$o}R zYgVPgp}#mXj@QK>s}3~6mybmpwe2qtGcprN>+(_xY!AO-2eiNNTwGq>KIXAJ42>>} zgu1;hXRfNi0@jU#Sn^bK4JTOkbs|&{26JbOQE{Ux1(znso1L$))MUQ1 z0=1uO2gEzr5^_`$0n&vlq%z4QySii9Pwa?24|gU7)YLYbJ1fW}<04|-&rd_h2s}b+ zZB)&mPfe1%hdX}rB;?bTmK}Y3bo&bi&*&U~X19By_!DCY%3|mx7pkeo>vsnRu!1_? zF|c`JNgd$%b1|?>!kIe(sKIe;VN1l8Y}a~Rjzl1k5aF}C+I;_UZ&NVFZiW7*4mlrmn^Y-7}pyu zl3r}h{#7D_vBcqEtV7eifqkWuszvJL+^NlgaC&Jx_Q#~-u5K{I6oYVu7tQ>SlW^@% z7e{NFY#GG3QCRt1h~UN;k0*eb!XEBf{0jKSiYmvj-)1O4J^}l(NQfH4% zrtWem%)5oN|M?Hgr zTIvoZ>rup(RrSs={TzBK4@*f&X}dGgzA~0mTg$a49GUqay>MciIy9ZE106!gqg4r5 zkf|@7#IT*Tb>Y#Y)!x<>7!-8E{_LCc3OK)S0dS%3+iu=V%@}$?PzRl{t0yl+9E6q^ zvgqu#uIvUpWj#YdOS(d*ihj&P%*x8j^zt@U>RaC#Hvjs1kiy&bizJTL1wB{T8#aR< zV)Imcj2Nz85zs%s_fu0SaF$CAGQmDLy95{DddB0B7}e6=(*pBneg{uGT67~%BTbR!3R@DYhvvYE;%qJYAn#s$l zqQp+_zTWxNG{Jtli*O1gftEfuVFLX8Xa6(JvzTVxXNNQ8)=SHE7a_*RxzYrz4Ce>E z;cOjU-yqa9zW5@FPo-LJg`*jnm`vBAeY5JFhYA?|*+NQ1(YCQ+bh5e4X4_@n4;g?? zF7UUU&p%2P{1M%@l|WNU1N3la0|hk5l~rQt)VS0J{M@X?rMmN~rJ-{!{uR)VK4A20 zpur`w7zdQw1hnw~E3p3`dBJWRlG5^|?9B25Dqwt7q*?mwM!6y!0eDaTZc+@{u=zrQ zY`@*0$0{9QLu_E_aJl%Tx#&v;5)PaR#Ats zNP+@epOrr2xNCiMzLf<@2L(l-+u1J4!F<=?gxmG4BPa4MO+*YoRaC{@gN%eEEhmNL zgGfWUY2GHm`3~xm#ua0A-(42$k=2_?Fu(VR4m&qYdRQx_&3pG@(i zgUoUJiYDjg1M`|DDugRrvPDUf3d}=F#&2eS)cL&|0&yTjR zkH^a(9a(n9?Mkhrqd_e@AyzfmPyZ6^WD#--%&alpo3fkQ*#zw5YY``Y1gaG2dyI}- zMX$a62Xp1m#XRp!A4XH-7aR{2#K9s&s}Tr1QP6do3TJ=80@$mnE|AY?wYWM*G9y89 zT<{<(CYEK7XO(($&3SIDQ4b%&>4f9R9E04FD2ukq=U7QWVRd-AC?>~ZMe5ii!I7GZ zitS`0CoTWzvKik&?w{#V4aC+q_&hSAqW!;XMntlGUVX%@GGsYif*G*T9w_|vPC?z> zohE}5a$`V~K`LSfe@&!6*E~dF{D3Y1IbWRXZ;4LgJTHKWsfR?KfP#jL+r6NNY?1H= zHpPXWsV}1j7aucNhL;wQ^V9DQ%)`lYV-R(AU(gxChIH28hfT>Q{z?Jb(nOvpCe#7Z zg)?Uf9OS9r0VuHWycoe(N4qyfg8~mkn&r%v=Fupo)O346=s!MoLP@37&^%Lnl3mc1y&n!ydwM z*{LWm7|!-AThC>*Nhb{sGG6a-prGMt&PXgSjsHuXH*PU$B~CUbF6w|2@;^G!Ath^n zmr7QZmzM|H99Z3PJ@G6(P19b@=T(@USiKlB5TpHrZ1L7sjDv$N7cPl)`{In@WH$-i z1Fqj-JbsK->d)sHEi||UZ1j)5ef>Jcbq6TL&8hS}1GLX_a+s&eoo9z)#7j$=;vLv% zziDy$8AN z7W;0ACFwLh;@GsS6=_Gq2K5;i0=w<<#IH4y!YTXXHLI!P;X$fcI@pfBO@mDk}E^ME7G!7uw-w(2VHg@V(hHv00;`F{NRLsZgkj}xGhj!@`d!$ zm(AgPeIfe&IY%shw1ltZY5m4*vTwG0$&IDa`&2D`PfV+ph>soZQ+`dWUYqe#;uVRS zH5bG@Ypv_{&oYi++&GZzWbbcwziATfO~%H{rh>x{I>h4~Q;AZZ7CBEmKGnkk{LCrI zH+Cis&=;bSID~>&zdZ8ss`2xE9?PXx5UxSZFJdXCD#34Q?*qw4=uYxbxT|8S_7c<{ z8vlBcvbBnPW=etTL?~U6-{GfB2ahBKci#dC}8?%rMd-Ja`59Uzye-`M{~db!2<1(J)~4z{>ox|IAs@8NKfzjaCOI0P((^} z((#ZWi4JEVOa4TPCC6w@oRx^oQwAcps|ZYn^>JA}FRKH@prG;Ajr$QqDUCpLcL)La z$tNw}1&ausCek@t`GQA_54Olmrzav(@-mUCnimYL;34$w`bNI)^##kaXXu8VmgQhc zBXNVL>p2-ollk_zY!~dG3sVUSiw6~GKWPYA*4Ndj+yyPqtg()|gGTMyPrB9Re4nQT z6RIwLq8R-RyW>otkC3vMv5nKL_tIe1NYp(PxGTWPSm7!hVl9`1zCJr(l#R{W5UmpCe%(n&z{CugLSc{z76T5VXx1ZY40{oY zjmy36sDJ&dOl^dYkkbJN@PdxlbxWwwjS+ibpmJG1^J{eP#!!Fo_Sz;xeNmJUR>;ZW z_y$Ns$N~j2C2-2#wV&6VBn=f7a@j3=`YlX#42SedDRB@T+$#GyeYYpf}eIO}Jh6gf0_7AJB9} zGE=P>0|B90t{RWJEl&$z>lFlo;ObvP_h@zO_bJ-@^y}hpbR)hM{XzMTe>?+*a<=~d zMMWuYy*I5Jd|AP^#zA;!e@0QQBbjgK9bW$(G-+HWe*WD5=ScnZ>>BPPXv&8TIW0B5 zI*u;<ckl-5$4##i;h|x? zFzpJN6pGy4x55GH?g~FKMLRbslb?8o3fp~(jl&B-PkD1kHJ&PQ%;FrCGBPr5>*z4V zQ$9d|_ap=fY;CDWF~CI0Dd>d)G8K2V=TOPy%WvL=q%UIp0kv#D-a@T(F)E1P8QC42 zq5sqMEEWo0_opq}8f5zAO;)C5dO?7pgw;d90Mccfps{5JN@)Ff@ zWVAtVA`h@6>m(+*6BjpzzG%()>G*8qOu;o8H<*70&) znxpXJW#?YnEo?L&6{a|FQE4Gm+N}GfN)I~GVM9xwB!1rYgSKu)+8%%+-AG+ZIS>d|LoM-On&&rYR;@S z$V`c=*cvaonCs9xXq=fDuXSl3PZrnnh5*Zc^~hU!DaBnAXl|h>Cs$ftyxLzkSYl8J z2l&@)+1braf*nXMt)Xm6exc6ciho;^N|7?G3KP$E#o1vi$Oa06Rs$(?(-iOdxfwoGtq1wZd(|A{<1a zJt2Rp8Gd>kME^c&F&sHn3NSZb_XjtaCV;seOuCUTcr9t*xy)Q3@AF0}|=f zaLdqOHt-MXOUA;|(h|L;%5bEexv@{-07C2F9GkS!7!oXNE z1MPEFr<;%-4&^oxNV#@D<$TpN*N)zNd_j1e9!-+0X7ATsKNQv{A^~*wKH*XwZP2Ne zvD2^BRK=|2E*+32P=XEV-_v?>t1m1eMd*xb?U+EH8IpK(o}|dVeFN>58+A`Sl{-;` z&dUC+j{l2pkiTmBfB3Xb>_6tt!T!DF>N<#V4RTkC1ILN|D|$mK{13s`qPIq*%Out(HapWu29ys=IY(O znV`|q;DS%JmY)05{3ItJ$}H?R1xii;WRb1CGjpVD^Fax_ylNeYjPnWnf`e*V_$+{Q ztyXMqrQ~ai(8Kg(>!q*31~)Pd;RjjRi7uGyX#ZNn@=rb97t<|-rBoVUqQ0>*X&+@6M4e$%{w;XBuxMSy1 zL{&Q*yz9eplWOkU%Va2Szp-3^!)jCy94xTf4pP*C$rHK-g4ABbZLy#J>K zHSb8we}w|m_0FAQQrbA=^qb=z2on>rB;5KK7?+ok_3t~kU2Bo@H0W=1R6D{;a9NhIIDVRZ}fRgLK%L>ib%=un3p7IwcW@hv`@T57(>&R1JzrXue@W ztx-5Ecv!b={d-atl(V{rpI1|YV+iv0bfY#s9N=H^z?$qmXDd5B-B4$GAjfB6A*;~e zbNJ5*g0KM4RMylwN72NNx8{5;E|xQ)M(FLP?m!%F?swT-eGdX3f}a9>$)teIX@p1I zC6;TqrMd7}WHd^g5`)X5zBm@1suQRB&17Ji$}!g}Y;{jSuJbeOS1T;Mtzh@c9;<7SxT1WEzD(3L1L!JD@(^86^ifc~+fs+%LEY zEPs@NT9rXGD=bt=>+fjJS6Fe;Ng&)P#TyYBX=>E3eu#o<<>yQ05Uu#!>fxm4lITGp z0YLgQU|E{`v@mHl$4VT#2jveASAd=VD=}X_*&&&VcJ3OxYOAe?s7&v?yueI%=7wZ9 zO+ncA5lneMWl9GMY^aE1SKWxyuC(Nh5}+X5SF7H*U=q)ef>InY!E@xP^& zF)^2UPnPe*aaj39MS063w?bKE`NB5er3KQemRnR*gk)x(N5G}Q&yv}Wr^ZlGb%3Op zgv2HA{mh5y4k*_!Tl+N0m^mJ!^VCc%B+wr2CDMFpNfOCSy=*|MzOcw8rXpHoVAl%N z;Ak8EDqI-LYY8gE#VxT_gY;3+R zfEU9`p=v~t?IoB3{$J|G`-Y@aOa@=I1QKxQtdGTFJ%t7QEkIs3e4(IgEdhzS)Gba9 zUq}!g6UptG&zeNHI`Lz|=3Rv))FHRy!pxwZ>iW~sYwiO0ebRJ&Y_{C@2jIExOxIDL zi%HnrP%LleOWLISAumpT9YArOT;tsz@YRjv?QqJ2k}|IzL)NmXz|hAQT4MO8E;GEWv8}nBooW>m~c=b4{&g zo+!{BDcRqF#@USN(&RKj-qwruCdZiuyVaayh(vu}D3;$(eg)XgLs!Rk>IYF3!wCkb zBvY(!hgTpc`Mh|MMb%NVrCNd0S5mi|=`+r5PYz+`?I~=qXBmsP9%#EZ&L>zU@_iAb z2g}SA=%9#z?t!ZV1L}a@Hn_tv^JGZNPglD7v&b_~a6U?zxlo?pMHLF%`|oi>+px~K zDvRqW@uE#z>t~OHrS&4TaQTLxWMNu9W(2&B3qMNcu*jefvJeCOF1Bq>yDoeS5wfcA zR*m63YT>S!91NvT0MjZGnZ8y`@OC7gT?uS~z}}wrI_r(KvKqQy;VyZJD?fBQ;C(JR zj4}zNp3Kyq943f4H&>x+lrrPjITBsXFH|V%w;WFVOFHB3?w`xsXW1j_(#N#+sMA>? z_bGPa-bR~V2&(Qp#I_?d>hjqEFIeerY(!q%CWpS__XPt2=cK93BaDYg$^d*-1mk@>|D4D1Dx@S|IlOsE>qI2Y6-^1_)46VvO> zZbyD!y#TTfe|RF|2HA(Q^ShyoL`Ggj#@S!}8D&2Me-Ne8&AQ-4hla&P3-|KFp56M| zl=i|i8-BhRNbx7qd@XNsc%Yj9GU_G3lP5)p;^i*{ZrfZRMtQ|@bH4t&9z5QGur;Y1 zUvvKIa8+3G# zxk%FtxbwIX(-pe8dUG@m9+YnXgg%zsxvT|wa3Xo;TM5XLpc8e#V<0?85fK1hQfz-^vcC z+zJp=w}uMvWDd~@99HJr$K+C z)IT)*T^jUC1Phq)%kwSV@SlP~X>Tf_A5E5ZXt#(y!)(v+w%>NlEwNovW`P3r(MTf9 z#RrpvVGjQF_kQvvcsH?vrDGudqJa2+8Zsq|{$*ZsCkuuaZTCIjJA1zrEO`PnU^fbU zyCmQ1SU$Q!l~?6OLL{gOc31c~mw;H5V!iQnXsQm(xIMR>X6&6tH~>iFWTa%Ou3de7 z{Z!(vAc@=ZHvM#;jM;RqSD4fjFyoY1wYk%450X3}3V&j~18;VP$CHCIE968k0#2(S zlwUlRK55Qh@o-S?#+6IRy-B);0mi3o40K;u+c@ze;&D89pBxV9AzKzMWxd1NU#B&E zR0z%diu7*GwyjRmX4eM2HP{tjBvh*P_7A?m1?c^}ZZu<5}gr%FwU*N88NX4)@ zq;I^d?gfq3p_&7PwbbmMDVH-14w^bGj5zbR{b(YG1>7>}YMlh;kzRxQV87IK>^flr zym|XJL(-(P>?;-v{Q$YA_0|%DwfSsLIM-?$de(J*cJ?>tja*{;U|e4Dnxf?v8}Zw_ zxCq%6H>@rd)Scu4mdQ*MX}^_}W!7Y5T4Z*sTJBt<*SqnKRrSV3x^{N_T66}>Q5r-b zkWf(xSQavC;<*wLzd2hhdco~Ze=aF~iI0foih^8kMWk;dLtL?+)n$exQbf314jv*yECgu^szO*`T zRY?9eZw+!W#M4tjUwi+b8wZl;luoy`X;D!GKgE|?+WlaC*5HeDHyvd_KLx@_v$5}0JOa*q4{ZH79F z*`(DF>${7QVZwI}SFW&PIw z2JL{)QP*UL3;yhBofF#puyED;p#^Oibkw_NpO}CxC8I<$!cH0&Cv2c;WCJ$>>FASZ z+^s7Jt3J3fwW9!{*}9Ne4*g`1ZufHZuZp>yTA9)8+@YP3jD_)JaclR5{b4l;75&0z z!BtgNHFY5b+>3gqdaq%PW(&GMB9EezLwZ3W-4oP_iK9nACQZLLa{!{`q>xJ>gUNf< z8PAdut6F3NjhcP4tV9i1fMWj3JXICgQI4ZchQ{U?6m3(z{xrudgI>+F@8B{BLwyiF zyO$9oSeaPeh#N)9_Gf2>pGc;mZ4DUopdeoN4g1_eRtcQ(LcIgBUQO3z7{t;~2n9?c%L;;Pgt{rH?Pp%R6)yBF}Sksb=-#~$P8nG?9j z>ubxc(T*;*Q-Pt^4FOK|bEo4QanTYlYcaKfWOsT4l_o3w%0{?!4E|bt5e_J~bwzXp0;hU69vyxm z@ArD|yR_-M<8bTYuG%_#o?fF2S7#WhYl{hyg`jAE$kv(6We5E1uOIIADFlIUam29- z6HYx+sDNefLjh93v&4jnS2&0up>!CeKDS^pJ_jtSsWaSOxudO}J~~nj>d;8;*)+KsNtzD(RF~OayLWYi0frUht-Y5# z^3|F5bOY}k_e~7sdPJ=99Bj~Od`zSytPu#U=7A1=QTZ!-^z+Xs`-{UDBQ%n0WuBql zxeaD8lOTho6v9VU0Fxg!;K)h`pEzDXhPKo+7& zQCsNA91y5wV)VH9+7zZkWE56>338xSX*`f8PSYWKIi~pWt>Nj)OU>Z0U%lcA>6Q$h zUk562(=i04ichaX(O5}UaOd@cIx0f~^bmA9v08Ws2EyeBK*AGB!x;tZY^lK{L>OsX zbD8EHd^dk;eaqnR(?K!^bfM$7`GtoJY}z+_2woQfR?@h78ED6E*9%D$BO7(;UI$dn6Y+v(R$+sB&BR3EgZSP0 z9>2Cp!)gjguz4NC`Dx*;$P?!#rAftZ^6C@xavwpLaf@9p9w|bn-kD?y zkRhA;(~`!UcqpsaB8jIJ)5vT_A?cRT1t1|IL4gJGIyhhSoA9@7+mtLWDwBFM^bLdd zEN^7^GrT?f<^6<=LrTEA&pZqa4BG+@o7@hX&r$kDm1(Ae5q$4(n+CnV;yl?Nh(a02cJIK6){I?$`lVQJwl%ISYNYgEoYCtPuduv5I#` zrqp&9rkb|T-lju3FN-+keqRwf4n?wr#w!*j_>mY;YZYSU<$PWiX|>Y<%#R!hd@w z?8q!&im0zNn65A40K@q%pY&OK`Nqj;`a^X z(z$rE6wQf$MxzijrIg|>*Prxa;;EiQsor#j`Dj8HLtp4LgVcDD9=F4A{A>6`^hldw zT@6;N8XB>MCAk1^%4e|}THdma){M{;o3W`MOgbhU$i6OI4%v{GoKJLMCW!d3J5Zm@ zZj5sT>0%+i{b1ID=8C0)JJ2fyocV!x&`!CMwCo=YC*vnGP4V>i^c`#UEF-wkmV8MM zf-~8E?$v4XmKpzYwh+yq_~yxeB^TA4iUu5a0Rs$erK0Nen`^ies*iYO^f%*VFZu_bv z9|0!0sJ&I%hBND^Z}{Zmp|N`<#wZEj%~DBCa;d4Q1yu1EZtFei&Y(2g3t%7!15-&I zc^7Y%iH&rGdf8=a+_L#eQ10A8Go8c`o9BkmcTeWq<|qjiXq^rIIS=aUPQXYAa5 z!i*+{pZa)8h8H!ge{5di9(@Tc@BZ?Pdy!LRh{SU>7nA$bLIr;_cuV0@hA^WvFUrY4 zxj4v_TwkkJRPcV31-i!nTn zbiI}`N+lJC^$T1$fO>Ii1@7!EjvroJXbjl=pr>AcGe|S~5=s z(3e~>L@0Le0LVC$uyA3hshb8!QqX?23;pB|(bViNiOpu4u!71THt+kKEQyPAtm7V%h>yRl_H~8JG-ZMbD9X>lYOnDerlR|VAuv9KaG|B`EEL--` z5uxBiCwfU6bu`6Mg1LzElFTEHwDO3>Y)5dW_4I~woP_5sN@UxKT6%6FE&4%1!-@8B z!W@@FqyY*YL-5W-Ox=Wrkq3<54d5eTWWy0+;b|F2pKGpsBw9EvNEi?Bp`^8Xi+HB~ z?TSD;o~x4?0c?oiHb6RF_cOGyy)j4qv4mRZ_N`o#iORijoIEUy$c0q{7hcH$iGb!S z6l;|)RBP(SC2a!6VN&4fZcNuvKOQFkuMPy0d%+|E&iuCd%M0KZ54BSl@14uQQ)K0g z@=bN{+!qEbzuYMHtKM%hbtRprqhiTi)qM49b$;c9cDSxAFdIRljae1v~I{xD>Jg4j4 zNtwsn@V?yNh6e@Ey-%B-wA*EKE*1Gc9?(c4yz1%OLCb+kOKSMIYl z7MM(@=o)B%4uwDVxJidcdHdRAq_w1dfaCvK3=!b@FZC7$pPbB80hl9obkiG*wur0s z#zI{V`4tXF3+jA0IZDwDSkmAHK$n^ z7atdv1Y~rDh>PTYAA)dy*I4SsP+SaSYo`4Q#}lPLoW*S9FofkU|26qbwK*LoSm^UL zZeA}D4balQ&A3iIlSjVZSg~858t`I#65)ojzbYkTCBN`10T;1I8~zCds>y9?@n!QQ z=cp7Mat8{x5jU22p32=G>40QL0?Q_r)0loPXZH`WvIvvPTrp=PR*lnF>jz5n4B^e` z@WY&+u4}40FMNAnOG7$qyw_QU zzyUyWJ3iQIdVI)(Zp}_Y!brw){jIk>fAYi+X`nu#d+odU=Omu2EQ8Aho98c>)GL3d zFAKw-pOHuWpY+xEUEeVxLCxmIcj{*L}MBL`~uDL?G* z1ZFm5lw{wDJ$mpPlbxOgOR*c?U@cRsNW4@TeqB*Y75H{6dWmDwPUV)d7<#AXG0E)KY%$4fD3Nh_P`-SYqSUpi< zGc@k-8Codk!pAslD-kVkds5*uzEby5iW_R#p46vs;CGTyilU*Y)_LG{7r^cfep|lN z3ZB@dKm0CIWQp(u=>1JDNfF8|G_Z(z4yCO{7^8l#SX8-58}d4 z1rC85;tI_=E%+=C+es{*uq#n=MUQ zUGzBbyxY6$21SJ~migw*(iiu7%@rh5VZ@Dw$(xm~u9w4G@^W%Mf$?4ShT?I%@T;!otdi-IYEaM_|Q~fty69`@FjotK0HhMgQ=y(ZY~+7exr6 zi@RBa`rR}*JzqQw>v#NL)qMw46I;LUIeJtCY0{*L=#gHechDf9B2Air0j2jyml9BE ziWHG1y>|#T1PE1--g`}u7HUH8kT(+V_r81X`PRB`t?#{c-&$ELCYjl@_n!a$mH(bS zv(I8!?X}xV+UZZBuOBCWc^8F6;396qxa>=Ev(fNv$PIT>Vd8uNtqa!g%BCf z9VZ$~pqRR~HQQD5#NeleAx{f+izauD+qVTu91cZ$+S@5XIk~xqxE<75El5`hGnt8p zJFU5L&)Pr0&=C7ObE3&e#1rwr^$o|hGbw~p%uanwu@DeTY7MA+<1EC=w>FWP4yn0M zXkd;h)oW8TGu)Qk#vpk<5TlVkOa`Lc(=>mI+!HK_{Cx0i{0w{gXxTR|PM>K1NeOe}FNe-4e&51tx%9q8=4>+7nD-iC;HWh?tR3Xi@m~i^ zNn&Kj(+${x;|8)mj)anVUL;qTs={xX4Y=8e2B2#0`c*PHo_?Yyu@CUiwlMWW)zBPs z)P?%HKft)SxUhvX*IABF+-X&1W6yq3dsEbI@f(Pw({1W~0EguiKU;`CcA=J^L!6US zf=kkMdt{nh_c-$8HsN6xs_l!+Op~VuyyiPP4oCT9VaK3SOGh)t3|iYyJR6o z-`d0cqw|h1>-VYV;)m52Izn;|9-7>#9e|zJwnJ`Q`q#9TI>rA$B>cA*w7@>|nt-i{ zwPus%dHOQig)>3{9kPd)n8ZMMQ9(F%!s!v^Bsr60qZ78&O`iay9AJQ|8W<-loQ#B! zY%%ioe(1W<6z}OT>r;@`>M!f(Ge^JGToIgX3{Og`6WjQV3I52}6DoCb!4P@0=Kig% zw?5Be{YCbx)kCz$!u))2vf%O3rlzbM_MRXdIBRI7lMzv>I>*SdZJC?1P_7xeqYAT^ zcpND+e{A~XFQ}Z+i#=6RJG4Fry3WIhNIcyA0*vJ4XZrd_ez``Y<+lBOu%@Bq zZ5hR5+rvB&dSk=~f$xot)vGGPZjcn)Oo-2W72~2s z04%K)!)_QNGi)qk983c4Hv0n~z2W>je$Rg_lr{0cjM(qE@`J8Mr^}$yRHfl;#yDmk z$=&yTe6z#9=}fBj^n`qEOYT-;GUD~HzcOp!K19yv_9G)B{)0ALhk+KIx_aPwm!;ei zBoVK`UAwW^uL}m(dX9#!tXKzzCAC4}vEYbYDkVk+hH?k%&F>lgXnZj*gnXHv-ev@1 zSYa9MTN?s{sRCGGqUa6)Jdf*R0F6Datz{M!VO~P!7FQh4j6YD^=H-RPqj0xY_1&|DzEcxC1$0@=h?l|SI^S zk*^Qy(U7Er!`G~SReB+eVvx*?j3;&gW7d5YwyuiVuS=Q9$e7Pr8tXQ2D|)e>ZoKq2 zn5=CHudbF%CR^WM9}r0ugVa8H^rHBU%TwDIB_xE(|5;ld(l9Mqa(NYz3{2MT5p(n@X19c|V-6e>v?WbeTrebUZ{ z0)yqWa{t4|2jraqQgwlyp^xc_`XWxJZ(eiL?H?Sl+k+?QGH3j^vkrU!uY0lxEQY@~i3 zBqO^EXo3jqmWxMw;?(8q9m9PrqK8i~MrP(c;L5yrg~}pMNHXx11X)i`T&RPAUD<+D@SUKS9Nq+kEBOyOdy1iB#jW61Umfhxu6 zMbdRi+mm)R_ZU#>b6iu0vz>BX991qYEAywA z%kGl(IEm~HlggOppmf91rBl&F9Bs*=AIXebjd?VD-gLt$)GeogK9ra5T-B_HS&gTq zf&+60F`mI+c?yGrXj}m{+$wiZZ&4M?A1zf%rkwR*(Qxm)dVvt)JQv9_Cuq$Rr6llP z8@kJ{`v>6fj>(Vh^%xztopp6%&Th`#W>Li0*L&i6lS7hA+C3Li&XTDo4p9yAGSx11 zuFFd;yPc!Qwl?TYpL*0ZBrwUa&N3R4kog0Fd)%$_x4Qg!_22P`-``M?X0WQ(Q|sNJ z!)LuQJtxo71KK}RMwFG7qMiHPNp!)L)Q)fPd)w^qcXoH*hn*Nk((FysEKOyZ9qdM2 zxrnIKnV)=mPTOxm?NT!opdmy7pw1MD!jr-`o7m7*Wmy%kEv-$Tw>up@^j$KuuQ^@6IZD(A6ra9@L9G_9t zWpJ7IcBw)c)7no^oDhfK5b7`qG@7ZGao)Kxrfg)?+lXrE9$q;4{@Lq_M?BD`JpEy= zPP*PY=>CH@&C_BG!vBK8G;}I`KMev}ac74sdghPwpyeQrt@XWQWNi&1+PozwIX9fY z*linyF%TEl_D1ZJiyy3we=;IJ9G?*8GDf)A82ltHhM_`DWp_(U%g>)To)J+}I`E5# z6yjz|Kt$i`tqs0D?&evY$EH5(NYxgt$_FSV}H#kA}X~=zL1VN*y%H$4O1hc}xKs zn-n<|ny*GDopN3H`IOWZD|Fry~)OG zZebA^;Q#5H&U1fbHA3v&{$kb;9ucv9&|U_8&?s{hTy8V*W^IWTM8s^jUXn}-F1NL7 z8}4gv&Y&@r{qe)CHH<#5CjY@{b^Raqq*E*f!58(VB-co#0a7{ZjCl;$;u{{@Bk?+E z`T5)5Gc-DDYxXZ)0#u8VLaRNh+H=90W!Nn?ez?+MTj$A>l}YC>xQsjoT>-%YVAS0c z5m_&)zrzNVK-}B{J- z#7pH~**il+L(zN*5-zh#ZGi$X7IN70660R`#Hs3Xe#OTCXEQMB8p0dOo+6YG{O6@DFsMrlu{zy$JG#AN_`Nuv=T5sKeKR-8S zPCqXc{aO(TSiEXT9%NGN+*Q(2{#CpFpCdQ$sqQd`+}o~5Ow$|V`IoV!uyV;~X&2$3|Cn{b@u%qy*@GcXoo>}eI+N7L&h zVh?=fVXO2PhAAYzFD+VccZID(9+?#a2o1D`jJLsP;R{I&vkPpfC07CTVr(vOv?q~> zVX=Q7DZ=Qv#~cgL5UiD;3Ki$6Uw0*xX=!Q>LMHb^7)FXxGKW*V!D!x9fKtr640-%+ zoQ=~t(ZQ;39>tU|G`0;LP5F0r)^7vOGWzD98XVMr&A&ZE{0j@o+6**2?55np_8eI* z;)B$_QNGgQhoHYp_r+uQuW#=aqD{j}7#B&KbVZUjU z+Jf_9Cta2#XMn-tj+5D1pO-QC-&y_kC+>o!kim>XPglD03=`j58J#qK8X2fv(2IO!myX84)|&6 zior;z*Nr>7+y6#c#9MxF8#Zt7Yq?udKhOGwCjoKln$x##&l*}=>!TY@{3(KbhAZwx z!1PB-)GLGq3#hj_>Xzh{rmA9+l28-5?sdA`>v}E%3aMFaeiY=l(}fIctx;V%?sfk1 zgMhyqu)x3d?My8`JqGN?!QO1#XCjPUKVWJscl*+xX*N%8WIFaFm2P^`f@0xI5lOACt}f=&XRp-L7~$%F8dwBvUxZ`v3!TQ#lpx)tzj88CMmD}QaCUepQ@@>dC1sKbot*k1pe=t zWAEL&bZLJ{XaHt4SCSq`#OhoQZ}k>+26kuFm8YVL0K9--AevduJZB4bd3W{fdZox~ zpJKr|%k`yVu?_X+#AALVHYmc}WU1RAPnkD-Rv{^h$B?kpminP+SPl_um$i0s))Ar7?&>UA3(%DtQ!Bh=^UWKY@AYe`AI`VanpMDjb94e0kqCePbP8%)g-PKnT zA-yW%psK8lpId8u@BPRu6hkd9f3depd2TjIxWvBL@+|l|&msV-idiEJ3=DuMWDqG3 zGn>t!ls~qyI^CudvlxkFQs|laK}B`lP+zQKVimL9JIIZun@`+zOK%V+l+`KVLpxp9mzS(SK~*1LeRRGQ z$@mxj;pp*@;QDVF{m;_?|NeqxE8jK|Qnpd9G-jiohRMC`JqglwhPl_yS4DHEnNq#J z#vs~Qi(eX54M5jfm|8<;hYp`{F55kguj+H^85mU!O%|MN8Y2K!u!_*PazxMa-Rj zWTP`oJn!VGKLratJpjMeI|gc<)wJivzDT-W=Jm$cckjGMd)AYrp@x}TO3!Yls&j~* z6hj9`z$GP{fCFI*J$63$?A=kqV;yT|YMLPKA}b}8ZG^)r)AkJY^|eXG#J~D+^&|ge zxxGenReeX-iR*G)4ON$v)c#p|e!PzIW0l%B%N_Y$U9WCJ0S_W-vNs!%&99Ybde5%o zYp;^~BWT6?ki|=MQUrT&B$-l3A}m{X6W*1XvdiiGO8Zf7+d=Qz-FH{WR##VD)~EO+ z?rIwt7*x*-7&~^au(fmMDupFq2OXSL$`ft2j{EBDu24fS1wB8PbSVkp-FLVEUiZCH ziJPjGV`o>AbebP)x9Ft`Aj8&LE>AR^20{@9A(igc`T5E|VGaN~Mu{C^iJk2S1y7FJ zYtY`hMPHLC=%Oj;T$j7}MXbMGqZg3i<~AS_fc(fKi2;$}(B5YcKiAb60!lp!QLwQ! z{)4Un*jjv!zf5_!H84Xwe7Xyywa91Ned;-@sF zqO6QwL_&V5qY2@>lkom;RYt=Fued~%d)uD>ZN?&{H2J^IZ~lq?5qjp)(G7>z#q@wH z3%no-$9xwv9-MatpeAmN6=f$GeupK38J_D^KrlnCwed-Y3i~&~)+6^$=eCBwMOS^^ z)kxB+Ev{lWHnrxheJm^^1MRGk**5oKEnH7K6w1>T<8VCt^)AzG-Ed14Mdx89aKz($aEF*op%h`k^u=E^fqa<2kF}tPwD9&g#EO(suL$ zcyE03JBE2@e49?U2tB3OaLl$sgFd4={{Oo%s!{*}HwEs&D54D%lpa)?|__1a+H=QxCg zmA-Rak`MIJ#13stmeu!_1nKnSBflU-X$W%R;J0?3nWf>fPZgniNznQOEHRVt3>7bL z_XNBf&aFjM#gJ!9QG#H;&RZ?jc!qb}onGfiz zdau}>>9~+o_xAzsM=*9vOH08g&NJWc;%h07_JN`S*X$LE)|3YN&VH&U>dTj-UNFv_ zK==zE6Htw;^s*Va#X_V3yx2y)9_DP`Q@|+^l+f73&h}?bxxFoXw6_%yq${d^Kkp)pzVoIl6FdsKfZSnTFaLRmUOX92dBPwZvT6w^vUq# z@RQHV>gxD}utz#49prtUN}{;r)~n#vR$p$Ng0V6Kb_CzLkxhy*GzjF;p0ibKtS~+1 z=|jv)>vgK&==cO-*pvxh$Bqc#YUf(7F-x_V8B$@&%bk}kjM3i-H)M8D{YCj`XK_#m z(b{=>NoJtuuiin|A@sJRvokYK-4@;>aKxn)e@P&eDQTg?1}*sQCaPDL%P^Z^$vubW zX3kGvK->`5mk-A_FZkRdJRF5O{^X{HJGs6ngu!dx4byY_Oj9#n*!~TNWxihb%H08{ zw!@k0%LGX>-*ShmL8|%A`F)og-Wwl?{|_V&_o^HfBTe%2iMuoMjlI8}PuqA!^}m&m zwb9BiFshE4X-YlORT?(V| zsNGDTpk~4kbY>hgFXt|IkS!0oyEm+<1K5Ttxv z483SZ8&7zz7VQ(cnOoEM>6Kc}D_~}{eC5|-O~}XpkYh&Q74K6 zbo9#EO>1KbDUaW{+C*l?=-%Apl+Yuhq{IJt&<0uXCfqBN@}B1+nUujQU^?*7dLq_} z^^M++jtYd$mVW$IO>@pXpcC94Y4Mz;6R7J!C#~@W}qo9|W#iz=8v!g>2Rz#iG#^Ck)Ep|nQwO{yl8KqmA zr$!pvdD#{<>KjeERwUO*q{onW4l1Wf^H8wQLt3~`L*?a=28{OqwhFPc)Jt$c+YfvZJuK={iEeUFRdxfrT(=Q0Uvh3#ZSZ0zzX z-7UWxyUR196SmKh!m=xhUPB>Eo~%eH^rmdEUgg+opo)|qh23O%!r6j2YqQU&-HFir z(X5#b#P6)Iu&}n>BI;e;nL#MGhGu7d;Lc9)1NqiOaTo7pL>VM7@wnepJBlkx?7&ur zw#M@)W-e3I$58w_i_6>&o8@E$+ zb)9+Fgj$VOK$9$wW(PV8vMu&Uu=l?AL5-LCgWohy_qIT3D&-C~dg}(Wyw7e4uE>?q zfsvFtOZuGOo27}#>#2$@1`m4WLPA4NUE5a%E%@p*2*HP9*1ODP50=srD|9{Xsf{(_ z_dc1oN)OmgWMU?^F38MW7%SCtx?;fk@TGdO^HwKkGE!X1%mNe4w4K=-HtA3CsXlhR zx%$=PkbGD){+sNF;3rj-vzj#CpCVn!cf>CHdM)y%Vke4ABFPbIUP?h$=*BR8rh*e zAR>Q|!>PxZP16EW=emkYNL5+AuwcPZwyxN6upkSk@jtaGj)9>maE}hOHbukn^U|i& z*zuh?n7wTs3#eGn$kxaZza_|}Se*xhVQcMUAH(y)lBKmdsB5Q@q>KYa4_mam)1t?f zSm>{^((>(fMNy7KP^b*6Uq!{94T7%ZS4f5e zW0SSHnDw;0yxfl>>e@~exf#cI*&r5S=c!yFx`fH{ljD}R9> z4qHOn0{dh2^dNHfhI+C1!9p0UCn-^OdRkIDcPpIYwuHpOegr1KOH$zOT@mzT6#usk z{gV40K@SfBn;pOvZ)I(@P^&AixxFjIz)*D@No`i>xSyrdFem0uczgNGbhu4}#&G46 zFl?ef#l>T!Zb8oR#Bg7{4?rd)tR6_WpJF2-g31A7h`pSfYn9%rs-~i1GnSGBv@j|^ zm4wc-_Ox;qy?#B{YI)$t=@oJ#o4%o}&1e=~yvzDfA!9asFf*&)o7hM|_dEj2B)@1t z^(e~AgNYoLx1!P_b+7ru2x&{RzY-K5`wfbMeBjA}Ma);}C!C z^V-^4f4*tyZHj#I&f$*Pmpm3P&T7!;IlsLvRcrY@keC+U<-Maf+|c0&Y2deeF-2v> zCV{ZatXV-wy#~GkeOUNZUy)-b>e2iX!N=@Jp_$$Na~d#O-bco1gKpU)vl`>V_%WQLWg2{tGAi4 zy_CraVt}^{FZ3OAywJ@YcV;n?2E@K}fSS0|-oVtj(IRwNaWlt|AW=;p@QTQkJ(To_ z`)q7)e30d)@SR;J|AnB@&^x!4&F%TwQxY-J0Z+Q!^SvFplcfl3-EhVK-<8fNs=36( zAMuQ>+b}WVi_V094ZHH_p<&&go0Tr%B{iJfkl&RA3bs%#XItF^uvuoVeJa9)T3I;> z2XwHNoG;va1akG{*fm25GCIN=_sGI{E{RVMnGU+dTXZQRk~DIiaTxJcyfkd*uD=6g`n%c(5#+LNQk)Dn)5P85B-`GE+Z0u@=Qf@PACS(eKAxh#(qdx#CuCx zV>|_FbL=fMQSTZ9O0C?$sAMmy^ni(Z!wG%ymOLck0$H-%F(d%3t4S3V!X+UB8Gu8% zMMPNr9zA_BPIIuDctt=l;Aov`J#sw;wr!_ADlNz+%eCiVcE>jribRD3OE~O3@o3?` zGI`n8!v#=SR3M<`!_`$PtF$W7ux+^2^L<0pwWhBJPcD0$db(O_p=U$5%I%-;Z^7&D zq|fnmJry!EJ99tP>E*NAW06Qdg4IKmbcTlM=TQ!*pze~*UhA(~oJUhphGyn=@Y)V{58m3eC0|!=owx_uxm%A7 z-dlS048DajQuV@XzV)^99oG!Z%*ZN2EulBec|95PM*}LIcZ+(ZJ+#CGWF16Jk5PA& z%|oEPO6n>qDus3=@q=_ly{+n<6?{w&XEG}!t4>Zy~p z;qIodtXP|i**tE|MFfqKXk&UQwhy_z?MChx@pN zzQ}O*bSyIsraH`}NXpZlZp?yNuaUR$BoP`U){pB6Rf+hbNfq&ByJDRFV70pY_e)Wu z)&AWf_1LVe%;Z|*ZeHdt%n>Mr=yorR~iJ?-TV`Xb;-FauXCP z3lev0PjBt5-ySzXXPn*IS6x}j+xi+*Em;x5!yn*xm6e*eF-AGikMZ)l=PB7U(wiDUWHNLX0Wba$jT@gNqx+*HOlRE0$ylM!FXV( z$|lkR1Zvv0uWNI|ej)Ke4UG=kVN7)+x0sj<5Qi+->F&cG->>C6*Q8cGAfkkKlXhf0 zBNOjZxt2alm9IU*UvBoyaV1)&G1+~myi|A;rv798kegNP+s`!KO1(!^Y-9qL8C9=i zZT~hi{Xna>i?3^_iY{aaH(dx$4MPCFXWJ*B=g_#)3hskKQhH;4G|pj+NW_Wbkj>MD z>uAbwG=%JiT$-)|7$BY?2LKcL28OQHy5K#=n1KQJEYueyLC&bkQVsAYhO_#FN2-rKkEAyn`pYs6vMIimx_0AYyvEzd zQ~RQQ6r?FY9D}5+4{IewOy-hWT4cJX3sS0-g@=ZfuC3`zmv_Xe9Dn(u>Hm}XO;}{Q z+uPfv(&FOuJIzDX66-x=)+#i&NB2JxU{$m9s(7B4R&I;|k{9V)e`F4wN!4^6*^P=( zBs~+qGdKKRTkg;njn0cr@HXFFV@Vy+adAxU@9QfrEpXWjW2{ok`-*(1qSBp?u<@;4 z#7{3JfBw2Q0ds%e?90DcXs}SrjZ0A_8$sZdbaQPjUzzLA3K6FJwQ@4EETSJNsZl)( zstv6FpqBev=B!NF$sO!iNO>VFtOvhY>LEWzd9P$G`!+3n9of()-YHWR7NPfMLwaPn*Y z;{B5UPGa5g<0YmRMURsV?#~8VUTG!ahQGLo(22@&vGZ=ZcO>>OV*? z>UBdS8`*upJO128N&Vwk?!&jfDoh6rCBJ^DcPsVv4Zg_2GeF4A)8JMpX#~l<-aa~i z@pwvkO_ST}&ki%bAVQNfm!|7XBY^{mejNa|&Rvehc?4%)6UH~sE|7hsb|U&h))u{$%bi9jMGEECkecyS@;7(Z(eoAv z<_!Jf^tWHO?0tScS$;<5*1zt$|G#EQ{-4~N=@WV1)R$F&e)#9+V+GZRFwo2Q{|it{ z0|XQR000O8_fo1{;^-oG5~%2bQozF6$qwd9fc%(+$-{vQ>Ca9!~NjJR?CY0hV9(RO0|N8 z;-bk(A2$dE8hi6V7+b(@gW&-ojm!OyU{3TUyoYqx2+zys7xQ*Q9{WA=;wedPP*r&_ z@&lxQUSS61gIIstNI#3h7XNMg`=LDk+kF3uPT+6z^)hYCzaPcJM*sJdVb1TZ|2Dt0 zOMFBA+oq$!qxjpTIr{&*{{OrF-?Qr;dq*T1_T%H@TV#oc-^B4Fm1SjQWM%ru$jB;q zCMwE#f}did3S&|TwYTI~`9wt#obkoWt(R@Q(YbJkzwKIIZ7hI7tt>1)7xVIRdR{HF zyK(ZdkE~=nyvoKZFSbx(Su``@D z=t=Yqtgf$4>LxUf{!Hr!EuFw60uGa?hi3^&%Z^165Jm$dpPjkd^OtOmxy{Edt&8-} zPO}C}si>-cP*WbAn%bLbE7TPuC*Dw!@KsFqKtlWuO&v#ugMfR*}p0PI_f;~T3 zXr~`!YlEI!52ZnvYDfrwlcFFef(PFZN?$M za8)Z+WgEpuP+L;5>uQ9K2I|n;Lx~l-ceRO*>`7|ce{+MI-E*vOyuhT$;y5& zJN!DNg8ID$WOqI8Ki72I`!i59+WeC!zZ`?z+_^4?&N}ychr`XL{<}MI$A6+&J1rh#MCkoW;zC$#tZtd@2y$`X5#&Z?MdD$q>utTc7Qem( zEMa1TS61B<3*l~F)=|vNLcH{uTgT^m($44SRJ%f zl$sRb*nRsH4vvadx8}DRkNzyLK}sqDri3NHEx|+kFV5k{4o?UfB5Tg(QZGfF@WEYF z!a=*Jf2QZ&c&qFc9S5tdQMbihnc-;v>WE(gT(F^Fd>e{2IbT~DeB5h;Lk73!@y(pPLB-N)-W-HXJ-?@b(`2!24YtIKfa!`mDAuoMb+=C z5(78v_tcq}?J|2`SlA>h*HlnTJr8%I)oK z4xO4Uhbcx;(L87hv?%M7xjwH;`pIb?zBhU07$?GViaV{Oq~~I!Y=^%dFH+g=Jz(yS>?#PsNBR&t;3!Ve^ zWBiH+-L&xH^da5jA3xk9BNG`}Sj?v@`VK!S$P#&e8Xb85_T3*prqhB{riN!Ye>~sj z-(_WCIaqKKfIOjnaN*KK{sD4+6&S0_`f&i1n_ieiK>n8A^MSJRm|uwP3LCuC^lWm# z9L3_2L1@zO_!TU%=%y4gwDiB90lTn+%VdRlj==YW-X-j1 z`pbCE*tER7`d0~THb>G)1?vOxl?Ou$-}qO}#JE|EuXhavYv%a{Z4+PJ4U2jGQiw?P zTyQ#VcX{xxMJi(?sVn$qC3X*d>X2B_ruXukTEO#iGk$hfh}rV){KQF?c!1t}cj2J% zAT>jk?~}0C^_WEpt+Fai$Q2p`xQVAX92ug{9a`R9bdUQzPB+d>b46nOR17P?F4Z4c)&_7 zp6*56NVu&XTt4oY9#+Q57FpQ%dfQ!|Y_W9u=J|tdEtt+gUF-<}EA@bT5(0s1G)7@DH(s4yq?Q0j5yk ztfST3yR8RcNG`F)8{+sKM?7b&Y3^vQNcci)g5me_%US3IW&;lDNwOI_F))rTO)G!? z{82TWZX8-!-h+3_6;w5Bqvu6wDau619;w}ROyuj^u-t$tv+?;QNx`ILowfgvToM5< z4~RI2M(JzFzdAk`mL2T1y|v zjscJ!SG=&}eSAVpjoCtFZ@$?Bd3uH{s#ms}?&otbV{xE39ZzTl1jxRagea&v?w`)c zmf2O8k+Z~j);JA8EBmLkw6$w3CZ-Gx*Xj%Q#oYUQsU7OiJ$1;)6JrYJ`*{n$PhpGQ z6{nX5d`|qm+F@AOA`ag7mhJ%$r}LW%YR{YRPL^|BZ1C!V4f8hV4JAv97#zGa-=P5& z3(LY>i@qvNNkfpCrj%A2UY^+9tId^*LN>OWo1Mm=i`LLqSd7R}$_@XLrJk94_r#NT zZW`7biItuR6=hp9t@FOV9q56)Cu7?<6T9F2ZEAV>OO8(oQ9pDqnew)l!iyhGF|o0c ziyZ~d&pWYII^Lzf(|>-^&zf8TKNrPUR^f(qwx56{J#M5N6<|Svea>a%suOd2i_z5%s;jy%4w0IKR2)m+IHw zG6ODX)!l|sLKscYnh)> z@iC84v9V!-q}9}rMq3WJ9Ts<14Gcy^C%f&gK7!ern$8lJ<+y4K;$B=!8p*Wp9Ci^8 zQX~kw($Lhd<7t+$w@^*=b zT^#VL?dvF@DqboSH%o)Td;R`iQBkwk3qPUIl!Ld(+v8T3>Dk$>RrTfNK{#Ayt6}v) z7h*YyrxfpV#sqid>?z%jH$`EV8|>OAyI1eZoV$B^4C#()LVOP>lIrI}lUL+10BVsc z?C`~oK}iIhT$14zOetb9H+d%Pba0jHv$Emr)dR0GCRV>MC@Ao#bGW^hpA&p?Am*Nw z5YuxJ7?vyNlxVGY4{0^#M>FlK92gm!sByR@*b!$0Y@+LReVzs%tFL#5B{bcgF0@{i zeGFw(v{!g9x0GzbB_w3^T5L`M4)IGypQ|jKtN%prHj=FfNfd3!vxrMXSal|?#cK#A z`6w$ZH{IWO*p+P;>W;N0YeYpyS6XQ{7_1o$wk|J^R#(3rPg}=RWzV{0vu0U$mwG<;cmnA(@(krZ5I&sE;e!11nI`{38h+e0L`DndvM29uR?b> zodIvv>!0!R@~#ghw^WJ3iJT84mYNUFIlXasL4=r?4p4De-h;QfdHzQo-*^WGW?$nL zQL-!9IFJs2MzaD%A-sTs(%vF`{u~)*7EP$CVzgHU#}dX@W4(=#;bmVVj2_!yl^yC{ zW(7h(#PPCNgPY;W2n{2MP!vK?Z|8oxY1Im{y_&Vm`GjAD2)0hFao%wfOBHZ9l6-9~ zFKeRrLCfp5&YF3171T%`S?6CI@(h9 zNzR~-pu;&v2T`eLqt5G90Dz4Lv|Ltt(P7k)On6sdRn@5II#P05!ee>2qq}}~j-d_1 z(cy06^>8fM?{pXlX2aWEsCx*-d-Ui^rR$DL#P&t>Kwocfswg&wJ84WpOn7{}iUtUz zrP3$dhnf>0vmbkZX_Mi6U?q#j#KiQ3&4rNcJfPwQ%X98wnALugsY*_D<*i4dehM+r zBT(X8`aqXio@C@GXXL+e$DSl;(ZpwlJ7?9f-snDy-dohw*<&xiqyE0MtAnwIT8uIO zHszI_%Sudgx|zI|R%F#nLBZhO${wbh0#j4da(X&kW+t{3HlD?cNY4UIlW1j6{&9k$ z($eF2JN5SVN^9&stc;Ad4XQTxNEugGA#Hk0dzqS`5ICeO3B6Wmc6-~*avryD$?N`S z#6oUS(cJA0>`r0OoZsDPt9Kx_Wl6Bcg^)1%TN$}`7;_3@7pf`RBum^tbTK_VO+r9% zH?dBw%`mV=sW+iXc~ZZ*wSCwSAsb?wPw;zjLR5GZttubFs`eMmH_ivVZc3A#_O1e_ z;^ky6TnyIaZAWz^Q4v%kr^bK?u6M9# z_KmVFgSJhB0Xv^zuhji>yol6XTTswv*t88d*VwZGTDO3kCc3c+7Weo<8-eW}|d zY~DnmB#5t?7+DYMzL$1F4;G*LUDFsTpAG+%wSW-P~Ntvt#YF+oMW zwu&@`8;mkr!epr(Ix2F>tG3bAKTX~)pr`(szA zrHb>&ju`rB0l!L6?Do3KcZPkr zY^I=iM)Ul6QAQDHfO|;WN~ba2v;ab!pI+#0eGeJL-{9f(ICV1xK+9i+xCvGrP~h1* z*Q{0{W_w8kYwhgJ23UmUOu1&WFGPQNhIqn`tfjbRaJ0gl7}gs0OC1vvlOSj5<;z7o zk-jReDa&h_IE3~O6qc@|jvG*MI?T3+`S+@vvbv&ICL6AXy52;tbFV#s3*rU_$X>$0 zXJz!h#t#{hkv$|IU5%H^4YqcxkDL$}H`&6H50Jb8#?gq}(wHQyzn_#xB;uC)f~BOh zNfo4iQBEeuiKjstpQoaotzeTjwpC&yjqcym!?XpkLO>R|N7gH*K9)}v3je%P-+trr z+lyZm=-9>TWy^g#JHLsK%=7tl%c@$|SRj(28>u~BB8WdBLq>Hm^ z#)hJli%a|Bn9ke4@HpP!XmZcZGW0~{S&H$)#Dx4_fI+(CG^3#hYnNLfAG~e#4%^%m zfE{0*813J}Ly@m%^7CJm74I{#vJyR`6BHB#G&VqrZVwka$GR?>+-;^VU?4E1CDcsY zNq)EqPWt18FelBKYHvDdTTgdC%7x(Tbr^Q3m#<9Nmk(8&m89O$UdHeIo{Oek*|M)t|h89cM5O@$;a0 zO`*qpJ$Kag!51t{R4zJ6U#`2DrK9H2VDU=K~#^}I55DZ!z`#*IGyZU=LsDo&Dc ztuiy*gNYXo4rg}6g?HD9;5RKxYioqT!SWp)S$AJ)#qLfwnrWdkPMxL} z7Mcy7S{f((x<7(t=SwXwK2B+HJp3l<%&LvDAz(BJZsG6x)Mn?Wiu%1ouSe*g6WgOtA8_Y|!8No3OsR$vL`Pv<75@i*YzAE`6FP-1^`l+Ia z6{1${*|u|y$q^9ESR1s|;9*hVUSYHaC|Yfw0~q0awFks1u^8j(HugY&882O@%Q|{$ zVuD)G@w~gFjIHu#VWIu?C7ii;nb-Y0&S#5phqclxztEH=W{BBm?V5d;wOYml2JOg9 zNB*5kle=9N<6>(fsit6ZL96TS=s>AZ3NwrGXsJkMX7--`eiu@_qf-q%XM@MVVUSOv zAucSh*i#o1G96ccv^0jM*nt$}`;tVk?TE@>Ck>%gdOCUxCS4leEuYy7C70dYwRMp< z!E6pw;nP!JPPg=>Ge)YRcLHup3EA1#Ng7tD;8Tnzfei;&dx);&W%o{?Sj9r;Z{WI* zAJ1Np3%dWR02QaK8zm%=$pi#|Kp-YlQeqCc`)PZsISbS!q@tYX^vwSFiD+$aae8{h z&JBg&=fmie{lYH1qxwHv$6XTNGQhcc`4)4vjlsdE2gcmfJ)$oJk_v8qA>swOa}FD< zlZ6BYYff^o*)*%KzV?yZ#d|gALN71(QIYV)+UnZfogM#|hmUC(fbp8TOBFSXO3 zxdK2(JVZHp?@Ur@Jz1>Ls}&cKaQDU7zz@gXp&SAhunbL0 zelI%~LV0I*S0684MZ@ykZhch@pguodGUMV|7s*IV&-B;ytt>|hu-um-v|2C|E?x?I zUH`0qbzz@Lvu^xw4keb;>lQ)`xtiEXne)2&-f+3IZ|PdgR?mw`p*OXR{+t5fPZ9{P zjbt8!i2$E^l_d-YroWS>qZ4@RFO?y0XXkMGHJUIfX0ET@z-vGoni0(l-wTsJD)7`Yo{`iAN4J3t0wFdTN;Z`kZ zdf~38^-wtSec7&|f?+7Q&QYVvwFkMluho0bwW!yoKSgk@Dz(XcU#ceK9oAW`OC_7# zvgd63jhtShu-i5udj_;T&u=Ogn)VGv_;$^#cdnVBfpG%zfI?jR=H`}JyNkGJuv^*f z#&zEpH6JNMq$0O&7suM9vmfcp28V%P})zHl#D?IxqG zgyL#1d5>F$PO+B;(>U+KcUvbrw|9HI?CgND<%@#i!$6lE6%!L36~oKNXKI#fYGy`4 z?m)R}AZGC+qXNVMbF2Hoy;1T!sVl^p@a(+C>w}52s-~uqhKnQ!6de(v%_4PJe zj_jcMfE~|bY+gI3rUupT?d4-%Z=ZLDMr*$`KL9U~60pGGGUE%;$(S}jA;+6X!fZMP z%Qjai2+ioM!1WMHk(>US0stw?%ItQwFu|Coh*?dxOWR33Mg&%fHlF`Ud~+qB5=Te5 zU?`g<_{0PR1dVgGDLA7Ubz5z9>h%X#uJE&9S9}#^tNYH|L^hP>y1`==KnPgFaM+K z5F=h5KC9`Yp~+Nid~q(jWB%PsWB5oxG9|&^hYr8~w{G$hYJCSo{{8$<`IrASi4-~G z$25({Ph?XbHOR;fFc;)TWRH|rj3Z9D$OWsLN+TYs%QHk?ZAvqV7g7eDE@^2mw%hV|A ztQi?-EeF!`8r%~0VQ#gVh07b3eZ1qU-qTNZX4F-~;AQ%l2eZjuDXhi0*ZK%%LwdoN4E!Et`|HSWhMz| zPUD_Jm)^t$*u|ANpPEWUYfw~4)~B5&SCuU1`!)(e)GSCylt}1UcPULlwYQ6pzPISH z@!>>7s>emDZ&Du{b;L%x#gW;nonyPK>=AcQv{nd*W_*sAW2$dmF4a9x-Gk_tI1hR| z&OZ9V7A}UME≷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ⅈ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 zovℑ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�JSFCfqEUDL-#I~`}!0f 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 z�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

^sFSXL&joflwguh8{b80ob;-wNw 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 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@peculiar/asn1-android": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-android/-/asn1-android-2.6.0.tgz", + "integrity": "sha512-cBRCKtYPF7vJGN76/yG8VbxRcHLPF3HnkoHhKOZeHpoVtbMYfY9ROKtH3DtYUY9m8uI1Mh47PRhHf2hSK3xcSQ==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-ecc": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.6.1.tgz", + "integrity": "sha512-+Vqw8WFxrtDIN5ehUdvlN2m73exS2JVG0UAyfVB31gIfor3zWEAQPD+K9ydCxaj3MLen9k0JhKpu9LqviuCE1g==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-rsa": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.6.1.tgz", + "integrity": "sha512-1nVMEh46SElUt5CB3RUTV4EG/z7iYc7EoaDY5ECwganibQPkZ/Y2eMsTKB/LeyrUJ+W/tKoD9WUqIy8vB+CEdA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.6.0.tgz", + "integrity": "sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg==", + "license": "MIT", + "dependencies": { + "asn1js": "^3.0.6", + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-x509": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.6.1.tgz", + "integrity": "sha512-O9jT5F1A2+t3r7C4VT7LYGXqkGLK7Kj1xFpz7U0isPrubwU5PbDoyYtx6MiGst29yq7pXN5vZbQFKRCP+lLZlA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "asn1js": "^3.0.6", + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@phc/format": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@phc/format/-/format-1.0.0.tgz", + "integrity": "sha512-m7X9U6BG2+J+R1lSOdCiITLLrxm+cWlNI3HUFA92oLO77ObGNzaKdh8pMLqdZcshtkKuV84olNNXDfMc4FezBQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "license": "MIT" + }, + "node_modules/@simplewebauthn/server": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@simplewebauthn/server/-/server-10.0.1.tgz", + "integrity": "sha512-djNWcRn+H+6zvihBFJSpG3fzb0NQS9c/Mw5dYOtZ9H+oDw8qn9Htqxt4cpqRvSOAfwqP7rOvE9rwqVaoGGc3hg==", + "license": "MIT", + "dependencies": { + "@hexagon/base64": "^1.1.27", + "@levischuck/tiny-cbor": "^0.2.2", + "@peculiar/asn1-android": "^2.3.10", + "@peculiar/asn1-ecc": "^2.3.8", + "@peculiar/asn1-rsa": "^2.3.8", + "@peculiar/asn1-schema": "^2.3.8", + "@peculiar/asn1-x509": "^2.3.8", + "@simplewebauthn/types": "^10.0.0", + "cross-fetch": "^4.0.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@simplewebauthn/types": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@simplewebauthn/types/-/types-10.0.0.tgz", + "integrity": "sha512-SFXke7xkgPRowY2E+8djKbdEznTVnD5R6GO7GPTthpHrokLvNKw8C3lFZypTxLI7KkCfGPfhtqB3d7OVGGa9jQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT" + }, + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", + "license": "MIT" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==", + "license": "MIT" + }, + "node_modules/argon2": { + "version": "0.41.1", + "resolved": "https://registry.npmjs.org/argon2/-/argon2-0.41.1.tgz", + "integrity": "sha512-dqCW8kJXke8Ik+McUcMDltrbuAWETPyU6iq+4AhxqKphWi7pChB/Zgd/Tp/o8xRLbg8ksMj46F/vph9wnxpTzQ==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@phc/format": "^1.0.0", + "node-addon-api": "^8.1.0", + "node-gyp-build": "^4.8.1" + }, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/asn1js": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.7.tgz", + "integrity": "sha512-uLvq6KJu04qoQM6gvBfKFjlh6Gl0vOKQuR5cJMDHQkmwfMOQeN3F3SHCv9SNYSL+CRoHvOGFfllDlVz03GQjvQ==", + "license": "BSD-3-Clause", + "dependencies": { + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", + "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.14.0", + "raw-body": "~2.5.3", + "type-is": "~1.6.18", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-parser": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.7.tgz", + "integrity": "sha512-nGUvgXnotP3BsjiLX2ypbQnWoGUPIIfHQNZkkC668ntrzGWEZVW70HDEB1qnNGMicPje6EttlIgzo51YSwNQGw==", + "license": "MIT", + "dependencies": { + "cookie": "0.7.2", + "cookie-signature": "1.0.6" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/cors": { + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", + "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/cross-fetch": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.1.0.tgz", + "integrity": "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.7.0" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==", + "license": "MIT" + }, + "node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", + "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "~1.20.3", + "content-disposition": "~0.5.4", + "content-type": "~1.0.4", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "~0.1.12", + "proxy-addr": "~2.0.7", + "qs": "~6.14.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "~0.19.0", + "serve-static": "~1.16.2", + "setprototypeof": "1.2.0", + "statuses": "~2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express-rate-limit": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.5.1.tgz", + "integrity": "sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/express-rate-limit" + }, + "peerDependencies": { + "express": ">= 4.11" + } + }, + "node_modules/file-type": { + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-19.6.0.tgz", + "integrity": "sha512-VZR5I7k5wkD0HgFnMsq5hOsSc710MJMu5Nc5QYsbe38NN5iPV/XTObYLc/cpttRTf6lX538+5uO1ZQRhYibiZQ==", + "license": "MIT", + "dependencies": { + "get-stream": "^9.0.1", + "strtok3": "^9.0.1", + "token-types": "^6.0.0", + "uint8array-extras": "^1.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, + "node_modules/finalhandler": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/helmet": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-8.1.0.tgz", + "integrity": "sha512-jOiHyAZsmnr8LqoPGmCjYAaiuWwjAPLgY8ZX2XrmHawt99/u1y6RgrZMTeoPfpUbV96HOalYgz1qzkRbw54Pmg==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/jsonwebtoken": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz", + "integrity": "sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==", + "license": "MIT", + "dependencies": { + "jws": "^4.0.1", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsonwebtoken/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/jwa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz", + "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==", + "license": "MIT", + "dependencies": { + "jwa": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/multer": { + "version": "1.4.5-lts.2", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.2.tgz", + "integrity": "sha512-VzGiVigcG9zUAoCNU+xShztrlr1auZOlurXynNvO9GiWD1/mTBbUljOKY+qMeazBqXgRnjzeEgJI/wyjJUHg9A==", + "deprecated": "Multer 1.x is impacted by a number of vulnerabilities, which have been patched in 2.x. You should upgrade to the latest 2.x version.", + "license": "MIT", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-addon-api": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.7.0.tgz", + "integrity": "sha512-9MdFxmkKaOYVTV+XVRG8ArDwwQ77XIgIPyKASB1k3JPq3M8fGQQQE3YpMOrKm6g//Ktx8ivZr8xo1Qmtqub+GA==", + "license": "MIT", + "engines": { + "node": "^18 || ^20 || >= 21" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/nodemailer": { + "version": "8.0.5", + "resolved": "https://packages.applied-caas-gateway1.internal.api.openai.org/artifactory/api/npm/npm-public/nodemailer/-/nodemailer-8.0.5.tgz", + "integrity": "sha512-0PF8Yb1yZuQfQbq+5/pZJrtF6WQcjTd5/S4JOHs9PGFxuTqoB/icwuB44pOdURHJbRKX1PPoJZtY7R4VUoCC8w==", + "license": "MIT-0", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/otpauth": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/otpauth/-/otpauth-9.5.0.tgz", + "integrity": "sha512-Ldhc6UYl4baR5toGr8nfKC+L/b8/RgHKoIixAebgoNGzUUCET02g04rMEZ2ZsPfeVQhMHcuaOgb28nwMr81zCA==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "2.0.1" + }, + "funding": { + "url": "https://github.com/hectorm/otpauth?sponsor=1" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", + "license": "MIT" + }, + "node_modules/peek-readable": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.4.2.tgz", + "integrity": "sha512-peBp3qZyuS6cNIJ2akRNG1uo1WJ1d0wTxg/fxMdZ0BqCVhx242bSFHM9eNqflfJVS9SsgkzgT/1UgnsurBOTMg==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/pg": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.20.0.tgz", + "integrity": "sha512-ldhMxz2r8fl/6QkXnBD3CR9/xg694oT6DZQ2s6c/RI28OjtSOpxnPrUCGOBJ46RCUxcWdx3p6kw/xnDHjKvaRA==", + "license": "MIT", + "dependencies": { + "pg-connection-string": "^2.12.0", + "pg-pool": "^3.13.0", + "pg-protocol": "^1.13.0", + "pg-types": "2.2.0", + "pgpass": "1.0.5" + }, + "engines": { + "node": ">= 16.0.0" + }, + "optionalDependencies": { + "pg-cloudflare": "^1.3.0" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-cloudflare": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.3.0.tgz", + "integrity": "sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==", + "license": "MIT", + "optional": true + }, + "node_modules/pg-connection-string": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.12.0.tgz", + "integrity": "sha512-U7qg+bpswf3Cs5xLzRqbXbQl85ng0mfSV/J0nnA31MCLgvEaAo7CIhmeyrmJpOr7o+zm0rXK+hNnT5l9RHkCkQ==", + "license": "MIT" + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "license": "ISC", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-pool": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.13.0.tgz", + "integrity": "sha512-gB+R+Xud1gLFuRD/QgOIgGOBE2KCQPaPwkzBBGC9oG69pHTkhQeIuejVIk3/cnDyX39av2AxomQiyPT13WKHQA==", + "license": "MIT", + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.13.0.tgz", + "integrity": "sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w==", + "license": "MIT" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "license": "MIT", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pgpass": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "license": "MIT", + "dependencies": { + "split2": "^4.1.0" + } + }, + "node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.1.tgz", + "integrity": "sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pvtsutils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", + "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/pvutils": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.5.tgz", + "integrity": "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==", + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/qrcode": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz", + "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==", + "license": "MIT", + "dependencies": { + "dijkstrajs": "^1.0.1", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/qs": { + "version": "6.14.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz", + "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "license": "ISC" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.4.1", + "range-parser": "~1.2.1", + "statuses": "~2.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/serve-static": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "~0.19.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "license": "ISC" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strtok3": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-9.1.1.tgz", + "integrity": "sha512-FhwotcEqjr241ZbjFzjlIYg6c5/L/s4yBGWSMvJ9UoExiSqL+FnFA/CaeZx17WGaZMS/4SOZp8wH18jSS4R4lw==", + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^5.3.1" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/token-types": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-6.1.2.tgz", + "integrity": "sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww==", + "license": "MIT", + "dependencies": { + "@borewit/text-codec": "^0.2.1", + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "license": "MIT" + }, + "node_modules/uint8array-extras": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-1.5.0.tgz", + "integrity": "sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "license": "ISC" + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "license": "ISC" + }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/backend/package.json b/backend/package.json new file mode 100644 index 0000000..5be4c42 --- /dev/null +++ b/backend/package.json @@ -0,0 +1,28 @@ +{ + "name": "br-office-backend", + "version": "1.0.0", + "type": "module", + "scripts": { + "dev": "node --watch src/server.js", + "start": "node src/server.js" + }, + "dependencies": { + "@simplewebauthn/server": "^10.0.1", + "argon2": "^0.41.1", + "cookie-parser": "^1.4.7", + "cors": "^2.8.5", + "dotenv": "^16.4.5", + "express": "^4.21.2", + "express-rate-limit": "^7.4.1", + "file-type": "^19.5.0", + "helmet": "^8.0.0", + "jsonwebtoken": "^9.0.2", + "multer": "^1.4.5-lts.1", + "nodemailer": "8.0.5", + "otpauth": "^9.3.6", + "pg": "^8.12.0", + "qrcode": "^1.5.4", + "uuid": "^10.0.0", + "zod": "^3.23.8" + } +} diff --git a/backend/src/config/db.js b/backend/src/config/db.js new file mode 100644 index 0000000..68c543e --- /dev/null +++ b/backend/src/config/db.js @@ -0,0 +1,32 @@ +import pg from "pg"; +import { env } from "./env.js"; +const { Pool } = pg; + +export const pool = new Pool({ + connectionString: env.databaseUrl, + max: 20, + idleTimeoutMillis: 30000, + ssl: env.nodeEnv === "production" ? { rejectUnauthorized: false } : false, +}); + +export async function query(text, params = []) { + return pool.query(text, params); +} + +export async function withDbSession(user, callback) { + const client = await pool.connect(); + try { + await client.query("BEGIN"); + await client.query("SELECT set_config('app.user_id', $1, true)", [String(user?.sub || 0)]); + await client.query("SELECT set_config('app.user_role', $1, true)", [String(user?.role || 'anonymous')]); + await client.query("SELECT set_config('app.committee_id', $1, true)", [String(user?.committee_id || 0)]); + const result = await callback(client); + await client.query("COMMIT"); + return result; + } catch (err) { + await client.query("ROLLBACK"); + throw err; + } finally { + client.release(); + } +} diff --git a/backend/src/config/env.js b/backend/src/config/env.js new file mode 100644 index 0000000..8ea080b --- /dev/null +++ b/backend/src/config/env.js @@ -0,0 +1,32 @@ +import dotenv from "dotenv"; +dotenv.config(); + +export const env = { + nodeEnv: process.env.NODE_ENV || "development", + port: Number(process.env.PORT || 8080), + corsOrigin: process.env.CORS_ORIGIN || "http://localhost:5173", + jwtAccessSecret: process.env.JWT_ACCESS_SECRET || "change-me-access", + jwtRefreshSecret: process.env.JWT_REFRESH_SECRET || "change-me-refresh", + cookieSecure: String(process.env.COOKIE_SECURE || "false") === "true", + forceMfaForPrivileged: String(process.env.FORCE_MFA_FOR_PRIVILEGED || "true") === "true", + rpId: process.env.RP_ID || "localhost", + rpOrigin: process.env.RP_ORIGIN || "http://localhost:5173", + databaseUrl: process.env.DATABASE_URL || "postgres://br_app:change_me@localhost:5432/br_office", + uploadDir: process.env.UPLOAD_DIR || "./uploads", + storageProvider: process.env.STORAGE_PROVIDER || "local", + s3Endpoint: process.env.S3_ENDPOINT || "", + s3Bucket: process.env.S3_BUCKET || "br-office", + s3AccessKey: process.env.S3_ACCESS_KEY || "", + s3SecretKey: process.env.S3_SECRET_KEY || "", + clamavHost: process.env.CLAMAV_HOST || "localhost", + clamavPort: Number(process.env.CLAMAV_PORT || 3310), + fileEncryptionEnabled: String(process.env.FILE_ENCRYPTION_ENABLED || "true") === "true", + fileEncryptionKey: process.env.FILE_ENCRYPTION_KEY || "", + smtpHost: process.env.SMTP_HOST || "", + smtpPort: Number(process.env.SMTP_PORT || 587), + smtpUser: process.env.SMTP_USER || "", + smtpPass: process.env.SMTP_PASS || "", + smtpFrom: process.env.SMTP_FROM || "br-office@localhost", + smtpSecure: String(process.env.SMTP_SECURE || "false") === "true", + smtpRequireTls: String(process.env.SMTP_REQUIRE_TLS || "false") === "true", +}; diff --git a/backend/src/db/000_migration_table.sql b/backend/src/db/000_migration_table.sql new file mode 100644 index 0000000..836843f --- /dev/null +++ b/backend/src/db/000_migration_table.sql @@ -0,0 +1,5 @@ +CREATE TABLE IF NOT EXISTS schema_migration ( + id BIGSERIAL PRIMARY KEY, + file_name VARCHAR(255) NOT NULL UNIQUE, + applied_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); diff --git a/backend/src/db/bootstrap.js b/backend/src/db/bootstrap.js new file mode 100644 index 0000000..23de5a0 --- /dev/null +++ b/backend/src/db/bootstrap.js @@ -0,0 +1,155 @@ +import fs from "fs/promises"; +import path from "path"; +import argon2 from "argon2"; +import pkg from "pg"; + +const { Pool } = pkg; + +const MIGRATIONS_DIR = path.resolve(process.cwd(), "src/db/migrations"); +const BOOTSTRAP_SQL = path.resolve(process.cwd(), "src/db/000_migration_table.sql"); + +function isSqlFile(name) { + return name.endsWith(".sql"); +} + +async function ensureMigrationTable(client) { + const sql = await fs.readFile(BOOTSTRAP_SQL, "utf8"); + await client.query(sql); +} + +async function getAppliedMigrations(client) { + const { rows } = await client.query( + "SELECT file_name FROM schema_migration ORDER BY file_name" + ); + return new Set(rows.map((r) => r.file_name)); +} + +async function applyMigration(client, fileName, sql) { + await client.query("BEGIN"); + try { + await client.query(sql); + await client.query( + "INSERT INTO schema_migration (file_name) VALUES ($1) ON CONFLICT (file_name) DO NOTHING", + [fileName] + ); + await client.query("COMMIT"); + console.log(`[db] migration applied: ${fileName}`); + } catch (error) { + await client.query("ROLLBACK"); + throw new Error(`Migration failed: ${fileName}\n${error.message}`); + } +} + +async function ensureDefaultCommittee(client) { + await client.query( + ` + INSERT INTO committee (name, committee_type) + SELECT 'Gesamtbetriebsrat', 'general' + WHERE NOT EXISTS ( + SELECT 1 FROM committee WHERE name = 'Gesamtbetriebsrat' + ) + ` + ); +} + +async function ensureDefaultAdmin(client) { + const adminEmail = process.env.BOOTSTRAP_ADMIN_EMAIL || "admin@br-office.local"; + const adminPassword = process.env.BOOTSTRAP_ADMIN_PASSWORD || "adminadmin"; + + const existing = await client.query( + ` + SELECT id, email, role + FROM app_user + WHERE LOWER(email) = LOWER($1) + LIMIT 1 + `, + [adminEmail] + ); + + if (existing.rowCount > 0) { + console.log(`[db] default admin already exists: ${adminEmail}`); + return; + } + + const committee = await client.query( + ` + SELECT id + FROM committee + ORDER BY id + LIMIT 1 + ` + ); + + const committeeId = committee.rows[0]?.id ?? null; + const passwordHash = await argon2.hash(adminPassword); + await client.query( + ` + INSERT INTO app_user ( + full_name, + email, + password_hash, + role, + committee_id, + is_active, + security_classification, + force_password_reset, + two_factor_enabled + ) + VALUES ($1, $2, $3, 'admin', $4, TRUE, 'restricted', TRUE, FALSE) + `, + ["Systemadministrator", adminEmail, passwordHash, committeeId] + ); + + console.log(`[db] default admin created: ${adminEmail}`); +} + +export async function runBootstrapMigrations() { + const pool = new Pool({ + connectionString: process.env.DATABASE_URL, + }); + + const client = await pool.connect(); + + try { + console.log("[db] bootstrap started"); + await ensureMigrationTable(client); + + const files = (await fs.readdir(MIGRATIONS_DIR)) + .filter(isSqlFile) + .sort((a, b) => a.localeCompare(b)); + + const applied = await getAppliedMigrations(client); + + for (const fileName of files) { + if (applied.has(fileName)) { + continue; + } + + const fullPath = path.join(MIGRATIONS_DIR, fileName); + const sql = await fs.readFile(fullPath, "utf8"); + await applyMigration(client, fileName, sql); + } + + // Nur ausführen, wenn Kernschema vorhanden ist + const tableCheck = await client.query(` + SELECT EXISTS ( + SELECT 1 + FROM information_schema.tables + WHERE table_schema = 'public' + AND table_name = 'app_user' + ) AS exists + `); + + if (tableCheck.rows[0]?.exists) { + await ensureDefaultCommittee(client); + await ensureDefaultAdmin(client); + } else { + console.warn("[db] app_user table missing; admin bootstrap skipped"); + } + + console.log("[db] bootstrap finished"); + } finally { + client.release(); + await pool.end(); + } +} diff --git a/backend/src/db/migrations/001_extensions_and_types.sql b/backend/src/db/migrations/001_extensions_and_types.sql new file mode 100644 index 0000000..740d5c4 --- /dev/null +++ b/backend/src/db/migrations/001_extensions_and_types.sql @@ -0,0 +1,14 @@ +CREATE EXTENSION IF NOT EXISTS pgcrypto; + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'role_type') THEN + CREATE TYPE role_type AS ENUM ('admin','chair','member','secretary','advisor'); + END IF; + IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'conf_level') THEN + CREATE TYPE conf_level AS ENUM ('intern','vertraulich','streng_vertraulich'); + END IF; + IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'scan_status_type') THEN + CREATE TYPE scan_status_type AS ENUM ('pending','clean','infected','failed'); + END IF; +END$$; diff --git a/backend/src/db/migrations/002_core_schema.sql b/backend/src/db/migrations/002_core_schema.sql new file mode 100644 index 0000000..75236c9 --- /dev/null +++ b/backend/src/db/migrations/002_core_schema.sql @@ -0,0 +1,268 @@ +CREATE TABLE IF NOT EXISTS committee ( + id BIGSERIAL PRIMARY KEY, + name VARCHAR(120) NOT NULL, + committee_type VARCHAR(50) NOT NULL DEFAULT 'general', + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS app_user ( + id BIGSERIAL PRIMARY KEY, + full_name VARCHAR(120) NOT NULL, + email VARCHAR(255) UNIQUE NOT NULL, + password_hash TEXT NOT NULL DEFAULT '', + role role_type NOT NULL DEFAULT 'member', + committee_id BIGINT REFERENCES committee(id), + is_active BOOLEAN NOT NULL DEFAULT TRUE, + security_classification VARCHAR(30) NOT NULL DEFAULT 'standard', + force_password_reset BOOLEAN NOT NULL DEFAULT FALSE, + two_factor_enabled BOOLEAN NOT NULL DEFAULT FALSE, + last_mfa_at TIMESTAMPTZ, + last_login_at TIMESTAMPTZ, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS refresh_token ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL REFERENCES app_user(id) ON DELETE CASCADE, + token_hash TEXT NOT NULL, + expires_at TIMESTAMPTZ NOT NULL, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS br_case ( + id BIGSERIAL PRIMARY KEY, + case_number VARCHAR(50) UNIQUE NOT NULL, + title VARCHAR(255) NOT NULL, + case_type VARCHAR(50) NOT NULL, + status VARCHAR(50) NOT NULL DEFAULT 'neu', + priority VARCHAR(20) NOT NULL DEFAULT 'mittel', + confidentiality_level conf_level NOT NULL DEFAULT 'intern', + summary TEXT, + affected_employee_name VARCHAR(120), + department VARCHAR(120), + committee_id BIGINT REFERENCES committee(id), + owner_user_id BIGINT NOT NULL REFERENCES app_user(id), + legal_hold BOOLEAN NOT NULL DEFAULT FALSE, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + deleted_at TIMESTAMPTZ +); + +CREATE TABLE IF NOT EXISTS deadline ( + id BIGSERIAL PRIMARY KEY, + case_id BIGINT REFERENCES br_case(id) ON DELETE CASCADE, + title VARCHAR(255) NOT NULL, + deadline_type VARCHAR(50) NOT NULL, + due_date TIMESTAMPTZ NOT NULL, + status VARCHAR(30) NOT NULL DEFAULT 'offen', + remind_days_before INTEGER NOT NULL DEFAULT 2, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + deleted_at TIMESTAMPTZ +); + +CREATE TABLE IF NOT EXISTS meeting ( + id BIGSERIAL PRIMARY KEY, + meeting_number VARCHAR(50) UNIQUE NOT NULL, + title VARCHAR(255) NOT NULL, + meeting_type VARCHAR(50) NOT NULL DEFAULT 'ordentlich', + meeting_date DATE NOT NULL, + start_time TIME, + end_time TIME, + location VARCHAR(255), + status VARCHAR(30) NOT NULL DEFAULT 'geplant', + protocol_text TEXT, + is_quorate BOOLEAN, + quorum_recorded_at TIMESTAMPTZ, + quorum_recorded_by BIGINT REFERENCES app_user(id), + committee_id BIGINT REFERENCES committee(id), + chair_user_id BIGINT REFERENCES app_user(id), + secretary_user_id BIGINT REFERENCES app_user(id), + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS meeting_agenda_item ( + id BIGSERIAL PRIMARY KEY, + meeting_id BIGINT NOT NULL REFERENCES meeting(id) ON DELETE CASCADE, + agenda_number VARCHAR(20) NOT NULL, + title VARCHAR(255) NOT NULL, + description TEXT, + duration_minutes INTEGER, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS decision ( + id BIGSERIAL PRIMARY KEY, + decision_number VARCHAR(50) UNIQUE NOT NULL, + meeting_id BIGINT REFERENCES meeting(id) ON DELETE SET NULL, + agenda_item_id BIGINT REFERENCES meeting_agenda_item(id) ON DELETE SET NULL, + case_id BIGINT REFERENCES br_case(id) ON DELETE SET NULL, + title VARCHAR(255) NOT NULL, + decision_text TEXT NOT NULL, + status VARCHAR(30) NOT NULL DEFAULT 'offen', + votes_yes INTEGER NOT NULL DEFAULT 0, + votes_no INTEGER NOT NULL DEFAULT 0, + votes_abstain INTEGER NOT NULL DEFAULT 0, + responsible_user_id BIGINT REFERENCES app_user(id), + due_date TIMESTAMPTZ, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS task ( + id BIGSERIAL PRIMARY KEY, + title VARCHAR(255) NOT NULL, + description TEXT, + status VARCHAR(30) NOT NULL DEFAULT 'offen', + priority VARCHAR(20) NOT NULL DEFAULT 'mittel', + assigned_user_id BIGINT REFERENCES app_user(id), + backup_user_id BIGINT REFERENCES app_user(id), + case_id BIGINT REFERENCES br_case(id) ON DELETE SET NULL, + meeting_id BIGINT REFERENCES meeting(id) ON DELETE SET NULL, + decision_id BIGINT REFERENCES decision(id) ON DELETE SET NULL, + due_date TIMESTAMPTZ, + confidentiality_level conf_level NOT NULL DEFAULT 'intern', + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + deleted_at TIMESTAMPTZ +); + +CREATE TABLE IF NOT EXISTS document_item ( + id BIGSERIAL PRIMARY KEY, + document_number VARCHAR(50) UNIQUE NOT NULL, + title VARCHAR(255) NOT NULL, + document_type VARCHAR(50) NOT NULL, + description TEXT, + version_label VARCHAR(30) NOT NULL DEFAULT 'v1', + file_name VARCHAR(255), + storage_path TEXT, + storage_provider VARCHAR(20) NOT NULL DEFAULT 'local', + mime_type VARCHAR(100), + size_bytes BIGINT, + sha256_hash VARCHAR(64), + confidentiality_level conf_level NOT NULL DEFAULT 'intern', + case_id BIGINT REFERENCES br_case(id) ON DELETE SET NULL, + meeting_id BIGINT REFERENCES meeting(id) ON DELETE SET NULL, + decision_id BIGINT REFERENCES decision(id) ON DELETE SET NULL, + uploaded_by BIGINT REFERENCES app_user(id), + is_signed BOOLEAN NOT NULL DEFAULT FALSE, + scan_status scan_status_type NOT NULL DEFAULT 'pending', + scan_engine VARCHAR(50), + scan_result TEXT, + uploaded_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + deleted_at TIMESTAMPTZ +); + +CREATE TABLE IF NOT EXISTS document_scan_event ( + id BIGSERIAL PRIMARY KEY, + document_id BIGINT NOT NULL REFERENCES document_item(id) ON DELETE CASCADE, + scanned_by_user_id BIGINT REFERENCES app_user(id), + status scan_status_type NOT NULL, + engine VARCHAR(50) NOT NULL, + result_text TEXT, + scanned_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS comment_item ( + id BIGSERIAL PRIMARY KEY, + entity_type VARCHAR(50) NOT NULL, + entity_id BIGINT NOT NULL, + comment_text TEXT NOT NULL, + visibility VARCHAR(30) NOT NULL DEFAULT 'intern', + author_user_id BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + deleted_at TIMESTAMPTZ +); + +CREATE TABLE IF NOT EXISTS template_item ( + id BIGSERIAL PRIMARY KEY, + title VARCHAR(255) NOT NULL, + category VARCHAR(50) NOT NULL, + description TEXT, + content TEXT NOT NULL, + version_label VARCHAR(30) NOT NULL DEFAULT 'v1', + is_active BOOLEAN NOT NULL DEFAULT TRUE, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS notification_item ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL REFERENCES app_user(id) ON DELETE CASCADE, + notification_type VARCHAR(50) NOT NULL, + title VARCHAR(255) NOT NULL, + entity_type VARCHAR(50), + entity_id BIGINT, + is_read BOOLEAN NOT NULL DEFAULT FALSE, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS audit_log ( + id BIGSERIAL PRIMARY KEY, + actor_user_id BIGINT REFERENCES app_user(id), + action VARCHAR(100) NOT NULL, + entity_type VARCHAR(50), + entity_id BIGINT, + metadata JSONB, + ip_address INET, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS auth_challenge ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL REFERENCES app_user(id) ON DELETE CASCADE, + challenge_type VARCHAR(40) NOT NULL, + challenge_value TEXT NOT NULL, + metadata JSONB, + expires_at TIMESTAMPTZ NOT NULL, + used_at TIMESTAMPTZ, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS webauthn_challenge ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL REFERENCES app_user(id) ON DELETE CASCADE, + flow_type VARCHAR(40) NOT NULL, + challenge TEXT NOT NULL, + expires_at TIMESTAMPTZ NOT NULL, + used_at TIMESTAMPTZ, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS webauthn_credential ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL REFERENCES app_user(id) ON DELETE CASCADE, + credential_id TEXT NOT NULL UNIQUE, + public_key TEXT NOT NULL, + counter BIGINT NOT NULL DEFAULT 0, + transports JSONB, + credential_device_type VARCHAR(50), + credential_backed_up BOOLEAN NOT NULL DEFAULT FALSE, + nickname VARCHAR(120), + last_used_at TIMESTAMPTZ, + revoked_at TIMESTAMPTZ, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS user_totp_secret ( + user_id BIGINT PRIMARY KEY REFERENCES app_user(id) ON DELETE CASCADE, + secret_base32 TEXT NOT NULL, + is_verified BOOLEAN NOT NULL DEFAULT FALSE, + verified_at TIMESTAMPTZ, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); diff --git a/backend/src/db/migrations/003_triggers_views_and_helpers.sql b/backend/src/db/migrations/003_triggers_views_and_helpers.sql new file mode 100644 index 0000000..27aa53e --- /dev/null +++ b/backend/src/db/migrations/003_triggers_views_and_helpers.sql @@ -0,0 +1,89 @@ +CREATE OR REPLACE FUNCTION set_updated_at() RETURNS trigger AS $$ +BEGIN + NEW.updated_at = NOW(); + RETURN NEW; +END; +$$ LANGUAGE plpgsql; + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_case_updated_at') THEN + CREATE TRIGGER trg_case_updated_at BEFORE UPDATE ON br_case FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + CREATE TRIGGER trg_deadline_updated_at BEFORE UPDATE ON deadline FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + CREATE TRIGGER trg_meeting_updated_at BEFORE UPDATE ON meeting FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + CREATE TRIGGER trg_decision_updated_at BEFORE UPDATE ON decision FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + CREATE TRIGGER trg_task_updated_at BEFORE UPDATE ON task FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + CREATE TRIGGER trg_document_updated_at BEFORE UPDATE ON document_item FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + CREATE TRIGGER trg_template_updated_at BEFORE UPDATE ON template_item FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; +END $$; + +CREATE OR REPLACE FUNCTION audit_if_changed() RETURNS trigger AS $$ +BEGIN + INSERT INTO audit_log(actor_user_id, action, entity_type, entity_id, metadata) + VALUES ( + NULL, + TG_OP, + TG_TABLE_NAME, + COALESCE(NEW.id, OLD.id), + jsonb_build_object('old', to_jsonb(OLD), 'new', to_jsonb(NEW)) + ); + RETURN COALESCE(NEW, OLD); +END; +$$ LANGUAGE plpgsql; + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_audit_case') THEN + CREATE TRIGGER trg_audit_case AFTER INSERT OR UPDATE OR DELETE ON br_case FOR EACH ROW EXECUTE FUNCTION audit_if_changed(); + CREATE TRIGGER trg_audit_deadline AFTER INSERT OR UPDATE OR DELETE ON deadline FOR EACH ROW EXECUTE FUNCTION audit_if_changed(); + CREATE TRIGGER trg_audit_meeting AFTER INSERT OR UPDATE OR DELETE ON meeting FOR EACH ROW EXECUTE FUNCTION audit_if_changed(); + CREATE TRIGGER trg_audit_decision AFTER INSERT OR UPDATE OR DELETE ON decision FOR EACH ROW EXECUTE FUNCTION audit_if_changed(); + CREATE TRIGGER trg_audit_task AFTER INSERT OR UPDATE OR DELETE ON task FOR EACH ROW EXECUTE FUNCTION audit_if_changed(); + CREATE TRIGGER trg_audit_document AFTER INSERT OR UPDATE OR DELETE ON document_item FOR EACH ROW EXECUTE FUNCTION audit_if_changed(); + END IF; +END $$; + +CREATE OR REPLACE FUNCTION app_user_id() RETURNS BIGINT AS $$ + SELECT COALESCE(NULLIF(current_setting('app.user_id', true), ''), '0')::BIGINT; +$$ LANGUAGE SQL STABLE; + +CREATE OR REPLACE FUNCTION app_role() RETURNS TEXT AS $$ + SELECT COALESCE(NULLIF(current_setting('app.user_role', true), ''), 'anonymous'); +$$ LANGUAGE SQL STABLE; + +CREATE OR REPLACE FUNCTION app_committee_id() RETURNS BIGINT AS $$ + SELECT COALESCE(NULLIF(current_setting('app.committee_id', true), ''), '0')::BIGINT; +$$ LANGUAGE SQL STABLE; + +CREATE OR REPLACE FUNCTION can_read_conf_level(level conf_level, owner BIGINT, committee BIGINT) RETURNS BOOLEAN AS $$ +BEGIN + IF app_role() = 'admin' THEN RETURN TRUE; END IF; + IF level = 'intern' THEN RETURN TRUE; END IF; + IF level = 'vertraulich' THEN + RETURN owner = app_user_id() OR committee = app_committee_id() OR app_role() IN ('chair','secretary'); + END IF; + RETURN owner = app_user_id() OR app_role() IN ('chair'); +END; +$$ LANGUAGE plpgsql STABLE; + +CREATE OR REPLACE VIEW v_case_masked AS +SELECT + id, + case_number, + title, + case_type, + status, + priority, + confidentiality_level, + CASE + WHEN confidentiality_level = 'streng_vertraulich' AND app_role() NOT IN ('admin','chair') AND owner_user_id <> app_user_id() + THEN '***' + ELSE COALESCE(affected_employee_name, '') + END AS affected_employee_name_masked, + department, + committee_id, + owner_user_id, + created_at +FROM br_case +WHERE deleted_at IS NULL; diff --git a/backend/src/db/migrations/004_rls_policies.sql b/backend/src/db/migrations/004_rls_policies.sql new file mode 100644 index 0000000..bf37ced --- /dev/null +++ b/backend/src/db/migrations/004_rls_policies.sql @@ -0,0 +1,161 @@ +ALTER TABLE br_case ENABLE ROW LEVEL SECURITY; +ALTER TABLE deadline ENABLE ROW LEVEL SECURITY; +ALTER TABLE task ENABLE ROW LEVEL SECURITY; +ALTER TABLE document_item ENABLE ROW LEVEL SECURITY; +ALTER TABLE comment_item ENABLE ROW LEVEL SECURITY; +ALTER TABLE notification_item ENABLE ROW LEVEL SECURITY; +ALTER TABLE app_user ENABLE ROW LEVEL SECURITY; +ALTER TABLE meeting ENABLE ROW LEVEL SECURITY; +ALTER TABLE decision ENABLE ROW LEVEL SECURITY; +ALTER TABLE template_item ENABLE ROW LEVEL SECURITY; +ALTER TABLE committee ENABLE ROW LEVEL SECURITY; + +ALTER TABLE br_case FORCE ROW LEVEL SECURITY; +ALTER TABLE deadline FORCE ROW LEVEL SECURITY; +ALTER TABLE task FORCE ROW LEVEL SECURITY; +ALTER TABLE document_item FORCE ROW LEVEL SECURITY; +ALTER TABLE comment_item FORCE ROW LEVEL SECURITY; +ALTER TABLE notification_item FORCE ROW LEVEL SECURITY; +ALTER TABLE app_user FORCE ROW LEVEL SECURITY; +ALTER TABLE meeting FORCE ROW LEVEL SECURITY; +ALTER TABLE decision FORCE ROW LEVEL SECURITY; +ALTER TABLE template_item FORCE ROW LEVEL SECURITY; +ALTER TABLE committee FORCE ROW LEVEL SECURITY; + +DROP POLICY IF EXISTS committee_select ON committee; +DROP POLICY IF EXISTS committee_modify ON committee; +CREATE POLICY committee_select ON committee FOR SELECT USING (TRUE); +CREATE POLICY committee_modify ON committee FOR ALL USING (app_role() IN ('admin','chair')) WITH CHECK (app_role() IN ('admin','chair')); + +DROP POLICY IF EXISTS user_select ON app_user; +DROP POLICY IF EXISTS user_modify ON app_user; +CREATE POLICY user_select ON app_user FOR SELECT USING ( + app_role() IN ('admin','chair') OR id = app_user_id() +); +CREATE POLICY user_modify ON app_user FOR ALL USING ( + app_role() = 'admin' OR id = app_user_id() +) WITH CHECK ( + app_role() = 'admin' OR id = app_user_id() +); + +DROP POLICY IF EXISTS br_case_select_policy ON br_case; +DROP POLICY IF EXISTS br_case_modify_policy ON br_case; +CREATE POLICY br_case_select_policy ON br_case FOR SELECT USING ( + deleted_at IS NULL AND can_read_conf_level(confidentiality_level, owner_user_id, committee_id) +); +CREATE POLICY br_case_modify_policy ON br_case FOR ALL USING ( + deleted_at IS NULL AND ( + app_role() = 'admin' + OR owner_user_id = app_user_id() + OR (committee_id = app_committee_id() AND app_role() IN ('chair', 'secretary')) + ) +) WITH CHECK (can_read_conf_level(confidentiality_level, owner_user_id, committee_id)); + +DROP POLICY IF EXISTS deadline_select_policy ON deadline; +DROP POLICY IF EXISTS deadline_modify_policy ON deadline; +CREATE POLICY deadline_select_policy ON deadline FOR SELECT USING ( + deleted_at IS NULL AND EXISTS ( + SELECT 1 FROM br_case c WHERE c.id = deadline.case_id + AND can_read_conf_level(c.confidentiality_level, c.owner_user_id, c.committee_id) + ) +); +CREATE POLICY deadline_modify_policy ON deadline FOR ALL USING ( + deleted_at IS NULL AND EXISTS ( + SELECT 1 FROM br_case c WHERE c.id = deadline.case_id + AND ( + app_role() = 'admin' + OR c.owner_user_id = app_user_id() + OR (c.committee_id = app_committee_id() AND app_role() IN ('chair', 'secretary')) + ) + ) +) WITH CHECK (TRUE); + +DROP POLICY IF EXISTS meeting_select_policy ON meeting; +DROP POLICY IF EXISTS meeting_modify_policy ON meeting; +CREATE POLICY meeting_select_policy ON meeting FOR SELECT USING ( + committee_id IS NULL OR committee_id = app_committee_id() OR app_role() IN ('admin','chair','secretary') +); +CREATE POLICY meeting_modify_policy ON meeting FOR ALL USING ( + app_role() IN ('admin','chair','secretary') +) WITH CHECK (app_role() IN ('admin','chair','secretary')); + +DROP POLICY IF EXISTS decision_select_policy ON decision; +DROP POLICY IF EXISTS decision_modify_policy ON decision; +CREATE POLICY decision_select_policy ON decision FOR SELECT USING ( + case_id IS NULL OR EXISTS ( + SELECT 1 FROM br_case c WHERE c.id = decision.case_id + AND can_read_conf_level(c.confidentiality_level, c.owner_user_id, c.committee_id) + ) OR app_role() IN ('admin','chair','secretary') +); +CREATE POLICY decision_modify_policy ON decision FOR ALL USING ( + app_role() IN ('admin','chair','secretary') OR responsible_user_id = app_user_id() +) WITH CHECK (TRUE); + +DROP POLICY IF EXISTS task_select_policy ON task; +DROP POLICY IF EXISTS task_modify_policy ON task; +CREATE POLICY task_select_policy ON task FOR SELECT USING ( + deleted_at IS NULL AND ( + assigned_user_id = app_user_id() + OR backup_user_id = app_user_id() + OR app_role() IN ('admin','chair','secretary') + ) +); +CREATE POLICY task_modify_policy ON task FOR ALL USING ( + deleted_at IS NULL AND ( + app_role() IN ('admin','chair','secretary') + OR assigned_user_id = app_user_id() + OR created_by = app_user_id() + ) +) WITH CHECK (TRUE); + +DROP POLICY IF EXISTS document_select_policy ON document_item; +DROP POLICY IF EXISTS document_modify_policy ON document_item; +CREATE POLICY document_select_policy ON document_item FOR SELECT USING ( + deleted_at IS NULL + AND scan_status = 'clean' + AND ( + app_role() = 'admin' + OR uploaded_by = app_user_id() + OR EXISTS ( + SELECT 1 FROM br_case c + WHERE c.id = document_item.case_id + AND can_read_conf_level(document_item.confidentiality_level, c.owner_user_id, c.committee_id) + ) + OR case_id IS NULL + ) +); +CREATE POLICY document_modify_policy ON document_item FOR ALL USING ( + deleted_at IS NULL AND ( + app_role() IN ('admin','chair','secretary') + OR uploaded_by = app_user_id() + ) +) WITH CHECK (TRUE); + +DROP POLICY IF EXISTS comment_select_policy ON comment_item; +DROP POLICY IF EXISTS comment_modify_policy ON comment_item; +CREATE POLICY comment_select_policy ON comment_item FOR SELECT USING ( + deleted_at IS NULL AND ( + visibility = 'intern' + OR (visibility = 'vertraulich' AND app_role() IN ('admin','chair','secretary')) + ) +); +CREATE POLICY comment_modify_policy ON comment_item FOR ALL USING ( + deleted_at IS NULL AND ( + author_user_id = app_user_id() + OR app_role() IN ('admin','chair','secretary') + ) +) WITH CHECK (TRUE); + +DROP POLICY IF EXISTS template_select_policy ON template_item; +DROP POLICY IF EXISTS template_modify_policy ON template_item; +CREATE POLICY template_select_policy ON template_item FOR SELECT USING (TRUE); +CREATE POLICY template_modify_policy ON template_item FOR ALL USING (app_role() IN ('admin','chair','secretary')) WITH CHECK (app_role() IN ('admin','chair','secretary')); + +DROP POLICY IF EXISTS notification_select_policy ON notification_item; +DROP POLICY IF EXISTS notification_modify_policy ON notification_item; +CREATE POLICY notification_select_policy ON notification_item FOR SELECT USING ( + user_id = app_user_id() OR app_role() IN ('admin','chair','secretary') +); +CREATE POLICY notification_modify_policy ON notification_item FOR ALL USING ( + user_id = app_user_id() OR app_role() IN ('admin','chair','secretary') +) WITH CHECK (TRUE); diff --git a/backend/src/db/migrations/005_roles_and_seed.sql b/backend/src/db/migrations/005_roles_and_seed.sql new file mode 100644 index 0000000..10e34ec --- /dev/null +++ b/backend/src/db/migrations/005_roles_and_seed.sql @@ -0,0 +1,23 @@ +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'br_app') THEN + CREATE ROLE br_app LOGIN PASSWORD 'change_me'; + END IF; + IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'br_migration') THEN + CREATE ROLE br_migration LOGIN PASSWORD 'change_me'; + END IF; + IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'br_reporting') THEN + CREATE ROLE br_reporting LOGIN PASSWORD 'change_me'; + END IF; +END$$; + +GRANT USAGE ON SCHEMA public TO br_app, br_reporting; +GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO br_app; +GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO br_app; +GRANT SELECT ON v_case_masked TO br_reporting; +REVOKE ALL ON audit_log FROM PUBLIC; +GRANT SELECT ON audit_log TO br_app; + +INSERT INTO committee(name, committee_type) +VALUES ('Gesamtbetriebsrat', 'general') +ON CONFLICT DO NOTHING; diff --git a/backend/src/db/migrations/006_prod_login_hardening.sql b/backend/src/db/migrations/006_prod_login_hardening.sql new file mode 100644 index 0000000..31d4f35 --- /dev/null +++ b/backend/src/db/migrations/006_prod_login_hardening.sql @@ -0,0 +1,61 @@ +-- === LOGIN HARDENING === + +ALTER TABLE refresh_token + ADD COLUMN IF NOT EXISTS revoked_at TIMESTAMPTZ, + ADD COLUMN IF NOT EXISTS replaced_by_token_id BIGINT REFERENCES refresh_token(id) ON DELETE SET NULL, + ADD COLUMN IF NOT EXISTS user_agent TEXT, + ADD COLUMN IF NOT EXISTS ip_address INET, + ADD COLUMN IF NOT EXISTS device_name VARCHAR(120); + +CREATE TABLE IF NOT EXISTS auth_login_attempt ( + id BIGSERIAL PRIMARY KEY, + email_attempted VARCHAR(255), + user_id BIGINT REFERENCES app_user(id) ON DELETE SET NULL, + success BOOLEAN NOT NULL DEFAULT FALSE, + failure_reason VARCHAR(100), + ip_address INET, + user_agent TEXT, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS auth_lockout ( + user_id BIGINT PRIMARY KEY REFERENCES app_user(id) ON DELETE CASCADE, + failed_attempts INTEGER NOT NULL DEFAULT 0, + locked_until TIMESTAMPTZ, + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS password_reset_token ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL REFERENCES app_user(id) ON DELETE CASCADE, + token_hash TEXT NOT NULL, + expires_at TIMESTAMPTZ NOT NULL, + used_at TIMESTAMPTZ, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +ALTER TABLE app_user + ADD COLUMN IF NOT EXISTS password_changed_at TIMESTAMPTZ, + ADD COLUMN IF NOT EXISTS email_verified_at TIMESTAMPTZ, + ADD COLUMN IF NOT EXISTS locked_until TIMESTAMPTZ, + ADD COLUMN IF NOT EXISTS failed_login_attempts INTEGER NOT NULL DEFAULT 0, + ADD COLUMN IF NOT EXISTS must_enroll_webauthn BOOLEAN NOT NULL DEFAULT FALSE, + ADD COLUMN IF NOT EXISTS must_enroll_totp BOOLEAN NOT NULL DEFAULT FALSE; + +ALTER TABLE user_totp_secret + ADD COLUMN IF NOT EXISTS secret_ciphertext BYTEA, + ADD COLUMN IF NOT EXISTS secret_key_version INTEGER NOT NULL DEFAULT 1; + +ALTER TABLE webauthn_credential + ADD COLUMN IF NOT EXISTS aaguid UUID, + ADD COLUMN IF NOT EXISTS rp_id VARCHAR(255), + ADD COLUMN IF NOT EXISTS origin VARCHAR(255), + ADD COLUMN IF NOT EXISTS attestation_format VARCHAR(50), + ADD COLUMN IF NOT EXISTS last_ip INET, + ADD COLUMN IF NOT EXISTS is_primary BOOLEAN NOT NULL DEFAULT FALSE; + +CREATE INDEX IF NOT EXISTS idx_refresh_token_user_id ON refresh_token(user_id); +CREATE INDEX IF NOT EXISTS idx_refresh_token_expires_at ON refresh_token(expires_at); +CREATE INDEX IF NOT EXISTS idx_auth_challenge_expires_at ON auth_challenge(expires_at); +CREATE INDEX IF NOT EXISTS idx_webauthn_challenge_expires_at ON webauthn_challenge(expires_at); +CREATE UNIQUE INDEX IF NOT EXISTS idx_app_user_email_lower ON app_user (LOWER(email)); diff --git a/backend/src/db/migrations/007_auth_functions.sql b/backend/src/db/migrations/007_auth_functions.sql new file mode 100644 index 0000000..f1cd410 --- /dev/null +++ b/backend/src/db/migrations/007_auth_functions.sql @@ -0,0 +1,32 @@ +-- === LOGIN FUNCTION === + +CREATE OR REPLACE FUNCTION auth_get_user_for_login(p_email TEXT) +RETURNS TABLE ( + id BIGINT, + email VARCHAR, + password_hash TEXT, + is_active BOOLEAN, + role role_type, + committee_id BIGINT, + two_factor_enabled BOOLEAN, + locked_until TIMESTAMPTZ +) +LANGUAGE sql +SECURITY DEFINER +AS $$ + SELECT + u.id, + u.email, + u.password_hash, + u.is_active, + u.role, + u.committee_id, + u.two_factor_enabled, + u.locked_until + FROM app_user u + WHERE LOWER(u.email) = LOWER(p_email) + LIMIT 1; +$$; + +REVOKE ALL ON FUNCTION auth_get_user_for_login(TEXT) FROM PUBLIC; +GRANT EXECUTE ON FUNCTION auth_get_user_for_login(TEXT) TO br_app; diff --git a/backend/src/db/migrations/008_case_numbers_calendar_and_committee_defaults.sql b/backend/src/db/migrations/008_case_numbers_calendar_and_committee_defaults.sql new file mode 100644 index 0000000..c701650 --- /dev/null +++ b/backend/src/db/migrations/008_case_numbers_calendar_and_committee_defaults.sql @@ -0,0 +1,47 @@ +CREATE TABLE IF NOT EXISTS case_number_counter ( + period_key VARCHAR(7) PRIMARY KEY, + last_value INTEGER NOT NULL DEFAULT 0, + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE OR REPLACE FUNCTION next_case_number(p_now TIMESTAMPTZ DEFAULT NOW()) +RETURNS VARCHAR(50) +LANGUAGE plpgsql +AS $$ +DECLARE + period_key VARCHAR(7); + next_value INTEGER; +BEGIN + period_key := TO_CHAR(p_now, 'YYYY_MM'); + + INSERT INTO case_number_counter (period_key, last_value, updated_at) + VALUES (period_key, 1, NOW()) + ON CONFLICT (period_key) + DO UPDATE SET + last_value = case_number_counter.last_value + 1, + updated_at = NOW() + RETURNING last_value INTO next_value; + + RETURN period_key || '_' || LPAD(next_value::TEXT, 4, '0'); +END; +$$; + +ALTER TABLE br_case + ALTER COLUMN case_number SET DEFAULT next_case_number(); + +UPDATE br_case +SET case_number = next_case_number(created_at) +WHERE case_number IS NULL OR BTRIM(case_number) = ''; + +ALTER TABLE committee + ADD COLUMN IF NOT EXISTS chair_user_id BIGINT REFERENCES app_user(id), + ADD COLUMN IF NOT EXISTS secretary_user_id BIGINT REFERENCES app_user(id), + ADD COLUMN IF NOT EXISTS default_user_id BIGINT REFERENCES app_user(id); + +CREATE INDEX IF NOT EXISTS idx_committee_chair_user_id ON committee(chair_user_id); +CREATE INDEX IF NOT EXISTS idx_committee_secretary_user_id ON committee(secretary_user_id); +CREATE INDEX IF NOT EXISTS idx_committee_default_user_id ON committee(default_user_id); +CREATE INDEX IF NOT EXISTS idx_br_case_committee_id ON br_case(committee_id); +CREATE INDEX IF NOT EXISTS idx_task_assigned_user_id ON task(assigned_user_id); +CREATE INDEX IF NOT EXISTS idx_meeting_committee_id ON meeting(committee_id); +CREATE INDEX IF NOT EXISTS idx_deadline_case_id ON deadline(case_id); diff --git a/backend/src/db/migrations/008_case_type_catalog_and_case_workflow.sql b/backend/src/db/migrations/008_case_type_catalog_and_case_workflow.sql new file mode 100644 index 0000000..fc2d15d --- /dev/null +++ b/backend/src/db/migrations/008_case_type_catalog_and_case_workflow.sql @@ -0,0 +1,52 @@ +CREATE TABLE IF NOT EXISTS case_type_catalog ( + id BIGSERIAL PRIMARY KEY, + code VARCHAR(50) UNIQUE NOT NULL, + label VARCHAR(120) NOT NULL, + sort_order INTEGER NOT NULL DEFAULT 100, + is_active BOOLEAN NOT NULL DEFAULT TRUE, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +INSERT INTO case_type_catalog (code, label, sort_order) +VALUES + ('anhoerung', 'Anhörung', 10), + ('beschwerde', 'Beschwerde', 20), + ('einstellung', 'Einstellung', 30), + ('kuendigung', 'Kündigung', 40), + ('personalmassnahme', 'Personalmaßnahme', 50), + ('versetzung', 'Versetzung', 60), + ('sonstiges', 'Sonstiges', 999) +ON CONFLICT (code) DO NOTHING; + +INSERT INTO case_type_catalog (code, label, sort_order) +SELECT DISTINCT + LOWER(REGEXP_REPLACE(TRIM(case_type), '[^a-zA-Z0-9]+', '_', 'g')) AS code, + TRIM(case_type) AS label, + 500 +FROM br_case +WHERE case_type IS NOT NULL + AND TRIM(case_type) <> '' +ON CONFLICT (code) DO NOTHING; + +ALTER TABLE br_case + ADD COLUMN IF NOT EXISTS case_type_id BIGINT REFERENCES case_type_catalog(id); + +UPDATE br_case c +SET case_type_id = ct.id +FROM case_type_catalog ct +WHERE c.case_type_id IS NULL + AND c.case_type IS NOT NULL + AND TRIM(c.case_type) <> '' + AND LOWER(REGEXP_REPLACE(TRIM(c.case_type), '[^a-zA-Z0-9]+', '_', 'g')) = ct.code; + +UPDATE br_case +SET case_type_id = ( + SELECT id FROM case_type_catalog WHERE code = 'sonstiges' +) +WHERE case_type_id IS NULL; + +ALTER TABLE br_case + ALTER COLUMN case_type_id SET NOT NULL; + +ALTER TABLE br_case + ALTER COLUMN priority SET DEFAULT 'mittel'; diff --git a/backend/src/db/migrations/009_calendar_personal_events_and_sync.sql b/backend/src/db/migrations/009_calendar_personal_events_and_sync.sql new file mode 100644 index 0000000..c1ff740 --- /dev/null +++ b/backend/src/db/migrations/009_calendar_personal_events_and_sync.sql @@ -0,0 +1,28 @@ +CREATE TABLE IF NOT EXISTS calendar_event ( + id BIGSERIAL PRIMARY KEY, + title VARCHAR(255) NOT NULL, + description TEXT, + event_kind VARCHAR(30) NOT NULL DEFAULT 'personal', + source_type VARCHAR(30) NOT NULL DEFAULT 'manual', + source_uid VARCHAR(255), + source_name VARCHAR(255), + starts_at TIMESTAMPTZ NOT NULL, + ends_at TIMESTAMPTZ, + all_day BOOLEAN NOT NULL DEFAULT FALSE, + location VARCHAR(255), + status VARCHAR(30) NOT NULL DEFAULT 'geplant', + priority VARCHAR(20) NOT NULL DEFAULT 'mittel', + visibility conf_level NOT NULL DEFAULT 'intern', + owner_user_id BIGINT REFERENCES app_user(id), + committee_id BIGINT REFERENCES committee(id), + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + deleted_at TIMESTAMPTZ +); + +CREATE INDEX IF NOT EXISTS idx_calendar_event_starts_at ON calendar_event(starts_at); +CREATE INDEX IF NOT EXISTS idx_calendar_event_owner_user_id ON calendar_event(owner_user_id); +CREATE INDEX IF NOT EXISTS idx_calendar_event_committee_id ON calendar_event(committee_id); +CREATE INDEX IF NOT EXISTS idx_calendar_event_source_type_uid ON calendar_event(source_type, source_uid); diff --git a/backend/src/db/migrations/010_case_type_catalog_and_dropdowns.sql b/backend/src/db/migrations/010_case_type_catalog_and_dropdowns.sql new file mode 100644 index 0000000..72f1a0a --- /dev/null +++ b/backend/src/db/migrations/010_case_type_catalog_and_dropdowns.sql @@ -0,0 +1,54 @@ +CREATE TABLE IF NOT EXISTS case_type_catalog ( + id BIGSERIAL PRIMARY KEY, + code VARCHAR(50) UNIQUE NOT NULL, + label VARCHAR(120) NOT NULL, + sort_order INTEGER NOT NULL DEFAULT 100, + is_active BOOLEAN NOT NULL DEFAULT TRUE, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +INSERT INTO case_type_catalog (code, label, sort_order) +VALUES + ('anhoerung', 'Anhörung', 10), + ('beschwerde', 'Beschwerde', 20), + ('einstellung', 'Einstellung', 30), + ('kuendigung', 'Kündigung', 40), + ('personalmassnahme', 'Personalmaßnahme', 50), + ('versetzung', 'Versetzung', 60), + ('sonstiges', 'Sonstiges', 999) +ON CONFLICT (code) DO NOTHING; + +INSERT INTO case_type_catalog (code, label, sort_order) +SELECT DISTINCT + LOWER(REGEXP_REPLACE(TRIM(case_type), '[^a-zA-Z0-9]+', '_', 'g')) AS code, + TRIM(case_type) AS label, + 500 +FROM br_case +WHERE case_type IS NOT NULL + AND TRIM(case_type) <> '' +ON CONFLICT (code) DO NOTHING; + +ALTER TABLE br_case + ADD COLUMN IF NOT EXISTS case_type_id BIGINT REFERENCES case_type_catalog(id); + +UPDATE br_case c +SET case_type_id = ct.id +FROM case_type_catalog ct +WHERE c.case_type_id IS NULL + AND c.case_type IS NOT NULL + AND TRIM(c.case_type) <> '' + AND LOWER(REGEXP_REPLACE(TRIM(c.case_type), '[^a-zA-Z0-9]+', '_', 'g')) = ct.code; + +UPDATE br_case +SET case_type_id = ( + SELECT id FROM case_type_catalog WHERE code = 'sonstiges' +) +WHERE case_type_id IS NULL; + +ALTER TABLE br_case + ALTER COLUMN case_type_id SET NOT NULL; + +ALTER TABLE br_case + ALTER COLUMN priority SET DEFAULT 'mittel'; + +CREATE INDEX IF NOT EXISTS idx_br_case_case_type_id ON br_case(case_type_id); diff --git a/backend/src/db/migrations/011_meeting_number_generator.sql b/backend/src/db/migrations/011_meeting_number_generator.sql new file mode 100644 index 0000000..8a1d27a --- /dev/null +++ b/backend/src/db/migrations/011_meeting_number_generator.sql @@ -0,0 +1,52 @@ +CREATE TABLE IF NOT EXISTS meeting_number_counter ( + period_ym CHAR(7) PRIMARY KEY, + last_value INTEGER NOT NULL DEFAULT 0, + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE OR REPLACE FUNCTION next_meeting_number(p_date DATE DEFAULT CURRENT_DATE) +RETURNS TEXT +LANGUAGE plpgsql +AS $$ +DECLARE + v_period TEXT; + v_seq INTEGER; +BEGIN + v_period := TO_CHAR(p_date, 'YYYY_MM'); + + LOOP + UPDATE meeting_number_counter + SET last_value = last_value + 1, + updated_at = NOW() + WHERE period_ym = v_period + RETURNING last_value INTO v_seq; + + IF FOUND THEN + EXIT; + END IF; + + BEGIN + INSERT INTO meeting_number_counter(period_ym, last_value) + VALUES (v_period, 1); + v_seq := 1; + EXIT; + EXCEPTION + WHEN unique_violation THEN + -- paralleler Insert, erneut versuchen + END; + END LOOP; + + RETURN 'SITZ-' || v_period || '_' || LPAD(v_seq::TEXT, 4, '0'); +END; +$$; + +UPDATE meeting +SET meeting_number = next_meeting_number(COALESCE(meeting_date, CURRENT_DATE)) +WHERE meeting_number IS NULL + OR TRIM(meeting_number) = ''; + +ALTER TABLE meeting + ALTER COLUMN meeting_number SET DEFAULT next_meeting_number(); + +ALTER TABLE meeting + ALTER COLUMN meeting_number SET NOT NULL; diff --git a/backend/src/db/migrations/012_agenda_item_pool_and_case_number_fix.sql b/backend/src/db/migrations/012_agenda_item_pool_and_case_number_fix.sql new file mode 100644 index 0000000..b1a24b7 --- /dev/null +++ b/backend/src/db/migrations/012_agenda_item_pool_and_case_number_fix.sql @@ -0,0 +1,30 @@ +CREATE OR REPLACE FUNCTION next_case_number(p_now TIMESTAMPTZ DEFAULT NOW()) +RETURNS VARCHAR(50) +LANGUAGE plpgsql +AS $$ +DECLARE + v_period_key VARCHAR(7); + v_next_value INTEGER; +BEGIN + v_period_key := TO_CHAR(p_now, 'YYYY_MM'); + + INSERT INTO case_number_counter (period_key, last_value, updated_at) + VALUES (v_period_key, 1, NOW()) + ON CONFLICT (period_key) + DO UPDATE SET + last_value = case_number_counter.last_value + 1, + updated_at = NOW() + RETURNING case_number_counter.last_value INTO v_next_value; + + RETURN v_period_key || '_' || LPAD(v_next_value::TEXT, 4, '0'); +END; +$$; + +ALTER TABLE meeting_agenda_item + ALTER COLUMN meeting_id DROP NOT NULL; + +ALTER TABLE meeting_agenda_item + ALTER COLUMN agenda_number DROP NOT NULL; + +CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_meeting_id ON meeting_agenda_item(meeting_id); +CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_unassigned ON meeting_agenda_item(id) WHERE meeting_id IS NULL; diff --git a/backend/src/db/migrations/013_agenda_numbers_case_links_and_decisions.sql b/backend/src/db/migrations/013_agenda_numbers_case_links_and_decisions.sql new file mode 100644 index 0000000..ca23e00 --- /dev/null +++ b/backend/src/db/migrations/013_agenda_numbers_case_links_and_decisions.sql @@ -0,0 +1,62 @@ +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS case_id BIGINT REFERENCES br_case(id) ON DELETE SET NULL; + +CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_case_id ON meeting_agenda_item(case_id); + +CREATE TABLE IF NOT EXISTS meeting_agenda_counter ( + meeting_id BIGINT PRIMARY KEY REFERENCES meeting(id) ON DELETE CASCADE, + last_value INTEGER NOT NULL DEFAULT 0, + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE OR REPLACE FUNCTION next_agenda_number(p_meeting_id BIGINT) +RETURNS TEXT +LANGUAGE plpgsql +AS $$ +DECLARE + v_seq INTEGER; +BEGIN + IF p_meeting_id IS NULL THEN + RAISE EXCEPTION 'meeting_id is required for next_agenda_number'; + END IF; + + LOOP + UPDATE meeting_agenda_counter + SET last_value = last_value + 1, + updated_at = NOW() + WHERE meeting_id = p_meeting_id + RETURNING last_value INTO v_seq; + + IF FOUND THEN + EXIT; + END IF; + + BEGIN + INSERT INTO meeting_agenda_counter(meeting_id, last_value) + VALUES (p_meeting_id, 1); + v_seq := 1; + EXIT; + EXCEPTION + WHEN unique_violation THEN + NULL; + END; + END LOOP; + + RETURN v_seq::TEXT; +END; +$$; + +INSERT INTO meeting_agenda_item(meeting_id, agenda_number, title, description, duration_minutes, case_id) +SELECT NULL, + NULL, + c.case_number || ' – ' || c.title, + COALESCE(c.summary, 'Automatisch aus Vorgang ' || c.case_number || ' erzeugt'), + NULL, + c.id + FROM br_case c + WHERE c.deleted_at IS NULL + AND NOT EXISTS ( + SELECT 1 + FROM meeting_agenda_item ai + WHERE ai.case_id = c.id + ); diff --git a/backend/src/db/migrations/014_decision_number_generator.sql b/backend/src/db/migrations/014_decision_number_generator.sql new file mode 100644 index 0000000..2ea34b7 --- /dev/null +++ b/backend/src/db/migrations/014_decision_number_generator.sql @@ -0,0 +1,38 @@ +CREATE TABLE IF NOT EXISTS decision_number_counter ( + period_key VARCHAR(7) PRIMARY KEY, + last_value INTEGER NOT NULL DEFAULT 0, + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE OR REPLACE FUNCTION next_decision_number(p_now TIMESTAMPTZ DEFAULT NOW()) +RETURNS VARCHAR(50) +LANGUAGE plpgsql +AS $$ +DECLARE + v_period_key VARCHAR(7); + v_next_value INTEGER; +BEGIN + v_period_key := TO_CHAR(p_now, 'YYYY_MM'); + + INSERT INTO decision_number_counter (period_key, last_value, updated_at) + VALUES (v_period_key, 1, NOW()) + ON CONFLICT (period_key) + DO UPDATE SET + last_value = decision_number_counter.last_value + 1, + updated_at = NOW() + RETURNING decision_number_counter.last_value INTO v_next_value; + + RETURN 'BES-' || v_period_key || '_' || LPAD(v_next_value::TEXT, 4, '0'); +END; +$$; + +UPDATE decision +SET decision_number = next_decision_number(created_at) +WHERE decision_number IS NULL + OR TRIM(decision_number) = ''; + +ALTER TABLE decision + ALTER COLUMN decision_number SET DEFAULT next_decision_number(); + +ALTER TABLE decision + ALTER COLUMN decision_number SET NOT NULL; diff --git a/backend/src/db/migrations/015_document_item_deleted_at_backfill.sql b/backend/src/db/migrations/015_document_item_deleted_at_backfill.sql new file mode 100644 index 0000000..3f9e5fa --- /dev/null +++ b/backend/src/db/migrations/015_document_item_deleted_at_backfill.sql @@ -0,0 +1,5 @@ +ALTER TABLE IF EXISTS document_item + ADD COLUMN IF NOT EXISTS deleted_at TIMESTAMPTZ; + +CREATE INDEX IF NOT EXISTS idx_document_item_deleted_at + ON document_item (deleted_at); diff --git a/backend/src/db/migrations/016_meeting_protocol_template.sql b/backend/src/db/migrations/016_meeting_protocol_template.sql new file mode 100644 index 0000000..fc3ba18 --- /dev/null +++ b/backend/src/db/migrations/016_meeting_protocol_template.sql @@ -0,0 +1,56 @@ +DO $body$ +BEGIN + IF NOT EXISTS ( + SELECT 1 + FROM template_item + WHERE category = 'meeting_protocol' + ) THEN + INSERT INTO template_item( + title, + category, + description, + content, + version_label, + is_active + ) VALUES ( + 'Sitzungsprotokoll Standard', + 'meeting_protocol', + 'Wird beim Beenden einer Sitzung zur automatischen Protokollerzeugung verwendet. Platzhalter wie {{meeting_number}} oder {{agenda_sections}} können frei umgestellt werden.', + $template$# Betriebsrat {{committee_name}} +# Protokoll der BR-Sitzung am {{meeting_date}} +VERTRAULICH + +{{meeting_title_block}} + +## Organisatorisches und Feststellungen + +Sitzungsnummer: {{meeting_number}} +Sitzungsart: {{meeting_type}} +Sitzungsbeginn: {{start_time}} +Sitzungsort: {{location}} +Sitzungsleitung: {{chair_name}} +Schriftführung: {{secretary_name}} +{{quorum_statement}} +{{attendees_block}} + +## Protokollnotizen +{{protocol_notes}} + +## Tagesordnung und Beratung +{{agenda_sections}} + +## Sitzungsende +Schließung der Sitzung um {{end_time}} Uhr. + +{{signature_place}} +______________________________ +{{chair_name}} + +______________________________ +{{secretary_name}}$template$, + 'v1', + TRUE + ); + END IF; +END +$body$; diff --git a/backend/src/db/migrations/017_document_versioning.sql b/backend/src/db/migrations/017_document_versioning.sql new file mode 100644 index 0000000..23ec318 --- /dev/null +++ b/backend/src/db/migrations/017_document_versioning.sql @@ -0,0 +1,55 @@ +ALTER TABLE IF EXISTS document_item + ADD COLUMN IF NOT EXISTS version_number INTEGER; + +UPDATE document_item + SET version_number = 1 + WHERE version_number IS NULL; + +ALTER TABLE IF EXISTS document_item + ALTER COLUMN version_number SET DEFAULT 1; + +ALTER TABLE IF EXISTS document_item + ALTER COLUMN version_number SET NOT NULL; + +ALTER TABLE IF EXISTS document_item + ADD COLUMN IF NOT EXISTS version_group_id BIGINT; + +UPDATE document_item + SET version_group_id = id + WHERE version_group_id IS NULL; + +DO $$ +BEGIN + IF NOT EXISTS ( + SELECT 1 + FROM pg_constraint + WHERE conname = 'fk_document_item_version_group' + ) THEN + ALTER TABLE document_item + ADD CONSTRAINT fk_document_item_version_group + FOREIGN KEY (version_group_id) + REFERENCES document_item(id) + ON DELETE SET NULL; + END IF; +END +$$; + +DO $$ +BEGIN + IF EXISTS ( + SELECT 1 + FROM pg_constraint + WHERE conname = 'document_item_document_number_key' + AND conrelid = 'document_item'::regclass + ) THEN + ALTER TABLE document_item + DROP CONSTRAINT document_item_document_number_key; + END IF; +END +$$; + +CREATE UNIQUE INDEX IF NOT EXISTS idx_document_item_document_number_version_unique + ON document_item (document_number, version_number); + +CREATE INDEX IF NOT EXISTS idx_document_item_version_group_id + ON document_item (version_group_id); diff --git a/backend/src/db/migrations/018_meeting_decision_report_template.sql b/backend/src/db/migrations/018_meeting_decision_report_template.sql new file mode 100644 index 0000000..5c5e51a --- /dev/null +++ b/backend/src/db/migrations/018_meeting_decision_report_template.sql @@ -0,0 +1,46 @@ +DO $body$ +BEGIN + IF NOT EXISTS ( + SELECT 1 + FROM template_item + WHERE category = 'meeting_decision_report' + ) THEN + INSERT INTO template_item( + title, + category, + description, + content, + version_label, + is_active + ) VALUES ( + 'Beschlussbericht Standard', + 'meeting_decision_report', + 'Wird beim Beenden einer Sitzung zur automatischen Berichtserzeugung für alle behandelten Beschlüsse verwendet. Platzhalter wie {{meeting_number}} oder {{decision_sections}} können frei angepasst werden.', + $template$# Beschlussbericht zur BR-Sitzung am {{meeting_date}} +VERTRAULICH + +{{meeting_title_block}} + +## Sitzungsdaten +Sitzungsnummer: {{meeting_number}} +Sitzungsart: {{meeting_type}} +Sitzungsdatum: {{meeting_date}} +Sitzungsort: {{location}} +Sitzungsleitung: {{chair_name}} +Schriftführung: {{secretary_name}} + +## Behandelte Beschlüsse ab TOP 1 +{{decision_sections}} + +{{signature_place}} +______________________________ +{{chair_name}} + +______________________________ +{{secretary_name}}$template$, + 'v1', + TRUE + ); + END IF; +END +$body$; diff --git a/backend/src/db/migrations/019_committee_member.sql b/backend/src/db/migrations/019_committee_member.sql new file mode 100644 index 0000000..3a3f5ea --- /dev/null +++ b/backend/src/db/migrations/019_committee_member.sql @@ -0,0 +1,24 @@ +BEGIN; + +CREATE TABLE IF NOT EXISTS committee_member ( + committee_id BIGINT NOT NULL REFERENCES committee(id) ON DELETE CASCADE, + user_id BIGINT NOT NULL REFERENCES app_user(id) ON DELETE CASCADE, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + created_by BIGINT NULL REFERENCES app_user(id) ON DELETE SET NULL, + PRIMARY KEY (committee_id, user_id) +); + +CREATE INDEX IF NOT EXISTS idx_committee_member_user_id + ON committee_member (user_id); + +CREATE INDEX IF NOT EXISTS idx_committee_member_committee_id + ON committee_member (committee_id); + +-- Bestehende 1:1-Zuordnungen aus app_user.committee_id in die neue M:N-Tabelle übernehmen +INSERT INTO committee_member (committee_id, user_id, created_at, created_by) +SELECT u.committee_id, u.id, NOW(), NULL + FROM app_user u + WHERE u.committee_id IS NOT NULL +ON CONFLICT (committee_id, user_id) DO NOTHING; + +COMMIT; diff --git a/backend/src/db/migrations/020_task_id.sql b/backend/src/db/migrations/020_task_id.sql new file mode 100644 index 0000000..d3c9984 --- /dev/null +++ b/backend/src/db/migrations/020_task_id.sql @@ -0,0 +1,6 @@ +ALTER TABLE task + ADD COLUMN IF NOT EXISTS committee_id BIGINT REFERENCES committee(id) ON DELETE SET NULL, + ADD COLUMN IF NOT EXISTS agenda_item_id BIGINT REFERENCES meeting_agenda_item(id) ON DELETE SET NULL; + +CREATE INDEX IF NOT EXISTS idx_task_committee_id ON task(committee_id); +CREATE INDEX IF NOT EXISTS idx_task_agenda_item_id ON task(agenda_item_id); diff --git a/backend/src/db/migrations/021_meeting_quorum.sql b/backend/src/db/migrations/021_meeting_quorum.sql new file mode 100644 index 0000000..4f45344 --- /dev/null +++ b/backend/src/db/migrations/021_meeting_quorum.sql @@ -0,0 +1,16 @@ +ALTER TABLE meeting + ADD COLUMN IF NOT EXISTS is_quorate BOOLEAN, + ADD COLUMN IF NOT EXISTS quorum_recorded_at TIMESTAMPTZ, + ADD COLUMN IF NOT EXISTS quorum_recorded_by BIGINT REFERENCES app_user(id); + +UPDATE template_item + SET content = REPLACE( + content, + 'Schriftführung: {{secretary_name}}', + 'Schriftführung: {{secretary_name}} +{{quorum_statement}}' + ), + version_label = CASE WHEN version_label = 'v1' THEN 'v2' ELSE version_label END, + updated_at = NOW() + WHERE category = 'meeting_protocol' + AND content NOT LIKE '%{{quorum_statement}}%'; diff --git a/backend/src/db/migrations/022_permissions_matrix.sql b/backend/src/db/migrations/022_permissions_matrix.sql new file mode 100644 index 0000000..68eac7f --- /dev/null +++ b/backend/src/db/migrations/022_permissions_matrix.sql @@ -0,0 +1,586 @@ +CREATE TABLE IF NOT EXISTS app_role_profile ( + id BIGSERIAL PRIMARY KEY, + code VARCHAR(80) NOT NULL UNIQUE, + name VARCHAR(120) NOT NULL, + description TEXT, + system_role role_type UNIQUE, + is_system BOOLEAN NOT NULL DEFAULT FALSE, + is_active BOOLEAN NOT NULL DEFAULT TRUE, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS app_permission ( + permission_key VARCHAR(120) PRIMARY KEY, + label VARCHAR(160) NOT NULL, + category VARCHAR(80) NOT NULL, + description TEXT, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS app_page ( + page_key VARCHAR(80) PRIMARY KEY, + path VARCHAR(120) NOT NULL UNIQUE, + label VARCHAR(120) NOT NULL, + nav_group VARCHAR(80) NOT NULL DEFAULT 'work', + sort_order INTEGER NOT NULL DEFAULT 100, + description TEXT, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS app_role_permission ( + role_profile_id BIGINT NOT NULL REFERENCES app_role_profile(id) ON DELETE CASCADE, + permission_key VARCHAR(120) NOT NULL REFERENCES app_permission(permission_key) ON DELETE CASCADE, + granted BOOLEAN NOT NULL DEFAULT TRUE, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + PRIMARY KEY (role_profile_id, permission_key) +); + +CREATE TABLE IF NOT EXISTS app_role_page ( + role_profile_id BIGINT NOT NULL REFERENCES app_role_profile(id) ON DELETE CASCADE, + page_key VARCHAR(80) NOT NULL REFERENCES app_page(page_key) ON DELETE CASCADE, + can_view BOOLEAN NOT NULL DEFAULT TRUE, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + PRIMARY KEY (role_profile_id, page_key) +); + +CREATE TABLE IF NOT EXISTS app_user_role_profile ( + user_id BIGINT NOT NULL REFERENCES app_user(id) ON DELETE CASCADE, + role_profile_id BIGINT NOT NULL REFERENCES app_role_profile(id) ON DELETE CASCADE, + assigned_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + PRIMARY KEY (user_id, role_profile_id) +); + +CREATE TABLE IF NOT EXISTS app_team_role ( + id BIGSERIAL PRIMARY KEY, + code VARCHAR(80) NOT NULL UNIQUE, + name VARCHAR(120) NOT NULL, + description TEXT, + can_view_cases BOOLEAN NOT NULL DEFAULT FALSE, + can_write_cases BOOLEAN NOT NULL DEFAULT FALSE, + can_view_documents BOOLEAN NOT NULL DEFAULT FALSE, + can_write_documents BOOLEAN NOT NULL DEFAULT FALSE, + is_active BOOLEAN NOT NULL DEFAULT TRUE, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS app_user_team_role ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL REFERENCES app_user(id) ON DELETE CASCADE, + team_role_id BIGINT NOT NULL REFERENCES app_team_role(id) ON DELETE CASCADE, + committee_id BIGINT REFERENCES committee(id) ON DELETE CASCADE, + assigned_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE UNIQUE INDEX IF NOT EXISTS ux_app_user_team_role_global + ON app_user_team_role(user_id, team_role_id) + WHERE committee_id IS NULL; + +CREATE UNIQUE INDEX IF NOT EXISTS ux_app_user_team_role_committee + ON app_user_team_role(user_id, team_role_id, committee_id) + WHERE committee_id IS NOT NULL; + +CREATE TABLE IF NOT EXISTS br_case_team_access ( + case_id BIGINT NOT NULL REFERENCES br_case(id) ON DELETE CASCADE, + team_role_id BIGINT NOT NULL REFERENCES app_team_role(id) ON DELETE CASCADE, + can_read BOOLEAN NOT NULL DEFAULT TRUE, + can_write BOOLEAN NOT NULL DEFAULT FALSE, + created_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + PRIMARY KEY (case_id, team_role_id) +); + +CREATE TABLE IF NOT EXISTS document_team_access ( + document_id BIGINT NOT NULL REFERENCES document_item(id) ON DELETE CASCADE, + team_role_id BIGINT NOT NULL REFERENCES app_team_role(id) ON DELETE CASCADE, + can_read BOOLEAN NOT NULL DEFAULT TRUE, + can_write BOOLEAN NOT NULL DEFAULT FALSE, + created_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + PRIMARY KEY (document_id, team_role_id) +); + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_app_role_profile_updated_at') THEN + CREATE TRIGGER trg_app_role_profile_updated_at BEFORE UPDATE ON app_role_profile FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_app_team_role_updated_at') THEN + CREATE TRIGGER trg_app_team_role_updated_at BEFORE UPDATE ON app_team_role FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; +END $$; + +INSERT INTO app_role_profile(code, name, description, system_role, is_system) +VALUES + ('admin', 'admin', 'Systemverwaltung', 'admin', TRUE), + ('chair', 'chair', 'Sitzungen, TOPs, Beschlüsse, Vorlagen, Ausschussverwaltung', 'chair', TRUE), + ('secretary', 'secretary', 'Protokolle, Sitzungen, TOPs, Dokumente', 'secretary', TRUE), + ('member', 'member', 'Eigene Vorgänge, Aufgaben, Kommentare, Kalender', 'member', TRUE), + ('advisor', 'advisor', 'Lesender/beratender Zugriff auf freigegebene Inhalte', 'advisor', TRUE) +ON CONFLICT (code) DO UPDATE + SET name = EXCLUDED.name, + description = EXCLUDED.description, + system_role = EXCLUDED.system_role, + is_system = TRUE, + is_active = TRUE, + updated_at = NOW(); + +INSERT INTO app_page(page_key, path, label, nav_group, sort_order, description) +VALUES + ('dashboard', '/', 'Dashboard', 'dashboard', 0, 'Startseite und Überblick'), + ('cases', '/cases', 'Vorgänge', 'work', 10, 'Vorgangsverwaltung'), + ('deadlines', '/deadlines', 'Fristen', 'work', 20, 'Fristenverwaltung'), + ('meetings', '/meetings', 'Sitzungen', 'work', 30, 'Sitzungen planen, starten und protokollieren'), + ('agenda-items', '/agenda-items', 'TOP-Bestand', 'work', 40, 'Tagesordnungspunkte'), + ('decisions', '/decisions', 'Beschlüsse', 'work', 50, 'Beschlussverwaltung'), + ('reports', '/reports', 'Reports', 'work', 60, 'Berichte und Auswertungen'), + ('tasks', '/tasks', 'Aufgaben', 'work', 70, 'Aufgabenverwaltung'), + ('calendar', '/calendar', 'Kalender', 'work', 80, 'Kalender'), + ('documents', '/documents', 'Dokumente', 'work', 90, 'Dokumentenverwaltung'), + ('comments', '/comments', 'Kommentare', 'work', 100, 'Kommentare'), + ('notifications', '/notifications', 'Benachrichtigungen', 'work', 110, 'Hinweise'), + ('users', '/users', 'Benutzer', 'admin', 200, 'Benutzerverwaltung'), + ('committees', '/committees', 'Ausschüsse', 'admin', 210, 'Ausschussverwaltung'), + ('templates', '/templates', 'Vorlagen / Formular-Editor', 'admin', 220, 'Vorlagenverwaltung und HTML-/Formular-Editor'), + ('permissions', '/permissions', 'Rollen & Rechte', 'admin', 230, 'Rechtematrix und Teamrollen'), + ('security', '/security', 'Sicherheit', 'admin', 240, 'MFA und Sicherheit'), + ('audit', '/audit', 'Audit', 'admin', 250, 'Audit-Log') +ON CONFLICT (page_key) DO UPDATE + SET path = EXCLUDED.path, + label = EXCLUDED.label, + nav_group = EXCLUDED.nav_group, + sort_order = EXCLUDED.sort_order, + description = EXCLUDED.description; + +INSERT INTO app_permission(permission_key, label, category, description) +VALUES + ('system.admin', 'Systemverwaltung', 'System', 'Voller Systemzugriff'), + ('system.users', 'Benutzer verwalten', 'System', 'Benutzer anlegen, ändern und deaktivieren'), + ('system.permissions', 'Rollen und Rechte verwalten', 'System', 'Rechtematrix, Custom-Rollen und Teamrollen verwalten'), + ('system.security', 'Sicherheit verwalten', 'System', 'Sicherheits- und MFA-Funktionen verwalten'), + ('system.audit', 'Audit lesen', 'System', 'Audit-Log anzeigen'), + ('cases.read.own', 'Eigene Vorgänge lesen', 'Vorgänge', 'Eigene/erstellte Vorgänge lesen'), + ('cases.read.all', 'Alle Vorgänge lesen', 'Vorgänge', 'Alle Vorgänge rollenbasiert lesen'), + ('cases.write', 'Vorgänge bearbeiten', 'Vorgänge', 'Vorgänge anlegen und bearbeiten'), + ('cases.write.all', 'Alle Vorgänge bearbeiten', 'Vorgänge', 'Nicht nur eigene Vorgänge bearbeiten'), + ('cases.delete', 'Vorgänge löschen', 'Vorgänge', 'Vorgänge löschen/archivieren'), + ('deadlines.write', 'Fristen bearbeiten', 'Fristen', 'Fristen anlegen und bearbeiten'), + ('meetings.write', 'Sitzungen bearbeiten', 'Sitzungen', 'Sitzungen planen, starten, stoppen und löschen'), + ('agenda.write', 'TOPs bearbeiten', 'Sitzungen', 'Tagesordnungspunkte bearbeiten'), + ('decisions.write', 'Beschlüsse bearbeiten', 'Beschlüsse', 'Beschlüsse anlegen und ändern'), + ('reports.read', 'Reports lesen', 'Reports', 'Berichte anzeigen'), + ('tasks.write', 'Aufgaben bearbeiten', 'Aufgaben', 'Aufgaben anlegen und ändern'), + ('calendar.write', 'Kalender bearbeiten', 'Kalender', 'Kalendereinträge anlegen und ändern'), + ('documents.read.released', 'Freigegebene Dokumente lesen', 'Dokumente', 'Freigegebene/saubere interne Dokumente lesen'), + ('documents.read.all', 'Alle Dokumente lesen', 'Dokumente', 'Alle Dokumente rollenbasiert lesen'), + ('documents.write', 'Dokumente bearbeiten', 'Dokumente', 'Dokumente hochladen, versionieren und ändern'), + ('documents.write.all', 'Alle Dokumente bearbeiten', 'Dokumente', 'Nicht nur eigene Dokumente bearbeiten'), + ('comments.write', 'Kommentare schreiben', 'Kommentare', 'Kommentare anlegen und bearbeiten'), + ('notifications.write', 'Benachrichtigungen bearbeiten', 'Benachrichtigungen', 'Benachrichtigungen anlegen/ändern'), + ('templates.write', 'Vorlagen bearbeiten', 'Vorlagen', 'Vorlagen anlegen und ändern'), + ('committees.write', 'Ausschüsse bearbeiten', 'Administration', 'Ausschüsse und Mitgliedschaften verwalten') +ON CONFLICT (permission_key) DO UPDATE + SET label = EXCLUDED.label, + category = EXCLUDED.category, + description = EXCLUDED.description; + +CREATE OR REPLACE FUNCTION grant_role_pages(role_code TEXT, page_keys TEXT[]) RETURNS VOID AS $$ +DECLARE + role_id BIGINT; +BEGIN + SELECT id INTO role_id FROM app_role_profile WHERE code = role_code; + IF role_id IS NULL THEN RETURN; END IF; + + DELETE FROM app_role_page WHERE role_profile_id = role_id; + + INSERT INTO app_role_page(role_profile_id, page_key, can_view) + SELECT role_id, unnest(page_keys), TRUE + ON CONFLICT (role_profile_id, page_key) DO UPDATE SET can_view = TRUE; +END; +$$ LANGUAGE plpgsql; + +CREATE OR REPLACE FUNCTION grant_role_permissions(role_code TEXT, permission_keys TEXT[]) RETURNS VOID AS $$ +DECLARE + role_id BIGINT; +BEGIN + SELECT id INTO role_id FROM app_role_profile WHERE code = role_code; + IF role_id IS NULL THEN RETURN; END IF; + + DELETE FROM app_role_permission WHERE role_profile_id = role_id; + + INSERT INTO app_role_permission(role_profile_id, permission_key, granted) + SELECT role_id, unnest(permission_keys), TRUE + ON CONFLICT (role_profile_id, permission_key) DO UPDATE SET granted = TRUE; +END; +$$ LANGUAGE plpgsql; + +SELECT grant_role_pages('admin', ARRAY[ + 'dashboard','cases','deadlines','meetings','agenda-items','decisions','reports','tasks','calendar','documents','comments','notifications', + 'users','committees','templates','permissions','security','audit' +]); +SELECT grant_role_pages('chair', ARRAY[ + 'dashboard','cases','deadlines','meetings','agenda-items','decisions','reports','tasks','calendar','documents','comments','notifications','committees','templates' +]); +SELECT grant_role_pages('secretary', ARRAY[ + 'dashboard','meetings','agenda-items','decisions','reports','tasks','calendar','documents','comments','notifications' +]); +SELECT grant_role_pages('member', ARRAY[ + 'dashboard','cases','deadlines','tasks','calendar','documents','comments','notifications' +]); +SELECT grant_role_pages('advisor', ARRAY[ + 'dashboard','calendar','documents','comments','notifications' +]); + +SELECT grant_role_permissions('admin', ARRAY( + SELECT permission_key FROM app_permission +)); +SELECT grant_role_permissions('chair', ARRAY[ + 'cases.read.all','cases.write','cases.write.all','cases.delete','deadlines.write','meetings.write','agenda.write','decisions.write', + 'reports.read','tasks.write','calendar.write','documents.read.all','documents.write','documents.write.all','comments.write','notifications.write','templates.write','committees.write' +]); +SELECT grant_role_permissions('secretary', ARRAY[ + 'meetings.write','agenda.write','decisions.write','reports.read','tasks.write','calendar.write','documents.write','comments.write','notifications.write' +]); +SELECT grant_role_permissions('member', ARRAY[ + 'cases.read.own','cases.write','deadlines.write','tasks.write','calendar.write','documents.write','comments.write','notifications.write' +]); +SELECT grant_role_permissions('advisor', ARRAY[ + 'documents.read.released' +]); + +DROP FUNCTION IF EXISTS grant_role_pages(TEXT, TEXT[]); +DROP FUNCTION IF EXISTS grant_role_permissions(TEXT, TEXT[]); + +CREATE OR REPLACE FUNCTION app_has_permission(permission TEXT, target_user_id BIGINT DEFAULT app_user_id(), target_role TEXT DEFAULT app_role()) RETURNS BOOLEAN AS $$ +DECLARE + allowed BOOLEAN; +BEGIN + IF target_role = 'admin' THEN + RETURN TRUE; + END IF; + + SELECT EXISTS ( + SELECT 1 + FROM app_role_profile rp + JOIN app_role_permission rperm ON rperm.role_profile_id = rp.id AND rperm.granted = TRUE + WHERE rperm.permission_key = permission + AND rp.is_active = TRUE + AND ( + rp.system_role::TEXT = target_role + OR EXISTS ( + SELECT 1 + FROM app_user_role_profile urp + WHERE urp.role_profile_id = rp.id + AND urp.user_id = target_user_id + ) + ) + ) INTO allowed; + + RETURN COALESCE(allowed, FALSE); +END; +$$ LANGUAGE plpgsql STABLE SECURITY DEFINER SET search_path = public; + +CREATE OR REPLACE FUNCTION app_can_view_page(page_key TEXT, target_user_id BIGINT DEFAULT app_user_id(), target_role TEXT DEFAULT app_role()) RETURNS BOOLEAN AS $$ +DECLARE + allowed BOOLEAN; +BEGIN + IF target_role = 'admin' THEN + RETURN TRUE; + END IF; + + SELECT EXISTS ( + SELECT 1 + FROM app_role_profile rp + JOIN app_role_page rpage ON rpage.role_profile_id = rp.id AND rpage.can_view = TRUE + WHERE rpage.page_key = app_can_view_page.page_key + AND rp.is_active = TRUE + AND ( + rp.system_role::TEXT = target_role + OR EXISTS ( + SELECT 1 + FROM app_user_role_profile urp + WHERE urp.role_profile_id = rp.id + AND urp.user_id = target_user_id + ) + ) + ) INTO allowed; + + RETURN COALESCE(allowed, FALSE); +END; +$$ LANGUAGE plpgsql STABLE SECURITY DEFINER SET search_path = public; + +CREATE OR REPLACE FUNCTION app_user_has_case_team_access(target_case_id BIGINT, write_access BOOLEAN DEFAULT FALSE, target_user_id BIGINT DEFAULT app_user_id()) RETURNS BOOLEAN AS $$ +DECLARE + allowed BOOLEAN; +BEGIN + SELECT EXISTS ( + SELECT 1 + FROM br_case c + JOIN app_user_team_role utr ON utr.user_id = target_user_id AND (utr.committee_id IS NULL OR utr.committee_id = c.committee_id) + JOIN app_team_role tr ON tr.id = utr.team_role_id AND tr.is_active = TRUE + LEFT JOIN br_case_team_access cta ON cta.case_id = c.id AND cta.team_role_id = tr.id + WHERE c.id = target_case_id + AND ( + (write_access = FALSE AND (tr.can_view_cases = TRUE OR cta.can_read = TRUE OR cta.can_write = TRUE)) + OR + (write_access = TRUE AND (tr.can_write_cases = TRUE OR cta.can_write = TRUE)) + ) + ) INTO allowed; + + RETURN COALESCE(allowed, FALSE); +END; +$$ LANGUAGE plpgsql STABLE SECURITY DEFINER SET search_path = public; + +CREATE OR REPLACE FUNCTION app_user_has_document_team_access(target_document_id BIGINT, write_access BOOLEAN DEFAULT FALSE, target_user_id BIGINT DEFAULT app_user_id()) RETURNS BOOLEAN AS $$ +DECLARE + allowed BOOLEAN; +BEGIN + SELECT EXISTS ( + SELECT 1 + FROM document_item d + LEFT JOIN br_case c ON c.id = d.case_id + JOIN app_user_team_role utr ON utr.user_id = target_user_id AND (utr.committee_id IS NULL OR utr.committee_id = COALESCE(c.committee_id, 0) OR c.id IS NULL) + JOIN app_team_role tr ON tr.id = utr.team_role_id AND tr.is_active = TRUE + LEFT JOIN document_team_access dta ON dta.document_id = d.id AND dta.team_role_id = tr.id + WHERE d.id = target_document_id + AND ( + (write_access = FALSE AND (tr.can_view_documents = TRUE OR dta.can_read = TRUE OR dta.can_write = TRUE)) + OR + (write_access = TRUE AND (tr.can_write_documents = TRUE OR dta.can_write = TRUE)) + ) + ) INTO allowed; + + RETURN COALESCE(allowed, FALSE); +END; +$$ LANGUAGE plpgsql STABLE SECURITY DEFINER SET search_path = public; + +CREATE OR REPLACE FUNCTION app_can_read_case(target_case_id BIGINT) RETURNS BOOLEAN AS $$ +DECLARE + row br_case%ROWTYPE; +BEGIN + SELECT * INTO row FROM br_case WHERE id = target_case_id AND deleted_at IS NULL; + IF NOT FOUND THEN RETURN FALSE; END IF; + + IF app_role() IN ('admin', 'chair') OR app_has_permission('cases.read.all') THEN RETURN TRUE; END IF; + IF row.owner_user_id = app_user_id() OR row.created_by = app_user_id() THEN RETURN TRUE; END IF; + IF app_user_has_case_team_access(row.id, FALSE) THEN RETURN TRUE; END IF; + + RETURN FALSE; +END; +$$ LANGUAGE plpgsql STABLE SECURITY DEFINER SET search_path = public; + +CREATE OR REPLACE FUNCTION app_can_write_case(target_case_id BIGINT) RETURNS BOOLEAN AS $$ +DECLARE + row br_case%ROWTYPE; +BEGIN + SELECT * INTO row FROM br_case WHERE id = target_case_id AND deleted_at IS NULL; + IF NOT FOUND THEN RETURN FALSE; END IF; + + IF app_role() IN ('admin', 'chair') OR app_has_permission('cases.write.all') THEN RETURN TRUE; END IF; + IF (row.owner_user_id = app_user_id() OR row.created_by = app_user_id()) AND app_has_permission('cases.write') THEN RETURN TRUE; END IF; + IF app_user_has_case_team_access(row.id, TRUE) AND app_has_permission('cases.write') THEN RETURN TRUE; END IF; + + RETURN FALSE; +END; +$$ LANGUAGE plpgsql STABLE SECURITY DEFINER SET search_path = public; + +CREATE OR REPLACE FUNCTION app_can_read_document(target_document_id BIGINT) RETURNS BOOLEAN AS $$ +DECLARE + row document_item%ROWTYPE; +BEGIN + SELECT * INTO row FROM document_item WHERE id = target_document_id AND deleted_at IS NULL; + IF NOT FOUND THEN RETURN FALSE; END IF; + IF row.scan_status <> 'clean' THEN RETURN FALSE; END IF; + + IF app_role() IN ('admin', 'chair') OR app_has_permission('documents.read.all') THEN RETURN TRUE; END IF; + IF row.uploaded_by = app_user_id() THEN RETURN TRUE; END IF; + IF row.case_id IS NOT NULL AND app_can_read_case(row.case_id) THEN RETURN TRUE; END IF; + IF app_user_has_document_team_access(row.id, FALSE) THEN RETURN TRUE; END IF; + IF row.case_id IS NULL AND row.decision_id IS NULL AND row.confidentiality_level = 'intern' AND app_has_permission('documents.read.released') THEN RETURN TRUE; END IF; + + RETURN FALSE; +END; +$$ LANGUAGE plpgsql STABLE SECURITY DEFINER SET search_path = public; + +CREATE OR REPLACE FUNCTION app_can_write_document(target_document_id BIGINT) RETURNS BOOLEAN AS $$ +DECLARE + row document_item%ROWTYPE; +BEGIN + SELECT * INTO row FROM document_item WHERE id = target_document_id AND deleted_at IS NULL; + IF NOT FOUND THEN RETURN FALSE; END IF; + + IF app_role() IN ('admin', 'chair') OR app_has_permission('documents.write.all') THEN RETURN TRUE; END IF; + IF row.uploaded_by = app_user_id() AND app_has_permission('documents.write') THEN RETURN TRUE; END IF; + IF row.case_id IS NOT NULL AND app_can_write_case(row.case_id) AND app_has_permission('documents.write') THEN RETURN TRUE; END IF; + IF app_user_has_document_team_access(row.id, TRUE) AND app_has_permission('documents.write') THEN RETURN TRUE; END IF; + + RETURN FALSE; +END; +$$ LANGUAGE plpgsql STABLE SECURITY DEFINER SET search_path = public; + +CREATE OR REPLACE FUNCTION can_read_conf_level(level conf_level, owner BIGINT, committee BIGINT) RETURNS BOOLEAN AS $$ +BEGIN + IF app_role() IN ('admin', 'chair') OR app_has_permission('cases.read.all') THEN RETURN TRUE; END IF; + IF owner = app_user_id() THEN RETURN TRUE; END IF; + RETURN FALSE; +END; +$$ LANGUAGE plpgsql STABLE; + +DROP POLICY IF EXISTS br_case_select_policy ON br_case; +DROP POLICY IF EXISTS br_case_modify_policy ON br_case; +CREATE POLICY br_case_select_policy ON br_case FOR SELECT USING (app_can_read_case(id)); +CREATE POLICY br_case_modify_policy ON br_case FOR ALL USING (app_can_write_case(id)) WITH CHECK ( + app_role() IN ('admin','chair') + OR app_has_permission('cases.write.all') + OR (app_has_permission('cases.write') AND (owner_user_id = app_user_id() OR created_by = app_user_id())) +); + +DROP POLICY IF EXISTS deadline_select_policy ON deadline; +DROP POLICY IF EXISTS deadline_modify_policy ON deadline; +CREATE POLICY deadline_select_policy ON deadline FOR SELECT USING ( + deleted_at IS NULL AND EXISTS (SELECT 1 FROM br_case c WHERE c.id = deadline.case_id AND app_can_read_case(c.id)) +); +CREATE POLICY deadline_modify_policy ON deadline FOR ALL USING ( + deleted_at IS NULL AND EXISTS (SELECT 1 FROM br_case c WHERE c.id = deadline.case_id AND app_can_write_case(c.id)) +) WITH CHECK (app_has_permission('deadlines.write')); + +DROP POLICY IF EXISTS decision_select_policy ON decision; +DROP POLICY IF EXISTS decision_modify_policy ON decision; +CREATE POLICY decision_select_policy ON decision FOR SELECT USING ( + case_id IS NULL OR app_can_read_case(case_id) OR app_has_permission('decisions.write') +); +CREATE POLICY decision_modify_policy ON decision FOR ALL USING ( + app_has_permission('decisions.write') OR responsible_user_id = app_user_id() +) WITH CHECK (app_has_permission('decisions.write') OR responsible_user_id = app_user_id()); + +DROP POLICY IF EXISTS document_select_policy ON document_item; +DROP POLICY IF EXISTS document_modify_policy ON document_item; +CREATE POLICY document_select_policy ON document_item FOR SELECT USING (app_can_read_document(id)); +CREATE POLICY document_modify_policy ON document_item FOR ALL USING (app_can_write_document(id)) WITH CHECK ( + app_role() IN ('admin','chair') + OR app_has_permission('documents.write.all') + OR (app_has_permission('documents.write') AND uploaded_by = app_user_id()) + OR (case_id IS NOT NULL AND app_can_write_case(case_id) AND app_has_permission('documents.write')) +); + +DROP POLICY IF EXISTS meeting_select_policy ON meeting; +DROP POLICY IF EXISTS meeting_modify_policy ON meeting; +CREATE POLICY meeting_select_policy ON meeting FOR SELECT USING ( + app_can_view_page('meetings') OR app_has_permission('meetings.write') OR committee_id IS NULL OR committee_id = app_committee_id() +); +CREATE POLICY meeting_modify_policy ON meeting FOR ALL USING (app_has_permission('meetings.write')) WITH CHECK (app_has_permission('meetings.write')); + +DROP POLICY IF EXISTS template_select_policy ON template_item; +DROP POLICY IF EXISTS template_modify_policy ON template_item; +CREATE POLICY template_select_policy ON template_item FOR SELECT USING (app_can_view_page('templates')); +CREATE POLICY template_modify_policy ON template_item FOR ALL USING (app_has_permission('templates.write')) WITH CHECK (app_has_permission('templates.write')); + +DROP POLICY IF EXISTS committee_modify ON committee; +CREATE POLICY committee_modify ON committee FOR ALL USING (app_has_permission('committees.write')) WITH CHECK (app_has_permission('committees.write')); + +ALTER TABLE app_role_profile ENABLE ROW LEVEL SECURITY; +ALTER TABLE app_permission ENABLE ROW LEVEL SECURITY; +ALTER TABLE app_page ENABLE ROW LEVEL SECURITY; +ALTER TABLE app_role_permission ENABLE ROW LEVEL SECURITY; +ALTER TABLE app_role_page ENABLE ROW LEVEL SECURITY; +ALTER TABLE app_user_role_profile ENABLE ROW LEVEL SECURITY; +ALTER TABLE app_team_role ENABLE ROW LEVEL SECURITY; +ALTER TABLE app_user_team_role ENABLE ROW LEVEL SECURITY; +ALTER TABLE br_case_team_access ENABLE ROW LEVEL SECURITY; +ALTER TABLE document_team_access ENABLE ROW LEVEL SECURITY; + +DROP POLICY IF EXISTS app_role_profile_select ON app_role_profile; +DROP POLICY IF EXISTS app_role_profile_modify ON app_role_profile; +CREATE POLICY app_role_profile_select ON app_role_profile FOR SELECT USING ( + app_has_permission('system.permissions') + OR system_role::TEXT = app_role() + OR EXISTS ( + SELECT 1 FROM app_user_role_profile urp + WHERE urp.role_profile_id = app_role_profile.id + AND urp.user_id = app_user_id() + ) +); +CREATE POLICY app_role_profile_modify ON app_role_profile FOR ALL USING (app_has_permission('system.permissions')) WITH CHECK (app_has_permission('system.permissions')); + +DROP POLICY IF EXISTS app_permission_select ON app_permission; +DROP POLICY IF EXISTS app_permission_modify ON app_permission; +CREATE POLICY app_permission_select ON app_permission FOR SELECT USING (TRUE); +CREATE POLICY app_permission_modify ON app_permission FOR ALL USING (app_has_permission('system.permissions')) WITH CHECK (app_has_permission('system.permissions')); + +DROP POLICY IF EXISTS app_page_select ON app_page; +DROP POLICY IF EXISTS app_page_modify ON app_page; +CREATE POLICY app_page_select ON app_page FOR SELECT USING (TRUE); +CREATE POLICY app_page_modify ON app_page FOR ALL USING (app_has_permission('system.permissions')) WITH CHECK (app_has_permission('system.permissions')); + +DROP POLICY IF EXISTS app_role_permission_select ON app_role_permission; +DROP POLICY IF EXISTS app_role_permission_modify ON app_role_permission; +CREATE POLICY app_role_permission_select ON app_role_permission FOR SELECT USING ( + app_has_permission('system.permissions') + OR EXISTS ( + SELECT 1 FROM app_role_profile rp + WHERE rp.id = app_role_permission.role_profile_id + AND ( + rp.system_role::TEXT = app_role() + OR EXISTS ( + SELECT 1 FROM app_user_role_profile urp + WHERE urp.role_profile_id = rp.id + AND urp.user_id = app_user_id() + ) + ) + ) +); +CREATE POLICY app_role_permission_modify ON app_role_permission FOR ALL USING (app_has_permission('system.permissions')) WITH CHECK (app_has_permission('system.permissions')); + +DROP POLICY IF EXISTS app_role_page_select ON app_role_page; +DROP POLICY IF EXISTS app_role_page_modify ON app_role_page; +CREATE POLICY app_role_page_select ON app_role_page FOR SELECT USING ( + app_has_permission('system.permissions') + OR EXISTS ( + SELECT 1 FROM app_role_profile rp + WHERE rp.id = app_role_page.role_profile_id + AND ( + rp.system_role::TEXT = app_role() + OR EXISTS ( + SELECT 1 FROM app_user_role_profile urp + WHERE urp.role_profile_id = rp.id + AND urp.user_id = app_user_id() + ) + ) + ) +); +CREATE POLICY app_role_page_modify ON app_role_page FOR ALL USING (app_has_permission('system.permissions')) WITH CHECK (app_has_permission('system.permissions')); + +DROP POLICY IF EXISTS app_user_role_profile_select ON app_user_role_profile; +DROP POLICY IF EXISTS app_user_role_profile_modify ON app_user_role_profile; +CREATE POLICY app_user_role_profile_select ON app_user_role_profile FOR SELECT USING (app_has_permission('system.permissions') OR user_id = app_user_id()); +CREATE POLICY app_user_role_profile_modify ON app_user_role_profile FOR ALL USING (app_has_permission('system.permissions')) WITH CHECK (app_has_permission('system.permissions')); + +DROP POLICY IF EXISTS app_team_role_select ON app_team_role; +DROP POLICY IF EXISTS app_team_role_modify ON app_team_role; +CREATE POLICY app_team_role_select ON app_team_role FOR SELECT USING (app_has_permission('system.permissions') OR TRUE); +CREATE POLICY app_team_role_modify ON app_team_role FOR ALL USING (app_has_permission('system.permissions')) WITH CHECK (app_has_permission('system.permissions')); + +DROP POLICY IF EXISTS app_user_team_role_select ON app_user_team_role; +DROP POLICY IF EXISTS app_user_team_role_modify ON app_user_team_role; +CREATE POLICY app_user_team_role_select ON app_user_team_role FOR SELECT USING (app_has_permission('system.permissions') OR user_id = app_user_id()); +CREATE POLICY app_user_team_role_modify ON app_user_team_role FOR ALL USING (app_has_permission('system.permissions')) WITH CHECK (app_has_permission('system.permissions')); + +DROP POLICY IF EXISTS br_case_team_access_select ON br_case_team_access; +DROP POLICY IF EXISTS br_case_team_access_modify ON br_case_team_access; +CREATE POLICY br_case_team_access_select ON br_case_team_access FOR SELECT USING (app_has_permission('system.permissions') OR app_can_write_case(case_id)); +CREATE POLICY br_case_team_access_modify ON br_case_team_access FOR ALL USING (app_can_write_case(case_id) OR app_has_permission('system.permissions')) WITH CHECK (app_can_write_case(case_id) OR app_has_permission('system.permissions')); + +DROP POLICY IF EXISTS document_team_access_select ON document_team_access; +DROP POLICY IF EXISTS document_team_access_modify ON document_team_access; +CREATE POLICY document_team_access_select ON document_team_access FOR SELECT USING (app_has_permission('system.permissions') OR app_can_write_document(document_id)); +CREATE POLICY document_team_access_modify ON document_team_access FOR ALL USING (app_can_write_document(document_id) OR app_has_permission('system.permissions')) WITH CHECK (app_can_write_document(document_id) OR app_has_permission('system.permissions')); + +GRANT SELECT, INSERT, UPDATE, DELETE ON app_role_profile, app_permission, app_page, app_role_permission, app_role_page, app_user_role_profile, app_team_role, app_user_team_role, br_case_team_access, document_team_access TO br_app; +GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO br_app; diff --git a/backend/src/db/migrations/023_finance.sql b/backend/src/db/migrations/023_finance.sql new file mode 100644 index 0000000..e155edf --- /dev/null +++ b/backend/src/db/migrations/023_finance.sql @@ -0,0 +1,197 @@ +CREATE TABLE IF NOT EXISTS finance_project ( + id BIGSERIAL PRIMARY KEY, + project_code VARCHAR(50) UNIQUE, + name VARCHAR(180) NOT NULL, + description TEXT, + status VARCHAR(30) NOT NULL DEFAULT 'aktiv' CHECK (status IN ('aktiv','pausiert','abgeschlossen','archiviert')), + calculation_mode VARCHAR(30) NOT NULL DEFAULT 'sum_only' CHECK (calculation_mode IN ('sum_only','project_budget','annual_budget')), + committee_id BIGINT REFERENCES committee(id) ON DELETE SET NULL, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + deleted_at TIMESTAMPTZ +); + +CREATE TABLE IF NOT EXISTS finance_project_budget ( + id BIGSERIAL PRIMARY KEY, + project_id BIGINT NOT NULL REFERENCES finance_project(id) ON DELETE CASCADE, + budget_type VARCHAR(20) NOT NULL CHECK (budget_type IN ('project','annual')), + budget_year INTEGER, + amount NUMERIC(14,2) NOT NULL DEFAULT 0 CHECK (amount >= 0), + currency CHAR(3) NOT NULL DEFAULT 'EUR', + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + CONSTRAINT finance_project_budget_year_check CHECK ( + (budget_type = 'project' AND budget_year IS NULL) + OR + (budget_type = 'annual' AND budget_year IS NOT NULL) + ) +); + +CREATE UNIQUE INDEX IF NOT EXISTS ux_finance_project_budget_project + ON finance_project_budget(project_id) + WHERE budget_type = 'project'; + +CREATE UNIQUE INDEX IF NOT EXISTS ux_finance_project_budget_annual + ON finance_project_budget(project_id, budget_year) + WHERE budget_type = 'annual'; + +CREATE TABLE IF NOT EXISTS finance_expense ( + id BIGSERIAL PRIMARY KEY, + project_id BIGINT NOT NULL REFERENCES finance_project(id) ON DELETE CASCADE, + expense_date DATE NOT NULL DEFAULT CURRENT_DATE, + budget_year INTEGER NOT NULL DEFAULT EXTRACT(YEAR FROM CURRENT_DATE)::INTEGER, + title VARCHAR(255) NOT NULL, + vendor VARCHAR(180), + cost_category VARCHAR(120), + net_amount NUMERIC(14,2) NOT NULL CHECK (net_amount >= 0), + tax_rate_percent NUMERIC(6,3) NOT NULL DEFAULT 19 CHECK (tax_rate_percent >= 0), + tax_amount NUMERIC(14,2) NOT NULL DEFAULT 0 CHECK (tax_amount >= 0), + gross_amount NUMERIC(14,2) NOT NULL DEFAULT 0 CHECK (gross_amount >= 0), + currency CHAR(3) NOT NULL DEFAULT 'EUR', + payment_status VARCHAR(30) NOT NULL DEFAULT 'offen' CHECK (payment_status IN ('geplant','offen','bezahlt','storniert')), + notes TEXT, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + deleted_at TIMESTAMPTZ +); + +CREATE INDEX IF NOT EXISTS idx_finance_expense_project ON finance_expense(project_id); +CREATE INDEX IF NOT EXISTS idx_finance_expense_budget_year ON finance_expense(budget_year); +CREATE INDEX IF NOT EXISTS idx_finance_expense_date ON finance_expense(expense_date); + +CREATE TABLE IF NOT EXISTS finance_expense_document ( + expense_id BIGINT NOT NULL REFERENCES finance_expense(id) ON DELETE CASCADE, + document_id BIGINT NOT NULL REFERENCES document_item(id) ON DELETE CASCADE, + created_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + PRIMARY KEY (expense_id, document_id) +); + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_finance_project_updated_at') THEN + CREATE TRIGGER trg_finance_project_updated_at BEFORE UPDATE ON finance_project FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; + + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_finance_project_budget_updated_at') THEN + CREATE TRIGGER trg_finance_project_budget_updated_at BEFORE UPDATE ON finance_project_budget FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; + + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_finance_expense_updated_at') THEN + CREATE TRIGGER trg_finance_expense_updated_at BEFORE UPDATE ON finance_expense FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; +END $$; + +INSERT INTO app_page(page_key, path, label, nav_group, sort_order, description) +VALUES ('finance', '/finance', 'Finanzen', 'work', 65, 'Kostenüberwachung, Budgets, Jahresbudgets und Belege') +ON CONFLICT (page_key) DO UPDATE + SET path = EXCLUDED.path, + label = EXCLUDED.label, + nav_group = EXCLUDED.nav_group, + sort_order = EXCLUDED.sort_order, + description = EXCLUDED.description; + +INSERT INTO app_permission(permission_key, label, category, description) +VALUES + ('finance.read', 'Finanzen lesen', 'Finanzen', 'Finanzprojekte, Budgets, Ausgaben und Belege anzeigen'), + ('finance.write', 'Finanzen bearbeiten', 'Finanzen', 'Finanzprojekte, Budgets, Ausgaben und Belege anlegen und ändern'), + ('finance.delete', 'Finanzdaten löschen', 'Finanzen', 'Finanzprojekte und Ausgaben archivieren/löschen'), + ('finance.budget', 'Budgets verwalten', 'Finanzen', 'Projektbudgets und Jahresbudgets pflegen') +ON CONFLICT (permission_key) DO UPDATE + SET label = EXCLUDED.label, + category = EXCLUDED.category, + description = EXCLUDED.description; + +INSERT INTO app_role_page(role_profile_id, page_key, can_view) +SELECT rp.id, 'finance', TRUE + FROM app_role_profile rp + WHERE rp.code IN ('admin','chair') +ON CONFLICT (role_profile_id, page_key) DO UPDATE SET can_view = TRUE; + +INSERT INTO app_role_permission(role_profile_id, permission_key, granted) +SELECT rp.id, perm.permission_key, TRUE + FROM app_role_profile rp + CROSS JOIN (VALUES ('finance.read'), ('finance.write'), ('finance.delete'), ('finance.budget')) AS perm(permission_key) + WHERE rp.code IN ('admin','chair') +ON CONFLICT (role_profile_id, permission_key) DO UPDATE SET granted = TRUE; + +ALTER TABLE finance_project ENABLE ROW LEVEL SECURITY; +ALTER TABLE finance_project_budget ENABLE ROW LEVEL SECURITY; +ALTER TABLE finance_expense ENABLE ROW LEVEL SECURITY; +ALTER TABLE finance_expense_document ENABLE ROW LEVEL SECURITY; + +DROP POLICY IF EXISTS finance_project_select ON finance_project; +DROP POLICY IF EXISTS finance_project_modify ON finance_project; +CREATE POLICY finance_project_select ON finance_project FOR SELECT USING ( + deleted_at IS NULL AND app_has_permission('finance.read') +); +CREATE POLICY finance_project_modify ON finance_project FOR ALL USING ( + app_has_permission('finance.write') +) WITH CHECK (app_has_permission('finance.write')); + +DROP POLICY IF EXISTS finance_project_budget_select ON finance_project_budget; +DROP POLICY IF EXISTS finance_project_budget_modify ON finance_project_budget; +CREATE POLICY finance_project_budget_select ON finance_project_budget FOR SELECT USING ( + app_has_permission('finance.read') +); +CREATE POLICY finance_project_budget_modify ON finance_project_budget FOR ALL USING ( + app_has_permission('finance.budget') OR app_has_permission('finance.write') +) WITH CHECK (app_has_permission('finance.budget') OR app_has_permission('finance.write')); + +DROP POLICY IF EXISTS finance_expense_select ON finance_expense; +DROP POLICY IF EXISTS finance_expense_modify ON finance_expense; +CREATE POLICY finance_expense_select ON finance_expense FOR SELECT USING ( + deleted_at IS NULL AND app_has_permission('finance.read') +); +CREATE POLICY finance_expense_modify ON finance_expense FOR ALL USING ( + app_has_permission('finance.write') +) WITH CHECK (app_has_permission('finance.write')); + +DROP POLICY IF EXISTS finance_expense_document_select ON finance_expense_document; +DROP POLICY IF EXISTS finance_expense_document_modify ON finance_expense_document; +CREATE POLICY finance_expense_document_select ON finance_expense_document FOR SELECT USING ( + app_has_permission('finance.read') +); +CREATE POLICY finance_expense_document_modify ON finance_expense_document FOR ALL USING ( + app_has_permission('finance.write') +) WITH CHECK (app_has_permission('finance.write')); + +DROP POLICY IF EXISTS document_select_policy ON document_item; +DROP POLICY IF EXISTS document_modify_policy ON document_item; +CREATE POLICY document_select_policy ON document_item FOR SELECT USING ( + app_can_read_document(id) + OR EXISTS ( + SELECT 1 + FROM finance_expense_document fed + JOIN finance_expense fe ON fe.id = fed.expense_id AND fe.deleted_at IS NULL + WHERE fed.document_id = document_item.id + AND app_has_permission('finance.read') + ) +); +CREATE POLICY document_modify_policy ON document_item FOR ALL USING ( + app_can_write_document(id) + OR (document_item.document_type = 'finance_receipt' AND document_item.uploaded_by = app_user_id() AND app_has_permission('finance.write')) + OR EXISTS ( + SELECT 1 + FROM finance_expense_document fed + JOIN finance_expense fe ON fe.id = fed.expense_id AND fe.deleted_at IS NULL + WHERE fed.document_id = document_item.id + AND app_has_permission('finance.write') + ) +) WITH CHECK ( + app_role() IN ('admin','chair') + OR app_has_permission('documents.write.all') + OR (app_has_permission('documents.write') AND uploaded_by = app_user_id()) + OR (case_id IS NOT NULL AND app_can_write_case(case_id) AND app_has_permission('documents.write')) + OR (document_item.document_type = 'finance_receipt' AND document_item.uploaded_by = app_user_id() AND app_has_permission('finance.write')) + OR app_has_permission('finance.write') +); + +GRANT SELECT, INSERT, UPDATE, DELETE ON finance_project, finance_project_budget, finance_expense, finance_expense_document TO br_app; +GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO br_app; diff --git a/backend/src/db/migrations/024_decision_voting.sql b/backend/src/db/migrations/024_decision_voting.sql new file mode 100644 index 0000000..4ac76a6 --- /dev/null +++ b/backend/src/db/migrations/024_decision_voting.sql @@ -0,0 +1,175 @@ +BEGIN; + +ALTER TABLE decision + ADD COLUMN IF NOT EXISTS voting_open BOOLEAN NOT NULL DEFAULT FALSE, + ADD COLUMN IF NOT EXISTS voting_started_at TIMESTAMPTZ, + ADD COLUMN IF NOT EXISTS voting_started_by BIGINT REFERENCES app_user(id), + ADD COLUMN IF NOT EXISTS voting_closed_at TIMESTAMPTZ, + ADD COLUMN IF NOT EXISTS voting_closed_by BIGINT REFERENCES app_user(id); + +CREATE TABLE IF NOT EXISTS decision_vote ( + decision_id BIGINT NOT NULL REFERENCES decision(id) ON DELETE CASCADE, + user_id BIGINT NOT NULL REFERENCES app_user(id) ON DELETE CASCADE, + vote_value VARCHAR(20) NOT NULL CHECK (vote_value IN ('yes', 'no', 'abstain')), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + PRIMARY KEY (decision_id, user_id) +); + +CREATE INDEX IF NOT EXISTS idx_decision_vote_decision_id + ON decision_vote(decision_id); + +CREATE INDEX IF NOT EXISTS idx_decision_vote_user_id + ON decision_vote(user_id); + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_decision_vote_updated_at') THEN + CREATE TRIGGER trg_decision_vote_updated_at + BEFORE UPDATE ON decision_vote + FOR EACH ROW + EXECUTE FUNCTION set_updated_at(); + END IF; +END $$; + +ALTER TABLE decision_vote ENABLE ROW LEVEL SECURITY; +ALTER TABLE decision_vote FORCE ROW LEVEL SECURITY; + +-- Benutzer desselben Gremiums dürfen sich gegenseitig für Abstimmungslisten sehen. +-- Admin/chair behalten den bisherigen erweiterten Zugriff; jeder Benutzer sieht sich weiterhin selbst. +DROP POLICY IF EXISTS user_select ON app_user; +CREATE POLICY user_select ON app_user FOR SELECT USING ( + app_role() IN ('admin','chair') + OR id = app_user_id() + OR EXISTS ( + SELECT 1 + FROM committee_member mine + JOIN committee_member other_member ON other_member.committee_id = mine.committee_id + WHERE mine.user_id = app_user_id() + AND other_member.user_id = app_user.id + ) +); + +INSERT INTO app_permission(permission_key, label, category, description) +VALUES + ('decisions.vote.manage', 'Abstimmungen verwalten', 'Beschlüsse', 'Beschluss-Abstimmungen öffnen, schließen und auswerten') +ON CONFLICT (permission_key) DO UPDATE + SET label = EXCLUDED.label, + category = EXCLUDED.category, + description = EXCLUDED.description; + +INSERT INTO app_role_permission(role_profile_id, permission_key, granted) +SELECT id, 'decisions.vote.manage', TRUE + FROM app_role_profile + WHERE code IN ('admin', 'chair', 'secretary') +ON CONFLICT (role_profile_id, permission_key) DO UPDATE SET granted = TRUE; + +DROP POLICY IF EXISTS decision_modify_policy ON decision; +CREATE POLICY decision_modify_policy ON decision FOR ALL USING ( + app_has_permission('decisions.write') + OR app_has_permission('decisions.vote.manage') + OR responsible_user_id = app_user_id() + OR EXISTS ( + SELECT 1 + FROM meeting m + JOIN committee_member cm ON cm.committee_id = m.committee_id + WHERE m.id = decision.meeting_id + AND cm.user_id = app_user_id() + ) +) WITH CHECK ( + app_has_permission('decisions.write') + OR app_has_permission('decisions.vote.manage') + OR responsible_user_id = app_user_id() + OR EXISTS ( + SELECT 1 + FROM meeting m + JOIN committee_member cm ON cm.committee_id = m.committee_id + WHERE m.id = decision.meeting_id + AND cm.user_id = app_user_id() + ) +); + +DROP POLICY IF EXISTS decision_vote_select_policy ON decision_vote; +DROP POLICY IF EXISTS decision_vote_insert_policy ON decision_vote; +DROP POLICY IF EXISTS decision_vote_update_policy ON decision_vote; +DROP POLICY IF EXISTS decision_vote_delete_policy ON decision_vote; + +CREATE POLICY decision_vote_select_policy ON decision_vote FOR SELECT USING ( + user_id = app_user_id() + OR app_has_permission('decisions.vote.manage') + OR EXISTS ( + SELECT 1 + FROM decision d + JOIN meeting m ON m.id = d.meeting_id + JOIN committee_member cm ON cm.committee_id = m.committee_id + WHERE d.id = decision_vote.decision_id + AND cm.user_id = app_user_id() + ) +); + +CREATE POLICY decision_vote_insert_policy ON decision_vote FOR INSERT WITH CHECK ( + user_id = app_user_id() + AND app_role() <> 'advisor' + AND EXISTS ( + SELECT 1 + FROM decision d + JOIN meeting m ON m.id = d.meeting_id + JOIN committee_member cm ON cm.committee_id = m.committee_id + WHERE d.id = decision_vote.decision_id + AND d.voting_open = TRUE + AND m.status = 'gestartet' + AND cm.user_id = app_user_id() + ) +); + +CREATE POLICY decision_vote_update_policy ON decision_vote FOR UPDATE USING ( + user_id = app_user_id() + AND app_role() <> 'advisor' + AND EXISTS ( + SELECT 1 + FROM decision d + JOIN meeting m ON m.id = d.meeting_id + JOIN committee_member cm ON cm.committee_id = m.committee_id + WHERE d.id = decision_vote.decision_id + AND d.voting_open = TRUE + AND m.status = 'gestartet' + AND cm.user_id = app_user_id() + ) +) WITH CHECK ( + user_id = app_user_id() + AND app_role() <> 'advisor' +); + +CREATE POLICY decision_vote_delete_policy ON decision_vote FOR DELETE USING ( + app_has_permission('decisions.vote.manage') +); + + +CREATE OR REPLACE FUNCTION sync_decision_vote_counts(p_decision_id BIGINT) +RETURNS TABLE(votes_yes INTEGER, votes_no INTEGER, votes_abstain INTEGER) AS $$ +DECLARE + yes_count INTEGER; + no_count INTEGER; + abstain_count INTEGER; +BEGIN + SELECT COUNT(*) FILTER (WHERE vote_value = 'yes')::int, + COUNT(*) FILTER (WHERE vote_value = 'no')::int, + COUNT(*) FILTER (WHERE vote_value = 'abstain')::int + INTO yes_count, no_count, abstain_count + FROM decision_vote + WHERE decision_id = p_decision_id; + + UPDATE decision + SET votes_yes = COALESCE(yes_count, 0), + votes_no = COALESCE(no_count, 0), + votes_abstain = COALESCE(abstain_count, 0), + updated_at = NOW() + WHERE id = p_decision_id; + + RETURN QUERY SELECT COALESCE(yes_count, 0), COALESCE(no_count, 0), COALESCE(abstain_count, 0); +END; +$$ LANGUAGE plpgsql SECURITY DEFINER SET search_path = public; + +GRANT EXECUTE ON FUNCTION sync_decision_vote_counts(BIGINT) TO PUBLIC; + +COMMIT; diff --git a/backend/src/db/migrations/025_kummerkasten.sql b/backend/src/db/migrations/025_kummerkasten.sql new file mode 100644 index 0000000..3c92ead --- /dev/null +++ b/backend/src/db/migrations/025_kummerkasten.sql @@ -0,0 +1,82 @@ +CREATE TABLE IF NOT EXISTS kummerkasten_setting ( + id SMALLINT PRIMARY KEY DEFAULT 1 CHECK (id = 1), + enabled BOOLEAN NOT NULL DEFAULT FALSE, + access_password_hash TEXT, + intro_text TEXT NOT NULL DEFAULT 'Reichen Sie hier vertraulich einen Vorschlag oder ein Anliegen für die Tagesordnung ein.', + target_committee_id BIGINT REFERENCES committee(id) ON DELETE SET NULL, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +INSERT INTO kummerkasten_setting(id) +VALUES (1) +ON CONFLICT (id) DO NOTHING; + +CREATE TABLE IF NOT EXISTS kummerkasten_submission ( + id BIGSERIAL PRIMARY KEY, + agenda_item_id BIGINT REFERENCES meeting_agenda_item(id) ON DELETE SET NULL, + title VARCHAR(255) NOT NULL, + description TEXT, + submitter_name VARCHAR(255), + submitter_contact VARCHAR(255), + target_committee_id BIGINT REFERENCES committee(id) ON DELETE SET NULL, + status VARCHAR(40) NOT NULL DEFAULT 'converted_to_agenda', + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE INDEX IF NOT EXISTS idx_kummerkasten_submission_created_at ON kummerkasten_submission(created_at DESC); +CREATE INDEX IF NOT EXISTS idx_kummerkasten_submission_agenda_item ON kummerkasten_submission(agenda_item_id); + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_kummerkasten_setting_updated_at') THEN + CREATE TRIGGER trg_kummerkasten_setting_updated_at + BEFORE UPDATE ON kummerkasten_setting + FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; +END $$; + +INSERT INTO app_page(page_key, path, label, nav_group, sort_order, description) +VALUES + ('kummerkasten-admin', '/kummerkasten-admin', 'Kummerkasten', 'admin', 245, 'Öffentliche Kummerkasten-Seite konfigurieren') +ON CONFLICT (page_key) DO UPDATE + SET path = EXCLUDED.path, + label = EXCLUDED.label, + nav_group = EXCLUDED.nav_group, + sort_order = EXCLUDED.sort_order, + description = EXCLUDED.description; + +INSERT INTO app_permission(permission_key, label, category, description) +VALUES + ('kummerkasten.configure', 'Kummerkasten konfigurieren', 'Kummerkasten', 'Öffentliche Kummerkasten-Seite einschalten und Kennwort verwalten') +ON CONFLICT (permission_key) DO UPDATE + SET label = EXCLUDED.label, + category = EXCLUDED.category, + description = EXCLUDED.description; + +INSERT INTO app_role_page(role_profile_id, page_key, can_view) +SELECT id, 'kummerkasten-admin', TRUE + FROM app_role_profile + WHERE code = 'admin' +ON CONFLICT (role_profile_id, page_key) DO UPDATE SET can_view = TRUE; + +INSERT INTO app_role_permission(role_profile_id, permission_key, granted) +SELECT id, 'kummerkasten.configure', TRUE + FROM app_role_profile + WHERE code = 'admin' +ON CONFLICT (role_profile_id, permission_key) DO UPDATE SET granted = TRUE; + +ALTER TABLE kummerkasten_setting ENABLE ROW LEVEL SECURITY; +ALTER TABLE kummerkasten_submission ENABLE ROW LEVEL SECURITY; + +DROP POLICY IF EXISTS kummerkasten_setting_select ON kummerkasten_setting; +DROP POLICY IF EXISTS kummerkasten_setting_modify ON kummerkasten_setting; +CREATE POLICY kummerkasten_setting_select ON kummerkasten_setting FOR SELECT USING (app_has_permission('kummerkasten.configure')); +CREATE POLICY kummerkasten_setting_modify ON kummerkasten_setting FOR ALL USING (app_has_permission('kummerkasten.configure')) WITH CHECK (app_has_permission('kummerkasten.configure')); + +DROP POLICY IF EXISTS kummerkasten_submission_select ON kummerkasten_submission; +DROP POLICY IF EXISTS kummerkasten_submission_modify ON kummerkasten_submission; +CREATE POLICY kummerkasten_submission_select ON kummerkasten_submission FOR SELECT USING (app_has_permission('kummerkasten.configure')); +CREATE POLICY kummerkasten_submission_modify ON kummerkasten_submission FOR ALL USING (app_has_permission('kummerkasten.configure')) WITH CHECK (app_has_permission('kummerkasten.configure')); diff --git a/backend/src/db/migrations/026_remove_kummerkasten_default_duration.sql b/backend/src/db/migrations/026_remove_kummerkasten_default_duration.sql new file mode 100644 index 0000000..a53b466 --- /dev/null +++ b/backend/src/db/migrations/026_remove_kummerkasten_default_duration.sql @@ -0,0 +1,2 @@ +ALTER TABLE IF EXISTS kummerkasten_setting + DROP COLUMN IF EXISTS default_duration_minutes; diff --git a/backend/src/db/migrations/027_remove_kummerkasten_duration_minutes.sql b/backend/src/db/migrations/027_remove_kummerkasten_duration_minutes.sql new file mode 100644 index 0000000..fa21541 --- /dev/null +++ b/backend/src/db/migrations/027_remove_kummerkasten_duration_minutes.sql @@ -0,0 +1,2 @@ +ALTER TABLE IF EXISTS kummerkasten_submission + DROP COLUMN IF EXISTS duration_minutes; diff --git a/backend/src/db/migrations/028_finance_invoice_lines_tax_codes.sql b/backend/src/db/migrations/028_finance_invoice_lines_tax_codes.sql new file mode 100644 index 0000000..6220e55 --- /dev/null +++ b/backend/src/db/migrations/028_finance_invoice_lines_tax_codes.sql @@ -0,0 +1,180 @@ +CREATE TABLE IF NOT EXISTS finance_tax_code ( + id BIGSERIAL PRIMARY KEY, + code VARCHAR(160) NOT NULL UNIQUE, + label VARCHAR(220) NOT NULL, + tax_rate_percent NUMERIC(6,3) NOT NULL DEFAULT 0 CHECK (tax_rate_percent >= 0 AND tax_rate_percent <= 100), + is_active BOOLEAN NOT NULL DEFAULT TRUE, + sort_order INTEGER NOT NULL DEFAULT 1000, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS finance_expense_line ( + id BIGSERIAL PRIMARY KEY, + expense_id BIGINT NOT NULL REFERENCES finance_expense(id) ON DELETE CASCADE, + line_no INTEGER NOT NULL DEFAULT 1, + description VARCHAR(255) NOT NULL, + tax_code_id BIGINT REFERENCES finance_tax_code(id) ON DELETE SET NULL, + tax_code_key VARCHAR(160), + net_amount NUMERIC(14,2) NOT NULL DEFAULT 0 CHECK (net_amount >= 0), + tax_rate_percent NUMERIC(6,3) NOT NULL DEFAULT 0 CHECK (tax_rate_percent >= 0 AND tax_rate_percent <= 100), + tax_amount NUMERIC(14,2) NOT NULL DEFAULT 0 CHECK (tax_amount >= 0), + gross_amount NUMERIC(14,2) NOT NULL DEFAULT 0 CHECK (gross_amount >= 0), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + CONSTRAINT finance_expense_line_line_no_unique UNIQUE (expense_id, line_no) +); + +CREATE INDEX IF NOT EXISTS idx_finance_expense_line_expense ON finance_expense_line(expense_id); +CREATE INDEX IF NOT EXISTS idx_finance_expense_line_tax_code ON finance_expense_line(tax_code_id); + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_finance_tax_code_updated_at') THEN + CREATE TRIGGER trg_finance_tax_code_updated_at BEFORE UPDATE ON finance_tax_code FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; + + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_finance_expense_line_updated_at') THEN + CREATE TRIGGER trg_finance_expense_line_updated_at BEFORE UPDATE ON finance_expense_line FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; +END $$; + +INSERT INTO finance_tax_code(code, label, tax_rate_percent, is_active, sort_order) +VALUES + ('Kfz_Betriebskosten_19%', 'Kfz Betriebskosten 19%', 19.000, TRUE, 10), + ('Mietwagen_Betanken_19%', 'Mietwagen Betanken 19%', 19.000, TRUE, 11), + ('Mietwagen_Ausland', 'Mietwagen Ausland', 0.000, TRUE, 12), + ('Bahn_ueber_50_km_19%', 'Bahn ueber 50 km 19%', 19.000, TRUE, 13), + ('Bahn_ueber_50_km', 'Bahn ueber 50 km', 0.000, TRUE, 14), + ('Bahn_unter_50_km_7%', 'Bahn unter 50 km 7%', 7.000, TRUE, 15), + ('Bahn_unter_50_km', 'Bahn unter 50 km', 0.000, TRUE, 16), + ('Bewirtungskosten_19%', 'Bewirtungskosten 19%', 19.000, TRUE, 17), + ('Bewirtungskosten_7%', 'Bewirtungskosten 7%', 7.000, TRUE, 18), + ('Bewirtungskosten', 'Bewirtungskosten', 0.000, TRUE, 19), + ('Bewirtungskosten_30_19%', 'Bewirtungskosten 30 19%', 19.000, TRUE, 20), + ('Bewirtungskosten_30_7%', 'Bewirtungskosten 30 7%', 7.000, TRUE, 21), + ('Bewirtungskosten_30', 'Bewirtungskosten 30', 0.000, TRUE, 22), + ('Buerobedarf_19%', 'Buerobedarf 19%', 19.000, TRUE, 23), + ('Buerobedarf', 'Buerobedarf', 0.000, TRUE, 24), + ('Bus_ueber_50_km_19%', 'Bus ueber 50 km 19%', 19.000, TRUE, 25), + ('Bus_ueber_50_km', 'Bus ueber 50 km', 0.000, TRUE, 26), + ('Bus_unter_50_km_7%', 'Bus unter 50 km 7%', 7.000, TRUE, 27), + ('Bus_unter_50_km', 'Bus unter 50 km', 0.000, TRUE, 28), + ('Flug_19%', 'Flug 19%', 19.000, TRUE, 29), + ('Flug', 'Flug', 0.000, TRUE, 30), + ('Fruehstueck_(Hotel_Pension)_19%', 'Fruehstueck (Hotel Pension) 19%', 19.000, TRUE, 31), + ('Fruehstueck_(Hotel_Pension)', 'Fruehstueck (Hotel Pension)', 0.000, TRUE, 32), + ('Mittagessen_(Hotel_Pension)_19%', 'Mittagessen (Hotel Pension) 19%', 19.000, TRUE, 33), + ('Mittagessen_(Hotel_Pension)', 'Mittagessen (Hotel Pension)', 0.000, TRUE, 34), + ('Abendessen_(Hotel_Pension)_19%', 'Abendessen (Hotel Pension) 19%', 19.000, TRUE, 35), + ('Abendessen_(Hotel_Pension)', 'Abendessen (Hotel Pension)', 0.000, TRUE, 36), + ('Handy_19%', 'Handy 19%', 19.000, TRUE, 37), + ('Handy', 'Handy', 0.000, TRUE, 38), + ('Hotel_Pension_7%', 'Hotel Pension 7%', 7.000, TRUE, 39), + ('Hotel_Pension', 'Hotel Pension', 0.000, TRUE, 40), + ('Internet_19%', 'Internet 19%', 19.000, TRUE, 41), + ('Internet', 'Internet', 0.000, TRUE, 42), + ('Lebensmittel_19%%', 'Lebensmittel 19%%', 19.000, TRUE, 43), + ('Lebensmittel_7%', 'Lebensmittel 7%', 7.000, TRUE, 44), + ('Lebensmittel', 'Lebensmittel', 0.000, TRUE, 45), + ('Mietwagen_19%', 'Mietwagen 19%', 19.000, TRUE, 46), + ('Mietwagen', 'Mietwagen', 0.000, TRUE, 47), + ('Mietwohnung_Appartement_19%', 'Mietwohnung Appartement 19%', 19.000, TRUE, 48), + ('Mietwohnung_Appartement', 'Mietwohnung Appartement', 0.000, TRUE, 49), + ('Parkgebuehren_19%', 'Parkgebuehren 19%', 19.000, TRUE, 50), + ('Parkgebuehren', 'Parkgebuehren', 0.000, TRUE, 51), + ('Porto_19%', 'Porto 19%', 19.000, TRUE, 52), + ('Porto', 'Porto', 0.000, TRUE, 53), + ('Reservierung_19%', 'Reservierung 19%', 19.000, TRUE, 54), + ('Reservierung', 'Reservierung', 0.000, TRUE, 55), + ('Sonstiges_(19_%_MwSt.)', 'Sonstiges (19 % MwSt.)', 19.000, TRUE, 56), + ('Sonstiges_(7_%_MwSt.)', 'Sonstiges (7 % MwSt.)', 7.000, TRUE, 57), + ('Sonstiges', 'Sonstiges', 0.000, TRUE, 58), + ('Tankbelege_19%', 'Tankbelege 19%', 19.000, TRUE, 59), + ('Tankbelege', 'Tankbelege', 0.000, TRUE, 60), + ('Taxi_ueber_50_km_19%', 'Taxi ueber 50 km 19%', 19.000, TRUE, 61), + ('Taxi_ueber_50_km', 'Taxi ueber 50 km', 0.000, TRUE, 62), + ('Taxi_unter_50_km_7%', 'Taxi unter 50 km 7%', 7.000, TRUE, 63), + ('Taxi_unter_50_km', 'Taxi unter 50 km', 0.000, TRUE, 64), + ('Telefonkosten_19%', 'Telefonkosten 19%', 19.000, TRUE, 65), + ('Telefonkosten', 'Telefonkosten', 0.000, TRUE, 66), + ('Abendessen_(Hotel/Pension)_19%', 'Abendessen (Hotel/Pension) 19%', 19.000, TRUE, 67) +ON CONFLICT (code) DO UPDATE + SET label = EXCLUDED.label, + tax_rate_percent = EXCLUDED.tax_rate_percent, + sort_order = EXCLUDED.sort_order, + updated_at = NOW(); + + + +INSERT INTO finance_expense_line( + expense_id, line_no, description, tax_code_key, + net_amount, tax_rate_percent, tax_amount, gross_amount +) +SELECT e.id, + 1, + COALESCE(NULLIF(e.cost_category, ''), e.title, 'Rechnungsposition'), + e.cost_category, + e.net_amount, + e.tax_rate_percent, + e.tax_amount, + e.gross_amount + FROM finance_expense e + WHERE NOT EXISTS ( + SELECT 1 FROM finance_expense_line l WHERE l.expense_id = e.id + ); + +INSERT INTO app_page(page_key, path, label, nav_group, sort_order, description) +VALUES ('finance-tax-codes', '/finance-tax-codes', 'MwSt.-Sätze Finanzen', 'admin', 55, 'Kostenarten und MwSt.-Sätze für Rechnungspositionen pflegen') +ON CONFLICT (page_key) DO UPDATE + SET path = EXCLUDED.path, + label = EXCLUDED.label, + nav_group = EXCLUDED.nav_group, + sort_order = EXCLUDED.sort_order, + description = EXCLUDED.description; + +INSERT INTO app_permission(permission_key, label, category, description) +VALUES + ('finance.tax_codes', 'MwSt.-Sätze verwalten', 'Finanzen', 'Kostenarten und MwSt.-Sätze für Finanz-Rechnungspositionen pflegen') +ON CONFLICT (permission_key) DO UPDATE + SET label = EXCLUDED.label, + category = EXCLUDED.category, + description = EXCLUDED.description; + +INSERT INTO app_role_page(role_profile_id, page_key, can_view) +SELECT rp.id, 'finance-tax-codes', TRUE + FROM app_role_profile rp + WHERE rp.code IN ('admin','chair') +ON CONFLICT (role_profile_id, page_key) DO UPDATE SET can_view = TRUE; + +INSERT INTO app_role_permission(role_profile_id, permission_key, granted) +SELECT rp.id, 'finance.tax_codes', TRUE + FROM app_role_profile rp + WHERE rp.code IN ('admin','chair') +ON CONFLICT (role_profile_id, permission_key) DO UPDATE SET granted = TRUE; + +ALTER TABLE finance_tax_code ENABLE ROW LEVEL SECURITY; +ALTER TABLE finance_expense_line ENABLE ROW LEVEL SECURITY; + +DROP POLICY IF EXISTS finance_tax_code_select ON finance_tax_code; +DROP POLICY IF EXISTS finance_tax_code_modify ON finance_tax_code; +CREATE POLICY finance_tax_code_select ON finance_tax_code FOR SELECT USING ( + app_has_permission('finance.read') OR app_has_permission('finance.tax_codes') +); +CREATE POLICY finance_tax_code_modify ON finance_tax_code FOR ALL USING ( + app_has_permission('finance.tax_codes') OR app_has_permission('finance.budget') +) WITH CHECK (app_has_permission('finance.tax_codes') OR app_has_permission('finance.budget')); + +DROP POLICY IF EXISTS finance_expense_line_select ON finance_expense_line; +DROP POLICY IF EXISTS finance_expense_line_modify ON finance_expense_line; +CREATE POLICY finance_expense_line_select ON finance_expense_line FOR SELECT USING ( + app_has_permission('finance.read') +); +CREATE POLICY finance_expense_line_modify ON finance_expense_line FOR ALL USING ( + app_has_permission('finance.write') +) WITH CHECK (app_has_permission('finance.write')); + +GRANT SELECT, INSERT, UPDATE, DELETE ON finance_tax_code, finance_expense_line TO br_app; +GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO br_app; diff --git a/backend/src/db/migrations/029_department_catalog.sql b/backend/src/db/migrations/029_department_catalog.sql new file mode 100644 index 0000000..9fc1249 --- /dev/null +++ b/backend/src/db/migrations/029_department_catalog.sql @@ -0,0 +1,95 @@ +CREATE TABLE IF NOT EXISTS department_catalog ( + id BIGSERIAL PRIMARY KEY, + code VARCHAR(80) NOT NULL UNIQUE, + label VARCHAR(120) NOT NULL, + description TEXT, + sort_order INTEGER NOT NULL DEFAULT 1000, + is_active BOOLEAN NOT NULL DEFAULT TRUE, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_department_catalog_updated_at') THEN + CREATE TRIGGER trg_department_catalog_updated_at + BEFORE UPDATE ON department_catalog + FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; +END $$; + +INSERT INTO department_catalog(code, label, sort_order) +VALUES + ('it', 'IT', 10), + ('personal', 'Personal', 20), + ('fertigung', 'Fertigung', 30), + ('qualitaet', 'Qualität', 40), + ('logistik', 'Logistik', 50), + ('einkauf', 'Einkauf', 60), + ('verwaltung', 'Verwaltung', 70), + ('sonstiges', 'Sonstiges', 999) +ON CONFLICT (code) DO UPDATE + SET label = EXCLUDED.label, + sort_order = EXCLUDED.sort_order, + is_active = TRUE; + +INSERT INTO department_catalog(code, label, sort_order) +SELECT DISTINCT + lower(regexp_replace(regexp_replace(trim(department), '[^[:alnum:]]+', '_', 'g'), '^_+|_+$', '', 'g')) AS code, + trim(department) AS label, + 500 + FROM br_case + WHERE department IS NOT NULL + AND trim(department) <> '' + AND NOT EXISTS ( + SELECT 1 + FROM department_catalog d + WHERE d.code = lower(regexp_replace(regexp_replace(trim(br_case.department), '[^[:alnum:]]+', '_', 'g'), '^_+|_+$', '', 'g')) + OR d.code = trim(br_case.department) + ) +ON CONFLICT (code) DO NOTHING; + +INSERT INTO app_page(page_key, path, label, nav_group, sort_order, description) +VALUES ('departments', '/departments', 'Abteilungen', 'admin', 215, 'Abteilungen für Vorgänge pflegen') +ON CONFLICT (page_key) DO UPDATE + SET path = EXCLUDED.path, + label = EXCLUDED.label, + nav_group = EXCLUDED.nav_group, + sort_order = EXCLUDED.sort_order, + description = EXCLUDED.description; + +INSERT INTO app_permission(permission_key, label, category, description) +VALUES ('departments.manage', 'Abteilungen verwalten', 'Administration', 'Abteilungen anlegen, bearbeiten und deaktivieren/löschen') +ON CONFLICT (permission_key) DO UPDATE + SET label = EXCLUDED.label, + category = EXCLUDED.category, + description = EXCLUDED.description; + +INSERT INTO app_role_page(role_profile_id, page_key, can_view) +SELECT id, 'departments', TRUE + FROM app_role_profile + WHERE code IN ('admin', 'chair') +ON CONFLICT (role_profile_id, page_key) DO UPDATE SET can_view = TRUE; + +INSERT INTO app_role_permission(role_profile_id, permission_key, granted) +SELECT id, 'departments.manage', TRUE + FROM app_role_profile + WHERE code IN ('admin', 'chair') +ON CONFLICT (role_profile_id, permission_key) DO UPDATE SET granted = TRUE; + +ALTER TABLE department_catalog ENABLE ROW LEVEL SECURITY; + +DROP POLICY IF EXISTS department_catalog_select ON department_catalog; +DROP POLICY IF EXISTS department_catalog_modify ON department_catalog; +CREATE POLICY department_catalog_select ON department_catalog FOR SELECT USING ( + app_can_view_page('departments') + OR app_has_permission('departments.manage') + OR app_has_permission('cases.write') + OR app_can_view_page('cases') +); +CREATE POLICY department_catalog_modify ON department_catalog FOR ALL USING (app_has_permission('departments.manage')) WITH CHECK (app_has_permission('departments.manage')); + +GRANT SELECT, INSERT, UPDATE, DELETE ON department_catalog TO br_app; +GRANT USAGE, SELECT ON SEQUENCE department_catalog_id_seq TO br_app; diff --git a/backend/src/db/migrations/030_conf_level_oeffentlich.sql b/backend/src/db/migrations/030_conf_level_oeffentlich.sql new file mode 100644 index 0000000..fd78a80 --- /dev/null +++ b/backend/src/db/migrations/030_conf_level_oeffentlich.sql @@ -0,0 +1,12 @@ +DO $$ +BEGIN + IF NOT EXISTS ( + SELECT 1 + FROM pg_enum e + JOIN pg_type t ON t.oid = e.enumtypid + WHERE t.typname = 'conf_level' + AND e.enumlabel = 'oeffentlich' + ) THEN + ALTER TYPE conf_level ADD VALUE 'oeffentlich'; + END IF; +END $$; diff --git a/backend/src/db/migrations/031_document_categories_public_documents.sql b/backend/src/db/migrations/031_document_categories_public_documents.sql new file mode 100644 index 0000000..6eee397 --- /dev/null +++ b/backend/src/db/migrations/031_document_categories_public_documents.sql @@ -0,0 +1,152 @@ +CREATE TABLE IF NOT EXISTS document_category_catalog ( + id BIGSERIAL PRIMARY KEY, + code VARCHAR(80) NOT NULL UNIQUE, + label VARCHAR(120) NOT NULL, + description TEXT, + sort_order INTEGER NOT NULL DEFAULT 1000, + is_active BOOLEAN NOT NULL DEFAULT TRUE, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS public_document_setting ( + id INTEGER PRIMARY KEY DEFAULT 1, + enabled BOOLEAN NOT NULL DEFAULT FALSE, + intro_text TEXT NOT NULL DEFAULT 'Vom Betriebsrat freigegebene Dokumente', + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + CONSTRAINT public_document_setting_singleton CHECK (id = 1) +); + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_document_category_catalog_updated_at') THEN + CREATE TRIGGER trg_document_category_catalog_updated_at + BEFORE UPDATE ON document_category_catalog + FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; + + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_public_document_setting_updated_at') THEN + CREATE TRIGGER trg_public_document_setting_updated_at + BEFORE UPDATE ON public_document_setting + FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; +END $$; + +ALTER TABLE document_item + ADD COLUMN IF NOT EXISTS document_category_id BIGINT REFERENCES document_category_catalog(id); + +INSERT INTO document_category_catalog(code, label, description, sort_order) +VALUES + ('allgemein', 'Allgemein', 'Allgemeine Dokumente', 10), + ('protokoll', 'Protokoll', 'Sitzungs- und Gesprächsprotokolle', 20), + ('beschluss', 'Beschluss', 'Beschlussbezogene Dokumente', 30), + ('rechnung', 'Rechnung', 'Rechnungen und Belege', 40), + ('vertrag', 'Vertrag', 'Verträge und Vereinbarungen', 50), + ('vorlage', 'Vorlage', 'Vorlagen und Muster', 60), + ('oeffentlich', 'Öffentlich', 'Öffentlich freigegebene Dokumente', 70), + ('sonstiges', 'Sonstiges', 'Sonstige Dokumente', 999) +ON CONFLICT (code) DO UPDATE + SET label = EXCLUDED.label, + description = EXCLUDED.description, + sort_order = EXCLUDED.sort_order, + is_active = TRUE; + +UPDATE document_item d + SET document_category_id = c.id + FROM document_category_catalog c + WHERE d.document_category_id IS NULL + AND c.code = CASE + WHEN lower(COALESCE(d.document_type, '')) LIKE '%protokoll%' THEN 'protokoll' + WHEN lower(COALESCE(d.document_type, '')) LIKE '%beschluss%' THEN 'beschluss' + WHEN lower(COALESCE(d.document_type, '')) LIKE '%rechnung%' OR lower(COALESCE(d.document_type, '')) LIKE '%beleg%' THEN 'rechnung' + WHEN lower(COALESCE(d.document_type, '')) LIKE '%vertrag%' THEN 'vertrag' + WHEN lower(COALESCE(d.document_type, '')) LIKE '%vorlage%' THEN 'vorlage' + ELSE 'allgemein' + END; + +INSERT INTO public_document_setting(id, enabled, intro_text) +VALUES (1, FALSE, 'Vom Betriebsrat freigegebene Dokumente') +ON CONFLICT (id) DO NOTHING; + +INSERT INTO app_page(page_key, path, label, nav_group, sort_order, description) +VALUES + ('document_categories', '/document-categories', 'Dokumentenkategorien', 'admin', 216, 'Kategorien für Dokumente pflegen'), + ('public_documents_admin', '/public-documents-admin', 'Öffentliche Dokumente', 'admin', 217, 'Öffentliche Dokumentenseite konfigurieren') +ON CONFLICT (page_key) DO UPDATE + SET path = EXCLUDED.path, + label = EXCLUDED.label, + nav_group = EXCLUDED.nav_group, + sort_order = EXCLUDED.sort_order, + description = EXCLUDED.description; + +INSERT INTO app_permission(permission_key, label, category, description) +VALUES + ('document_categories.manage', 'Dokumentenkategorien verwalten', 'Administration', 'Dokumentenkategorien anlegen, bearbeiten und deaktivieren/löschen'), + ('public_documents.configure', 'Öffentliche Dokumente konfigurieren', 'Administration', 'Öffentliche Dokumentenseite ein- und ausschalten sowie Beschreibung pflegen') +ON CONFLICT (permission_key) DO UPDATE + SET label = EXCLUDED.label, + category = EXCLUDED.category, + description = EXCLUDED.description; + +INSERT INTO app_role_page(role_profile_id, page_key, can_view) +SELECT id, page_key, TRUE + FROM app_role_profile + CROSS JOIN (VALUES ('document_categories'), ('public_documents_admin')) AS p(page_key) + WHERE code IN ('admin', 'chair') +ON CONFLICT (role_profile_id, page_key) DO UPDATE SET can_view = TRUE; + +INSERT INTO app_role_permission(role_profile_id, permission_key, granted) +SELECT id, permission_key, TRUE + FROM app_role_profile + CROSS JOIN (VALUES ('document_categories.manage'), ('public_documents.configure')) AS p(permission_key) + WHERE code IN ('admin', 'chair') +ON CONFLICT (role_profile_id, permission_key) DO UPDATE SET granted = TRUE; + +CREATE OR REPLACE FUNCTION app_can_read_document(target_document_id BIGINT) RETURNS BOOLEAN AS $$ +DECLARE + row document_item%ROWTYPE; +BEGIN + SELECT * INTO row FROM document_item WHERE id = target_document_id AND deleted_at IS NULL; + IF NOT FOUND THEN RETURN FALSE; END IF; + IF row.scan_status <> 'clean' THEN RETURN FALSE; END IF; + + IF row.confidentiality_level = 'oeffentlich' THEN RETURN TRUE; END IF; + IF app_role() IN ('admin', 'chair') OR app_has_permission('documents.read.all') THEN RETURN TRUE; END IF; + IF row.uploaded_by = app_user_id() THEN RETURN TRUE; END IF; + IF row.case_id IS NOT NULL AND app_can_read_case(row.case_id) THEN RETURN TRUE; END IF; + IF app_user_has_document_team_access(row.id, FALSE) THEN RETURN TRUE; END IF; + IF row.case_id IS NULL AND row.decision_id IS NULL AND row.confidentiality_level = 'intern' AND app_has_permission('documents.read.released') THEN RETURN TRUE; END IF; + + RETURN FALSE; +END; +$$ LANGUAGE plpgsql STABLE SECURITY DEFINER SET search_path = public; + +ALTER TABLE document_category_catalog ENABLE ROW LEVEL SECURITY; +ALTER TABLE public_document_setting ENABLE ROW LEVEL SECURITY; + +DROP POLICY IF EXISTS document_category_catalog_select ON document_category_catalog; +DROP POLICY IF EXISTS document_category_catalog_modify ON document_category_catalog; +CREATE POLICY document_category_catalog_select ON document_category_catalog FOR SELECT USING ( + is_active = TRUE + OR app_can_view_page('documents') + OR app_can_view_page('document_categories') + OR app_has_permission('documents.write') + OR app_has_permission('document_categories.manage') +); +CREATE POLICY document_category_catalog_modify ON document_category_catalog FOR ALL USING (app_has_permission('document_categories.manage')) WITH CHECK (app_has_permission('document_categories.manage')); + +DROP POLICY IF EXISTS public_document_setting_select ON public_document_setting; +DROP POLICY IF EXISTS public_document_setting_modify ON public_document_setting; +CREATE POLICY public_document_setting_select ON public_document_setting FOR SELECT USING (TRUE); +CREATE POLICY public_document_setting_modify ON public_document_setting FOR ALL USING (app_has_permission('public_documents.configure')) WITH CHECK (app_has_permission('public_documents.configure')); + +CREATE INDEX IF NOT EXISTS idx_document_item_category ON document_item(document_category_id); +CREATE INDEX IF NOT EXISTS idx_document_item_public ON document_item(confidentiality_level, scan_status, deleted_at); + +GRANT SELECT, INSERT, UPDATE, DELETE ON document_category_catalog, public_document_setting TO br_app; +GRANT USAGE, SELECT ON SEQUENCE document_category_catalog_id_seq TO br_app; diff --git a/backend/src/db/migrations/032_public_documents_password.sql b/backend/src/db/migrations/032_public_documents_password.sql new file mode 100644 index 0000000..38b8d8b --- /dev/null +++ b/backend/src/db/migrations/032_public_documents_password.sql @@ -0,0 +1,8 @@ +ALTER TABLE public_document_setting + ADD COLUMN IF NOT EXISTS access_password_hash TEXT; + +COMMENT ON COLUMN public_document_setting.access_password_hash IS 'Argon2-Hash des globalen Kennworts für die fast öffentliche Dokumentenseite.'; + +UPDATE app_permission + SET description = 'Öffentliche Dokumentenseite ein- und ausschalten, Kennwort setzen sowie Beschreibung pflegen' + WHERE permission_key = 'public_documents.configure'; diff --git a/backend/src/db/migrations/033_public_documents_intro_default.sql b/backend/src/db/migrations/033_public_documents_intro_default.sql new file mode 100644 index 0000000..92aa175 --- /dev/null +++ b/backend/src/db/migrations/033_public_documents_intro_default.sql @@ -0,0 +1,4 @@ +UPDATE public_document_setting + SET intro_text = 'Vom Betriebsrat freigegebene Dokumente' + WHERE id = 1 + AND intro_text = 'Hier finden Sie öffentlich freigegebene Dokumente.'; diff --git a/backend/src/db/migrations/034_comment_protocol_toggle.sql b/backend/src/db/migrations/034_comment_protocol_toggle.sql new file mode 100644 index 0000000..d0e3ab1 --- /dev/null +++ b/backend/src/db/migrations/034_comment_protocol_toggle.sql @@ -0,0 +1,6 @@ +ALTER TABLE comment_item + ADD COLUMN IF NOT EXISTS include_in_protocol BOOLEAN NOT NULL DEFAULT FALSE; + +CREATE INDEX IF NOT EXISTS idx_comment_item_agenda_protocol + ON comment_item(entity_type, entity_id, include_in_protocol) + WHERE deleted_at IS NULL; diff --git a/backend/src/db/migrations/035_meeting_protocol_attendees.sql b/backend/src/db/migrations/035_meeting_protocol_attendees.sql new file mode 100644 index 0000000..d3013e3 --- /dev/null +++ b/backend/src/db/migrations/035_meeting_protocol_attendees.sql @@ -0,0 +1,18 @@ +UPDATE template_item + SET content = CASE + WHEN content LIKE '%{{quorum_statement}}%' THEN + REPLACE(content, '{{quorum_statement}}', '{{quorum_statement}} +{{attendees_block}}') + WHEN content LIKE '%## Protokollnotizen%' THEN + REPLACE(content, '## Protokollnotizen', '{{attendees_block}} + +## Protokollnotizen') + ELSE + content || ' + +{{attendees_block}}' + END, + version_label = CASE WHEN version_label IN ('v1', 'v2') THEN 'v3' ELSE version_label END, + updated_at = NOW() + WHERE category = 'meeting_protocol' + AND content NOT LIKE '%{{attendees_block}}%'; diff --git a/backend/src/db/migrations/036_agenda_item_return_workflow.sql b/backend/src/db/migrations/036_agenda_item_return_workflow.sql new file mode 100644 index 0000000..eaa8833 --- /dev/null +++ b/backend/src/db/migrations/036_agenda_item_return_workflow.sql @@ -0,0 +1,49 @@ +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS status VARCHAR(30) NOT NULL DEFAULT 'offen'; + +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS returned_from_meeting_id BIGINT REFERENCES meeting(id) ON DELETE SET NULL; + +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS returned_at TIMESTAMPTZ; + +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS returned_by BIGINT REFERENCES app_user(id) ON DELETE SET NULL; + +DO $$ +BEGIN + IF NOT EXISTS ( + SELECT 1 + FROM pg_constraint + WHERE conname = 'chk_meeting_agenda_item_status' + AND conrelid = 'meeting_agenda_item'::regclass + ) THEN + ALTER TABLE meeting_agenda_item + ADD CONSTRAINT chk_meeting_agenda_item_status + CHECK (status IN ('offen', 'in_sitzung', 'rueckfrage', 'klaerung', 'erledigt')); + END IF; +END $$; + +UPDATE meeting_agenda_item + SET status = CASE WHEN meeting_id IS NULL THEN 'offen' ELSE 'in_sitzung' END + WHERE status IS NULL + OR status NOT IN ('offen', 'in_sitzung', 'rueckfrage', 'klaerung', 'erledigt') + OR (meeting_id IS NOT NULL AND status = 'offen'); + +CREATE TABLE IF NOT EXISTS meeting_agenda_item_return_log ( + id BIGSERIAL PRIMARY KEY, + agenda_item_id BIGINT NOT NULL REFERENCES meeting_agenda_item(id) ON DELETE CASCADE, + meeting_id BIGINT NOT NULL REFERENCES meeting(id) ON DELETE CASCADE, + agenda_number_at_return VARCHAR(20), + title_at_return VARCHAR(255) NOT NULL, + return_type VARCHAR(30) NOT NULL DEFAULT 'rueckfrage', + remark TEXT NOT NULL, + include_in_protocol BOOLEAN NOT NULL DEFAULT TRUE, + returned_by BIGINT REFERENCES app_user(id) ON DELETE SET NULL, + returned_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + CONSTRAINT chk_meeting_agenda_item_return_type CHECK (return_type IN ('rueckfrage', 'klaerung', 'bemerkung')) +); + +CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_status ON meeting_agenda_item(status); +CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_return_log_meeting ON meeting_agenda_item_return_log(meeting_id, returned_at DESC); +CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_return_log_agenda ON meeting_agenda_item_return_log(agenda_item_id, returned_at DESC); diff --git a/backend/src/db/migrations/037_agenda_item_parent_child_followups.sql b/backend/src/db/migrations/037_agenda_item_parent_child_followups.sql new file mode 100644 index 0000000..9a4f651 --- /dev/null +++ b/backend/src/db/migrations/037_agenda_item_parent_child_followups.sql @@ -0,0 +1,45 @@ +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS parent_agenda_item_id BIGINT REFERENCES meeting_agenda_item(id) ON DELETE SET NULL; + +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS root_agenda_item_id BIGINT REFERENCES meeting_agenda_item(id) ON DELETE SET NULL; + +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS follow_up_type VARCHAR(30); + +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS follow_up_note TEXT; + +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS follow_up_created_from_meeting_id BIGINT REFERENCES meeting(id) ON DELETE SET NULL; + +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS follow_up_created_from_agenda_item_id BIGINT REFERENCES meeting_agenda_item(id) ON DELETE SET NULL; + +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS follow_up_created_at TIMESTAMPTZ; + +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS follow_up_created_by BIGINT REFERENCES app_user(id) ON DELETE SET NULL; + +DO $$ +BEGIN + IF NOT EXISTS ( + SELECT 1 + FROM pg_constraint + WHERE conname = 'chk_meeting_agenda_item_follow_up_type' + AND conrelid = 'meeting_agenda_item'::regclass + ) THEN + ALTER TABLE meeting_agenda_item + ADD CONSTRAINT chk_meeting_agenda_item_follow_up_type + CHECK (follow_up_type IS NULL OR follow_up_type IN ('rueckfrage', 'klaerung', 'bemerkung')); + END IF; +END $$; + +ALTER TABLE meeting_agenda_item_return_log + ADD COLUMN IF NOT EXISTS follow_up_agenda_item_id BIGINT REFERENCES meeting_agenda_item(id) ON DELETE SET NULL; + +CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_parent ON meeting_agenda_item(parent_agenda_item_id); +CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_root ON meeting_agenda_item(root_agenda_item_id); +CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_follow_up_source ON meeting_agenda_item(follow_up_created_from_meeting_id, follow_up_created_from_agenda_item_id); +CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_return_log_follow_up ON meeting_agenda_item_return_log(follow_up_agenda_item_id); diff --git a/backend/src/db/migrations/038_agenda_item_followup_klaerung.sql b/backend/src/db/migrations/038_agenda_item_followup_klaerung.sql new file mode 100644 index 0000000..50d96a4 --- /dev/null +++ b/backend/src/db/migrations/038_agenda_item_followup_klaerung.sql @@ -0,0 +1,23 @@ +-- Erweitert den Parent/Child-Folge-TOP-Workflow um den Typ "Klärung". +-- Diese Migration ist für bestehende Datenbanken nötig, in denen 036/037 bereits ausgeführt wurden. + +ALTER TABLE meeting_agenda_item + DROP CONSTRAINT IF EXISTS chk_meeting_agenda_item_status; + +ALTER TABLE meeting_agenda_item + ADD CONSTRAINT chk_meeting_agenda_item_status + CHECK (status IN ('offen', 'in_sitzung', 'rueckfrage', 'klaerung', 'erledigt')); + +ALTER TABLE meeting_agenda_item_return_log + DROP CONSTRAINT IF EXISTS chk_meeting_agenda_item_return_type; + +ALTER TABLE meeting_agenda_item_return_log + ADD CONSTRAINT chk_meeting_agenda_item_return_type + CHECK (return_type IN ('rueckfrage', 'klaerung', 'bemerkung')); + +ALTER TABLE meeting_agenda_item + DROP CONSTRAINT IF EXISTS chk_meeting_agenda_item_follow_up_type; + +ALTER TABLE meeting_agenda_item + ADD CONSTRAINT chk_meeting_agenda_item_follow_up_type + CHECK (follow_up_type IS NULL OR follow_up_type IN ('rueckfrage', 'klaerung', 'bemerkung')); diff --git a/backend/src/db/migrations/039_template_html_editor_assets.sql b/backend/src/db/migrations/039_template_html_editor_assets.sql new file mode 100644 index 0000000..9005768 --- /dev/null +++ b/backend/src/db/migrations/039_template_html_editor_assets.sql @@ -0,0 +1,80 @@ +CREATE TABLE IF NOT EXISTS template_asset ( + id BIGSERIAL PRIMARY KEY, + title VARCHAR(255) NOT NULL, + description TEXT, + file_name VARCHAR(255) NOT NULL, + storage_path TEXT NOT NULL, + storage_provider VARCHAR(30) NOT NULL DEFAULT 'local', + mime_type VARCHAR(120) NOT NULL, + size_bytes BIGINT NOT NULL DEFAULT 0, + sha256_hash VARCHAR(64) NOT NULL, + uploaded_by BIGINT REFERENCES app_user(id), + is_active BOOLEAN NOT NULL DEFAULT TRUE, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +ALTER TABLE template_item + ADD COLUMN IF NOT EXISTS content_format VARCHAR(20) NOT NULL DEFAULT 'markdown'; + +ALTER TABLE template_item + ADD COLUMN IF NOT EXISTS logo_asset_id BIGINT; + +DO $$ +BEGIN + IF NOT EXISTS ( + SELECT 1 + FROM pg_constraint + WHERE conname = 'template_item_logo_asset_id_fkey' + ) THEN + ALTER TABLE template_item + ADD CONSTRAINT template_item_logo_asset_id_fkey + FOREIGN KEY (logo_asset_id) REFERENCES template_asset(id) ON DELETE SET NULL; + END IF; +END$$; + +DO $$ +BEGIN + IF NOT EXISTS ( + SELECT 1 + FROM pg_constraint + WHERE conname = 'template_item_content_format_check' + ) THEN + ALTER TABLE template_item + ADD CONSTRAINT template_item_content_format_check + CHECK (content_format IN ('markdown', 'html')); + END IF; +END$$; + +CREATE INDEX IF NOT EXISTS idx_template_item_logo_asset_id ON template_item(logo_asset_id); +CREATE INDEX IF NOT EXISTS idx_template_asset_active ON template_asset(is_active, created_at DESC); + +DO $$ +BEGIN + IF NOT EXISTS ( + SELECT 1 FROM pg_trigger WHERE tgname = 'trg_template_asset_updated_at' + ) THEN + CREATE TRIGGER trg_template_asset_updated_at + BEFORE UPDATE ON template_asset + FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; +END$$; + +ALTER TABLE template_asset ENABLE ROW LEVEL SECURITY; +ALTER TABLE template_asset FORCE ROW LEVEL SECURITY; + +DROP POLICY IF EXISTS template_asset_select_policy ON template_asset; +DROP POLICY IF EXISTS template_asset_modify_policy ON template_asset; +CREATE POLICY template_asset_select_policy ON template_asset + FOR SELECT USING (app_can_view_page('templates')); +CREATE POLICY template_asset_modify_policy ON template_asset + FOR ALL USING (app_has_permission('templates.write')) + WITH CHECK (app_has_permission('templates.write')); + +UPDATE template_item + SET content = '{{template_logo}} + +' || content, + updated_at = NOW() + WHERE category = 'meeting_protocol' + AND content NOT LIKE '%{{template_logo}}%'; diff --git a/backend/src/db/migrations/040_formular_editor_navigation.sql b/backend/src/db/migrations/040_formular_editor_navigation.sql new file mode 100644 index 0000000..cbb5da4 --- /dev/null +++ b/backend/src/db/migrations/040_formular_editor_navigation.sql @@ -0,0 +1,4 @@ +UPDATE app_page + SET label = 'Vorlagen / Formular-Editor', + description = 'Vorlagenverwaltung und HTML-/Formular-Editor' + WHERE page_key = 'templates'; diff --git a/backend/src/middleware/auth.js b/backend/src/middleware/auth.js new file mode 100644 index 0000000..9b795aa --- /dev/null +++ b/backend/src/middleware/auth.js @@ -0,0 +1,18 @@ +import { verifyAccessToken } from "../utils/jwt.js"; + +export function authenticate(req, res, next) { + const header = req.headers.authorization || ""; + const token = header.startsWith("Bearer ") ? header.slice(7) : ""; + if (!token) return res.status(401).json({ error: "Nicht angemeldet" }); + try { + req.user = verifyAccessToken(token); + next(); + } catch { + res.status(401).json({ error: "Ungültiges Token" }); + } +} + +export function requireMfa(req, res, next) { + if (!req.user?.mfa_verified) return res.status(403).json({ error: "MFA erforderlich" }); + next(); +} diff --git a/backend/src/middleware/errorHandler.js b/backend/src/middleware/errorHandler.js new file mode 100644 index 0000000..b2aee2a --- /dev/null +++ b/backend/src/middleware/errorHandler.js @@ -0,0 +1,4 @@ +export function errorHandler(err, req, res, next) { + console.error(err); + res.status(err.status || 500).json({ error: err.publicMessage || err.message || "Interner Fehler" }); +} diff --git a/backend/src/middleware/rbac.js b/backend/src/middleware/rbac.js new file mode 100644 index 0000000..e1f0646 --- /dev/null +++ b/backend/src/middleware/rbac.js @@ -0,0 +1,38 @@ +import { userHasPermission, userCanViewPage } from "../services/accessControl.js"; + +export function requireRoles(...roles) { + return (req, res, next) => { + if (!roles.includes(req.user?.role)) { + return res.status(403).json({ error: "Keine Berechtigung" }); + } + next(); + }; +} + +export function requirePermission(permissionKey, fallbackRoles = []) { + return async (req, res, next) => { + try { + const allowed = await userHasPermission(req.user?.sub, req.user?.role, permissionKey); + if (!allowed) return res.status(403).json({ error: "Keine Berechtigung" }); + next(); + } catch (err) { + // Fallback greift nur, falls die neue Permission-Matrix noch nicht migriert ist. + if (fallbackRoles.includes(req.user?.role)) return next(); + next(err); + } + }; +} + +export function requirePageAccess(pageKey, fallbackRoles = []) { + return async (req, res, next) => { + try { + const allowed = await userCanViewPage(req.user?.sub, req.user?.role, pageKey); + if (!allowed) return res.status(403).json({ error: "Keine Berechtigung für diese Seite" }); + next(); + } catch (err) { + // Fallback greift nur, falls die neue Permission-Matrix noch nicht migriert ist. + if (fallbackRoles.includes(req.user?.role)) return next(); + next(err); + } + }; +} diff --git a/backend/src/middleware/security.js b/backend/src/middleware/security.js new file mode 100644 index 0000000..d04df25 --- /dev/null +++ b/backend/src/middleware/security.js @@ -0,0 +1,20 @@ +import rateLimit from "express-rate-limit"; +import helmet from "helmet"; +import cors from "cors"; +import { env } from "../config/env.js"; + +export const commonSecurity = [ + helmet({ + contentSecurityPolicy: false + }), + cors({ + origin: env.corsOrigin, + credentials: true, + }), + rateLimit({ + windowMs: 15 * 60 * 1000, + max: 500, + standardHeaders: true, + legacyHeaders: false, + }), +]; diff --git a/backend/src/middleware/upload.js b/backend/src/middleware/upload.js new file mode 100644 index 0000000..32f5fe7 --- /dev/null +++ b/backend/src/middleware/upload.js @@ -0,0 +1,5 @@ +import multer from "multer"; +export const upload = multer({ + storage: multer.memoryStorage(), + limits: { fileSize: 25 * 1024 * 1024 }, +}); diff --git a/backend/src/middleware/validate.js b/backend/src/middleware/validate.js new file mode 100644 index 0000000..7493342 --- /dev/null +++ b/backend/src/middleware/validate.js @@ -0,0 +1,10 @@ +export function validate(schema) { + return (req, res, next) => { + const result = schema.safeParse(req.body); + if (!result.success) { + return res.status(400).json({ error: "Validierungsfehler", details: result.error.issues }); + } + req.body = result.data; + next(); + }; +} diff --git a/backend/src/modules/agenda-items/routes.js b/backend/src/modules/agenda-items/routes.js new file mode 100644 index 0000000..dc323a7 --- /dev/null +++ b/backend/src/modules/agenda-items/routes.js @@ -0,0 +1,385 @@ +import express from "express"; +import { z } from "zod"; +import { authenticate, requireMfa } from "../../middleware/auth.js"; +import { requirePermission, requireRoles } from "../../middleware/rbac.js"; +import { validate } from "../../middleware/validate.js"; +import { withDbSession } from "../../config/db.js"; +import { writeAudit } from "../../utils/audit.js"; + +const router = express.Router(); +router.use(authenticate); + +const createSchema = z.object({ + title: z.string().min(3).max(255), + description: z.string().max(8000).optional().nullable(), + duration_minutes: z.coerce.number().int().min(0).max(600).optional().nullable(), + case_id: z.coerce.number().int().positive().optional().nullable(), +}); + +const updateSchema = z.object({ + title: z.string().min(3).max(255).optional(), + description: z.string().max(8000).optional().nullable(), + duration_minutes: z.coerce.number().int().min(0).max(600).optional().nullable(), + case_id: z.coerce.number().int().positive().optional().nullable(), +}); + +function normalizeNullableText(value) { + if (value === undefined) return undefined; + if (value === null) return null; + const trimmed = String(value).trim(); + return trimmed ? trimmed : null; +} + +function normalizeNullableNumber(value) { + if (value === undefined) return undefined; + if (value === null || value === "") return null; + return Number(value); +} + +function parseBoolean(value, fallback = false) { + if (value === undefined || value === null || value === "") return fallback; + if (typeof value === "boolean") return value; + const normalized = String(value).trim().toLowerCase(); + if (["1", "true", "yes", "ja", "on"].includes(normalized)) return true; + if (["0", "false", "no", "nein", "off"].includes(normalized)) return false; + return fallback; +} + +function mapAgendaItem(row) { + if (!row) return null; + return { + id: row.id, + meeting_id: row.meeting_id, + meeting_number: row.meeting_number, + agenda_number: row.agenda_number, + title: row.title, + description: row.description, + duration_minutes: row.duration_minutes, + case_id: row.case_id, + case_number: row.case_number, + decision_id: row.decision_id, + decision_number: row.decision_number, + decision_title: row.decision_title, + status: row.status || (row.meeting_id ? "in_sitzung" : "offen"), + parent_agenda_item_id: row.parent_agenda_item_id, + parent_agenda_number: row.parent_agenda_number, + parent_title: row.parent_title, + root_agenda_item_id: row.root_agenda_item_id, + follow_up_type: row.follow_up_type, + follow_up_note: row.follow_up_note, + follow_up_created_from_meeting_id: row.follow_up_created_from_meeting_id, + follow_up_source_meeting_number: row.follow_up_source_meeting_number, + follow_up_created_from_agenda_item_id: row.follow_up_created_from_agenda_item_id, + follow_up_created_at: row.follow_up_created_at, + follow_up_created_by: row.follow_up_created_by, + follow_up_created_by_name: row.follow_up_created_by_name, + returned_from_meeting_id: row.returned_from_meeting_id, + returned_at: row.returned_at, + returned_by: row.returned_by, + returned_by_name: row.returned_by_name, + last_return_remark: row.last_return_remark, + last_return_type: row.last_return_type, + created_at: row.created_at, + }; +} + +async function assertCaseReference(db, caseId) { + if (caseId == null) return; + const result = await db.query(`SELECT id FROM br_case WHERE id = $1 AND deleted_at IS NULL`, [caseId]); + if (!result.rows[0]) { + throw Object.assign(new Error("Vorgang nicht gefunden"), { + status: 400, + publicMessage: "Vorgang nicht gefunden", + }); + } +} + +async function getAgendaItems(db, options = {}) { + const includeAssigned = Boolean(options.includeAssigned); + const result = await db.query( + `SELECT ai.id, + ai.meeting_id, + m.meeting_number, + ai.agenda_number, + ai.title, + ai.description, + ai.duration_minutes, + ai.case_id, + c.case_number, + latest_decision.id AS decision_id, + latest_decision.decision_number, + latest_decision.title AS decision_title, + ai.status, + ai.parent_agenda_item_id, + parent_ai.agenda_number AS parent_agenda_number, + parent_ai.title AS parent_title, + ai.root_agenda_item_id, + ai.follow_up_type, + ai.follow_up_note, + ai.follow_up_created_from_meeting_id, + source_meeting.meeting_number AS follow_up_source_meeting_number, + ai.follow_up_created_from_agenda_item_id, + ai.follow_up_created_at, + ai.follow_up_created_by, + fubu.full_name AS follow_up_created_by_name, + ai.returned_from_meeting_id, + ai.returned_at, + ai.returned_by, + ru.full_name AS returned_by_name, + COALESCE(ai.follow_up_note, last_return.remark) AS last_return_remark, + COALESCE(ai.follow_up_type, last_return.return_type) AS last_return_type, + ai.created_at + FROM meeting_agenda_item ai + LEFT JOIN meeting m ON m.id = ai.meeting_id + LEFT JOIN br_case c ON c.id = ai.case_id + LEFT JOIN meeting_agenda_item parent_ai ON parent_ai.id = ai.parent_agenda_item_id + LEFT JOIN meeting source_meeting ON source_meeting.id = ai.follow_up_created_from_meeting_id + LEFT JOIN app_user fubu ON fubu.id = ai.follow_up_created_by + LEFT JOIN app_user ru ON ru.id = ai.returned_by + LEFT JOIN LATERAL ( + SELECT d.id, d.decision_number, d.title + FROM decision d + WHERE d.agenda_item_id = ai.id + ORDER BY d.created_at DESC, d.id DESC + LIMIT 1 + ) latest_decision ON TRUE + LEFT JOIN LATERAL ( + SELECT l.remark, l.return_type + FROM meeting_agenda_item_return_log l + WHERE l.agenda_item_id = ai.id + ORDER BY l.returned_at DESC, l.id DESC + LIMIT 1 + ) last_return ON TRUE + WHERE ($1::boolean = TRUE OR ai.meeting_id IS NULL) + ORDER BY m.meeting_date DESC NULLS LAST, + COALESCE(NULLIF(regexp_replace(COALESCE(ai.agenda_number, ''), '[^0-9]', '', 'g'), ''), '999999')::int, + ai.created_at DESC, + ai.id DESC`, + [includeAssigned] + ); + + return result.rows.map(mapAgendaItem); +} + +async function getAgendaItemById(db, id) { + const result = await db.query( + `SELECT ai.id, + ai.meeting_id, + m.meeting_number, + ai.agenda_number, + ai.title, + ai.description, + ai.duration_minutes, + ai.case_id, + c.case_number, + latest_decision.id AS decision_id, + latest_decision.decision_number, + latest_decision.title AS decision_title, + ai.status, + ai.parent_agenda_item_id, + parent_ai.agenda_number AS parent_agenda_number, + parent_ai.title AS parent_title, + ai.root_agenda_item_id, + ai.follow_up_type, + ai.follow_up_note, + ai.follow_up_created_from_meeting_id, + source_meeting.meeting_number AS follow_up_source_meeting_number, + ai.follow_up_created_from_agenda_item_id, + ai.follow_up_created_at, + ai.follow_up_created_by, + fubu.full_name AS follow_up_created_by_name, + ai.returned_from_meeting_id, + ai.returned_at, + ai.returned_by, + ru.full_name AS returned_by_name, + COALESCE(ai.follow_up_note, last_return.remark) AS last_return_remark, + COALESCE(ai.follow_up_type, last_return.return_type) AS last_return_type, + ai.created_at + FROM meeting_agenda_item ai + LEFT JOIN meeting m ON m.id = ai.meeting_id + LEFT JOIN br_case c ON c.id = ai.case_id + LEFT JOIN meeting_agenda_item parent_ai ON parent_ai.id = ai.parent_agenda_item_id + LEFT JOIN meeting source_meeting ON source_meeting.id = ai.follow_up_created_from_meeting_id + LEFT JOIN app_user fubu ON fubu.id = ai.follow_up_created_by + LEFT JOIN app_user ru ON ru.id = ai.returned_by + LEFT JOIN LATERAL ( + SELECT d.id, d.decision_number, d.title + FROM decision d + WHERE d.agenda_item_id = ai.id + ORDER BY d.created_at DESC, d.id DESC + LIMIT 1 + ) latest_decision ON TRUE + LEFT JOIN LATERAL ( + SELECT l.remark, l.return_type + FROM meeting_agenda_item_return_log l + WHERE l.agenda_item_id = ai.id + ORDER BY l.returned_at DESC, l.id DESC + LIMIT 1 + ) last_return ON TRUE + WHERE ai.id = $1`, + [id] + ); + + return mapAgendaItem(result.rows[0]); +} + +router.get("/", async (req, res, next) => { + try { + const includeAssigned = parseBoolean(req.query.include_assigned, false) || parseBoolean(req.query.all, false); + const rows = await withDbSession(req.user, (db) => getAgendaItems(db, { includeAssigned })); + res.json(rows); + } catch (err) { + next(err); + } +}); + +router.get("/:id", async (req, res, next) => { + try { + const row = await withDbSession(req.user, (db) => getAgendaItemById(db, req.params.id)); + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + res.json(row); + } catch (err) { + next(err); + } +}); + +router.post( + "/", + requireMfa, + requirePermission("agenda.write", ["admin", "chair", "secretary"]), + validate(createSchema), + async (req, res, next) => { + try { + const payload = { + title: req.body.title.trim(), + description: normalizeNullableText(req.body.description), + duration_minutes: req.body.duration_minutes ?? null, + case_id: normalizeNullableNumber(req.body.case_id), + }; + + const row = await withDbSession(req.user, async (db) => { + await assertCaseReference(db, payload.case_id); + + const result = await db.query( + `INSERT INTO meeting_agenda_item(meeting_id, agenda_number, title, description, duration_minutes, case_id, status) + VALUES (NULL, NULL, $1, $2, $3, $4, 'offen') + RETURNING id`, + [payload.title, payload.description, payload.duration_minutes, payload.case_id] + ); + + return getAgendaItemById(db, result.rows[0].id); + }); + + await writeAudit({ + actorId: req.user.sub, + action: "AGENDA_ITEM_CREATED_POOL", + entityType: "agenda_item", + entityId: row.id, + ipAddress: req.ip, + }); + + res.status(201).json(row); + } catch (err) { + next(err); + } + } +); + +router.put( + "/:id", + requireMfa, + requirePermission("agenda.write", ["admin", "chair", "secretary"]), + validate(updateSchema), + async (req, res, next) => { + try { + const payload = { + title: req.body.title !== undefined ? req.body.title.trim() : undefined, + description: normalizeNullableText(req.body.description), + duration_minutes: req.body.duration_minutes, + case_id: normalizeNullableNumber(req.body.case_id), + }; + + const row = await withDbSession(req.user, async (db) => { + const existing = await getAgendaItemById(db, req.params.id); + if (!existing) return null; + + await assertCaseReference(db, payload.case_id); + + const fields = []; + const values = []; + let idx = 1; + + const push = (column, value) => { + fields.push(`${column} = $${idx}`); + values.push(value); + idx += 1; + }; + + for (const [column, value] of [ + ["title", payload.title], + ["description", payload.description], + ["duration_minutes", payload.duration_minutes], + ["case_id", payload.case_id], + ]) { + if (value !== undefined) push(column, value); + } + + if (existing.meeting_id === null && ["rueckfrage", "klaerung"].includes(existing.status)) { + push("status", "offen"); + } + + if (!fields.length) { + throw Object.assign(new Error("Keine Felder zum Aktualisieren"), { + status: 400, + publicMessage: "Keine Felder zum Aktualisieren", + }); + } + + values.push(req.params.id); + await db.query(`UPDATE meeting_agenda_item SET ${fields.join(", ")} WHERE id = $${idx}`, values); + return getAgendaItemById(db, req.params.id); + }); + + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "AGENDA_ITEM_UPDATED_POOL", + entityType: "agenda_item", + entityId: row.id, + ipAddress: req.ip, + }); + + res.json(row); + } catch (err) { + next(err); + } + } +); + +router.delete("/:id", requireMfa, requirePermission("agenda.write", ["admin", "chair", "secretary"]), async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const existing = await getAgendaItemById(db, req.params.id); + if (!existing) return null; + await db.query(`DELETE FROM meeting_agenda_item WHERE id = $1`, [req.params.id]); + return existing; + }); + + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "AGENDA_ITEM_DELETED_POOL", + entityType: "agenda_item", + entityId: row.id, + ipAddress: req.ip, + }); + + res.json({ ok: true, row }); + } catch (err) { + next(err); + } +}); + +export default router; diff --git a/backend/src/modules/audit/routes.js b/backend/src/modules/audit/routes.js new file mode 100644 index 0000000..e5aebe4 --- /dev/null +++ b/backend/src/modules/audit/routes.js @@ -0,0 +1,24 @@ +import express from "express"; +import { authenticate, requireMfa } from "../../middleware/auth.js"; +import { requirePermission, requireRoles } from "../../middleware/rbac.js"; +import { withDbSession } from "../../config/db.js"; + +const router = express.Router(); +router.use(authenticate, requireMfa, requirePermission("system.audit", ["admin", "chair", "secretary"])); + +router.get("/", async (req, res, next) => { + try { + const rows = await withDbSession(req.user, async (db) => { + const result = await db.query( + `SELECT id, actor_user_id, action, entity_type, entity_id, metadata, ip_address, created_at + FROM audit_log + ORDER BY created_at DESC + LIMIT 500` + ); + return result.rows; + }); + res.json(rows); + } catch (err) { next(err); } +}); + +export default router; diff --git a/backend/src/modules/auth/routes.js b/backend/src/modules/auth/routes.js new file mode 100644 index 0000000..69332ac --- /dev/null +++ b/backend/src/modules/auth/routes.js @@ -0,0 +1,255 @@ +import express from "express"; +import { + loginSchema, + registerSchema, + loginSecondFactorSchema, + totpVerifySchema, + webauthnFinishSchema, +} from "./schemas.js"; +import { validate } from "../../middleware/validate.js"; +import { + login, + refresh, + register, + finalizeSecondFactor, + userByLoginToken, +} from "./service.js"; +import { authenticate } from "../../middleware/auth.js"; +import { requirePermission } from "../../middleware/rbac.js"; +import { env } from "../../config/env.js"; +import { + beginRegistration, + finishRegistration, + beginAuthentication, + finishAuthentication, +} from "../../services/webauthn.js"; +import { startTotpEnrollment, verifyTotpEnrollment } from "../../services/totp.js"; +import { writeAudit } from "../../utils/audit.js"; + +const router = express.Router(); + +function getRefreshCookieOptions() { + const isProduction = String(env.nodeEnv || "").toLowerCase() === "production"; + + return { + httpOnly: true, + sameSite: "lax", + secure: isProduction && Boolean(env.cookieSecure), + path: "/api/auth", + maxAge: 7 * 24 * 60 * 60 * 1000, + }; +} + +function setRefreshCookie(res, token) { + res.cookie("refresh_token", token, getRefreshCookieOptions()); +} + +function clearRefreshCookie(res) { + res.clearCookie("refresh_token", getRefreshCookieOptions()); +} + +router.post("/login", validate(loginSchema), async (req, res, next) => { + try { + const result = await login({ ...req.body, ipAddress: req.ip }); + + if (result.mfaRequired) { + return res.status(202).json({ + mfaRequired: true, + loginToken: result.loginToken, + availableSecondFactors: result.availableSecondFactors || null, + userHint: result.userHint || null, + }); + } + + setRefreshCookie(res, result.refreshToken); + + res.json({ + accessToken: result.accessToken, + user: result.user, + }); + } catch (err) { + next(err); + } +}); + +router.post("/login/totp", validate(loginSecondFactorSchema), async (req, res, next) => { + try { + const result = await finalizeSecondFactor({ + loginToken: req.body.login_token, + totpCode: req.body.totp_code, + ipAddress: req.ip, + }); + + setRefreshCookie(res, result.refreshToken); + + res.json({ + accessToken: result.accessToken, + user: result.user, + }); + } catch (err) { + next(err); + } +}); + +router.post( + "/login/webauthn/options", + validate(loginSecondFactorSchema.pick({ login_token: true })), + async (req, res, next) => { + try { + const user = await userByLoginToken(req.body.login_token); + if (!user) { + return res.status(401).json({ error: "Login-Challenge abgelaufen" }); + } + + const options = await beginAuthentication(user); + res.json(options); + } catch (err) { + next(err); + } + } +); + +router.post( + "/login/webauthn/verify", + validate(webauthnFinishSchema.extend({ login_token: loginSecondFactorSchema.shape.login_token })), + async (req, res, next) => { + try { + const user = await userByLoginToken(req.body.login_token); + if (!user) { + return res.status(401).json({ error: "Login-Challenge abgelaufen" }); + } + + await finishAuthentication(user, req.body.credential); + + const result = await finalizeSecondFactor({ + loginToken: req.body.login_token, + ipAddress: req.ip, + }); + + setRefreshCookie(res, result.refreshToken); + + res.json({ + accessToken: result.accessToken, + user: result.user, + }); + } catch (err) { + next(err); + } + } +); + +router.post("/refresh", async (req, res, next) => { + try { + const token = req.cookies?.refresh_token; + + if (!token) { + return res.status(401).json({ error: "Kein Refresh-Token" }); + } + + const result = await refresh(token, req.ip); + + setRefreshCookie(res, result.refreshToken); + + res.json({ + accessToken: result.accessToken, + user: result.user, + }); + } catch (err) { + clearRefreshCookie(res); + next(err); + } +}); + +router.post( + "/register", + authenticate, + requirePermission("system.users", ["admin"]), + validate(registerSchema), + async (req, res, next) => { + try { + const user = await register(req.body, req.user.sub, req.ip); + res.status(201).json(user); + } catch (err) { + next(err); + } + } +); + +router.post("/mfa/totp/setup", authenticate, async (req, res, next) => { + try { + const setup = await startTotpEnrollment({ + id: req.user.sub, + email: req.user.email || "user@example.local", + }); + res.json(setup); + } catch (err) { + next(err); + } +}); + +router.post("/mfa/totp/verify", authenticate, validate(totpVerifySchema), async (req, res, next) => { + try { + const result = await verifyTotpEnrollment( + { id: req.user.sub, email: req.user.email || "user@example.local" }, + req.body.token + ); + + await writeAudit({ + actorId: req.user.sub, + action: "MFA_TOTP_ENROLLED", + entityType: "user", + entityId: req.user.sub, + ipAddress: req.ip, + }); + + res.json(result); + } catch (err) { + next(err); + } +}); + +router.post("/mfa/webauthn/register/options", authenticate, async (req, res, next) => { + try { + const user = { + id: req.user.sub, + email: req.user.email || `user-${req.user.sub}@local`, + full_name: req.user.email || `User ${req.user.sub}`, + }; + + const options = await beginRegistration(user); + res.json(options); + } catch (err) { + next(err); + } +}); + +router.post( + "/mfa/webauthn/register/verify", + authenticate, + validate(webauthnFinishSchema), + async (req, res, next) => { + try { + const user = { id: req.user.sub }; + const result = await finishRegistration(user, req.body.credential); + + await writeAudit({ + actorId: req.user.sub, + action: "WEBAUTHN_REGISTERED", + entityType: "user", + entityId: req.user.sub, + ipAddress: req.ip, + }); + + res.json(result); + } catch (err) { + next(err); + } + } +); + +router.post("/logout", async (req, res) => { + clearRefreshCookie(res); + res.json({ ok: true }); +}); + +export default router; diff --git a/backend/src/modules/auth/schemas.js b/backend/src/modules/auth/schemas.js new file mode 100644 index 0000000..082b7db --- /dev/null +++ b/backend/src/modules/auth/schemas.js @@ -0,0 +1,27 @@ +import { z } from "zod"; + +export const loginSchema = z.object({ + email: z.string().email(), + password: z.string().min(8), +}); + +export const registerSchema = z.object({ + full_name: z.string().min(2).max(120), + email: z.string().email(), + password: z.string().min(12), + role: z.enum(["admin", "chair", "member", "secretary", "advisor"]), + committee_id: z.number().int().nullable().optional(), +}); + +export const loginSecondFactorSchema = z.object({ + login_token: z.string().min(10), + totp_code: z.string().regex(/^\d{6}$/).optional(), +}); + +export const totpVerifySchema = z.object({ + token: z.string().regex(/^\d{6}$/), +}); + +export const webauthnFinishSchema = z.object({ + credential: z.any(), +}); diff --git a/backend/src/modules/auth/service.js b/backend/src/modules/auth/service.js new file mode 100644 index 0000000..84305f4 --- /dev/null +++ b/backend/src/modules/auth/service.js @@ -0,0 +1,165 @@ +import argon2 from "argon2"; +import crypto from "crypto"; +import { query } from "../../config/db.js"; +import { signAccessToken, signRefreshToken, verifyRefreshToken } from "../../utils/jwt.js"; +import { writeAudit } from "../../utils/audit.js"; +import { env } from "../../config/env.js"; +import { verifyTotpCode } from "../../services/totp.js"; +import { getUserAccess } from "../../services/accessControl.js"; + +function makeLoginToken() { + return crypto.randomBytes(24).toString("hex"); +} + +function needsSecondFactor(user, webauthnCount) { + const privileged = ["admin", "chair", "secretary"].includes(user.role); + return Boolean(user.two_factor_enabled || webauthnCount > 0 || (env.forceMfaForPrivileged && privileged)); +} + +export async function login({ email, password, ipAddress }) { + const result = await query( + `SELECT id, full_name, email, password_hash, role, committee_id, is_active, two_factor_enabled + FROM app_user + WHERE email = $1`, + [email] + ); + const user = result.rows[0]; + if (!user || !user.is_active) throw Object.assign(new Error("Login fehlgeschlagen"), { status: 401, publicMessage: "Login fehlgeschlagen" }); + + const ok = await argon2.verify(user.password_hash, password); + if (!ok) { + await writeAudit({ actorId: user.id, action: "LOGIN_FAILED", entityType: "user", entityId: user.id, ipAddress }); + throw Object.assign(new Error("Login fehlgeschlagen"), { status: 401, publicMessage: "Login fehlgeschlagen" }); + } + + const credCount = await query(`SELECT COUNT(*)::int AS count FROM webauthn_credential WHERE user_id = $1 AND revoked_at IS NULL`, [user.id]); + console.log("MFA_DEBUG", { + email: user.email, + role: user.role, + two_factor_enabled: user.two_factor_enabled, + webauthnCount: credCount.rows[0].count, + forceMfaForPrivileged: env.forceMfaForPrivileged, + privileged: ["admin", "chair", "secretary"].includes(user.role), +}); + if (needsSecondFactor(user, credCount.rows[0].count)) { + const loginToken = makeLoginToken(); + await query( + `INSERT INTO auth_challenge(user_id, challenge_type, challenge_value, expires_at, metadata) + VALUES ($1, 'login', $2, NOW() + INTERVAL '10 minutes', $3)`, + [user.id, loginToken, JSON.stringify({ ipAddress })] + ); + await writeAudit({ actorId: user.id, action: "LOGIN_PASSWORD_OK_MFA_PENDING", entityType: "user", entityId: user.id, ipAddress }); + return { + mfaRequired: true, + loginToken, + userHint: { + id: user.id, + full_name: user.full_name, + email: user.email, + role: user.role, + committee_id: user.committee_id, + }, + }; + } + + const accessToken = signAccessToken({ ...user, mfa_verified: true, amr: ["pwd"] }); + const refreshToken = signRefreshToken({ ...user, mfa_verified: true }); + await storeRefresh(user.id, refreshToken); + await writeAudit({ actorId: user.id, action: "LOGIN_SUCCESS", entityType: "user", entityId: user.id, ipAddress }); + const access = await getUserAccess(user.id, user.role); + return { + accessToken, + refreshToken, + user: { id: user.id, full_name: user.full_name, email: user.email, role: user.role, committee_id: user.committee_id, mfa_verified: true, ...access } + }; +} + +async function storeRefresh(userId, refreshToken) { + await query( + `INSERT INTO refresh_token(user_id, token_hash, expires_at) + VALUES ($1, crypt($2, gen_salt('bf')), NOW() + INTERVAL '7 days')`, + [userId, refreshToken] + ); +} + +export async function finalizeSecondFactor({ loginToken, totpCode, ipAddress }) { + const pending = await query( + `SELECT ac.id, ac.user_id, u.full_name, u.email, u.role, u.committee_id, u.is_active + FROM auth_challenge ac + JOIN app_user u ON u.id = ac.user_id + WHERE ac.challenge_type = 'login' AND ac.challenge_value = $1 AND ac.used_at IS NULL AND ac.expires_at > NOW() + ORDER BY ac.created_at DESC LIMIT 1`, + [loginToken] + ); + const row = pending.rows[0]; + if (!row || !row.is_active) throw Object.assign(new Error("MFA-Login ungültig"), { status: 401, publicMessage: "MFA-Login ungültig" }); + + if (totpCode) { + const ok = await verifyTotpCode(row, totpCode); + if (!ok) { + await writeAudit({ actorId: row.user_id, action: "MFA_TOTP_FAILED", entityType: "user", entityId: row.user_id, ipAddress }); + throw Object.assign(new Error("Ungültiger TOTP-Code"), { status: 401, publicMessage: "Ungültiger TOTP-Code" }); + } + } + + await query(`UPDATE auth_challenge SET used_at = NOW() WHERE id = $1`, [row.id]); + + const accessToken = signAccessToken({ + id: row.user_id, + role: row.role, + committee_id: row.committee_id, + mfa_verified: true, + amr: totpCode ? ["pwd", "otp"] : ["pwd", "hwk"], + }); + const refreshToken = signRefreshToken({ id: row.user_id, mfa_verified: true }); + await storeRefresh(row.user_id, refreshToken); + await writeAudit({ actorId: row.user_id, action: "LOGIN_SUCCESS_MFA", entityType: "user", entityId: row.user_id, ipAddress }); + const access = await getUserAccess(row.user_id, row.role); + + return { + accessToken, + refreshToken, + user: { id: row.user_id, full_name: row.full_name, email: row.email, role: row.role, committee_id: row.committee_id, mfa_verified: true, ...access } + }; +} + +export async function register(payload, actorId, ipAddress) { + const hash = await argon2.hash(payload.password); + const result = await query( + `INSERT INTO app_user(full_name, email, password_hash, role, committee_id, is_active) + VALUES ($1,$2,$3,$4,$5,TRUE) + RETURNING id, full_name, email, role, committee_id, is_active`, + [payload.full_name, payload.email, hash, payload.role, payload.committee_id ?? null] + ); + const user = result.rows[0]; + await writeAudit({ actorId, action: "USER_CREATED", entityType: "user", entityId: user.id, metadata: { role: user.role }, ipAddress }); + return user; +} + +export async function refresh(oldToken, ipAddress) { + const payload = verifyRefreshToken(oldToken); + const userResult = await query( + `SELECT id, full_name, email, role, committee_id, is_active, true AS mfa_verified FROM app_user WHERE id = $1`, + [payload.sub] + ); + const user = userResult.rows[0]; + if (!user || !user.is_active) throw Object.assign(new Error("Refresh fehlgeschlagen"), { status: 401, publicMessage: "Refresh fehlgeschlagen" }); + + const accessToken = signAccessToken(user); + const refreshToken = signRefreshToken(user); + const access = await getUserAccess(user.id, user.role); + await writeAudit({ actorId: user.id, action: "TOKEN_REFRESH", entityType: "user", entityId: user.id, ipAddress }); + return { accessToken, refreshToken, user: { ...user, ...access } }; +} + +export async function userByLoginToken(loginToken) { + const result = await query( + `SELECT u.id, u.full_name, u.email, u.role, u.committee_id + FROM auth_challenge ac + JOIN app_user u ON u.id = ac.user_id + WHERE ac.challenge_type = 'login' AND ac.challenge_value = $1 AND ac.used_at IS NULL AND ac.expires_at > NOW() + ORDER BY ac.created_at DESC LIMIT 1`, + [loginToken] + ); + return result.rows[0] || null; +} diff --git a/backend/src/modules/calendar/ics.js b/backend/src/modules/calendar/ics.js new file mode 100644 index 0000000..ae7afa5 --- /dev/null +++ b/backend/src/modules/calendar/ics.js @@ -0,0 +1,244 @@ +import crypto from "crypto"; + +function pad(value) { + return String(value).padStart(2, "0"); +} + +function escapeText(value = "") { + return String(value) + .replace(/\\/g, "\\\\") + .replace(/\n/g, "\\n") + .replace(/,/g, "\\,") + .replace(/;/g, "\\;"); +} + +function unescapeText(value = "") { + return String(value) + .replace(/\\n/g, "\n") + .replace(/\\,/g, ",") + .replace(/\\;/g, ";") + .replace(/\\\\/g, "\\"); +} + +function foldLine(line) { + if (line.length <= 73) return line; + const parts = []; + for (let i = 0; i < line.length; i += 73) { + parts.push(i === 0 ? line.slice(i, i + 73) : ` ${line.slice(i, i + 73)}`); + } + return parts.join("\r\n"); +} + +function formatDateUtc(date) { + const d = new Date(date); + return `${d.getUTCFullYear()}${pad(d.getUTCMonth() + 1)}${pad(d.getUTCDate())}`; +} + +function formatDateTimeUtc(date) { + const d = new Date(date); + return `${d.getUTCFullYear()}${pad(d.getUTCMonth() + 1)}${pad(d.getUTCDate())}T${pad(d.getUTCHours())}${pad(d.getUTCMinutes())}${pad(d.getUTCSeconds())}Z`; +} + +export function buildIcsCalendar(events, { name = "BR-Office Kalender" } = {}) { + const lines = [ + "BEGIN:VCALENDAR", + "VERSION:2.0", + "PRODID:-//BR-Office//Kalender//DE", + "CALSCALE:GREGORIAN", + "METHOD:PUBLISH", + foldLine(`X-WR-CALNAME:${escapeText(name)}`), + ]; + + for (const event of events) { + const uid = event.ical_uid || `${event.event_type || "calendar"}-${event.id || crypto.randomUUID()}@br-office.local`; + const createdAt = event.created_at || event.updated_at || event.starts_at || new Date().toISOString(); + const updatedAt = event.updated_at || event.created_at || event.starts_at || new Date().toISOString(); + const descriptionParts = []; + + if (event.description) descriptionParts.push(event.description); + if (event.reference) descriptionParts.push(`Referenz: ${event.reference}`); + if (event.committee_name) descriptionParts.push(`Ausschuss: ${event.committee_name}`); + if (event.primary_user_name) descriptionParts.push(`Verantwortlich: ${event.primary_user_name}`); + + lines.push("BEGIN:VEVENT"); + lines.push(`UID:${escapeText(uid)}`); + lines.push(`DTSTAMP:${formatDateTimeUtc(updatedAt)}`); + + if (event.all_day) { + lines.push(`DTSTART;VALUE=DATE:${formatDateUtc(event.starts_at)}`); + const endSource = event.ends_at || event.starts_at; + const endDate = new Date(endSource); + endDate.setUTCDate(endDate.getUTCDate() + 1); + lines.push(`DTEND;VALUE=DATE:${formatDateUtc(endDate)}`); + } else { + lines.push(`DTSTART:${formatDateTimeUtc(event.starts_at)}`); + if (event.ends_at) lines.push(`DTEND:${formatDateTimeUtc(event.ends_at)}`); + } + + lines.push(foldLine(`SUMMARY:${escapeText(event.title || "Termin")}`)); + if (event.location) lines.push(foldLine(`LOCATION:${escapeText(event.location)}`)); + if (descriptionParts.length) lines.push(foldLine(`DESCRIPTION:${escapeText(descriptionParts.join("\n"))}`)); + if (event.status) lines.push(`STATUS:${String(event.status).toUpperCase()}`); + if (event.priority) lines.push(foldLine(`CATEGORIES:${escapeText(String(event.priority))}`)); + lines.push("END:VEVENT"); + } + + lines.push("END:VCALENDAR"); + return `${lines.join("\r\n")}\r\n`; +} + +function parseLine(line) { + const colonIndex = line.indexOf(":"); + if (colonIndex === -1) return null; + const left = line.slice(0, colonIndex); + const value = line.slice(colonIndex + 1); + const [rawName, ...paramParts] = left.split(";"); + const params = {}; + + for (const part of paramParts) { + const [key, rawVal = ""] = part.split("="); + params[key.toUpperCase()] = rawVal; + } + + return { + name: rawName.toUpperCase(), + params, + value, + }; +} + +function parseDateValue(value, params = {}) { + if (!value) return { iso: null, allDay: false }; + + if (params.VALUE === "DATE" || /^\d{8}$/.test(value)) { + const year = Number(value.slice(0, 4)); + const month = Number(value.slice(4, 6)) - 1; + const day = Number(value.slice(6, 8)); + const d = new Date(Date.UTC(year, month, day, 0, 0, 0)); + return { iso: d.toISOString(), allDay: true }; + } + + const match = value.match(/^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})?(Z)?$/); + if (!match) return { iso: null, allDay: false }; + + const [, y, mo, d, h, mi, s = "00", z] = match; + if (z === "Z") { + return { + iso: new Date(Date.UTC(Number(y), Number(mo) - 1, Number(d), Number(h), Number(mi), Number(s))).toISOString(), + allDay: false, + }; + } + + return { + iso: `${y}-${mo}-${d}T${h}:${mi}:${s}`, + allDay: false, + }; +} + +export function parseIcsCalendar(icsText) { + const unfolded = String(icsText || "") + .replace(/\r\n[ \t]/g, "") + .replace(/\n[ \t]/g, ""); + + const lines = unfolded.split(/\r?\n/).filter(Boolean); + const events = []; + let calendarName = ""; + let current = null; + + for (const rawLine of lines) { + if (rawLine === "BEGIN:VEVENT") { + current = {}; + continue; + } + if (rawLine === "END:VEVENT") { + if (current) events.push(current); + current = null; + continue; + } + + const parsed = parseLine(rawLine); + if (!parsed) continue; + + if (!current && parsed.name === "X-WR-CALNAME") { + calendarName = unescapeText(parsed.value); + continue; + } + + if (!current) continue; + + switch (parsed.name) { + case "UID": + current.uid = unescapeText(parsed.value); + break; + case "SUMMARY": + current.title = unescapeText(parsed.value); + break; + case "DESCRIPTION": + current.description = unescapeText(parsed.value); + break; + case "LOCATION": + current.location = unescapeText(parsed.value); + break; + case "STATUS": + current.status = unescapeText(parsed.value).toLowerCase(); + break; + case "PRIORITY": + current.priority = unescapeText(parsed.value); + break; + case "DTSTART": { + const parsedDate = parseDateValue(parsed.value, parsed.params); + current.starts_at = parsedDate.iso; + if (parsedDate.allDay) current.all_day = true; + break; + } + case "DTEND": { + const parsedDate = parseDateValue(parsed.value, parsed.params); + current.ends_at = parsedDate.iso; + if (parsedDate.allDay) current.all_day = true; + break; + } + default: + break; + } + } + + return { calendarName, events }; +} + +function normalizePriority(priority) { + const raw = String(priority ?? "").trim().toLowerCase(); + if (!raw) return "mittel"; + if (["1", "2", "3", "hoch", "high", "sehr_hoch", "urgent"].includes(raw)) return "hoch"; + if (["7", "8", "9", "niedrig", "low"].includes(raw)) return "niedrig"; + return "mittel"; +} + +function normalizeStatus(status) { + const raw = String(status ?? "").trim().toLowerCase(); + if (!raw) return "geplant"; + if (["cancelled", "abgesagt", "canceled"].includes(raw)) return "abgesagt"; + if (["tentative", "vorbehaltlich"].includes(raw)) return "vorbehaltlich"; + if (["completed", "done", "erledigt"].includes(raw)) return "erledigt"; + return "geplant"; +} + +export function normalizeImportedEvent(rawEvent, defaults = {}) { + const uidBase = rawEvent.uid || `${rawEvent.title || "Termin"}|${rawEvent.starts_at || ""}|${rawEvent.location || ""}`; + return { + source_uid: rawEvent.uid || crypto.createHash("sha1").update(uidBase).digest("hex"), + title: rawEvent.title || "Importierter Termin", + description: rawEvent.description || null, + starts_at: rawEvent.starts_at, + ends_at: rawEvent.ends_at || null, + all_day: Boolean(rawEvent.all_day), + location: rawEvent.location || null, + status: normalizeStatus(rawEvent.status), + priority: normalizePriority(rawEvent.priority), + visibility: defaults.visibility || "intern", + committee_id: defaults.committee_id ?? null, + owner_user_id: defaults.owner_user_id ?? null, + source_name: defaults.source_name || null, + event_kind: defaults.event_kind || "imported", + source_type: defaults.source_type || "ical", + }; +} diff --git a/backend/src/modules/calendar/routes.js b/backend/src/modules/calendar/routes.js new file mode 100644 index 0000000..002b220 --- /dev/null +++ b/backend/src/modules/calendar/routes.js @@ -0,0 +1,759 @@ +import express from "express"; +import { z } from "zod"; +import { authenticate, requireMfa } from "../../middleware/auth.js"; +import { requirePermission, requireRoles } from "../../middleware/rbac.js"; +import { validate } from "../../middleware/validate.js"; +import { withDbSession } from "../../config/db.js"; +import { writeAudit } from "../../utils/audit.js"; +import { upload } from "../../middleware/upload.js"; +import { buildIcsCalendar, normalizeImportedEvent, parseIcsCalendar } from "./ics.js"; + +const router = express.Router(); +router.use(authenticate); + +const priorityEnum = z.enum(["sehr_hoch", "hoch", "mittel", "niedrig"]); +const visibilityEnum = z.enum(["intern", "vertraulich", "streng_vertraulich"]); + +const eventSchema = z.object({ + title: z.string().min(2).max(255), + description: z.string().max(8000).nullable().optional(), + starts_at: z.string().min(10), + ends_at: z.string().min(10).nullable().optional(), + all_day: z.boolean().optional().default(false), + location: z.string().max(255).nullable().optional(), + status: z.string().min(2).max(30).optional().default("geplant"), + priority: priorityEnum.optional().default("mittel"), + visibility: visibilityEnum.optional().default("intern"), + owner_user_id: z.number().int().positive().nullable().optional(), + committee_id: z.number().int().positive().nullable().optional(), + source_name: z.string().max(255).nullable().optional(), +}); + +const updateEventSchema = eventSchema.partial(); + +function normalizeRange(from, to) { + const start = from ? new Date(from) : new Date(); + const startIso = new Date(Date.UTC(start.getUTCFullYear(), start.getUTCMonth(), start.getUTCDate(), 0, 0, 0)).toISOString(); + const end = to ? new Date(to) : new Date(new Date(startIso).getTime() + 1000 * 60 * 60 * 24 * 31); + const endIso = new Date(Date.UTC(end.getUTCFullYear(), end.getUTCMonth(), end.getUTCDate(), 23, 59, 59)).toISOString(); + return { startIso, endIso }; +} + +function normalizeNullableText(value) { + if (value === undefined) return undefined; + if (value === null) return null; + const trimmed = String(value).trim(); + return trimmed ? trimmed : null; +} + +function normalizeNullableNumber(value) { + if (value === undefined) return undefined; + if (value === null || value === "") return null; + return Number(value); +} + +async function assertReference(db, table, id, publicMessage) { + if (id === undefined || id === null) return; + const result = await db.query(`SELECT id FROM ${table} WHERE id = $1 LIMIT 1`, [id]); + if (!result.rows[0]) { + throw Object.assign(new Error(publicMessage), { status: 400, publicMessage }); + } +} + +async function assertEventReferences(db, payload) { + await assertReference(db, "committee", payload.committee_id, "Ausschuss nicht gefunden"); + if (payload.owner_user_id !== undefined && payload.owner_user_id !== null) { + const result = await db.query(`SELECT id FROM app_user WHERE id = $1 AND is_active = TRUE`, [payload.owner_user_id]); + if (!result.rows[0]) { + throw Object.assign(new Error("Benutzer nicht gefunden"), { status: 400, publicMessage: "Benutzer nicht gefunden" }); + } + } +} + +function mapEventRow(row) { + return { + id: row.id, + event_type: row.event_type, + title: row.title, + reference: row.reference, + status: row.status, + event_date: row.event_date, + starts_at: row.starts_at, + ends_at: row.ends_at, + location: row.location, + committee_id: row.committee_id, + committee_name: row.committee_name, + owner_user_id: row.owner_user_id, + owner_name: row.owner_name, + primary_user_id: row.primary_user_id, + primary_user_name: row.primary_user_name, + secondary_user_id: row.secondary_user_id, + secondary_user_name: row.secondary_user_name, + priority: row.priority, + linked_case_number: row.linked_case_number, + description: row.description, + all_day: Boolean(row.all_day), + visibility: row.visibility, + source_type: row.source_type, + source_name: row.source_name, + editable: Boolean(row.editable), + created_at: row.created_at, + updated_at: row.updated_at, + ical_uid: row.ical_uid, + }; +} + +async function listEvents(db, { from, to, committeeId, userId }) { + const { startIso, endIso } = normalizeRange(from, to); + const params = [startIso, endIso]; + const push = (value) => { + params.push(value); + return `$${params.length}`; + }; + + let meetingWhere = `m.meeting_date::timestamptz BETWEEN $1 AND $2`; + let deadlineWhere = `d.due_date BETWEEN $1 AND $2`; + let taskWhere = `t.due_date IS NOT NULL AND t.due_date BETWEEN $1 AND $2`; + let calendarWhere = `e.deleted_at IS NULL AND e.starts_at <= $2 AND COALESCE(e.ends_at, e.starts_at) >= $1`; + + if (committeeId) { + const p = push(committeeId); + meetingWhere += ` AND m.committee_id = ${p}`; + deadlineWhere += ` AND c.committee_id = ${p}`; + taskWhere += ` AND COALESCE(tm.committee_id, tc.committee_id) = ${p}`; + calendarWhere += ` AND e.committee_id = ${p}`; + } + + if (userId) { + const p = push(userId); + meetingWhere += ` AND (m.chair_user_id = ${p} OR m.secretary_user_id = ${p})`; + deadlineWhere += ` AND c.owner_user_id = ${p}`; + taskWhere += ` AND (t.assigned_user_id = ${p} OR t.backup_user_id = ${p})`; + calendarWhere += ` AND e.owner_user_id = ${p}`; + } + + const [meetings, deadlines, tasks, calendarItems] = await Promise.all([ + db.query( + `SELECT m.id, + 'meeting' AS event_type, + m.title, + m.meeting_number AS reference, + m.status, + m.meeting_date::text AS event_date, + (m.meeting_date::text || 'T' || COALESCE(m.start_time::text, '00:00:00'))::timestamptz AS starts_at, + CASE WHEN m.end_time IS NOT NULL THEN (m.meeting_date::text || 'T' || m.end_time::text)::timestamptz ELSE NULL END AS ends_at, + m.location, + m.committee_id, + c.name AS committee_name, + NULL::bigint AS owner_user_id, + NULL::text AS owner_name, + m.chair_user_id AS primary_user_id, + cu.full_name AS primary_user_name, + m.secretary_user_id AS secondary_user_id, + su.full_name AS secondary_user_name, + NULL::text AS priority, + NULL::text AS linked_case_number, + m.protocol_text AS description, + FALSE AS all_day, + 'intern'::text AS visibility, + 'meeting'::text AS source_type, + NULL::text AS source_name, + FALSE AS editable, + m.created_at, + m.updated_at, + ('meeting-' || m.id || '@br-office.local')::text AS ical_uid + FROM meeting m + LEFT JOIN committee c ON c.id = m.committee_id + LEFT JOIN app_user cu ON cu.id = m.chair_user_id + LEFT JOIN app_user su ON su.id = m.secretary_user_id + WHERE ${meetingWhere}`, + params + ), + db.query( + `SELECT d.id, + 'deadline' AS event_type, + d.title, + d.deadline_type AS reference, + d.status, + d.due_date::date::text AS event_date, + d.due_date AS starts_at, + NULL::timestamptz AS ends_at, + NULL::text AS location, + c.committee_id, + cm.name AS committee_name, + c.owner_user_id AS owner_user_id, + ou.full_name AS owner_name, + c.owner_user_id AS primary_user_id, + ou.full_name AS primary_user_name, + NULL::bigint AS secondary_user_id, + NULL::text AS secondary_user_name, + NULL::text AS priority, + c.case_number AS linked_case_number, + NULL::text AS description, + FALSE AS all_day, + 'intern'::text AS visibility, + 'deadline'::text AS source_type, + NULL::text AS source_name, + FALSE AS editable, + d.created_at, + d.updated_at, + ('deadline-' || d.id || '@br-office.local')::text AS ical_uid + FROM deadline d + LEFT JOIN br_case c ON c.id = d.case_id + LEFT JOIN committee cm ON cm.id = c.committee_id + LEFT JOIN app_user ou ON ou.id = c.owner_user_id + WHERE d.deleted_at IS NULL + AND ${deadlineWhere}`, + params + ), + db.query( + `SELECT t.id, + 'task' AS event_type, + t.title, + COALESCE(dc.decision_number, mc.meeting_number, bc.case_number, 'Aufgabe') AS reference, + t.status, + t.due_date::date::text AS event_date, + t.due_date AS starts_at, + NULL::timestamptz AS ends_at, + NULL::text AS location, + COALESCE(tm.committee_id, tc.committee_id) AS committee_id, + cm.name AS committee_name, + t.assigned_user_id AS owner_user_id, + au.full_name AS owner_name, + t.assigned_user_id AS primary_user_id, + au.full_name AS primary_user_name, + t.backup_user_id AS secondary_user_id, + bu.full_name AS secondary_user_name, + t.priority, + bc.case_number AS linked_case_number, + t.description, + FALSE AS all_day, + t.confidentiality_level::text AS visibility, + 'task'::text AS source_type, + NULL::text AS source_name, + FALSE AS editable, + t.created_at, + t.updated_at, + ('task-' || t.id || '@br-office.local')::text AS ical_uid + FROM task t + LEFT JOIN meeting tm ON tm.id = t.meeting_id + LEFT JOIN br_case tc ON tc.id = t.case_id + LEFT JOIN decision dc ON dc.id = t.decision_id + LEFT JOIN meeting mc ON mc.id = t.meeting_id + LEFT JOIN br_case bc ON bc.id = t.case_id + LEFT JOIN committee cm ON cm.id = COALESCE(tm.committee_id, tc.committee_id) + LEFT JOIN app_user au ON au.id = t.assigned_user_id + LEFT JOIN app_user bu ON bu.id = t.backup_user_id + WHERE t.deleted_at IS NULL + AND ${taskWhere}`, + params + ), + db.query( + `SELECT e.id, + 'calendar' AS event_type, + e.title, + COALESCE(e.source_name, CASE WHEN e.source_type = 'manual' THEN 'Eigener Termin' ELSE INITCAP(e.source_type) END) AS reference, + e.status, + e.starts_at::date::text AS event_date, + e.starts_at, + e.ends_at, + e.location, + e.committee_id, + c.name AS committee_name, + e.owner_user_id, + u.full_name AS owner_name, + e.owner_user_id AS primary_user_id, + u.full_name AS primary_user_name, + NULL::bigint AS secondary_user_id, + NULL::text AS secondary_user_name, + e.priority, + NULL::text AS linked_case_number, + e.description, + e.all_day, + e.visibility::text AS visibility, + e.source_type, + e.source_name, + TRUE AS editable, + e.created_at, + e.updated_at, + COALESCE(e.source_uid, ('calendar-' || e.id || '@br-office.local'))::text AS ical_uid + FROM calendar_event e + LEFT JOIN committee c ON c.id = e.committee_id + LEFT JOIN app_user u ON u.id = e.owner_user_id + WHERE ${calendarWhere}`, + params + ), + ]); + + return [...meetings.rows, ...deadlines.rows, ...tasks.rows, ...calendarItems.rows] + .map(mapEventRow) + .sort((a, b) => new Date(a.starts_at).getTime() - new Date(b.starts_at).getTime()); +} + +async function fetchTrustedProviderIcs(url, provider) { + const parsed = new URL(url); + if (parsed.protocol !== "https:") { + throw Object.assign(new Error("Nur HTTPS-URLs sind erlaubt"), { status: 400, publicMessage: "Nur HTTPS-URLs sind erlaubt" }); + } + + const hostname = parsed.hostname.toLowerCase(); + const allowed = provider === "google" + ? /(google|gmail|calendar)/i.test(hostname) + : /(outlook|office|live|microsoft)/i.test(hostname); + + if (!allowed) { + throw Object.assign(new Error("URL passt nicht zum Anbieter"), { status: 400, publicMessage: "URL passt nicht zum Anbieter" }); + } + + const response = await fetch(url, { method: "GET" }); + if (!response.ok) { + throw Object.assign(new Error(`Abruf fehlgeschlagen: ${response.status}`), { status: 400, publicMessage: `Abruf fehlgeschlagen: ${response.status}` }); + } + + return response.text(); +} + +async function importParsedCalendar(db, parsed, options) { + const stats = { imported: 0, updated: 0, skipped: 0, calendarName: parsed.calendarName || options.source_name || null }; + + for (const rawEvent of parsed.events) { + const event = normalizeImportedEvent(rawEvent, { + ...options, + source_name: options.source_name || parsed.calendarName || options.source_type?.toUpperCase(), + }); + + if (!event.title || !event.starts_at) { + stats.skipped += 1; + continue; + } + + const existing = await db.query( + `SELECT id + FROM calendar_event + WHERE source_type = $1 + AND source_uid = $2 + AND owner_user_id IS NOT DISTINCT FROM $3 + AND committee_id IS NOT DISTINCT FROM $4 + AND deleted_at IS NULL + LIMIT 1`, + [event.source_type, event.source_uid, event.owner_user_id, event.committee_id] + ); + + if (existing.rows[0]) { + await db.query( + `UPDATE calendar_event + SET title = $1, + description = $2, + starts_at = $3, + ends_at = $4, + all_day = $5, + location = $6, + status = $7, + priority = $8, + visibility = $9, + source_name = $10, + updated_by = $11, + updated_at = NOW() + WHERE id = $12`, + [ + event.title, + event.description, + event.starts_at, + event.ends_at, + event.all_day, + event.location, + event.status, + event.priority, + event.visibility, + event.source_name, + options.actorId, + existing.rows[0].id, + ] + ); + stats.updated += 1; + } else { + await db.query( + `INSERT INTO calendar_event( + title, + description, + event_kind, + source_type, + source_uid, + source_name, + starts_at, + ends_at, + all_day, + location, + status, + priority, + visibility, + owner_user_id, + committee_id, + created_by, + updated_by + ) VALUES ( + $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$16 + )`, + [ + event.title, + event.description, + event.event_kind, + event.source_type, + event.source_uid, + event.source_name, + event.starts_at, + event.ends_at, + event.all_day, + event.location, + event.status, + event.priority, + event.visibility, + event.owner_user_id, + event.committee_id, + options.actorId, + ] + ); + stats.imported += 1; + } + } + + return stats; +} + +router.get("/meta", async (req, res, next) => { + try { + const data = await withDbSession(req.user, async (db) => { + const [users, committees] = await Promise.all([ + db.query(`SELECT id, full_name, email, committee_id FROM app_user WHERE is_active = TRUE ORDER BY full_name`), + db.query(`SELECT id, name FROM committee ORDER BY name`), + ]); + return { + users: users.rows, + committees: committees.rows, + currentUser: { id: req.user.sub, role: req.user.role, committee_id: req.user.committee_id ?? null }, + }; + }); + res.json(data); + } catch (err) { + next(err); + } +}); + +router.get("/events", async (req, res, next) => { + try { + const data = await withDbSession(req.user, (db) => + listEvents(db, { + from: req.query.from, + to: req.query.to, + committeeId: req.query.committee_id ? Number(req.query.committee_id) : null, + userId: req.query.user_id ? Number(req.query.user_id) : null, + }) + ); + res.json(data); + } catch (err) { + next(err); + } +}); + +router.post( + "/events", + requireMfa, + requirePermission("calendar.write", ["admin", "chair", "secretary", "member", "advisor"]), + validate(eventSchema), + async (req, res, next) => { + try { + const payload = { + ...req.body, + description: normalizeNullableText(req.body.description), + location: normalizeNullableText(req.body.location), + source_name: normalizeNullableText(req.body.source_name), + owner_user_id: normalizeNullableNumber(req.body.owner_user_id) ?? req.user.sub, + committee_id: normalizeNullableNumber(req.body.committee_id), + }; + + const row = await withDbSession(req.user, async (db) => { + await assertEventReferences(db, payload); + const result = await db.query( + `INSERT INTO calendar_event( + title, + description, + event_kind, + source_type, + source_name, + starts_at, + ends_at, + all_day, + location, + status, + priority, + visibility, + owner_user_id, + committee_id, + created_by, + updated_by + ) VALUES ( + $1,$2,'personal','manual',$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$13 + ) RETURNING id`, + [ + payload.title, + payload.description, + payload.source_name, + payload.starts_at, + payload.ends_at || null, + Boolean(payload.all_day), + payload.location, + payload.status || "geplant", + payload.priority || "mittel", + payload.visibility || "intern", + payload.owner_user_id, + payload.committee_id, + req.user.sub, + ] + ); + const items = await listEvents(db, { from: payload.starts_at, to: payload.ends_at || payload.starts_at }); + return items.find((item) => item.event_type === "calendar" && Number(item.id) === Number(result.rows[0].id)); + }); + + await writeAudit({ + actorId: req.user.sub, + action: "CALENDAR_EVENT_CREATED", + entityType: "calendar_event", + entityId: row.id, + ipAddress: req.ip, + metadata: { payload }, + }); + + res.status(201).json(row); + } catch (err) { + next(err); + } + } +); + +router.put( + "/events/:id", + requireMfa, + requirePermission("calendar.write", ["admin", "chair", "secretary", "member", "advisor"]), + validate(updateEventSchema), + async (req, res, next) => { + try { + const payload = { + ...req.body, + description: normalizeNullableText(req.body.description), + location: normalizeNullableText(req.body.location), + source_name: normalizeNullableText(req.body.source_name), + owner_user_id: normalizeNullableNumber(req.body.owner_user_id), + committee_id: normalizeNullableNumber(req.body.committee_id), + }; + + const row = await withDbSession(req.user, async (db) => { + const existing = await db.query(`SELECT * FROM calendar_event WHERE id = $1 AND deleted_at IS NULL`, [req.params.id]); + if (!existing.rows[0]) return null; + + await assertEventReferences(db, payload); + + const fields = []; + const values = []; + let idx = 1; + const push = (column, value) => { + fields.push(`${column} = $${idx}`); + values.push(value); + idx += 1; + }; + + [ + ["title", payload.title], + ["description", payload.description], + ["starts_at", payload.starts_at], + ["ends_at", payload.ends_at], + ["all_day", payload.all_day], + ["location", payload.location], + ["status", payload.status], + ["priority", payload.priority], + ["visibility", payload.visibility], + ["owner_user_id", payload.owner_user_id], + ["committee_id", payload.committee_id], + ["source_name", payload.source_name], + ].forEach(([column, value]) => { + if (value !== undefined) push(column, value); + }); + + if (!fields.length) { + throw Object.assign(new Error("Keine Felder zum Aktualisieren"), { status: 400, publicMessage: "Keine Felder zum Aktualisieren" }); + } + + push("updated_by", req.user.sub); + fields.push(`updated_at = NOW()`); + values.push(req.params.id); + + await db.query(`UPDATE calendar_event SET ${fields.join(", ")} WHERE id = $${idx}`, values); + const items = await listEvents(db, { + from: payload.starts_at || existing.rows[0].starts_at, + to: payload.ends_at || existing.rows[0].ends_at || payload.starts_at || existing.rows[0].starts_at, + }); + return items.find((item) => item.event_type === "calendar" && Number(item.id) === Number(req.params.id)); + }); + + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "CALENDAR_EVENT_UPDATED", + entityType: "calendar_event", + entityId: row.id, + ipAddress: req.ip, + metadata: { changes: payload }, + }); + + res.json(row); + } catch (err) { + next(err); + } + } +); + +router.delete( + "/events/:id", + requireMfa, + requirePermission("calendar.write", ["admin", "chair", "secretary", "member", "advisor"]), + async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const existing = await db.query(`SELECT id, title FROM calendar_event WHERE id = $1 AND deleted_at IS NULL`, [req.params.id]); + if (!existing.rows[0]) return null; + await db.query(`UPDATE calendar_event SET deleted_at = NOW(), updated_by = $2, updated_at = NOW() WHERE id = $1`, [req.params.id, req.user.sub]); + return existing.rows[0]; + }); + + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "CALENDAR_EVENT_DELETED", + entityType: "calendar_event", + entityId: row.id, + ipAddress: req.ip, + }); + + res.json({ ok: true, row }); + } catch (err) { + next(err); + } + } +); + +router.get("/export.ics", async (req, res, next) => { + try { + const events = await withDbSession(req.user, (db) => + listEvents(db, { + from: req.query.from, + to: req.query.to, + committeeId: req.query.committee_id ? Number(req.query.committee_id) : null, + userId: req.query.user_id ? Number(req.query.user_id) : null, + }) + ); + + const ics = buildIcsCalendar(events, { name: "BR-Office Kalender" }); + res.setHeader("Content-Type", "text/calendar; charset=utf-8"); + res.setHeader("Content-Disposition", 'attachment; filename="br-office-calendar.ics"'); + res.send(ics); + } catch (err) { + next(err); + } +}); + +router.post( + "/import/ics", + requireMfa, + requirePermission("calendar.write", ["admin", "chair", "secretary", "member", "advisor"]), + upload.single("file"), + async (req, res, next) => { + try { + const rawText = req.file?.buffer?.toString("utf8") || req.body?.ics || ""; + if (!rawText.trim()) { + return res.status(400).json({ error: "ICS-Datei oder ICS-Text fehlt" }); + } + + const ownerUserId = normalizeNullableNumber(req.body.owner_user_id) ?? req.user.sub; + const committeeId = normalizeNullableNumber(req.body.committee_id); + const sourceName = normalizeNullableText(req.body.source_name); + const visibility = req.body.visibility || "intern"; + + const result = await withDbSession(req.user, async (db) => { + await assertEventReferences(db, { owner_user_id: ownerUserId, committee_id: committeeId }); + const parsed = parseIcsCalendar(rawText); + return importParsedCalendar(db, parsed, { + actorId: req.user.sub, + owner_user_id: ownerUserId, + committee_id: committeeId, + source_name: sourceName, + visibility, + event_kind: "imported", + source_type: "ical", + }); + }); + + await writeAudit({ + actorId: req.user.sub, + action: "CALENDAR_ICS_IMPORTED", + entityType: "calendar_event", + entityId: null, + ipAddress: req.ip, + metadata: result, + }); + + res.status(201).json(result); + } catch (err) { + next(err); + } + } +); + +for (const provider of ["outlook", "google"]) { + router.post( + `/sync/${provider}`, + requireMfa, + requirePermission("calendar.write", ["admin", "chair", "secretary", "member", "advisor"]), + async (req, res, next) => { + try { + if (!req.body?.url) return res.status(400).json({ error: "URL fehlt" }); + + const ownerUserId = normalizeNullableNumber(req.body.owner_user_id) ?? req.user.sub; + const committeeId = normalizeNullableNumber(req.body.committee_id); + const sourceName = normalizeNullableText(req.body.source_name) || provider; + const visibility = req.body.visibility || "intern"; + + const rawText = await fetchTrustedProviderIcs(req.body.url, provider); + + const result = await withDbSession(req.user, async (db) => { + await assertEventReferences(db, { owner_user_id: ownerUserId, committee_id: committeeId }); + const parsed = parseIcsCalendar(rawText); + return importParsedCalendar(db, parsed, { + actorId: req.user.sub, + owner_user_id: ownerUserId, + committee_id: committeeId, + source_name: sourceName, + visibility, + event_kind: "synced", + source_type: provider, + }); + }); + + await writeAudit({ + actorId: req.user.sub, + action: `CALENDAR_${provider.toUpperCase()}_SYNC`, + entityType: "calendar_event", + entityId: null, + ipAddress: req.ip, + metadata: { ...result, sourceName, url: req.body.url }, + }); + + res.status(201).json(result); + } catch (err) { + next(err); + } + } + ); +} + +export default router; diff --git a/backend/src/modules/cases/routes.js b/backend/src/modules/cases/routes.js new file mode 100644 index 0000000..0fb4890 --- /dev/null +++ b/backend/src/modules/cases/routes.js @@ -0,0 +1,998 @@ +import express from "express"; +import crypto from "crypto"; +import { z } from "zod"; +import { authenticate, requireMfa } from "../../middleware/auth.js"; +import { requirePermission } from "../../middleware/rbac.js"; +import { validate } from "../../middleware/validate.js"; +import { withDbSession } from "../../config/db.js"; +import { writeAudit } from "../../utils/audit.js"; +import { upload } from "../../middleware/upload.js"; +import { scanBuffer } from "../../services/clamav.js"; +import { saveObject } from "../../services/storage.js"; +import { fileTypeFromBuffer } from "file-type"; +import { v4 as uuidv4 } from "uuid"; + +const router = express.Router(); +router.use(authenticate); + +const priorityEnum = z.enum(["sehr_hoch", "hoch", "mittel", "niedrig"]); +const confEnum = z.enum(["intern", "vertraulich", "streng_vertraulich"]); + +const createSchema = z.object({ + case_number: z.string().min(3).max(50).optional().nullable(), + title: z.string().min(3).max(255), + case_type_id: z.coerce.number().int().positive(), + status: z.string().min(2).max(50).default("neu"), + priority: priorityEnum.default("mittel"), + confidentiality_level: confEnum.default("intern"), + summary: z.string().max(8000).optional().nullable(), + affected_employee_name: z.string().max(120).optional().nullable(), + department: z.string().max(120).optional().nullable(), + committee_id: z.coerce.number().int().positive().nullable().optional(), + owner_user_id: z.coerce.number().int().positive().nullable().optional(), + legal_hold: z.boolean().optional().default(false), + team_role_ids: z.array(z.coerce.number().int().positive()).optional().default([]), +}); + +const updateSchema = z.object({ + title: z.string().min(3).max(255).optional(), + case_type_id: z.coerce.number().int().positive().optional(), + status: z.string().min(2).max(50).optional(), + priority: priorityEnum.optional(), + confidentiality_level: confEnum.optional(), + summary: z.string().max(8000).optional().nullable(), + affected_employee_name: z.string().max(120).optional().nullable(), + department: z.string().max(120).optional().nullable(), + committee_id: z.coerce.number().int().positive().nullable().optional(), + owner_user_id: z.coerce.number().int().positive().nullable().optional(), + legal_hold: z.boolean().optional(), + team_role_ids: z.array(z.coerce.number().int().positive()).optional(), +}); + +const addToAgendaSchema = z.object({ + meeting_id: z.coerce.number().int().positive(), + agenda_item_id: z.coerce.number().int().positive().optional().nullable(), + duration_minutes: z.coerce.number().int().min(0).max(600).optional().nullable(), +}); + +function normalizeNullableText(value) { + if (value === undefined) return undefined; + if (value === null) return null; + const trimmed = String(value).trim(); + return trimmed ? trimmed : null; +} + +function normalizeOptionalText(value) { + if (value === undefined) return undefined; + if (value === null) return null; + const trimmed = String(value).trim(); + return trimmed || null; +} + +function normalizeNullableNumber(value) { + if (value === undefined) return undefined; + if (value === null || value === "") return null; + return Number(value); +} + +function mapCaseRow(row) { + if (!row) return null; + return { + id: row.id, + case_number: row.case_number, + title: row.title, + case_type_id: row.case_type_id, + case_type: row.case_type, + status: row.status, + priority: row.priority, + confidentiality_level: row.confidentiality_level, + summary: row.summary, + affected_employee_name: row.affected_employee_name, + department: row.department, + department_label: row.department_label, + committee_id: row.committee_id, + committee_name: row.committee_name, + owner_user_id: row.owner_user_id, + owner_name: row.owner_name, + legal_hold: row.legal_hold, + attachment_count: row.attachment_count, + team_role_ids: Array.isArray(row.team_role_ids) ? row.team_role_ids.map(Number) : [], + created_at: row.created_at, + updated_at: row.updated_at, + }; +} + +function isMeetingOpen(row) { + if (!row) return false; + if (row.deleted_at) return false; + if (row.is_closed === true) return false; + if (row.closed === true) return false; + if (row.closed_at) return false; + + const status = String(row.status ?? "").trim().toLowerCase(); + if (["geschlossen", "closed", "archiviert", "archived", "beendet"].includes(status)) { + return false; + } + + return true; +} + +function mapMeetingMetaRow(row) { + return { + id: row.id, + meeting_number: row.meeting_number, + title: row.title, + meeting_date: row.meeting_date, + committee_id: row.committee_id, + status: row.status ?? null, + is_closed: row.is_closed ?? null, + closed: row.closed ?? null, + closed_at: row.closed_at ?? null, + }; +} + +function buildSafeStorageKey(originalname) { + const safeName = String(originalname || "datei") + .replace(/[^a-zA-Z0-9._-]/g, "_") + .replace(/_+/g, "_"); + return `${new Date().toISOString().slice(0, 10)}/${uuidv4()}-${safeName}`; +} + +function generateDocumentNumber() { + return `D-${new Date().getFullYear()}-${Math.floor(Math.random() * 100000) + .toString() + .padStart(5, "0")}`; +} + +function collectUploadedFiles(req) { + const files = []; + + if (Array.isArray(req.files)) { + files.push(...req.files); + } else if (req.files && typeof req.files === "object") { + if (Array.isArray(req.files.files)) files.push(...req.files.files); + if (Array.isArray(req.files.file)) files.push(...req.files.file); + } + + if (req.file) files.push(req.file); + + return files; +} + +async function analyzeUpload(file) { + const mime = await fileTypeFromBuffer(file.buffer); + const detectedMime = mime?.mime || file.mimetype || "application/octet-stream"; + const sha256 = crypto.createHash("sha256").update(file.buffer).digest("hex"); + const scan = await scanBuffer(file.buffer); + + return { + file, + detectedMime, + sha256, + scan, + }; +} + +async function getCaseList(db) { + const result = await db.query( + `SELECT c.id, + c.case_number, + c.title, + c.case_type_id, + COALESCE(ct.label, c.case_type) AS case_type, + c.status, + c.priority, + c.confidentiality_level, + c.summary, + c.affected_employee_name, + c.department, + COALESCE(dc.label, c.department) AS department_label, + c.committee_id, + cm.name AS committee_name, + c.owner_user_id, + u.full_name AS owner_name, + c.legal_hold, + c.created_at, + c.updated_at, + ( + SELECT COUNT(*)::int + FROM document_item d + WHERE d.case_id = c.id + AND d.deleted_at IS NULL + ) AS attachment_count, + COALESCE(( + SELECT ARRAY_AGG(cta.team_role_id ORDER BY cta.team_role_id) + FROM br_case_team_access cta + WHERE cta.case_id = c.id + AND cta.can_read = TRUE + ), ARRAY[]::BIGINT[]) AS team_role_ids + FROM br_case c + LEFT JOIN case_type_catalog ct ON ct.id = c.case_type_id + LEFT JOIN department_catalog dc ON dc.code = c.department + LEFT JOIN committee cm ON cm.id = c.committee_id + LEFT JOIN app_user u ON u.id = c.owner_user_id + WHERE c.deleted_at IS NULL + ORDER BY c.created_at DESC` + ); + + return result.rows.map(mapCaseRow); +} + +async function getCaseById(db, id) { + const result = await db.query( + `SELECT c.id, + c.case_number, + c.title, + c.case_type_id, + COALESCE(ct.label, c.case_type) AS case_type, + c.status, + c.priority, + c.confidentiality_level, + c.summary, + c.affected_employee_name, + c.department, + COALESCE(dc.label, c.department) AS department_label, + c.committee_id, + cm.name AS committee_name, + c.owner_user_id, + u.full_name AS owner_name, + c.legal_hold, + c.created_at, + c.updated_at, + ( + SELECT COUNT(*)::int + FROM document_item d + WHERE d.case_id = c.id + AND d.deleted_at IS NULL + ) AS attachment_count, + COALESCE(( + SELECT ARRAY_AGG(cta.team_role_id ORDER BY cta.team_role_id) + FROM br_case_team_access cta + WHERE cta.case_id = c.id + AND cta.can_read = TRUE + ), ARRAY[]::BIGINT[]) AS team_role_ids + FROM br_case c + LEFT JOIN case_type_catalog ct ON ct.id = c.case_type_id + LEFT JOIN department_catalog dc ON dc.code = c.department + LEFT JOIN committee cm ON cm.id = c.committee_id + LEFT JOIN app_user u ON u.id = c.owner_user_id + WHERE c.id = $1 + AND c.deleted_at IS NULL`, + [id] + ); + + return mapCaseRow(result.rows[0]); +} + +async function getUnassignedAgendaItemForCase(db, caseId) { + const result = await db.query( + `SELECT id, meeting_id, case_id, title, description, duration_minutes + FROM meeting_agenda_item + WHERE case_id = $1 + AND meeting_id IS NULL + ORDER BY created_at ASC, id ASC + LIMIT 1`, + [caseId] + ); + + return result.rows[0] || null; +} + +async function ensureAgendaItemForCase(db, currentCase, durationMinutes = null) { + const existing = await getUnassignedAgendaItemForCase(db, currentCase.id); + if (existing) return existing; + + const created = await db.query( + `INSERT INTO meeting_agenda_item(meeting_id, agenda_number, title, description, duration_minutes, case_id) + VALUES (NULL, NULL, $1, $2, $3, $4) + RETURNING id, meeting_id, case_id, title, description, duration_minutes`, + [ + `${currentCase.case_number} – ${currentCase.title}`, + currentCase.summary || `Automatisch aus Vorgang ${currentCase.case_number} erzeugt`, + durationMinutes ?? null, + currentCase.id, + ] + ); + + return created.rows[0]; +} + +async function getCaseTypeById(db, caseTypeId) { + if (caseTypeId == null) return null; + const ref = await db.query( + `SELECT id, code, label + FROM case_type_catalog + WHERE id = $1 + AND is_active = TRUE`, + [caseTypeId] + ); + return ref.rows[0] || null; +} + +async function syncCaseTeamAccess(db, caseId, teamRoleIds, actorId) { + if (!Array.isArray(teamRoleIds)) return; + await db.query(`DELETE FROM br_case_team_access WHERE case_id = $1`, [caseId]); + if (!teamRoleIds.length) return; + await db.query( + `INSERT INTO br_case_team_access(case_id, team_role_id, can_read, can_write, created_by) + SELECT $1::bigint, unnest($2::bigint[]), TRUE, FALSE, $3::bigint + ON CONFLICT (case_id, team_role_id) DO UPDATE SET can_read = TRUE`, + [caseId, teamRoleIds.map(Number), actorId] + ); +} + +async function assertReferences(db, payload) { + let caseType = null; + + if (payload.case_type_id !== undefined) { + caseType = await getCaseTypeById(db, payload.case_type_id); + if (!caseType) { + throw Object.assign(new Error("Vorgangstyp nicht gefunden"), { + status: 400, + publicMessage: "Vorgangstyp nicht gefunden", + }); + } + } + + if (payload.owner_user_id !== undefined && payload.owner_user_id !== null) { + const ref = await db.query( + `SELECT id + FROM app_user + WHERE id = $1 + AND is_active = TRUE`, + [payload.owner_user_id] + ); + if (!ref.rows[0]) { + throw Object.assign(new Error("Verantwortliche Person nicht gefunden"), { + status: 400, + publicMessage: "Verantwortliche Person nicht gefunden", + }); + } + } + + if (payload.committee_id !== undefined && payload.committee_id !== null) { + const ref = await db.query(`SELECT id FROM committee WHERE id = $1`, [payload.committee_id]); + if (!ref.rows[0]) { + throw Object.assign(new Error("Ausschuss nicht gefunden"), { + status: 400, + publicMessage: "Ausschuss nicht gefunden", + }); + } + } + + if (payload.department !== undefined && payload.department !== null) { + const ref = await db.query( + `SELECT id + FROM department_catalog + WHERE code = $1 + AND is_active = TRUE`, + [payload.department] + ); + if (!ref.rows[0]) { + throw Object.assign(new Error("Abteilung nicht gefunden"), { + status: 400, + publicMessage: "Abteilung nicht gefunden oder nicht aktiv", + }); + } + } + + return { caseType }; +} + +router.get("/meta", async (req, res, next) => { + try { + const data = await withDbSession(req.user, async (db) => { + const [caseTypes, users, committees, meetings, teamRoles, departments] = await Promise.all([ + db.query(`SELECT id, code, label FROM case_type_catalog WHERE is_active = TRUE ORDER BY sort_order, label`), + db.query(`SELECT id, full_name, email, committee_id FROM app_user WHERE is_active = TRUE ORDER BY full_name`), + db.query(`SELECT id, name, committee_type FROM committee ORDER BY name`), + db.query(`SELECT * FROM meeting ORDER BY meeting_date DESC, id DESC LIMIT 500`), + db.query(`SELECT id, code, name, can_view_cases, can_write_cases, can_view_documents, can_write_documents FROM app_team_role WHERE is_active = TRUE ORDER BY name`), + db.query(`SELECT id, code, label FROM department_catalog WHERE is_active = TRUE ORDER BY sort_order, label`), + ]); + + return { + caseTypes: caseTypes.rows, + users: users.rows, + committees: committees.rows, + meetings: meetings.rows.filter(isMeetingOpen).map(mapMeetingMetaRow), + teamRoles: teamRoles.rows, + departments: departments.rows, + }; + }); + + res.json(data); + } catch (err) { + next(err); + } +}); + +router.get("/", async (req, res, next) => { + try { + const rows = await withDbSession(req.user, getCaseList); + res.json(rows); + } catch (err) { + next(err); + } +}); + +router.get("/:id", async (req, res, next) => { + try { + const row = await withDbSession(req.user, (db) => getCaseById(db, req.params.id)); + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + res.json(row); + } catch (err) { + next(err); + } +}); + +router.post( + "/", + requireMfa, + requirePermission("cases.write", ["admin", "chair", "secretary", "member"]), + validate(createSchema), + async (req, res, next) => { + try { + const payload = { + ...req.body, + case_number: normalizeOptionalText(req.body.case_number), + summary: normalizeNullableText(req.body.summary), + affected_employee_name: normalizeNullableText(req.body.affected_employee_name), + department: normalizeNullableText(req.body.department), + committee_id: normalizeNullableNumber(req.body.committee_id), + owner_user_id: normalizeNullableNumber(req.body.owner_user_id) ?? req.user.sub, + }; + + const row = await withDbSession(req.user, async (db) => { + const { caseType } = await assertReferences(db, payload); + + const insert = await db.query( + `INSERT INTO br_case( + case_number, + title, + case_type, + case_type_id, + status, + priority, + confidentiality_level, + summary, + affected_employee_name, + department, + committee_id, + owner_user_id, + legal_hold, + created_by, + updated_by + ) VALUES ( + COALESCE(NULLIF($1, ''), next_case_number()), + $2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$14 + ) + RETURNING id`, + [ + payload.case_number, + payload.title, + caseType.label, + payload.case_type_id, + payload.status, + payload.priority, + payload.confidentiality_level, + payload.summary, + payload.affected_employee_name, + payload.department, + payload.committee_id, + payload.owner_user_id, + payload.legal_hold ?? false, + req.user.sub, + ] + ); + + await syncCaseTeamAccess(db, insert.rows[0].id, payload.team_role_ids || [], req.user.sub); + + const row = await getCaseById(db, insert.rows[0].id); + + await ensureAgendaItemForCase(db, { + id: row.id, + case_number: row.case_number, + title: row.title, + summary: row.summary, + }); + + return row; + }); + + await writeAudit({ + actorId: req.user.sub, + action: "CASE_CREATED", + entityType: "case", + entityId: row.id, + ipAddress: req.ip, + metadata: { payload }, + }); + + res.status(201).json(row); + } catch (err) { + next(err); + } + } +); + +router.put( + "/:id", + requireMfa, + requirePermission("cases.write", ["admin", "chair", "secretary", "member"]), + validate(updateSchema), + async (req, res, next) => { + try { + const payload = { + ...req.body, + summary: normalizeNullableText(req.body.summary), + affected_employee_name: normalizeNullableText(req.body.affected_employee_name), + department: normalizeNullableText(req.body.department), + committee_id: normalizeNullableNumber(req.body.committee_id), + owner_user_id: normalizeNullableNumber(req.body.owner_user_id), + }; + + const row = await withDbSession(req.user, async (db) => { + const existing = await getCaseById(db, req.params.id); + if (!existing) return null; + + const { caseType } = await assertReferences(db, payload); + + const fields = []; + const values = []; + let idx = 1; + + const push = (column, value) => { + fields.push(`${column} = $${idx}`); + values.push(value); + idx += 1; + }; + + const allowed = [ + ["title", payload.title], + ["case_type_id", payload.case_type_id], + ["status", payload.status], + ["priority", payload.priority], + ["confidentiality_level", payload.confidentiality_level], + ["summary", payload.summary], + ["affected_employee_name", payload.affected_employee_name], + ["department", payload.department], + ["committee_id", payload.committee_id], + ["owner_user_id", payload.owner_user_id], + ["legal_hold", payload.legal_hold], + ]; + + for (const [column, value] of allowed) { + if (value !== undefined) push(column, value); + } + + if (caseType) { + push("case_type", caseType.label); + } + + if (!fields.length && payload.team_role_ids === undefined) { + throw Object.assign(new Error("Keine Felder zum Aktualisieren"), { + status: 400, + publicMessage: "Keine Felder zum Aktualisieren", + }); + } + + if (fields.length) { + push("updated_by", req.user.sub); + + values.push(req.params.id); + await db.query( + `UPDATE br_case + SET ${fields.join(", ")} + WHERE id = $${idx} + RETURNING id`, + values + ); + } + + if (payload.team_role_ids !== undefined) { + await syncCaseTeamAccess(db, req.params.id, payload.team_role_ids || [], req.user.sub); + } + + return getCaseById(db, req.params.id); + }); + + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "CASE_UPDATED", + entityType: "case", + entityId: row.id, + ipAddress: req.ip, + metadata: { changes: payload }, + }); + + res.json(row); + } catch (err) { + next(err); + } + } +); + +router.delete("/:id", requireMfa, requirePermission("cases.delete", ["admin", "chair"]), async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const existing = await getCaseById(db, req.params.id); + if (!existing) return null; + await db.query(`UPDATE br_case SET deleted_at = NOW(), updated_by = $2 WHERE id = $1`, [req.params.id, req.user.sub]); + return existing; + }); + + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "CASE_DELETED", + entityType: "case", + entityId: row.id, + ipAddress: req.ip, + }); + + res.json({ ok: true, row }); + } catch (err) { + next(err); + } +}); + +router.post( + "/:id/attachments", + requireMfa, + requirePermission("cases.write", ["admin", "chair", "secretary", "member"]), + upload.fields([ + { name: "files", maxCount: 20 }, + { name: "file", maxCount: 1 }, + ]), + async (req, res, next) => { + try { + const files = collectUploadedFiles(req); + if (!files.length) return res.status(400).json({ error: "Datei fehlt" }); + + const analyzedFiles = await Promise.all(files.map(analyzeUpload)); + const infectedFiles = analyzedFiles + .filter((item) => !item.scan.clean) + .map((item) => ({ + file_name: item.file.originalname, + scan_result: item.scan.raw, + })); + + if (infectedFiles.length > 0) { + return res.status(422).json({ + error: "Mindestens eine Datei wurde durch den Virenscan abgelehnt", + files: infectedFiles, + }); + } + + const result = await withDbSession(req.user, async (db) => { + const caseRow = await getCaseById(db, req.params.id); + if (!caseRow) { + throw Object.assign(new Error("Vorgang nicht gefunden"), { + status: 404, + publicMessage: "Vorgang nicht gefunden", + }); + } + + const insertedRows = []; + + for (const item of analyzedFiles) { + const storageKey = buildSafeStorageKey(item.file.originalname); + const docMeta = await saveObject(storageKey, item.file.buffer, item.detectedMime); + + const insert = await db.query( + `INSERT INTO document_item( + document_number, + title, + document_type, + description, + version_label, + file_name, + storage_path, + storage_provider, + mime_type, + size_bytes, + sha256_hash, + confidentiality_level, + case_id, + meeting_id, + decision_id, + uploaded_by, + scan_status, + scan_engine, + scan_result, + uploaded_at + ) VALUES ( + $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,NULL,NULL,$14,$15,$16,$17,NOW() + ) RETURNING id, document_number, title, document_type, file_name, case_id, uploaded_at, scan_status`, + [ + req.body.document_number || generateDocumentNumber(), + req.body.title || item.file.originalname, + req.body.document_type || "anlage", + req.body.description || `Anlage zu Vorgang ${caseRow.case_number}`, + req.body.version_label || "v1", + item.file.originalname, + docMeta.storage_path, + docMeta.storage_provider, + item.detectedMime, + item.file.size, + item.sha256, + req.body.confidentiality_level || caseRow.confidentiality_level || "intern", + req.params.id, + req.user.sub, + "clean", + "clamav", + item.scan.raw, + ] + ); + + await db.query( + `INSERT INTO document_scan_event(document_id, scanned_by_user_id, status, engine, result_text, scanned_at) + VALUES ($1, $2, $3, $4, $5, NOW())`, + [insert.rows[0].id, req.user.sub, "clean", "clamav", item.scan.raw] + ); + + insertedRows.push(insert.rows[0]); + } + + return insertedRows; + }); + + await writeAudit({ + actorId: req.user.sub, + action: "CASE_ATTACHMENT_UPLOADED", + entityType: "case", + entityId: Number(req.params.id), + ipAddress: req.ip, + metadata: { + count: result.length, + documentIds: result.map((item) => item.id), + files: analyzedFiles.map((item) => ({ + file_name: item.file.originalname, + sha256: item.sha256, + })), + }, + }); + + res.status(201).json({ + ok: true, + uploaded: result, + count: result.length, + }); + } catch (err) { + next(err); + } + } +); + +router.post( + "/:id/add-to-agenda", + requireMfa, + requirePermission("agenda.write", ["admin", "chair", "secretary"]), + validate(addToAgendaSchema), + async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const caseRow = await db.query( + `SELECT id, case_number, title, summary, committee_id + FROM br_case + WHERE id = $1 + AND deleted_at IS NULL`, + [req.params.id] + ); + const currentCase = caseRow.rows[0]; + if (!currentCase) return null; + + const meetingRow = await db.query( + `SELECT id, meeting_number, title, committee_id + FROM meeting + WHERE id = $1`, + [req.body.meeting_id] + ); + const meeting = meetingRow.rows[0]; + if (!meeting) { + throw Object.assign(new Error("Sitzung nicht gefunden"), { + status: 400, + publicMessage: "Sitzung nicht gefunden", + }); + } + + if (!isMeetingOpen(meeting)) { + throw Object.assign(new Error("Geschlossene Sitzungen können nicht ausgewählt werden"), { + status: 400, + publicMessage: "Geschlossene Sitzungen können nicht ausgewählt werden", + }); + } + + if (currentCase.committee_id && meeting.committee_id && Number(currentCase.committee_id) !== Number(meeting.committee_id)) { + throw Object.assign(new Error("Vorgang und Sitzung gehören zu unterschiedlichen Ausschüssen"), { + status: 400, + publicMessage: "Vorgang und Sitzung gehören zu unterschiedlichen Ausschüssen", + }); + } + + let agendaItem = null; + + if (req.body.agenda_item_id) { + const agendaItemResult = await db.query( + `SELECT id, meeting_id, case_id, title, description, duration_minutes + FROM meeting_agenda_item + WHERE id = $1`, + [req.body.agenda_item_id] + ); + agendaItem = agendaItemResult.rows[0]; + + if (!agendaItem) { + throw Object.assign(new Error("TOP nicht gefunden"), { + status: 404, + publicMessage: "TOP nicht gefunden", + }); + } + + if (agendaItem.meeting_id) { + throw Object.assign(new Error("TOP ist bereits einer Sitzung zugewiesen"), { + status: 400, + publicMessage: "TOP ist bereits einer Sitzung zugewiesen", + }); + } + + if (agendaItem.case_id && Number(agendaItem.case_id) !== Number(currentCase.id)) { + throw Object.assign(new Error("Der ausgewählte TOP gehört zu einem anderen Vorgang"), { + status: 400, + publicMessage: "Der ausgewählte TOP gehört zu einem anderen Vorgang", + }); + } + + if (!agendaItem.case_id) { + await db.query(`UPDATE meeting_agenda_item SET case_id = $1 WHERE id = $2`, [currentCase.id, agendaItem.id]); + agendaItem.case_id = currentCase.id; + } + } else { + agendaItem = await ensureAgendaItemForCase(db, currentCase, req.body.duration_minutes ?? null); + } + + await db.query( + `UPDATE meeting_agenda_item + SET meeting_id = $1, + agenda_number = next_agenda_number($1), + duration_minutes = COALESCE($3, duration_minutes), + case_id = COALESCE(case_id, $4) + WHERE id = $2`, + [req.body.meeting_id, agendaItem.id, req.body.duration_minutes ?? null, currentCase.id] + ); + + const assignedResult = await db.query( + `SELECT ai.*, m.meeting_number, m.title AS meeting_title + FROM meeting_agenda_item ai + JOIN meeting m ON m.id = ai.meeting_id + WHERE ai.id = $1`, + [agendaItem.id] + ); + + return assignedResult.rows[0]; + }); + + if (!row) return res.status(404).json({ error: "Vorgang nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "CASE_ADDED_TO_AGENDA", + entityType: "case", + entityId: Number(req.params.id), + ipAddress: req.ip, + metadata: { meeting_id: req.body.meeting_id, agenda_item_id: row.id }, + }); + + res.status(201).json(row); + } catch (err) { + next(err); + } + } +); + +async function getCaseAttachments(db, caseId) { + const result = await db.query( + `SELECT d.id, + d.title, + d.file_name, + d.mime_type, + d.size_bytes, + d.uploaded_at, + uploader.full_name AS uploaded_by_name, + uploader.email AS uploaded_by_email + FROM document_item d + LEFT JOIN app_user uploader ON uploader.id = d.uploaded_by + WHERE d.case_id = $1 + AND d.deleted_at IS NULL + ORDER BY d.uploaded_at DESC, d.id DESC`, + [caseId] + ); + + return result.rows; +} + +router.get("/:id/attachments", async (req, res, next) => { + try { + const result = await withDbSession(req.user, async (db) => { + const caseRow = await getCaseById(db, req.params.id); + if (!caseRow) return null; + + const attachments = await getCaseAttachments(db, req.params.id); + return attachments; + }); + + if (result === null) { + return res.status(404).json({ error: "Nicht gefunden" }); + } + + res.json(result); + } catch (err) { + next(err); + } +}); + +router.delete( + "/:id/attachments/:attachmentId", + requireMfa, + requirePermission("cases.write", ["admin", "chair", "secretary", "member"]), + async (req, res, next) => { + try { + const deleted = await withDbSession(req.user, async (db) => { + const caseRow = await getCaseById(db, req.params.id); + if (!caseRow) { + throw Object.assign(new Error("Vorgang nicht gefunden"), { + status: 404, + publicMessage: "Vorgang nicht gefunden", + }); + } + + const attachmentResult = await db.query( + `SELECT id, case_id, file_name + FROM document_item + WHERE id = $1 + AND case_id = $2 + AND deleted_at IS NULL`, + [req.params.attachmentId, req.params.id] + ); + + const attachment = attachmentResult.rows[0]; + if (!attachment) { + throw Object.assign(new Error("Datei nicht gefunden"), { + status: 404, + publicMessage: "Datei nicht gefunden", + }); + } + + await db.query( + `UPDATE document_item + SET deleted_at = NOW() + WHERE id = $1`, + [req.params.attachmentId] + ); + + return attachment; + }); + + await writeAudit({ + actorId: req.user.sub, + action: "CASE_ATTACHMENT_DELETED", + entityType: "case", + entityId: Number(req.params.id), + ipAddress: req.ip, + metadata: { + attachmentId: Number(req.params.attachmentId), + file_name: deleted.file_name, + }, + }); + + res.json({ ok: true, deleted }); + } catch (err) { + next(err); + } + } +); + +export default router; diff --git a/backend/src/modules/comments/routes.js b/backend/src/modules/comments/routes.js new file mode 100644 index 0000000..9e5443e --- /dev/null +++ b/backend/src/modules/comments/routes.js @@ -0,0 +1,328 @@ +import express from "express"; +import { z } from "zod"; +import { authenticate, requireMfa } from "../../middleware/auth.js"; +import { requirePermission } from "../../middleware/rbac.js"; +import { validate } from "../../middleware/validate.js"; +import { withDbSession } from "../../config/db.js"; +import { writeAudit } from "../../utils/audit.js"; + +const router = express.Router(); +router.use(authenticate); + +const writeGuards = [requireMfa, requirePermission("comments.write", ["admin", "chair", "secretary", "member"])]; + +const createSchema = z.object({ + entity_type: z.string().min(2).max(50).default("agenda_item"), + entity_id: z.coerce.number().int().positive(), + comment_text: z.string().min(1).max(10000), + visibility: z.enum(["intern", "vertraulich"]).default("intern"), + include_in_protocol: z.coerce.boolean().optional().default(false), +}); + +const updateSchema = createSchema.partial(); + +function mapComment(row) { + if (!row) return null; + return { + id: row.id, + entity_type: row.entity_type, + entity_id: row.entity_id, + comment_text: row.comment_text, + visibility: row.visibility, + include_in_protocol: Boolean(row.include_in_protocol), + author_user_id: row.author_user_id, + author_name: row.author_name, + created_at: row.created_at, + agenda_item_id: row.agenda_item_id, + agenda_item_title: row.agenda_item_title, + agenda_number: row.agenda_number, + meeting_id: row.meeting_id, + meeting_number: row.meeting_number, + meeting_date: row.meeting_date, + meeting_status: row.meeting_status, + case_number: row.case_number, + decision_number: row.decision_number, + decision_status: row.decision_status, + }; +} + +function mapAgendaItem(row) { + if (!row) return null; + return { + id: row.id, + title: row.title, + agenda_number: row.agenda_number, + meeting_id: row.meeting_id, + meeting_number: row.meeting_number, + meeting_date: row.meeting_date, + meeting_status: row.meeting_status, + case_number: row.case_number, + decision_number: row.decision_number, + decision_status: row.decision_status, + }; +} + +const commentListSql = ` + SELECT c.id, + c.entity_type, + c.entity_id, + c.comment_text, + c.visibility, + COALESCE(c.include_in_protocol, FALSE) AS include_in_protocol, + c.author_user_id, + au.full_name AS author_name, + c.created_at, + ai.id AS agenda_item_id, + ai.title AS agenda_item_title, + ai.agenda_number, + ai.meeting_id, + m.meeting_number, + m.meeting_date, + m.status AS meeting_status, + bc.case_number, + latest_decision.decision_number, + latest_decision.status AS decision_status + FROM comment_item c + LEFT JOIN app_user au ON au.id = c.author_user_id + LEFT JOIN meeting_agenda_item ai ON c.entity_type = 'agenda_item' AND ai.id = c.entity_id + LEFT JOIN meeting m ON m.id = ai.meeting_id + LEFT JOIN br_case bc ON bc.id = ai.case_id + LEFT JOIN LATERAL ( + SELECT d.decision_number, d.status + FROM decision d + WHERE d.agenda_item_id = ai.id + ORDER BY d.created_at DESC, d.id DESC + LIMIT 1 + ) latest_decision ON TRUE + WHERE c.deleted_at IS NULL + ORDER BY c.created_at DESC, c.id DESC`; + +const openAgendaItemsSql = ` + SELECT ai.id, + ai.title, + ai.agenda_number, + ai.meeting_id, + m.meeting_number, + m.meeting_date, + m.status AS meeting_status, + bc.case_number, + latest_decision.decision_number, + latest_decision.status AS decision_status + FROM meeting_agenda_item ai + LEFT JOIN meeting m ON m.id = ai.meeting_id + LEFT JOIN br_case bc ON bc.id = ai.case_id + LEFT JOIN LATERAL ( + SELECT d.decision_number, d.status + FROM decision d + WHERE d.agenda_item_id = ai.id + ORDER BY d.created_at DESC, d.id DESC + LIMIT 1 + ) latest_decision ON TRUE + WHERE ai.meeting_id IS NULL + AND (latest_decision.status IS NULL OR latest_decision.status <> 'abgeschlossen') + ORDER BY m.meeting_date DESC NULLS LAST, + COALESCE(NULLIF(regexp_replace(COALESCE(ai.agenda_number, ''), '[^0-9]', '', 'g'), ''), '999999')::int, + ai.created_at DESC, + ai.id DESC`; + +async function getCommentById(db, id) { + const result = await db.query(`${commentListSql.replace("ORDER BY c.created_at DESC, c.id DESC", "AND c.id = $1")}`, [id]); + return mapComment(result.rows[0]); +} + +async function assertCommentTarget(db, entityType, entityId, options = {}) { + if (entityType !== "agenda_item") return; + + const result = await db.query( + `SELECT ai.id, + ai.meeting_id, + latest_decision.status AS decision_status + FROM meeting_agenda_item ai + LEFT JOIN LATERAL ( + SELECT d.status + FROM decision d + WHERE d.agenda_item_id = ai.id + ORDER BY d.created_at DESC, d.id DESC + LIMIT 1 + ) latest_decision ON TRUE + WHERE ai.id = $1`, + [entityId] + ); + + const row = result.rows[0]; + if (!row) { + throw Object.assign(new Error("TOP nicht gefunden"), { + status: 400, + publicMessage: "Der ausgewählte TOP wurde nicht gefunden.", + }); + } + + if (options.allowExistingTarget) return; + + if (row.meeting_id !== null) { + throw Object.assign(new Error("TOP ist bereits einer Sitzung zugeordnet"), { + status: 400, + publicMessage: "Kommentare können nur mit offenen TOPs aus dem TOP-Bestand verknüpft werden.", + }); + } + + if (row.decision_status === "abgeschlossen") { + throw Object.assign(new Error("TOP ist erledigt"), { + status: 400, + publicMessage: "Kommentare können nur mit TOPs verknüpft werden, die noch nicht erledigt sind.", + }); + } +} + +router.get("/open-agenda-items", async (req, res, next) => { + try { + const rows = await withDbSession(req.user, async (db) => { + const result = await db.query(openAgendaItemsSql); + return result.rows.map(mapAgendaItem); + }); + res.json(rows); + } catch (err) { + next(err); + } +}); + +router.get("/", async (req, res, next) => { + try { + const rows = await withDbSession(req.user, async (db) => { + const result = await db.query(commentListSql); + return result.rows.map(mapComment); + }); + res.json(rows); + } catch (err) { + next(err); + } +}); + +router.get("/:id", async (req, res, next) => { + try { + const row = await withDbSession(req.user, (db) => getCommentById(db, req.params.id)); + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + res.json(row); + } catch (err) { + next(err); + } +}); + +router.post("/", ...writeGuards, validate(createSchema), async (req, res, next) => { + try { + const payload = { + entity_type: req.body.entity_type || "agenda_item", + entity_id: Number(req.body.entity_id), + comment_text: req.body.comment_text.trim(), + visibility: req.body.visibility || "intern", + author_user_id: Number(req.user.sub), + include_in_protocol: Boolean(req.body.include_in_protocol), + }; + + const row = await withDbSession(req.user, async (db) => { + await assertCommentTarget(db, payload.entity_type, payload.entity_id); + const result = await db.query( + `INSERT INTO comment_item(entity_type, entity_id, comment_text, visibility, author_user_id, include_in_protocol) + VALUES ($1, $2, $3, $4, $5, $6) + RETURNING id`, + [payload.entity_type, payload.entity_id, payload.comment_text, payload.visibility, payload.author_user_id, payload.include_in_protocol] + ); + return getCommentById(db, result.rows[0].id); + }); + + await writeAudit({ + actorId: req.user.sub, + action: "COMMENT_CREATED", + entityType: "comment", + entityId: row.id, + ipAddress: req.ip, + metadata: { payload: { ...payload, comment_text: undefined } }, + }); + + res.status(201).json(row); + } catch (err) { + next(err); + } +}); + +router.put("/:id", ...writeGuards, validate(updateSchema), async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const existing = await getCommentById(db, req.params.id); + if (!existing) return null; + + const nextEntityType = req.body.entity_type ?? existing.entity_type; + const nextEntityId = req.body.entity_id !== undefined ? Number(req.body.entity_id) : existing.entity_id; + const targetUnchanged = nextEntityType === existing.entity_type && Number(nextEntityId) === Number(existing.entity_id); + await assertCommentTarget(db, nextEntityType, nextEntityId, { allowExistingTarget: targetUnchanged }); + + const fields = []; + const values = []; + let idx = 1; + const push = (column, value) => { + fields.push(`${column} = $${idx}`); + values.push(value); + idx += 1; + }; + + if (req.body.entity_type !== undefined) push("entity_type", req.body.entity_type); + if (req.body.entity_id !== undefined) push("entity_id", Number(req.body.entity_id)); + if (req.body.comment_text !== undefined) push("comment_text", req.body.comment_text.trim()); + if (req.body.visibility !== undefined) push("visibility", req.body.visibility); + if (req.body.include_in_protocol !== undefined) push("include_in_protocol", Boolean(req.body.include_in_protocol)); + + if (!fields.length) { + throw Object.assign(new Error("Keine Felder zum Aktualisieren"), { + status: 400, + publicMessage: "Keine Felder zum Aktualisieren.", + }); + } + + values.push(req.params.id); + await db.query(`UPDATE comment_item SET ${fields.join(", ")} WHERE id = $${idx}`, values); + return getCommentById(db, req.params.id); + }); + + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "COMMENT_UPDATED", + entityType: "comment", + entityId: row.id, + ipAddress: req.ip, + metadata: { changes: Object.keys(req.body || {}) }, + }); + + res.json(row); + } catch (err) { + next(err); + } +}); + +router.delete("/:id", ...writeGuards, async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const existing = await getCommentById(db, req.params.id); + if (!existing) return null; + await db.query(`UPDATE comment_item SET deleted_at = NOW() WHERE id = $1`, [req.params.id]); + return existing; + }); + + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "COMMENT_DELETED", + entityType: "comment", + entityId: row.id, + ipAddress: req.ip, + }); + + res.json({ ok: true, row }); + } catch (err) { + next(err); + } +}); + +export default router; diff --git a/backend/src/modules/committees/routes.js b/backend/src/modules/committees/routes.js new file mode 100644 index 0000000..2fe5ac2 --- /dev/null +++ b/backend/src/modules/committees/routes.js @@ -0,0 +1,602 @@ +import express from "express"; +import { z } from "zod"; +import { authenticate, requireMfa } from "../../middleware/auth.js"; +import { requirePermission, requireRoles } from "../../middleware/rbac.js"; +import { validate } from "../../middleware/validate.js"; +import { withDbSession } from "../../config/db.js"; +import { writeAudit } from "../../utils/audit.js"; + +const router = express.Router(); +router.use(authenticate); + +const nullablePositiveInt = z.preprocess( + (value) => { + if (value === "" || value === null || value === undefined) return undefined; + return value; + }, + z.coerce.number().int().positive().optional() +); + +const createSchema = z.object({ + name: z.string().min(2).max(255), + committee_type: z.string().min(2).max(100).default("general"), + default_user_id: nullablePositiveInt, + chair_user_id: nullablePositiveInt, + secretary_user_id: nullablePositiveInt, +}); + +const updateSchema = createSchema.partial(); + +const assignMemberSchema = z.object({ + user_id: z.coerce.number().int().positive(), +}); + +function normalizeNullableText(value) { + if (value === undefined) return undefined; + if (value === null) return null; + const trimmed = String(value).trim(); + return trimmed ? trimmed : null; +} + +function normalizeNullableNumber(value) { + if (value === undefined) return undefined; + if (value === null || value === "") return null; + return Number(value); +} + +function mapCommitteeRow(row) { + if (!row) return null; + return { + id: row.id, + name: row.name, + committee_type: row.committee_type, + default_user_id: row.default_user_id, + default_user_name: row.default_user_name, + chair_user_id: row.chair_user_id, + chair_user_name: row.chair_user_name, + secretary_user_id: row.secretary_user_id, + secretary_user_name: row.secretary_user_name, + member_count: row.member_count ?? 0, + created_at: row.created_at ?? null, + updated_at: row.updated_at ?? null, + }; +} + +async function getTableColumns(db, tableName) { + const result = await db.query( + ` + SELECT column_name + FROM information_schema.columns + WHERE table_schema = current_schema() + AND table_name = $1 + `, + [tableName] + ); + + return new Set(result.rows.map((row) => row.column_name)); +} + +async function tableExists(db, tableName) { + const result = await db.query( + ` + SELECT EXISTS ( + SELECT 1 + FROM information_schema.tables + WHERE table_schema = current_schema() + AND table_name = $1 + ) AS exists + `, + [tableName] + ); + + return Boolean(result.rows[0]?.exists); +} + +function buildCommitteeSelectFragments(committeeColumns, hasMemberTable) { + return { + createdAtExpr: committeeColumns.has("created_at") + ? "c.created_at" + : "NULL::timestamptz AS created_at", + updatedAtExpr: committeeColumns.has("updated_at") + ? "c.updated_at" + : "NULL::timestamptz AS updated_at", + memberCountExpr: hasMemberTable + ? `(SELECT COUNT(*)::int FROM committee_member cm WHERE cm.committee_id = c.id) AS member_count` + : `0::int AS member_count`, + }; +} + +async function assertUserReference(db, userId, label) { + if (userId === undefined || userId === null) return; + + const ref = await db.query( + ` + SELECT id + FROM app_user + WHERE id = $1 + AND is_active = TRUE + `, + [userId] + ); + + if (!ref.rows[0]) { + throw Object.assign(new Error(`${label} nicht gefunden`), { + status: 400, + publicMessage: `${label} nicht gefunden`, + }); + } +} + +async function assertReferences(db, payload) { + await assertUserReference(db, payload.default_user_id, "Standard-User"); + await assertUserReference(db, payload.chair_user_id, "Leitung"); + await assertUserReference(db, payload.secretary_user_id, "Schriftführung"); +} + +async function getCommitteeById(db, id) { + const committeeColumns = await getTableColumns(db, "committee"); + const hasMemberTable = await tableExists(db, "committee_member"); + const { createdAtExpr, updatedAtExpr, memberCountExpr } = buildCommitteeSelectFragments( + committeeColumns, + hasMemberTable + ); + + const result = await db.query( + ` + SELECT c.id, + c.name, + c.committee_type, + c.default_user_id, + du.full_name AS default_user_name, + c.chair_user_id, + cu.full_name AS chair_user_name, + c.secretary_user_id, + su.full_name AS secretary_user_name, + ${createdAtExpr}, + ${updatedAtExpr}, + ${memberCountExpr} + FROM committee c + LEFT JOIN app_user du ON du.id = c.default_user_id + LEFT JOIN app_user cu ON cu.id = c.chair_user_id + LEFT JOIN app_user su ON su.id = c.secretary_user_id + WHERE c.id = $1 + `, + [id] + ); + + return mapCommitteeRow(result.rows[0]); +} + +router.get("/", async (req, res, next) => { + try { + const rows = await withDbSession(req.user, async (db) => { + const committeeColumns = await getTableColumns(db, "committee"); + const hasMemberTable = await tableExists(db, "committee_member"); + const { createdAtExpr, updatedAtExpr, memberCountExpr } = buildCommitteeSelectFragments( + committeeColumns, + hasMemberTable + ); + + const result = await db.query( + ` + SELECT c.id, + c.name, + c.committee_type, + c.default_user_id, + du.full_name AS default_user_name, + c.chair_user_id, + cu.full_name AS chair_user_name, + c.secretary_user_id, + su.full_name AS secretary_user_name, + ${createdAtExpr}, + ${updatedAtExpr}, + ${memberCountExpr} + FROM committee c + LEFT JOIN app_user du ON du.id = c.default_user_id + LEFT JOIN app_user cu ON cu.id = c.chair_user_id + LEFT JOIN app_user su ON su.id = c.secretary_user_id + ORDER BY c.name ASC, c.id ASC + ` + ); + + return result.rows.map(mapCommitteeRow); + }); + + res.json(rows); + } catch (err) { + next(err); + } +}); + +router.get("/:id", async (req, res, next) => { + try { + const row = await withDbSession(req.user, (db) => getCommitteeById(db, req.params.id)); + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + res.json(row); + } catch (err) { + next(err); + } +}); + +router.get("/:id/members", async (req, res, next) => { + try { + const rows = await withDbSession(req.user, async (db) => { + const committee = await getCommitteeById(db, req.params.id); + if (!committee) { + throw Object.assign(new Error("Ausschuss nicht gefunden"), { + status: 404, + publicMessage: "Ausschuss nicht gefunden", + }); + } + + const hasMemberTable = await tableExists(db, "committee_member"); + if (!hasMemberTable) { + return []; + } + + const result = await db.query( + ` + SELECT cm.committee_id, + u.id AS user_id, + u.full_name, + u.email, + u.role, + u.is_active, + u.security_classification, + cm.created_at + FROM committee_member cm + JOIN app_user u ON u.id = cm.user_id + WHERE cm.committee_id = $1 + ORDER BY u.full_name ASC, u.id ASC + `, + [req.params.id] + ); + + return result.rows; + }); + + res.json(rows); + } catch (err) { + next(err); + } +}); + +router.post( + "/:id/members", + requireMfa, + requirePermission("committees.write", ["admin", "chair", "secretary"]), + validate(assignMemberSchema), + async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const committee = await getCommitteeById(db, req.params.id); + if (!committee) { + throw Object.assign(new Error("Ausschuss nicht gefunden"), { + status: 404, + publicMessage: "Ausschuss nicht gefunden", + }); + } + + const hasMemberTable = await tableExists(db, "committee_member"); + if (!hasMemberTable) { + throw Object.assign(new Error("Migration committee_member fehlt"), { + status: 500, + publicMessage: "Mitgliedschaftstabelle fehlt. Bitte Migration ausführen.", + }); + } + + await assertUserReference(db, req.body.user_id, "Benutzer"); + + const memberColumns = await getTableColumns(db, "committee_member"); + const insertColumns = ["committee_id", "user_id"]; + const insertValues = [req.params.id, req.body.user_id]; + const placeholders = ["$1", "$2"]; + + if (memberColumns.has("created_by")) { + insertColumns.push("created_by"); + insertValues.push(req.user.sub); + placeholders.push(`$${insertValues.length}`); + } + + await db.query( + ` + INSERT INTO committee_member( + ${insertColumns.join(", ")} + ) + VALUES (${placeholders.join(", ")}) + ON CONFLICT (committee_id, user_id) DO NOTHING + `, + insertValues + ); + + const result = await db.query( + ` + SELECT cm.committee_id, + u.id AS user_id, + u.full_name, + u.email, + u.role, + u.is_active, + u.security_classification, + cm.created_at + FROM committee_member cm + JOIN app_user u ON u.id = cm.user_id + WHERE cm.committee_id = $1 + AND cm.user_id = $2 + `, + [req.params.id, req.body.user_id] + ); + + return result.rows[0]; + }); + + await writeAudit({ + actorId: req.user.sub, + action: "COMMITTEE_MEMBER_ASSIGNED", + entityType: "committee", + entityId: Number(req.params.id), + ipAddress: req.ip, + metadata: { user_id: req.body.user_id }, + }); + + res.status(201).json(row); + } catch (err) { + next(err); + } + } +); + +router.delete( + "/:id/members/:userId", + requireMfa, + requirePermission("committees.write", ["admin", "chair", "secretary"]), + async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const committee = await getCommitteeById(db, req.params.id); + if (!committee) { + throw Object.assign(new Error("Ausschuss nicht gefunden"), { + status: 404, + publicMessage: "Ausschuss nicht gefunden", + }); + } + + const hasMemberTable = await tableExists(db, "committee_member"); + if (!hasMemberTable) { + throw Object.assign(new Error("Migration committee_member fehlt"), { + status: 500, + publicMessage: "Mitgliedschaftstabelle fehlt. Bitte Migration ausführen.", + }); + } + + const result = await db.query( + ` + DELETE FROM committee_member + WHERE committee_id = $1 + AND user_id = $2 + RETURNING committee_id, user_id + `, + [req.params.id, req.params.userId] + ); + + if (!result.rows[0]) { + throw Object.assign(new Error("Mitgliedschaft nicht gefunden"), { + status: 404, + publicMessage: "Mitgliedschaft nicht gefunden", + }); + } + + return result.rows[0]; + }); + + await writeAudit({ + actorId: req.user.sub, + action: "COMMITTEE_MEMBER_REMOVED", + entityType: "committee", + entityId: Number(req.params.id), + ipAddress: req.ip, + metadata: { user_id: Number(req.params.userId) }, + }); + + res.json({ ok: true, row }); + } catch (err) { + next(err); + } + } +); + +router.post( + "/", + requireMfa, + requirePermission("committees.write", ["admin", "chair", "secretary"]), + validate(createSchema), + async (req, res, next) => { + try { + const payload = { + ...req.body, + name: req.body.name.trim(), + committee_type: normalizeNullableText(req.body.committee_type) || "general", + default_user_id: normalizeNullableNumber(req.body.default_user_id), + chair_user_id: normalizeNullableNumber(req.body.chair_user_id), + secretary_user_id: normalizeNullableNumber(req.body.secretary_user_id), + }; + + const row = await withDbSession(req.user, async (db) => { + await assertReferences(db, payload); + + const committeeColumns = await getTableColumns(db, "committee"); + const insertColumns = [ + "name", + "committee_type", + "default_user_id", + "chair_user_id", + "secretary_user_id", + ]; + const insertValues = [ + payload.name, + payload.committee_type, + payload.default_user_id, + payload.chair_user_id, + payload.secretary_user_id, + ]; + const placeholders = insertValues.map((_, index) => `$${index + 1}`); + + if (committeeColumns.has("created_by")) { + insertColumns.push("created_by"); + insertValues.push(req.user.sub); + placeholders.push(`$${insertValues.length}`); + } + + if (committeeColumns.has("updated_by")) { + insertColumns.push("updated_by"); + insertValues.push(req.user.sub); + placeholders.push(`$${insertValues.length}`); + } + + const result = await db.query( + ` + INSERT INTO committee( + ${insertColumns.join(", ")} + ) + VALUES (${placeholders.join(", ")}) + RETURNING id + `, + insertValues + ); + + return getCommitteeById(db, result.rows[0].id); + }); + + await writeAudit({ + actorId: req.user.sub, + action: "COMMITTEE_CREATED", + entityType: "committee", + entityId: row.id, + ipAddress: req.ip, + metadata: { payload }, + }); + + res.status(201).json(row); + } catch (err) { + next(err); + } + } +); + +router.put( + "/:id", + requireMfa, + requirePermission("committees.write", ["admin", "chair", "secretary"]), + validate(updateSchema), + async (req, res, next) => { + try { + const payload = { + ...req.body, + name: req.body.name !== undefined ? req.body.name.trim() : undefined, + committee_type: + req.body.committee_type !== undefined + ? normalizeNullableText(req.body.committee_type) + : undefined, + default_user_id: normalizeNullableNumber(req.body.default_user_id), + chair_user_id: normalizeNullableNumber(req.body.chair_user_id), + secretary_user_id: normalizeNullableNumber(req.body.secretary_user_id), + }; + + const row = await withDbSession(req.user, async (db) => { + const existing = await getCommitteeById(db, req.params.id); + if (!existing) return null; + + await assertReferences(db, payload); + + const committeeColumns = await getTableColumns(db, "committee"); + const fields = []; + const values = []; + let idx = 1; + + const push = (column, value) => { + fields.push(`${column} = $${idx}`); + values.push(value); + idx += 1; + }; + + if (payload.name !== undefined) push("name", payload.name); + if (payload.committee_type !== undefined) push("committee_type", payload.committee_type || "general"); + if (payload.default_user_id !== undefined) push("default_user_id", payload.default_user_id); + if (payload.chair_user_id !== undefined) push("chair_user_id", payload.chair_user_id); + if (payload.secretary_user_id !== undefined) push("secretary_user_id", payload.secretary_user_id); + + if (!fields.length) { + throw Object.assign(new Error("Keine Felder zum Aktualisieren"), { + status: 400, + publicMessage: "Keine Felder zum Aktualisieren", + }); + } + + if (committeeColumns.has("updated_by")) { + push("updated_by", req.user.sub); + } + + values.push(req.params.id); + + await db.query( + ` + UPDATE committee + SET ${fields.join(", ")} + WHERE id = $${idx} + `, + values + ); + + return getCommitteeById(db, req.params.id); + }); + + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "COMMITTEE_UPDATED", + entityType: "committee", + entityId: row.id, + ipAddress: req.ip, + metadata: { payload }, + }); + + res.json(row); + } catch (err) { + next(err); + } + } +); + +router.delete( + "/:id", + requireMfa, + requirePermission("committees.write", ["admin", "chair", "secretary"]), + async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const existing = await getCommitteeById(db, req.params.id); + if (!existing) return null; + + await db.query(`DELETE FROM committee WHERE id = $1`, [req.params.id]); + return existing; + }); + + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "COMMITTEE_DELETED", + entityType: "committee", + entityId: row.id, + ipAddress: req.ip, + }); + + res.json({ ok: true, row }); + } catch (err) { + next(err); + } + } +); + +export default router; diff --git a/backend/src/modules/crudFactory.js b/backend/src/modules/crudFactory.js new file mode 100644 index 0000000..df56726 --- /dev/null +++ b/backend/src/modules/crudFactory.js @@ -0,0 +1,92 @@ +import express from "express"; +import { z } from "zod"; +import { authenticate, requireMfa } from "../middleware/auth.js"; +import { requirePermission, requireRoles } from "../middleware/rbac.js"; +import { validate } from "../middleware/validate.js"; +import { withDbSession } from "../config/db.js"; +import { writeAudit } from "../utils/audit.js"; + +function buildInsert(table, columns) { + const names = columns.map((c) => c.column); + const placeholders = names.map((_, i) => `$${i + 1}`); + return `INSERT INTO ${table} (${names.join(", ")}) VALUES (${placeholders.join(", ")}) RETURNING *`; +} +function buildUpdate(table, columns, idColumn = "id") { + const sets = columns.map((c, i) => `${c.column} = $${i + 1}`); + return `UPDATE ${table} SET ${sets.join(", ")} WHERE ${idColumn} = $${columns.length + 1} RETURNING *`; +} + +export function createCrudRouter(config) { + const router = express.Router(); + const createSchema = z.object(Object.fromEntries(config.fields.map((f) => [f.name, f.schema]))); + const updateSchema = createSchema.partial(); + + router.use(authenticate); + + router.get("/", async (req, res, next) => { + try { + const rows = await withDbSession(req.user, async (db) => { + const result = await db.query(config.listSql); + return result.rows; + }); + res.json(rows); + } catch (err) { next(err); } + }); + + router.get("/:id", async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const result = await db.query(config.detailSql, [req.params.id]); + return result.rows[0]; + }); + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + res.json(row); + } catch (err) { next(err); } + }); + + router.post("/", requireMfa, ...(config.writePermission ? [requirePermission(config.writePermission, config.writeRoles || [])] : config.writeRoles ? [requireRoles(...config.writeRoles)] : []), validate(createSchema), async (req, res, next) => { + try { + const payload = req.body; + const dbColumns = config.fields.map((f) => f.db || f.name); + const values = config.fields.map((f) => payload[f.name] ?? null); + const sql = buildInsert(config.table, config.fields.map((f) => ({ column: f.db || f.name }))); + const row = await withDbSession(req.user, async (db) => { + const result = await db.query(sql, values); + return result.rows[0]; + }); + await writeAudit({ actorId: req.user.sub, action: `${config.auditPrefix}_CREATED`, entityType: config.entityType, entityId: row.id, ipAddress: req.ip, metadata: { payload } }); + res.status(201).json(row); + } catch (err) { next(err); } + }); + + router.put("/:id", requireMfa, ...(config.writePermission ? [requirePermission(config.writePermission, config.writeRoles || [])] : config.writeRoles ? [requireRoles(...config.writeRoles)] : []), validate(updateSchema), async (req, res, next) => { + try { + const presentFields = config.fields.filter((f) => req.body[f.name] !== undefined); + if (!presentFields.length) return res.status(400).json({ error: "Keine Felder zum Aktualisieren" }); + const sql = buildUpdate(config.table, presentFields.map((f) => ({ column: f.db || f.name })), config.idColumn || "id"); + const values = presentFields.map((f) => req.body[f.name]); + values.push(req.params.id); + const row = await withDbSession(req.user, async (db) => { + const result = await db.query(sql, values); + return result.rows[0]; + }); + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + await writeAudit({ actorId: req.user.sub, action: `${config.auditPrefix}_UPDATED`, entityType: config.entityType, entityId: row.id, ipAddress: req.ip, metadata: { changes: req.body } }); + res.json(row); + } catch (err) { next(err); } + }); + + router.delete("/:id", requireMfa, ...(config.writePermission ? [requirePermission(config.writePermission, config.writeRoles || [])] : config.writeRoles ? [requireRoles(...config.writeRoles)] : []), async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const result = await db.query(config.deleteSql, [req.params.id]); + return result.rows[0]; + }); + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + await writeAudit({ actorId: req.user.sub, action: `${config.auditPrefix}_DELETED`, entityType: config.entityType, entityId: row.id, ipAddress: req.ip }); + res.json({ ok: true, row }); + } catch (err) { next(err); } + }); + + return router; +} diff --git a/backend/src/modules/dashboard/routes.js b/backend/src/modules/dashboard/routes.js new file mode 100644 index 0000000..475983e --- /dev/null +++ b/backend/src/modules/dashboard/routes.js @@ -0,0 +1,32 @@ +import express from "express"; +import { authenticate } from "../../middleware/auth.js"; +import { withDbSession } from "../../config/db.js"; + +const router = express.Router(); +router.use(authenticate); + +router.get("/", async (req, res, next) => { + try { + const data = await withDbSession(req.user, async (db) => { + const [cases, deadlines, meetings, tasks, documents, notifications] = await Promise.all([ + db.query(`SELECT COUNT(*)::int AS count FROM br_case WHERE deleted_at IS NULL`), + db.query(`SELECT COUNT(*)::int AS count FROM deadline WHERE deleted_at IS NULL AND due_date <= NOW() + INTERVAL '3 days'`), + db.query(`SELECT COUNT(*)::int AS count FROM meeting WHERE meeting_date BETWEEN CURRENT_DATE AND CURRENT_DATE + INTERVAL '7 days'`), + db.query(`SELECT COUNT(*)::int AS count FROM task WHERE deleted_at IS NULL AND status <> 'erledigt'`), + db.query(`SELECT COUNT(*)::int AS count FROM document_item WHERE deleted_at IS NULL`), + db.query(`SELECT COUNT(*)::int AS count FROM notification_item WHERE user_id = app_user_id() AND is_read = FALSE`) + ]); + return { + openCases: cases.rows[0].count, + urgentDeadlines: deadlines.rows[0].count, + meetingsThisWeek: meetings.rows[0].count, + openTasks: tasks.rows[0].count, + documents: documents.rows[0].count, + unreadNotifications: notifications.rows[0].count, + }; + }); + res.json(data); + } catch (err) { next(err); } +}); + +export default router; diff --git a/backend/src/modules/deadlines/routes.js b/backend/src/modules/deadlines/routes.js new file mode 100644 index 0000000..463734a --- /dev/null +++ b/backend/src/modules/deadlines/routes.js @@ -0,0 +1,23 @@ + import { z } from "zod"; + import { createCrudRouter } from "../crudFactory.js"; + + export default createCrudRouter({ + table: "deadline", + entityType: "deadline", + auditPrefix: "DEADLINE", + listSql: `SELECT d.id, d.case_id, c.case_number, d.title, d.deadline_type, d.due_date, d.status, d.remind_days_before, d.created_at FROM deadline d LEFT JOIN br_case c ON c.id = d.case_id WHERE d.deleted_at IS NULL ORDER BY d.due_date`, + detailSql: `SELECT * FROM deadline WHERE id = $1 AND deleted_at IS NULL`, + deleteSql: `UPDATE deadline SET deleted_at = NOW() WHERE id = $1 RETURNING *`, + writeRoles: ['admin', 'chair', 'secretary', 'member'], + writePermission: 'deadlines.write', + fields: [ + { name: 'case_id', schema: z.number().int().nullable().optional() }, +{ name: 'title', schema: z.string().min(2).max(255) }, +{ name: 'deadline_type', schema: z.string().min(2).max(50) }, +{ name: 'due_date', schema: z.string().datetime() }, +{ name: 'status', schema: z.string().min(2).max(30).default('offen') }, +{ name: 'remind_days_before', schema: z.number().int().min(0).max(90).default(2) }, +{ name: 'created_by', schema: z.number().int().optional().nullable() }, +{ name: 'updated_by', schema: z.number().int().optional().nullable() } + ] + }); diff --git a/backend/src/modules/decisions/routes.js b/backend/src/modules/decisions/routes.js new file mode 100644 index 0000000..7da7ded --- /dev/null +++ b/backend/src/modules/decisions/routes.js @@ -0,0 +1,989 @@ +import express from "express"; +import { z } from "zod"; +import { authenticate, requireMfa } from "../../middleware/auth.js"; +import { requirePermission, requireRoles } from "../../middleware/rbac.js"; +import { validate } from "../../middleware/validate.js"; +import { withDbSession } from "../../config/db.js"; +import { writeAudit } from "../../utils/audit.js"; +import { sendMail } from "../../services/mail.js"; + +const router = express.Router(); +router.use(authenticate); + +const decisionStatusSchema = z.enum(["in_bearbeitung", "rueckfrage", "abgeschlossen"]); +const voteValueSchema = z.enum(["yes", "no", "abstain"]); + +const nullablePositiveInt = z.preprocess( + (value) => { + if (value === "" || value === null || value === undefined) return undefined; + return value; + }, + z.coerce.number().int().positive().optional() +); + +const createSchema = z.object({ + decision_number: z.string().min(3).max(50).optional().nullable(), + meeting_id: nullablePositiveInt, + agenda_item_id: nullablePositiveInt, + case_id: nullablePositiveInt, + title: z.string().min(3).max(255), + decision_text: z.string().min(3).max(20000), + status: decisionStatusSchema.default("in_bearbeitung"), + votes_yes: z.coerce.number().int().min(0).default(0), + votes_no: z.coerce.number().int().min(0).default(0), + votes_abstain: z.coerce.number().int().min(0).default(0), + responsible_user_id: nullablePositiveInt, + due_date: z.string().optional().nullable(), +}); + +const updateSchema = z.object({ + decision_number: z.string().min(3).max(50).optional().nullable(), + meeting_id: nullablePositiveInt, + agenda_item_id: nullablePositiveInt, + case_id: nullablePositiveInt, + title: z.string().min(3).max(255).optional(), + decision_text: z.string().min(3).max(20000).optional(), + status: decisionStatusSchema.optional(), + votes_yes: z.coerce.number().int().min(0).optional(), + votes_no: z.coerce.number().int().min(0).optional(), + votes_abstain: z.coerce.number().int().min(0).optional(), + responsible_user_id: nullablePositiveInt, + due_date: z.string().optional().nullable(), +}); + +function normalizeNullableNumber(value) { + if (value === undefined) return undefined; + if (value === null || value === "") return null; + return Number(value); +} + +function normalizeNullableText(value) { + if (value === undefined) return undefined; + if (value === null) return null; + const trimmed = String(value).trim(); + return trimmed ? trimmed : null; +} + +function normalizeOptionalText(value) { + if (value === undefined || value === null) return undefined; + const trimmed = String(value).trim(); + return trimmed ? trimmed : undefined; +} + +function parseBoolean(value, fallback = false) { + if (value === undefined || value === null || value === "") return fallback; + if (typeof value === "boolean") return value; + const normalized = String(value).trim().toLowerCase(); + if (["1", "true", "yes", "ja", "on"].includes(normalized)) return true; + if (["0", "false", "no", "nein", "off"].includes(normalized)) return false; + return fallback; +} + +function mapDecisionRow(row) { + if (!row) return null; + return { + id: row.id, + decision_number: row.decision_number, + title: row.title, + decision_text: row.decision_text, + status: row.status, + meeting_id: row.meeting_id, + meeting_number: row.meeting_number, + agenda_item_id: row.agenda_item_id, + agenda_number: row.agenda_number, + agenda_title: row.agenda_title, + case_id: row.case_id, + case_number: row.case_number, + votes_yes: row.votes_yes, + votes_no: row.votes_no, + votes_abstain: row.votes_abstain, + voting_open: row.voting_open, + voting_started_at: row.voting_started_at, + voting_started_by: row.voting_started_by, + voting_closed_at: row.voting_closed_at, + voting_closed_by: row.voting_closed_by, + responsible_user_id: row.responsible_user_id, + responsible_name: row.responsible_name, + responsible_email: row.responsible_email, + due_date: row.due_date, + created_at: row.created_at, + updated_at: row.updated_at, + }; +} + +async function getDecisionList(db, options = {}) { + const includeCompleted = parseBoolean(options.includeCompleted, false); + const result = await db.query( + `SELECT d.id, + d.decision_number, + d.title, + d.decision_text, + d.status, + d.meeting_id, + m.meeting_number, + d.agenda_item_id, + ai.agenda_number, + ai.title AS agenda_title, + d.case_id, + c.case_number, + d.votes_yes, + d.votes_no, + d.votes_abstain, + d.voting_open, + d.voting_started_at, + d.voting_started_by, + d.voting_closed_at, + d.voting_closed_by, + d.responsible_user_id, + u.full_name AS responsible_name, + u.email AS responsible_email, + d.due_date, + d.created_at, + d.updated_at + FROM decision d + LEFT JOIN meeting m ON m.id = d.meeting_id + LEFT JOIN meeting_agenda_item ai ON ai.id = d.agenda_item_id + LEFT JOIN br_case c ON c.id = d.case_id + LEFT JOIN app_user u ON u.id = d.responsible_user_id + WHERE ($1::boolean = TRUE OR d.status <> 'abgeschlossen') + ORDER BY d.created_at DESC, d.id DESC`, + [includeCompleted] + ); + + return result.rows.map(mapDecisionRow); +} + +async function getDecisionById(db, id) { + const result = await db.query( + `SELECT d.id, + d.decision_number, + d.title, + d.decision_text, + d.status, + d.meeting_id, + m.meeting_number, + d.agenda_item_id, + ai.agenda_number, + ai.title AS agenda_title, + d.case_id, + c.case_number, + d.votes_yes, + d.votes_no, + d.votes_abstain, + d.voting_open, + d.voting_started_at, + d.voting_started_by, + d.voting_closed_at, + d.voting_closed_by, + d.responsible_user_id, + u.full_name AS responsible_name, + u.email AS responsible_email, + d.due_date, + d.created_at, + d.updated_at + FROM decision d + LEFT JOIN meeting m ON m.id = d.meeting_id + LEFT JOIN meeting_agenda_item ai ON ai.id = d.agenda_item_id + LEFT JOIN br_case c ON c.id = d.case_id + LEFT JOIN app_user u ON u.id = d.responsible_user_id + WHERE d.id = $1`, + [id] + ); + + return result.rows[0] ? mapDecisionRow(result.rows[0]) : null; +} + +async function assertResponsibleUser(db, userId) { + if (userId == null) return; + const result = await db.query(`SELECT id FROM app_user WHERE id = $1 AND is_active = TRUE`, [userId]); + if (!result.rows[0]) { + throw Object.assign(new Error("Verantwortliche Person nicht gefunden"), { + status: 400, + publicMessage: "Verantwortliche Person nicht gefunden", + }); + } +} + +async function deriveFromAgendaItem(db, agendaItemId) { + if (agendaItemId == null) return null; + + const result = await db.query( + `SELECT ai.id, + ai.meeting_id, + ai.case_id, + ai.title, + ai.agenda_number, + m.status AS meeting_status, + c.case_number + FROM meeting_agenda_item ai + LEFT JOIN meeting m ON m.id = ai.meeting_id + LEFT JOIN br_case c ON c.id = ai.case_id + WHERE ai.id = $1`, + [agendaItemId] + ); + + const row = result.rows[0]; + if (!row) { + throw Object.assign(new Error("TOP nicht gefunden"), { + status: 400, + publicMessage: "TOP nicht gefunden", + }); + } + + if (!row.meeting_id) { + throw Object.assign(new Error("Der ausgewählte TOP ist keiner Sitzung zugeordnet"), { + status: 400, + publicMessage: "Der ausgewählte TOP ist keiner Sitzung zugeordnet", + }); + } + + return row; +} + +async function getCaseForRueckfrage(db, caseId) { + if (!caseId) return null; + + const result = await db.query( + `SELECT id, case_number, title, summary + FROM br_case + WHERE id = $1 + AND deleted_at IS NULL`, + [caseId] + ); + + return result.rows[0] || null; +} + +async function getUnassignedAgendaItemForCase(db, caseId) { + if (!caseId) return null; + + const result = await db.query( + `SELECT id + FROM meeting_agenda_item + WHERE case_id = $1 + AND meeting_id IS NULL + ORDER BY created_at ASC, id ASC + LIMIT 1`, + [caseId] + ); + + return result.rows[0] || null; +} + +async function ensureRueckfrageAgendaItem(db, decisionRow) { + if (!decisionRow?.case_id) return null; + + const existing = await getUnassignedAgendaItemForCase(db, decisionRow.case_id); + if (existing) return existing; + + const caseRow = await getCaseForRueckfrage(db, decisionRow.case_id); + if (!caseRow) return null; + + const title = `${caseRow.case_number} – ${caseRow.title}`; + const description = `Automatisch aus Rückfrage zu Beschluss ${decisionRow.decision_number} erzeugt.`; + + const insert = await db.query( + `INSERT INTO meeting_agenda_item(meeting_id, agenda_number, title, description, duration_minutes, case_id) + VALUES (NULL, NULL, $1, $2, NULL, $3) + RETURNING id`, + [title, description, caseRow.id] + ); + + return insert.rows[0] || null; +} + +async function applyRueckfrageWorkflow(db, decisionRow, actorId) { + if (!decisionRow || decisionRow.status !== "rueckfrage") return; + + if (decisionRow.case_id) { + await db.query( + `UPDATE br_case + SET status = 'rueckfrage', + updated_by = $2, + updated_at = NOW() + WHERE id = $1 + AND deleted_at IS NULL`, + [decisionRow.case_id, actorId] + ); + + await ensureRueckfrageAgendaItem(db, decisionRow); + } + + if (decisionRow.responsible_user_id) { + await db.query( + `INSERT INTO notification_item(user_id, notification_type, title, entity_type, entity_id) + VALUES ($1, $2, $3, $4, $5)`, + [ + decisionRow.responsible_user_id, + 'decision_rueckfrage', + `Rückfrage zu Beschluss ${decisionRow.decision_number}`, + 'decision', + decisionRow.id, + ] + ); + } +} + +async function sendRueckfrageMail(decisionRow) { + if (!decisionRow?.responsible_email) return; + + const subject = `Rückfrage zu Beschluss ${decisionRow.decision_number}`; + const lines = [ + `Hallo ${decisionRow.responsible_name || 'Kollegin/Kollege'},`, + '', + `zu folgendem Beschluss wurde eine Rückfrage markiert:`, + `${decisionRow.decision_number} – ${decisionRow.title}`, + ]; + + if (decisionRow.case_number) { + lines.push(`Vorgang: ${decisionRow.case_number}`); + } + + lines.push('', 'Beschlusstext:', decisionRow.decision_text || '', '', 'Bitte Rückmeldung im BR-Office eintragen.'); + + await sendMail({ + to: decisionRow.responsible_email, + subject, + text: lines.join('\n'), + }); +} + +function voteCountsFromRows(rows) { + return rows.reduce( + (acc, row) => { + if (row.vote_value === "yes") acc.yes += Number(row.count || 0); + if (row.vote_value === "no") acc.no += Number(row.count || 0); + if (row.vote_value === "abstain") acc.abstain += Number(row.count || 0); + return acc; + }, + { yes: 0, no: 0, abstain: 0 } + ); +} + +function mapVoteToDecisionColumns(counts) { + return { + votes_yes: counts.yes || 0, + votes_no: counts.no || 0, + votes_abstain: counts.abstain || 0, + }; +} + +async function synchronizeDecisionVoteCounts(db, decisionId) { + const result = await db.query(`SELECT * FROM sync_decision_vote_counts($1)`, [decisionId]); + const row = result.rows[0] || {}; + return { + yes: Number(row.votes_yes || 0), + no: Number(row.votes_no || 0), + abstain: Number(row.votes_abstain || 0), + }; +} + +async function getVotingContext(db, decisionId) { + const result = await db.query( + `SELECT d.id, + d.decision_number, + d.title, + d.voting_open, + d.voting_started_at, + d.voting_started_by, + d.voting_closed_at, + d.voting_closed_by, + d.meeting_id, + m.meeting_number, + m.title AS meeting_title, + m.status AS meeting_status, + m.committee_id, + c.name AS committee_name + FROM decision d + LEFT JOIN meeting m ON m.id = d.meeting_id + LEFT JOIN committee c ON c.id = m.committee_id + WHERE d.id = $1`, + [decisionId] + ); + + return result.rows[0] || null; +} + +async function getEligibleVoters(db, committeeId, decisionId) { + if (!committeeId) return []; + + const result = await db.query( + `SELECT u.id, + u.full_name, + u.email, + u.role, + v.vote_value, + v.updated_at AS voted_at + FROM committee_member cm + JOIN app_user u ON u.id = cm.user_id + LEFT JOIN decision_vote v ON v.decision_id = $2 AND v.user_id = u.id + WHERE cm.committee_id = $1 + AND u.is_active = TRUE + AND u.role <> 'advisor' + ORDER BY u.full_name ASC, u.id ASC`, + [committeeId, decisionId] + ); + + return result.rows; +} + +async function canUserVoteOnDecision(db, decisionId, userId) { + const result = await db.query( + `SELECT 1 + FROM decision d + JOIN meeting m ON m.id = d.meeting_id + JOIN committee_member cm ON cm.committee_id = m.committee_id + JOIN app_user u ON u.id = cm.user_id + WHERE d.id = $1 + AND cm.user_id = $2 + AND u.is_active = TRUE + AND u.role <> 'advisor' + LIMIT 1`, + [decisionId, userId] + ); + + return Boolean(result.rows[0]); +} + +async function userCanManageDecisionVoting(db) { + const result = await db.query(`SELECT app_has_permission('decisions.vote.manage') AS allowed`); + return Boolean(result.rows[0]?.allowed); +} + +async function getDecisionVotingState(db, decisionId, userId) { + await synchronizeDecisionVoteCounts(db, decisionId); + + const context = await getVotingContext(db, decisionId); + if (!context) return null; + + const countsResult = await db.query( + `SELECT vote_value, COUNT(*)::int AS count + FROM decision_vote + WHERE decision_id = $1 + GROUP BY vote_value`, + [decisionId] + ); + const ownVoteResult = await db.query( + `SELECT vote_value, updated_at + FROM decision_vote + WHERE decision_id = $1 + AND user_id = $2`, + [decisionId, userId] + ); + const eligibleVoters = await getEligibleVoters(db, context.committee_id, decisionId); + const canVote = await canUserVoteOnDecision(db, decisionId, userId); + const canManage = await userCanManageDecisionVoting(db); + + const counts = voteCountsFromRows(countsResult.rows); + const columns = mapVoteToDecisionColumns(counts); + + return { + decision: { + id: context.id, + decision_number: context.decision_number, + title: context.title, + meeting_id: context.meeting_id, + meeting_number: context.meeting_number, + meeting_title: context.meeting_title, + meeting_status: context.meeting_status, + committee_id: context.committee_id, + committee_name: context.committee_name, + voting_open: context.voting_open, + voting_started_at: context.voting_started_at, + voting_started_by: context.voting_started_by, + voting_closed_at: context.voting_closed_at, + voting_closed_by: context.voting_closed_by, + ...columns, + }, + counts, + total_votes: counts.yes + counts.no + counts.abstain, + eligible_voter_count: eligibleVoters.length, + eligible_voters: eligibleVoters.map((row) => ({ + id: row.id, + full_name: row.full_name, + email: row.email, + role: row.role, + vote_value: row.vote_value || null, + voted_at: row.voted_at || null, + has_voted: Boolean(row.vote_value), + })), + current_user_vote: ownVoteResult.rows[0]?.vote_value || null, + current_user_voted_at: ownVoteResult.rows[0]?.updated_at || null, + current_user_can_vote: canVote && context.meeting_status === "gestartet", + can_manage: canManage, + }; +} + +router.get("/meta", async (req, res, next) => { + try { + const data = await withDbSession(req.user, async (db) => { + const [agendaItems, users] = await Promise.all([ + db.query( + `SELECT ai.id, + ai.agenda_number, + ai.title, + ai.meeting_id, + ai.case_id, + m.committee_id, + m.meeting_number, + m.status AS meeting_status, + c.case_number + FROM meeting_agenda_item ai + JOIN meeting m ON m.id = ai.meeting_id + LEFT JOIN br_case c ON c.id = ai.case_id + WHERE ai.meeting_id IS NOT NULL + AND m.status = 'gestartet' + ORDER BY m.meeting_date DESC, + COALESCE(NULLIF(regexp_replace(COALESCE(ai.agenda_number, ''), '[^0-9]', '', 'g'), ''), '999999')::int, + ai.id` + ), + db.query(`SELECT u.id, + u.full_name, + u.email, + u.role, + u.committee_id, + COALESCE(ARRAY_AGG(cm.committee_id ORDER BY cm.committee_id) FILTER (WHERE cm.committee_id IS NOT NULL), ARRAY[]::BIGINT[]) AS committee_ids + FROM app_user u + LEFT JOIN committee_member cm ON cm.user_id = u.id + WHERE u.is_active = TRUE + GROUP BY u.id + ORDER BY u.full_name`), + ]); + + return { agendaItems: agendaItems.rows, users: users.rows }; + }); + + res.json(data); + } catch (err) { + next(err); + } +}); + +router.get("/", async (req, res, next) => { + try { + const rows = await withDbSession(req.user, (db) => + getDecisionList(db, { includeCompleted: req.query.include_completed }) + ); + res.json(rows); + } catch (err) { + next(err); + } +}); + +router.get("/:id/voting", async (req, res, next) => { + try { + const state = await withDbSession(req.user, (db) => getDecisionVotingState(db, req.params.id, req.user.sub)); + if (!state) return res.status(404).json({ error: "Beschluss nicht gefunden" }); + res.json(state); + } catch (err) { + next(err); + } +}); + +router.post( + "/:id/voting/start", + requireMfa, + requirePermission("decisions.vote.manage", ["admin", "chair", "secretary"]), + async (req, res, next) => { + try { + const state = await withDbSession(req.user, async (db) => { + const context = await getVotingContext(db, req.params.id); + if (!context) return null; + if (!context.meeting_id) { + throw Object.assign(new Error("Für eine Abstimmung muss der Beschluss einer Sitzung zugeordnet sein."), { + status: 400, + publicMessage: "Für eine Abstimmung muss der Beschluss einer Sitzung zugeordnet sein.", + }); + } + if (!context.committee_id) { + throw Object.assign(new Error("Die Sitzung hat kein Gremium/Ausschuss zugeordnet."), { + status: 400, + publicMessage: "Die Sitzung hat kein Gremium/Ausschuss zugeordnet.", + }); + } + if (context.meeting_status !== "gestartet") { + throw Object.assign(new Error("Abstimmungen sind nur in gestarteten Sitzungen möglich."), { + status: 400, + publicMessage: "Abstimmungen sind nur in gestarteten Sitzungen möglich.", + }); + } + + await db.query( + `UPDATE decision + SET voting_open = TRUE, + voting_started_at = COALESCE(voting_started_at, NOW()), + voting_started_by = COALESCE(voting_started_by, $2), + voting_closed_at = NULL, + voting_closed_by = NULL, + updated_by = $2, + updated_at = NOW() + WHERE id = $1`, + [req.params.id, req.user.sub] + ); + + return getDecisionVotingState(db, req.params.id, req.user.sub); + }); + + if (!state) return res.status(404).json({ error: "Beschluss nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "DECISION_VOTING_STARTED", + entityType: "decision", + entityId: Number(req.params.id), + ipAddress: req.ip, + }); + + res.json(state); + } catch (err) { + next(err); + } + } +); + +router.post( + "/:id/voting/close", + requireMfa, + requirePermission("decisions.vote.manage", ["admin", "chair", "secretary"]), + async (req, res, next) => { + try { + const state = await withDbSession(req.user, async (db) => { + const context = await getVotingContext(db, req.params.id); + if (!context) return null; + + await synchronizeDecisionVoteCounts(db, req.params.id); + await db.query( + `UPDATE decision + SET voting_open = FALSE, + voting_closed_at = NOW(), + voting_closed_by = $2, + updated_by = $2, + updated_at = NOW() + WHERE id = $1`, + [req.params.id, req.user.sub] + ); + + return getDecisionVotingState(db, req.params.id, req.user.sub); + }); + + if (!state) return res.status(404).json({ error: "Beschluss nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "DECISION_VOTING_CLOSED", + entityType: "decision", + entityId: Number(req.params.id), + ipAddress: req.ip, + metadata: { counts: state.counts }, + }); + + res.json(state); + } catch (err) { + next(err); + } + } +); + +router.put("/:id/vote", validate(z.object({ vote_value: voteValueSchema })), async (req, res, next) => { + try { + const state = await withDbSession(req.user, async (db) => { + const context = await getVotingContext(db, req.params.id); + if (!context) return null; + if (!context.voting_open) { + throw Object.assign(new Error("Die Abstimmung ist nicht geöffnet."), { + status: 400, + publicMessage: "Die Abstimmung ist nicht geöffnet.", + }); + } + if (context.meeting_status !== "gestartet") { + throw Object.assign(new Error("Abstimmungen sind nur in gestarteten Sitzungen möglich."), { + status: 400, + publicMessage: "Abstimmungen sind nur in gestarteten Sitzungen möglich.", + }); + } + if (!context.committee_id) { + throw Object.assign(new Error("Die Sitzung hat kein Gremium/Ausschuss zugeordnet."), { + status: 400, + publicMessage: "Die Sitzung hat kein Gremium/Ausschuss zugeordnet.", + }); + } + + const canVote = await canUserVoteOnDecision(db, req.params.id, req.user.sub); + if (!canVote) { + throw Object.assign(new Error("Keine Stimmberechtigung für dieses Gremium."), { + status: 403, + publicMessage: "Keine Stimmberechtigung für dieses Gremium.", + }); + } + + await db.query( + `INSERT INTO decision_vote(decision_id, user_id, vote_value) + VALUES ($1, $2, $3) + ON CONFLICT (decision_id, user_id) + DO UPDATE SET vote_value = EXCLUDED.vote_value, + updated_at = NOW()`, + [req.params.id, req.user.sub, req.body.vote_value] + ); + + await synchronizeDecisionVoteCounts(db, req.params.id); + return getDecisionVotingState(db, req.params.id, req.user.sub); + }); + + if (!state) return res.status(404).json({ error: "Beschluss nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "DECISION_VOTE_CAST", + entityType: "decision", + entityId: Number(req.params.id), + ipAddress: req.ip, + metadata: { vote_value: req.body.vote_value }, + }); + + res.json(state); + } catch (err) { + next(err); + } +}); + +router.get("/:id", async (req, res, next) => { + try { + const row = await withDbSession(req.user, (db) => getDecisionById(db, req.params.id)); + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + res.json(row); + } catch (err) { + next(err); + } +}); + +router.post( + "/", + requireMfa, + requirePermission("decisions.write", ["admin", "chair", "secretary", "member"]), + validate(createSchema), + async (req, res, next) => { + try { + const payload = { + ...req.body, + decision_number: normalizeOptionalText(req.body.decision_number), + title: req.body.title.trim(), + decision_text: req.body.decision_text.trim(), + meeting_id: normalizeNullableNumber(req.body.meeting_id), + agenda_item_id: normalizeNullableNumber(req.body.agenda_item_id), + case_id: normalizeNullableNumber(req.body.case_id), + responsible_user_id: normalizeNullableNumber(req.body.responsible_user_id), + due_date: normalizeNullableText(req.body.due_date), + }; + + const becameRueckfrage = payload.status === "rueckfrage"; + + const row = await withDbSession(req.user, async (db) => { + await assertResponsibleUser(db, payload.responsible_user_id); + + if (payload.agenda_item_id) { + const agenda = await deriveFromAgendaItem(db, payload.agenda_item_id); + payload.meeting_id = Number(agenda.meeting_id); + payload.case_id = agenda.case_id ? Number(agenda.case_id) : null; + } + + const result = await db.query( + `INSERT INTO decision( + decision_number, + meeting_id, + agenda_item_id, + case_id, + title, + decision_text, + status, + votes_yes, + votes_no, + votes_abstain, + responsible_user_id, + due_date, + created_by, + updated_by + ) VALUES ( + COALESCE(NULLIF($1, ''), next_decision_number()), + $2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$13 + ) RETURNING id`, + [ + payload.decision_number ?? "", + payload.meeting_id, + payload.agenda_item_id, + payload.case_id, + payload.title, + payload.decision_text, + payload.status, + payload.votes_yes ?? 0, + payload.votes_no ?? 0, + payload.votes_abstain ?? 0, + payload.responsible_user_id, + payload.due_date, + req.user.sub, + ] + ); + + const row = await getDecisionById(db, result.rows[0].id); + if (becameRueckfrage) { + await applyRueckfrageWorkflow(db, row, req.user.sub); + } + + return getDecisionById(db, result.rows[0].id); + }); + + if (becameRueckfrage) { + sendRueckfrageMail(row).catch((error) => { + console.error("[mail] rueckfrage email failed", error); + }); + } + + await writeAudit({ + actorId: req.user.sub, + action: "DECISION_CREATED", + entityType: "decision", + entityId: row.id, + ipAddress: req.ip, + metadata: { payload }, + }); + + res.status(201).json(row); + } catch (err) { + next(err); + } + } +); + +router.put( + "/:id", + requireMfa, + requirePermission("decisions.write", ["admin", "chair", "secretary", "member"]), + validate(updateSchema), + async (req, res, next) => { + try { + const payload = { + ...req.body, + decision_number: normalizeOptionalText(req.body.decision_number), + title: req.body.title !== undefined ? req.body.title.trim() : undefined, + decision_text: req.body.decision_text !== undefined ? req.body.decision_text.trim() : undefined, + meeting_id: normalizeNullableNumber(req.body.meeting_id), + agenda_item_id: normalizeNullableNumber(req.body.agenda_item_id), + case_id: normalizeNullableNumber(req.body.case_id), + responsible_user_id: normalizeNullableNumber(req.body.responsible_user_id), + due_date: normalizeNullableText(req.body.due_date), + }; + + let becameRueckfrage = false; + + const row = await withDbSession(req.user, async (db) => { + const existing = await getDecisionById(db, req.params.id); + if (!existing) return null; + + const nextStatus = payload.status ?? existing.status; + becameRueckfrage = nextStatus === "rueckfrage" && existing.status !== "rueckfrage"; + + await assertResponsibleUser(db, payload.responsible_user_id); + + if (payload.agenda_item_id) { + const agenda = await deriveFromAgendaItem(db, payload.agenda_item_id); + payload.meeting_id = Number(agenda.meeting_id); + payload.case_id = agenda.case_id ? Number(agenda.case_id) : null; + } + + const fields = []; + const values = []; + let idx = 1; + + const push = (column, value) => { + fields.push(`${column} = $${idx}`); + values.push(value); + idx += 1; + }; + + for (const [column, value] of [ + ["decision_number", payload.decision_number], + ["meeting_id", payload.meeting_id], + ["agenda_item_id", payload.agenda_item_id], + ["case_id", payload.case_id], + ["title", payload.title], + ["decision_text", payload.decision_text], + ["status", payload.status], + ["votes_yes", payload.votes_yes], + ["votes_no", payload.votes_no], + ["votes_abstain", payload.votes_abstain], + ["responsible_user_id", payload.responsible_user_id], + ["due_date", payload.due_date], + ]) { + if (value !== undefined) push(column, value); + } + + if (!fields.length) { + throw Object.assign(new Error("Keine Felder zum Aktualisieren"), { + status: 400, + publicMessage: "Keine Felder zum Aktualisieren", + }); + } + + push("updated_by", req.user.sub); + values.push(req.params.id); + + await db.query(`UPDATE decision SET ${fields.join(", ")} WHERE id = $${idx} RETURNING id`, values); + let row = await getDecisionById(db, req.params.id); + + if (becameRueckfrage) { + await applyRueckfrageWorkflow(db, row, req.user.sub); + row = await getDecisionById(db, req.params.id); + } + + return row; + }); + + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + + if (becameRueckfrage) { + sendRueckfrageMail(row).catch((error) => { + console.error("[mail] rueckfrage email failed", error); + }); + } + + await writeAudit({ + actorId: req.user.sub, + action: "DECISION_UPDATED", + entityType: "decision", + entityId: row.id, + ipAddress: req.ip, + metadata: { changes: payload }, + }); + + res.json(row); + } catch (err) { + next(err); + } + } +); + +router.delete("/:id", requireMfa, requirePermission("decisions.write", ["admin", "chair", "secretary", "member"]), async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const existing = await getDecisionById(db, req.params.id); + if (!existing) return null; + await db.query(`DELETE FROM decision WHERE id = $1`, [req.params.id]); + return existing; + }); + + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "DECISION_DELETED", + entityType: "decision", + entityId: row.id, + ipAddress: req.ip, + }); + + res.json({ ok: true, row }); + } catch (err) { + next(err); + } +}); + +export default router; diff --git a/backend/src/modules/departments/routes.js b/backend/src/modules/departments/routes.js new file mode 100644 index 0000000..58ca66f --- /dev/null +++ b/backend/src/modules/departments/routes.js @@ -0,0 +1,276 @@ +import express from "express"; +import { z } from "zod"; +import { authenticate, requireMfa } from "../../middleware/auth.js"; +import { requirePermission } from "../../middleware/rbac.js"; +import { validate } from "../../middleware/validate.js"; +import { withDbSession } from "../../config/db.js"; +import { writeAudit } from "../../utils/audit.js"; + +const router = express.Router(); +router.use(authenticate); + +const departmentSchema = z.object({ + code: z.string().min(1).max(80), + label: z.string().min(2).max(120), + description: z.string().max(2000).optional().nullable(), + sort_order: z.coerce.number().int().min(0).max(999999).optional().default(1000), + is_active: z.boolean().optional().default(true), +}); + +const updateDepartmentSchema = departmentSchema.partial(); + +function normalizeCode(value) { + return String(value || "") + .trim() + .toLowerCase() + .replace(/ä/g, "ae") + .replace(/ö/g, "oe") + .replace(/ü/g, "ue") + .replace(/ß/g, "ss") + .replace(/[^a-z0-9]+/g, "_") + .replace(/^_+|_+$/g, "") + .slice(0, 80); +} + +function normalizeNullableText(value) { + if (value === undefined) return undefined; + if (value === null) return null; + const trimmed = String(value).trim(); + return trimmed ? trimmed : null; +} + +function mapDepartment(row) { + if (!row) return null; + return { + id: row.id, + code: row.code, + label: row.label, + description: row.description, + sort_order: row.sort_order, + is_active: row.is_active, + usage_count: row.usage_count ?? 0, + created_at: row.created_at, + updated_at: row.updated_at, + }; +} + +async function getDepartmentById(db, id) { + const result = await db.query( + `SELECT d.id, + d.code, + d.label, + d.description, + d.sort_order, + d.is_active, + d.created_at, + d.updated_at, + (SELECT COUNT(*)::int FROM br_case c WHERE c.department = d.code AND c.deleted_at IS NULL) AS usage_count + FROM department_catalog d + WHERE d.id = $1`, + [id] + ); + return mapDepartment(result.rows[0]); +} + +router.get("/", async (req, res, next) => { + try { + const activeOnly = String(req.query.active || "").toLowerCase() === "true"; + const rows = await withDbSession(req.user, async (db) => { + const result = await db.query( + `SELECT d.id, + d.code, + d.label, + d.description, + d.sort_order, + d.is_active, + d.created_at, + d.updated_at, + (SELECT COUNT(*)::int FROM br_case c WHERE c.department = d.code AND c.deleted_at IS NULL) AS usage_count + FROM department_catalog d + WHERE ($1::boolean = FALSE OR d.is_active = TRUE) + ORDER BY d.sort_order, d.label`, + [activeOnly] + ); + return result.rows.map(mapDepartment); + }); + + res.json(rows); + } catch (err) { + next(err); + } +}); + +router.post( + "/", + requireMfa, + requirePermission("departments.manage", ["admin", "chair", "secretary"]), + validate(departmentSchema), + async (req, res, next) => { + try { + const payload = { + ...req.body, + code: normalizeCode(req.body.code || req.body.label), + label: String(req.body.label || "").trim(), + description: normalizeNullableText(req.body.description), + sort_order: Number(req.body.sort_order ?? 1000), + is_active: req.body.is_active !== false, + }; + + if (!payload.code) { + return res.status(400).json({ error: "Code ist erforderlich" }); + } + + const row = await withDbSession(req.user, async (db) => { + const inserted = await db.query( + `INSERT INTO department_catalog(code, label, description, sort_order, is_active, created_by, updated_by) + VALUES ($1, $2, $3, $4, $5, $6, $6) + RETURNING id`, + [payload.code, payload.label, payload.description, payload.sort_order, payload.is_active, req.user.sub] + ); + return getDepartmentById(db, inserted.rows[0].id); + }); + + await writeAudit({ + actorId: req.user.sub, + action: "DEPARTMENT_CREATED", + entityType: "department", + entityId: row.id, + ipAddress: req.ip, + metadata: { payload }, + }); + + res.status(201).json(row); + } catch (err) { + if (err?.code === "23505") { + err.status = 409; + err.publicMessage = "Eine Abteilung mit diesem Code existiert bereits."; + } + next(err); + } + } +); + +router.put( + "/:id", + requireMfa, + requirePermission("departments.manage", ["admin", "chair", "secretary"]), + validate(updateDepartmentSchema), + async (req, res, next) => { + try { + const payload = { + ...req.body, + code: req.body.code === undefined ? undefined : normalizeCode(req.body.code || req.body.label), + label: req.body.label === undefined ? undefined : String(req.body.label || "").trim(), + description: normalizeNullableText(req.body.description), + sort_order: req.body.sort_order === undefined ? undefined : Number(req.body.sort_order ?? 1000), + is_active: req.body.is_active, + }; + + if (payload.code === "") { + return res.status(400).json({ error: "Code ist erforderlich" }); + } + if (payload.label === "") { + return res.status(400).json({ error: "Bezeichnung ist erforderlich" }); + } + + const row = await withDbSession(req.user, async (db) => { + const existing = await getDepartmentById(db, req.params.id); + if (!existing) return null; + + const fields = []; + const values = []; + let idx = 1; + const push = (column, value) => { + fields.push(`${column} = $${idx}`); + values.push(value); + idx += 1; + }; + + for (const [column, value] of [ + ["code", payload.code], + ["label", payload.label], + ["description", payload.description], + ["sort_order", payload.sort_order], + ["is_active", payload.is_active], + ]) { + if (value !== undefined) push(column, value); + } + + if (!fields.length) return existing; + push("updated_by", req.user.sub); + values.push(req.params.id); + + const oldCode = existing.code; + await db.query(`UPDATE department_catalog SET ${fields.join(", ")} WHERE id = $${idx}`, values); + + if (payload.code && payload.code !== oldCode) { + await db.query(`UPDATE br_case SET department = $1 WHERE department = $2`, [payload.code, oldCode]); + } + + return getDepartmentById(db, req.params.id); + }); + + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "DEPARTMENT_UPDATED", + entityType: "department", + entityId: row.id, + ipAddress: req.ip, + metadata: { payload }, + }); + + res.json(row); + } catch (err) { + if (err?.code === "23505") { + err.status = 409; + err.publicMessage = "Eine Abteilung mit diesem Code existiert bereits."; + } + next(err); + } + } +); + +router.delete( + "/:id", + requireMfa, + requirePermission("departments.manage", ["admin", "chair", "secretary"]), + async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const existing = await getDepartmentById(db, req.params.id); + if (!existing) return null; + + if (Number(existing.usage_count || 0) > 0) { + await db.query( + `UPDATE department_catalog + SET is_active = FALSE, updated_by = $2 + WHERE id = $1`, + [req.params.id, req.user.sub] + ); + } else { + await db.query(`DELETE FROM department_catalog WHERE id = $1`, [req.params.id]); + } + + return existing; + }); + + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "DEPARTMENT_DELETED", + entityType: "department", + entityId: row.id, + ipAddress: req.ip, + }); + + res.json({ ok: true, row }); + } catch (err) { + next(err); + } + } +); + +export default router; diff --git a/backend/src/modules/document-categories/routes.js b/backend/src/modules/document-categories/routes.js new file mode 100644 index 0000000..5a0609f --- /dev/null +++ b/backend/src/modules/document-categories/routes.js @@ -0,0 +1,264 @@ +import express from "express"; +import { z } from "zod"; +import { authenticate, requireMfa } from "../../middleware/auth.js"; +import { requirePermission } from "../../middleware/rbac.js"; +import { validate } from "../../middleware/validate.js"; +import { withDbSession } from "../../config/db.js"; +import { writeAudit } from "../../utils/audit.js"; + +const router = express.Router(); +router.use(authenticate); + +const categorySchema = z.object({ + code: z.string().min(1).max(80), + label: z.string().min(2).max(120), + description: z.string().max(2000).optional().nullable(), + sort_order: z.coerce.number().int().min(0).max(999999).optional().default(1000), + is_active: z.boolean().optional().default(true), +}); + +const updateCategorySchema = categorySchema.partial(); + +function normalizeCode(value) { + return String(value || "") + .trim() + .toLowerCase() + .replace(/ä/g, "ae") + .replace(/ö/g, "oe") + .replace(/ü/g, "ue") + .replace(/ß/g, "ss") + .replace(/[^a-z0-9]+/g, "_") + .replace(/^_+|_+$/g, "") + .slice(0, 80); +} + +function normalizeNullableText(value) { + if (value === undefined) return undefined; + if (value === null) return null; + const trimmed = String(value).trim(); + return trimmed ? trimmed : null; +} + +function mapCategory(row) { + if (!row) return null; + return { + id: row.id, + code: row.code, + label: row.label, + description: row.description, + sort_order: row.sort_order, + is_active: row.is_active, + usage_count: row.usage_count ?? 0, + created_at: row.created_at, + updated_at: row.updated_at, + }; +} + +async function getCategoryById(db, id) { + const result = await db.query( + `SELECT c.id, + c.code, + c.label, + c.description, + c.sort_order, + c.is_active, + c.created_at, + c.updated_at, + (SELECT COUNT(*)::int FROM document_item d WHERE d.document_category_id = c.id AND d.deleted_at IS NULL) AS usage_count + FROM document_category_catalog c + WHERE c.id = $1`, + [id] + ); + return mapCategory(result.rows[0]); +} + +router.get("/", async (req, res, next) => { + try { + const activeOnly = String(req.query.active || "").toLowerCase() === "true"; + const rows = await withDbSession(req.user, async (db) => { + const result = await db.query( + `SELECT c.id, + c.code, + c.label, + c.description, + c.sort_order, + c.is_active, + c.created_at, + c.updated_at, + (SELECT COUNT(*)::int FROM document_item d WHERE d.document_category_id = c.id AND d.deleted_at IS NULL) AS usage_count + FROM document_category_catalog c + WHERE ($1::boolean = FALSE OR c.is_active = TRUE) + ORDER BY c.sort_order, c.label`, + [activeOnly] + ); + return result.rows.map(mapCategory); + }); + + res.json(rows); + } catch (err) { + next(err); + } +}); + +router.post( + "/", + requireMfa, + requirePermission("document_categories.manage", ["admin", "chair"]), + validate(categorySchema), + async (req, res, next) => { + try { + const payload = { + ...req.body, + code: normalizeCode(req.body.code || req.body.label), + label: String(req.body.label || "").trim(), + description: normalizeNullableText(req.body.description), + sort_order: Number(req.body.sort_order ?? 1000), + is_active: req.body.is_active !== false, + }; + + if (!payload.code) return res.status(400).json({ error: "Code ist erforderlich" }); + + const row = await withDbSession(req.user, async (db) => { + const inserted = await db.query( + `INSERT INTO document_category_catalog(code, label, description, sort_order, is_active, created_by, updated_by) + VALUES ($1, $2, $3, $4, $5, $6, $6) + RETURNING id`, + [payload.code, payload.label, payload.description, payload.sort_order, payload.is_active, req.user.sub] + ); + return getCategoryById(db, inserted.rows[0].id); + }); + + await writeAudit({ + actorId: req.user.sub, + action: "DOCUMENT_CATEGORY_CREATED", + entityType: "document_category", + entityId: row.id, + ipAddress: req.ip, + metadata: { payload }, + }); + + res.status(201).json(row); + } catch (err) { + if (err?.code === "23505") { + err.status = 409; + err.publicMessage = "Eine Dokumentenkategorie mit diesem Code existiert bereits."; + } + next(err); + } + } +); + +router.put( + "/:id", + requireMfa, + requirePermission("document_categories.manage", ["admin", "chair"]), + validate(updateCategorySchema), + async (req, res, next) => { + try { + const payload = { + ...req.body, + code: req.body.code === undefined ? undefined : normalizeCode(req.body.code || req.body.label), + label: req.body.label === undefined ? undefined : String(req.body.label || "").trim(), + description: normalizeNullableText(req.body.description), + sort_order: req.body.sort_order === undefined ? undefined : Number(req.body.sort_order ?? 1000), + is_active: req.body.is_active, + }; + + if (payload.code === "") return res.status(400).json({ error: "Code ist erforderlich" }); + if (payload.label === "") return res.status(400).json({ error: "Bezeichnung ist erforderlich" }); + + const row = await withDbSession(req.user, async (db) => { + const existing = await getCategoryById(db, req.params.id); + if (!existing) return null; + + const fields = []; + const values = []; + let idx = 1; + const push = (column, value) => { + fields.push(`${column} = $${idx}`); + values.push(value); + idx += 1; + }; + + for (const [column, value] of [ + ["code", payload.code], + ["label", payload.label], + ["description", payload.description], + ["sort_order", payload.sort_order], + ["is_active", payload.is_active], + ]) { + if (value !== undefined) push(column, value); + } + + if (!fields.length) return existing; + push("updated_by", req.user.sub); + values.push(req.params.id); + + await db.query(`UPDATE document_category_catalog SET ${fields.join(", ")} WHERE id = $${idx}`, values); + return getCategoryById(db, req.params.id); + }); + + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "DOCUMENT_CATEGORY_UPDATED", + entityType: "document_category", + entityId: row.id, + ipAddress: req.ip, + metadata: { payload }, + }); + + res.json(row); + } catch (err) { + if (err?.code === "23505") { + err.status = 409; + err.publicMessage = "Eine Dokumentenkategorie mit diesem Code existiert bereits."; + } + next(err); + } + } +); + +router.delete( + "/:id", + requireMfa, + requirePermission("document_categories.manage", ["admin", "chair"]), + async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const existing = await getCategoryById(db, req.params.id); + if (!existing) return null; + + if (Number(existing.usage_count || 0) > 0) { + await db.query( + `UPDATE document_category_catalog + SET is_active = FALSE, updated_by = $2 + WHERE id = $1`, + [req.params.id, req.user.sub] + ); + } else { + await db.query(`DELETE FROM document_category_catalog WHERE id = $1`, [req.params.id]); + } + + return existing; + }); + + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: Number(row.usage_count || 0) > 0 ? "DOCUMENT_CATEGORY_DEACTIVATED" : "DOCUMENT_CATEGORY_DELETED", + entityType: "document_category", + entityId: row.id, + ipAddress: req.ip, + }); + + res.json({ ok: true }); + } catch (err) { + next(err); + } + } +); + +export default router; diff --git a/backend/src/modules/documents/routes.js b/backend/src/modules/documents/routes.js new file mode 100644 index 0000000..04e2e56 --- /dev/null +++ b/backend/src/modules/documents/routes.js @@ -0,0 +1,897 @@ +import express from "express"; +import crypto from "crypto"; +import argon2 from "argon2"; +import jwt from "jsonwebtoken"; +import { z } from "zod"; +import { authenticate, requireMfa } from "../../middleware/auth.js"; +import { requirePermission } from "../../middleware/rbac.js"; +import { query, withDbSession } from "../../config/db.js"; +import { upload } from "../../middleware/upload.js"; +import { scanBuffer } from "../../services/clamav.js"; +import { saveObject, getObjectStream, deleteObject } from "../../services/storage.js"; +import { writeAudit } from "../../utils/audit.js"; +import { fileTypeFromBuffer } from "file-type"; +import { v4 as uuidv4 } from "uuid"; +import { validate } from "../../middleware/validate.js"; +import { env } from "../../config/env.js"; + +export const publicDocumentsRouter = express.Router(); +const router = express.Router(); + +const PUBLIC_DOCUMENTS_DEFAULT_INTRO = "Vom Betriebsrat freigegebene Dokumente"; +const PUBLIC_DOCUMENTS_TOKEN_SCOPE = "public_documents"; +const PUBLIC_DOCUMENTS_TOKEN_EXPIRES_IN = "4h"; + +router.use(authenticate); + +const confEnum = z.enum(["oeffentlich", "intern", "vertraulich", "streng_vertraulich"]); +const nullablePositiveInt = z.preprocess( + (value) => { + if (value === "" || value === null || value === undefined) return undefined; + return value; + }, + z.coerce.number().int().positive().optional().nullable() +); + +const publicDocumentAccessSchema = z.object({ + password: z.string().min(1).max(200), +}); + +const publicDocumentSettingsSchema = z.object({ + enabled: z.boolean().optional(), + intro_text: z.string().max(8000).optional().nullable(), + access_password: z.string().max(200).optional().or(z.literal("")), + clear_password: z.boolean().optional(), +}); + +const updateSchema = z.object({ + document_number: z.string().min(1).max(50).optional(), + title: z.string().min(1).max(255).optional(), + document_type: z.string().min(1).max(50).optional(), + description: z.string().max(30000).optional().nullable(), + confidentiality_level: confEnum.optional(), + document_category_id: nullablePositiveInt, + meeting_id: nullablePositiveInt, + team_role_ids: z.array(z.coerce.number().int().positive()).optional(), +}); + +function normalizeNullableText(value) { + if (value === undefined) return undefined; + if (value === null) return null; + const trimmed = String(value).trim(); + return trimmed || null; +} + +function normalizeNullableNumber(value) { + if (value === undefined) return undefined; + if (value === null || value === "") return null; + return Number(value); +} + +function generateDocumentNumber() { + return `D-${new Date().getFullYear()}-${Math.floor(Math.random() * 100000) + .toString() + .padStart(5, "0")}`; +} + +function parseBoolean(value, fallback = false) { + if (value === undefined || value === null || value === "") return fallback; + if (typeof value === "boolean") return value; + const normalized = String(value).trim().toLowerCase(); + if (["1", "true", "yes", "ja", "on"].includes(normalized)) return true; + if (["0", "false", "no", "nein", "off"].includes(normalized)) return false; + return fallback; +} + +function parseTeamRoleIds(value) { + if (Array.isArray(value)) return value.map(Number).filter(Boolean); + if (value === undefined || value === null || value === "") return []; + try { + const parsed = JSON.parse(String(value)); + if (Array.isArray(parsed)) return parsed.map(Number).filter(Boolean); + } catch { + // Fallback: comma-separated form value. + } + return String(value) + .split(",") + .map((item) => Number(item.trim())) + .filter(Boolean); +} + +function signPublicDocumentToken() { + return jwt.sign( + { scope: PUBLIC_DOCUMENTS_TOKEN_SCOPE, setting_id: 1 }, + env.jwtAccessSecret, + { expiresIn: PUBLIC_DOCUMENTS_TOKEN_EXPIRES_IN } + ); +} + +function verifyPublicDocumentToken(token) { + try { + const decoded = jwt.verify(token, env.jwtAccessSecret); + return decoded?.scope === PUBLIC_DOCUMENTS_TOKEN_SCOPE && Number(decoded?.setting_id) === 1; + } catch { + return false; + } +} + +function getPublicAccessToken(req) { + const auth = req.headers.authorization || ""; + if (auth.toLowerCase().startsWith("bearer ")) return auth.slice(7).trim(); + return String(req.query.access_token || req.body?.public_access_token || "").trim(); +} + +function mapCategory(row) { + if (!row) return null; + return { + id: row.id, + code: row.code, + label: row.label, + description: row.description, + sort_order: row.sort_order, + is_active: row.is_active, + }; +} + +async function getPublicDocumentSetting(db = null) { + const executor = db || { query }; + const result = await executor.query( + `SELECT id, enabled, intro_text, access_password_hash, updated_at + FROM public_document_setting + WHERE id = 1` + ); + return result.rows[0] || { enabled: false, intro_text: PUBLIC_DOCUMENTS_DEFAULT_INTRO, access_password_hash: null }; +} + +function mapPublicDocument(row) { + if (!row) return null; + return { + id: row.id, + document_number: row.document_number, + title: row.title, + description: row.description, + document_type: row.document_type, + category_label: row.category_label, + file_name: row.file_name, + uploaded_at: row.uploaded_at, + }; +} + +async function sendDocumentFile(row, res, disposition = "attachment") { + const { stream, contentType } = await getObjectStream(row.storage_path); + const safeFilename = encodeURIComponent(row.file_name || row.title || `dokument-${row.id}`); + res.setHeader("Content-Type", contentType || row.mime_type || "application/octet-stream"); + res.setHeader("Content-Disposition", `${disposition}; filename="${safeFilename}"`); + res.setHeader("Cache-Control", "no-store"); + stream.pipe(res); +} + +publicDocumentsRouter.get("/status", async (req, res, next) => { + try { + const setting = await getPublicDocumentSetting(); + const enabled = Boolean(setting?.enabled && setting?.access_password_hash); + const authenticated = enabled && verifyPublicDocumentToken(getPublicAccessToken(req)); + + const documents = authenticated + ? await query( + `SELECT d.id, + d.document_number, + d.title, + d.description, + d.document_type, + d.file_name, + d.uploaded_at, + dc.label AS category_label + FROM document_item d + LEFT JOIN document_category_catalog dc ON dc.id = d.document_category_id + WHERE d.deleted_at IS NULL + AND d.scan_status = 'clean' + AND d.confidentiality_level = 'oeffentlich' + ORDER BY COALESCE(dc.sort_order, 999999), d.uploaded_at DESC, d.id DESC` + ).then((result) => result.rows.map(mapPublicDocument)) + : []; + + res.json({ + enabled, + password_required: true, + authenticated, + intro_text: setting?.intro_text || PUBLIC_DOCUMENTS_DEFAULT_INTRO, + documents, + }); + } catch (err) { + next(err); + } +}); + +publicDocumentsRouter.post("/access", validate(publicDocumentAccessSchema), async (req, res, next) => { + try { + const setting = await getPublicDocumentSetting(); + if (!setting?.enabled) { + return res.status(404).json({ error: "Die öffentliche Dokumentenseite ist derzeit nicht freigeschaltet." }); + } + if (!setting.access_password_hash) { + return res.status(403).json({ error: "Für die öffentliche Dokumentenseite ist noch kein Kennwort gesetzt." }); + } + + const ok = await argon2.verify(setting.access_password_hash, req.body.password); + if (!ok) { + return res.status(401).json({ error: "Kennwort ist nicht korrekt." }); + } + + res.json({ accessToken: signPublicDocumentToken(), expiresIn: PUBLIC_DOCUMENTS_TOKEN_EXPIRES_IN }); + } catch (err) { + next(err); + } +}); + +async function streamPublicDocument(req, res, next, disposition = "attachment") { + try { + const setting = await getPublicDocumentSetting(); + if (!setting?.enabled || !setting?.access_password_hash) { + return res.status(404).json({ error: "Die öffentliche Dokumentenseite ist derzeit nicht freigeschaltet." }); + } + if (!verifyPublicDocumentToken(getPublicAccessToken(req))) { + return res.status(401).json({ error: "Zugriff abgelaufen. Bitte Kennwort erneut eingeben." }); + } + + const result = await query( + `SELECT id, title, file_name, storage_path, mime_type, scan_status + FROM document_item + WHERE id = $1::bigint + AND deleted_at IS NULL + AND scan_status = 'clean' + AND confidentiality_level = 'oeffentlich'`, + [req.params.id] + ); + const row = result.rows[0]; + if (!row) return res.status(404).json({ error: "Dokument nicht gefunden" }); + + await writeAudit({ + actorId: null, + action: disposition === "inline" ? "PUBLIC_DOCUMENT_VIEWED" : "PUBLIC_DOCUMENT_DOWNLOADED", + entityType: "document", + entityId: row.id, + ipAddress: req.ip, + }); + + await sendDocumentFile(row, res, disposition); + } catch (err) { + next(err); + } +} + +publicDocumentsRouter.get("/:id/view", async (req, res, next) => { + await streamPublicDocument(req, res, next, "inline"); +}); + +publicDocumentsRouter.get("/:id/download", async (req, res, next) => { + await streamPublicDocument(req, res, next, "attachment"); +}); + +async function syncDocumentTeamAccess(db, documentId, teamRoleIds, actorId) { + if (!Array.isArray(teamRoleIds)) return; + await db.query(`DELETE FROM document_team_access WHERE document_id = $1`, [documentId]); + if (!teamRoleIds.length) return; + + await db.query( + `INSERT INTO document_team_access(document_id, team_role_id, can_read, can_write, created_by) + SELECT $1::bigint, unnest($2::bigint[]), TRUE, FALSE, $3::bigint + ON CONFLICT (document_id, team_role_id) DO UPDATE SET can_read = TRUE`, + [documentId, teamRoleIds.map(Number), actorId] + ); +} + +async function getBaseDocumentForVersioning(db, requestedId) { + if (!requestedId) return null; + + const result = await db.query( + `SELECT id, + document_number, + title, + document_type, + description, + confidentiality_level, + document_category_id, + meeting_id, + COALESCE(version_group_id, id) AS version_root_id + FROM document_item + WHERE id = $1::bigint + AND deleted_at IS NULL`, + [requestedId] + ); + + return result.rows[0] || null; +} + +async function getNextVersionNumber(db, versionRootId) { + const result = await db.query( + `SELECT COALESCE(MAX(COALESCE(version_number, 1)), 0) + 1 AS next_version + FROM document_item + WHERE COALESCE(version_group_id, id) = $1::bigint`, + [versionRootId] + ); + + return Number(result.rows[0]?.next_version || 1); +} + +router.get("/meta", async (req, res, next) => { + try { + const data = await withDbSession(req.user, async (db) => { + const [activeMeetings, teamRoles, categories] = await Promise.all([ + db.query( + `SELECT id, meeting_number, title, meeting_date + FROM meeting + WHERE status = 'gestartet' + ORDER BY meeting_date DESC, created_at DESC` + ), + db.query( + `SELECT id, code, name, can_view_cases, can_write_cases, can_view_documents, can_write_documents + FROM app_team_role + WHERE is_active = TRUE + ORDER BY name` + ), + db.query( + `SELECT id, code, label, description, sort_order, is_active + FROM document_category_catalog + WHERE is_active = TRUE + ORDER BY sort_order, label` + ), + ]); + + return { + activeMeeting: activeMeetings.rows.length === 1 ? activeMeetings.rows[0] : null, + teamRoles: teamRoles.rows, + categories: categories.rows.map(mapCategory), + }; + }); + + res.json(data); + } catch (err) { + next(err); + } +}); + +router.get("/", async (req, res, next) => { + try { + const internalOnly = parseBoolean(req.query.internal_only, false); + + const rows = await withDbSession(req.user, async (db) => { + const result = await db.query( + `WITH ranked_documents AS ( + SELECT d.id, + d.document_number, + d.title, + d.document_type, + d.description, + d.version_label, + COALESCE(d.version_number, 1) AS version_number, + COALESCE(d.version_group_id, d.id) AS version_root_id, + COUNT(*) OVER (PARTITION BY COALESCE(d.version_group_id, d.id))::int AS version_count, + d.confidentiality_level, + d.document_category_id, + dc.code AS category_code, + dc.label AS category_label, + d.case_id, + d.meeting_id, + d.decision_id, + d.storage_provider, + d.scan_status, + d.uploaded_at, + d.file_name, + m.meeting_number, + uploader.full_name AS uploaded_by_name, + uploader.email AS uploaded_by_email, + COALESCE(( + SELECT ARRAY_AGG(dta.team_role_id ORDER BY dta.team_role_id) + FROM document_team_access dta + WHERE dta.document_id = d.id + AND dta.can_read = TRUE + ), ARRAY[]::BIGINT[]) AS team_role_ids, + ROW_NUMBER() OVER ( + PARTITION BY COALESCE(d.version_group_id, d.id) + ORDER BY COALESCE(d.version_number, 1) DESC, d.uploaded_at DESC, d.id DESC + ) AS version_rank + FROM document_item d + LEFT JOIN meeting m ON m.id = d.meeting_id + LEFT JOIN document_category_catalog dc ON dc.id = d.document_category_id + LEFT JOIN app_user uploader ON uploader.id = d.uploaded_by + WHERE d.deleted_at IS NULL + AND ($1::boolean = FALSE OR (d.case_id IS NULL AND d.decision_id IS NULL)) + ) + SELECT id, + document_number, + title, + document_type, + description, + version_label, + version_number, + version_root_id, + version_count, + confidentiality_level, + document_category_id, + category_code, + category_label, + case_id, + meeting_id, + decision_id, + storage_provider, + scan_status, + uploaded_at, + file_name, + meeting_number, + uploaded_by_name, + uploaded_by_email, + team_role_ids + FROM ranked_documents + WHERE version_rank = 1 + ORDER BY uploaded_at DESC, id DESC`, + [internalOnly] + ); + return result.rows; + }); + res.json(rows); + } catch (err) { + next(err); + } +}); + +router.get("/:id/versions", async (req, res, next) => { + try { + const payload = await withDbSession(req.user, async (db) => { + const current = await db.query( + `SELECT id, + document_number, + title, + COALESCE(version_group_id, id) AS version_root_id + FROM document_item + WHERE id = $1::bigint + AND deleted_at IS NULL`, + [req.params.id] + ); + + const row = current.rows[0]; + if (!row) return null; + + const versions = await db.query( + `SELECT d.id, + d.document_number, + d.title, + d.document_type, + d.description, + d.version_label, + COALESCE(d.version_number, 1) AS version_number, + d.file_name, + d.mime_type, + d.size_bytes, + d.scan_status, + d.uploaded_at, + d.meeting_id, + m.meeting_number, + uploader.full_name AS uploaded_by_name, + uploader.email AS uploaded_by_email + FROM document_item d + LEFT JOIN meeting m ON m.id = d.meeting_id + LEFT JOIN app_user uploader ON uploader.id = d.uploaded_by + WHERE COALESCE(d.version_group_id, d.id) = $1::bigint + AND d.deleted_at IS NULL + ORDER BY COALESCE(d.version_number, 1) DESC, d.uploaded_at DESC, d.id DESC`, + [row.version_root_id] + ); + + return { + document_number: row.document_number, + title: row.title, + version_root_id: row.version_root_id, + items: versions.rows, + }; + }); + + if (!payload) return res.status(404).json({ error: "Dokument nicht gefunden" }); + res.json(payload); + } catch (err) { + next(err); + } +}); + +router.post( + "/upload", + requireMfa, + requirePermission("documents.write", ["admin", "chair", "secretary", "member"]), + upload.single("file"), + async (req, res, next) => { + try { + if (!req.file) return res.status(400).json({ error: "Datei fehlt" }); + + const mime = await fileTypeFromBuffer(req.file.buffer); + const detectedMime = mime?.mime || req.file.mimetype || "application/octet-stream"; + const sha256 = crypto.createHash("sha256").update(req.file.buffer).digest("hex"); + + const scan = await scanBuffer(req.file.buffer); + const storageKey = `${new Date().toISOString().slice(0, 10)}/${uuidv4()}-${req.file.originalname.replace(/[^a-zA-Z0-9._-]/g, "_")}`; + + const docMeta = await saveObject(storageKey, req.file.buffer, detectedMime); + const versionOfId = normalizeNullableNumber(req.body.version_of_id); + const teamRoleIds = parseTeamRoleIds(req.body.team_role_ids); + + const result = await withDbSession(req.user, async (db) => { + let baseDocument = null; + let documentNumber = normalizeNullableText(req.body.document_number) || generateDocumentNumber(); + let versionNumber = 1; + let versionLabel = "v1"; + let versionRootId = null; + + if (versionOfId) { + baseDocument = await getBaseDocumentForVersioning(db, versionOfId); + if (!baseDocument) { + throw Object.assign(new Error("Basisdokument für Versionierung nicht gefunden"), { + status: 400, + publicMessage: "Basisdokument für Versionierung nicht gefunden", + }); + } + + versionRootId = Number(baseDocument.version_root_id || baseDocument.id); + versionNumber = await getNextVersionNumber(db, versionRootId); + versionLabel = `v${versionNumber}`; + documentNumber = baseDocument.document_number; + } + + const insert = await db.query( + `INSERT INTO document_item( + document_number, title, document_type, description, version_label, version_number, version_group_id, + file_name, storage_path, storage_provider, mime_type, size_bytes, sha256_hash, + confidentiality_level, document_category_id, case_id, meeting_id, decision_id, uploaded_by, + scan_status, scan_engine, scan_result, uploaded_at + ) VALUES ( + $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,NOW() + ) RETURNING *`, + [ + documentNumber, + normalizeNullableText(req.body.title) || baseDocument?.title || req.file.originalname, + normalizeNullableText(req.body.document_type) || baseDocument?.document_type || "intern", + normalizeNullableText(req.body.description) ?? baseDocument?.description ?? null, + versionLabel, + versionNumber, + versionRootId, + req.file.originalname, + docMeta.storage_path, + docMeta.storage_provider, + detectedMime, + req.file.size, + sha256, + req.body.confidentiality_level || baseDocument?.confidentiality_level || "intern", + normalizeNullableNumber(req.body.document_category_id) ?? baseDocument?.document_category_id ?? null, + req.body.case_id || null, + normalizeNullableNumber(req.body.meeting_id) ?? baseDocument?.meeting_id ?? null, + req.body.decision_id || null, + req.user.sub, + scan.clean ? "clean" : "infected", + "clamav", + scan.raw, + ] + ); + + const inserted = insert.rows[0]; + await syncDocumentTeamAccess(db, inserted.id, teamRoleIds, req.user.sub); + + if (!versionRootId) { + await db.query( + `UPDATE document_item + SET version_group_id = $2::bigint + WHERE id = $1::bigint`, + [inserted.id, inserted.id] + ); + inserted.version_group_id = inserted.id; + } + + await db.query( + `INSERT INTO document_scan_event(document_id, scanned_by_user_id, status, engine, result_text, scanned_at) + VALUES ($1,$2,$3,$4,$5,NOW())`, + [inserted.id, req.user.sub, scan.clean ? "clean" : "infected", "clamav", scan.raw] + ); + + return inserted; + }); + + await writeAudit({ + actorId: req.user.sub, + action: versionOfId ? "DOCUMENT_VERSION_UPLOADED" : "DOCUMENT_UPLOADED", + entityType: "document", + entityId: result.id, + metadata: { sha256, scan: scan.raw, storage_provider: docMeta.storage_provider, version_of_id: versionOfId, team_role_ids: teamRoleIds }, + ipAddress: req.ip, + }); + + if (!scan.clean) { + return res.status(422).json({ error: "Datei durch Virenscan abgelehnt", scan_result: scan.raw }); + } + + res.status(201).json(result); + } catch (err) { + next(err); + } + } +); + +router.get( + "/public-settings", + requirePermission("public_documents.configure", ["admin", "chair"]), + async (req, res, next) => { + try { + const data = await withDbSession(req.user, async (db) => { + const setting = await getPublicDocumentSetting(db); + const documentsResult = await db.query( + `SELECT d.id, + d.document_number, + d.title, + d.description, + d.document_type, + d.confidentiality_level, + d.scan_status, + d.file_name, + d.uploaded_at, + dc.label AS category_label + FROM document_item d + LEFT JOIN document_category_catalog dc ON dc.id = d.document_category_id + WHERE d.deleted_at IS NULL + AND d.confidentiality_level = 'oeffentlich' + ORDER BY COALESCE(dc.sort_order, 999999), d.uploaded_at DESC, d.id DESC` + ); + + return { + settings: { + enabled: Boolean(setting?.enabled), + password_set: Boolean(setting?.access_password_hash), + intro_text: setting?.intro_text || PUBLIC_DOCUMENTS_DEFAULT_INTRO, + updated_at: setting?.updated_at || null, + }, + public_path: "/public-documents", + documents: documentsResult.rows, + }; + }); + res.json(data); + } catch (err) { + next(err); + } + } +); + +router.put( + "/public-settings", + requireMfa, + requirePermission("public_documents.configure", ["admin", "chair"]), + validate(publicDocumentSettingsSchema), + async (req, res, next) => { + try { + const passwordInput = typeof req.body.access_password === "string" ? req.body.access_password.trim() : ""; + const payload = { + enabled: Boolean(req.body.enabled), + intro_text: normalizeNullableText(req.body.intro_text) || PUBLIC_DOCUMENTS_DEFAULT_INTRO, + access_password: passwordInput, + clear_password: Boolean(req.body.clear_password), + }; + + if (payload.access_password && payload.access_password.length < 4) { + throw Object.assign(new Error("Kennwort zu kurz"), { + status: 400, + publicMessage: "Das globale Kennwort muss mindestens 4 Zeichen lang sein.", + }); + } + + const data = await withDbSession(req.user, async (db) => { + const current = await getPublicDocumentSetting(db); + let passwordHash = current?.access_password_hash || null; + + if (payload.clear_password && !payload.access_password) { + passwordHash = null; + } + if (payload.access_password) { + passwordHash = await argon2.hash(payload.access_password); + } + + if (payload.enabled && !passwordHash) { + throw Object.assign(new Error("Kennwort erforderlich"), { + status: 400, + publicMessage: "Zum Einschalten der öffentlichen Dokumentenseite muss zuerst ein Kennwort eingegeben und gespeichert werden.", + }); + } + + await db.query( + `INSERT INTO public_document_setting(id, enabled, intro_text, access_password_hash, created_by, updated_by) + VALUES (1, $1, $2, $3, $4, $4) + ON CONFLICT (id) DO UPDATE + SET enabled = EXCLUDED.enabled, + intro_text = EXCLUDED.intro_text, + access_password_hash = EXCLUDED.access_password_hash, + updated_by = EXCLUDED.updated_by`, + [payload.enabled, payload.intro_text, passwordHash, req.user.sub] + ); + const setting = await getPublicDocumentSetting(db); + return { + settings: { + enabled: Boolean(setting?.enabled), + password_set: Boolean(setting?.access_password_hash), + intro_text: setting?.intro_text || PUBLIC_DOCUMENTS_DEFAULT_INTRO, + updated_at: setting?.updated_at || null, + }, + public_path: "/public-documents", + }; + }); + + await writeAudit({ + actorId: req.user.sub, + action: "PUBLIC_DOCUMENT_SETTINGS_UPDATED", + entityType: "public_document_setting", + entityId: 1, + metadata: { enabled: data.settings.enabled, password_set: data.settings.password_set }, + ipAddress: req.ip, + }); + + res.json(data); + } catch (err) { + next(err); + } + } +); + +router.put( + "/:id", + requireMfa, + requirePermission("documents.write", ["admin", "chair", "secretary", "member"]), + validate(updateSchema), + async (req, res, next) => { + try { + const payload = { + document_number: normalizeNullableText(req.body.document_number), + title: normalizeNullableText(req.body.title), + document_type: normalizeNullableText(req.body.document_type), + description: normalizeNullableText(req.body.description), + confidentiality_level: req.body.confidentiality_level, + document_category_id: normalizeNullableNumber(req.body.document_category_id), + meeting_id: normalizeNullableNumber(req.body.meeting_id), + team_role_ids: Array.isArray(req.body.team_role_ids) ? req.body.team_role_ids.map(Number).filter(Boolean) : undefined, + }; + + const row = await withDbSession(req.user, async (db) => { + const current = await db.query( + `SELECT id, storage_path FROM document_item WHERE id = $1::bigint AND deleted_at IS NULL`, + [req.params.id] + ); + + if (!current.rows[0]) return null; + + const result = await db.query( + `UPDATE document_item + SET document_number = COALESCE($2, document_number), + title = COALESCE($3, title), + document_type = COALESCE($4, document_type), + description = $5, + confidentiality_level = COALESCE($6, confidentiality_level), + document_category_id = $7, + meeting_id = $8, + case_id = NULL, + decision_id = NULL, + updated_at = NOW() + WHERE id = $1::bigint + RETURNING id, document_number, title, document_type, description, version_label, COALESCE(version_number, 1) AS version_number, confidentiality_level, document_category_id, meeting_id, file_name, scan_status, uploaded_at`, + [ + req.params.id, + payload.document_number, + payload.title, + payload.document_type, + payload.description, + payload.confidentiality_level, + payload.document_category_id, + payload.meeting_id, + ] + ); + + const updated = result.rows[0]; + if (payload.team_role_ids !== undefined) { + await syncDocumentTeamAccess(db, req.params.id, payload.team_role_ids || [], req.user.sub); + } + return updated; + }); + + if (!row) return res.status(404).json({ error: "Dokument nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "DOCUMENT_UPDATED", + entityType: "document", + entityId: row.id, + metadata: { meeting_id: row.meeting_id, team_role_ids: payload.team_role_ids }, + ipAddress: req.ip, + }); + + res.json(row); + } catch (err) { + next(err); + } + } +); + + +router.delete("/:id", requireMfa, requirePermission("documents.write", ["admin", "chair", "secretary", "member"]), async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const current = await db.query( + `SELECT id, storage_path, file_name + FROM document_item + WHERE id = $1::bigint AND deleted_at IS NULL`, + [req.params.id] + ); + + if (!current.rows[0]) return null; + + await db.query( + `UPDATE document_item + SET deleted_at = NOW(), + updated_at = NOW() + WHERE id = $1::bigint`, + [req.params.id] + ); + + return current.rows[0]; + }); + + if (!row) return res.status(404).json({ error: "Dokument nicht gefunden" }); + + await deleteObject(row.storage_path).catch(() => undefined); + + await writeAudit({ + actorId: req.user.sub, + action: "DOCUMENT_DELETED", + entityType: "document", + entityId: row.id, + metadata: { file_name: row.file_name }, + ipAddress: req.ip, + }); + + res.json({ ok: true }); + } catch (err) { + next(err); + } +}); + +async function getDocumentForTransfer(user, documentId) { + return withDbSession(user, async (db) => { + const result = await db.query( + `SELECT id, title, file_name, storage_path, mime_type, scan_status + FROM document_item + WHERE id = $1::bigint AND deleted_at IS NULL`, + [documentId] + ); + return result.rows[0]; + }); +} + +async function streamDocument(req, res, next, disposition = "attachment") { + try { + const row = await getDocumentForTransfer(req.user, req.params.id); + + if (!row) return res.status(404).json({ error: "Dokument nicht gefunden" }); + if (row.scan_status !== "clean") return res.status(409).json({ error: "Dokument nicht freigegeben" }); + + await writeAudit({ + actorId: req.user.sub, + action: disposition === "inline" ? "DOCUMENT_VIEWED" : "DOCUMENT_DOWNLOADED", + entityType: "document", + entityId: row.id, + ipAddress: req.ip, + }); + + await sendDocumentFile(row, res, disposition); + } catch (err) { + next(err); + } +} + +router.get("/:id/download", requireMfa, async (req, res, next) => { + await streamDocument(req, res, next, "attachment"); +}); + +router.get("/:id/view", requireMfa, async (req, res, next) => { + await streamDocument(req, res, next, "inline"); +}); + +export default router; diff --git a/backend/src/modules/finance/routes.js b/backend/src/modules/finance/routes.js new file mode 100644 index 0000000..23dca34 --- /dev/null +++ b/backend/src/modules/finance/routes.js @@ -0,0 +1,937 @@ +import express from "express"; +import crypto from "crypto"; +import { z } from "zod"; +import { v4 as uuidv4 } from "uuid"; +import { fileTypeFromBuffer } from "file-type"; +import { authenticate, requireMfa } from "../../middleware/auth.js"; +import { requirePermission } from "../../middleware/rbac.js"; +import { validate } from "../../middleware/validate.js"; +import { upload } from "../../middleware/upload.js"; +import { withDbSession } from "../../config/db.js"; +import { scanBuffer } from "../../services/clamav.js"; +import { saveObject, getObjectStream } from "../../services/storage.js"; +import { writeAudit } from "../../utils/audit.js"; + +const router = express.Router(); +router.use(authenticate); +router.use(requirePermission("finance.read", ["admin", "chair"])); + +const nullablePositiveInt = z.preprocess( + (value) => { + if (value === "" || value === null || value === undefined) return undefined; + return value; + }, + z.coerce.number().int().positive().optional().nullable() +); + +const money = z.coerce.number().min(0).max(999999999999.99); +const taxRate = z.coerce.number().min(0).max(100); + +const projectSchema = z.object({ + project_code: z.string().max(50).optional().nullable(), + name: z.string().min(1).max(180), + description: z.string().max(30000).optional().nullable(), + status: z.enum(["aktiv", "pausiert", "abgeschlossen", "archiviert"]).optional().default("aktiv"), + calculation_mode: z.enum(["sum_only", "project_budget", "annual_budget"]).optional().default("sum_only"), + committee_id: nullablePositiveInt, + project_budget_amount: money.optional().nullable(), + annual_budget_amount: money.optional().nullable(), + annual_budget_year: z.coerce.number().int().min(2000).max(2100).optional().nullable(), +}); + +const expenseLineSchema = z.object({ + id: nullablePositiveInt, + description: z.string().max(255).optional().nullable(), + tax_code_id: nullablePositiveInt, + tax_code_key: z.string().max(160).optional().nullable(), + tax_rate_percent: taxRate.optional().nullable(), + net_amount: money, +}); + +const expenseSchema = z.object({ + project_id: z.coerce.number().int().positive(), + expense_date: z.string().min(10).max(10), + title: z.string().min(1).max(255), + vendor: z.string().max(180).optional().nullable(), + cost_category: z.string().max(120).optional().nullable(), + net_amount: money.optional().default(0), + tax_rate_percent: taxRate.optional().default(19), + currency: z.string().length(3).optional().default("EUR"), + payment_status: z.enum(["geplant", "offen", "bezahlt", "storniert"]).optional().default("offen"), + notes: z.string().max(30000).optional().nullable(), + lines: z.array(expenseLineSchema).optional().default([]), +}); + +const taxCodeSchema = z.object({ + code: z.string().min(1).max(160), + label: z.string().min(1).max(220), + tax_rate_percent: taxRate, + is_active: z.boolean().optional().default(true), + sort_order: z.coerce.number().int().min(0).max(999999).optional().default(1000), +}); + +function normalizeNullableText(value) { + if (value === undefined) return undefined; + if (value === null) return null; + const trimmed = String(value).trim(); + return trimmed || null; +} + +function normalizeNullableNumber(value) { + if (value === undefined) return undefined; + if (value === null || value === "") return null; + return Number(value); +} + +function normalizeYear(value) { + const parsed = Number(value || new Date().getFullYear()); + if (!Number.isInteger(parsed) || parsed < 2000 || parsed > 2100) return new Date().getFullYear(); + return parsed; +} + +function normalizeTaxPercent(value) { + const raw = Number(value || 0); + // Akzeptiert sowohl 19 als auch 0.19, falls Daten aus einer externen Liste kommen. + const percent = raw > 0 && raw <= 1 ? raw * 100 : raw; + return Math.round(percent * 1000) / 1000; +} + +function calculateAmounts(netAmount, taxRatePercent) { + const net = Math.round(Number(netAmount || 0) * 100) / 100; + const rate = normalizeTaxPercent(taxRatePercent); + const tax = Math.round((net * rate / 100) * 100) / 100; + const gross = Math.round((net + tax) * 100) / 100; + return { net, rate, tax, gross }; +} + +function sumAmounts(lines) { + return lines.reduce( + (acc, line) => { + acc.net = Math.round((acc.net + Number(line.net_amount || 0)) * 100) / 100; + acc.tax = Math.round((acc.tax + Number(line.tax_amount || 0)) * 100) / 100; + acc.gross = Math.round((acc.gross + Number(line.gross_amount || 0)) * 100) / 100; + return acc; + }, + { net: 0, tax: 0, gross: 0 } + ); +} + +function normalizeDateString(value) { + if (!value) return new Date().toISOString().slice(0, 10); + if (value instanceof Date) return value.toISOString().slice(0, 10); + return String(value).slice(0, 10); +} + +function yearFromDate(dateString) { + const normalized = normalizeDateString(dateString); + const date = new Date(`${normalized}T00:00:00Z`); + if (Number.isNaN(date.getTime())) return new Date().getFullYear(); + return date.getUTCFullYear(); +} + +function generateDocumentNumber() { + return `FIN-D-${new Date().getFullYear()}-${Math.floor(Math.random() * 100000) + .toString() + .padStart(5, "0")}`; +} + +function formatProjectCode(year, sequence) { + return `FIN-${year}-${String(sequence).padStart(4, "0")}`; +} + +function parseGeneratedProjectCodeYear(projectCode) { + const match = String(projectCode || "").trim().match(/^FIN-(\d{4})-\d+$/); + return match ? Number(match[1]) : null; +} + +async function getNextProjectCode(db, year = new Date().getFullYear()) { + const normalizedYear = normalizeYear(year); + await db.query("SELECT pg_advisory_xact_lock(hashtext($1))", [`finance_project_code:${normalizedYear}`]); + const result = await db.query( + `SELECT COALESCE(MAX((regexp_match(project_code, $1))[1]::int), 0) + 1 AS next_sequence + FROM finance_project + WHERE project_code ~ $2`, + [`^FIN-${normalizedYear}-([0-9]+)$`, `^FIN-${normalizedYear}-[0-9]+$`] + ); + return formatProjectCode(normalizedYear, result.rows[0]?.next_sequence || 1); +} + +async function syncProjectBudgets(db, projectId, body, actorId) { + const projectBudgetAmount = normalizeNullableNumber(body.project_budget_amount); + if (projectBudgetAmount !== undefined) { + await db.query( + `INSERT INTO finance_project_budget(project_id, budget_type, budget_year, amount, currency, created_by, updated_by) + VALUES ($1, 'project', NULL, $2, 'EUR', $3, $3) + ON CONFLICT (project_id) WHERE budget_type = 'project' + DO UPDATE SET amount = EXCLUDED.amount, updated_by = EXCLUDED.updated_by, updated_at = NOW()`, + [projectId, projectBudgetAmount || 0, actorId] + ); + } + + const annualBudgetAmount = normalizeNullableNumber(body.annual_budget_amount); + const annualBudgetYear = normalizeYear(body.annual_budget_year); + if (annualBudgetAmount !== undefined) { + await db.query( + `INSERT INTO finance_project_budget(project_id, budget_type, budget_year, amount, currency, created_by, updated_by) + VALUES ($1, 'annual', $2, $3, 'EUR', $4, $4) + ON CONFLICT (project_id, budget_year) WHERE budget_type = 'annual' + DO UPDATE SET amount = EXCLUDED.amount, updated_by = EXCLUDED.updated_by, updated_at = NOW()`, + [projectId, annualBudgetYear, annualBudgetAmount || 0, actorId] + ); + } +} + +async function getTaxCodeRows(db, activeOnly = false) { + const result = await db.query( + `SELECT id, code, label, tax_rate_percent, is_active, sort_order, created_at, updated_at + FROM finance_tax_code + WHERE ($1::boolean = FALSE OR is_active = TRUE) + ORDER BY sort_order ASC, label ASC, code ASC`, + [activeOnly] + ); + return result.rows; +} + +async function normalizeExpenseLines(db, body, old = null) { + let sourceLines = Array.isArray(body.lines) ? body.lines : []; + + if (!sourceLines.length) { + const fallbackNet = body.net_amount !== undefined ? body.net_amount : old?.net_amount || 0; + const fallbackRate = body.tax_rate_percent !== undefined ? body.tax_rate_percent : old?.tax_rate_percent || 0; + const fallbackDescription = normalizeNullableText(body.cost_category) || normalizeNullableText(body.title) || old?.cost_category || old?.title || "Rechnungsposition"; + sourceLines = [{ description: fallbackDescription, tax_code_key: fallbackDescription, net_amount: fallbackNet, tax_rate_percent: fallbackRate }]; + } + + const taxCodeIds = sourceLines.map((line) => Number(line.tax_code_id || 0)).filter(Boolean); + const taxCodeKeys = sourceLines.map((line) => normalizeNullableText(line.tax_code_key)).filter(Boolean); + const params = []; + const conditions = []; + + if (taxCodeIds.length) { + params.push(taxCodeIds); + conditions.push(`id = ANY($${params.length}::bigint[])`); + } + if (taxCodeKeys.length) { + params.push(taxCodeKeys); + conditions.push(`code = ANY($${params.length}::text[])`); + } + + const taxCodes = conditions.length + ? await db.query(`SELECT id, code, label, tax_rate_percent FROM finance_tax_code WHERE ${conditions.join(" OR ")}`, params) + : { rows: [] }; + const byId = new Map(taxCodes.rows.map((row) => [String(row.id), row])); + const byCode = new Map(taxCodes.rows.map((row) => [row.code, row])); + + const normalized = sourceLines.map((line, index) => { + const taxCode = byId.get(String(line.tax_code_id || "")) || byCode.get(normalizeNullableText(line.tax_code_key)); + const description = normalizeNullableText(line.description) || taxCode?.label || taxCode?.code || `Position ${index + 1}`; + const amounts = calculateAmounts(line.net_amount, taxCode?.tax_rate_percent ?? line.tax_rate_percent ?? body.tax_rate_percent ?? 0); + return { + line_no: index + 1, + description, + tax_code_id: taxCode?.id || null, + tax_code_key: taxCode?.code || normalizeNullableText(line.tax_code_key), + net_amount: amounts.net, + tax_rate_percent: amounts.rate, + tax_amount: amounts.tax, + gross_amount: amounts.gross, + }; + }); + + return { lines: normalized, totals: sumAmounts(normalized) }; +} + +async function replaceExpenseLines(db, expenseId, lines) { + await db.query(`DELETE FROM finance_expense_line WHERE expense_id = $1::bigint`, [expenseId]); + for (const line of lines) { + await db.query( + `INSERT INTO finance_expense_line( + expense_id, line_no, description, tax_code_id, tax_code_key, + net_amount, tax_rate_percent, tax_amount, gross_amount + ) VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9)`, + [ + expenseId, + line.line_no, + line.description, + line.tax_code_id, + line.tax_code_key, + line.net_amount, + line.tax_rate_percent, + line.tax_amount, + line.gross_amount, + ] + ); + } +} + +async function getProjects(db, year) { + const result = await db.query( + `WITH expense_totals AS ( + SELECT project_id, + COUNT(*) FILTER (WHERE deleted_at IS NULL)::int AS expense_count, + COALESCE(SUM(net_amount) FILTER (WHERE deleted_at IS NULL AND payment_status <> 'storniert'), 0)::numeric(14,2) AS net_total, + COALESCE(SUM(tax_amount) FILTER (WHERE deleted_at IS NULL AND payment_status <> 'storniert'), 0)::numeric(14,2) AS tax_total, + COALESCE(SUM(gross_amount) FILTER (WHERE deleted_at IS NULL AND payment_status <> 'storniert'), 0)::numeric(14,2) AS gross_total, + COALESCE(SUM(gross_amount) FILTER (WHERE deleted_at IS NULL AND payment_status <> 'storniert' AND budget_year = $1::int), 0)::numeric(14,2) AS gross_year_total + FROM finance_expense + GROUP BY project_id + ) + SELECT p.id, + p.project_code, + p.name, + p.description, + p.status, + p.calculation_mode, + p.committee_id, + c.name AS committee_name, + p.created_at, + p.updated_at, + COALESCE(pb.amount, 0)::numeric(14,2) AS project_budget_amount, + COALESCE(ab.amount, 0)::numeric(14,2) AS annual_budget_amount, + $1::int AS annual_budget_year, + COALESCE(et.expense_count, 0)::int AS expense_count, + COALESCE(et.net_total, 0)::numeric(14,2) AS net_total, + COALESCE(et.tax_total, 0)::numeric(14,2) AS tax_total, + COALESCE(et.gross_total, 0)::numeric(14,2) AS gross_total, + COALESCE(et.gross_year_total, 0)::numeric(14,2) AS gross_year_total, + CASE + WHEN p.calculation_mode = 'project_budget' THEN COALESCE(pb.amount, 0) + WHEN p.calculation_mode = 'annual_budget' THEN COALESCE(ab.amount, 0) + ELSE NULL + END::numeric(14,2) AS active_budget_amount, + CASE + WHEN p.calculation_mode = 'project_budget' THEN COALESCE(et.gross_total, 0) + WHEN p.calculation_mode = 'annual_budget' THEN COALESCE(et.gross_year_total, 0) + ELSE COALESCE(et.gross_total, 0) + END::numeric(14,2) AS active_spent_amount, + CASE + WHEN p.calculation_mode = 'project_budget' THEN COALESCE(pb.amount, 0) - COALESCE(et.gross_total, 0) + WHEN p.calculation_mode = 'annual_budget' THEN COALESCE(ab.amount, 0) - COALESCE(et.gross_year_total, 0) + ELSE NULL + END::numeric(14,2) AS active_remaining_amount + FROM finance_project p + LEFT JOIN committee c ON c.id = p.committee_id + LEFT JOIN expense_totals et ON et.project_id = p.id + LEFT JOIN finance_project_budget pb ON pb.project_id = p.id AND pb.budget_type = 'project' + LEFT JOIN finance_project_budget ab ON ab.project_id = p.id AND ab.budget_type = 'annual' AND ab.budget_year = $1::int + WHERE p.deleted_at IS NULL + ORDER BY p.status, p.name`, + [year] + ); + return result.rows; +} + +async function getExpenseRows(db, { year, projectId }) { + const params = [year, projectId || null]; + const result = await db.query( + `SELECT e.id, + e.project_id, + p.name AS project_name, + e.expense_date, + e.budget_year, + e.title, + e.vendor, + e.cost_category, + e.net_amount, + e.tax_rate_percent, + e.tax_amount, + e.gross_amount, + e.currency, + e.payment_status, + e.notes, + e.created_at, + e.updated_at, + COALESCE(( + SELECT jsonb_agg(jsonb_build_object( + 'id', l.id, + 'line_no', l.line_no, + 'description', l.description, + 'tax_code_id', l.tax_code_id, + 'tax_code_key', l.tax_code_key, + 'tax_code_label', tc.label, + 'net_amount', l.net_amount, + 'tax_rate_percent', l.tax_rate_percent, + 'tax_amount', l.tax_amount, + 'gross_amount', l.gross_amount + ) ORDER BY l.line_no ASC, l.id ASC) + FROM finance_expense_line l + LEFT JOIN finance_tax_code tc ON tc.id = l.tax_code_id + WHERE l.expense_id = e.id + ), '[]'::jsonb) AS lines, + COALESCE(( + SELECT jsonb_agg(jsonb_build_object( + 'id', d.id, + 'document_number', d.document_number, + 'title', d.title, + 'file_name', d.file_name, + 'mime_type', d.mime_type, + 'size_bytes', d.size_bytes, + 'scan_status', d.scan_status, + 'uploaded_at', d.uploaded_at + ) ORDER BY d.uploaded_at DESC, d.id DESC) + FROM finance_expense_document fed + JOIN document_item d ON d.id = fed.document_id + WHERE fed.expense_id = e.id + AND d.deleted_at IS NULL + ), '[]'::jsonb) AS documents + FROM finance_expense e + JOIN finance_project p ON p.id = e.project_id + WHERE e.deleted_at IS NULL + AND ($1::int IS NULL OR e.budget_year = $1::int) + AND ($2::bigint IS NULL OR e.project_id = $2::bigint) + ORDER BY e.expense_date DESC, e.id DESC`, + params + ); + return result.rows; +} + +router.get("/meta", async (req, res, next) => { + try { + const data = await withDbSession(req.user, async (db) => { + const [committees, years, taxCodes] = await Promise.all([ + db.query(`SELECT id, name FROM committee ORDER BY name`), + db.query( + `SELECT DISTINCT budget_year AS year + FROM finance_expense + WHERE deleted_at IS NULL + UNION + SELECT DISTINCT budget_year AS year + FROM finance_project_budget + WHERE budget_year IS NOT NULL + ORDER BY year DESC` + ), + getTaxCodeRows(db, true), + ]); + + return { + tax_rates: [0, 7, 19], + tax_codes: taxCodes, + payment_statuses: ["geplant", "offen", "bezahlt", "storniert"], + calculation_modes: [ + { value: "sum_only", label: "Nur aufsummieren" }, + { value: "project_budget", label: "Vom Projektbudget abziehen" }, + { value: "annual_budget", label: "Vom Jahresbudget abziehen" }, + ], + committees: committees.rows, + years: years.rows.map((row) => row.year), + }; + }); + res.json(data); + } catch (err) { + next(err); + } +}); + +router.get("/tax-codes", requirePermission("finance.tax_codes", ["admin", "chair"]), async (req, res, next) => { + try { + const activeOnly = req.query.active === "true"; + const rows = await withDbSession(req.user, (db) => getTaxCodeRows(db, activeOnly)); + res.json(rows); + } catch (err) { + next(err); + } +}); + +router.post("/tax-codes", requireMfa, requirePermission("finance.tax_codes", ["admin", "chair"]), validate(taxCodeSchema), async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const result = await db.query( + `INSERT INTO finance_tax_code(code, label, tax_rate_percent, is_active, sort_order, created_by, updated_by) + VALUES ($1,$2,$3,$4,$5,$6,$6) + RETURNING *`, + [ + req.body.code.trim(), + req.body.label.trim(), + normalizeTaxPercent(req.body.tax_rate_percent), + req.body.is_active, + req.body.sort_order, + req.user.sub, + ] + ); + return result.rows[0]; + }); + await writeAudit({ actorId: req.user.sub, action: "FINANCE_TAX_CODE_CREATED", entityType: "finance_tax_code", entityId: row.id, metadata: req.body, ipAddress: req.ip }); + res.status(201).json(row); + } catch (err) { + if (err.code === "23505") return res.status(409).json({ error: "Diese MwSt.-/Kostenart existiert bereits." }); + next(err); + } +}); + +router.put("/tax-codes/:id", requireMfa, requirePermission("finance.tax_codes", ["admin", "chair"]), validate(taxCodeSchema.partial()), async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const current = await db.query(`SELECT * FROM finance_tax_code WHERE id = $1::bigint`, [req.params.id]); + if (!current.rows[0]) return null; + const old = current.rows[0]; + const result = await db.query( + `UPDATE finance_tax_code + SET code = $2, + label = $3, + tax_rate_percent = $4, + is_active = $5, + sort_order = $6, + updated_by = $7, + updated_at = NOW() + WHERE id = $1::bigint + RETURNING *`, + [ + req.params.id, + req.body.code !== undefined ? req.body.code.trim() : old.code, + req.body.label !== undefined ? req.body.label.trim() : old.label, + req.body.tax_rate_percent !== undefined ? normalizeTaxPercent(req.body.tax_rate_percent) : old.tax_rate_percent, + req.body.is_active !== undefined ? req.body.is_active : old.is_active, + req.body.sort_order !== undefined ? req.body.sort_order : old.sort_order, + req.user.sub, + ] + ); + return result.rows[0]; + }); + if (!row) return res.status(404).json({ error: "MwSt.-/Kostenart nicht gefunden" }); + await writeAudit({ actorId: req.user.sub, action: "FINANCE_TAX_CODE_UPDATED", entityType: "finance_tax_code", entityId: row.id, metadata: req.body, ipAddress: req.ip }); + res.json(row); + } catch (err) { + if (err.code === "23505") return res.status(409).json({ error: "Diese MwSt.-/Kostenart existiert bereits." }); + next(err); + } +}); + +router.delete("/tax-codes/:id", requireMfa, requirePermission("finance.tax_codes", ["admin", "chair"]), async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const result = await db.query( + `UPDATE finance_tax_code + SET is_active = FALSE, updated_by = $2, updated_at = NOW() + WHERE id = $1::bigint + RETURNING id, code, label`, + [req.params.id, req.user.sub] + ); + return result.rows[0] || null; + }); + if (!row) return res.status(404).json({ error: "MwSt.-/Kostenart nicht gefunden" }); + await writeAudit({ actorId: req.user.sub, action: "FINANCE_TAX_CODE_DISABLED", entityType: "finance_tax_code", entityId: row.id, metadata: row, ipAddress: req.ip }); + res.json({ ok: true }); + } catch (err) { + next(err); + } +}); + +router.get("/projects", async (req, res, next) => { + try { + const year = normalizeYear(req.query.year); + const rows = await withDbSession(req.user, (db) => getProjects(db, year)); + res.json(rows); + } catch (err) { + next(err); + } +}); + +router.get("/projects/next-code", requirePermission("finance.write", ["admin", "chair"]), async (req, res, next) => { + try { + const year = normalizeYear(req.query.year); + const projectCode = await withDbSession(req.user, (db) => getNextProjectCode(db, year)); + res.json({ project_code: projectCode, year }); + } catch (err) { + next(err); + } +}); + +router.post("/projects", requireMfa, requirePermission("finance.write", ["admin", "chair"]), validate(projectSchema), async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const requestedProjectCode = normalizeNullableText(req.body.project_code); + const requestedProjectCodeYear = parseGeneratedProjectCodeYear(requestedProjectCode); + let projectCode = requestedProjectCode; + + if (requestedProjectCodeYear) { + await db.query("SELECT pg_advisory_xact_lock(hashtext($1))", [`finance_project_code:${requestedProjectCodeYear}`]); + const duplicate = await db.query(`SELECT 1 FROM finance_project WHERE project_code = $1`, [requestedProjectCode]); + if (duplicate.rows[0]) { + projectCode = await getNextProjectCode(db, requestedProjectCodeYear); + } + } + + if (!projectCode) { + projectCode = await getNextProjectCode(db, req.body.annual_budget_year); + } + + const insert = await db.query( + `INSERT INTO finance_project(project_code, name, description, status, calculation_mode, committee_id, created_by, updated_by) + VALUES ($1,$2,$3,$4,$5,$6,$7,$7) + RETURNING *`, + [ + projectCode, + req.body.name, + normalizeNullableText(req.body.description), + req.body.status, + req.body.calculation_mode, + normalizeNullableNumber(req.body.committee_id), + req.user.sub, + ] + ); + const project = insert.rows[0]; + await syncProjectBudgets(db, project.id, req.body, req.user.sub); + return project; + }); + + await writeAudit({ actorId: req.user.sub, action: "FINANCE_PROJECT_CREATED", entityType: "finance_project", entityId: row.id, metadata: req.body, ipAddress: req.ip }); + res.status(201).json(row); + } catch (err) { + if (err.code === "23505") return res.status(409).json({ error: "Die Projekt-Nr. ist bereits vergeben." }); + next(err); + } +}); + +router.put("/projects/:id", requireMfa, requirePermission("finance.write", ["admin", "chair"]), validate(projectSchema.partial()), async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const current = await db.query(`SELECT id FROM finance_project WHERE id = $1::bigint AND deleted_at IS NULL`, [req.params.id]); + if (!current.rows[0]) return null; + + const result = await db.query( + `UPDATE finance_project + SET project_code = COALESCE($2, project_code), + name = COALESCE($3, name), + description = $4, + status = COALESCE($5, status), + calculation_mode = COALESCE($6, calculation_mode), + committee_id = $7, + updated_by = $8, + updated_at = NOW() + WHERE id = $1::bigint + RETURNING *`, + [ + req.params.id, + normalizeNullableText(req.body.project_code), + req.body.name, + normalizeNullableText(req.body.description), + req.body.status, + req.body.calculation_mode, + normalizeNullableNumber(req.body.committee_id), + req.user.sub, + ] + ); + await syncProjectBudgets(db, req.params.id, req.body, req.user.sub); + return result.rows[0]; + }); + + if (!row) return res.status(404).json({ error: "Finanzprojekt nicht gefunden" }); + await writeAudit({ actorId: req.user.sub, action: "FINANCE_PROJECT_UPDATED", entityType: "finance_project", entityId: row.id, metadata: req.body, ipAddress: req.ip }); + res.json(row); + } catch (err) { + if (err.code === "23505") return res.status(409).json({ error: "Die Projekt-Nr. ist bereits vergeben." }); + next(err); + } +}); + +router.delete("/projects/:id", requireMfa, requirePermission("finance.delete", ["admin", "chair"]), async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const result = await db.query( + `UPDATE finance_project + SET deleted_at = NOW(), updated_by = $2, updated_at = NOW() + WHERE id = $1::bigint AND deleted_at IS NULL + RETURNING id, name`, + [req.params.id, req.user.sub] + ); + return result.rows[0] || null; + }); + if (!row) return res.status(404).json({ error: "Finanzprojekt nicht gefunden" }); + await writeAudit({ actorId: req.user.sub, action: "FINANCE_PROJECT_DELETED", entityType: "finance_project", entityId: row.id, metadata: row, ipAddress: req.ip }); + res.json({ ok: true }); + } catch (err) { + next(err); + } +}); + +router.get("/expenses", async (req, res, next) => { + try { + const year = req.query.year ? normalizeYear(req.query.year) : null; + const projectId = req.query.project_id ? Number(req.query.project_id) : null; + const rows = await withDbSession(req.user, (db) => getExpenseRows(db, { year, projectId })); + res.json(rows); + } catch (err) { + next(err); + } +}); + +router.post("/expenses", requireMfa, requirePermission("finance.write", ["admin", "chair"]), validate(expenseSchema), async (req, res, next) => { + try { + const budgetYear = yearFromDate(req.body.expense_date); + + const row = await withDbSession(req.user, async (db) => { + const { lines, totals } = await normalizeExpenseLines(db, req.body); + const primaryLine = lines[0]; + const result = await db.query( + `INSERT INTO finance_expense( + project_id, expense_date, budget_year, title, vendor, cost_category, + net_amount, tax_rate_percent, tax_amount, gross_amount, currency, payment_status, notes, + created_by, updated_by + ) VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$14) + RETURNING *`, + [ + req.body.project_id, + req.body.expense_date, + budgetYear, + req.body.title, + normalizeNullableText(req.body.vendor), + normalizeNullableText(req.body.cost_category) || primaryLine?.tax_code_key || primaryLine?.description || null, + totals.net, + primaryLine?.tax_rate_percent || 0, + totals.tax, + totals.gross, + (req.body.currency || "EUR").toUpperCase(), + req.body.payment_status, + normalizeNullableText(req.body.notes), + req.user.sub, + ] + ); + await replaceExpenseLines(db, result.rows[0].id, lines); + return result.rows[0]; + }); + + await writeAudit({ actorId: req.user.sub, action: "FINANCE_EXPENSE_CREATED", entityType: "finance_expense", entityId: row.id, metadata: req.body, ipAddress: req.ip }); + res.status(201).json(row); + } catch (err) { + next(err); + } +}); + +router.put("/expenses/:id", requireMfa, requirePermission("finance.write", ["admin", "chair"]), validate(expenseSchema.partial()), async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const current = await db.query(`SELECT * FROM finance_expense WHERE id = $1::bigint AND deleted_at IS NULL`, [req.params.id]); + const old = current.rows[0]; + if (!old) return null; + + const nextBody = { + project_id: req.body.project_id ?? old.project_id, + expense_date: req.body.expense_date || normalizeDateString(old.expense_date), + title: req.body.title ?? old.title, + vendor: req.body.vendor !== undefined ? req.body.vendor : old.vendor, + cost_category: req.body.cost_category !== undefined ? req.body.cost_category : old.cost_category, + net_amount: req.body.net_amount !== undefined ? req.body.net_amount : old.net_amount, + tax_rate_percent: req.body.tax_rate_percent !== undefined ? req.body.tax_rate_percent : old.tax_rate_percent, + currency: req.body.currency || old.currency, + payment_status: req.body.payment_status || old.payment_status, + notes: req.body.notes !== undefined ? req.body.notes : old.notes, + lines: req.body.lines, + }; + const { lines, totals } = await normalizeExpenseLines(db, nextBody, old); + const primaryLine = lines[0]; + const budgetYear = yearFromDate(nextBody.expense_date); + + const result = await db.query( + `UPDATE finance_expense + SET project_id = $2, + expense_date = $3, + budget_year = $4, + title = $5, + vendor = $6, + cost_category = $7, + net_amount = $8, + tax_rate_percent = $9, + tax_amount = $10, + gross_amount = $11, + currency = $12, + payment_status = $13, + notes = $14, + updated_by = $15, + updated_at = NOW() + WHERE id = $1::bigint + RETURNING *`, + [ + req.params.id, + nextBody.project_id, + nextBody.expense_date, + budgetYear, + nextBody.title, + normalizeNullableText(nextBody.vendor), + normalizeNullableText(nextBody.cost_category) || primaryLine?.tax_code_key || primaryLine?.description || null, + totals.net, + primaryLine?.tax_rate_percent || 0, + totals.tax, + totals.gross, + nextBody.currency.toUpperCase(), + nextBody.payment_status, + normalizeNullableText(nextBody.notes), + req.user.sub, + ] + ); + await replaceExpenseLines(db, req.params.id, lines); + return result.rows[0]; + }); + + if (!row) return res.status(404).json({ error: "Ausgabe nicht gefunden" }); + await writeAudit({ actorId: req.user.sub, action: "FINANCE_EXPENSE_UPDATED", entityType: "finance_expense", entityId: row.id, metadata: req.body, ipAddress: req.ip }); + res.json(row); + } catch (err) { + next(err); + } +}); + +router.delete("/expenses/:id", requireMfa, requirePermission("finance.delete", ["admin", "chair"]), async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const result = await db.query( + `UPDATE finance_expense + SET deleted_at = NOW(), updated_by = $2, updated_at = NOW() + WHERE id = $1::bigint AND deleted_at IS NULL + RETURNING id, title`, + [req.params.id, req.user.sub] + ); + return result.rows[0] || null; + }); + if (!row) return res.status(404).json({ error: "Ausgabe nicht gefunden" }); + await writeAudit({ actorId: req.user.sub, action: "FINANCE_EXPENSE_DELETED", entityType: "finance_expense", entityId: row.id, metadata: row, ipAddress: req.ip }); + res.json({ ok: true }); + } catch (err) { + next(err); + } +}); + +router.post( + "/expenses/:id/documents/upload", + requireMfa, + requirePermission("finance.write", ["admin", "chair"]), + upload.single("file"), + async (req, res, next) => { + try { + if (!req.file) return res.status(400).json({ error: "Datei fehlt" }); + + const scan = await scanBuffer(req.file.buffer); + if (!scan.clean) { + await writeAudit({ actorId: req.user.sub, action: "FINANCE_DOCUMENT_REJECTED", entityType: "finance_expense", entityId: Number(req.params.id), metadata: { scan: scan.raw, file_name: req.file.originalname }, ipAddress: req.ip }); + return res.status(422).json({ error: "Datei durch Virenscan abgelehnt", scan_result: scan.raw }); + } + + const mime = await fileTypeFromBuffer(req.file.buffer); + const detectedMime = mime?.mime || req.file.mimetype || "application/octet-stream"; + const sha256 = crypto.createHash("sha256").update(req.file.buffer).digest("hex"); + const storageKey = `finance/${new Date().toISOString().slice(0, 10)}/${uuidv4()}-${req.file.originalname.replace(/[^a-zA-Z0-9._-]/g, "_")}`; + const docMeta = await saveObject(storageKey, req.file.buffer, detectedMime); + + const document = await withDbSession(req.user, async (db) => { + const expense = await db.query( + `SELECT e.id, e.title, e.project_id, p.name AS project_name + FROM finance_expense e + JOIN finance_project p ON p.id = e.project_id + WHERE e.id = $1::bigint + AND e.deleted_at IS NULL`, + [req.params.id] + ); + if (!expense.rows[0]) return null; + + const insert = await db.query( + `INSERT INTO document_item( + document_number, title, document_type, description, version_label, + file_name, storage_path, storage_provider, mime_type, size_bytes, sha256_hash, + confidentiality_level, uploaded_by, scan_status, scan_engine, scan_result, uploaded_at + ) VALUES ($1,$2,'finance_receipt',$3,'v1',$4,$5,$6,$7,$8,$9,'intern',$10,'clean','clamav',$11,NOW()) + RETURNING id, document_number, title, file_name, mime_type, size_bytes, scan_status, uploaded_at`, + [ + generateDocumentNumber(), + normalizeNullableText(req.body.title) || `Beleg: ${expense.rows[0].title}`, + normalizeNullableText(req.body.description) || `Finanzbeleg zu Ausgabe ${expense.rows[0].title} im Projekt ${expense.rows[0].project_name}`, + req.file.originalname, + docMeta.storage_path, + docMeta.storage_provider, + detectedMime, + req.file.size, + sha256, + req.user.sub, + scan.raw, + ] + ); + + const row = insert.rows[0]; + await db.query( + `UPDATE document_item + SET version_number = 1, + version_group_id = id + WHERE id = $1::bigint`, + [row.id] + ); + await db.query( + `INSERT INTO finance_expense_document(expense_id, document_id, created_by) + VALUES ($1,$2,$3) + ON CONFLICT DO NOTHING`, + [req.params.id, row.id, req.user.sub] + ); + await db.query( + `INSERT INTO document_scan_event(document_id, scanned_by_user_id, status, engine, result_text, scanned_at) + VALUES ($1,$2,'clean','clamav',$3,NOW())`, + [row.id, req.user.sub, scan.raw] + ); + return row; + }); + + if (!document) return res.status(404).json({ error: "Ausgabe nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "FINANCE_DOCUMENT_UPLOADED", + entityType: "document", + entityId: document.id, + metadata: { expense_id: Number(req.params.id), sha256, storage_provider: docMeta.storage_provider }, + ipAddress: req.ip, + }); + + res.status(201).json(document); + } catch (err) { + next(err); + } + } +); + +async function getFinanceDocument(user, documentId) { + return withDbSession(user, async (db) => { + const result = await db.query( + `SELECT d.id, d.title, d.file_name, d.storage_path, d.mime_type, d.scan_status + FROM document_item d + JOIN finance_expense_document fed ON fed.document_id = d.id + JOIN finance_expense fe ON fe.id = fed.expense_id AND fe.deleted_at IS NULL + WHERE d.id = $1::bigint + AND d.deleted_at IS NULL + LIMIT 1`, + [documentId] + ); + return result.rows[0] || null; + }); +} + +async function streamFinanceDocument(req, res, next, disposition = "attachment") { + try { + const row = await getFinanceDocument(req.user, req.params.id); + if (!row) return res.status(404).json({ error: "Beleg nicht gefunden" }); + if (row.scan_status !== "clean") return res.status(409).json({ error: "Beleg nicht freigegeben" }); + + const { stream, contentType } = await getObjectStream(row.storage_path); + const safeFilename = encodeURIComponent(row.file_name || row.title || `beleg-${row.id}`); + res.setHeader("Content-Type", contentType || row.mime_type || "application/octet-stream"); + res.setHeader("Content-Disposition", `${disposition}; filename="${safeFilename}"`); + res.setHeader("Cache-Control", "no-store"); + + await writeAudit({ + actorId: req.user.sub, + action: disposition === "inline" ? "FINANCE_DOCUMENT_VIEWED" : "FINANCE_DOCUMENT_DOWNLOADED", + entityType: "document", + entityId: row.id, + ipAddress: req.ip, + }); + + stream.pipe(res); + } catch (err) { + next(err); + } +} + +router.get("/documents/:id/download", requireMfa, async (req, res, next) => { + await streamFinanceDocument(req, res, next, "attachment"); +}); + +router.get("/documents/:id/view", requireMfa, async (req, res, next) => { + await streamFinanceDocument(req, res, next, "inline"); +}); + +export default router; diff --git a/backend/src/modules/kummerkasten/routes.js b/backend/src/modules/kummerkasten/routes.js new file mode 100644 index 0000000..05fb857 --- /dev/null +++ b/backend/src/modules/kummerkasten/routes.js @@ -0,0 +1,375 @@ +import express from "express"; +import argon2 from "argon2"; +import jwt from "jsonwebtoken"; +import { z } from "zod"; +import { authenticate, requireMfa } from "../../middleware/auth.js"; +import { requirePermission } from "../../middleware/rbac.js"; +import { validate } from "../../middleware/validate.js"; +import { pool, query, withDbSession } from "../../config/db.js"; +import { env } from "../../config/env.js"; +import { writeAudit } from "../../utils/audit.js"; + +export const publicKummerkastenRouter = express.Router(); +const adminRouter = express.Router(); + +const PUBLIC_TOKEN_SCOPE = "kummerkasten"; +const PUBLIC_TOKEN_EXPIRES_IN = "4h"; + +const settingsSchema = z.object({ + enabled: z.boolean().optional(), + access_password: z.string().max(200).optional().or(z.literal("")), + clear_password: z.boolean().optional(), + intro_text: z.string().max(4000).optional().nullable(), + target_committee_id: z.coerce.number().int().positive().optional().nullable(), +}); + +const accessSchema = z.object({ + password: z.string().min(1).max(200), +}); + +const submitSchema = z.object({ + public_access_token: z.string().min(10), + title: z.string().min(3).max(220), + description: z.string().min(3).max(8000), + submitter_name: z.string().max(255).optional().nullable(), + submitter_contact: z.string().max(255).optional().nullable(), +}); + +function normalizeText(value) { + if (value === undefined || value === null) return null; + const trimmed = String(value).trim(); + return trimmed ? trimmed : null; +} + +function shorten(value, maxLength) { + const text = String(value || "").trim(); + if (text.length <= maxLength) return text; + return `${text.slice(0, Math.max(0, maxLength - 1))}…`; +} + +function signPublicToken() { + return jwt.sign( + { scope: PUBLIC_TOKEN_SCOPE, setting_id: 1 }, + env.jwtAccessSecret, + { expiresIn: PUBLIC_TOKEN_EXPIRES_IN } + ); +} + +function verifyPublicToken(token) { + try { + const decoded = jwt.verify(token, env.jwtAccessSecret); + return decoded?.scope === PUBLIC_TOKEN_SCOPE && Number(decoded?.setting_id) === 1; + } catch { + return false; + } +} + +async function getSetting(db = null) { + const executor = db || { query }; + const result = await executor.query( + `SELECT s.id, + s.enabled, + s.access_password_hash, + s.intro_text, + s.target_committee_id, + c.name AS target_committee_name, + s.updated_at + FROM kummerkasten_setting s + LEFT JOIN committee c ON c.id = s.target_committee_id + WHERE s.id = 1` + ); + return result.rows[0] || null; +} + +function publicStatus(setting) { + return { + enabled: Boolean(setting?.enabled), + password_required: Boolean(setting?.access_password_hash), + intro_text: setting?.intro_text || "Reichen Sie hier vertraulich einen Vorschlag oder ein Anliegen für die Tagesordnung ein.", + target_committee_name: setting?.target_committee_name || null, + }; +} + +function adminStatus(setting) { + return { + enabled: Boolean(setting?.enabled), + password_set: Boolean(setting?.access_password_hash), + intro_text: setting?.intro_text || "", + target_committee_id: setting?.target_committee_id || "", + target_committee_name: setting?.target_committee_name || null, + updated_at: setting?.updated_at || null, + }; +} + +function buildAgendaDescription({ description, submitterName, submitterContact, targetCommitteeName }) { + const parts = [ + `Kummerkasten-Einreichung vom ${new Date().toLocaleDateString("de-DE")}`, + ]; + + if (targetCommitteeName) parts.push(`Ziel-Gremium: ${targetCommitteeName}`); + if (submitterName) parts.push(`Name: ${submitterName}`); + if (submitterContact) parts.push(`Kontakt: ${submitterContact}`); + + parts.push("", "Beschreibung:", description); + + return parts.join("\n"); +} + +publicKummerkastenRouter.get("/status", async (req, res, next) => { + try { + const setting = await getSetting(); + res.json(publicStatus(setting)); + } catch (err) { + next(err); + } +}); + +publicKummerkastenRouter.post("/access", validate(accessSchema), async (req, res, next) => { + try { + const setting = await getSetting(); + if (!setting?.enabled) { + return res.status(404).json({ error: "Der Kummerkasten ist derzeit nicht aktiv." }); + } + if (!setting.access_password_hash) { + return res.status(403).json({ error: "Für den Kummerkasten ist noch kein Kennwort gesetzt." }); + } + + const ok = await argon2.verify(setting.access_password_hash, req.body.password); + if (!ok) { + return res.status(401).json({ error: "Kennwort ist nicht korrekt." }); + } + + res.json({ accessToken: signPublicToken(), expiresIn: PUBLIC_TOKEN_EXPIRES_IN }); + } catch (err) { + next(err); + } +}); + +publicKummerkastenRouter.post("/submit", validate(submitSchema), async (req, res, next) => { + try { + const setting = await getSetting(); + if (!setting?.enabled) { + return res.status(404).json({ error: "Der Kummerkasten ist derzeit nicht aktiv." }); + } + if (!setting.access_password_hash) { + return res.status(403).json({ error: "Für den Kummerkasten ist noch kein Kennwort gesetzt." }); + } + if (!verifyPublicToken(req.body.public_access_token)) { + return res.status(401).json({ error: "Zugriff abgelaufen. Bitte Kennwort erneut eingeben." }); + } + + const payload = { + title: req.body.title.trim(), + description: req.body.description.trim(), + submitter_name: normalizeText(req.body.submitter_name), + submitter_contact: normalizeText(req.body.submitter_contact), + }; + + const agendaTitle = shorten(`Kummerkasten: ${payload.title}`, 255); + const agendaDescription = buildAgendaDescription({ + description: payload.description, + submitterName: payload.submitter_name, + submitterContact: payload.submitter_contact, + targetCommitteeName: setting.target_committee_name, + }); + + const client = await pool.connect(); + let result; + try { + await client.query("BEGIN"); + const agendaResult = await client.query( + `INSERT INTO meeting_agenda_item(meeting_id, agenda_number, title, description) + VALUES (NULL, NULL, $1, $2) + RETURNING id, title, description, created_at`, + [agendaTitle, agendaDescription] + ); + + const agendaItem = agendaResult.rows[0]; + const submissionResult = await client.query( + `INSERT INTO kummerkasten_submission( + agenda_item_id, + title, + description, + submitter_name, + submitter_contact, + target_committee_id + ) + VALUES ($1, $2, $3, $4, $5, $6) + RETURNING id, created_at`, + [ + agendaItem.id, + payload.title, + payload.description, + payload.submitter_name, + payload.submitter_contact, + setting.target_committee_id || null, + ] + ); + + await client.query("COMMIT"); + result = { agendaItem, submission: submissionResult.rows[0] }; + } catch (err) { + await client.query("ROLLBACK"); + throw err; + } finally { + client.release(); + } + + await writeAudit({ + actorId: null, + action: "KUMMERKASTEN_SUBMITTED", + entityType: "agenda_item", + entityId: result.agendaItem.id, + metadata: { submission_id: result.submission.id }, + ipAddress: req.ip, + }); + + res.status(201).json({ + ok: true, + submission_id: result.submission.id, + agenda_item_id: result.agendaItem.id, + title: result.agendaItem.title, + }); + } catch (err) { + next(err); + } +}); + +adminRouter.use(authenticate); + +adminRouter.get( + "/settings", + requirePermission("kummerkasten.configure", ["admin"]), + async (req, res, next) => { + try { + const data = await withDbSession(req.user, async (db) => { + const setting = await getSetting(db); + const committeeResult = await db.query( + `SELECT id, name + FROM committee + ORDER BY name ASC` + ); + const submissionsResult = await db.query( + `SELECT s.id, + s.agenda_item_id, + s.title, + s.submitter_name, + s.submitter_contact, + s.status, + s.created_at, + ai.title AS agenda_title, + c.name AS target_committee_name + FROM kummerkasten_submission s + LEFT JOIN meeting_agenda_item ai ON ai.id = s.agenda_item_id + LEFT JOIN committee c ON c.id = s.target_committee_id + ORDER BY s.created_at DESC + LIMIT 25` + ); + + return { + settings: adminStatus(setting), + committees: committeeResult.rows, + submissions: submissionsResult.rows, + public_path: "/kummerkasten", + }; + }); + + res.json(data); + } catch (err) { + next(err); + } + } +); + +adminRouter.put( + "/settings", + requireMfa, + requirePermission("kummerkasten.configure", ["admin"]), + validate(settingsSchema), + async (req, res, next) => { + try { + const passwordInput = typeof req.body.access_password === "string" ? req.body.access_password.trim() : ""; + const payload = { + enabled: req.body.enabled, + intro_text: normalizeText(req.body.intro_text) || "Reichen Sie hier vertraulich einen Vorschlag oder ein Anliegen für die Tagesordnung ein.", + target_committee_id: req.body.target_committee_id || null, + access_password: passwordInput, + clear_password: Boolean(req.body.clear_password), + }; + + if (payload.access_password && payload.access_password.length < 4) { + throw Object.assign(new Error("Kennwort zu kurz"), { + status: 400, + publicMessage: "Das globale Kennwort muss mindestens 4 Zeichen lang sein.", + }); + } + + const data = await withDbSession(req.user, async (db) => { + const current = await getSetting(db); + let passwordHash = current?.access_password_hash || null; + + // Ein neu eingegebenes Kennwort gewinnt immer vor "Kennwort entfernen". + // Dadurch kann ein Admin in einem Schritt "einschalten + Kennwort setzen" speichern, + // auch wenn die Checkbox versehentlich noch aktiv ist. + if (payload.clear_password && !payload.access_password) { + passwordHash = null; + } + if (payload.access_password) { + passwordHash = await argon2.hash(payload.access_password); + } + + const nextEnabled = payload.enabled ?? Boolean(current?.enabled); + if (nextEnabled && !passwordHash) { + throw Object.assign(new Error("Kennwort erforderlich"), { + status: 400, + publicMessage: "Zum Einschalten des Kummerkastens muss zuerst ein Kennwort eingegeben und gespeichert werden.", + }); + } + + await db.query( + `INSERT INTO kummerkasten_setting( + id, + enabled, + access_password_hash, + intro_text, + target_committee_id, + created_by, + updated_by + ) + VALUES (1, $1, $2, $3, $4, $5, $5) + ON CONFLICT (id) DO UPDATE + SET enabled = EXCLUDED.enabled, + access_password_hash = EXCLUDED.access_password_hash, + intro_text = EXCLUDED.intro_text, + target_committee_id = EXCLUDED.target_committee_id, + updated_by = EXCLUDED.updated_by`, + [ + nextEnabled, + passwordHash, + payload.intro_text, + payload.target_committee_id, + req.user.sub, + ] + ); + + const setting = await getSetting(db); + return { settings: adminStatus(setting) }; + }); + + await writeAudit({ + actorId: req.user.sub, + action: "KUMMERKASTEN_SETTINGS_UPDATED", + entityType: "kummerkasten_setting", + entityId: 1, + metadata: { enabled: data.settings.enabled, password_set: data.settings.password_set }, + ipAddress: req.ip, + }); + + res.json(data); + } catch (err) { + next(err); + } + } +); + +export default adminRouter; diff --git a/backend/src/modules/meetings/routes.js b/backend/src/modules/meetings/routes.js new file mode 100644 index 0000000..63c4ca6 --- /dev/null +++ b/backend/src/modules/meetings/routes.js @@ -0,0 +1,1754 @@ +import express from "express"; +import { z } from "zod"; +import { authenticate, requireMfa } from "../../middleware/auth.js"; +import { requirePermission, requireRoles } from "../../middleware/rbac.js"; +import { validate } from "../../middleware/validate.js"; +import { withDbSession } from "../../config/db.js"; +import { writeAudit } from "../../utils/audit.js"; +import { ensureMeetingProtocolDocument } from "../../services/meetingProtocol.js"; +import { ensureMeetingDecisionReportDocument } from "../../services/meetingDecisionReport.js"; + +const router = express.Router(); +router.use(authenticate); + +const meetingTypeEnum = z.enum(["ordentlich", "ausserordentlich"]); +const statusEnum = z.enum(["geplant", "ungeplant", "gestartet", "beendet"]); + +const nullablePositiveInt = z.preprocess( + (value) => { + if (value === "" || value === null || value === undefined) return undefined; + return value; + }, + z.coerce.number().int().positive().optional() +); + +function normalizeBooleanInput(value) { + if (value === "" || value === null || value === undefined) return undefined; + if (typeof value === "boolean") return value; + const normalized = String(value).trim().toLowerCase(); + if (["1", "true", "yes", "ja", "on"].includes(normalized)) return true; + if (["0", "false", "no", "nein", "off"].includes(normalized)) return false; + return value; +} + +const requiredBooleanAnswer = z.preprocess( + normalizeBooleanInput, + z.boolean({ + required_error: "Bitte Beschlussfähigkeit mit Ja oder Nein bestätigen", + invalid_type_error: "Bitte Beschlussfähigkeit mit Ja oder Nein bestätigen", + }) +); + +const optionalBooleanAnswer = z.preprocess(normalizeBooleanInput, z.boolean().optional()); + +const dateString = z + .string() + .min(1, "Sitzungsdatum ist erforderlich") + .regex(/^\d{4}-\d{2}-\d{2}$/, "Ungültiges Sitzungsdatum"); + +const createSchema = z.object({ + meeting_number: z.string().min(3).max(50).optional().nullable(), + title: z.string().min(3).max(255), + meeting_type: meetingTypeEnum.default("ordentlich"), + meeting_date: dateString, + start_time: z.string().optional().nullable(), + end_time: z.string().optional().nullable(), + location: z.string().max(255).optional().nullable(), + status: statusEnum.default("geplant"), + is_quorate: optionalBooleanAnswer, + protocol_text: z.string().max(30000).optional().nullable(), + committee_id: nullablePositiveInt, + chair_user_id: nullablePositiveInt, + secretary_user_id: nullablePositiveInt, +}); + +const updateSchema = z.object({ + title: z.string().min(3).max(255).optional(), + meeting_type: meetingTypeEnum.optional(), + meeting_date: dateString.optional(), + start_time: z.string().optional().nullable(), + end_time: z.string().optional().nullable(), + location: z.string().max(255).optional().nullable(), + status: statusEnum.optional(), + is_quorate: optionalBooleanAnswer, + protocol_text: z.string().max(30000).optional().nullable(), + committee_id: nullablePositiveInt, + chair_user_id: nullablePositiveInt, + secretary_user_id: nullablePositiveInt, +}); + +const assignAgendaSchema = z.object({ + agenda_item_id: z.coerce.number().int().positive(), +}); + +const startMeetingSchema = z.object({ + is_quorate: requiredBooleanAnswer, +}); + +const createAndAssignAgendaSchema = z.object({ + title: z.string().min(3).max(255), + description: z.string().max(8000).optional().nullable(), + duration_minutes: z.coerce.number().int().min(0).max(600).optional().nullable(), + case_id: nullablePositiveInt, +}); + +const agendaCommentSchema = z.object({ + comment_text: z.string().min(1).max(10000), + visibility: z.enum(["intern", "vertraulich"]).default("intern"), + include_in_protocol: z.coerce.boolean().optional().default(false), +}); + +const agendaCommentUpdateSchema = agendaCommentSchema.partial(); + +const agendaReturnSchema = z.object({ + remark: z.string().min(1).max(10000), + return_type: z.enum(["rueckfrage", "klaerung", "bemerkung"]).default("rueckfrage"), + include_in_protocol: z.coerce.boolean().optional().default(true), +}); + +function normalizeNullableText(value) { + if (value === undefined) return undefined; + if (value === null) return null; + const trimmed = String(value).trim(); + return trimmed ? trimmed : null; +} + +function normalizeOptionalText(value) { + if (value === undefined) return undefined; + if (value === null) return null; + const trimmed = String(value).trim(); + return trimmed || null; +} + +function normalizeNullableNumber(value) { + if (value === undefined) return undefined; + if (value === null || value === "") return null; + return Number(value); +} + +function parsePositiveInt(value, fallback) { + const num = Number(value); + if (!Number.isInteger(num) || num <= 0) return fallback; + return num; +} + +function parseBoolean(value, fallback = false) { + if (value === undefined || value === null || value === "") return fallback; + if (typeof value === "boolean") return value; + const normalized = String(value).trim().toLowerCase(); + if (["1", "true", "yes", "ja", "on"].includes(normalized)) return true; + if (["0", "false", "no", "nein", "off"].includes(normalized)) return false; + return fallback; +} + +function assertQuorumAnswer(value) { + if (typeof value === "boolean") return; + throw Object.assign(new Error("Beschlussfähigkeit muss bestätigt werden"), { + status: 400, + publicMessage: "Bitte vor dem Starten bestätigen, ob die Sitzung beschlussfähig ist.", + }); +} + +function buildMeetingSearchPattern(raw) { + const value = String(raw ?? "").trim(); + if (!value) return null; + + const escaped = value.replace(/\\/g, "\\\\"); + const hasWildcard = /[%_]/.test(escaped); + + return hasWildcard ? escaped : `%${escaped}%`; +} + +function mapMeetingRow(row) { + if (!row) return null; + return { + id: row.id, + meeting_number: row.meeting_number, + title: row.title, + meeting_type: row.meeting_type, + meeting_date: row.meeting_date, + start_time: row.start_time, + end_time: row.end_time, + location: row.location, + status: row.status, + is_quorate: row.is_quorate, + quorum_recorded_at: row.quorum_recorded_at, + quorum_recorded_by: row.quorum_recorded_by, + quorum_recorded_by_name: row.quorum_recorded_by_name, + protocol_text: row.protocol_text, + committee_id: row.committee_id, + committee_name: row.committee_name, + chair_user_id: row.chair_user_id, + chair_name: row.chair_name, + secretary_user_id: row.secretary_user_id, + secretary_name: row.secretary_name, + agenda_item_count: row.agenda_item_count ?? 0, + created_at: row.created_at, + updated_at: row.updated_at, + }; +} + +async function getMeetingList(db, options = {}) { + const page = parsePositiveInt(options.page, 1); + const pageSize = Math.min(parsePositiveInt(options.pageSize, 25), 100); + const showEnded = parseBoolean(options.showEnded, false); + const searchPattern = buildMeetingSearchPattern(options.q); + + const where = []; + const values = []; + + if (!showEnded) { + where.push(`m.status <> 'beendet'`); + } + + if (searchPattern) { + values.push(searchPattern); + const idx = values.length; + + where.push(`( + m.meeting_number ILIKE $${idx} ESCAPE '\' + OR m.title ILIKE $${idx} ESCAPE '\' + OR COALESCE(m.location, '') ILIKE $${idx} ESCAPE '\' + OR COALESCE(m.meeting_type, '') ILIKE $${idx} ESCAPE '\' + OR COALESCE(m.status, '') ILIKE $${idx} ESCAPE '\' + OR COALESCE(c.name, '') ILIKE $${idx} ESCAPE '\' + OR COALESCE(cu.full_name, '') ILIKE $${idx} ESCAPE '\' + OR COALESCE(su.full_name, '') ILIKE $${idx} ESCAPE '\' + OR EXISTS ( + SELECT 1 + FROM meeting_agenda_item ai_search + LEFT JOIN br_case case_search ON case_search.id = ai_search.case_id + WHERE ai_search.meeting_id = m.id + AND ( + COALESCE(ai_search.agenda_number, '') ILIKE $${idx} ESCAPE '\' + OR ai_search.title ILIKE $${idx} ESCAPE '\' + OR COALESCE(ai_search.description, '') ILIKE $${idx} ESCAPE '\' + OR COALESCE(case_search.case_number, '') ILIKE $${idx} ESCAPE '\' + OR COALESCE(case_search.title, '') ILIKE $${idx} ESCAPE '\' + OR COALESCE(case_search.summary, '') ILIKE $${idx} ESCAPE '\' + ) + ) + )`); + } + + const whereSql = where.length ? `WHERE ${where.join(" AND ")}` : ""; + + const countResult = await db.query( + ` + SELECT COUNT(*)::int AS total + FROM meeting m + LEFT JOIN committee c ON c.id = m.committee_id + LEFT JOIN app_user cu ON cu.id = m.chair_user_id + LEFT JOIN app_user su ON su.id = m.secretary_user_id + LEFT JOIN app_user qru ON qru.id = m.quorum_recorded_by + ${whereSql} + `, + values + ); + + const total = countResult.rows[0]?.total ?? 0; + const totalPages = Math.max(1, Math.ceil(total / pageSize)); + const offset = (page - 1) * pageSize; + + const listValues = [...values, pageSize, offset]; + const limitIdx = listValues.length - 1; + const offsetIdx = listValues.length; + + const listResult = await db.query( + ` + SELECT m.id, + m.meeting_number, + m.title, + m.meeting_type, + m.meeting_date, + m.start_time, + m.end_time, + m.location, + m.status, + m.is_quorate, + m.quorum_recorded_at, + m.quorum_recorded_by, + qru.full_name AS quorum_recorded_by_name, + m.protocol_text, + m.committee_id, + c.name AS committee_name, + m.chair_user_id, + cu.full_name AS chair_name, + m.secretary_user_id, + su.full_name AS secretary_name, + m.created_at, + m.updated_at, + ( + SELECT COUNT(*)::int + FROM meeting_agenda_item mai + WHERE mai.meeting_id = m.id + ) AS agenda_item_count + FROM meeting m + LEFT JOIN committee c ON c.id = m.committee_id + LEFT JOIN app_user cu ON cu.id = m.chair_user_id + LEFT JOIN app_user su ON su.id = m.secretary_user_id + LEFT JOIN app_user qru ON qru.id = m.quorum_recorded_by + ${whereSql} + ORDER BY m.meeting_date DESC, m.start_time NULLS LAST, m.id DESC + LIMIT $${limitIdx} + OFFSET $${offsetIdx} + `, + listValues + ); + + return { + items: listResult.rows.map(mapMeetingRow), + total, + page, + page_size: pageSize, + total_pages: totalPages, + show_ended: showEnded, + q: options.q ?? "", + }; +} + +async function getMeetingById(db, id) { + const result = await db.query( + ` + SELECT m.id, + m.meeting_number, + m.title, + m.meeting_type, + m.meeting_date, + m.start_time, + m.end_time, + m.location, + m.status, + m.is_quorate, + m.quorum_recorded_at, + m.quorum_recorded_by, + qru.full_name AS quorum_recorded_by_name, + m.protocol_text, + m.committee_id, + c.name AS committee_name, + m.chair_user_id, + cu.full_name AS chair_name, + m.secretary_user_id, + su.full_name AS secretary_name, + m.created_at, + m.updated_at, + ( + SELECT COUNT(*)::int + FROM meeting_agenda_item mai + WHERE mai.meeting_id = m.id + ) AS agenda_item_count + FROM meeting m + LEFT JOIN committee c ON c.id = m.committee_id + LEFT JOIN app_user cu ON cu.id = m.chair_user_id + LEFT JOIN app_user su ON su.id = m.secretary_user_id + LEFT JOIN app_user qru ON qru.id = m.quorum_recorded_by + WHERE m.id = $1 + `, + [id] + ); + + return mapMeetingRow(result.rows[0]); +} + +async function assertReferences(db, payload) { + if (payload.committee_id !== undefined && payload.committee_id !== null) { + const ref = await db.query(`SELECT id FROM committee WHERE id = $1`, [payload.committee_id]); + if (!ref.rows[0]) { + throw Object.assign(new Error("Ausschuss nicht gefunden"), { + status: 400, + publicMessage: "Ausschuss nicht gefunden", + }); + } + } + + for (const [field, label] of [ + ["chair_user_id", "Leitung"], + ["secretary_user_id", "Schriftführung"], + ]) { + if (payload[field] !== undefined && payload[field] !== null) { + const ref = await db.query( + ` + SELECT id + FROM app_user + WHERE id = $1 + AND is_active = TRUE + `, + [payload[field]] + ); + + if (!ref.rows[0]) { + throw Object.assign(new Error(`${label} nicht gefunden`), { + status: 400, + publicMessage: `${label} nicht gefunden`, + }); + } + } + } +} + +async function completeMeetingDecisions(db, meetingId, actorId) { + const result = await db.query( + `UPDATE decision + SET status = 'abgeschlossen', + updated_by = $2, + updated_at = NOW() + WHERE meeting_id = $1 + AND status <> 'abgeschlossen' + RETURNING id`, + [meetingId, actorId] + ); + + return result.rows.map((row) => row.id); +} + +async function cleanupMeetingAttachments(db, meetingId) { + const result = await db.query( + `WITH candidate_documents AS ( + SELECT DISTINCT d.id + FROM document_item d + LEFT JOIN br_case c ON c.id = d.case_id + LEFT JOIN meeting_agenda_item ai + ON ai.case_id = d.case_id + AND ai.meeting_id = $1 + WHERE d.deleted_at IS NULL + AND ( + (d.meeting_id = $1 AND COALESCE(c.legal_hold, FALSE) = FALSE) + OR (ai.meeting_id = $1 AND COALESCE(c.legal_hold, FALSE) = FALSE) + ) + ) + UPDATE document_item d + SET deleted_at = NOW(), + updated_at = NOW() + FROM candidate_documents cd + WHERE d.id = cd.id + RETURNING d.id, d.file_name, d.case_id, d.meeting_id`, + [meetingId] + ); + + return result.rows; +} + +async function finalizeMeetingClosure(db, meetingId, actorId) { + const completedDecisionIds = await completeMeetingDecisions(db, meetingId, actorId); + const cleanedAttachments = await cleanupMeetingAttachments(db, meetingId); + const protocolDocument = await ensureMeetingProtocolDocument({ + db, + meetingId: Number(meetingId), + actorId, + }); + const decisionReportDocument = await ensureMeetingDecisionReportDocument({ + db, + meetingId: Number(meetingId), + actorId, + }); + + return { + completedDecisionIds, + cleanedAttachments, + protocolDocument, + decisionReportDocument, + }; +} + +async function updateMeetingStatus(db, meetingId, status, actorId, options = {}) { + const current = await getMeetingById(db, meetingId); + if (!current) return null; + + const transitionedToEnded = status === "beendet" && current.status !== "beendet"; + + let result; + if (status === "gestartet") { + assertQuorumAnswer(options.isQuorate); + result = await db.query( + ` + UPDATE meeting + SET status = $2, + is_quorate = $3, + quorum_recorded_at = NOW(), + quorum_recorded_by = $4, + updated_by = $4 + WHERE id = $1 + RETURNING id + `, + [meetingId, status, options.isQuorate, actorId] + ); + } else { + result = await db.query( + ` + UPDATE meeting + SET status = $2, + updated_by = $3 + WHERE id = $1 + RETURNING id + `, + [meetingId, status, actorId] + ); + } + + if (!result.rows[0]) return null; + + let completedDecisionIds = []; + let cleanedAttachments = []; + let protocolDocument = null; + let decisionReportDocument = null; + + if (transitionedToEnded) { + const finalized = await finalizeMeetingClosure(db, meetingId, actorId); + completedDecisionIds = finalized.completedDecisionIds; + cleanedAttachments = finalized.cleanedAttachments; + protocolDocument = finalized.protocolDocument; + decisionReportDocument = finalized.decisionReportDocument; + } + + return { + meeting: await getMeetingById(db, meetingId), + transitionedToEnded, + completedDecisionIds, + cleanedAttachments, + protocolDocument, + decisionReportDocument, + }; +} + +async function getAgendaModalData(db, meetingId) { + const meeting = await getMeetingById(db, meetingId); + if (!meeting) return null; + + const [assigned, unassigned] = await Promise.all([ + db.query( + ` + SELECT ai.id, + ai.meeting_id, + ai.case_id, + c.case_number, + ai.agenda_number, + ai.title, + ai.description, + ai.duration_minutes, + ai.status, + ai.parent_agenda_item_id, + parent_ai.agenda_number AS parent_agenda_number, + parent_ai.title AS parent_title, + ai.root_agenda_item_id, + ai.follow_up_type, + ai.follow_up_note, + ai.follow_up_created_from_meeting_id, + source_meeting.meeting_number AS follow_up_source_meeting_number, + ai.follow_up_created_from_agenda_item_id, + ai.follow_up_created_at, + ai.follow_up_created_by, + fubu.full_name AS follow_up_created_by_name, + ai.returned_from_meeting_id, + ai.returned_at, + ai.returned_by, + ru.full_name AS returned_by_name, + COALESCE(ai.follow_up_note, last_return.remark) AS last_return_remark, + COALESCE(ai.follow_up_type, last_return.return_type) AS last_return_type, + last_return.follow_up_agenda_item_id, + ai.created_at, + ( + SELECT COUNT(*)::int + FROM document_item d + WHERE d.deleted_at IS NULL + AND d.scan_status = 'clean' + AND d.document_type <> 'protokoll' + AND ( + (ai.case_id IS NOT NULL AND d.case_id = ai.case_id) + OR (ai.meeting_id IS NOT NULL AND d.meeting_id = ai.meeting_id) + ) + ) AS report_count, + ( + SELECT COUNT(*)::int + FROM comment_item ci + WHERE ci.deleted_at IS NULL + AND ci.entity_type = 'agenda_item' + AND ci.entity_id = ai.id + ) AS comment_count, + ( + SELECT COUNT(*)::int + FROM comment_item ci + WHERE ci.deleted_at IS NULL + AND ci.entity_type = 'agenda_item' + AND ci.entity_id = ai.id + AND COALESCE(ci.include_in_protocol, FALSE) = TRUE + ) AS protocol_comment_count + FROM meeting_agenda_item ai + LEFT JOIN br_case c ON c.id = ai.case_id + LEFT JOIN meeting_agenda_item parent_ai ON parent_ai.id = ai.parent_agenda_item_id + LEFT JOIN meeting source_meeting ON source_meeting.id = ai.follow_up_created_from_meeting_id + LEFT JOIN app_user fubu ON fubu.id = ai.follow_up_created_by + LEFT JOIN app_user ru ON ru.id = ai.returned_by + LEFT JOIN LATERAL ( + SELECT l.remark, l.return_type, l.follow_up_agenda_item_id + FROM meeting_agenda_item_return_log l + WHERE l.agenda_item_id = ai.id + ORDER BY l.returned_at DESC, l.id DESC + LIMIT 1 + ) last_return ON TRUE + WHERE ai.meeting_id = $1 + ORDER BY + CASE + WHEN ai.agenda_number ~ '^[0-9]+$' THEN ai.agenda_number::int + ELSE NULL + END NULLS LAST, + ai.agenda_number NULLS LAST, + ai.id + `, + [meetingId] + ), + db.query( + ` + SELECT ai.id, + ai.meeting_id, + ai.case_id, + c.case_number, + ai.agenda_number, + ai.title, + ai.description, + ai.duration_minutes, + ai.status, + ai.parent_agenda_item_id, + parent_ai.agenda_number AS parent_agenda_number, + parent_ai.title AS parent_title, + ai.root_agenda_item_id, + ai.follow_up_type, + ai.follow_up_note, + ai.follow_up_created_from_meeting_id, + source_meeting.meeting_number AS follow_up_source_meeting_number, + ai.follow_up_created_from_agenda_item_id, + ai.follow_up_created_at, + ai.follow_up_created_by, + fubu.full_name AS follow_up_created_by_name, + ai.returned_from_meeting_id, + ai.returned_at, + ai.returned_by, + ru.full_name AS returned_by_name, + COALESCE(ai.follow_up_note, last_return.remark) AS last_return_remark, + COALESCE(ai.follow_up_type, last_return.return_type) AS last_return_type, + last_return.follow_up_agenda_item_id, + ai.created_at, + ( + SELECT COUNT(*)::int + FROM document_item d + WHERE d.deleted_at IS NULL + AND d.scan_status = 'clean' + AND d.document_type <> 'protokoll' + AND ai.case_id IS NOT NULL + AND d.case_id = ai.case_id + ) AS report_count + FROM meeting_agenda_item ai + LEFT JOIN br_case c ON c.id = ai.case_id + LEFT JOIN meeting_agenda_item parent_ai ON parent_ai.id = ai.parent_agenda_item_id + LEFT JOIN meeting source_meeting ON source_meeting.id = ai.follow_up_created_from_meeting_id + LEFT JOIN app_user fubu ON fubu.id = ai.follow_up_created_by + LEFT JOIN app_user ru ON ru.id = ai.returned_by + LEFT JOIN LATERAL ( + SELECT l.remark, l.return_type, l.follow_up_agenda_item_id + FROM meeting_agenda_item_return_log l + WHERE l.agenda_item_id = ai.id + ORDER BY l.returned_at DESC, l.id DESC + LIMIT 1 + ) last_return ON TRUE + WHERE ai.meeting_id IS NULL + ORDER BY ai.created_at DESC, ai.id DESC + ` + ), + ]); + + return { + meeting, + assigned: assigned.rows, + unassigned: unassigned.rows, + }; +} + +async function nextAgendaNumber(db, meetingId) { + const result = await db.query( + ` + SELECT COALESCE( + MAX( + CASE + WHEN agenda_number ~ '^[0-9]+$' THEN agenda_number::int + ELSE NULL + END + ), + 0 + ) + 1 AS next_number + FROM meeting_agenda_item + WHERE meeting_id = $1 + `, + [meetingId] + ); + + return String(result.rows[0].next_number); +} + +async function getAgendaItemReportData(db, meetingId, agendaItemId) { + const agendaResult = await db.query( + ` + SELECT ai.id, + ai.meeting_id, + ai.case_id, + ai.agenda_number, + ai.title, + ai.description, + ai.duration_minutes, + ai.created_at, + c.case_number, + c.title AS case_title, + c.summary AS case_summary + FROM meeting_agenda_item ai + LEFT JOIN br_case c ON c.id = ai.case_id + WHERE ai.id = $2::bigint + AND ai.meeting_id = $1::bigint + `, + [meetingId, agendaItemId] + ); + + const agendaItem = agendaResult.rows[0]; + if (!agendaItem) return null; + + const orderBy = ` + ORDER BY CASE WHEN d.document_type = 'bericht' THEN 0 ELSE 1 END, + d.uploaded_at DESC, + d.id DESC + `; + + async function runReportQuery(includeDeletedAtFilter) { + const deletedAtFilter = includeDeletedAtFilter ? "d.deleted_at IS NULL AND" : ""; + + if (agendaItem.case_id) { + return db.query( + ` + SELECT d.id, + d.document_number, + d.title, + d.document_type, + d.description, + d.file_name, + d.mime_type, + d.size_bytes, + d.uploaded_at, + d.scan_status, + d.case_id, + d.meeting_id, + uploader.full_name AS uploaded_by_name + FROM document_item d + LEFT JOIN app_user uploader ON uploader.id = d.uploaded_by + WHERE ${deletedAtFilter} + d.scan_status = 'clean' + AND d.document_type <> 'protokoll' + AND (d.case_id = $2::bigint OR d.meeting_id = $1::bigint) + ${orderBy} + `, + [meetingId, agendaItem.case_id] + ); + } + + return db.query( + ` + SELECT d.id, + d.document_number, + d.title, + d.document_type, + d.description, + d.file_name, + d.mime_type, + d.size_bytes, + d.uploaded_at, + d.scan_status, + d.case_id, + d.meeting_id, + uploader.full_name AS uploaded_by_name + FROM document_item d + LEFT JOIN app_user uploader ON uploader.id = d.uploaded_by + WHERE ${deletedAtFilter} + d.scan_status = 'clean' + AND d.document_type <> 'protokoll' + AND d.meeting_id = $1::bigint + ${orderBy} + `, + [meetingId] + ); + } + + let reportRows = []; + try { + reportRows = (await runReportQuery(true)).rows; + } catch (err) { + if (["42703", "42P18"].includes(err?.code)) { + reportRows = (await runReportQuery(false)).rows; + } else { + throw err; + } + } + + return { + meeting_id: Number(meetingId), + agenda_item: agendaItem, + reports: reportRows, + }; +} + +function mapAgendaComment(row) { + if (!row) return null; + return { + id: row.id, + entity_type: row.entity_type, + entity_id: row.entity_id, + comment_text: row.comment_text, + visibility: row.visibility, + include_in_protocol: Boolean(row.include_in_protocol), + author_user_id: row.author_user_id, + author_name: row.author_name, + created_at: row.created_at, + }; +} + +async function assertMeetingAgendaItem(db, meetingId, agendaItemId) { + const result = await db.query( + `SELECT id, + meeting_id, + agenda_number, + title, + description, + duration_minutes, + case_id, + status, + parent_agenda_item_id, + root_agenda_item_id + FROM meeting_agenda_item + WHERE id = $2::bigint + AND meeting_id = $1::bigint`, + [meetingId, agendaItemId] + ); + + const row = result.rows[0]; + if (!row) { + throw Object.assign(new Error("TOP oder Sitzung nicht gefunden"), { + status: 404, + publicMessage: "TOP oder Sitzung nicht gefunden", + }); + } + return row; +} + +async function getAgendaComments(db, meetingId, agendaItemId) { + const agendaItem = await assertMeetingAgendaItem(db, meetingId, agendaItemId); + const result = await db.query( + `SELECT c.id, + c.entity_type, + c.entity_id, + c.comment_text, + c.visibility, + COALESCE(c.include_in_protocol, FALSE) AS include_in_protocol, + c.author_user_id, + au.full_name AS author_name, + c.created_at + FROM comment_item c + LEFT JOIN app_user au ON au.id = c.author_user_id + WHERE c.deleted_at IS NULL + AND c.entity_type = 'agenda_item' + AND c.entity_id = $1::bigint + ORDER BY c.created_at DESC, c.id DESC`, + [agendaItemId] + ); + + return { + meeting_id: Number(meetingId), + agenda_item: agendaItem, + comments: result.rows.map(mapAgendaComment), + }; +} + +async function getAgendaComment(db, meetingId, agendaItemId, commentId) { + await assertMeetingAgendaItem(db, meetingId, agendaItemId); + const result = await db.query( + `SELECT c.id, + c.entity_type, + c.entity_id, + c.comment_text, + c.visibility, + COALESCE(c.include_in_protocol, FALSE) AS include_in_protocol, + c.author_user_id, + au.full_name AS author_name, + c.created_at + FROM comment_item c + LEFT JOIN app_user au ON au.id = c.author_user_id + WHERE c.deleted_at IS NULL + AND c.id = $1::bigint + AND c.entity_type = 'agenda_item' + AND c.entity_id = $2::bigint`, + [commentId, agendaItemId] + ); + return mapAgendaComment(result.rows[0]); +} + +router.get("/", async (req, res, next) => { + try { + const hasQueryMode = + req.query.show_ended !== undefined || + req.query.page !== undefined || + req.query.page_size !== undefined || + req.query.q !== undefined; + + if (hasQueryMode) { + const data = await withDbSession(req.user, (db) => + getMeetingList(db, { + showEnded: req.query.show_ended, + page: req.query.page, + pageSize: req.query.page_size, + q: req.query.q, + }) + ); + return res.json(data); + } + + const data = await withDbSession(req.user, (db) => + getMeetingList(db, { + showEnded: false, + page: 1, + pageSize: 100, + q: "", + }) + ); + + res.json(data.items); + } catch (err) { + next(err); + } +}); + +router.get("/:id", async (req, res, next) => { + try { + const row = await withDbSession(req.user, (db) => getMeetingById(db, req.params.id)); + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + res.json(row); + } catch (err) { + next(err); + } +}); + +router.get("/:id/agenda-items", async (req, res, next) => { + try { + const data = await withDbSession(req.user, (db) => getAgendaModalData(db, req.params.id)); + if (!data) return res.status(404).json({ error: "Sitzung nicht gefunden" }); + res.json(data); + } catch (err) { + next(err); + } +}); + +router.get("/:id/agenda-items/:agendaItemId/reports", async (req, res, next) => { + try { + const data = await withDbSession(req.user, (db) => + getAgendaItemReportData(db, req.params.id, req.params.agendaItemId) + ); + if (!data) return res.status(404).json({ error: "TOP oder Sitzung nicht gefunden" }); + res.json(data); + } catch (err) { + next(err); + } +}); + +router.get("/:id/agenda-items/:agendaItemId/comments", async (req, res, next) => { + try { + const data = await withDbSession(req.user, (db) => + getAgendaComments(db, req.params.id, req.params.agendaItemId) + ); + res.json(data); + } catch (err) { + next(err); + } +}); + +router.post( + "/:id/agenda-items/:agendaItemId/comments", + requireMfa, + requirePermission("comments.write", ["admin", "chair", "secretary", "member"]), + validate(agendaCommentSchema), + async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + await assertMeetingAgendaItem(db, req.params.id, req.params.agendaItemId); + const result = await db.query( + `INSERT INTO comment_item(entity_type, entity_id, comment_text, visibility, author_user_id, include_in_protocol) + VALUES ('agenda_item', $1, $2, $3, $4, $5) + RETURNING id`, + [ + req.params.agendaItemId, + req.body.comment_text.trim(), + req.body.visibility || "intern", + Number(req.user.sub), + Boolean(req.body.include_in_protocol), + ] + ); + return getAgendaComment(db, req.params.id, req.params.agendaItemId, result.rows[0].id); + }); + + await writeAudit({ + actorId: req.user.sub, + action: "MEETING_AGENDA_COMMENT_CREATED", + entityType: "comment", + entityId: row.id, + ipAddress: req.ip, + metadata: { + meeting_id: Number(req.params.id), + agenda_item_id: Number(req.params.agendaItemId), + include_in_protocol: row.include_in_protocol, + }, + }); + + res.status(201).json(row); + } catch (err) { + next(err); + } + } +); + +router.put( + "/:id/agenda-items/:agendaItemId/comments/:commentId", + requireMfa, + requirePermission("comments.write", ["admin", "chair", "secretary", "member"]), + validate(agendaCommentUpdateSchema), + async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const existing = await getAgendaComment(db, req.params.id, req.params.agendaItemId, req.params.commentId); + if (!existing) return null; + + const fields = []; + const values = []; + let idx = 1; + const push = (column, value) => { + fields.push(`${column} = $${idx}`); + values.push(value); + idx += 1; + }; + + if (req.body.comment_text !== undefined) push("comment_text", req.body.comment_text.trim()); + if (req.body.visibility !== undefined) push("visibility", req.body.visibility); + if (req.body.include_in_protocol !== undefined) push("include_in_protocol", Boolean(req.body.include_in_protocol)); + + if (!fields.length) { + throw Object.assign(new Error("Keine Felder zum Aktualisieren"), { + status: 400, + publicMessage: "Keine Felder zum Aktualisieren.", + }); + } + + values.push(req.params.commentId); + await db.query(`UPDATE comment_item SET ${fields.join(", ")} WHERE id = $${idx}`, values); + return getAgendaComment(db, req.params.id, req.params.agendaItemId, req.params.commentId); + }); + + if (!row) return res.status(404).json({ error: "Kommentar nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "MEETING_AGENDA_COMMENT_UPDATED", + entityType: "comment", + entityId: row.id, + ipAddress: req.ip, + metadata: { + meeting_id: Number(req.params.id), + agenda_item_id: Number(req.params.agendaItemId), + changes: Object.keys(req.body || {}), + }, + }); + + res.json(row); + } catch (err) { + next(err); + } + } +); + +router.delete( + "/:id/agenda-items/:agendaItemId/comments/:commentId", + requireMfa, + requirePermission("comments.write", ["admin", "chair", "secretary", "member"]), + async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const existing = await getAgendaComment(db, req.params.id, req.params.agendaItemId, req.params.commentId); + if (!existing) return null; + await db.query(`UPDATE comment_item SET deleted_at = NOW() WHERE id = $1`, [req.params.commentId]); + return existing; + }); + + if (!row) return res.status(404).json({ error: "Kommentar nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "MEETING_AGENDA_COMMENT_DELETED", + entityType: "comment", + entityId: row.id, + ipAddress: req.ip, + metadata: { + meeting_id: Number(req.params.id), + agenda_item_id: Number(req.params.agendaItemId), + }, + }); + + res.json({ ok: true, row }); + } catch (err) { + next(err); + } + } +); + +router.post( + "/:id/agenda-items/assign", + requireMfa, + requirePermission("meetings.write", ["admin", "chair", "secretary"]), + validate(assignAgendaSchema), + async (req, res, next) => { + try { + const data = await withDbSession(req.user, async (db) => { + const meeting = await getMeetingById(db, req.params.id); + if (!meeting) { + throw Object.assign(new Error("Sitzung nicht gefunden"), { + status: 404, + publicMessage: "Sitzung nicht gefunden", + }); + } + + const agendaItemResult = await db.query( + ` + SELECT id, meeting_id + FROM meeting_agenda_item + WHERE id = $1 + `, + [req.body.agenda_item_id] + ); + + const item = agendaItemResult.rows[0]; + if (!item) { + throw Object.assign(new Error("TOP nicht gefunden"), { + status: 404, + publicMessage: "TOP nicht gefunden", + }); + } + + if (item.meeting_id) { + throw Object.assign(new Error("TOP ist bereits einer Sitzung zugeordnet"), { + status: 400, + publicMessage: "TOP ist bereits einer Sitzung zugeordnet", + }); + } + + const agendaNumber = await nextAgendaNumber(db, req.params.id); + + await db.query( + ` + UPDATE meeting_agenda_item + SET meeting_id = $2, + agenda_number = $3, + status = 'in_sitzung' + WHERE id = $1 + `, + [req.body.agenda_item_id, req.params.id, agendaNumber] + ); + + return getAgendaModalData(db, req.params.id); + }); + + await writeAudit({ + actorId: req.user.sub, + action: "MEETING_AGENDA_ITEM_ASSIGNED", + entityType: "meeting", + entityId: Number(req.params.id), + ipAddress: req.ip, + metadata: { agenda_item_id: req.body.agenda_item_id }, + }); + + res.json(data); + } catch (err) { + next(err); + } + } +); + +router.post( + "/:id/agenda-items/create-and-assign", + requireMfa, + requirePermission("meetings.write", ["admin", "chair", "secretary"]), + validate(createAndAssignAgendaSchema), + async (req, res, next) => { + try { + const payload = { + ...req.body, + description: normalizeNullableText(req.body.description), + case_id: normalizeNullableNumber(req.body.case_id), + }; + + const row = await withDbSession(req.user, async (db) => { + const meeting = await getMeetingById(db, req.params.id); + if (!meeting) { + throw Object.assign(new Error("Sitzung nicht gefunden"), { + status: 404, + publicMessage: "Sitzung nicht gefunden", + }); + } + + if (payload.case_id) { + const caseRef = await db.query(`SELECT id FROM br_case WHERE id = $1`, [payload.case_id]); + if (!caseRef.rows[0]) { + throw Object.assign(new Error("Vorgang nicht gefunden"), { + status: 400, + publicMessage: "Vorgang nicht gefunden", + }); + } + } + + const agendaNumber = await nextAgendaNumber(db, req.params.id); + + const result = await db.query( + ` + INSERT INTO meeting_agenda_item( + meeting_id, + case_id, + agenda_number, + title, + description, + duration_minutes, + status + ) + VALUES ($1, $2, $3, $4, $5, $6, 'in_sitzung') + RETURNING * + `, + [ + req.params.id, + payload.case_id ?? null, + agendaNumber, + payload.title.trim(), + payload.description, + payload.duration_minutes ?? null, + ] + ); + + return result.rows[0]; + }); + + await writeAudit({ + actorId: req.user.sub, + action: "MEETING_AGENDA_ITEM_CREATED_AND_ASSIGNED", + entityType: "meeting", + entityId: Number(req.params.id), + ipAddress: req.ip, + metadata: { agenda_item_id: row.id }, + }); + + res.status(201).json(row); + } catch (err) { + next(err); + } + } +); + +router.post( + "/:id/agenda-items/:agendaItemId/return-to-pool", + requireMfa, + requirePermission("meetings.write", ["admin", "chair", "secretary"]), + validate(agendaReturnSchema), + async (req, res, next) => { + try { + const payload = { + remark: req.body.remark.trim(), + return_type: req.body.return_type || "rueckfrage", + include_in_protocol: Boolean(req.body.include_in_protocol ?? true), + }; + + const result = await withDbSession(req.user, async (db) => { + const meeting = await getMeetingById(db, req.params.id); + if (!meeting) { + throw Object.assign(new Error("Sitzung nicht gefunden"), { + status: 404, + publicMessage: "Sitzung nicht gefunden", + }); + } + + if (meeting.status === "beendet") { + throw Object.assign(new Error("Sitzung ist beendet"), { + status: 400, + publicMessage: "Aus einer beendeten Sitzung kann kein Folge-TOP mehr erzeugt werden.", + }); + } + + const agendaItem = await assertMeetingAgendaItem(db, req.params.id, req.params.agendaItemId); + const rootAgendaItemId = agendaItem.root_agenda_item_id || agendaItem.parent_agenda_item_id || agendaItem.id; + const followUpStatus = payload.return_type === "klaerung" ? "klaerung" : "rueckfrage"; + const followUpLabel = payload.return_type === "klaerung" ? "Klärung" : payload.return_type === "bemerkung" ? "Bemerkung / Wiedervorlage" : "Rückfrage"; + + const followUpInsert = await db.query( + `INSERT INTO meeting_agenda_item( + meeting_id, + agenda_number, + title, + description, + duration_minutes, + case_id, + status, + parent_agenda_item_id, + root_agenda_item_id, + follow_up_type, + follow_up_note, + follow_up_created_from_meeting_id, + follow_up_created_from_agenda_item_id, + follow_up_created_at, + follow_up_created_by + ) VALUES ( + NULL, NULL, $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, NOW(), $12 + ) + RETURNING id`, + [ + agendaItem.title, + agendaItem.description, + agendaItem.duration_minutes, + agendaItem.case_id, + followUpStatus, + agendaItem.id, + rootAgendaItemId, + payload.return_type, + payload.remark, + req.params.id, + agendaItem.id, + req.user.sub, + ] + ); + + const followUpAgendaItemId = followUpInsert.rows[0].id; + + await db.query( + `INSERT INTO meeting_agenda_item_return_log( + agenda_item_id, + meeting_id, + agenda_number_at_return, + title_at_return, + return_type, + remark, + include_in_protocol, + returned_by, + follow_up_agenda_item_id + ) VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9)`, + [ + agendaItem.id, + req.params.id, + agendaItem.agenda_number, + agendaItem.title, + payload.return_type, + payload.remark, + payload.include_in_protocol, + req.user.sub, + followUpAgendaItemId, + ] + ); + + await db.query( + `INSERT INTO comment_item(entity_type, entity_id, comment_text, visibility, author_user_id, include_in_protocol) + VALUES ('agenda_item', $1, $2, 'intern', $3, FALSE)`, + [agendaItem.id, `${followUpLabel}: ${payload.remark}`, req.user.sub] + ); + + await db.query( + `INSERT INTO comment_item(entity_type, entity_id, comment_text, visibility, author_user_id, include_in_protocol) + VALUES ('agenda_item', $1, $2, 'intern', $3, FALSE)`, + [followUpAgendaItemId, `Folge-TOP aus Sitzung ${meeting.meeting_number || meeting.id}: ${followUpLabel}. ${payload.remark}`, req.user.sub] + ); + + await db.query( + `UPDATE meeting_agenda_item + SET status = $3 + WHERE id = $1 + AND meeting_id = $2`, + [agendaItem.id, req.params.id, followUpStatus] + ); + + return { + data: await getAgendaModalData(db, req.params.id), + follow_up_agenda_item_id: Number(followUpAgendaItemId), + }; + }); + + await writeAudit({ + actorId: req.user.sub, + action: "MEETING_AGENDA_ITEM_FOLLOW_UP_CREATED", + entityType: "meeting", + entityId: Number(req.params.id), + ipAddress: req.ip, + metadata: { + agenda_item_id: Number(req.params.agendaItemId), + follow_up_agenda_item_id: result.follow_up_agenda_item_id, + return_type: payload.return_type, + include_in_protocol: payload.include_in_protocol, + }, + }); + + res.json(result.data); + } catch (err) { + next(err); + } + } +); + +router.post( + "/:id/agenda-items/:agendaItemId/unassign", + requireMfa, + requirePermission("meetings.write", ["admin", "chair", "secretary"]), + async (req, res, next) => { + try { + const data = await withDbSession(req.user, async (db) => { + const result = await db.query( + ` + UPDATE meeting_agenda_item + SET meeting_id = NULL, + agenda_number = NULL, + status = 'offen' + WHERE id = $1 + AND meeting_id = $2 + RETURNING id + `, + [req.params.agendaItemId, req.params.id] + ); + + if (!result.rows[0]) { + throw Object.assign(new Error("TOP nicht gefunden"), { + status: 404, + publicMessage: "TOP nicht gefunden", + }); + } + + return getAgendaModalData(db, req.params.id); + }); + + await writeAudit({ + actorId: req.user.sub, + action: "MEETING_AGENDA_ITEM_UNASSIGNED", + entityType: "meeting", + entityId: Number(req.params.id), + ipAddress: req.ip, + metadata: { agenda_item_id: Number(req.params.agendaItemId) }, + }); + + res.json(data); + } catch (err) { + next(err); + } + } +); + +router.post( + "/", + requireMfa, + requirePermission("meetings.write", ["admin", "chair", "secretary"]), + validate(createSchema), + async (req, res, next) => { + try { + const payload = { + ...req.body, + meeting_number: normalizeOptionalText(req.body.meeting_number), + title: req.body.title.trim(), + location: normalizeNullableText(req.body.location), + is_quorate: req.body.is_quorate, + protocol_text: normalizeNullableText(req.body.protocol_text), + committee_id: normalizeNullableNumber(req.body.committee_id), + chair_user_id: normalizeNullableNumber(req.body.chair_user_id), + secretary_user_id: normalizeNullableNumber(req.body.secretary_user_id), + }; + + const row = await withDbSession(req.user, async (db) => { + await assertReferences(db, payload); + + if (payload.status === "gestartet") { + assertQuorumAnswer(payload.is_quorate); + } + + const result = await db.query( + ` + INSERT INTO meeting( + meeting_number, + title, + meeting_type, + meeting_date, + start_time, + end_time, + location, + status, + is_quorate, + quorum_recorded_at, + quorum_recorded_by, + protocol_text, + committee_id, + chair_user_id, + secretary_user_id, + created_by, + updated_by + ) VALUES ( + COALESCE(NULLIF($1::text, ''), next_meeting_number($4::date)), + $2, $3, $4, $5, $6, $7, $8, $9, + CASE WHEN $9::boolean IS NULL THEN NULL ELSE NOW() END, + CASE WHEN $9::boolean IS NULL THEN NULL ELSE $14 END, + $10, $11, $12, $13, $14, $14 + ) + RETURNING id + `, + [ + payload.meeting_number ?? null, + payload.title, + payload.meeting_type, + payload.meeting_date, + payload.start_time || null, + payload.end_time || null, + payload.location, + payload.status, + payload.status === "gestartet" ? payload.is_quorate : null, + payload.protocol_text, + payload.committee_id, + payload.chair_user_id, + payload.secretary_user_id, + req.user.sub, + ] + ); + + return getMeetingById(db, result.rows[0].id); + }); + + await writeAudit({ + actorId: req.user.sub, + action: "MEETING_CREATED", + entityType: "meeting", + entityId: row.id, + ipAddress: req.ip, + metadata: { payload }, + }); + + res.status(201).json(row); + } catch (err) { + next(err); + } + } +); + +router.put( + "/:id", + requireMfa, + requirePermission("meetings.write", ["admin", "chair", "secretary"]), + validate(updateSchema), + async (req, res, next) => { + try { + const payload = { + ...req.body, + title: req.body.title !== undefined ? req.body.title.trim() : undefined, + location: normalizeNullableText(req.body.location), + is_quorate: req.body.is_quorate, + protocol_text: normalizeNullableText(req.body.protocol_text), + committee_id: normalizeNullableNumber(req.body.committee_id), + chair_user_id: normalizeNullableNumber(req.body.chair_user_id), + secretary_user_id: normalizeNullableNumber(req.body.secretary_user_id), + }; + + const row = await withDbSession(req.user, async (db) => { + const existing = await getMeetingById(db, req.params.id); + if (!existing) return null; + + await assertReferences(db, payload); + + const fields = []; + const values = []; + let idx = 1; + + const push = (column, value) => { + fields.push(`${column} = $${idx}`); + values.push(value); + idx += 1; + }; + + const allowed = [ + ["title", payload.title], + ["meeting_type", payload.meeting_type], + ["meeting_date", payload.meeting_date], + ["start_time", payload.start_time], + ["end_time", payload.end_time], + ["location", payload.location], + ["status", payload.status], + ["protocol_text", payload.protocol_text], + ["committee_id", payload.committee_id], + ["chair_user_id", payload.chair_user_id], + ["secretary_user_id", payload.secretary_user_id], + ]; + + for (const [column, value] of allowed) { + if (value !== undefined) push(column, value); + } + + const current = await getMeetingById(db, req.params.id); + const nextStatus = payload.status ?? current?.status; + const transitionedToStarted = current && current.status !== "gestartet" && nextStatus === "gestartet"; + const transitionedToEnded = current && current.status !== "beendet" && nextStatus === "beendet"; + + if (transitionedToStarted || payload.is_quorate !== undefined) { + assertQuorumAnswer(payload.is_quorate); + push("is_quorate", payload.is_quorate); + fields.push("quorum_recorded_at = NOW()"); + push("quorum_recorded_by", req.user.sub); + } + + if (!fields.length) { + throw Object.assign(new Error("Keine Felder zum Aktualisieren"), { + status: 400, + publicMessage: "Keine Felder zum Aktualisieren", + }); + } + + push("updated_by", req.user.sub); + values.push(req.params.id); + + await db.query( + ` + UPDATE meeting + SET ${fields.join(", ")} + WHERE id = $${idx} + RETURNING id + `, + values + ); + + let completedDecisionIds = []; + let cleanedAttachments = []; + let protocolDocument = null; + let decisionReportDocument = null; + + if (transitionedToEnded) { + const finalized = await finalizeMeetingClosure(db, req.params.id, req.user.sub); + completedDecisionIds = finalized.completedDecisionIds; + cleanedAttachments = finalized.cleanedAttachments; + protocolDocument = finalized.protocolDocument; + decisionReportDocument = finalized.decisionReportDocument; + } + + return { + meeting: await getMeetingById(db, req.params.id), + completedDecisionIds, + cleanedAttachments, + protocolDocument, + decisionReportDocument, + }; + }); + + if (!row?.meeting) return res.status(404).json({ error: "Nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "MEETING_UPDATED", + entityType: "meeting", + entityId: row.meeting.id, + ipAddress: req.ip, + metadata: { + changes: payload, + completed_decision_ids: row.completedDecisionIds || [], + cleaned_attachment_ids: (row.cleanedAttachments || []).map((item) => item.id), + protocol_document_id: row.protocolDocument?.id || null, + decision_report_document_id: row.decisionReportDocument?.id || null, + }, + }); + + res.json({ + ...row.meeting, + protocol_document: row.protocolDocument || null, + decision_report_document: row.decisionReportDocument || null, + }); + } catch (err) { + next(err); + } + } +); + +router.post( + "/:id/start", + requireMfa, + requirePermission("meetings.write", ["admin", "chair", "secretary"]), + validate(startMeetingSchema), + async (req, res, next) => { + try { + const result = await withDbSession(req.user, async (db) => + updateMeetingStatus(db, req.params.id, "gestartet", req.user.sub, { + isQuorate: req.body.is_quorate, + }) + ); + + if (!result?.meeting) return res.status(404).json({ error: "Nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "MEETING_STARTED", + entityType: "meeting", + entityId: result.meeting.id, + ipAddress: req.ip, + metadata: { is_quorate: req.body.is_quorate }, + }); + + res.json(result.meeting); + } catch (err) { + next(err); + } +}); + +router.post("/:id/stop", requireMfa, requirePermission("meetings.write", ["admin", "chair", "secretary"]), async (req, res, next) => { + try { + const result = await withDbSession(req.user, async (db) => + updateMeetingStatus(db, req.params.id, "beendet", req.user.sub) + ); + + if (!result?.meeting) return res.status(404).json({ error: "Nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "MEETING_STOPPED", + entityType: "meeting", + entityId: result.meeting.id, + ipAddress: req.ip, + metadata: { + protocol_document_id: result.protocolDocument?.id || null, + decision_report_document_id: result.decisionReportDocument?.id || null, + completed_decision_ids: result.completedDecisionIds || [], + }, + }); + + res.json({ + ...result.meeting, + protocol_document: result.protocolDocument || null, + decision_report_document: result.decisionReportDocument || null, + }); + } catch (err) { + next(err); + } +}); + +router.delete("/:id", requireMfa, requirePermission("meetings.write", ["admin", "chair", "secretary"]), async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const existing = await getMeetingById(db, req.params.id); + if (!existing) return null; + + await db.query(`DELETE FROM meeting WHERE id = $1`, [req.params.id]); + return existing; + }); + + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "MEETING_DELETED", + entityType: "meeting", + entityId: row.id, + ipAddress: req.ip, + }); + + res.json({ ok: true, row }); + } catch (err) { + next(err); + } +}); + +export default router; diff --git a/backend/src/modules/notifications/routes.js b/backend/src/modules/notifications/routes.js new file mode 100644 index 0000000..a1db130 --- /dev/null +++ b/backend/src/modules/notifications/routes.js @@ -0,0 +1,348 @@ +import express from "express"; +import { z } from "zod"; +import { authenticate, requireMfa } from "../../middleware/auth.js"; +import { requirePermission, requireRoles } from "../../middleware/rbac.js"; +import { validate } from "../../middleware/validate.js"; +import { withDbSession } from "../../config/db.js"; +import { writeAudit } from "../../utils/audit.js"; + +const router = express.Router(); +router.use(authenticate); + +const createSchema = z.object({ + user_id: z.coerce.number().int().positive(), + notification_type: z.string().min(2).max(50), + title: z.string().min(2).max(255), + entity_type: z.string().max(50).optional().nullable(), + entity_id: z.coerce.number().int().positive().optional().nullable(), + is_read: z.boolean().default(false), +}); + +const updateSchema = createSchema.partial(); + +function parseBoolean(value, fallback = false) { + if (value === undefined || value === null || value === "") return fallback; + if (typeof value === "boolean") return value; + const normalized = String(value).trim().toLowerCase(); + if (["1", "true", "yes", "ja", "on"].includes(normalized)) return true; + if (["0", "false", "no", "nein", "off"].includes(normalized)) return false; + return fallback; +} + +function buildSearchPattern(raw) { + const value = String(raw ?? "").trim(); + if (!value) return null; + const escaped = value.replace(/\\/g, "\\\\"); + const hasWildcard = /[%_]/.test(escaped); + return hasWildcard ? escaped : `%${escaped}%`; +} + +function mapRow(row) { + return { + id: row.id, + user_id: row.user_id, + user_name: row.user_name, + notification_type: row.notification_type, + title: row.title, + entity_type: row.entity_type, + entity_id: row.entity_id, + is_read: row.is_read, + created_at: row.created_at, + }; +} + +router.get("/", async (req, res, next) => { + try { + const onlyMine = parseBoolean(req.query.only_mine, false); + const unreadFirst = parseBoolean(req.query.unread_first, true); + const searchPattern = buildSearchPattern(req.query.q); + + const rows = await withDbSession(req.user, async (db) => { + const values = [searchPattern, onlyMine, req.user.sub, unreadFirst]; + + const result = await db.query( + ` + SELECT n.id, + n.user_id, + u.full_name AS user_name, + n.notification_type, + n.title, + n.entity_type, + n.entity_id, + n.is_read, + n.created_at + FROM notification_item n + LEFT JOIN app_user u ON u.id = n.user_id + WHERE ( + $1::text IS NULL + OR n.title ILIKE $1 ESCAPE '\\' + OR n.notification_type ILIKE $1 ESCAPE '\\' + OR COALESCE(n.entity_type, '') ILIKE $1 ESCAPE '\\' + OR COALESCE(n.entity_id::text, '') ILIKE $1 ESCAPE '\\' + OR COALESCE(u.full_name, '') ILIKE $1 ESCAPE '\\' + ) + AND ( + $2::boolean = FALSE + OR n.user_id = $3::bigint + ) + ORDER BY + CASE WHEN $4::boolean THEN CASE WHEN n.is_read THEN 1 ELSE 0 END ELSE 0 END, + n.created_at DESC, + n.id DESC + `, + values + ); + + return result.rows.map(mapRow); + }); + + res.json(rows); + } catch (err) { + next(err); + } +}); + +router.get("/:id", async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const result = await db.query( + ` + SELECT n.id, + n.user_id, + u.full_name AS user_name, + n.notification_type, + n.title, + n.entity_type, + n.entity_id, + n.is_read, + n.created_at + FROM notification_item n + LEFT JOIN app_user u ON u.id = n.user_id + WHERE n.id = $1 + `, + [req.params.id] + ); + + return result.rows[0] ? mapRow(result.rows[0]) : null; + }); + + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + res.json(row); + } catch (err) { + next(err); + } +}); + +router.post( + "/:id/read", + requireMfa, + requirePermission("notifications.write", ["admin", "chair", "secretary", "member"]), + async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const result = await db.query( + ` + UPDATE notification_item + SET is_read = TRUE + WHERE id = $1 + RETURNING id, user_id, notification_type, title, entity_type, entity_id, is_read, created_at + `, + [req.params.id] + ); + + return result.rows[0] || null; + }); + + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "NOTIFICATION_MARKED_READ", + entityType: "notification", + entityId: Number(req.params.id), + ipAddress: req.ip, + }); + + res.json(row); + } catch (err) { + next(err); + } + } +); + +router.post( + "/mark-all-read", + requireMfa, + requirePermission("notifications.write", ["admin", "chair", "secretary", "member"]), + async (req, res, next) => { + try { + const result = await withDbSession(req.user, async (db) => + db.query( + ` + UPDATE notification_item + SET is_read = TRUE + WHERE is_read = FALSE + AND user_id = $1 + RETURNING id + `, + [req.user.sub] + ) + ); + + await writeAudit({ + actorId: req.user.sub, + action: "NOTIFICATION_MARKED_ALL_READ", + entityType: "notification", + entityId: null, + ipAddress: req.ip, + metadata: { count: result.rowCount || 0 }, + }); + + res.json({ ok: true, count: result.rowCount || 0 }); + } catch (err) { + next(err); + } + } +); + +router.post( + "/", + requireMfa, + requirePermission("notifications.write", ["admin", "chair", "secretary", "member"]), + validate(createSchema), + async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const result = await db.query( + ` + INSERT INTO notification_item( + user_id, + notification_type, + title, + entity_type, + entity_id, + is_read + ) + VALUES ($1, $2, $3, $4, $5, $6) + RETURNING id, user_id, notification_type, title, entity_type, entity_id, is_read, created_at + `, + [ + req.body.user_id, + req.body.notification_type, + req.body.title, + req.body.entity_type ?? null, + req.body.entity_id ?? null, + req.body.is_read ?? false, + ] + ); + return result.rows[0]; + }); + + await writeAudit({ + actorId: req.user.sub, + action: "NOTIFICATION_CREATED", + entityType: "notification", + entityId: row.id, + ipAddress: req.ip, + }); + + res.status(201).json(row); + } catch (err) { + next(err); + } + } +); + +router.put( + "/:id", + requireMfa, + requirePermission("notifications.write", ["admin", "chair", "secretary", "member"]), + validate(updateSchema), + async (req, res, next) => { + try { + const fields = []; + const values = []; + let idx = 1; + + const push = (column, value) => { + fields.push(`${column} = $${idx}`); + values.push(value); + idx += 1; + }; + + if (req.body.user_id !== undefined) push("user_id", req.body.user_id); + if (req.body.notification_type !== undefined) push("notification_type", req.body.notification_type); + if (req.body.title !== undefined) push("title", req.body.title); + if (req.body.entity_type !== undefined) push("entity_type", req.body.entity_type ?? null); + if (req.body.entity_id !== undefined) push("entity_id", req.body.entity_id ?? null); + if (req.body.is_read !== undefined) push("is_read", req.body.is_read); + + if (!fields.length) { + return res.status(400).json({ error: "Keine Felder zum Aktualisieren" }); + } + + values.push(req.params.id); + + const row = await withDbSession(req.user, async (db) => { + const result = await db.query( + ` + UPDATE notification_item + SET ${fields.join(", ")} + WHERE id = $${idx} + RETURNING id, user_id, notification_type, title, entity_type, entity_id, is_read, created_at + `, + values + ); + + return result.rows[0] || null; + }); + + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "NOTIFICATION_UPDATED", + entityType: "notification", + entityId: Number(req.params.id), + ipAddress: req.ip, + }); + + res.json(row); + } catch (err) { + next(err); + } + } +); + +router.delete( + "/:id", + requireMfa, + requirePermission("notifications.write", ["admin", "chair", "secretary", "member"]), + async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const result = await db.query( + `DELETE FROM notification_item WHERE id = $1 RETURNING *`, + [req.params.id] + ); + return result.rows[0] || null; + }); + + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + + await writeAudit({ + actorId: req.user.sub, + action: "NOTIFICATION_DELETED", + entityType: "notification", + entityId: Number(req.params.id), + ipAddress: req.ip, + }); + + res.json({ ok: true, row }); + } catch (err) { + next(err); + } + } +); + +export default router; diff --git a/backend/src/modules/permissions/routes.js b/backend/src/modules/permissions/routes.js new file mode 100644 index 0000000..a4e1dad --- /dev/null +++ b/backend/src/modules/permissions/routes.js @@ -0,0 +1,269 @@ +import express from "express"; +import { z } from "zod"; +import { authenticate, requireMfa } from "../../middleware/auth.js"; +import { requirePermission } from "../../middleware/rbac.js"; +import { validate } from "../../middleware/validate.js"; +import { withDbSession } from "../../config/db.js"; +import { getUserAccess } from "../../services/accessControl.js"; +import { writeAudit } from "../../utils/audit.js"; + +const router = express.Router(); +router.use(authenticate); + +const roleSchema = z.object({ + code: z.string().min(2).max(80).regex(/^[a-z0-9_.-]+$/i), + name: z.string().min(2).max(120), + description: z.string().max(2000).optional().nullable(), + is_active: z.boolean().optional().default(true), +}); + +const teamRoleSchema = z.object({ + code: z.string().min(2).max(80).regex(/^[a-z0-9_.-]+$/i), + name: z.string().min(2).max(120), + description: z.string().max(2000).optional().nullable(), + can_view_cases: z.boolean().optional().default(false), + can_write_cases: z.boolean().optional().default(false), + can_view_documents: z.boolean().optional().default(false), + can_write_documents: z.boolean().optional().default(false), + is_active: z.boolean().optional().default(true), +}); + +const matrixSchema = z.object({ + page_keys: z.array(z.string().min(1)).optional().default([]), + permission_keys: z.array(z.string().min(1)).optional().default([]), +}); + +const assignmentSchema = z.object({ + role_profile_ids: z.array(z.coerce.number().int().positive()).optional().default([]), + team_role_ids: z.array(z.coerce.number().int().positive()).optional().default([]), +}); + +async function getMatrix(db) { + const [pages, permissions, roles, rolePages, rolePermissions, teamRoles, users, userRoles, userTeamRoles] = await Promise.all([ + db.query(`SELECT page_key, path, label, nav_group, sort_order, description FROM app_page ORDER BY sort_order, label`), + db.query(`SELECT permission_key, label, category, description FROM app_permission ORDER BY category, label`), + db.query(`SELECT id, code, name, description, system_role, is_system, is_active FROM app_role_profile ORDER BY is_system DESC, name`), + db.query(`SELECT role_profile_id, page_key FROM app_role_page WHERE can_view = TRUE`), + db.query(`SELECT role_profile_id, permission_key FROM app_role_permission WHERE granted = TRUE`), + db.query(`SELECT id, code, name, description, can_view_cases, can_write_cases, can_view_documents, can_write_documents, is_active FROM app_team_role ORDER BY name`), + db.query(`SELECT id, full_name, email, role, committee_id, is_active FROM app_user ORDER BY full_name`), + db.query(`SELECT user_id, role_profile_id FROM app_user_role_profile`), + db.query(`SELECT user_id, team_role_id, committee_id FROM app_user_team_role`), + ]); + + const pagesByRole = new Map(); + for (const row of rolePages.rows) { + if (!pagesByRole.has(String(row.role_profile_id))) pagesByRole.set(String(row.role_profile_id), []); + pagesByRole.get(String(row.role_profile_id)).push(row.page_key); + } + + const permissionsByRole = new Map(); + for (const row of rolePermissions.rows) { + if (!permissionsByRole.has(String(row.role_profile_id))) permissionsByRole.set(String(row.role_profile_id), []); + permissionsByRole.get(String(row.role_profile_id)).push(row.permission_key); + } + + return { + pages: pages.rows, + permissions: permissions.rows, + role_profiles: roles.rows.map((role) => ({ + ...role, + page_keys: pagesByRole.get(String(role.id)) || [], + permission_keys: permissionsByRole.get(String(role.id)) || [], + })), + team_roles: teamRoles.rows, + users: users.rows.map((user) => ({ + ...user, + role_profile_ids: userRoles.rows.filter((row) => Number(row.user_id) === Number(user.id)).map((row) => row.role_profile_id), + team_role_ids: userTeamRoles.rows.filter((row) => Number(row.user_id) === Number(user.id)).map((row) => row.team_role_id), + team_role_assignments: userTeamRoles.rows.filter((row) => Number(row.user_id) === Number(user.id)), + })), + }; +} + +router.get("/access", async (req, res, next) => { + try { + const access = await getUserAccess(req.user.sub, req.user.role); + res.json(access); + } catch (err) { + next(err); + } +}); + +router.get("/matrix", requirePermission("system.permissions", ["admin"]), async (req, res, next) => { + try { + const data = await withDbSession(req.user, getMatrix); + res.json(data); + } catch (err) { + next(err); + } +}); + +router.post("/roles", requireMfa, requirePermission("system.permissions", ["admin"]), validate(roleSchema), async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const result = await db.query( + `INSERT INTO app_role_profile(code, name, description, is_system, is_active, created_by, updated_by) + VALUES ($1,$2,$3,FALSE,$4,$5,$5) + RETURNING id, code, name, description, system_role, is_system, is_active`, + [req.body.code, req.body.name, req.body.description || null, req.body.is_active, req.user.sub] + ); + return result.rows[0]; + }); + await writeAudit({ actorId: req.user.sub, action: "ROLE_PROFILE_CREATED", entityType: "role_profile", entityId: row.id, metadata: req.body, ipAddress: req.ip }); + res.status(201).json(row); + } catch (err) { + next(err); + } +}); + +router.put("/roles/:id", requireMfa, requirePermission("system.permissions", ["admin"]), validate(roleSchema.partial()), async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const current = await db.query(`SELECT id, is_system FROM app_role_profile WHERE id = $1`, [req.params.id]); + if (!current.rows[0]) return null; + const result = await db.query( + `UPDATE app_role_profile + SET code = COALESCE($2, code), + name = COALESCE($3, name), + description = COALESCE($4, description), + is_active = COALESCE($5, is_active), + updated_by = $6, + updated_at = NOW() + WHERE id = $1 + RETURNING id, code, name, description, system_role, is_system, is_active`, + [req.params.id, req.body.code, req.body.name, req.body.description, req.body.is_active, req.user.sub] + ); + return result.rows[0]; + }); + if (!row) return res.status(404).json({ error: "Rolle nicht gefunden" }); + await writeAudit({ actorId: req.user.sub, action: "ROLE_PROFILE_UPDATED", entityType: "role_profile", entityId: row.id, metadata: req.body, ipAddress: req.ip }); + res.json(row); + } catch (err) { + next(err); + } +}); + +router.put("/roles/:id/matrix", requireMfa, requirePermission("system.permissions", ["admin"]), validate(matrixSchema), async (req, res, next) => { + try { + const role = await withDbSession(req.user, async (db) => { + const existing = await db.query(`SELECT id, is_system FROM app_role_profile WHERE id = $1`, [req.params.id]); + if (!existing.rows[0]) return null; + + await db.query(`DELETE FROM app_role_page WHERE role_profile_id = $1`, [req.params.id]); + if (req.body.page_keys.length) { + await db.query( + `INSERT INTO app_role_page(role_profile_id, page_key, can_view) + SELECT $1::bigint, unnest($2::text[]), TRUE + ON CONFLICT (role_profile_id, page_key) DO UPDATE SET can_view = TRUE`, + [req.params.id, req.body.page_keys] + ); + } + + await db.query(`DELETE FROM app_role_permission WHERE role_profile_id = $1`, [req.params.id]); + if (req.body.permission_keys.length) { + await db.query( + `INSERT INTO app_role_permission(role_profile_id, permission_key, granted) + SELECT $1::bigint, unnest($2::text[]), TRUE + ON CONFLICT (role_profile_id, permission_key) DO UPDATE SET granted = TRUE`, + [req.params.id, req.body.permission_keys] + ); + } + + return existing.rows[0]; + }); + + if (!role) return res.status(404).json({ error: "Rolle nicht gefunden" }); + await writeAudit({ actorId: req.user.sub, action: "ROLE_MATRIX_UPDATED", entityType: "role_profile", entityId: Number(req.params.id), metadata: req.body, ipAddress: req.ip }); + const data = await withDbSession(req.user, getMatrix); + res.json(data); + } catch (err) { + next(err); + } +}); + +router.post("/team-roles", requireMfa, requirePermission("system.permissions", ["admin"]), validate(teamRoleSchema), async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const result = await db.query( + `INSERT INTO app_team_role(code, name, description, can_view_cases, can_write_cases, can_view_documents, can_write_documents, is_active, created_by, updated_by) + VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$9) + RETURNING *`, + [req.body.code, req.body.name, req.body.description || null, req.body.can_view_cases, req.body.can_write_cases, req.body.can_view_documents, req.body.can_write_documents, req.body.is_active, req.user.sub] + ); + return result.rows[0]; + }); + await writeAudit({ actorId: req.user.sub, action: "TEAM_ROLE_CREATED", entityType: "team_role", entityId: row.id, metadata: req.body, ipAddress: req.ip }); + res.status(201).json(row); + } catch (err) { + next(err); + } +}); + +router.put("/team-roles/:id", requireMfa, requirePermission("system.permissions", ["admin"]), validate(teamRoleSchema.partial()), async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const result = await db.query( + `UPDATE app_team_role + SET code = COALESCE($2, code), + name = COALESCE($3, name), + description = COALESCE($4, description), + can_view_cases = COALESCE($5, can_view_cases), + can_write_cases = COALESCE($6, can_write_cases), + can_view_documents = COALESCE($7, can_view_documents), + can_write_documents = COALESCE($8, can_write_documents), + is_active = COALESCE($9, is_active), + updated_by = $10, + updated_at = NOW() + WHERE id = $1 + RETURNING *`, + [req.params.id, req.body.code, req.body.name, req.body.description, req.body.can_view_cases, req.body.can_write_cases, req.body.can_view_documents, req.body.can_write_documents, req.body.is_active, req.user.sub] + ); + return result.rows[0]; + }); + if (!row) return res.status(404).json({ error: "Teamrolle nicht gefunden" }); + await writeAudit({ actorId: req.user.sub, action: "TEAM_ROLE_UPDATED", entityType: "team_role", entityId: row.id, metadata: req.body, ipAddress: req.ip }); + res.json(row); + } catch (err) { + next(err); + } +}); + +router.put("/users/:id/assignments", requireMfa, requirePermission("system.permissions", ["admin"]), validate(assignmentSchema), async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const user = await db.query(`SELECT id FROM app_user WHERE id = $1`, [req.params.id]); + if (!user.rows[0]) return null; + + await db.query(`DELETE FROM app_user_role_profile WHERE user_id = $1`, [req.params.id]); + if (req.body.role_profile_ids.length) { + await db.query( + `INSERT INTO app_user_role_profile(user_id, role_profile_id, assigned_by) + SELECT $1::bigint, unnest($2::bigint[]), $3::bigint + ON CONFLICT (user_id, role_profile_id) DO NOTHING`, + [req.params.id, req.body.role_profile_ids, req.user.sub] + ); + } + + await db.query(`DELETE FROM app_user_team_role WHERE user_id = $1`, [req.params.id]); + if (req.body.team_role_ids.length) { + await db.query( + `INSERT INTO app_user_team_role(user_id, team_role_id, committee_id, assigned_by) + SELECT $1::bigint, unnest($2::bigint[]), NULL, $3::bigint + ON CONFLICT DO NOTHING`, + [req.params.id, req.body.team_role_ids, req.user.sub] + ); + } + + return user.rows[0]; + }); + if (!row) return res.status(404).json({ error: "Benutzer nicht gefunden" }); + await writeAudit({ actorId: req.user.sub, action: "USER_ACCESS_ASSIGNED", entityType: "user", entityId: Number(req.params.id), metadata: req.body, ipAddress: req.ip }); + const data = await withDbSession(req.user, getMatrix); + res.json(data); + } catch (err) { + next(err); + } +}); + +export default router; diff --git a/backend/src/modules/reports/routes.js b/backend/src/modules/reports/routes.js new file mode 100644 index 0000000..77b9556 --- /dev/null +++ b/backend/src/modules/reports/routes.js @@ -0,0 +1,146 @@ +import express from "express"; +import { authenticate } from "../../middleware/auth.js"; +import { withDbSession } from "../../config/db.js"; + +const router = express.Router(); +router.use(authenticate); + +function buildSearchPattern(raw) { + const value = String(raw ?? "").trim(); + if (!value) return null; + + const escaped = value.replace(/\\/g, "\\\\"); + const hasWildcard = /[%_]/.test(escaped); + + return hasWildcard ? escaped : `%${escaped}%`; +} + +router.get("/", async (req, res, next) => { + try { + const searchPattern = buildSearchPattern(req.query.q); + + const rows = await withDbSession(req.user, async (db) => { + const result = await db.query( + ` + WITH latest_reports AS ( + SELECT d.id, + d.document_number, + d.title, + d.description, + d.document_type, + d.version_label, + COALESCE(d.version_number, 1) AS version_number, + COALESCE(d.version_group_id, d.id) AS version_root_id, + COUNT(*) OVER (PARTITION BY COALESCE(d.version_group_id, d.id))::int AS version_count, + d.file_name, + d.mime_type, + d.size_bytes, + d.scan_status, + d.uploaded_at, + d.meeting_id, + d.case_id, + d.decision_id, + d.uploaded_by, + ROW_NUMBER() OVER ( + PARTITION BY COALESCE(d.version_group_id, d.id) + ORDER BY COALESCE(d.version_number, 1) DESC, d.uploaded_at DESC, d.id DESC + ) AS version_rank + FROM document_item d + WHERE d.deleted_at IS NULL + AND d.document_type = 'bericht' + ), + report_rows AS ( + SELECT lr.id, + lr.document_number, + lr.title, + lr.description, + lr.document_type, + lr.version_label, + lr.version_number, + lr.version_root_id, + lr.version_count, + lr.file_name, + lr.mime_type, + lr.size_bytes, + lr.scan_status, + lr.uploaded_at, + lr.meeting_id, + m.meeting_number, + lr.case_id, + c.case_number, + lr.decision_id, + direct_decision.decision_number AS direct_decision_number, + direct_decision.title AS direct_decision_title, + uploader.full_name AS uploaded_by_name, + uploader.email AS uploaded_by_email, + COALESCE(agenda_info.agenda_refs, '') AS agenda_refs, + COALESCE(decision_info.decision_refs, '') AS decision_refs + FROM latest_reports lr + LEFT JOIN meeting m ON m.id = lr.meeting_id + LEFT JOIN br_case c ON c.id = lr.case_id + LEFT JOIN decision direct_decision ON direct_decision.id = lr.decision_id + LEFT JOIN app_user uploader ON uploader.id = lr.uploaded_by + LEFT JOIN LATERAL ( + SELECT STRING_AGG( + DISTINCT TRIM(BOTH ' ' FROM CONCAT( + CASE + WHEN ai.agenda_number IS NOT NULL THEN 'TOP ' || ai.agenda_number || ' – ' + ELSE '' + END, + COALESCE(ai.title, '') + )), + ' | ' + ) AS agenda_refs + FROM meeting_agenda_item ai + WHERE (lr.case_id IS NOT NULL AND ai.case_id = lr.case_id) + OR (direct_decision.agenda_item_id IS NOT NULL AND ai.id = direct_decision.agenda_item_id) + OR (lr.meeting_id IS NOT NULL AND ai.meeting_id = lr.meeting_id) + ) agenda_info ON TRUE + LEFT JOIN LATERAL ( + SELECT STRING_AGG( + DISTINCT TRIM(BOTH ' ' FROM CONCAT( + COALESCE(d2.decision_number, 'Beschluss ' || d2.id::text), + CASE + WHEN COALESCE(d2.title, '') <> '' THEN ' – ' || d2.title + ELSE '' + END + )), + ' | ' + ) AS decision_refs + FROM decision d2 + WHERE (lr.decision_id IS NOT NULL AND d2.id = lr.decision_id) + OR (lr.case_id IS NOT NULL AND d2.case_id = lr.case_id) + OR (lr.meeting_id IS NOT NULL AND d2.meeting_id = lr.meeting_id) + ) decision_info ON TRUE + WHERE lr.version_rank = 1 + ) + SELECT * + FROM report_rows + WHERE ( + $1::text IS NULL + OR document_number ILIKE $1 ESCAPE '\\' + OR title ILIKE $1 ESCAPE '\\' + OR COALESCE(description, '') ILIKE $1 ESCAPE '\\' + OR COALESCE(file_name, '') ILIKE $1 ESCAPE '\\' + OR COALESCE(meeting_number, '') ILIKE $1 ESCAPE '\\' + OR COALESCE(case_number, '') ILIKE $1 ESCAPE '\\' + OR COALESCE(agenda_refs, '') ILIKE $1 ESCAPE '\\' + OR COALESCE(decision_refs, '') ILIKE $1 ESCAPE '\\' + OR COALESCE(direct_decision_number, '') ILIKE $1 ESCAPE '\\' + OR COALESCE(direct_decision_title, '') ILIKE $1 ESCAPE '\\' + ) + ORDER BY uploaded_at DESC, id DESC + `, + [searchPattern] + ); + + return result.rows; + }); + + res.json(rows); + } catch (err) { + next(err); + } +}); + +export default router; diff --git a/backend/src/modules/tasks/routes.js b/backend/src/modules/tasks/routes.js new file mode 100644 index 0000000..6a0295e --- /dev/null +++ b/backend/src/modules/tasks/routes.js @@ -0,0 +1,435 @@ +import express from "express"; +import { withDbSession } from "../../config/db.js"; +import { authenticate, requireMfa } from "../../middleware/auth.js"; +import { requirePermission, requireRoles } from "../../middleware/rbac.js"; +import { validate } from "../../middleware/validate.js"; +import { writeAudit } from "../../utils/audit.js"; +import { taskSchema, taskUpdateSchema } from "./schemas.js"; + +const router = express.Router(); +router.use(authenticate); + +function asId(value) { + if (value === undefined || value === null || value === "") return null; + const n = Number(value); + return Number.isInteger(n) && n > 0 ? n : null; +} + +const referenceTables = { + app_user: "app_user", + committee: "committee", + br_case: "br_case", + meeting: "meeting", +}; + +async function ensureExists(db, tableKey, id, label, where = "") { + if (!id) return null; + + const table = referenceTables[tableKey]; + if (!table) throw new Error(`Ungültige Referenztabelle: ${tableKey}`); + + const result = await db.query(`SELECT id FROM ${table} WHERE id = $1 ${where}`, [id]); + if (!result.rows[0]) { + throw Object.assign(new Error(`${label} nicht gefunden`), { + status: 400, + publicMessage: `${label} nicht gefunden`, + }); + } + return result.rows[0]; +} + +async function getAgendaItemById(db, id) { + if (!id) return null; + const result = await db.query( + `SELECT ai.id, + ai.title, + ai.description, + ai.duration_minutes, + ai.case_id, + ai.meeting_id, + latest_decision.id AS decision_id + FROM meeting_agenda_item ai + LEFT JOIN LATERAL ( + SELECT d.id + FROM decision d + WHERE d.agenda_item_id = ai.id + ORDER BY d.created_at DESC, d.id DESC + LIMIT 1 + ) latest_decision ON TRUE + WHERE ai.id = $1`, + [id] + ); + return result.rows[0] || null; +} + +async function getDecisionById(db, id) { + if (!id) return null; + const result = await db.query( + `SELECT id, title, case_id, meeting_id, agenda_item_id + FROM decision + WHERE id = $1`, + [id] + ); + return result.rows[0] || null; +} + +async function getTaskById(db, id) { + const result = await db.query(`SELECT * FROM task WHERE id = $1 AND deleted_at IS NULL`, [id]); + return result.rows[0] || null; +} + +async function validateReferences(db, payload) { + const assignedUserId = asId(payload.assigned_user_id); + const backupUserId = asId(payload.backup_user_id); + const committeeId = asId(payload.committee_id); + const caseId = asId(payload.case_id); + const meetingId = asId(payload.meeting_id); + const agendaItemId = asId(payload.agenda_item_id); + const decisionId = asId(payload.decision_id); + + await ensureExists(db, "app_user", assignedUserId, "Zugewiesener Benutzer", "AND is_active = TRUE"); + await ensureExists(db, "app_user", backupUserId, "Stellvertretung", "AND is_active = TRUE"); + await ensureExists(db, "committee", committeeId, "Gremium"); + await ensureExists(db, "br_case", caseId, "Vorgang", "AND deleted_at IS NULL"); + await ensureExists(db, "meeting", meetingId, "Sitzung"); + + const agendaItem = await getAgendaItemById(db, agendaItemId); + if (agendaItemId && !agendaItem) { + throw Object.assign(new Error("TOP nicht gefunden"), { + status: 400, + publicMessage: "TOP nicht gefunden", + }); + } + + const decision = await getDecisionById(db, decisionId); + if (decisionId && !decision) { + throw Object.assign(new Error("Beschluss nicht gefunden"), { + status: 400, + publicMessage: "Beschluss nicht gefunden", + }); + } + + if (agendaItem && meetingId && agendaItem.meeting_id && Number(agendaItem.meeting_id) !== meetingId) { + throw Object.assign(new Error("TOP gehört nicht zur gewählten Sitzung"), { + status: 400, + publicMessage: "TOP gehört nicht zur gewählten Sitzung", + }); + } + + if (agendaItem && caseId && agendaItem.case_id && Number(agendaItem.case_id) !== caseId) { + throw Object.assign(new Error("TOP gehört nicht zum gewählten Vorgang"), { + status: 400, + publicMessage: "TOP gehört nicht zum gewählten Vorgang", + }); + } + + if (decision && meetingId && decision.meeting_id && Number(decision.meeting_id) !== meetingId) { + throw Object.assign(new Error("Beschluss gehört nicht zur gewählten Sitzung"), { + status: 400, + publicMessage: "Beschluss gehört nicht zur gewählten Sitzung", + }); + } + + if (decision && caseId && decision.case_id && Number(decision.case_id) !== caseId) { + throw Object.assign(new Error("Beschluss gehört nicht zum gewählten Vorgang"), { + status: 400, + publicMessage: "Beschluss gehört nicht zum gewählten Vorgang", + }); + } + + if ( + decision && + agendaItem && + decision.agenda_item_id && + Number(decision.agenda_item_id) !== Number(agendaItem.id) + ) { + throw Object.assign(new Error("Beschluss gehört nicht zum gewählten TOP"), { + status: 400, + publicMessage: "Beschluss gehört nicht zum gewählten TOP", + }); + } + + return { agendaItem, decision }; +} + +function buildResolvedPayload(payload, context = {}) { + const agendaItem = context.agendaItem || null; + const decision = context.decision || null; + + const resolvedCaseId = + asId(payload.case_id) ?? + asId(agendaItem?.case_id) ?? + asId(decision?.case_id) ?? + null; + + const resolvedMeetingId = + asId(payload.meeting_id) ?? + asId(agendaItem?.meeting_id) ?? + asId(decision?.meeting_id) ?? + null; + + const resolvedAgendaItemId = + asId(payload.agenda_item_id) ?? + asId(decision?.agenda_item_id) ?? + null; + + const resolvedDecisionId = + asId(payload.decision_id) ?? + asId(agendaItem?.decision_id) ?? + null; + + return { + title: payload.title?.trim() || "", + description: payload.description?.trim() || null, + status: payload.status || "offen", + priority: payload.priority || "mittel", + assigned_user_id: asId(payload.assigned_user_id), + backup_user_id: asId(payload.backup_user_id), + committee_id: asId(payload.committee_id), + case_id: resolvedCaseId, + meeting_id: resolvedMeetingId, + agenda_item_id: resolvedAgendaItemId, + decision_id: resolvedDecisionId, + due_date: payload.due_date || null, + confidentiality_level: payload.confidentiality_level || "intern", + }; +} + +router.get("/", async (req, res, next) => { + try { + const rows = await withDbSession(req.user, async (db) => { + const result = await db.query( + `SELECT t.*, + u.full_name AS assigned_user_name, + bu.full_name AS backup_user_name, + c.name AS committee_name, + bc.case_number, + bc.title AS case_title, + m.meeting_number, + ai.title AS agenda_item_title, + ai.agenda_number, + d.title AS decision_title, + d.decision_number + FROM task t + LEFT JOIN app_user u ON u.id = t.assigned_user_id + LEFT JOIN app_user bu ON bu.id = t.backup_user_id + LEFT JOIN committee c ON c.id = t.committee_id + LEFT JOIN br_case bc ON bc.id = t.case_id + LEFT JOIN meeting m ON m.id = t.meeting_id + LEFT JOIN meeting_agenda_item ai ON ai.id = t.agenda_item_id + LEFT JOIN decision d ON d.id = t.decision_id + WHERE t.deleted_at IS NULL + ORDER BY t.id DESC` + ); + return result.rows; + }); + + res.json(rows); + } catch (err) { + next(err); + } +}); + +router.get("/:id", async (req, res, next) => { + try { + const row = await withDbSession(req.user, (db) => getTaskById(db, req.params.id)); + if (!row) { + return res.status(404).json({ error: "Aufgabe nicht gefunden" }); + } + res.json(row); + } catch (err) { + next(err); + } +}); + +router.post( + "/", + requireMfa, + requirePermission("tasks.write", ["admin", "chair", "secretary", "member"]), + validate(taskSchema), + async (req, res, next) => { + try { + const created = await withDbSession(req.user, async (db) => { + const refs = await validateReferences(db, req.body); + const payload = buildResolvedPayload(req.body, refs); + + const result = await db.query( + `INSERT INTO task ( + title, + description, + status, + priority, + assigned_user_id, + backup_user_id, + committee_id, + case_id, + meeting_id, + agenda_item_id, + decision_id, + due_date, + confidentiality_level, + created_by, + updated_by + ) + VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$14) + RETURNING *`, + [ + payload.title, + payload.description, + payload.status, + payload.priority, + payload.assigned_user_id, + payload.backup_user_id, + payload.committee_id, + payload.case_id, + payload.meeting_id, + payload.agenda_item_id, + payload.decision_id, + payload.due_date, + payload.confidentiality_level, + req.user.sub, + ] + ); + + return result.rows[0]; + }); + + await writeAudit({ + actorId: req.user.sub, + action: "TASK_CREATED", + entityType: "task", + entityId: created.id, + ipAddress: req.ip, + metadata: { payload: req.body }, + }); + + res.status(201).json(created); + } catch (err) { + next(err); + } + } +); + +router.put( + "/:id", + requireMfa, + requirePermission("tasks.write", ["admin", "chair", "secretary", "member"]), + validate(taskUpdateSchema), + async (req, res, next) => { + try { + const updated = await withDbSession(req.user, async (db) => { + const id = Number(req.params.id); + const current = await getTaskById(db, id); + + if (!current) return null; + + const merged = { + ...current, + ...req.body, + }; + + const refs = await validateReferences(db, merged); + const payload = buildResolvedPayload(merged, refs); + + const result = await db.query( + `UPDATE task + SET title = $2, + description = $3, + status = $4, + priority = $5, + assigned_user_id = $6, + backup_user_id = $7, + committee_id = $8, + case_id = $9, + meeting_id = $10, + agenda_item_id = $11, + decision_id = $12, + due_date = $13, + confidentiality_level = $14, + updated_by = $15, + updated_at = NOW() + WHERE id = $1 + AND deleted_at IS NULL + RETURNING *`, + [ + id, + payload.title, + payload.description, + payload.status, + payload.priority, + payload.assigned_user_id, + payload.backup_user_id, + payload.committee_id, + payload.case_id, + payload.meeting_id, + payload.agenda_item_id, + payload.decision_id, + payload.due_date, + payload.confidentiality_level, + req.user.sub, + ] + ); + + return result.rows[0] || null; + }); + + if (!updated) { + return res.status(404).json({ error: "Aufgabe nicht gefunden" }); + } + + await writeAudit({ + actorId: req.user.sub, + action: "TASK_UPDATED", + entityType: "task", + entityId: updated.id, + ipAddress: req.ip, + metadata: { changes: req.body }, + }); + + res.json(updated); + } catch (err) { + next(err); + } + } +); + +router.delete( + "/:id", + requireMfa, + requirePermission("tasks.write", ["admin", "chair", "secretary", "member"]), + async (req, res, next) => { + try { + const deleted = await withDbSession(req.user, async (db) => { + const result = await db.query( + `UPDATE task + SET deleted_at = NOW(), + updated_by = $2, + updated_at = NOW() + WHERE id = $1 + AND deleted_at IS NULL + RETURNING *`, + [req.params.id, req.user.sub] + ); + return result.rows[0] || null; + }); + + if (!deleted) { + return res.status(404).json({ error: "Aufgabe nicht gefunden" }); + } + + await writeAudit({ + actorId: req.user.sub, + action: "TASK_DELETED", + entityType: "task", + entityId: deleted.id, + ipAddress: req.ip, + }); + + res.json({ ok: true, row: deleted }); + } catch (err) { + next(err); + } + } +); + +export default router; diff --git a/backend/src/modules/tasks/schemas.js b/backend/src/modules/tasks/schemas.js new file mode 100644 index 0000000..49b2532 --- /dev/null +++ b/backend/src/modules/tasks/schemas.js @@ -0,0 +1,46 @@ +import { z } from "zod"; + +function nullableIntField() { + return z.preprocess((value) => { + if (value === "" || value === undefined || value === null) return null; + const n = Number(value); + return Number.isInteger(n) ? n : value; + }, z.number().int().positive().nullable()); +} + +function nullableStringField() { + return z.preprocess((value) => { + if (value === undefined || value === null) return null; + const str = String(value).trim(); + return str === "" ? null : str; + }, z.string().nullable()); +} + +export const taskSchema = z.object({ + title: z.string().trim().min(1, "Titel ist erforderlich").max(255), + description: nullableStringField().optional(), + status: z + .enum(["offen", "in_bearbeitung", "wartet", "erledigt", "abgebrochen"]) + .default("offen"), + priority: z + .enum(["sehr_hoch", "hoch", "mittel", "niedrig"]) + .default("mittel"), + assigned_user_id: nullableIntField().optional(), + backup_user_id: nullableIntField().optional(), + committee_id: nullableIntField().optional(), + case_id: nullableIntField().optional(), + meeting_id: nullableIntField().optional(), + agenda_item_id: nullableIntField().optional(), + decision_id: nullableIntField().optional(), + due_date: nullableStringField().optional(), + confidentiality_level: z + .enum(["intern", "vertraulich", "streng_vertraulich"]) + .default("intern"), +}); + +export const taskUpdateSchema = taskSchema.partial().refine( + (data) => Object.keys(data).length > 0, + { + message: "Mindestens ein Feld muss gesetzt sein.", + } +); diff --git a/backend/src/modules/templates/routes.js b/backend/src/modules/templates/routes.js new file mode 100644 index 0000000..723d8c1 --- /dev/null +++ b/backend/src/modules/templates/routes.js @@ -0,0 +1,402 @@ +import express from "express"; +import crypto from "crypto"; +import { z } from "zod"; +import { fileTypeFromBuffer } from "file-type"; +import { v4 as uuidv4 } from "uuid"; +import { authenticate, requireMfa } from "../../middleware/auth.js"; +import { requirePermission } from "../../middleware/rbac.js"; +import { validate } from "../../middleware/validate.js"; +import { withDbSession } from "../../config/db.js"; +import { upload } from "../../middleware/upload.js"; +import { scanBuffer } from "../../services/clamav.js"; +import { saveObject, getObjectStream } from "../../services/storage.js"; +import { writeAudit } from "../../utils/audit.js"; + +const router = express.Router(); +router.use(authenticate); + +const writeGuard = [requireMfa, requirePermission("templates.write", ["admin", "chair", "secretary"])]; + +const nullablePositiveInt = z.preprocess( + (value) => { + if (value === "" || value === null || value === undefined) return null; + return value; + }, + z.coerce.number().int().positive().nullable().optional() +); + +const templateSchema = z.object({ + title: z.string().min(3).max(255), + category: z.string().min(2).max(50), + description: z.string().max(4000).optional().nullable(), + content: z.string().min(3).max(200000), + content_format: z.enum(["markdown", "html"]).default("markdown"), + logo_asset_id: nullablePositiveInt, + version_label: z.string().min(1).max(30).default("v1"), + is_active: z.boolean().default(true), +}); + +const updateTemplateSchema = templateSchema.partial(); + +const assetUpdateSchema = z.object({ + title: z.string().min(1).max(255).optional(), + description: z.string().max(2000).optional().nullable(), + is_active: z.boolean().optional(), +}); + +function normalizeNullableText(value) { + if (value === undefined) return undefined; + if (value === null) return null; + const trimmed = String(value).trim(); + return trimmed || null; +} + +function normalizeTemplatePayload(payload, userId, isCreate = false) { + const normalized = { ...payload }; + if (normalized.description !== undefined) normalized.description = normalizeNullableText(normalized.description); + if (normalized.logo_asset_id === undefined) normalized.logo_asset_id = null; + if (!normalized.content_format) normalized.content_format = "markdown"; + if (isCreate) { + normalized.created_by = userId; + } + normalized.updated_by = userId; + return normalized; +} + +function mapAsset(row) { + if (!row) return null; + return { + id: row.id, + title: row.title, + description: row.description, + file_name: row.file_name, + mime_type: row.mime_type, + size_bytes: row.size_bytes, + is_active: row.is_active, + created_at: row.created_at, + uploaded_by_name: row.uploaded_by_name, + }; +} + +async function assertAssetExists(db, assetId) { + if (!assetId) return null; + const result = await db.query( + `SELECT id FROM template_asset WHERE id = $1::bigint AND is_active = TRUE`, + [assetId] + ); + if (!result.rows[0]) { + throw Object.assign(new Error("Logo/Bild wurde nicht gefunden"), { + status: 400, + publicMessage: "Das ausgewählte Logo/Bild wurde nicht gefunden oder ist deaktiviert.", + }); + } + return result.rows[0]; +} + +async function streamTemplateAsset(row, res, disposition = "inline") { + const { stream, contentType } = await getObjectStream(row.storage_path); + const safeFilename = encodeURIComponent(row.file_name || row.title || `template-asset-${row.id}`); + res.setHeader("Content-Type", contentType || row.mime_type || "application/octet-stream"); + res.setHeader("Content-Disposition", `${disposition}; filename="${safeFilename}"`); + res.setHeader("Cache-Control", "private, max-age=300"); + stream.pipe(res); +} + +router.get("/placeholders", async (req, res) => { + res.json([ + { token: "{{template_logo}}", label: "Template-Logo/Bild" }, + { token: "{{committee_name}}", label: "Gremium / Betriebsrat" }, + { token: "{{meeting_number}}", label: "Sitzungsnummer" }, + { token: "{{meeting_date}}", label: "Sitzungsdatum" }, + { token: "{{meeting_title_block}}", label: "Sitzungstitel" }, + { token: "{{meeting_type}}", label: "Sitzungsart" }, + { token: "{{start_time}}", label: "Beginn" }, + { token: "{{end_time}}", label: "Ende" }, + { token: "{{location}}", label: "Ort" }, + { token: "{{chair_name}}", label: "Sitzungsleitung" }, + { token: "{{secretary_name}}", label: "Schriftführung" }, + { token: "{{quorum_statement}}", label: "Beschlussfähigkeit" }, + { token: "{{attendees_block}}", label: "Anwesende Mitglieder" }, + { token: "{{protocol_notes}}", label: "Protokollnotizen" }, + { token: "{{agenda_sections}}", label: "TOPs / Beratung / Beschlüsse" }, + { token: "{{signature_place}}", label: "Ort/Datum Unterschrift" }, + ]); +}); + +router.get("/assets", async (req, res, next) => { + try { + const rows = await withDbSession(req.user, async (db) => { + const result = await db.query( + `SELECT a.id, + a.title, + a.description, + a.file_name, + a.mime_type, + a.size_bytes, + a.is_active, + a.created_at, + u.full_name AS uploaded_by_name + FROM template_asset a + LEFT JOIN app_user u ON u.id = a.uploaded_by + WHERE a.is_active = TRUE + ORDER BY a.created_at DESC, a.id DESC` + ); + return result.rows.map(mapAsset); + }); + res.json(rows); + } catch (err) { + next(err); + } +}); + +router.post( + "/assets/upload", + ...writeGuard, + upload.single("file"), + async (req, res, next) => { + try { + if (!req.file) return res.status(400).json({ error: "Datei fehlt" }); + + const detected = await fileTypeFromBuffer(req.file.buffer); + const detectedMime = detected?.mime || req.file.mimetype || "application/octet-stream"; + if (!["image/png", "image/jpeg"].includes(detectedMime)) { + return res.status(415).json({ error: "Nur PNG- und JPEG-Bilder sind als Template-Logo/Bild erlaubt." }); + } + + const scan = await scanBuffer(req.file.buffer); + if (!scan.clean) { + return res.status(422).json({ error: "Datei durch Virenscan abgelehnt", scan_result: scan.raw }); + } + + const sha256 = crypto.createHash("sha256").update(req.file.buffer).digest("hex"); + const safeName = req.file.originalname.replace(/[^a-zA-Z0-9._-]/g, "_"); + const storageKey = `${new Date().toISOString().slice(0, 10)}/template-assets/${uuidv4()}-${safeName}`; + const stored = await saveObject(storageKey, req.file.buffer, detectedMime); + + const asset = await withDbSession(req.user, async (db) => { + const result = await db.query( + `INSERT INTO template_asset( + title, description, file_name, storage_path, storage_provider, mime_type, size_bytes, sha256_hash, uploaded_by, is_active + ) VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,TRUE) + RETURNING *`, + [ + normalizeNullableText(req.body.title) || req.file.originalname, + normalizeNullableText(req.body.description), + req.file.originalname, + stored.storage_path, + stored.storage_provider, + detectedMime, + req.file.size, + sha256, + req.user.sub, + ] + ); + return result.rows[0]; + }); + + await writeAudit({ + actorId: req.user.sub, + action: "TEMPLATE_ASSET_UPLOADED", + entityType: "template_asset", + entityId: asset.id, + ipAddress: req.ip, + metadata: { file_name: req.file.originalname, mime_type: detectedMime, sha256 }, + }); + + res.status(201).json(mapAsset(asset)); + } catch (err) { + next(err); + } + } +); + +router.get("/assets/:id/view", async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const result = await db.query( + `SELECT id, title, file_name, storage_path, mime_type + FROM template_asset + WHERE id = $1::bigint + AND is_active = TRUE`, + [req.params.id] + ); + return result.rows[0]; + }); + if (!row) return res.status(404).json({ error: "Bild nicht gefunden" }); + await streamTemplateAsset(row, res, "inline"); + } catch (err) { + next(err); + } +}); + +router.put("/assets/:id", ...writeGuard, validate(assetUpdateSchema), async (req, res, next) => { + try { + const payload = { + title: normalizeNullableText(req.body.title), + description: normalizeNullableText(req.body.description), + is_active: req.body.is_active, + }; + const fields = Object.entries(payload).filter(([, value]) => value !== undefined); + if (!fields.length) return res.status(400).json({ error: "Keine Felder zum Aktualisieren" }); + + const sets = fields.map(([key], index) => `${key} = $${index + 1}`); + const values = fields.map(([, value]) => value); + values.push(req.params.id); + + const row = await withDbSession(req.user, async (db) => { + const result = await db.query( + `UPDATE template_asset SET ${sets.join(", ")} WHERE id = $${values.length}::bigint RETURNING *`, + values + ); + return result.rows[0]; + }); + if (!row) return res.status(404).json({ error: "Bild nicht gefunden" }); + await writeAudit({ actorId: req.user.sub, action: "TEMPLATE_ASSET_UPDATED", entityType: "template_asset", entityId: row.id, ipAddress: req.ip, metadata: req.body }); + res.json(mapAsset(row)); + } catch (err) { + next(err); + } +}); + +router.delete("/assets/:id", ...writeGuard, async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + await db.query(`UPDATE template_item SET logo_asset_id = NULL WHERE logo_asset_id = $1::bigint`, [req.params.id]); + const result = await db.query( + `UPDATE template_asset SET is_active = FALSE WHERE id = $1::bigint RETURNING *`, + [req.params.id] + ); + return result.rows[0]; + }); + if (!row) return res.status(404).json({ error: "Bild nicht gefunden" }); + await writeAudit({ actorId: req.user.sub, action: "TEMPLATE_ASSET_DEACTIVATED", entityType: "template_asset", entityId: row.id, ipAddress: req.ip }); + res.json({ ok: true, row: mapAsset(row) }); + } catch (err) { + next(err); + } +}); + +router.get("/", async (req, res, next) => { + try { + const rows = await withDbSession(req.user, async (db) => { + const result = await db.query( + `SELECT t.id, + t.title, + t.category, + t.description, + t.content_format, + t.version_label, + t.is_active, + t.logo_asset_id, + a.title AS logo_title, + t.updated_at, + t.created_at + FROM template_item t + LEFT JOIN template_asset a ON a.id = t.logo_asset_id + ORDER BY t.category, t.title, t.id` + ); + return result.rows; + }); + res.json(rows); + } catch (err) { + next(err); + } +}); + +router.get("/:id", async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const result = await db.query( + `SELECT t.*, + a.title AS logo_title, + a.file_name AS logo_file_name, + a.mime_type AS logo_mime_type, + a.size_bytes AS logo_size_bytes + FROM template_item t + LEFT JOIN template_asset a ON a.id = t.logo_asset_id + WHERE t.id = $1::bigint`, + [req.params.id] + ); + return result.rows[0]; + }); + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + res.json(row); + } catch (err) { + next(err); + } +}); + +router.post("/", ...writeGuard, validate(templateSchema), async (req, res, next) => { + try { + const payload = normalizeTemplatePayload(req.body, req.user.sub, true); + const row = await withDbSession(req.user, async (db) => { + await assertAssetExists(db, payload.logo_asset_id); + const result = await db.query( + `INSERT INTO template_item( + title, category, description, content, content_format, logo_asset_id, version_label, is_active, created_by, updated_by + ) VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10) + RETURNING *`, + [ + payload.title, + payload.category, + payload.description, + payload.content, + payload.content_format, + payload.logo_asset_id, + payload.version_label, + payload.is_active, + payload.created_by, + payload.updated_by, + ] + ); + return result.rows[0]; + }); + await writeAudit({ actorId: req.user.sub, action: "TEMPLATE_CREATED", entityType: "template", entityId: row.id, ipAddress: req.ip, metadata: { title: row.title, category: row.category } }); + res.status(201).json(row); + } catch (err) { + next(err); + } +}); + +router.put("/:id", ...writeGuard, validate(updateTemplateSchema), async (req, res, next) => { + try { + const payload = normalizeTemplatePayload(req.body, req.user.sub, false); + const fields = ["title", "category", "description", "content", "content_format", "logo_asset_id", "version_label", "is_active", "updated_by"].filter( + (field) => payload[field] !== undefined + ); + if (!fields.length) return res.status(400).json({ error: "Keine Felder zum Aktualisieren" }); + + const row = await withDbSession(req.user, async (db) => { + if (payload.logo_asset_id !== undefined) await assertAssetExists(db, payload.logo_asset_id); + const sets = fields.map((field, index) => `${field} = $${index + 1}`); + const values = fields.map((field) => payload[field]); + values.push(req.params.id); + const result = await db.query( + `UPDATE template_item SET ${sets.join(", ")}, updated_at = NOW() WHERE id = $${values.length}::bigint RETURNING *`, + values + ); + return result.rows[0]; + }); + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + await writeAudit({ actorId: req.user.sub, action: "TEMPLATE_UPDATED", entityType: "template", entityId: row.id, ipAddress: req.ip, metadata: req.body }); + res.json(row); + } catch (err) { + next(err); + } +}); + +router.delete("/:id", ...writeGuard, async (req, res, next) => { + try { + const row = await withDbSession(req.user, async (db) => { + const result = await db.query(`DELETE FROM template_item WHERE id = $1::bigint RETURNING *`, [req.params.id]); + return result.rows[0]; + }); + if (!row) return res.status(404).json({ error: "Nicht gefunden" }); + await writeAudit({ actorId: req.user.sub, action: "TEMPLATE_DELETED", entityType: "template", entityId: row.id, ipAddress: req.ip }); + res.json({ ok: true, row }); + } catch (err) { + next(err); + } +}); + +export default router; diff --git a/backend/src/modules/users/routes.js b/backend/src/modules/users/routes.js new file mode 100644 index 0000000..e999d62 --- /dev/null +++ b/backend/src/modules/users/routes.js @@ -0,0 +1,22 @@ + import { z } from "zod"; + import { createCrudRouter } from "../crudFactory.js"; + + export default createCrudRouter({ + table: "app_user", + entityType: "user", + auditPrefix: "USER", + listSql: `SELECT id, full_name, email, role, committee_id, is_active, two_factor_enabled, security_classification, force_password_reset, created_at FROM app_user ORDER BY full_name`, + detailSql: `SELECT id, full_name, email, role, committee_id, is_active, two_factor_enabled, security_classification, force_password_reset, last_login_at, created_at FROM app_user WHERE id = $1`, + deleteSql: `UPDATE app_user SET is_active = FALSE WHERE id = $1 RETURNING id, full_name, email, role, committee_id, is_active`, + writeRoles: ['admin'], + writePermission: 'system.users', + fields: [ + { name: 'full_name', schema: z.string().min(2).max(120) }, +{ name: 'email', schema: z.string().email() }, +{ name: 'role', schema: z.enum(['admin','chair','member','secretary','advisor']) }, +{ name: 'committee_id', schema: z.number().int().nullable().optional() }, +{ name: 'is_active', schema: z.boolean().optional().default(true) }, +{ name: 'security_classification', schema: z.string().max(30).optional().default('standard') }, +{ name: 'force_password_reset', schema: z.boolean().optional().default(false) } + ] + }); diff --git a/backend/src/server.js b/backend/src/server.js new file mode 100644 index 0000000..6c1a854 --- /dev/null +++ b/backend/src/server.js @@ -0,0 +1,79 @@ +import express from "express"; +import cookieParser from "cookie-parser"; +import { commonSecurity } from "./middleware/security.js"; +import { errorHandler } from "./middleware/errorHandler.js"; +import { env } from "./config/env.js"; +import authRoutes from "./modules/auth/routes.js"; +import dashboardRoutes from "./modules/dashboard/routes.js"; +import auditRoutes from "./modules/audit/routes.js"; +import committeeRoutes from "./modules/committees/routes.js"; +import userRoutes from "./modules/users/routes.js"; +import caseRoutes from "./modules/cases/routes.js"; +import deadlineRoutes from "./modules/deadlines/routes.js"; +import meetingRoutes from "./modules/meetings/routes.js"; +import agendaRoutes from "./modules/agenda-items/routes.js"; +import decisionRoutes from "./modules/decisions/routes.js"; +import taskRoutes from "./modules/tasks/routes.js"; +import documentRoutes, { publicDocumentsRouter } from "./modules/documents/routes.js"; +import commentRoutes from "./modules/comments/routes.js"; +import templateRoutes from "./modules/templates/routes.js"; +import notificationRoutes from "./modules/notifications/routes.js"; +import calendarRoutes from "./modules/calendar/routes.js"; +import { runBootstrapMigrations } from "./db/bootstrap.js"; +import reportRoutes from "./modules/reports/routes.js"; +import permissionRoutes from "./modules/permissions/routes.js"; +import financeRoutes from "./modules/finance/routes.js"; +import kummerkastenRoutes, { publicKummerkastenRouter } from "./modules/kummerkasten/routes.js"; +import departmentRoutes from "./modules/departments/routes.js"; +import documentCategoryRoutes from "./modules/document-categories/routes.js"; + +const app = express(); + +app.use(commonSecurity); +app.use(express.json({ limit: "10mb" })); +app.use(cookieParser()); + +app.get("/health", (req, res) => res.json({ ok: true, env: env.nodeEnv })); +app.use("/api/auth", authRoutes); +app.use("/api/dashboard", dashboardRoutes); +app.use("/api/committees", committeeRoutes); +app.use("/api/users", userRoutes); +app.use("/api/cases", caseRoutes); +app.use("/api/deadlines", deadlineRoutes); +app.use("/api/meetings", meetingRoutes); +app.use("/api/agenda-items", agendaRoutes); +app.use("/api/decisions", decisionRoutes); +app.use("/api/tasks", taskRoutes); +app.use("/api/documents", documentRoutes); +app.use("/api/comments", commentRoutes); +app.use("/api/templates", templateRoutes); +app.use("/api/notifications", notificationRoutes); +app.use("/api/calendar", calendarRoutes); +app.use("/api/audit", auditRoutes); +app.use("/api/reports", reportRoutes); +app.use("/api/permissions", permissionRoutes); +app.use("/api/finance", financeRoutes); +app.use("/api/kummerkasten", kummerkastenRoutes); +app.use("/api/departments", departmentRoutes); +app.use("/api/document-categories", documentCategoryRoutes); +app.use("/api/public/kummerkasten", publicKummerkastenRouter); +app.use("/api/public/documents", publicDocumentsRouter); +app.use(errorHandler); + +async function start() { + try { + console.log("[startup] starting backend"); + await runBootstrapMigrations(); + console.log("[startup] migrations done"); + + app.listen(env.port, "0.0.0.0", () => { + console.log(`BR-Office backend listening on :${env.port}`); + }); + } catch (error) { + console.error("[startup] fatal error"); + console.error(error); + process.exit(1); + } +} + +start(); diff --git a/backend/src/services/accessControl.js b/backend/src/services/accessControl.js new file mode 100644 index 0000000..d25ceb5 --- /dev/null +++ b/backend/src/services/accessControl.js @@ -0,0 +1,120 @@ +import { query, withDbSession } from "../config/db.js"; + +const FALLBACK_PAGES_BY_ROLE = { + admin: ["/", "/cases", "/deadlines", "/meetings", "/agenda-items", "/decisions", "/reports", "/finance", "/tasks", "/calendar", "/documents", "/comments", "/notifications", "/users", "/committees", "/templates", "/permissions", "/security", "/audit"], + chair: ["/", "/cases", "/deadlines", "/meetings", "/agenda-items", "/decisions", "/reports", "/finance", "/tasks", "/calendar", "/documents", "/comments", "/notifications", "/committees", "/templates"], + secretary: ["/", "/meetings", "/agenda-items", "/decisions", "/reports", "/finance", "/tasks", "/calendar", "/documents", "/comments", "/notifications"], + member: ["/", "/cases", "/deadlines", "/tasks", "/calendar", "/documents", "/comments", "/notifications"], + advisor: ["/", "/calendar", "/documents", "/comments", "/notifications"], +}; + +export function fallbackAllowedPagePaths(role) { + return FALLBACK_PAGES_BY_ROLE[role] || ["/"]; +} + +export async function getUserAccess(userId, role) { + try { + return await withDbSession({ sub: userId, role }, async (db) => { + const pages = await db.query( + `SELECT DISTINCT p.page_key, p.path, p.label, p.nav_group, p.sort_order + FROM app_page p + JOIN app_role_page rp ON rp.page_key = p.page_key AND rp.can_view = TRUE + JOIN app_role_profile r ON r.id = rp.role_profile_id AND r.is_active = TRUE + WHERE r.system_role::TEXT = $2 + OR EXISTS ( + SELECT 1 FROM app_user_role_profile urp + WHERE urp.role_profile_id = r.id + AND urp.user_id = $1 + ) + ORDER BY p.sort_order, p.label`, + [userId, role] + ); + + const permissions = await db.query( + `SELECT DISTINCT perm.permission_key + FROM app_permission perm + JOIN app_role_permission rp ON rp.permission_key = perm.permission_key AND rp.granted = TRUE + JOIN app_role_profile r ON r.id = rp.role_profile_id AND r.is_active = TRUE + WHERE r.system_role::TEXT = $2 + OR EXISTS ( + SELECT 1 FROM app_user_role_profile urp + WHERE urp.role_profile_id = r.id + AND urp.user_id = $1 + ) + ORDER BY perm.permission_key`, + [userId, role] + ); + + const roleProfiles = await db.query( + `SELECT DISTINCT r.id, r.code, r.name, r.description, r.system_role, r.is_system + FROM app_role_profile r + WHERE r.is_active = TRUE + AND ( + r.system_role::TEXT = $2 + OR EXISTS ( + SELECT 1 FROM app_user_role_profile urp + WHERE urp.role_profile_id = r.id + AND urp.user_id = $1 + ) + ) + ORDER BY r.is_system DESC, r.name`, + [userId, role] + ); + + const teamRoles = await db.query( + `SELECT tr.id, tr.code, tr.name, tr.description, + tr.can_view_cases, tr.can_write_cases, + tr.can_view_documents, tr.can_write_documents, + utr.committee_id + FROM app_user_team_role utr + JOIN app_team_role tr ON tr.id = utr.team_role_id + WHERE utr.user_id = $1 + AND tr.is_active = TRUE + ORDER BY tr.name`, + [userId] + ); + + const pageRows = pages.rows || []; + const permissionKeys = permissions.rows.map((row) => row.permission_key); + const pagePaths = pageRows.map((row) => row.path); + + if (role === "admin") { + return { + allowed_pages: pageRows, + allowed_page_paths: pagePaths.length ? pagePaths : fallbackAllowedPagePaths(role), + permissions: permissionKeys.includes("system.admin") ? permissionKeys : ["system.admin", ...permissionKeys], + role_profiles: roleProfiles.rows, + team_roles: teamRoles.rows, + }; + } + + return { + allowed_pages: pageRows, + allowed_page_paths: pagePaths.length ? pagePaths : fallbackAllowedPagePaths(role), + permissions: permissionKeys, + role_profiles: roleProfiles.rows, + team_roles: teamRoles.rows, + }; + }); + } catch (err) { + return { + allowed_pages: [], + allowed_page_paths: fallbackAllowedPagePaths(role), + permissions: role === "admin" ? ["system.admin"] : [], + role_profiles: [], + team_roles: [], + }; + } +} + +export async function userHasPermission(userId, role, permissionKey) { + if (role === "admin") return true; + const result = await query(`SELECT app_has_permission($1, $2::bigint, $3::text) AS allowed`, [permissionKey, userId, role || "anonymous"]); + return Boolean(result.rows[0]?.allowed); +} + +export async function userCanViewPage(userId, role, pageKey) { + if (role === "admin") return true; + const result = await query(`SELECT app_can_view_page($1, $2::bigint, $3::text) AS allowed`, [pageKey, userId, role || "anonymous"]); + return Boolean(result.rows[0]?.allowed); +} diff --git a/backend/src/services/clamav.js b/backend/src/services/clamav.js new file mode 100644 index 0000000..1376303 --- /dev/null +++ b/backend/src/services/clamav.js @@ -0,0 +1,8 @@ +export async function scanBuffer(buffer) { + // Platzhalter für echten ClamAV-Scan. Für die Referenzstruktur wird der API-Vertrag bereits abgebildet. + // In Produktion hier TCP-Scan gegen clamd oder ICAP ergänzen. + return { + clean: true, + raw: "stream: OK", + }; +} diff --git a/backend/src/services/mail.js b/backend/src/services/mail.js new file mode 100644 index 0000000..03d0744 --- /dev/null +++ b/backend/src/services/mail.js @@ -0,0 +1,57 @@ +import nodemailer from "nodemailer"; +import { env } from "../config/env.js"; + +let transporterPromise = null; + +export function isMailConfigured() { + return Boolean(env.smtpHost && env.smtpPort); +} + +async function createTransporter() { + if (!isMailConfigured()) return null; + + const transport = nodemailer.createTransport({ + host: env.smtpHost, + port: env.smtpPort, + secure: env.smtpSecure, + requireTLS: env.smtpRequireTls, + auth: env.smtpUser ? { user: env.smtpUser, pass: env.smtpPass } : undefined, + }); + + return transport; +} + +async function getTransporter() { + if (!transporterPromise) { + transporterPromise = createTransporter(); + } + + return transporterPromise; +} + +export async function sendMail({ to, subject, text, html, from }) { + if (!isMailConfigured()) { + return { ok: false, skipped: true, reason: "smtp_not_configured" }; + } + + const transporter = await getTransporter(); + if (!transporter) { + return { ok: false, skipped: true, reason: "smtp_not_configured" }; + } + + const info = await transporter.sendMail({ + from: from || env.smtpFrom, + to, + subject, + text, + html, + }); + + return { + ok: true, + skipped: false, + messageId: info.messageId, + accepted: info.accepted, + rejected: info.rejected, + }; +} diff --git a/backend/src/services/meetingDecisionReport.js b/backend/src/services/meetingDecisionReport.js new file mode 100644 index 0000000..d04700a --- /dev/null +++ b/backend/src/services/meetingDecisionReport.js @@ -0,0 +1,379 @@ +import crypto from "crypto"; +import { v4 as uuidv4 } from "uuid"; +import { saveObject } from "./storage.js"; + +const AUTO_DESCRIPTION = "Automatisch beim Beenden der Sitzung erzeugter Beschlussbericht."; + +export const DEFAULT_MEETING_DECISION_REPORT_TEMPLATE = `# Beschlussbericht zur BR-Sitzung am {{meeting_date}} +VERTRAULICH + +{{meeting_title_block}} + +## Sitzungsdaten +Sitzungsnummer: {{meeting_number}} +Sitzungsart: {{meeting_type}} +Sitzungsdatum: {{meeting_date}} +Sitzungsort: {{location}} +Sitzungsleitung: {{chair_name}} +Schriftführung: {{secretary_name}} + +## Behandelte Beschlüsse ab TOP 1 +{{decision_sections}} + +{{signature_place}} +______________________________ +{{chair_name}} + +______________________________ +{{secretary_name}}`; + +function escapeRtf(value) { + return String(value ?? "") + .replace(/\\/g, "\\\\") + .replace(/\{/g, "\\{") + .replace(/\}/g, "\\}") + .replace(/\t/g, "\\tab "); +} + +function formatDate(value) { + if (!value) return ""; + const date = value instanceof Date ? value : new Date(value); + if (Number.isNaN(date.getTime())) return String(value); + return date.toLocaleDateString("de-DE"); +} + +function formatDateTime(value) { + if (!value) return ""; + const date = value instanceof Date ? value : new Date(value); + if (Number.isNaN(date.getTime())) return String(value); + return date.toLocaleString("de-DE"); +} + +function meetingTypeLabel(value) { + if (value === "ausserordentlich") return "Außerordentlich"; + return "Ordentlich"; +} + +function decisionStatusLabel(value) { + switch (String(value ?? "").trim().toLowerCase()) { + case "in_bearbeitung": + return "In Bearbeitung"; + case "rueckfrage": + return "Rückfrage"; + case "abgeschlossen": + return "Abgeschlossen"; + default: + return value || "offen"; + } +} + +function sanitizeLine(value, fallback = "-") { + const text = String(value ?? "").trim(); + return text || fallback; +} + +function computeDecisionOutcome(decision) { + const yes = Number(decision?.votes_yes ?? 0); + const no = Number(decision?.votes_no ?? 0); + if (yes === 0 && no === 0) return "Ergebnis: nicht hinterlegt"; + if (yes > no) return "Ergebnis: angenommen"; + if (no > yes) return "Ergebnis: abgelehnt"; + return "Ergebnis: Stimmengleichheit"; +} + +function replaceTokens(template, values) { + return template.replace(/\{\{\s*([a-zA-Z0-9_]+)\s*\}\}/g, (_, key) => { + const value = values[key]; + if (value === undefined || value === null) return ""; + return String(value); + }); +} + +function linesToRtf(content) { + const lines = String(content ?? "").replace(/\r\n/g, "\n").split("\n"); + const rtfLines = [ + "{\\rtf1\\ansi\\deff0", + "{\\fonttbl{\\f0 Arial;}}", + "\\paperw11907\\paperh16840\\margl1134\\margr1134\\margt1134\\margb1134", + "\\viewkind4\\uc1", + ]; + + for (const rawLine of lines) { + const line = rawLine ?? ""; + const trimmed = line.trim(); + + if (!trimmed) { + rtfLines.push("{\\pard\\sa140\\par}"); + continue; + } + + if (trimmed === "VERTRAULICH") { + rtfLines.push(`{\\pard\\qc\\sa220\\b\\fs26 ${escapeRtf(trimmed)}\\par}`); + continue; + } + + if (trimmed.startsWith("# ")) { + rtfLines.push(`{\\pard\\qc\\sa220\\b\\fs32 ${escapeRtf(trimmed.slice(2))}\\par}`); + continue; + } + + if (trimmed.startsWith("## ")) { + rtfLines.push(`{\\pard\\sa200\\b\\fs26 ${escapeRtf(trimmed.slice(3))}\\par}`); + continue; + } + + if (trimmed.startsWith("### ")) { + rtfLines.push(`{\\pard\\sa160\\b\\fs23 ${escapeRtf(trimmed.slice(4))}\\par}`); + continue; + } + + if (trimmed.startsWith("- ")) { + rtfLines.push(`{\\pard\\li540\\fi-240\\sa120\\fs22 ${escapeRtf(trimmed)}\\par}`); + continue; + } + + rtfLines.push(`{\\pard\\sa120\\fs22 ${escapeRtf(line)}\\par}`); + } + + rtfLines.push("}"); + return rtfLines.join("\n"); +} + +function renderDecisionSections(agendaItems = []) { + const itemsWithDecisions = agendaItems.filter((item) => Array.isArray(item.decisions) && item.decisions.length > 0); + if (!itemsWithDecisions.length) { + return "Für diese Sitzung wurden keine Beschlüsse dokumentiert."; + } + + return itemsWithDecisions + .map((item) => { + const lines = [`## TOP ${sanitizeLine(item.agenda_number, String(item.id))}: ${sanitizeLine(item.title, "Ohne Titel")}`]; + + if (item.case_number) { + lines.push(`Vorgang: ${item.case_number}`); + } + + if (item.description?.trim()) { + lines.push(item.description.trim()); + } + + item.decisions.forEach((decision) => { + lines.push(`### Beschluss ${sanitizeLine(decision.decision_number, String(decision.id))}: ${sanitizeLine(decision.title, "Ohne Titel")}`); + lines.push(decision.decision_text?.trim() || "Kein Beschlusstext hinterlegt."); + lines.push([ + `Ja-Stimmen: ${Number(decision.votes_yes ?? 0)}`, + `Nein-Stimmen: ${Number(decision.votes_no ?? 0)}`, + `Enthaltungen: ${Number(decision.votes_abstain ?? 0)}`, + ].join(" | ")); + lines.push(computeDecisionOutcome(decision)); + lines.push(`Status: ${decisionStatusLabel(decision.status)}`); + + if (decision.responsible_name) { + lines.push(`Verantwortlich: ${decision.responsible_name}`); + } + + if (decision.due_date) { + lines.push(`Frist: ${formatDateTime(decision.due_date)}`); + } + }); + + return lines.join("\n\n"); + }) + .join("\n\n"); +} + +function buildDecisionReportValues(meeting, agendaItems) { + const title = meeting.title?.trim(); + return { + meeting_number: sanitizeLine(meeting.meeting_number, "offen"), + meeting_title_block: title ? `Titel: ${title}` : "", + meeting_date: formatDate(meeting.meeting_date), + meeting_type: meetingTypeLabel(meeting.meeting_type), + location: sanitizeLine(meeting.location, "nicht hinterlegt"), + chair_name: sanitizeLine(meeting.chair_name, "nicht hinterlegt"), + secretary_name: sanitizeLine(meeting.secretary_name, "nicht hinterlegt"), + decision_sections: renderDecisionSections(agendaItems), + signature_place: `${sanitizeLine(meeting.location, "Ort")}, den ${formatDate(meeting.meeting_date)}`, + }; +} + +function generateDocumentNumber() { + return `D-${new Date().getFullYear()}-${Math.floor(Math.random() * 100000).toString().padStart(5, "0")}`; +} + +async function fetchActiveTemplate(db) { + const result = await db.query( + `SELECT id, title, content, version_label + FROM template_item + WHERE category = 'meeting_decision_report' + AND is_active = TRUE + ORDER BY updated_at DESC, id DESC + LIMIT 1` + ); + return result.rows[0] || null; +} + +async function fetchMeetingDecisionReportData(db, meetingId) { + const meetingResult = await db.query( + `SELECT m.id, + m.meeting_number, + m.title, + m.meeting_type, + m.meeting_date, + m.location, + chair.full_name AS chair_name, + secretary.full_name AS secretary_name + FROM meeting m + LEFT JOIN app_user chair ON chair.id = m.chair_user_id + LEFT JOIN app_user secretary ON secretary.id = m.secretary_user_id + WHERE m.id = $1`, + [meetingId] + ); + + const meeting = meetingResult.rows[0]; + if (!meeting) return null; + + const agendaResult = await db.query( + `SELECT ai.id, + ai.agenda_number, + ai.title, + ai.description, + ai.case_id, + c.case_number + FROM meeting_agenda_item ai + LEFT JOIN br_case c ON c.id = ai.case_id + WHERE ai.meeting_id = $1 + ORDER BY + CASE WHEN ai.agenda_number ~ '^[0-9]+$' THEN ai.agenda_number::int ELSE NULL END NULLS LAST, + ai.agenda_number NULLS LAST, + ai.id`, + [meetingId] + ); + + const agendaItems = agendaResult.rows; + const agendaIds = agendaItems.map((item) => item.id); + const decisionMap = new Map(agendaIds.map((id) => [id, []])); + + if (agendaIds.length) { + const decisionResult = await db.query( + `SELECT d.id, + d.agenda_item_id, + d.decision_number, + d.title, + d.decision_text, + d.status, + d.votes_yes, + d.votes_no, + d.votes_abstain, + d.due_date, + u.full_name AS responsible_name + FROM decision d + LEFT JOIN app_user u ON u.id = d.responsible_user_id + WHERE d.meeting_id = $1 + AND d.agenda_item_id = ANY($2::bigint[]) + ORDER BY d.created_at, d.id`, + [meetingId, agendaIds] + ); + + decisionResult.rows.forEach((row) => { + const bucket = decisionMap.get(row.agenda_item_id) || []; + bucket.push(row); + decisionMap.set(row.agenda_item_id, bucket); + }); + } + + return { + meeting, + agendaItems: agendaItems.map((item) => ({ ...item, decisions: decisionMap.get(item.id) || [] })), + }; +} + +export async function ensureMeetingDecisionReportDocument({ db, meetingId, actorId }) { + const existing = await db.query( + `SELECT id, document_number, title, file_name, uploaded_at + FROM document_item + WHERE meeting_id = $1 + AND document_type = 'bericht' + AND description = $2 + AND deleted_at IS NULL + ORDER BY uploaded_at DESC, id DESC + LIMIT 1`, + [meetingId, AUTO_DESCRIPTION] + ); + + if (existing.rows[0]) { + return existing.rows[0]; + } + + const data = await fetchMeetingDecisionReportData(db, meetingId); + if (!data) return null; + + const template = await fetchActiveTemplate(db); + const templateContent = template?.content?.trim() || DEFAULT_MEETING_DECISION_REPORT_TEMPLATE; + const values = buildDecisionReportValues(data.meeting, data.agendaItems); + const renderedText = replaceTokens(templateContent, values); + const rtf = linesToRtf(renderedText); + const buffer = Buffer.from(rtf, "utf8"); + + const filenameBase = `${data.meeting.meeting_number || `sitzung-${meetingId}`}-beschlussbericht`; + const safeFilename = filenameBase.replace(/[^a-zA-Z0-9._-]/g, "_"); + const storageKey = `${new Date().toISOString().slice(0, 10)}/${uuidv4()}-${safeFilename}.rtf`; + const sha256 = crypto.createHash("sha256").update(buffer).digest("hex"); + const docMeta = await saveObject(storageKey, buffer, "application/rtf"); + + const insert = await db.query( + `INSERT INTO document_item( + document_number, + title, + document_type, + description, + version_label, + file_name, + storage_path, + storage_provider, + mime_type, + size_bytes, + sha256_hash, + confidentiality_level, + case_id, + meeting_id, + decision_id, + uploaded_by, + scan_status, + scan_engine, + scan_result, + uploaded_at, + updated_at + ) VALUES ( + $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,NULL,$13,NULL,$14,$15,$16,$17,NOW(),NOW() + ) + RETURNING id, document_number, title, file_name, uploaded_at`, + [ + generateDocumentNumber(), + `Beschlussbericht ${data.meeting.meeting_number}`, + "bericht", + AUTO_DESCRIPTION, + template?.version_label || "v1", + `${safeFilename}.rtf`, + docMeta.storage_path, + docMeta.storage_provider, + "application/rtf", + buffer.length, + sha256, + "vertraulich", + meetingId, + actorId, + "clean", + "system", + `Automatisch generiert aus Vorlage ${template?.title || "meeting_decision_report"}`, + ] + ); + + await db.query( + `INSERT INTO document_scan_event(document_id, scanned_by_user_id, status, engine, result_text, scanned_at) + VALUES ($1,$2,$3,$4,$5,NOW())`, + [insert.rows[0].id, actorId, "clean", "system", "Automatisch generierter Beschlussbericht"] + ); + + return insert.rows[0]; +} diff --git a/backend/src/services/meetingProtocol.js b/backend/src/services/meetingProtocol.js new file mode 100644 index 0000000..3531a3a --- /dev/null +++ b/backend/src/services/meetingProtocol.js @@ -0,0 +1,776 @@ +import crypto from "crypto"; +import { v4 as uuidv4 } from "uuid"; +import { getObjectStream, saveObject } from "./storage.js"; + +export const DEFAULT_MEETING_PROTOCOL_TEMPLATE = `{{template_logo}} + +# Betriebsrat {{committee_name}} +# Protokoll der BR-Sitzung am {{meeting_date}} +VERTRAULICH + +{{meeting_title_block}} + +## Organisatorisches und Feststellungen + +Sitzungsnummer: {{meeting_number}} +Sitzungsart: {{meeting_type}} +Sitzungsbeginn: {{start_time}} +Sitzungsort: {{location}} +Sitzungsleitung: {{chair_name}} +Schriftführung: {{secretary_name}} +{{quorum_statement}} +{{attendees_block}} + +## Protokollnotizen +{{protocol_notes}} + +## Tagesordnung und Beratung +{{agenda_sections}} + +## Sitzungsende +Schließung der Sitzung um {{end_time}} Uhr. + +{{signature_place}} +______________________________ +{{chair_name}} + +______________________________ +{{secretary_name}}`; + +function escapeRtf(value) { + return String(value ?? "") + .replace(/\\/g, "\\\\") + .replace(/\{/g, "\\{") + .replace(/\}/g, "\\}") + .replace(/\t/g, "\\tab "); +} + + +function decodeBasicHtmlEntities(value) { + return String(value ?? "") + .replace(/ /gi, " ") + .replace(/&/gi, "&") + .replace(/</gi, "<") + .replace(/>/gi, ">") + .replace(/"/gi, '"') + .replace(/'/gi, "'") + .replace(/'/gi, "'"); +} + +function htmlToProtocolText(html) { + let text = String(html ?? ""); + text = text.replace(/<\s*(script|style)[^>]*>[\s\S]*?<\s*\/\s*\1\s*>/gi, ""); + text = text.replace(/<\s*img[^>]*(?:data-template-logo=["']true["']|alt=["']template_logo["'])[^>]*>/gi, "\n{{template_logo}}\n"); + text = text.replace(/<\s*h1[^>]*>/gi, "\n# ").replace(/<\s*\/\s*h1\s*>/gi, "\n"); + text = text.replace(/<\s*h2[^>]*>/gi, "\n## ").replace(/<\s*\/\s*h2\s*>/gi, "\n"); + text = text.replace(/<\s*h3[^>]*>/gi, "\n### ").replace(/<\s*\/\s*h3\s*>/gi, "\n"); + text = text.replace(/<\s*li[^>]*>/gi, "\n- ").replace(/<\s*\/\s*li\s*>/gi, ""); + text = text.replace(/<\s*br\s*\/?>/gi, "\n"); + text = text.replace(/<\s*\/\s*(p|div|section|article|tr|table|ul|ol)\s*>/gi, "\n"); + text = text.replace(/<\s*(p|div|section|article|tr|table|ul|ol)[^>]*>/gi, "\n"); + text = text.replace(/<\s*\/\s*(td|th)\s*>/gi, " | "); + text = text.replace(/<[^>]+>/g, ""); + text = decodeBasicHtmlEntities(text); + return text + .split("\n") + .map((line) => line.replace(/[ \t]+$/g, "")) + .join("\n") + .replace(/\n{3,}/g, "\n\n") + .trim(); +} + +function normalizeTemplateContentForProtocol(content, format = "markdown") { + if (String(format || "markdown").toLowerCase() === "html") { + return htmlToProtocolText(content); + } + return String(content ?? ""); +} + +function rtfImageBlock(asset) { + if (!asset?.buffer?.length) return ""; + const mime = String(asset.mime_type || "").toLowerCase(); + const blip = mime === "image/png" ? "pngblip" : mime === "image/jpeg" || mime === "image/jpg" ? "jpegblip" : ""; + if (!blip) return `{\\pard\\qc\\sa180\\fs20 ${escapeRtf(`[Bild kann im RTF nicht eingebettet werden: ${asset.file_name || "Logo"}`)}\\par}`; + const hex = asset.buffer.toString("hex"); + return `{\\pard\\qc\\sa220{\\pict\\${blip}\\picwgoal3200\\pichgoal1100 ${hex}}\\par}`; +} + +async function streamToBuffer(stream) { + const chunks = []; + for await (const chunk of stream) { + chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)); + } + return Buffer.concat(chunks); +} + +async function loadTemplateLogo(db, template) { + if (!template?.logo_asset_id) return null; + const result = await db.query( + `SELECT id, title, file_name, storage_path, mime_type + FROM template_asset + WHERE id = $1::bigint + AND is_active = TRUE`, + [template.logo_asset_id] + ); + const asset = result.rows[0]; + if (!asset) return null; + try { + const { stream } = await getObjectStream(asset.storage_path); + return { ...asset, buffer: await streamToBuffer(stream) }; + } catch { + return null; + } +} + +function formatDate(value) { + if (!value) return ""; + const date = value instanceof Date ? value : new Date(value); + if (Number.isNaN(date.getTime())) return String(value); + return date.toLocaleDateString("de-DE"); +} + +function formatDateTime(value) { + if (!value) return ""; + const date = value instanceof Date ? value : new Date(value); + if (Number.isNaN(date.getTime())) return String(value); + return date.toLocaleString("de-DE"); +} + +function formatTime(value) { + if (!value) return "offen"; + const raw = String(value); + if (/^\d{2}:\d{2}/.test(raw)) return raw.slice(0, 5); + return raw; +} + +function meetingTypeLabel(value) { + if (value === "ausserordentlich") return "Außerordentlich"; + return "Ordentlich"; +} + +function decisionStatusLabel(value) { + switch (String(value ?? "").trim().toLowerCase()) { + case "in_bearbeitung": + return "In Bearbeitung"; + case "rueckfrage": + return "Rückfrage"; + case "klaerung": + return "Klärung"; + case "abgeschlossen": + return "Abgeschlossen"; + default: + return value || "offen"; + } +} + +function sanitizeLine(value, fallback = "-") { + const text = String(value ?? "").trim(); + return text || fallback; +} + +function quorumStatement(value) { + if (value === true) return "Die Sitzung ist Beschlussfähig."; + if (value === false) return "Die Sitzung ist nicht Beschlussfähig."; + return "Die Beschlussfähigkeit wurde nicht dokumentiert."; +} + +function roleLabel(value) { + switch (String(value ?? "").trim().toLowerCase()) { + case "admin": + return "Administration"; + case "chair": + return "Vorsitz"; + case "secretary": + return "Schriftführung"; + case "member": + return "Mitglied"; + case "advisor": + return "Beratung"; + default: + return value || ""; + } +} + +function renderAttendeesBlock(attendees = []) { + if (!Array.isArray(attendees) || !attendees.length) { + return "\n## Anwesende Betriebsratsmitglieder\nKeine anwesenden Betriebsratsmitglieder dokumentiert."; + } + + const lines = ["", "## Anwesende Betriebsratsmitglieder"]; + attendees.forEach((attendee) => { + const name = sanitizeLine(attendee.full_name, "Unbekannt"); + const parts = []; + const role = roleLabel(attendee.role); + if (role) parts.push(role); + if (attendee.email) parts.push(attendee.email); + lines.push(parts.length ? `- ${name} (${parts.join(", ")})` : `- ${name}`); + }); + + return lines.join("\n"); +} + +function computeDecisionOutcome(decision) { + const yes = Number(decision?.votes_yes ?? 0); + const no = Number(decision?.votes_no ?? 0); + if (yes === 0 && no === 0) return "Ergebnis: nicht hinterlegt"; + if (yes > no) return "Ergebnis: angenommen"; + if (no > yes) return "Ergebnis: abgelehnt"; + return "Ergebnis: Stimmengleichheit"; +} + +function returnTypeLabel(value) { + const normalized = String(value || "rueckfrage"); + if (normalized === "klaerung") return "Klärung"; + if (normalized === "bemerkung") return "Bemerkung / Wiedervorlage"; + return "Rückfrage"; +} + +function renderReturnedAgendaSections(returnedItems = []) { + if (!Array.isArray(returnedItems) || !returnedItems.length) return ""; + + const lines = ["## Folge-TOPs / Rückfragen"]; + returnedItems.forEach((item) => { + const topNumber = item.agenda_number_at_return || item.agenda_number || String(item.agenda_item_id || item.id); + lines.push(`### TOP ${sanitizeLine(topNumber, "-")}: ${sanitizeLine(item.title_at_return || item.title, "Ohne Titel")}`); + lines.push(`Status: ${returnTypeLabel(item.return_type)} – Folge-TOP im TOP-Bestand angelegt.`); + if (item.follow_up_agenda_item_id) { + lines.push(`Folge-TOP: #${item.follow_up_agenda_item_id}${item.follow_up_title ? ` – ${sanitizeLine(item.follow_up_title, "")}` : ""}`); + } + if (item.returned_by_name || item.returned_at) { + const parts = []; + if (item.returned_by_name) parts.push(`durch ${sanitizeLine(item.returned_by_name, "")}`); + if (item.returned_at) parts.push(`am ${formatDateTime(item.returned_at)}`); + lines.push(`Dokumentiert ${parts.join(" ")}.`); + } + lines.push(`Bemerkung: ${sanitizeLine(item.remark, "-")}`); + }); + + return lines.join("\n\n"); +} + + +function renderFollowUpHistory(item) { + if (!item?.parent_agenda_item_id && !item?.follow_up_created_from_agenda_item_id) return []; + + const lines = ["### Historie / Rückverfolgung"]; + const parentNumber = item.parent_agenda_number || item.follow_up_source_agenda_number || item.parent_agenda_item_id || item.follow_up_created_from_agenda_item_id; + const parentTitle = item.parent_title || item.follow_up_source_agenda_title; + const meetingParts = []; + + if (item.follow_up_source_meeting_number || item.parent_meeting_number) { + meetingParts.push(`Sitzung ${sanitizeLine(item.follow_up_source_meeting_number || item.parent_meeting_number, "")}`); + } + if (item.follow_up_source_meeting_date || item.parent_meeting_date) { + meetingParts.push(`vom ${formatDate(item.follow_up_source_meeting_date || item.parent_meeting_date)}`); + } + + const parentLabel = `TOP ${sanitizeLine(parentNumber, "-")}${parentTitle ? `: ${sanitizeLine(parentTitle, "")}` : ""}`; + lines.push( + meetingParts.length + ? `Dieser TOP ist eine Fortsetzung von ${parentLabel} aus ${meetingParts.join(" ")}.` + : `Dieser TOP ist eine Fortsetzung von ${parentLabel}.` + ); + + if (item.follow_up_type) { + lines.push(`Art: ${returnTypeLabel(item.follow_up_type)}`); + } + + if (item.follow_up_note) { + lines.push(`Bemerkung: ${sanitizeLine(item.follow_up_note, "-")}`); + } + + const createdParts = []; + if (item.follow_up_created_by_name) createdParts.push(`durch ${sanitizeLine(item.follow_up_created_by_name, "")}`); + if (item.follow_up_created_at) createdParts.push(`am ${formatDateTime(item.follow_up_created_at)}`); + if (createdParts.length) { + lines.push(`Folge-TOP angelegt ${createdParts.join(" ")}.`); + } + + if (item.root_agenda_item_id && String(item.root_agenda_item_id) !== String(item.parent_agenda_item_id || "")) { + const rootNumber = item.root_agenda_number || item.root_agenda_item_id; + const rootTitle = item.root_title ? `: ${sanitizeLine(item.root_title, "")}` : ""; + const rootMeeting = item.root_meeting_number ? ` aus Sitzung ${sanitizeLine(item.root_meeting_number, "")}` : ""; + const rootDate = item.root_meeting_date ? ` vom ${formatDate(item.root_meeting_date)}` : ""; + lines.push(`Ursprung der Kette: TOP ${sanitizeLine(rootNumber, "-")}${rootTitle}${rootMeeting}${rootDate}.`); + } + + return lines; +} + +function renderAgendaSections(agendaItems = [], returnedItems = []) { + if (!agendaItems.length && !returnedItems.length) { + return "### TOP-Bestand\nFür diese Sitzung wurden keine TOPs zugeordnet."; + } + + const assignedBlock = agendaItems.length ? agendaItems + .map((item) => { + const lines = [ + `## TOP ${sanitizeLine(item.agenda_number, String(item.id))}: ${sanitizeLine(item.title, "Ohne Titel")}`, + ]; + + const historyLines = renderFollowUpHistory(item); + if (historyLines.length) { + lines.push(...historyLines); + } + + if (item.case_number) { + lines.push(`Vorgang: ${item.case_number}`); + } + + lines.push(item.description?.trim() ? item.description.trim() : "Keine zusätzliche Beschreibung hinterlegt."); + + const comments = Array.isArray(item.protocol_comments) ? item.protocol_comments : []; + if (comments.length) { + lines.push("### Kommentare zum TOP"); + comments.forEach((comment) => { + const author = comment.author_name ? sanitizeLine(comment.author_name, "") : "unbekannt"; + const created = comment.created_at ? ` vom ${formatDateTime(comment.created_at)}` : ""; + lines.push(`- Kommentar von: ${author}${created}: ${sanitizeLine(comment.comment_text, "-")}`); + }); + } + + const decisions = Array.isArray(item.decisions) ? item.decisions : []; + if (!decisions.length) { + lines.push("Zu diesem TOP wurde kein Beschluss dokumentiert."); + return lines.join("\n\n"); + } + + decisions.forEach((decision) => { + lines.push(`### Beschluss ${sanitizeLine(decision.decision_number, String(decision.id))}: ${sanitizeLine(decision.title, "Ohne Titel")}`); + lines.push(decision.decision_text?.trim() || "Kein Beschlusstext hinterlegt."); + lines.push( + [ + `Ja-Stimmen: ${Number(decision.votes_yes ?? 0)}`, + `Nein-Stimmen: ${Number(decision.votes_no ?? 0)}`, + `Enthaltungen: ${Number(decision.votes_abstain ?? 0)}`, + ].join(" | ") + ); + lines.push(computeDecisionOutcome(decision)); + lines.push(`Status: ${decisionStatusLabel(decision.status)}`); + + if (decision.responsible_name) { + lines.push(`Verantwortlich: ${decision.responsible_name}`); + } + + if (decision.due_date) { + lines.push(`Frist: ${formatDateTime(decision.due_date)}`); + } + }); + + return lines.join("\n\n"); + }) + .join("\n\n") : ""; + + const returnedBlock = renderReturnedAgendaSections(returnedItems); + return [assignedBlock, returnedBlock].filter(Boolean).join("\n\n"); +} + +function ensureProtocolPlaceholders(template) { + let content = String(template ?? ""); + + if (!/\{\{\s*quorum_statement\s*\}\}/.test(content)) { + if (content.includes("## Protokollnotizen")) { + content = content.replace("## Protokollnotizen", "{{quorum_statement}}\n\n## Protokollnotizen"); + } else { + content = `${content.trim()}\n\n{{quorum_statement}}`; + } + } + + if (!/\{\{\s*attendees_block\s*\}\}/.test(content)) { + if (/\{\{\s*quorum_statement\s*\}\}/.test(content)) { + content = content.replace(/\{\{\s*quorum_statement\s*\}\}/, "{{quorum_statement}}\n{{attendees_block}}"); + } else if (content.includes("## Protokollnotizen")) { + content = content.replace("## Protokollnotizen", "{{attendees_block}}\n\n## Protokollnotizen"); + } else { + content = `${content.trim()}\n\n{{attendees_block}}`; + } + } + + return content; +} + +function replaceTokens(template, values) { + return template.replace(/\{\{\s*([a-zA-Z0-9_]+)\s*\}\}/g, (_, key) => { + const value = values[key]; + if (value === undefined || value === null) return ""; + return String(value); + }); +} + +function linesToRtf(content, logoAsset = null) { + const lines = String(content ?? "").replace(/\r\n/g, "\n").split("\n"); + const rtfLines = [ + "{\\rtf1\\ansi\\deff0", + "{\\fonttbl{\\f0 Arial;}}", + "\\paperw11907\\paperh16840\\margl1134\\margr1134\\margt1134\\margb1134", + "\\viewkind4\\uc1", + ]; + + for (const rawLine of lines) { + const line = rawLine ?? ""; + const trimmed = line.trim(); + + if (!trimmed) { + rtfLines.push("{\\pard\\sa140\\par}"); + continue; + } + + if (trimmed === "VERTRAULICH") { + rtfLines.push(`{\\pard\\qc\\sa220\\b\\fs26 ${escapeRtf(trimmed)}\\par}`); + continue; + } + + if (trimmed.startsWith("# ")) { + rtfLines.push(`{\\pard\\qc\\sa220\\b\\fs32 ${escapeRtf(trimmed.slice(2))}\\par}`); + continue; + } + + if (trimmed.startsWith("## ")) { + rtfLines.push(`{\\pard\\sa200\\b\\fs26 ${escapeRtf(trimmed.slice(3))}\\par}`); + continue; + } + + if (trimmed.startsWith("### ")) { + rtfLines.push(`{\\pard\\sa160\\b\\fs23 ${escapeRtf(trimmed.slice(4))}\\par}`); + continue; + } + + if (trimmed.startsWith("- ")) { + rtfLines.push(`{\\pard\\li540\\fi-240\\sa120\\fs22 ${escapeRtf(trimmed)}\\par}`); + continue; + } + + rtfLines.push(`{\\pard\\sa120\\fs22 ${escapeRtf(line)}\\par}`); + } + + rtfLines.push("}"); + return rtfLines.join("\n"); +} + +function buildProtocolValues(meeting, agendaItems, attendees = [], returnedItems = []) { + const committeeName = meeting.committee_name?.trim() || "der Firma"; + const title = meeting.title?.trim(); + const notes = meeting.protocol_text?.trim() || "Keine zusätzlichen Protokollnotizen hinterlegt."; + + return { + committee_name: committeeName, + meeting_number: sanitizeLine(meeting.meeting_number, "offen"), + meeting_title_block: title ? `Titel: ${title}` : "", + meeting_date: formatDate(meeting.meeting_date), + meeting_type: meetingTypeLabel(meeting.meeting_type), + start_time: formatTime(meeting.start_time), + end_time: formatTime(meeting.end_time), + location: sanitizeLine(meeting.location, "nicht hinterlegt"), + chair_name: sanitizeLine(meeting.chair_name, "nicht hinterlegt"), + secretary_name: sanitizeLine(meeting.secretary_name, "nicht hinterlegt"), + quorum_statement: quorumStatement(meeting.is_quorate), + attendees_block: renderAttendeesBlock(attendees), + protocol_notes: notes, + agenda_sections: renderAgendaSections(agendaItems, returnedItems), + signature_place: `${sanitizeLine(meeting.location, "Ort")}, den ${formatDate(meeting.meeting_date)}`, + }; +} + +function generateDocumentNumber() { + return `D-${new Date().getFullYear()}-${Math.floor(Math.random() * 100000) + .toString() + .padStart(5, "0")}`; +} + +async function fetchActiveTemplate(db) { + const result = await db.query( + `SELECT id, title, content, content_format, logo_asset_id, version_label + FROM template_item + WHERE category = 'meeting_protocol' + AND is_active = TRUE + ORDER BY updated_at DESC, id DESC + LIMIT 1` + ); + return result.rows[0] || null; +} + +async function fetchMeetingProtocolData(db, meetingId) { + const meetingResult = await db.query( + `SELECT m.id, + m.meeting_number, + m.title, + m.meeting_type, + m.meeting_date, + m.start_time, + m.end_time, + m.location, + m.is_quorate, + m.protocol_text, + m.committee_id, + m.chair_user_id, + m.secretary_user_id, + c.name AS committee_name, + chair.full_name AS chair_name, + secretary.full_name AS secretary_name + FROM meeting m + LEFT JOIN committee c ON c.id = m.committee_id + LEFT JOIN app_user chair ON chair.id = m.chair_user_id + LEFT JOIN app_user secretary ON secretary.id = m.secretary_user_id + WHERE m.id = $1`, + [meetingId] + ); + + const meeting = meetingResult.rows[0]; + if (!meeting) return null; + + const attendeeResult = meeting.committee_id + ? await db.query( + `SELECT DISTINCT u.id, + u.full_name, + u.email, + u.role + FROM app_user u + LEFT JOIN committee_member cm + ON cm.user_id = u.id + AND cm.committee_id = $1 + WHERE u.is_active = TRUE + AND u.role <> 'advisor' + AND (u.committee_id = $1 OR cm.user_id IS NOT NULL) + ORDER BY u.full_name ASC, u.id ASC`, + [meeting.committee_id] + ) + : await db.query( + `SELECT DISTINCT u.id, + u.full_name, + u.email, + u.role + FROM app_user u + WHERE u.is_active = TRUE + AND u.role <> 'advisor' + AND u.id = ANY($1::bigint[]) + ORDER BY u.full_name ASC, u.id ASC`, + [[meeting.chair_user_id, meeting.secretary_user_id].filter(Boolean)] + ); + + const agendaResult = await db.query( + `SELECT ai.id, + ai.agenda_number, + ai.title, + ai.description, + ai.duration_minutes, + ai.case_id, + ai.parent_agenda_item_id, + ai.root_agenda_item_id, + ai.follow_up_type, + ai.follow_up_note, + ai.follow_up_created_from_meeting_id, + ai.follow_up_created_from_agenda_item_id, + ai.follow_up_created_at, + ai.follow_up_created_by, + c.case_number, + parent_ai.agenda_number AS parent_agenda_number, + parent_ai.title AS parent_title, + parent_meeting.meeting_number AS parent_meeting_number, + parent_meeting.meeting_date AS parent_meeting_date, + source_ai.agenda_number AS follow_up_source_agenda_number, + source_ai.title AS follow_up_source_agenda_title, + source_meeting.meeting_number AS follow_up_source_meeting_number, + source_meeting.meeting_date AS follow_up_source_meeting_date, + root_ai.agenda_number AS root_agenda_number, + root_ai.title AS root_title, + root_meeting.meeting_number AS root_meeting_number, + root_meeting.meeting_date AS root_meeting_date, + fubu.full_name AS follow_up_created_by_name + FROM meeting_agenda_item ai + LEFT JOIN br_case c ON c.id = ai.case_id + LEFT JOIN meeting_agenda_item parent_ai ON parent_ai.id = ai.parent_agenda_item_id + LEFT JOIN meeting parent_meeting ON parent_meeting.id = parent_ai.meeting_id + LEFT JOIN meeting_agenda_item source_ai ON source_ai.id = ai.follow_up_created_from_agenda_item_id + LEFT JOIN meeting source_meeting ON source_meeting.id = ai.follow_up_created_from_meeting_id + LEFT JOIN meeting_agenda_item root_ai ON root_ai.id = ai.root_agenda_item_id + LEFT JOIN meeting root_meeting ON root_meeting.id = root_ai.meeting_id + LEFT JOIN app_user fubu ON fubu.id = ai.follow_up_created_by + WHERE ai.meeting_id = $1 + ORDER BY + CASE WHEN ai.agenda_number ~ '^[0-9]+$' THEN ai.agenda_number::int ELSE NULL END NULLS LAST, + ai.agenda_number NULLS LAST, + ai.id`, + [meetingId] + ); + + const agendaItems = agendaResult.rows; + const agendaIds = agendaItems.map((item) => item.id); + + const decisionMap = new Map(agendaIds.map((id) => [id, []])); + if (agendaIds.length) { + const decisionResult = await db.query( + `SELECT d.id, + d.agenda_item_id, + d.decision_number, + d.title, + d.decision_text, + d.status, + d.votes_yes, + d.votes_no, + d.votes_abstain, + d.due_date, + u.full_name AS responsible_name + FROM decision d + LEFT JOIN app_user u ON u.id = d.responsible_user_id + WHERE d.meeting_id = $1 + AND d.agenda_item_id = ANY($2::bigint[]) + ORDER BY d.created_at, d.id`, + [meetingId, agendaIds] + ); + + decisionResult.rows.forEach((row) => { + const bucket = decisionMap.get(row.agenda_item_id) || []; + bucket.push(row); + decisionMap.set(row.agenda_item_id, bucket); + }); + } + + const commentMap = new Map(agendaIds.map((id) => [id, []])); + if (agendaIds.length) { + const commentResult = await db.query( + `SELECT c.id, + c.entity_id AS agenda_item_id, + c.comment_text, + c.created_at, + u.full_name AS author_name + FROM comment_item c + LEFT JOIN app_user u ON u.id = c.author_user_id + WHERE c.deleted_at IS NULL + AND c.entity_type = 'agenda_item' + AND COALESCE(c.include_in_protocol, FALSE) = TRUE + AND c.entity_id = ANY($1::bigint[]) + ORDER BY c.created_at, c.id`, + [agendaIds] + ); + + commentResult.rows.forEach((row) => { + const bucket = commentMap.get(row.agenda_item_id) || []; + bucket.push(row); + commentMap.set(row.agenda_item_id, bucket); + }); + } + + const returnedResult = await db.query( + `SELECT l.id, + l.agenda_item_id, + l.meeting_id, + l.agenda_number_at_return, + l.title_at_return, + l.return_type, + l.remark, + l.returned_at, + l.follow_up_agenda_item_id, + follow_up.title AS follow_up_title, + u.full_name AS returned_by_name + FROM meeting_agenda_item_return_log l + LEFT JOIN meeting_agenda_item follow_up ON follow_up.id = l.follow_up_agenda_item_id + LEFT JOIN app_user u ON u.id = l.returned_by + WHERE l.meeting_id = $1 + AND COALESCE(l.include_in_protocol, FALSE) = TRUE + ORDER BY l.returned_at, l.id`, + [meetingId] + ); + + const enrichedAgenda = agendaItems.map((item) => ({ + ...item, + decisions: decisionMap.get(item.id) || [], + protocol_comments: commentMap.get(item.id) || [], + })); + + return { meeting, agendaItems: enrichedAgenda, attendees: attendeeResult.rows, returnedItems: returnedResult.rows }; +} + +export async function ensureMeetingProtocolDocument({ db, meetingId, actorId }) { + const existing = await db.query( + `SELECT id, document_number, title, file_name, uploaded_at + FROM document_item + WHERE meeting_id = $1 + AND document_type = 'protokoll' + AND deleted_at IS NULL + ORDER BY uploaded_at DESC, id DESC + LIMIT 1`, + [meetingId] + ); + + if (existing.rows[0]) { + return existing.rows[0]; + } + + const data = await fetchMeetingProtocolData(db, meetingId); + if (!data) return null; + + const template = await fetchActiveTemplate(db); + const rawTemplateContent = template?.content?.trim() || DEFAULT_MEETING_PROTOCOL_TEMPLATE; + const normalizedTemplateContent = normalizeTemplateContentForProtocol(rawTemplateContent, template?.content_format || "markdown"); + const templateContent = ensureProtocolPlaceholders(normalizedTemplateContent); + const templateLogo = await loadTemplateLogo(db, template); + const values = { + ...buildProtocolValues(data.meeting, data.agendaItems, data.attendees, data.returnedItems), + template_logo: templateLogo ? "__BR_TEMPLATE_LOGO__" : "", + }; + const renderedText = replaceTokens(templateContent, values); + const rtf = linesToRtf(renderedText, templateLogo); + const buffer = Buffer.from(rtf, "utf8"); + + const filenameBase = `${data.meeting.meeting_number || `sitzung-${meetingId}`}-protokoll`; + const safeFilename = filenameBase.replace(/[^a-zA-Z0-9._-]/g, "_"); + const storageKey = `${new Date().toISOString().slice(0, 10)}/${uuidv4()}-${safeFilename}.rtf`; + const sha256 = crypto.createHash("sha256").update(buffer).digest("hex"); + const docMeta = await saveObject(storageKey, buffer, "application/rtf"); + + const insert = await db.query( + `INSERT INTO document_item( + document_number, + title, + document_type, + description, + version_label, + file_name, + storage_path, + storage_provider, + mime_type, + size_bytes, + sha256_hash, + confidentiality_level, + case_id, + meeting_id, + decision_id, + uploaded_by, + scan_status, + scan_engine, + scan_result, + uploaded_at, + updated_at + ) VALUES ( + $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,NULL,$13,NULL,$14,$15,$16,$17,NOW(),NOW() + ) + RETURNING id, document_number, title, file_name, uploaded_at`, + [ + generateDocumentNumber(), + `Protokoll ${data.meeting.meeting_number}`, + "protokoll", + "Automatisch beim Beenden der Sitzung erzeugtes Sitzungsprotokoll.", + template?.version_label || "v1", + `${safeFilename}.rtf`, + docMeta.storage_path, + docMeta.storage_provider, + "application/rtf", + buffer.length, + sha256, + "vertraulich", + meetingId, + actorId, + "clean", + "system", + `Automatisch generiert aus Vorlage ${template?.title || "meeting_protocol"}`, + ] + ); + + await db.query( + `INSERT INTO document_scan_event(document_id, scanned_by_user_id, status, engine, result_text, scanned_at) + VALUES ($1,$2,$3,$4,$5,NOW())`, + [insert.rows[0].id, actorId, "clean", "system", "Automatisch generiertes Protokoll"] + ); + + return insert.rows[0]; +} diff --git a/backend/src/services/storage.js b/backend/src/services/storage.js new file mode 100644 index 0000000..d6460b8 --- /dev/null +++ b/backend/src/services/storage.js @@ -0,0 +1,119 @@ +import crypto from "crypto"; +import fs from "fs"; +import path from "path"; +import { Readable } from "stream"; +import { env } from "../config/env.js"; + +const ENCRYPTION_MAGIC = Buffer.from("BROFFENC1"); +const IV_LENGTH = 12; +const AUTH_TAG_LENGTH = 16; + +function resolveEncryptionKey(rawValue) { + const raw = String(rawValue || "").trim(); + if (!raw) return null; + + if (/^[0-9a-fA-F]{64}$/.test(raw)) { + return Buffer.from(raw, "hex"); + } + + try { + const base64 = Buffer.from(raw, "base64"); + if (base64.length === 32) return base64; + } catch { + // noop + } + + return crypto.createHash("sha256").update(raw, "utf8").digest(); +} + +function getConfiguredEncryptionKey() { + return resolveEncryptionKey(env.fileEncryptionKey); +} + +function encryptBuffer(buffer) { + const key = getConfiguredEncryptionKey(); + + if (!key) { + throw new Error("Dateiverschlüsselung ist aktiviert, aber FILE_ENCRYPTION_KEY fehlt oder ist ungültig."); + } + + const iv = crypto.randomBytes(IV_LENGTH); + const cipher = crypto.createCipheriv("aes-256-gcm", key, iv); + const encrypted = Buffer.concat([cipher.update(buffer), cipher.final()]); + const authTag = cipher.getAuthTag(); + + return Buffer.concat([ENCRYPTION_MAGIC, iv, authTag, encrypted]); +} + +function decryptBuffer(buffer) { + if (!Buffer.isBuffer(buffer) || buffer.length < ENCRYPTION_MAGIC.length) { + return buffer; + } + + if (!buffer.subarray(0, ENCRYPTION_MAGIC.length).equals(ENCRYPTION_MAGIC)) { + return buffer; + } + + const key = getConfiguredEncryptionKey(); + if (!key) { + throw new Error("Die Datei ist verschlüsselt, aber FILE_ENCRYPTION_KEY ist nicht gesetzt."); + } + + const ivStart = ENCRYPTION_MAGIC.length; + const ivEnd = ivStart + IV_LENGTH; + const authTagEnd = ivEnd + AUTH_TAG_LENGTH; + + const iv = buffer.subarray(ivStart, ivEnd); + const authTag = buffer.subarray(ivEnd, authTagEnd); + const payload = buffer.subarray(authTagEnd); + + const decipher = crypto.createDecipheriv("aes-256-gcm", key, iv); + decipher.setAuthTag(authTag); + + return Buffer.concat([decipher.update(payload), decipher.final()]); +} + +export async function saveObject(storageKey, buffer, contentType) { + if (env.storageProvider === "local") { + const fullPath = path.resolve(env.uploadDir, storageKey); + fs.mkdirSync(path.dirname(fullPath), { recursive: true }); + + const outputBuffer = env.fileEncryptionEnabled ? encryptBuffer(buffer) : buffer; + fs.writeFileSync(fullPath, outputBuffer); + + return { + storage_provider: "local", + storage_path: fullPath, + content_type: contentType, + encrypted: env.fileEncryptionEnabled, + }; + } + + throw new Error("S3-Provider in dieser Referenz nicht implementiert"); +} + +export async function getObjectStream(storagePath) { + const raw = fs.readFileSync(storagePath); + const output = decryptBuffer(raw); + + return { + stream: Readable.from(output), + contentType: undefined, + }; +} + + +export async function deleteObject(storagePath) { + if (!storagePath) return; + + if (env.storageProvider === "local") { + try { + fs.unlinkSync(storagePath); + } catch (err) { + if (err?.code !== "ENOENT") throw err; + } + return; + } + + throw new Error("S3-Provider in dieser Referenz nicht implementiert"); +} diff --git a/backend/src/services/totp.js b/backend/src/services/totp.js new file mode 100644 index 0000000..f3d147c --- /dev/null +++ b/backend/src/services/totp.js @@ -0,0 +1,65 @@ +import * as OTPAuth from "otpauth"; +import QRCode from "qrcode"; +import { query } from "../config/db.js"; + +export async function startTotpEnrollment(user) { + const secret = new OTPAuth.Secret(); + const totp = new OTPAuth.TOTP({ + issuer: "BR-Office", + label: user.email, + algorithm: "SHA1", + digits: 6, + period: 30, + secret, + }); + + await query( + `INSERT INTO user_totp_secret(user_id, secret_base32, is_verified) + VALUES ($1,$2,FALSE) + ON CONFLICT (user_id) DO UPDATE SET secret_base32 = EXCLUDED.secret_base32, is_verified = FALSE, verified_at = NULL`, + [user.id, secret.base32] + ); + + return { + secretBase32: secret.base32, + otpAuthUrl: totp.toString(), + qrCodeDataUrl: await QRCode.toDataURL(totp.toString()), + }; +} + +export async function verifyTotpEnrollment(user, token) { + const result = await query(`SELECT secret_base32 FROM user_totp_secret WHERE user_id = $1`, [user.id]); + const row = result.rows[0]; + if (!row) throw Object.assign(new Error("TOTP-Setup fehlt"), { status: 400, publicMessage: "TOTP-Setup fehlt" }); + + const totp = new OTPAuth.TOTP({ + issuer: "BR-Office", + label: user.email, + algorithm: "SHA1", + digits: 6, + period: 30, + secret: OTPAuth.Secret.fromBase32(row.secret_base32), + }); + + const delta = totp.validate({ token, window: 1 }); + if (delta === null) throw Object.assign(new Error("Ungültiger TOTP-Code"), { status: 401, publicMessage: "Ungültiger TOTP-Code" }); + + await query(`UPDATE user_totp_secret SET is_verified = TRUE, verified_at = NOW() WHERE user_id = $1`, [user.id]); + await query(`UPDATE app_user SET two_factor_enabled = TRUE, last_mfa_at = NOW() WHERE id = $1`, [user.id]); + return { ok: true }; +} + +export async function verifyTotpCode(user, token) { + const result = await query(`SELECT secret_base32, is_verified FROM user_totp_secret WHERE user_id = $1`, [user.id]); + const row = result.rows[0]; + if (!row || !row.is_verified) return false; + const totp = new OTPAuth.TOTP({ + issuer: "BR-Office", + label: user.email, + algorithm: "SHA1", + digits: 6, + period: 30, + secret: OTPAuth.Secret.fromBase32(row.secret_base32), + }); + return totp.validate({ token, window: 1 }) !== null; +} diff --git a/backend/src/services/webauthn.js b/backend/src/services/webauthn.js new file mode 100644 index 0000000..fdad283 --- /dev/null +++ b/backend/src/services/webauthn.js @@ -0,0 +1,148 @@ +import { + generateRegistrationOptions, + verifyRegistrationResponse, + generateAuthenticationOptions, + verifyAuthenticationResponse, +} from "@simplewebauthn/server"; +import { query } from "../config/db.js"; +import { env } from "../config/env.js"; + +function parseTransports(val) { + try { return val ? JSON.parse(val) : undefined; } catch { return undefined; } +} + +export async function beginRegistration(user) { + const result = await query( + `SELECT credential_id FROM webauthn_credential WHERE user_id = $1 AND revoked_at IS NULL`, + [user.id] + ); + + const options = await generateRegistrationOptions({ + rpName: "BR-Office", + rpID: env.rpId, + userName: user.email, + userDisplayName: user.full_name || user.email, + userID: String(user.id), + attestationType: "none", + excludeCredentials: result.rows.map((row) => ({ + id: row.credential_id, + type: "public-key", + })), + authenticatorSelection: { + residentKey: "preferred", + userVerification: "preferred", + }, + }); + + await query( + `INSERT INTO webauthn_challenge(user_id, flow_type, challenge, expires_at) + VALUES ($1,'register',$2,NOW() + INTERVAL '10 minutes')`, + [user.id, options.challenge] + ); + + return options; +} + +export async function finishRegistration(user, credential) { + const result = await query( + `SELECT challenge FROM webauthn_challenge + WHERE user_id = $1 AND flow_type = 'register' AND used_at IS NULL AND expires_at > NOW() + ORDER BY created_at DESC LIMIT 1`, + [user.id] + ); + const row = result.rows[0]; + if (!row) throw Object.assign(new Error("WebAuthn-Challenge fehlt"), { status: 400, publicMessage: "WebAuthn-Challenge fehlt" }); + + const verification = await verifyRegistrationResponse({ + response: credential, + expectedChallenge: row.challenge, + expectedOrigin: env.rpOrigin, + expectedRPID: env.rpId, + }); + + if (!verification.verified || !verification.registrationInfo) { + throw Object.assign(new Error("Passkey-Registrierung fehlgeschlagen"), { status: 400, publicMessage: "Passkey-Registrierung fehlgeschlagen" }); + } + + const { credentialPublicKey, credentialID, counter, credentialDeviceType, credentialBackedUp } = verification.registrationInfo; + + await query( + `INSERT INTO webauthn_credential(user_id, credential_id, public_key, counter, transports, credential_device_type, credential_backed_up, nickname) + VALUES ($1,$2,$3,$4,$5,$6,$7,$8)`, + [ + user.id, + Buffer.from(credentialID).toString("base64url"), + Buffer.from(credentialPublicKey).toString("base64url"), + counter, + JSON.stringify(credential.response?.transports || []), + credentialDeviceType, + credentialBackedUp, + credential.id, + ] + ); + await query(`UPDATE webauthn_challenge SET used_at = NOW() WHERE user_id = $1 AND flow_type = 'register' AND used_at IS NULL`, [user.id]); + await query(`UPDATE app_user SET last_mfa_at = NOW() WHERE id = $1`, [user.id]); + return { ok: true }; +} + +export async function beginAuthentication(user) { + const result = await query( + `SELECT credential_id, transports FROM webauthn_credential WHERE user_id = $1 AND revoked_at IS NULL`, + [user.id] + ); + const options = await generateAuthenticationOptions({ + rpID: env.rpId, + allowCredentials: result.rows.map((row) => ({ + id: row.credential_id, + type: "public-key", + transports: parseTransports(row.transports), + })), + userVerification: "preferred", + }); + await query( + `INSERT INTO webauthn_challenge(user_id, flow_type, challenge, expires_at) + VALUES ($1,'auth',$2,NOW() + INTERVAL '10 minutes')`, + [user.id, options.challenge] + ); + return options; +} + +export async function finishAuthentication(user, credential) { + const challengeResult = await query( + `SELECT challenge FROM webauthn_challenge + WHERE user_id = $1 AND flow_type = 'auth' AND used_at IS NULL AND expires_at > NOW() + ORDER BY created_at DESC LIMIT 1`, + [user.id] + ); + const challenge = challengeResult.rows[0]?.challenge; + if (!challenge) throw Object.assign(new Error("WebAuthn-Challenge fehlt"), { status: 400, publicMessage: "WebAuthn-Challenge fehlt" }); + + const credResult = await query( + `SELECT id, credential_id, public_key, counter FROM webauthn_credential + WHERE user_id = $1 AND credential_id = $2 AND revoked_at IS NULL`, + [user.id, credential.id] + ); + const dbCred = credResult.rows[0]; + if (!dbCred) throw Object.assign(new Error("Passkey nicht gefunden"), { status: 404, publicMessage: "Passkey nicht gefunden" }); + + const verification = await verifyAuthenticationResponse({ + response: credential, + expectedChallenge: challenge, + expectedOrigin: env.rpOrigin, + expectedRPID: env.rpId, + authenticator: { + credentialID: dbCred.credential_id, + credentialPublicKey: Buffer.from(dbCred.public_key, "base64url"), + counter: dbCred.counter, + }, + }); + + if (!verification.verified) { + throw Object.assign(new Error("Passkey-Prüfung fehlgeschlagen"), { status: 401, publicMessage: "Passkey-Prüfung fehlgeschlagen" }); + } + + await query(`UPDATE webauthn_credential SET counter = $2, last_used_at = NOW() WHERE id = $1`, [dbCred.id, verification.authenticationInfo.newCounter]); + await query(`UPDATE webauthn_challenge SET used_at = NOW() WHERE user_id = $1 AND flow_type = 'auth' AND used_at IS NULL`, [user.id]); + await query(`UPDATE app_user SET last_mfa_at = NOW() WHERE id = $1`, [user.id]); + return { ok: true }; +} diff --git a/backend/src/utils/audit.js b/backend/src/utils/audit.js new file mode 100644 index 0000000..a0133d3 --- /dev/null +++ b/backend/src/utils/audit.js @@ -0,0 +1,9 @@ +import { query } from "../config/db.js"; + +export async function writeAudit({ actorId = null, action, entityType = null, entityId = null, metadata = null, ipAddress = null }) { + await query( + `INSERT INTO audit_log(actor_user_id, action, entity_type, entity_id, metadata, ip_address) + VALUES ($1,$2,$3,$4,$5,$6)`, + [actorId, action, entityType, entityId, metadata, ipAddress] + ); +} diff --git a/backend/src/utils/jwt.js b/backend/src/utils/jwt.js new file mode 100644 index 0000000..dabd6df --- /dev/null +++ b/backend/src/utils/jwt.js @@ -0,0 +1,33 @@ +import jwt from "jsonwebtoken"; +import { env } from "../config/env.js"; + +export function signAccessToken(user) { + return jwt.sign( + { + sub: user.id, + role: user.role, + committee_id: user.committee_id || null, + email: user.email || null, + mfa_verified: Boolean(user.mfa_verified), + amr: user.amr || [], + }, + env.jwtAccessSecret, + { expiresIn: "15m" } + ); +} + +export function signRefreshToken(user) { + return jwt.sign( + { sub: user.id, role: user.role, committee_id: user.committee_id || null, email: user.email || null, mfa_verified: Boolean(user.mfa_verified) }, + env.jwtRefreshSecret, + { expiresIn: "7d" } + ); +} + +export function verifyAccessToken(token) { + return jwt.verify(token, env.jwtAccessSecret); +} + +export function verifyRefreshToken(token) { + return jwt.verify(token, env.jwtRefreshSecret); +} diff --git a/database/README.md b/database/README.md new file mode 100644 index 0000000..9a940e1 --- /dev/null +++ b/database/README.md @@ -0,0 +1,12 @@ +Die Migrationen sind in der vorgesehenen Reihenfolge auszuführen: + +1. `001_extensions_and_types.sql` +2. `002_core_schema.sql` +3. `003_triggers_views_and_helpers.sql` +4. `004_rls_policies.sql` +5. `005_roles_and_seed.sql` + +Empfehlung: +- Migrationen mit eigener Rolle `br_migration` +- Anwendung mit Rolle `br_app` +- Reporting nur über `br_reporting` diff --git a/database/migrations/001_extensions_and_types.sql b/database/migrations/001_extensions_and_types.sql new file mode 100644 index 0000000..740d5c4 --- /dev/null +++ b/database/migrations/001_extensions_and_types.sql @@ -0,0 +1,14 @@ +CREATE EXTENSION IF NOT EXISTS pgcrypto; + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'role_type') THEN + CREATE TYPE role_type AS ENUM ('admin','chair','member','secretary','advisor'); + END IF; + IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'conf_level') THEN + CREATE TYPE conf_level AS ENUM ('intern','vertraulich','streng_vertraulich'); + END IF; + IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'scan_status_type') THEN + CREATE TYPE scan_status_type AS ENUM ('pending','clean','infected','failed'); + END IF; +END$$; diff --git a/database/migrations/002_core_schema.sql b/database/migrations/002_core_schema.sql new file mode 100644 index 0000000..75236c9 --- /dev/null +++ b/database/migrations/002_core_schema.sql @@ -0,0 +1,268 @@ +CREATE TABLE IF NOT EXISTS committee ( + id BIGSERIAL PRIMARY KEY, + name VARCHAR(120) NOT NULL, + committee_type VARCHAR(50) NOT NULL DEFAULT 'general', + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS app_user ( + id BIGSERIAL PRIMARY KEY, + full_name VARCHAR(120) NOT NULL, + email VARCHAR(255) UNIQUE NOT NULL, + password_hash TEXT NOT NULL DEFAULT '', + role role_type NOT NULL DEFAULT 'member', + committee_id BIGINT REFERENCES committee(id), + is_active BOOLEAN NOT NULL DEFAULT TRUE, + security_classification VARCHAR(30) NOT NULL DEFAULT 'standard', + force_password_reset BOOLEAN NOT NULL DEFAULT FALSE, + two_factor_enabled BOOLEAN NOT NULL DEFAULT FALSE, + last_mfa_at TIMESTAMPTZ, + last_login_at TIMESTAMPTZ, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS refresh_token ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL REFERENCES app_user(id) ON DELETE CASCADE, + token_hash TEXT NOT NULL, + expires_at TIMESTAMPTZ NOT NULL, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS br_case ( + id BIGSERIAL PRIMARY KEY, + case_number VARCHAR(50) UNIQUE NOT NULL, + title VARCHAR(255) NOT NULL, + case_type VARCHAR(50) NOT NULL, + status VARCHAR(50) NOT NULL DEFAULT 'neu', + priority VARCHAR(20) NOT NULL DEFAULT 'mittel', + confidentiality_level conf_level NOT NULL DEFAULT 'intern', + summary TEXT, + affected_employee_name VARCHAR(120), + department VARCHAR(120), + committee_id BIGINT REFERENCES committee(id), + owner_user_id BIGINT NOT NULL REFERENCES app_user(id), + legal_hold BOOLEAN NOT NULL DEFAULT FALSE, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + deleted_at TIMESTAMPTZ +); + +CREATE TABLE IF NOT EXISTS deadline ( + id BIGSERIAL PRIMARY KEY, + case_id BIGINT REFERENCES br_case(id) ON DELETE CASCADE, + title VARCHAR(255) NOT NULL, + deadline_type VARCHAR(50) NOT NULL, + due_date TIMESTAMPTZ NOT NULL, + status VARCHAR(30) NOT NULL DEFAULT 'offen', + remind_days_before INTEGER NOT NULL DEFAULT 2, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + deleted_at TIMESTAMPTZ +); + +CREATE TABLE IF NOT EXISTS meeting ( + id BIGSERIAL PRIMARY KEY, + meeting_number VARCHAR(50) UNIQUE NOT NULL, + title VARCHAR(255) NOT NULL, + meeting_type VARCHAR(50) NOT NULL DEFAULT 'ordentlich', + meeting_date DATE NOT NULL, + start_time TIME, + end_time TIME, + location VARCHAR(255), + status VARCHAR(30) NOT NULL DEFAULT 'geplant', + protocol_text TEXT, + is_quorate BOOLEAN, + quorum_recorded_at TIMESTAMPTZ, + quorum_recorded_by BIGINT REFERENCES app_user(id), + committee_id BIGINT REFERENCES committee(id), + chair_user_id BIGINT REFERENCES app_user(id), + secretary_user_id BIGINT REFERENCES app_user(id), + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS meeting_agenda_item ( + id BIGSERIAL PRIMARY KEY, + meeting_id BIGINT NOT NULL REFERENCES meeting(id) ON DELETE CASCADE, + agenda_number VARCHAR(20) NOT NULL, + title VARCHAR(255) NOT NULL, + description TEXT, + duration_minutes INTEGER, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS decision ( + id BIGSERIAL PRIMARY KEY, + decision_number VARCHAR(50) UNIQUE NOT NULL, + meeting_id BIGINT REFERENCES meeting(id) ON DELETE SET NULL, + agenda_item_id BIGINT REFERENCES meeting_agenda_item(id) ON DELETE SET NULL, + case_id BIGINT REFERENCES br_case(id) ON DELETE SET NULL, + title VARCHAR(255) NOT NULL, + decision_text TEXT NOT NULL, + status VARCHAR(30) NOT NULL DEFAULT 'offen', + votes_yes INTEGER NOT NULL DEFAULT 0, + votes_no INTEGER NOT NULL DEFAULT 0, + votes_abstain INTEGER NOT NULL DEFAULT 0, + responsible_user_id BIGINT REFERENCES app_user(id), + due_date TIMESTAMPTZ, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS task ( + id BIGSERIAL PRIMARY KEY, + title VARCHAR(255) NOT NULL, + description TEXT, + status VARCHAR(30) NOT NULL DEFAULT 'offen', + priority VARCHAR(20) NOT NULL DEFAULT 'mittel', + assigned_user_id BIGINT REFERENCES app_user(id), + backup_user_id BIGINT REFERENCES app_user(id), + case_id BIGINT REFERENCES br_case(id) ON DELETE SET NULL, + meeting_id BIGINT REFERENCES meeting(id) ON DELETE SET NULL, + decision_id BIGINT REFERENCES decision(id) ON DELETE SET NULL, + due_date TIMESTAMPTZ, + confidentiality_level conf_level NOT NULL DEFAULT 'intern', + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + deleted_at TIMESTAMPTZ +); + +CREATE TABLE IF NOT EXISTS document_item ( + id BIGSERIAL PRIMARY KEY, + document_number VARCHAR(50) UNIQUE NOT NULL, + title VARCHAR(255) NOT NULL, + document_type VARCHAR(50) NOT NULL, + description TEXT, + version_label VARCHAR(30) NOT NULL DEFAULT 'v1', + file_name VARCHAR(255), + storage_path TEXT, + storage_provider VARCHAR(20) NOT NULL DEFAULT 'local', + mime_type VARCHAR(100), + size_bytes BIGINT, + sha256_hash VARCHAR(64), + confidentiality_level conf_level NOT NULL DEFAULT 'intern', + case_id BIGINT REFERENCES br_case(id) ON DELETE SET NULL, + meeting_id BIGINT REFERENCES meeting(id) ON DELETE SET NULL, + decision_id BIGINT REFERENCES decision(id) ON DELETE SET NULL, + uploaded_by BIGINT REFERENCES app_user(id), + is_signed BOOLEAN NOT NULL DEFAULT FALSE, + scan_status scan_status_type NOT NULL DEFAULT 'pending', + scan_engine VARCHAR(50), + scan_result TEXT, + uploaded_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + deleted_at TIMESTAMPTZ +); + +CREATE TABLE IF NOT EXISTS document_scan_event ( + id BIGSERIAL PRIMARY KEY, + document_id BIGINT NOT NULL REFERENCES document_item(id) ON DELETE CASCADE, + scanned_by_user_id BIGINT REFERENCES app_user(id), + status scan_status_type NOT NULL, + engine VARCHAR(50) NOT NULL, + result_text TEXT, + scanned_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS comment_item ( + id BIGSERIAL PRIMARY KEY, + entity_type VARCHAR(50) NOT NULL, + entity_id BIGINT NOT NULL, + comment_text TEXT NOT NULL, + visibility VARCHAR(30) NOT NULL DEFAULT 'intern', + author_user_id BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + deleted_at TIMESTAMPTZ +); + +CREATE TABLE IF NOT EXISTS template_item ( + id BIGSERIAL PRIMARY KEY, + title VARCHAR(255) NOT NULL, + category VARCHAR(50) NOT NULL, + description TEXT, + content TEXT NOT NULL, + version_label VARCHAR(30) NOT NULL DEFAULT 'v1', + is_active BOOLEAN NOT NULL DEFAULT TRUE, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS notification_item ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL REFERENCES app_user(id) ON DELETE CASCADE, + notification_type VARCHAR(50) NOT NULL, + title VARCHAR(255) NOT NULL, + entity_type VARCHAR(50), + entity_id BIGINT, + is_read BOOLEAN NOT NULL DEFAULT FALSE, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS audit_log ( + id BIGSERIAL PRIMARY KEY, + actor_user_id BIGINT REFERENCES app_user(id), + action VARCHAR(100) NOT NULL, + entity_type VARCHAR(50), + entity_id BIGINT, + metadata JSONB, + ip_address INET, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS auth_challenge ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL REFERENCES app_user(id) ON DELETE CASCADE, + challenge_type VARCHAR(40) NOT NULL, + challenge_value TEXT NOT NULL, + metadata JSONB, + expires_at TIMESTAMPTZ NOT NULL, + used_at TIMESTAMPTZ, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS webauthn_challenge ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL REFERENCES app_user(id) ON DELETE CASCADE, + flow_type VARCHAR(40) NOT NULL, + challenge TEXT NOT NULL, + expires_at TIMESTAMPTZ NOT NULL, + used_at TIMESTAMPTZ, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS webauthn_credential ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL REFERENCES app_user(id) ON DELETE CASCADE, + credential_id TEXT NOT NULL UNIQUE, + public_key TEXT NOT NULL, + counter BIGINT NOT NULL DEFAULT 0, + transports JSONB, + credential_device_type VARCHAR(50), + credential_backed_up BOOLEAN NOT NULL DEFAULT FALSE, + nickname VARCHAR(120), + last_used_at TIMESTAMPTZ, + revoked_at TIMESTAMPTZ, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS user_totp_secret ( + user_id BIGINT PRIMARY KEY REFERENCES app_user(id) ON DELETE CASCADE, + secret_base32 TEXT NOT NULL, + is_verified BOOLEAN NOT NULL DEFAULT FALSE, + verified_at TIMESTAMPTZ, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); diff --git a/database/migrations/003_triggers_views_and_helpers.sql b/database/migrations/003_triggers_views_and_helpers.sql new file mode 100644 index 0000000..27aa53e --- /dev/null +++ b/database/migrations/003_triggers_views_and_helpers.sql @@ -0,0 +1,89 @@ +CREATE OR REPLACE FUNCTION set_updated_at() RETURNS trigger AS $$ +BEGIN + NEW.updated_at = NOW(); + RETURN NEW; +END; +$$ LANGUAGE plpgsql; + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_case_updated_at') THEN + CREATE TRIGGER trg_case_updated_at BEFORE UPDATE ON br_case FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + CREATE TRIGGER trg_deadline_updated_at BEFORE UPDATE ON deadline FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + CREATE TRIGGER trg_meeting_updated_at BEFORE UPDATE ON meeting FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + CREATE TRIGGER trg_decision_updated_at BEFORE UPDATE ON decision FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + CREATE TRIGGER trg_task_updated_at BEFORE UPDATE ON task FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + CREATE TRIGGER trg_document_updated_at BEFORE UPDATE ON document_item FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + CREATE TRIGGER trg_template_updated_at BEFORE UPDATE ON template_item FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; +END $$; + +CREATE OR REPLACE FUNCTION audit_if_changed() RETURNS trigger AS $$ +BEGIN + INSERT INTO audit_log(actor_user_id, action, entity_type, entity_id, metadata) + VALUES ( + NULL, + TG_OP, + TG_TABLE_NAME, + COALESCE(NEW.id, OLD.id), + jsonb_build_object('old', to_jsonb(OLD), 'new', to_jsonb(NEW)) + ); + RETURN COALESCE(NEW, OLD); +END; +$$ LANGUAGE plpgsql; + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_audit_case') THEN + CREATE TRIGGER trg_audit_case AFTER INSERT OR UPDATE OR DELETE ON br_case FOR EACH ROW EXECUTE FUNCTION audit_if_changed(); + CREATE TRIGGER trg_audit_deadline AFTER INSERT OR UPDATE OR DELETE ON deadline FOR EACH ROW EXECUTE FUNCTION audit_if_changed(); + CREATE TRIGGER trg_audit_meeting AFTER INSERT OR UPDATE OR DELETE ON meeting FOR EACH ROW EXECUTE FUNCTION audit_if_changed(); + CREATE TRIGGER trg_audit_decision AFTER INSERT OR UPDATE OR DELETE ON decision FOR EACH ROW EXECUTE FUNCTION audit_if_changed(); + CREATE TRIGGER trg_audit_task AFTER INSERT OR UPDATE OR DELETE ON task FOR EACH ROW EXECUTE FUNCTION audit_if_changed(); + CREATE TRIGGER trg_audit_document AFTER INSERT OR UPDATE OR DELETE ON document_item FOR EACH ROW EXECUTE FUNCTION audit_if_changed(); + END IF; +END $$; + +CREATE OR REPLACE FUNCTION app_user_id() RETURNS BIGINT AS $$ + SELECT COALESCE(NULLIF(current_setting('app.user_id', true), ''), '0')::BIGINT; +$$ LANGUAGE SQL STABLE; + +CREATE OR REPLACE FUNCTION app_role() RETURNS TEXT AS $$ + SELECT COALESCE(NULLIF(current_setting('app.user_role', true), ''), 'anonymous'); +$$ LANGUAGE SQL STABLE; + +CREATE OR REPLACE FUNCTION app_committee_id() RETURNS BIGINT AS $$ + SELECT COALESCE(NULLIF(current_setting('app.committee_id', true), ''), '0')::BIGINT; +$$ LANGUAGE SQL STABLE; + +CREATE OR REPLACE FUNCTION can_read_conf_level(level conf_level, owner BIGINT, committee BIGINT) RETURNS BOOLEAN AS $$ +BEGIN + IF app_role() = 'admin' THEN RETURN TRUE; END IF; + IF level = 'intern' THEN RETURN TRUE; END IF; + IF level = 'vertraulich' THEN + RETURN owner = app_user_id() OR committee = app_committee_id() OR app_role() IN ('chair','secretary'); + END IF; + RETURN owner = app_user_id() OR app_role() IN ('chair'); +END; +$$ LANGUAGE plpgsql STABLE; + +CREATE OR REPLACE VIEW v_case_masked AS +SELECT + id, + case_number, + title, + case_type, + status, + priority, + confidentiality_level, + CASE + WHEN confidentiality_level = 'streng_vertraulich' AND app_role() NOT IN ('admin','chair') AND owner_user_id <> app_user_id() + THEN '***' + ELSE COALESCE(affected_employee_name, '') + END AS affected_employee_name_masked, + department, + committee_id, + owner_user_id, + created_at +FROM br_case +WHERE deleted_at IS NULL; diff --git a/database/migrations/004_rls_policies.sql b/database/migrations/004_rls_policies.sql new file mode 100644 index 0000000..bf37ced --- /dev/null +++ b/database/migrations/004_rls_policies.sql @@ -0,0 +1,161 @@ +ALTER TABLE br_case ENABLE ROW LEVEL SECURITY; +ALTER TABLE deadline ENABLE ROW LEVEL SECURITY; +ALTER TABLE task ENABLE ROW LEVEL SECURITY; +ALTER TABLE document_item ENABLE ROW LEVEL SECURITY; +ALTER TABLE comment_item ENABLE ROW LEVEL SECURITY; +ALTER TABLE notification_item ENABLE ROW LEVEL SECURITY; +ALTER TABLE app_user ENABLE ROW LEVEL SECURITY; +ALTER TABLE meeting ENABLE ROW LEVEL SECURITY; +ALTER TABLE decision ENABLE ROW LEVEL SECURITY; +ALTER TABLE template_item ENABLE ROW LEVEL SECURITY; +ALTER TABLE committee ENABLE ROW LEVEL SECURITY; + +ALTER TABLE br_case FORCE ROW LEVEL SECURITY; +ALTER TABLE deadline FORCE ROW LEVEL SECURITY; +ALTER TABLE task FORCE ROW LEVEL SECURITY; +ALTER TABLE document_item FORCE ROW LEVEL SECURITY; +ALTER TABLE comment_item FORCE ROW LEVEL SECURITY; +ALTER TABLE notification_item FORCE ROW LEVEL SECURITY; +ALTER TABLE app_user FORCE ROW LEVEL SECURITY; +ALTER TABLE meeting FORCE ROW LEVEL SECURITY; +ALTER TABLE decision FORCE ROW LEVEL SECURITY; +ALTER TABLE template_item FORCE ROW LEVEL SECURITY; +ALTER TABLE committee FORCE ROW LEVEL SECURITY; + +DROP POLICY IF EXISTS committee_select ON committee; +DROP POLICY IF EXISTS committee_modify ON committee; +CREATE POLICY committee_select ON committee FOR SELECT USING (TRUE); +CREATE POLICY committee_modify ON committee FOR ALL USING (app_role() IN ('admin','chair')) WITH CHECK (app_role() IN ('admin','chair')); + +DROP POLICY IF EXISTS user_select ON app_user; +DROP POLICY IF EXISTS user_modify ON app_user; +CREATE POLICY user_select ON app_user FOR SELECT USING ( + app_role() IN ('admin','chair') OR id = app_user_id() +); +CREATE POLICY user_modify ON app_user FOR ALL USING ( + app_role() = 'admin' OR id = app_user_id() +) WITH CHECK ( + app_role() = 'admin' OR id = app_user_id() +); + +DROP POLICY IF EXISTS br_case_select_policy ON br_case; +DROP POLICY IF EXISTS br_case_modify_policy ON br_case; +CREATE POLICY br_case_select_policy ON br_case FOR SELECT USING ( + deleted_at IS NULL AND can_read_conf_level(confidentiality_level, owner_user_id, committee_id) +); +CREATE POLICY br_case_modify_policy ON br_case FOR ALL USING ( + deleted_at IS NULL AND ( + app_role() = 'admin' + OR owner_user_id = app_user_id() + OR (committee_id = app_committee_id() AND app_role() IN ('chair', 'secretary')) + ) +) WITH CHECK (can_read_conf_level(confidentiality_level, owner_user_id, committee_id)); + +DROP POLICY IF EXISTS deadline_select_policy ON deadline; +DROP POLICY IF EXISTS deadline_modify_policy ON deadline; +CREATE POLICY deadline_select_policy ON deadline FOR SELECT USING ( + deleted_at IS NULL AND EXISTS ( + SELECT 1 FROM br_case c WHERE c.id = deadline.case_id + AND can_read_conf_level(c.confidentiality_level, c.owner_user_id, c.committee_id) + ) +); +CREATE POLICY deadline_modify_policy ON deadline FOR ALL USING ( + deleted_at IS NULL AND EXISTS ( + SELECT 1 FROM br_case c WHERE c.id = deadline.case_id + AND ( + app_role() = 'admin' + OR c.owner_user_id = app_user_id() + OR (c.committee_id = app_committee_id() AND app_role() IN ('chair', 'secretary')) + ) + ) +) WITH CHECK (TRUE); + +DROP POLICY IF EXISTS meeting_select_policy ON meeting; +DROP POLICY IF EXISTS meeting_modify_policy ON meeting; +CREATE POLICY meeting_select_policy ON meeting FOR SELECT USING ( + committee_id IS NULL OR committee_id = app_committee_id() OR app_role() IN ('admin','chair','secretary') +); +CREATE POLICY meeting_modify_policy ON meeting FOR ALL USING ( + app_role() IN ('admin','chair','secretary') +) WITH CHECK (app_role() IN ('admin','chair','secretary')); + +DROP POLICY IF EXISTS decision_select_policy ON decision; +DROP POLICY IF EXISTS decision_modify_policy ON decision; +CREATE POLICY decision_select_policy ON decision FOR SELECT USING ( + case_id IS NULL OR EXISTS ( + SELECT 1 FROM br_case c WHERE c.id = decision.case_id + AND can_read_conf_level(c.confidentiality_level, c.owner_user_id, c.committee_id) + ) OR app_role() IN ('admin','chair','secretary') +); +CREATE POLICY decision_modify_policy ON decision FOR ALL USING ( + app_role() IN ('admin','chair','secretary') OR responsible_user_id = app_user_id() +) WITH CHECK (TRUE); + +DROP POLICY IF EXISTS task_select_policy ON task; +DROP POLICY IF EXISTS task_modify_policy ON task; +CREATE POLICY task_select_policy ON task FOR SELECT USING ( + deleted_at IS NULL AND ( + assigned_user_id = app_user_id() + OR backup_user_id = app_user_id() + OR app_role() IN ('admin','chair','secretary') + ) +); +CREATE POLICY task_modify_policy ON task FOR ALL USING ( + deleted_at IS NULL AND ( + app_role() IN ('admin','chair','secretary') + OR assigned_user_id = app_user_id() + OR created_by = app_user_id() + ) +) WITH CHECK (TRUE); + +DROP POLICY IF EXISTS document_select_policy ON document_item; +DROP POLICY IF EXISTS document_modify_policy ON document_item; +CREATE POLICY document_select_policy ON document_item FOR SELECT USING ( + deleted_at IS NULL + AND scan_status = 'clean' + AND ( + app_role() = 'admin' + OR uploaded_by = app_user_id() + OR EXISTS ( + SELECT 1 FROM br_case c + WHERE c.id = document_item.case_id + AND can_read_conf_level(document_item.confidentiality_level, c.owner_user_id, c.committee_id) + ) + OR case_id IS NULL + ) +); +CREATE POLICY document_modify_policy ON document_item FOR ALL USING ( + deleted_at IS NULL AND ( + app_role() IN ('admin','chair','secretary') + OR uploaded_by = app_user_id() + ) +) WITH CHECK (TRUE); + +DROP POLICY IF EXISTS comment_select_policy ON comment_item; +DROP POLICY IF EXISTS comment_modify_policy ON comment_item; +CREATE POLICY comment_select_policy ON comment_item FOR SELECT USING ( + deleted_at IS NULL AND ( + visibility = 'intern' + OR (visibility = 'vertraulich' AND app_role() IN ('admin','chair','secretary')) + ) +); +CREATE POLICY comment_modify_policy ON comment_item FOR ALL USING ( + deleted_at IS NULL AND ( + author_user_id = app_user_id() + OR app_role() IN ('admin','chair','secretary') + ) +) WITH CHECK (TRUE); + +DROP POLICY IF EXISTS template_select_policy ON template_item; +DROP POLICY IF EXISTS template_modify_policy ON template_item; +CREATE POLICY template_select_policy ON template_item FOR SELECT USING (TRUE); +CREATE POLICY template_modify_policy ON template_item FOR ALL USING (app_role() IN ('admin','chair','secretary')) WITH CHECK (app_role() IN ('admin','chair','secretary')); + +DROP POLICY IF EXISTS notification_select_policy ON notification_item; +DROP POLICY IF EXISTS notification_modify_policy ON notification_item; +CREATE POLICY notification_select_policy ON notification_item FOR SELECT USING ( + user_id = app_user_id() OR app_role() IN ('admin','chair','secretary') +); +CREATE POLICY notification_modify_policy ON notification_item FOR ALL USING ( + user_id = app_user_id() OR app_role() IN ('admin','chair','secretary') +) WITH CHECK (TRUE); diff --git a/database/migrations/005_roles_and_seed.sql b/database/migrations/005_roles_and_seed.sql new file mode 100644 index 0000000..10e34ec --- /dev/null +++ b/database/migrations/005_roles_and_seed.sql @@ -0,0 +1,23 @@ +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'br_app') THEN + CREATE ROLE br_app LOGIN PASSWORD 'change_me'; + END IF; + IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'br_migration') THEN + CREATE ROLE br_migration LOGIN PASSWORD 'change_me'; + END IF; + IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'br_reporting') THEN + CREATE ROLE br_reporting LOGIN PASSWORD 'change_me'; + END IF; +END$$; + +GRANT USAGE ON SCHEMA public TO br_app, br_reporting; +GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO br_app; +GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO br_app; +GRANT SELECT ON v_case_masked TO br_reporting; +REVOKE ALL ON audit_log FROM PUBLIC; +GRANT SELECT ON audit_log TO br_app; + +INSERT INTO committee(name, committee_type) +VALUES ('Gesamtbetriebsrat', 'general') +ON CONFLICT DO NOTHING; diff --git a/database/migrations/006_prod_login_hardening.sql b/database/migrations/006_prod_login_hardening.sql new file mode 100644 index 0000000..f1cd410 --- /dev/null +++ b/database/migrations/006_prod_login_hardening.sql @@ -0,0 +1,32 @@ +-- === LOGIN FUNCTION === + +CREATE OR REPLACE FUNCTION auth_get_user_for_login(p_email TEXT) +RETURNS TABLE ( + id BIGINT, + email VARCHAR, + password_hash TEXT, + is_active BOOLEAN, + role role_type, + committee_id BIGINT, + two_factor_enabled BOOLEAN, + locked_until TIMESTAMPTZ +) +LANGUAGE sql +SECURITY DEFINER +AS $$ + SELECT + u.id, + u.email, + u.password_hash, + u.is_active, + u.role, + u.committee_id, + u.two_factor_enabled, + u.locked_until + FROM app_user u + WHERE LOWER(u.email) = LOWER(p_email) + LIMIT 1; +$$; + +REVOKE ALL ON FUNCTION auth_get_user_for_login(TEXT) FROM PUBLIC; +GRANT EXECUTE ON FUNCTION auth_get_user_for_login(TEXT) TO br_app; diff --git a/database/migrations/007_auth_functions.sql b/database/migrations/007_auth_functions.sql new file mode 100644 index 0000000..f1cd410 --- /dev/null +++ b/database/migrations/007_auth_functions.sql @@ -0,0 +1,32 @@ +-- === LOGIN FUNCTION === + +CREATE OR REPLACE FUNCTION auth_get_user_for_login(p_email TEXT) +RETURNS TABLE ( + id BIGINT, + email VARCHAR, + password_hash TEXT, + is_active BOOLEAN, + role role_type, + committee_id BIGINT, + two_factor_enabled BOOLEAN, + locked_until TIMESTAMPTZ +) +LANGUAGE sql +SECURITY DEFINER +AS $$ + SELECT + u.id, + u.email, + u.password_hash, + u.is_active, + u.role, + u.committee_id, + u.two_factor_enabled, + u.locked_until + FROM app_user u + WHERE LOWER(u.email) = LOWER(p_email) + LIMIT 1; +$$; + +REVOKE ALL ON FUNCTION auth_get_user_for_login(TEXT) FROM PUBLIC; +GRANT EXECUTE ON FUNCTION auth_get_user_for_login(TEXT) TO br_app; diff --git a/database/migrations/008_case_numbers_calendar_and_committee_defaults.sql b/database/migrations/008_case_numbers_calendar_and_committee_defaults.sql new file mode 100644 index 0000000..c701650 --- /dev/null +++ b/database/migrations/008_case_numbers_calendar_and_committee_defaults.sql @@ -0,0 +1,47 @@ +CREATE TABLE IF NOT EXISTS case_number_counter ( + period_key VARCHAR(7) PRIMARY KEY, + last_value INTEGER NOT NULL DEFAULT 0, + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE OR REPLACE FUNCTION next_case_number(p_now TIMESTAMPTZ DEFAULT NOW()) +RETURNS VARCHAR(50) +LANGUAGE plpgsql +AS $$ +DECLARE + period_key VARCHAR(7); + next_value INTEGER; +BEGIN + period_key := TO_CHAR(p_now, 'YYYY_MM'); + + INSERT INTO case_number_counter (period_key, last_value, updated_at) + VALUES (period_key, 1, NOW()) + ON CONFLICT (period_key) + DO UPDATE SET + last_value = case_number_counter.last_value + 1, + updated_at = NOW() + RETURNING last_value INTO next_value; + + RETURN period_key || '_' || LPAD(next_value::TEXT, 4, '0'); +END; +$$; + +ALTER TABLE br_case + ALTER COLUMN case_number SET DEFAULT next_case_number(); + +UPDATE br_case +SET case_number = next_case_number(created_at) +WHERE case_number IS NULL OR BTRIM(case_number) = ''; + +ALTER TABLE committee + ADD COLUMN IF NOT EXISTS chair_user_id BIGINT REFERENCES app_user(id), + ADD COLUMN IF NOT EXISTS secretary_user_id BIGINT REFERENCES app_user(id), + ADD COLUMN IF NOT EXISTS default_user_id BIGINT REFERENCES app_user(id); + +CREATE INDEX IF NOT EXISTS idx_committee_chair_user_id ON committee(chair_user_id); +CREATE INDEX IF NOT EXISTS idx_committee_secretary_user_id ON committee(secretary_user_id); +CREATE INDEX IF NOT EXISTS idx_committee_default_user_id ON committee(default_user_id); +CREATE INDEX IF NOT EXISTS idx_br_case_committee_id ON br_case(committee_id); +CREATE INDEX IF NOT EXISTS idx_task_assigned_user_id ON task(assigned_user_id); +CREATE INDEX IF NOT EXISTS idx_meeting_committee_id ON meeting(committee_id); +CREATE INDEX IF NOT EXISTS idx_deadline_case_id ON deadline(case_id); diff --git a/database/migrations/008_case_type_catalog_and_case_workflow.sql b/database/migrations/008_case_type_catalog_and_case_workflow.sql new file mode 100644 index 0000000..fc2d15d --- /dev/null +++ b/database/migrations/008_case_type_catalog_and_case_workflow.sql @@ -0,0 +1,52 @@ +CREATE TABLE IF NOT EXISTS case_type_catalog ( + id BIGSERIAL PRIMARY KEY, + code VARCHAR(50) UNIQUE NOT NULL, + label VARCHAR(120) NOT NULL, + sort_order INTEGER NOT NULL DEFAULT 100, + is_active BOOLEAN NOT NULL DEFAULT TRUE, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +INSERT INTO case_type_catalog (code, label, sort_order) +VALUES + ('anhoerung', 'Anhörung', 10), + ('beschwerde', 'Beschwerde', 20), + ('einstellung', 'Einstellung', 30), + ('kuendigung', 'Kündigung', 40), + ('personalmassnahme', 'Personalmaßnahme', 50), + ('versetzung', 'Versetzung', 60), + ('sonstiges', 'Sonstiges', 999) +ON CONFLICT (code) DO NOTHING; + +INSERT INTO case_type_catalog (code, label, sort_order) +SELECT DISTINCT + LOWER(REGEXP_REPLACE(TRIM(case_type), '[^a-zA-Z0-9]+', '_', 'g')) AS code, + TRIM(case_type) AS label, + 500 +FROM br_case +WHERE case_type IS NOT NULL + AND TRIM(case_type) <> '' +ON CONFLICT (code) DO NOTHING; + +ALTER TABLE br_case + ADD COLUMN IF NOT EXISTS case_type_id BIGINT REFERENCES case_type_catalog(id); + +UPDATE br_case c +SET case_type_id = ct.id +FROM case_type_catalog ct +WHERE c.case_type_id IS NULL + AND c.case_type IS NOT NULL + AND TRIM(c.case_type) <> '' + AND LOWER(REGEXP_REPLACE(TRIM(c.case_type), '[^a-zA-Z0-9]+', '_', 'g')) = ct.code; + +UPDATE br_case +SET case_type_id = ( + SELECT id FROM case_type_catalog WHERE code = 'sonstiges' +) +WHERE case_type_id IS NULL; + +ALTER TABLE br_case + ALTER COLUMN case_type_id SET NOT NULL; + +ALTER TABLE br_case + ALTER COLUMN priority SET DEFAULT 'mittel'; diff --git a/database/migrations/009_calendar_personal_events_and_sync.sql b/database/migrations/009_calendar_personal_events_and_sync.sql new file mode 100644 index 0000000..c1ff740 --- /dev/null +++ b/database/migrations/009_calendar_personal_events_and_sync.sql @@ -0,0 +1,28 @@ +CREATE TABLE IF NOT EXISTS calendar_event ( + id BIGSERIAL PRIMARY KEY, + title VARCHAR(255) NOT NULL, + description TEXT, + event_kind VARCHAR(30) NOT NULL DEFAULT 'personal', + source_type VARCHAR(30) NOT NULL DEFAULT 'manual', + source_uid VARCHAR(255), + source_name VARCHAR(255), + starts_at TIMESTAMPTZ NOT NULL, + ends_at TIMESTAMPTZ, + all_day BOOLEAN NOT NULL DEFAULT FALSE, + location VARCHAR(255), + status VARCHAR(30) NOT NULL DEFAULT 'geplant', + priority VARCHAR(20) NOT NULL DEFAULT 'mittel', + visibility conf_level NOT NULL DEFAULT 'intern', + owner_user_id BIGINT REFERENCES app_user(id), + committee_id BIGINT REFERENCES committee(id), + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + deleted_at TIMESTAMPTZ +); + +CREATE INDEX IF NOT EXISTS idx_calendar_event_starts_at ON calendar_event(starts_at); +CREATE INDEX IF NOT EXISTS idx_calendar_event_owner_user_id ON calendar_event(owner_user_id); +CREATE INDEX IF NOT EXISTS idx_calendar_event_committee_id ON calendar_event(committee_id); +CREATE INDEX IF NOT EXISTS idx_calendar_event_source_type_uid ON calendar_event(source_type, source_uid); diff --git a/database/migrations/010_case_type_catalog_and_dropdowns.sql b/database/migrations/010_case_type_catalog_and_dropdowns.sql new file mode 100644 index 0000000..72f1a0a --- /dev/null +++ b/database/migrations/010_case_type_catalog_and_dropdowns.sql @@ -0,0 +1,54 @@ +CREATE TABLE IF NOT EXISTS case_type_catalog ( + id BIGSERIAL PRIMARY KEY, + code VARCHAR(50) UNIQUE NOT NULL, + label VARCHAR(120) NOT NULL, + sort_order INTEGER NOT NULL DEFAULT 100, + is_active BOOLEAN NOT NULL DEFAULT TRUE, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +INSERT INTO case_type_catalog (code, label, sort_order) +VALUES + ('anhoerung', 'Anhörung', 10), + ('beschwerde', 'Beschwerde', 20), + ('einstellung', 'Einstellung', 30), + ('kuendigung', 'Kündigung', 40), + ('personalmassnahme', 'Personalmaßnahme', 50), + ('versetzung', 'Versetzung', 60), + ('sonstiges', 'Sonstiges', 999) +ON CONFLICT (code) DO NOTHING; + +INSERT INTO case_type_catalog (code, label, sort_order) +SELECT DISTINCT + LOWER(REGEXP_REPLACE(TRIM(case_type), '[^a-zA-Z0-9]+', '_', 'g')) AS code, + TRIM(case_type) AS label, + 500 +FROM br_case +WHERE case_type IS NOT NULL + AND TRIM(case_type) <> '' +ON CONFLICT (code) DO NOTHING; + +ALTER TABLE br_case + ADD COLUMN IF NOT EXISTS case_type_id BIGINT REFERENCES case_type_catalog(id); + +UPDATE br_case c +SET case_type_id = ct.id +FROM case_type_catalog ct +WHERE c.case_type_id IS NULL + AND c.case_type IS NOT NULL + AND TRIM(c.case_type) <> '' + AND LOWER(REGEXP_REPLACE(TRIM(c.case_type), '[^a-zA-Z0-9]+', '_', 'g')) = ct.code; + +UPDATE br_case +SET case_type_id = ( + SELECT id FROM case_type_catalog WHERE code = 'sonstiges' +) +WHERE case_type_id IS NULL; + +ALTER TABLE br_case + ALTER COLUMN case_type_id SET NOT NULL; + +ALTER TABLE br_case + ALTER COLUMN priority SET DEFAULT 'mittel'; + +CREATE INDEX IF NOT EXISTS idx_br_case_case_type_id ON br_case(case_type_id); diff --git a/database/migrations/011_meeting_number_generator.sql b/database/migrations/011_meeting_number_generator.sql new file mode 100644 index 0000000..8a1d27a --- /dev/null +++ b/database/migrations/011_meeting_number_generator.sql @@ -0,0 +1,52 @@ +CREATE TABLE IF NOT EXISTS meeting_number_counter ( + period_ym CHAR(7) PRIMARY KEY, + last_value INTEGER NOT NULL DEFAULT 0, + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE OR REPLACE FUNCTION next_meeting_number(p_date DATE DEFAULT CURRENT_DATE) +RETURNS TEXT +LANGUAGE plpgsql +AS $$ +DECLARE + v_period TEXT; + v_seq INTEGER; +BEGIN + v_period := TO_CHAR(p_date, 'YYYY_MM'); + + LOOP + UPDATE meeting_number_counter + SET last_value = last_value + 1, + updated_at = NOW() + WHERE period_ym = v_period + RETURNING last_value INTO v_seq; + + IF FOUND THEN + EXIT; + END IF; + + BEGIN + INSERT INTO meeting_number_counter(period_ym, last_value) + VALUES (v_period, 1); + v_seq := 1; + EXIT; + EXCEPTION + WHEN unique_violation THEN + -- paralleler Insert, erneut versuchen + END; + END LOOP; + + RETURN 'SITZ-' || v_period || '_' || LPAD(v_seq::TEXT, 4, '0'); +END; +$$; + +UPDATE meeting +SET meeting_number = next_meeting_number(COALESCE(meeting_date, CURRENT_DATE)) +WHERE meeting_number IS NULL + OR TRIM(meeting_number) = ''; + +ALTER TABLE meeting + ALTER COLUMN meeting_number SET DEFAULT next_meeting_number(); + +ALTER TABLE meeting + ALTER COLUMN meeting_number SET NOT NULL; diff --git a/database/migrations/012_agenda_item_pool_and_case_number_fix.sql b/database/migrations/012_agenda_item_pool_and_case_number_fix.sql new file mode 100644 index 0000000..b1a24b7 --- /dev/null +++ b/database/migrations/012_agenda_item_pool_and_case_number_fix.sql @@ -0,0 +1,30 @@ +CREATE OR REPLACE FUNCTION next_case_number(p_now TIMESTAMPTZ DEFAULT NOW()) +RETURNS VARCHAR(50) +LANGUAGE plpgsql +AS $$ +DECLARE + v_period_key VARCHAR(7); + v_next_value INTEGER; +BEGIN + v_period_key := TO_CHAR(p_now, 'YYYY_MM'); + + INSERT INTO case_number_counter (period_key, last_value, updated_at) + VALUES (v_period_key, 1, NOW()) + ON CONFLICT (period_key) + DO UPDATE SET + last_value = case_number_counter.last_value + 1, + updated_at = NOW() + RETURNING case_number_counter.last_value INTO v_next_value; + + RETURN v_period_key || '_' || LPAD(v_next_value::TEXT, 4, '0'); +END; +$$; + +ALTER TABLE meeting_agenda_item + ALTER COLUMN meeting_id DROP NOT NULL; + +ALTER TABLE meeting_agenda_item + ALTER COLUMN agenda_number DROP NOT NULL; + +CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_meeting_id ON meeting_agenda_item(meeting_id); +CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_unassigned ON meeting_agenda_item(id) WHERE meeting_id IS NULL; diff --git a/database/migrations/013_agenda_numbers_case_links_and_decisions.sql b/database/migrations/013_agenda_numbers_case_links_and_decisions.sql new file mode 100644 index 0000000..ca23e00 --- /dev/null +++ b/database/migrations/013_agenda_numbers_case_links_and_decisions.sql @@ -0,0 +1,62 @@ +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS case_id BIGINT REFERENCES br_case(id) ON DELETE SET NULL; + +CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_case_id ON meeting_agenda_item(case_id); + +CREATE TABLE IF NOT EXISTS meeting_agenda_counter ( + meeting_id BIGINT PRIMARY KEY REFERENCES meeting(id) ON DELETE CASCADE, + last_value INTEGER NOT NULL DEFAULT 0, + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE OR REPLACE FUNCTION next_agenda_number(p_meeting_id BIGINT) +RETURNS TEXT +LANGUAGE plpgsql +AS $$ +DECLARE + v_seq INTEGER; +BEGIN + IF p_meeting_id IS NULL THEN + RAISE EXCEPTION 'meeting_id is required for next_agenda_number'; + END IF; + + LOOP + UPDATE meeting_agenda_counter + SET last_value = last_value + 1, + updated_at = NOW() + WHERE meeting_id = p_meeting_id + RETURNING last_value INTO v_seq; + + IF FOUND THEN + EXIT; + END IF; + + BEGIN + INSERT INTO meeting_agenda_counter(meeting_id, last_value) + VALUES (p_meeting_id, 1); + v_seq := 1; + EXIT; + EXCEPTION + WHEN unique_violation THEN + NULL; + END; + END LOOP; + + RETURN v_seq::TEXT; +END; +$$; + +INSERT INTO meeting_agenda_item(meeting_id, agenda_number, title, description, duration_minutes, case_id) +SELECT NULL, + NULL, + c.case_number || ' – ' || c.title, + COALESCE(c.summary, 'Automatisch aus Vorgang ' || c.case_number || ' erzeugt'), + NULL, + c.id + FROM br_case c + WHERE c.deleted_at IS NULL + AND NOT EXISTS ( + SELECT 1 + FROM meeting_agenda_item ai + WHERE ai.case_id = c.id + ); diff --git a/database/migrations/014_decision_number_generator.sql b/database/migrations/014_decision_number_generator.sql new file mode 100644 index 0000000..2ea34b7 --- /dev/null +++ b/database/migrations/014_decision_number_generator.sql @@ -0,0 +1,38 @@ +CREATE TABLE IF NOT EXISTS decision_number_counter ( + period_key VARCHAR(7) PRIMARY KEY, + last_value INTEGER NOT NULL DEFAULT 0, + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE OR REPLACE FUNCTION next_decision_number(p_now TIMESTAMPTZ DEFAULT NOW()) +RETURNS VARCHAR(50) +LANGUAGE plpgsql +AS $$ +DECLARE + v_period_key VARCHAR(7); + v_next_value INTEGER; +BEGIN + v_period_key := TO_CHAR(p_now, 'YYYY_MM'); + + INSERT INTO decision_number_counter (period_key, last_value, updated_at) + VALUES (v_period_key, 1, NOW()) + ON CONFLICT (period_key) + DO UPDATE SET + last_value = decision_number_counter.last_value + 1, + updated_at = NOW() + RETURNING decision_number_counter.last_value INTO v_next_value; + + RETURN 'BES-' || v_period_key || '_' || LPAD(v_next_value::TEXT, 4, '0'); +END; +$$; + +UPDATE decision +SET decision_number = next_decision_number(created_at) +WHERE decision_number IS NULL + OR TRIM(decision_number) = ''; + +ALTER TABLE decision + ALTER COLUMN decision_number SET DEFAULT next_decision_number(); + +ALTER TABLE decision + ALTER COLUMN decision_number SET NOT NULL; diff --git a/database/migrations/015_document_item_deleted_at_backfill.sql b/database/migrations/015_document_item_deleted_at_backfill.sql new file mode 100644 index 0000000..3f9e5fa --- /dev/null +++ b/database/migrations/015_document_item_deleted_at_backfill.sql @@ -0,0 +1,5 @@ +ALTER TABLE IF EXISTS document_item + ADD COLUMN IF NOT EXISTS deleted_at TIMESTAMPTZ; + +CREATE INDEX IF NOT EXISTS idx_document_item_deleted_at + ON document_item (deleted_at); diff --git a/database/migrations/016_meeting_protocol_template.sql b/database/migrations/016_meeting_protocol_template.sql new file mode 100644 index 0000000..fc3ba18 --- /dev/null +++ b/database/migrations/016_meeting_protocol_template.sql @@ -0,0 +1,56 @@ +DO $body$ +BEGIN + IF NOT EXISTS ( + SELECT 1 + FROM template_item + WHERE category = 'meeting_protocol' + ) THEN + INSERT INTO template_item( + title, + category, + description, + content, + version_label, + is_active + ) VALUES ( + 'Sitzungsprotokoll Standard', + 'meeting_protocol', + 'Wird beim Beenden einer Sitzung zur automatischen Protokollerzeugung verwendet. Platzhalter wie {{meeting_number}} oder {{agenda_sections}} können frei umgestellt werden.', + $template$# Betriebsrat {{committee_name}} +# Protokoll der BR-Sitzung am {{meeting_date}} +VERTRAULICH + +{{meeting_title_block}} + +## Organisatorisches und Feststellungen + +Sitzungsnummer: {{meeting_number}} +Sitzungsart: {{meeting_type}} +Sitzungsbeginn: {{start_time}} +Sitzungsort: {{location}} +Sitzungsleitung: {{chair_name}} +Schriftführung: {{secretary_name}} +{{quorum_statement}} +{{attendees_block}} + +## Protokollnotizen +{{protocol_notes}} + +## Tagesordnung und Beratung +{{agenda_sections}} + +## Sitzungsende +Schließung der Sitzung um {{end_time}} Uhr. + +{{signature_place}} +______________________________ +{{chair_name}} + +______________________________ +{{secretary_name}}$template$, + 'v1', + TRUE + ); + END IF; +END +$body$; diff --git a/database/migrations/017_document_versioning.sql b/database/migrations/017_document_versioning.sql new file mode 100644 index 0000000..23ec318 --- /dev/null +++ b/database/migrations/017_document_versioning.sql @@ -0,0 +1,55 @@ +ALTER TABLE IF EXISTS document_item + ADD COLUMN IF NOT EXISTS version_number INTEGER; + +UPDATE document_item + SET version_number = 1 + WHERE version_number IS NULL; + +ALTER TABLE IF EXISTS document_item + ALTER COLUMN version_number SET DEFAULT 1; + +ALTER TABLE IF EXISTS document_item + ALTER COLUMN version_number SET NOT NULL; + +ALTER TABLE IF EXISTS document_item + ADD COLUMN IF NOT EXISTS version_group_id BIGINT; + +UPDATE document_item + SET version_group_id = id + WHERE version_group_id IS NULL; + +DO $$ +BEGIN + IF NOT EXISTS ( + SELECT 1 + FROM pg_constraint + WHERE conname = 'fk_document_item_version_group' + ) THEN + ALTER TABLE document_item + ADD CONSTRAINT fk_document_item_version_group + FOREIGN KEY (version_group_id) + REFERENCES document_item(id) + ON DELETE SET NULL; + END IF; +END +$$; + +DO $$ +BEGIN + IF EXISTS ( + SELECT 1 + FROM pg_constraint + WHERE conname = 'document_item_document_number_key' + AND conrelid = 'document_item'::regclass + ) THEN + ALTER TABLE document_item + DROP CONSTRAINT document_item_document_number_key; + END IF; +END +$$; + +CREATE UNIQUE INDEX IF NOT EXISTS idx_document_item_document_number_version_unique + ON document_item (document_number, version_number); + +CREATE INDEX IF NOT EXISTS idx_document_item_version_group_id + ON document_item (version_group_id); diff --git a/database/migrations/018_meeting_decision_report_template.sql b/database/migrations/018_meeting_decision_report_template.sql new file mode 100644 index 0000000..5c5e51a --- /dev/null +++ b/database/migrations/018_meeting_decision_report_template.sql @@ -0,0 +1,46 @@ +DO $body$ +BEGIN + IF NOT EXISTS ( + SELECT 1 + FROM template_item + WHERE category = 'meeting_decision_report' + ) THEN + INSERT INTO template_item( + title, + category, + description, + content, + version_label, + is_active + ) VALUES ( + 'Beschlussbericht Standard', + 'meeting_decision_report', + 'Wird beim Beenden einer Sitzung zur automatischen Berichtserzeugung für alle behandelten Beschlüsse verwendet. Platzhalter wie {{meeting_number}} oder {{decision_sections}} können frei angepasst werden.', + $template$# Beschlussbericht zur BR-Sitzung am {{meeting_date}} +VERTRAULICH + +{{meeting_title_block}} + +## Sitzungsdaten +Sitzungsnummer: {{meeting_number}} +Sitzungsart: {{meeting_type}} +Sitzungsdatum: {{meeting_date}} +Sitzungsort: {{location}} +Sitzungsleitung: {{chair_name}} +Schriftführung: {{secretary_name}} + +## Behandelte Beschlüsse ab TOP 1 +{{decision_sections}} + +{{signature_place}} +______________________________ +{{chair_name}} + +______________________________ +{{secretary_name}}$template$, + 'v1', + TRUE + ); + END IF; +END +$body$; diff --git a/database/migrations/019_committee_member.sql b/database/migrations/019_committee_member.sql new file mode 100644 index 0000000..0f76be0 --- /dev/null +++ b/database/migrations/019_committee_member.sql @@ -0,0 +1,23 @@ +BEGIN; + +CREATE TABLE IF NOT EXISTS committee_member ( + committee_id BIGINT NOT NULL REFERENCES committee(id) ON DELETE CASCADE, + user_id BIGINT NOT NULL REFERENCES app_user(id) ON DELETE CASCADE, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + created_by BIGINT NULL REFERENCES app_user(id) ON DELETE SET NULL, + PRIMARY KEY (committee_id, user_id) +); + +CREATE INDEX IF NOT EXISTS idx_committee_member_user_id + ON committee_member (user_id); + +CREATE INDEX IF NOT EXISTS idx_committee_member_committee_id + ON committee_member (committee_id); + +INSERT INTO committee_member (committee_id, user_id, created_at, created_by) +SELECT u.committee_id, u.id, NOW(), NULL + FROM app_user u + WHERE u.committee_id IS NOT NULL +ON CONFLICT (committee_id, user_id) DO NOTHING; + +COMMIT; diff --git a/database/migrations/020_task_id.sql b/database/migrations/020_task_id.sql new file mode 100644 index 0000000..d3c9984 --- /dev/null +++ b/database/migrations/020_task_id.sql @@ -0,0 +1,6 @@ +ALTER TABLE task + ADD COLUMN IF NOT EXISTS committee_id BIGINT REFERENCES committee(id) ON DELETE SET NULL, + ADD COLUMN IF NOT EXISTS agenda_item_id BIGINT REFERENCES meeting_agenda_item(id) ON DELETE SET NULL; + +CREATE INDEX IF NOT EXISTS idx_task_committee_id ON task(committee_id); +CREATE INDEX IF NOT EXISTS idx_task_agenda_item_id ON task(agenda_item_id); diff --git a/database/migrations/021_meeting_quorum.sql b/database/migrations/021_meeting_quorum.sql new file mode 100644 index 0000000..4f45344 --- /dev/null +++ b/database/migrations/021_meeting_quorum.sql @@ -0,0 +1,16 @@ +ALTER TABLE meeting + ADD COLUMN IF NOT EXISTS is_quorate BOOLEAN, + ADD COLUMN IF NOT EXISTS quorum_recorded_at TIMESTAMPTZ, + ADD COLUMN IF NOT EXISTS quorum_recorded_by BIGINT REFERENCES app_user(id); + +UPDATE template_item + SET content = REPLACE( + content, + 'Schriftführung: {{secretary_name}}', + 'Schriftführung: {{secretary_name}} +{{quorum_statement}}' + ), + version_label = CASE WHEN version_label = 'v1' THEN 'v2' ELSE version_label END, + updated_at = NOW() + WHERE category = 'meeting_protocol' + AND content NOT LIKE '%{{quorum_statement}}%'; diff --git a/database/migrations/022_permissions_matrix.sql b/database/migrations/022_permissions_matrix.sql new file mode 100644 index 0000000..68eac7f --- /dev/null +++ b/database/migrations/022_permissions_matrix.sql @@ -0,0 +1,586 @@ +CREATE TABLE IF NOT EXISTS app_role_profile ( + id BIGSERIAL PRIMARY KEY, + code VARCHAR(80) NOT NULL UNIQUE, + name VARCHAR(120) NOT NULL, + description TEXT, + system_role role_type UNIQUE, + is_system BOOLEAN NOT NULL DEFAULT FALSE, + is_active BOOLEAN NOT NULL DEFAULT TRUE, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS app_permission ( + permission_key VARCHAR(120) PRIMARY KEY, + label VARCHAR(160) NOT NULL, + category VARCHAR(80) NOT NULL, + description TEXT, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS app_page ( + page_key VARCHAR(80) PRIMARY KEY, + path VARCHAR(120) NOT NULL UNIQUE, + label VARCHAR(120) NOT NULL, + nav_group VARCHAR(80) NOT NULL DEFAULT 'work', + sort_order INTEGER NOT NULL DEFAULT 100, + description TEXT, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS app_role_permission ( + role_profile_id BIGINT NOT NULL REFERENCES app_role_profile(id) ON DELETE CASCADE, + permission_key VARCHAR(120) NOT NULL REFERENCES app_permission(permission_key) ON DELETE CASCADE, + granted BOOLEAN NOT NULL DEFAULT TRUE, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + PRIMARY KEY (role_profile_id, permission_key) +); + +CREATE TABLE IF NOT EXISTS app_role_page ( + role_profile_id BIGINT NOT NULL REFERENCES app_role_profile(id) ON DELETE CASCADE, + page_key VARCHAR(80) NOT NULL REFERENCES app_page(page_key) ON DELETE CASCADE, + can_view BOOLEAN NOT NULL DEFAULT TRUE, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + PRIMARY KEY (role_profile_id, page_key) +); + +CREATE TABLE IF NOT EXISTS app_user_role_profile ( + user_id BIGINT NOT NULL REFERENCES app_user(id) ON DELETE CASCADE, + role_profile_id BIGINT NOT NULL REFERENCES app_role_profile(id) ON DELETE CASCADE, + assigned_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + PRIMARY KEY (user_id, role_profile_id) +); + +CREATE TABLE IF NOT EXISTS app_team_role ( + id BIGSERIAL PRIMARY KEY, + code VARCHAR(80) NOT NULL UNIQUE, + name VARCHAR(120) NOT NULL, + description TEXT, + can_view_cases BOOLEAN NOT NULL DEFAULT FALSE, + can_write_cases BOOLEAN NOT NULL DEFAULT FALSE, + can_view_documents BOOLEAN NOT NULL DEFAULT FALSE, + can_write_documents BOOLEAN NOT NULL DEFAULT FALSE, + is_active BOOLEAN NOT NULL DEFAULT TRUE, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS app_user_team_role ( + id BIGSERIAL PRIMARY KEY, + user_id BIGINT NOT NULL REFERENCES app_user(id) ON DELETE CASCADE, + team_role_id BIGINT NOT NULL REFERENCES app_team_role(id) ON DELETE CASCADE, + committee_id BIGINT REFERENCES committee(id) ON DELETE CASCADE, + assigned_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE UNIQUE INDEX IF NOT EXISTS ux_app_user_team_role_global + ON app_user_team_role(user_id, team_role_id) + WHERE committee_id IS NULL; + +CREATE UNIQUE INDEX IF NOT EXISTS ux_app_user_team_role_committee + ON app_user_team_role(user_id, team_role_id, committee_id) + WHERE committee_id IS NOT NULL; + +CREATE TABLE IF NOT EXISTS br_case_team_access ( + case_id BIGINT NOT NULL REFERENCES br_case(id) ON DELETE CASCADE, + team_role_id BIGINT NOT NULL REFERENCES app_team_role(id) ON DELETE CASCADE, + can_read BOOLEAN NOT NULL DEFAULT TRUE, + can_write BOOLEAN NOT NULL DEFAULT FALSE, + created_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + PRIMARY KEY (case_id, team_role_id) +); + +CREATE TABLE IF NOT EXISTS document_team_access ( + document_id BIGINT NOT NULL REFERENCES document_item(id) ON DELETE CASCADE, + team_role_id BIGINT NOT NULL REFERENCES app_team_role(id) ON DELETE CASCADE, + can_read BOOLEAN NOT NULL DEFAULT TRUE, + can_write BOOLEAN NOT NULL DEFAULT FALSE, + created_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + PRIMARY KEY (document_id, team_role_id) +); + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_app_role_profile_updated_at') THEN + CREATE TRIGGER trg_app_role_profile_updated_at BEFORE UPDATE ON app_role_profile FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_app_team_role_updated_at') THEN + CREATE TRIGGER trg_app_team_role_updated_at BEFORE UPDATE ON app_team_role FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; +END $$; + +INSERT INTO app_role_profile(code, name, description, system_role, is_system) +VALUES + ('admin', 'admin', 'Systemverwaltung', 'admin', TRUE), + ('chair', 'chair', 'Sitzungen, TOPs, Beschlüsse, Vorlagen, Ausschussverwaltung', 'chair', TRUE), + ('secretary', 'secretary', 'Protokolle, Sitzungen, TOPs, Dokumente', 'secretary', TRUE), + ('member', 'member', 'Eigene Vorgänge, Aufgaben, Kommentare, Kalender', 'member', TRUE), + ('advisor', 'advisor', 'Lesender/beratender Zugriff auf freigegebene Inhalte', 'advisor', TRUE) +ON CONFLICT (code) DO UPDATE + SET name = EXCLUDED.name, + description = EXCLUDED.description, + system_role = EXCLUDED.system_role, + is_system = TRUE, + is_active = TRUE, + updated_at = NOW(); + +INSERT INTO app_page(page_key, path, label, nav_group, sort_order, description) +VALUES + ('dashboard', '/', 'Dashboard', 'dashboard', 0, 'Startseite und Überblick'), + ('cases', '/cases', 'Vorgänge', 'work', 10, 'Vorgangsverwaltung'), + ('deadlines', '/deadlines', 'Fristen', 'work', 20, 'Fristenverwaltung'), + ('meetings', '/meetings', 'Sitzungen', 'work', 30, 'Sitzungen planen, starten und protokollieren'), + ('agenda-items', '/agenda-items', 'TOP-Bestand', 'work', 40, 'Tagesordnungspunkte'), + ('decisions', '/decisions', 'Beschlüsse', 'work', 50, 'Beschlussverwaltung'), + ('reports', '/reports', 'Reports', 'work', 60, 'Berichte und Auswertungen'), + ('tasks', '/tasks', 'Aufgaben', 'work', 70, 'Aufgabenverwaltung'), + ('calendar', '/calendar', 'Kalender', 'work', 80, 'Kalender'), + ('documents', '/documents', 'Dokumente', 'work', 90, 'Dokumentenverwaltung'), + ('comments', '/comments', 'Kommentare', 'work', 100, 'Kommentare'), + ('notifications', '/notifications', 'Benachrichtigungen', 'work', 110, 'Hinweise'), + ('users', '/users', 'Benutzer', 'admin', 200, 'Benutzerverwaltung'), + ('committees', '/committees', 'Ausschüsse', 'admin', 210, 'Ausschussverwaltung'), + ('templates', '/templates', 'Vorlagen / Formular-Editor', 'admin', 220, 'Vorlagenverwaltung und HTML-/Formular-Editor'), + ('permissions', '/permissions', 'Rollen & Rechte', 'admin', 230, 'Rechtematrix und Teamrollen'), + ('security', '/security', 'Sicherheit', 'admin', 240, 'MFA und Sicherheit'), + ('audit', '/audit', 'Audit', 'admin', 250, 'Audit-Log') +ON CONFLICT (page_key) DO UPDATE + SET path = EXCLUDED.path, + label = EXCLUDED.label, + nav_group = EXCLUDED.nav_group, + sort_order = EXCLUDED.sort_order, + description = EXCLUDED.description; + +INSERT INTO app_permission(permission_key, label, category, description) +VALUES + ('system.admin', 'Systemverwaltung', 'System', 'Voller Systemzugriff'), + ('system.users', 'Benutzer verwalten', 'System', 'Benutzer anlegen, ändern und deaktivieren'), + ('system.permissions', 'Rollen und Rechte verwalten', 'System', 'Rechtematrix, Custom-Rollen und Teamrollen verwalten'), + ('system.security', 'Sicherheit verwalten', 'System', 'Sicherheits- und MFA-Funktionen verwalten'), + ('system.audit', 'Audit lesen', 'System', 'Audit-Log anzeigen'), + ('cases.read.own', 'Eigene Vorgänge lesen', 'Vorgänge', 'Eigene/erstellte Vorgänge lesen'), + ('cases.read.all', 'Alle Vorgänge lesen', 'Vorgänge', 'Alle Vorgänge rollenbasiert lesen'), + ('cases.write', 'Vorgänge bearbeiten', 'Vorgänge', 'Vorgänge anlegen und bearbeiten'), + ('cases.write.all', 'Alle Vorgänge bearbeiten', 'Vorgänge', 'Nicht nur eigene Vorgänge bearbeiten'), + ('cases.delete', 'Vorgänge löschen', 'Vorgänge', 'Vorgänge löschen/archivieren'), + ('deadlines.write', 'Fristen bearbeiten', 'Fristen', 'Fristen anlegen und bearbeiten'), + ('meetings.write', 'Sitzungen bearbeiten', 'Sitzungen', 'Sitzungen planen, starten, stoppen und löschen'), + ('agenda.write', 'TOPs bearbeiten', 'Sitzungen', 'Tagesordnungspunkte bearbeiten'), + ('decisions.write', 'Beschlüsse bearbeiten', 'Beschlüsse', 'Beschlüsse anlegen und ändern'), + ('reports.read', 'Reports lesen', 'Reports', 'Berichte anzeigen'), + ('tasks.write', 'Aufgaben bearbeiten', 'Aufgaben', 'Aufgaben anlegen und ändern'), + ('calendar.write', 'Kalender bearbeiten', 'Kalender', 'Kalendereinträge anlegen und ändern'), + ('documents.read.released', 'Freigegebene Dokumente lesen', 'Dokumente', 'Freigegebene/saubere interne Dokumente lesen'), + ('documents.read.all', 'Alle Dokumente lesen', 'Dokumente', 'Alle Dokumente rollenbasiert lesen'), + ('documents.write', 'Dokumente bearbeiten', 'Dokumente', 'Dokumente hochladen, versionieren und ändern'), + ('documents.write.all', 'Alle Dokumente bearbeiten', 'Dokumente', 'Nicht nur eigene Dokumente bearbeiten'), + ('comments.write', 'Kommentare schreiben', 'Kommentare', 'Kommentare anlegen und bearbeiten'), + ('notifications.write', 'Benachrichtigungen bearbeiten', 'Benachrichtigungen', 'Benachrichtigungen anlegen/ändern'), + ('templates.write', 'Vorlagen bearbeiten', 'Vorlagen', 'Vorlagen anlegen und ändern'), + ('committees.write', 'Ausschüsse bearbeiten', 'Administration', 'Ausschüsse und Mitgliedschaften verwalten') +ON CONFLICT (permission_key) DO UPDATE + SET label = EXCLUDED.label, + category = EXCLUDED.category, + description = EXCLUDED.description; + +CREATE OR REPLACE FUNCTION grant_role_pages(role_code TEXT, page_keys TEXT[]) RETURNS VOID AS $$ +DECLARE + role_id BIGINT; +BEGIN + SELECT id INTO role_id FROM app_role_profile WHERE code = role_code; + IF role_id IS NULL THEN RETURN; END IF; + + DELETE FROM app_role_page WHERE role_profile_id = role_id; + + INSERT INTO app_role_page(role_profile_id, page_key, can_view) + SELECT role_id, unnest(page_keys), TRUE + ON CONFLICT (role_profile_id, page_key) DO UPDATE SET can_view = TRUE; +END; +$$ LANGUAGE plpgsql; + +CREATE OR REPLACE FUNCTION grant_role_permissions(role_code TEXT, permission_keys TEXT[]) RETURNS VOID AS $$ +DECLARE + role_id BIGINT; +BEGIN + SELECT id INTO role_id FROM app_role_profile WHERE code = role_code; + IF role_id IS NULL THEN RETURN; END IF; + + DELETE FROM app_role_permission WHERE role_profile_id = role_id; + + INSERT INTO app_role_permission(role_profile_id, permission_key, granted) + SELECT role_id, unnest(permission_keys), TRUE + ON CONFLICT (role_profile_id, permission_key) DO UPDATE SET granted = TRUE; +END; +$$ LANGUAGE plpgsql; + +SELECT grant_role_pages('admin', ARRAY[ + 'dashboard','cases','deadlines','meetings','agenda-items','decisions','reports','tasks','calendar','documents','comments','notifications', + 'users','committees','templates','permissions','security','audit' +]); +SELECT grant_role_pages('chair', ARRAY[ + 'dashboard','cases','deadlines','meetings','agenda-items','decisions','reports','tasks','calendar','documents','comments','notifications','committees','templates' +]); +SELECT grant_role_pages('secretary', ARRAY[ + 'dashboard','meetings','agenda-items','decisions','reports','tasks','calendar','documents','comments','notifications' +]); +SELECT grant_role_pages('member', ARRAY[ + 'dashboard','cases','deadlines','tasks','calendar','documents','comments','notifications' +]); +SELECT grant_role_pages('advisor', ARRAY[ + 'dashboard','calendar','documents','comments','notifications' +]); + +SELECT grant_role_permissions('admin', ARRAY( + SELECT permission_key FROM app_permission +)); +SELECT grant_role_permissions('chair', ARRAY[ + 'cases.read.all','cases.write','cases.write.all','cases.delete','deadlines.write','meetings.write','agenda.write','decisions.write', + 'reports.read','tasks.write','calendar.write','documents.read.all','documents.write','documents.write.all','comments.write','notifications.write','templates.write','committees.write' +]); +SELECT grant_role_permissions('secretary', ARRAY[ + 'meetings.write','agenda.write','decisions.write','reports.read','tasks.write','calendar.write','documents.write','comments.write','notifications.write' +]); +SELECT grant_role_permissions('member', ARRAY[ + 'cases.read.own','cases.write','deadlines.write','tasks.write','calendar.write','documents.write','comments.write','notifications.write' +]); +SELECT grant_role_permissions('advisor', ARRAY[ + 'documents.read.released' +]); + +DROP FUNCTION IF EXISTS grant_role_pages(TEXT, TEXT[]); +DROP FUNCTION IF EXISTS grant_role_permissions(TEXT, TEXT[]); + +CREATE OR REPLACE FUNCTION app_has_permission(permission TEXT, target_user_id BIGINT DEFAULT app_user_id(), target_role TEXT DEFAULT app_role()) RETURNS BOOLEAN AS $$ +DECLARE + allowed BOOLEAN; +BEGIN + IF target_role = 'admin' THEN + RETURN TRUE; + END IF; + + SELECT EXISTS ( + SELECT 1 + FROM app_role_profile rp + JOIN app_role_permission rperm ON rperm.role_profile_id = rp.id AND rperm.granted = TRUE + WHERE rperm.permission_key = permission + AND rp.is_active = TRUE + AND ( + rp.system_role::TEXT = target_role + OR EXISTS ( + SELECT 1 + FROM app_user_role_profile urp + WHERE urp.role_profile_id = rp.id + AND urp.user_id = target_user_id + ) + ) + ) INTO allowed; + + RETURN COALESCE(allowed, FALSE); +END; +$$ LANGUAGE plpgsql STABLE SECURITY DEFINER SET search_path = public; + +CREATE OR REPLACE FUNCTION app_can_view_page(page_key TEXT, target_user_id BIGINT DEFAULT app_user_id(), target_role TEXT DEFAULT app_role()) RETURNS BOOLEAN AS $$ +DECLARE + allowed BOOLEAN; +BEGIN + IF target_role = 'admin' THEN + RETURN TRUE; + END IF; + + SELECT EXISTS ( + SELECT 1 + FROM app_role_profile rp + JOIN app_role_page rpage ON rpage.role_profile_id = rp.id AND rpage.can_view = TRUE + WHERE rpage.page_key = app_can_view_page.page_key + AND rp.is_active = TRUE + AND ( + rp.system_role::TEXT = target_role + OR EXISTS ( + SELECT 1 + FROM app_user_role_profile urp + WHERE urp.role_profile_id = rp.id + AND urp.user_id = target_user_id + ) + ) + ) INTO allowed; + + RETURN COALESCE(allowed, FALSE); +END; +$$ LANGUAGE plpgsql STABLE SECURITY DEFINER SET search_path = public; + +CREATE OR REPLACE FUNCTION app_user_has_case_team_access(target_case_id BIGINT, write_access BOOLEAN DEFAULT FALSE, target_user_id BIGINT DEFAULT app_user_id()) RETURNS BOOLEAN AS $$ +DECLARE + allowed BOOLEAN; +BEGIN + SELECT EXISTS ( + SELECT 1 + FROM br_case c + JOIN app_user_team_role utr ON utr.user_id = target_user_id AND (utr.committee_id IS NULL OR utr.committee_id = c.committee_id) + JOIN app_team_role tr ON tr.id = utr.team_role_id AND tr.is_active = TRUE + LEFT JOIN br_case_team_access cta ON cta.case_id = c.id AND cta.team_role_id = tr.id + WHERE c.id = target_case_id + AND ( + (write_access = FALSE AND (tr.can_view_cases = TRUE OR cta.can_read = TRUE OR cta.can_write = TRUE)) + OR + (write_access = TRUE AND (tr.can_write_cases = TRUE OR cta.can_write = TRUE)) + ) + ) INTO allowed; + + RETURN COALESCE(allowed, FALSE); +END; +$$ LANGUAGE plpgsql STABLE SECURITY DEFINER SET search_path = public; + +CREATE OR REPLACE FUNCTION app_user_has_document_team_access(target_document_id BIGINT, write_access BOOLEAN DEFAULT FALSE, target_user_id BIGINT DEFAULT app_user_id()) RETURNS BOOLEAN AS $$ +DECLARE + allowed BOOLEAN; +BEGIN + SELECT EXISTS ( + SELECT 1 + FROM document_item d + LEFT JOIN br_case c ON c.id = d.case_id + JOIN app_user_team_role utr ON utr.user_id = target_user_id AND (utr.committee_id IS NULL OR utr.committee_id = COALESCE(c.committee_id, 0) OR c.id IS NULL) + JOIN app_team_role tr ON tr.id = utr.team_role_id AND tr.is_active = TRUE + LEFT JOIN document_team_access dta ON dta.document_id = d.id AND dta.team_role_id = tr.id + WHERE d.id = target_document_id + AND ( + (write_access = FALSE AND (tr.can_view_documents = TRUE OR dta.can_read = TRUE OR dta.can_write = TRUE)) + OR + (write_access = TRUE AND (tr.can_write_documents = TRUE OR dta.can_write = TRUE)) + ) + ) INTO allowed; + + RETURN COALESCE(allowed, FALSE); +END; +$$ LANGUAGE plpgsql STABLE SECURITY DEFINER SET search_path = public; + +CREATE OR REPLACE FUNCTION app_can_read_case(target_case_id BIGINT) RETURNS BOOLEAN AS $$ +DECLARE + row br_case%ROWTYPE; +BEGIN + SELECT * INTO row FROM br_case WHERE id = target_case_id AND deleted_at IS NULL; + IF NOT FOUND THEN RETURN FALSE; END IF; + + IF app_role() IN ('admin', 'chair') OR app_has_permission('cases.read.all') THEN RETURN TRUE; END IF; + IF row.owner_user_id = app_user_id() OR row.created_by = app_user_id() THEN RETURN TRUE; END IF; + IF app_user_has_case_team_access(row.id, FALSE) THEN RETURN TRUE; END IF; + + RETURN FALSE; +END; +$$ LANGUAGE plpgsql STABLE SECURITY DEFINER SET search_path = public; + +CREATE OR REPLACE FUNCTION app_can_write_case(target_case_id BIGINT) RETURNS BOOLEAN AS $$ +DECLARE + row br_case%ROWTYPE; +BEGIN + SELECT * INTO row FROM br_case WHERE id = target_case_id AND deleted_at IS NULL; + IF NOT FOUND THEN RETURN FALSE; END IF; + + IF app_role() IN ('admin', 'chair') OR app_has_permission('cases.write.all') THEN RETURN TRUE; END IF; + IF (row.owner_user_id = app_user_id() OR row.created_by = app_user_id()) AND app_has_permission('cases.write') THEN RETURN TRUE; END IF; + IF app_user_has_case_team_access(row.id, TRUE) AND app_has_permission('cases.write') THEN RETURN TRUE; END IF; + + RETURN FALSE; +END; +$$ LANGUAGE plpgsql STABLE SECURITY DEFINER SET search_path = public; + +CREATE OR REPLACE FUNCTION app_can_read_document(target_document_id BIGINT) RETURNS BOOLEAN AS $$ +DECLARE + row document_item%ROWTYPE; +BEGIN + SELECT * INTO row FROM document_item WHERE id = target_document_id AND deleted_at IS NULL; + IF NOT FOUND THEN RETURN FALSE; END IF; + IF row.scan_status <> 'clean' THEN RETURN FALSE; END IF; + + IF app_role() IN ('admin', 'chair') OR app_has_permission('documents.read.all') THEN RETURN TRUE; END IF; + IF row.uploaded_by = app_user_id() THEN RETURN TRUE; END IF; + IF row.case_id IS NOT NULL AND app_can_read_case(row.case_id) THEN RETURN TRUE; END IF; + IF app_user_has_document_team_access(row.id, FALSE) THEN RETURN TRUE; END IF; + IF row.case_id IS NULL AND row.decision_id IS NULL AND row.confidentiality_level = 'intern' AND app_has_permission('documents.read.released') THEN RETURN TRUE; END IF; + + RETURN FALSE; +END; +$$ LANGUAGE plpgsql STABLE SECURITY DEFINER SET search_path = public; + +CREATE OR REPLACE FUNCTION app_can_write_document(target_document_id BIGINT) RETURNS BOOLEAN AS $$ +DECLARE + row document_item%ROWTYPE; +BEGIN + SELECT * INTO row FROM document_item WHERE id = target_document_id AND deleted_at IS NULL; + IF NOT FOUND THEN RETURN FALSE; END IF; + + IF app_role() IN ('admin', 'chair') OR app_has_permission('documents.write.all') THEN RETURN TRUE; END IF; + IF row.uploaded_by = app_user_id() AND app_has_permission('documents.write') THEN RETURN TRUE; END IF; + IF row.case_id IS NOT NULL AND app_can_write_case(row.case_id) AND app_has_permission('documents.write') THEN RETURN TRUE; END IF; + IF app_user_has_document_team_access(row.id, TRUE) AND app_has_permission('documents.write') THEN RETURN TRUE; END IF; + + RETURN FALSE; +END; +$$ LANGUAGE plpgsql STABLE SECURITY DEFINER SET search_path = public; + +CREATE OR REPLACE FUNCTION can_read_conf_level(level conf_level, owner BIGINT, committee BIGINT) RETURNS BOOLEAN AS $$ +BEGIN + IF app_role() IN ('admin', 'chair') OR app_has_permission('cases.read.all') THEN RETURN TRUE; END IF; + IF owner = app_user_id() THEN RETURN TRUE; END IF; + RETURN FALSE; +END; +$$ LANGUAGE plpgsql STABLE; + +DROP POLICY IF EXISTS br_case_select_policy ON br_case; +DROP POLICY IF EXISTS br_case_modify_policy ON br_case; +CREATE POLICY br_case_select_policy ON br_case FOR SELECT USING (app_can_read_case(id)); +CREATE POLICY br_case_modify_policy ON br_case FOR ALL USING (app_can_write_case(id)) WITH CHECK ( + app_role() IN ('admin','chair') + OR app_has_permission('cases.write.all') + OR (app_has_permission('cases.write') AND (owner_user_id = app_user_id() OR created_by = app_user_id())) +); + +DROP POLICY IF EXISTS deadline_select_policy ON deadline; +DROP POLICY IF EXISTS deadline_modify_policy ON deadline; +CREATE POLICY deadline_select_policy ON deadline FOR SELECT USING ( + deleted_at IS NULL AND EXISTS (SELECT 1 FROM br_case c WHERE c.id = deadline.case_id AND app_can_read_case(c.id)) +); +CREATE POLICY deadline_modify_policy ON deadline FOR ALL USING ( + deleted_at IS NULL AND EXISTS (SELECT 1 FROM br_case c WHERE c.id = deadline.case_id AND app_can_write_case(c.id)) +) WITH CHECK (app_has_permission('deadlines.write')); + +DROP POLICY IF EXISTS decision_select_policy ON decision; +DROP POLICY IF EXISTS decision_modify_policy ON decision; +CREATE POLICY decision_select_policy ON decision FOR SELECT USING ( + case_id IS NULL OR app_can_read_case(case_id) OR app_has_permission('decisions.write') +); +CREATE POLICY decision_modify_policy ON decision FOR ALL USING ( + app_has_permission('decisions.write') OR responsible_user_id = app_user_id() +) WITH CHECK (app_has_permission('decisions.write') OR responsible_user_id = app_user_id()); + +DROP POLICY IF EXISTS document_select_policy ON document_item; +DROP POLICY IF EXISTS document_modify_policy ON document_item; +CREATE POLICY document_select_policy ON document_item FOR SELECT USING (app_can_read_document(id)); +CREATE POLICY document_modify_policy ON document_item FOR ALL USING (app_can_write_document(id)) WITH CHECK ( + app_role() IN ('admin','chair') + OR app_has_permission('documents.write.all') + OR (app_has_permission('documents.write') AND uploaded_by = app_user_id()) + OR (case_id IS NOT NULL AND app_can_write_case(case_id) AND app_has_permission('documents.write')) +); + +DROP POLICY IF EXISTS meeting_select_policy ON meeting; +DROP POLICY IF EXISTS meeting_modify_policy ON meeting; +CREATE POLICY meeting_select_policy ON meeting FOR SELECT USING ( + app_can_view_page('meetings') OR app_has_permission('meetings.write') OR committee_id IS NULL OR committee_id = app_committee_id() +); +CREATE POLICY meeting_modify_policy ON meeting FOR ALL USING (app_has_permission('meetings.write')) WITH CHECK (app_has_permission('meetings.write')); + +DROP POLICY IF EXISTS template_select_policy ON template_item; +DROP POLICY IF EXISTS template_modify_policy ON template_item; +CREATE POLICY template_select_policy ON template_item FOR SELECT USING (app_can_view_page('templates')); +CREATE POLICY template_modify_policy ON template_item FOR ALL USING (app_has_permission('templates.write')) WITH CHECK (app_has_permission('templates.write')); + +DROP POLICY IF EXISTS committee_modify ON committee; +CREATE POLICY committee_modify ON committee FOR ALL USING (app_has_permission('committees.write')) WITH CHECK (app_has_permission('committees.write')); + +ALTER TABLE app_role_profile ENABLE ROW LEVEL SECURITY; +ALTER TABLE app_permission ENABLE ROW LEVEL SECURITY; +ALTER TABLE app_page ENABLE ROW LEVEL SECURITY; +ALTER TABLE app_role_permission ENABLE ROW LEVEL SECURITY; +ALTER TABLE app_role_page ENABLE ROW LEVEL SECURITY; +ALTER TABLE app_user_role_profile ENABLE ROW LEVEL SECURITY; +ALTER TABLE app_team_role ENABLE ROW LEVEL SECURITY; +ALTER TABLE app_user_team_role ENABLE ROW LEVEL SECURITY; +ALTER TABLE br_case_team_access ENABLE ROW LEVEL SECURITY; +ALTER TABLE document_team_access ENABLE ROW LEVEL SECURITY; + +DROP POLICY IF EXISTS app_role_profile_select ON app_role_profile; +DROP POLICY IF EXISTS app_role_profile_modify ON app_role_profile; +CREATE POLICY app_role_profile_select ON app_role_profile FOR SELECT USING ( + app_has_permission('system.permissions') + OR system_role::TEXT = app_role() + OR EXISTS ( + SELECT 1 FROM app_user_role_profile urp + WHERE urp.role_profile_id = app_role_profile.id + AND urp.user_id = app_user_id() + ) +); +CREATE POLICY app_role_profile_modify ON app_role_profile FOR ALL USING (app_has_permission('system.permissions')) WITH CHECK (app_has_permission('system.permissions')); + +DROP POLICY IF EXISTS app_permission_select ON app_permission; +DROP POLICY IF EXISTS app_permission_modify ON app_permission; +CREATE POLICY app_permission_select ON app_permission FOR SELECT USING (TRUE); +CREATE POLICY app_permission_modify ON app_permission FOR ALL USING (app_has_permission('system.permissions')) WITH CHECK (app_has_permission('system.permissions')); + +DROP POLICY IF EXISTS app_page_select ON app_page; +DROP POLICY IF EXISTS app_page_modify ON app_page; +CREATE POLICY app_page_select ON app_page FOR SELECT USING (TRUE); +CREATE POLICY app_page_modify ON app_page FOR ALL USING (app_has_permission('system.permissions')) WITH CHECK (app_has_permission('system.permissions')); + +DROP POLICY IF EXISTS app_role_permission_select ON app_role_permission; +DROP POLICY IF EXISTS app_role_permission_modify ON app_role_permission; +CREATE POLICY app_role_permission_select ON app_role_permission FOR SELECT USING ( + app_has_permission('system.permissions') + OR EXISTS ( + SELECT 1 FROM app_role_profile rp + WHERE rp.id = app_role_permission.role_profile_id + AND ( + rp.system_role::TEXT = app_role() + OR EXISTS ( + SELECT 1 FROM app_user_role_profile urp + WHERE urp.role_profile_id = rp.id + AND urp.user_id = app_user_id() + ) + ) + ) +); +CREATE POLICY app_role_permission_modify ON app_role_permission FOR ALL USING (app_has_permission('system.permissions')) WITH CHECK (app_has_permission('system.permissions')); + +DROP POLICY IF EXISTS app_role_page_select ON app_role_page; +DROP POLICY IF EXISTS app_role_page_modify ON app_role_page; +CREATE POLICY app_role_page_select ON app_role_page FOR SELECT USING ( + app_has_permission('system.permissions') + OR EXISTS ( + SELECT 1 FROM app_role_profile rp + WHERE rp.id = app_role_page.role_profile_id + AND ( + rp.system_role::TEXT = app_role() + OR EXISTS ( + SELECT 1 FROM app_user_role_profile urp + WHERE urp.role_profile_id = rp.id + AND urp.user_id = app_user_id() + ) + ) + ) +); +CREATE POLICY app_role_page_modify ON app_role_page FOR ALL USING (app_has_permission('system.permissions')) WITH CHECK (app_has_permission('system.permissions')); + +DROP POLICY IF EXISTS app_user_role_profile_select ON app_user_role_profile; +DROP POLICY IF EXISTS app_user_role_profile_modify ON app_user_role_profile; +CREATE POLICY app_user_role_profile_select ON app_user_role_profile FOR SELECT USING (app_has_permission('system.permissions') OR user_id = app_user_id()); +CREATE POLICY app_user_role_profile_modify ON app_user_role_profile FOR ALL USING (app_has_permission('system.permissions')) WITH CHECK (app_has_permission('system.permissions')); + +DROP POLICY IF EXISTS app_team_role_select ON app_team_role; +DROP POLICY IF EXISTS app_team_role_modify ON app_team_role; +CREATE POLICY app_team_role_select ON app_team_role FOR SELECT USING (app_has_permission('system.permissions') OR TRUE); +CREATE POLICY app_team_role_modify ON app_team_role FOR ALL USING (app_has_permission('system.permissions')) WITH CHECK (app_has_permission('system.permissions')); + +DROP POLICY IF EXISTS app_user_team_role_select ON app_user_team_role; +DROP POLICY IF EXISTS app_user_team_role_modify ON app_user_team_role; +CREATE POLICY app_user_team_role_select ON app_user_team_role FOR SELECT USING (app_has_permission('system.permissions') OR user_id = app_user_id()); +CREATE POLICY app_user_team_role_modify ON app_user_team_role FOR ALL USING (app_has_permission('system.permissions')) WITH CHECK (app_has_permission('system.permissions')); + +DROP POLICY IF EXISTS br_case_team_access_select ON br_case_team_access; +DROP POLICY IF EXISTS br_case_team_access_modify ON br_case_team_access; +CREATE POLICY br_case_team_access_select ON br_case_team_access FOR SELECT USING (app_has_permission('system.permissions') OR app_can_write_case(case_id)); +CREATE POLICY br_case_team_access_modify ON br_case_team_access FOR ALL USING (app_can_write_case(case_id) OR app_has_permission('system.permissions')) WITH CHECK (app_can_write_case(case_id) OR app_has_permission('system.permissions')); + +DROP POLICY IF EXISTS document_team_access_select ON document_team_access; +DROP POLICY IF EXISTS document_team_access_modify ON document_team_access; +CREATE POLICY document_team_access_select ON document_team_access FOR SELECT USING (app_has_permission('system.permissions') OR app_can_write_document(document_id)); +CREATE POLICY document_team_access_modify ON document_team_access FOR ALL USING (app_can_write_document(document_id) OR app_has_permission('system.permissions')) WITH CHECK (app_can_write_document(document_id) OR app_has_permission('system.permissions')); + +GRANT SELECT, INSERT, UPDATE, DELETE ON app_role_profile, app_permission, app_page, app_role_permission, app_role_page, app_user_role_profile, app_team_role, app_user_team_role, br_case_team_access, document_team_access TO br_app; +GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO br_app; diff --git a/database/migrations/023_finance.sql b/database/migrations/023_finance.sql new file mode 100644 index 0000000..e155edf --- /dev/null +++ b/database/migrations/023_finance.sql @@ -0,0 +1,197 @@ +CREATE TABLE IF NOT EXISTS finance_project ( + id BIGSERIAL PRIMARY KEY, + project_code VARCHAR(50) UNIQUE, + name VARCHAR(180) NOT NULL, + description TEXT, + status VARCHAR(30) NOT NULL DEFAULT 'aktiv' CHECK (status IN ('aktiv','pausiert','abgeschlossen','archiviert')), + calculation_mode VARCHAR(30) NOT NULL DEFAULT 'sum_only' CHECK (calculation_mode IN ('sum_only','project_budget','annual_budget')), + committee_id BIGINT REFERENCES committee(id) ON DELETE SET NULL, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + deleted_at TIMESTAMPTZ +); + +CREATE TABLE IF NOT EXISTS finance_project_budget ( + id BIGSERIAL PRIMARY KEY, + project_id BIGINT NOT NULL REFERENCES finance_project(id) ON DELETE CASCADE, + budget_type VARCHAR(20) NOT NULL CHECK (budget_type IN ('project','annual')), + budget_year INTEGER, + amount NUMERIC(14,2) NOT NULL DEFAULT 0 CHECK (amount >= 0), + currency CHAR(3) NOT NULL DEFAULT 'EUR', + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + CONSTRAINT finance_project_budget_year_check CHECK ( + (budget_type = 'project' AND budget_year IS NULL) + OR + (budget_type = 'annual' AND budget_year IS NOT NULL) + ) +); + +CREATE UNIQUE INDEX IF NOT EXISTS ux_finance_project_budget_project + ON finance_project_budget(project_id) + WHERE budget_type = 'project'; + +CREATE UNIQUE INDEX IF NOT EXISTS ux_finance_project_budget_annual + ON finance_project_budget(project_id, budget_year) + WHERE budget_type = 'annual'; + +CREATE TABLE IF NOT EXISTS finance_expense ( + id BIGSERIAL PRIMARY KEY, + project_id BIGINT NOT NULL REFERENCES finance_project(id) ON DELETE CASCADE, + expense_date DATE NOT NULL DEFAULT CURRENT_DATE, + budget_year INTEGER NOT NULL DEFAULT EXTRACT(YEAR FROM CURRENT_DATE)::INTEGER, + title VARCHAR(255) NOT NULL, + vendor VARCHAR(180), + cost_category VARCHAR(120), + net_amount NUMERIC(14,2) NOT NULL CHECK (net_amount >= 0), + tax_rate_percent NUMERIC(6,3) NOT NULL DEFAULT 19 CHECK (tax_rate_percent >= 0), + tax_amount NUMERIC(14,2) NOT NULL DEFAULT 0 CHECK (tax_amount >= 0), + gross_amount NUMERIC(14,2) NOT NULL DEFAULT 0 CHECK (gross_amount >= 0), + currency CHAR(3) NOT NULL DEFAULT 'EUR', + payment_status VARCHAR(30) NOT NULL DEFAULT 'offen' CHECK (payment_status IN ('geplant','offen','bezahlt','storniert')), + notes TEXT, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + deleted_at TIMESTAMPTZ +); + +CREATE INDEX IF NOT EXISTS idx_finance_expense_project ON finance_expense(project_id); +CREATE INDEX IF NOT EXISTS idx_finance_expense_budget_year ON finance_expense(budget_year); +CREATE INDEX IF NOT EXISTS idx_finance_expense_date ON finance_expense(expense_date); + +CREATE TABLE IF NOT EXISTS finance_expense_document ( + expense_id BIGINT NOT NULL REFERENCES finance_expense(id) ON DELETE CASCADE, + document_id BIGINT NOT NULL REFERENCES document_item(id) ON DELETE CASCADE, + created_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + PRIMARY KEY (expense_id, document_id) +); + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_finance_project_updated_at') THEN + CREATE TRIGGER trg_finance_project_updated_at BEFORE UPDATE ON finance_project FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; + + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_finance_project_budget_updated_at') THEN + CREATE TRIGGER trg_finance_project_budget_updated_at BEFORE UPDATE ON finance_project_budget FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; + + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_finance_expense_updated_at') THEN + CREATE TRIGGER trg_finance_expense_updated_at BEFORE UPDATE ON finance_expense FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; +END $$; + +INSERT INTO app_page(page_key, path, label, nav_group, sort_order, description) +VALUES ('finance', '/finance', 'Finanzen', 'work', 65, 'Kostenüberwachung, Budgets, Jahresbudgets und Belege') +ON CONFLICT (page_key) DO UPDATE + SET path = EXCLUDED.path, + label = EXCLUDED.label, + nav_group = EXCLUDED.nav_group, + sort_order = EXCLUDED.sort_order, + description = EXCLUDED.description; + +INSERT INTO app_permission(permission_key, label, category, description) +VALUES + ('finance.read', 'Finanzen lesen', 'Finanzen', 'Finanzprojekte, Budgets, Ausgaben und Belege anzeigen'), + ('finance.write', 'Finanzen bearbeiten', 'Finanzen', 'Finanzprojekte, Budgets, Ausgaben und Belege anlegen und ändern'), + ('finance.delete', 'Finanzdaten löschen', 'Finanzen', 'Finanzprojekte und Ausgaben archivieren/löschen'), + ('finance.budget', 'Budgets verwalten', 'Finanzen', 'Projektbudgets und Jahresbudgets pflegen') +ON CONFLICT (permission_key) DO UPDATE + SET label = EXCLUDED.label, + category = EXCLUDED.category, + description = EXCLUDED.description; + +INSERT INTO app_role_page(role_profile_id, page_key, can_view) +SELECT rp.id, 'finance', TRUE + FROM app_role_profile rp + WHERE rp.code IN ('admin','chair') +ON CONFLICT (role_profile_id, page_key) DO UPDATE SET can_view = TRUE; + +INSERT INTO app_role_permission(role_profile_id, permission_key, granted) +SELECT rp.id, perm.permission_key, TRUE + FROM app_role_profile rp + CROSS JOIN (VALUES ('finance.read'), ('finance.write'), ('finance.delete'), ('finance.budget')) AS perm(permission_key) + WHERE rp.code IN ('admin','chair') +ON CONFLICT (role_profile_id, permission_key) DO UPDATE SET granted = TRUE; + +ALTER TABLE finance_project ENABLE ROW LEVEL SECURITY; +ALTER TABLE finance_project_budget ENABLE ROW LEVEL SECURITY; +ALTER TABLE finance_expense ENABLE ROW LEVEL SECURITY; +ALTER TABLE finance_expense_document ENABLE ROW LEVEL SECURITY; + +DROP POLICY IF EXISTS finance_project_select ON finance_project; +DROP POLICY IF EXISTS finance_project_modify ON finance_project; +CREATE POLICY finance_project_select ON finance_project FOR SELECT USING ( + deleted_at IS NULL AND app_has_permission('finance.read') +); +CREATE POLICY finance_project_modify ON finance_project FOR ALL USING ( + app_has_permission('finance.write') +) WITH CHECK (app_has_permission('finance.write')); + +DROP POLICY IF EXISTS finance_project_budget_select ON finance_project_budget; +DROP POLICY IF EXISTS finance_project_budget_modify ON finance_project_budget; +CREATE POLICY finance_project_budget_select ON finance_project_budget FOR SELECT USING ( + app_has_permission('finance.read') +); +CREATE POLICY finance_project_budget_modify ON finance_project_budget FOR ALL USING ( + app_has_permission('finance.budget') OR app_has_permission('finance.write') +) WITH CHECK (app_has_permission('finance.budget') OR app_has_permission('finance.write')); + +DROP POLICY IF EXISTS finance_expense_select ON finance_expense; +DROP POLICY IF EXISTS finance_expense_modify ON finance_expense; +CREATE POLICY finance_expense_select ON finance_expense FOR SELECT USING ( + deleted_at IS NULL AND app_has_permission('finance.read') +); +CREATE POLICY finance_expense_modify ON finance_expense FOR ALL USING ( + app_has_permission('finance.write') +) WITH CHECK (app_has_permission('finance.write')); + +DROP POLICY IF EXISTS finance_expense_document_select ON finance_expense_document; +DROP POLICY IF EXISTS finance_expense_document_modify ON finance_expense_document; +CREATE POLICY finance_expense_document_select ON finance_expense_document FOR SELECT USING ( + app_has_permission('finance.read') +); +CREATE POLICY finance_expense_document_modify ON finance_expense_document FOR ALL USING ( + app_has_permission('finance.write') +) WITH CHECK (app_has_permission('finance.write')); + +DROP POLICY IF EXISTS document_select_policy ON document_item; +DROP POLICY IF EXISTS document_modify_policy ON document_item; +CREATE POLICY document_select_policy ON document_item FOR SELECT USING ( + app_can_read_document(id) + OR EXISTS ( + SELECT 1 + FROM finance_expense_document fed + JOIN finance_expense fe ON fe.id = fed.expense_id AND fe.deleted_at IS NULL + WHERE fed.document_id = document_item.id + AND app_has_permission('finance.read') + ) +); +CREATE POLICY document_modify_policy ON document_item FOR ALL USING ( + app_can_write_document(id) + OR (document_item.document_type = 'finance_receipt' AND document_item.uploaded_by = app_user_id() AND app_has_permission('finance.write')) + OR EXISTS ( + SELECT 1 + FROM finance_expense_document fed + JOIN finance_expense fe ON fe.id = fed.expense_id AND fe.deleted_at IS NULL + WHERE fed.document_id = document_item.id + AND app_has_permission('finance.write') + ) +) WITH CHECK ( + app_role() IN ('admin','chair') + OR app_has_permission('documents.write.all') + OR (app_has_permission('documents.write') AND uploaded_by = app_user_id()) + OR (case_id IS NOT NULL AND app_can_write_case(case_id) AND app_has_permission('documents.write')) + OR (document_item.document_type = 'finance_receipt' AND document_item.uploaded_by = app_user_id() AND app_has_permission('finance.write')) + OR app_has_permission('finance.write') +); + +GRANT SELECT, INSERT, UPDATE, DELETE ON finance_project, finance_project_budget, finance_expense, finance_expense_document TO br_app; +GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO br_app; diff --git a/database/migrations/024_decision_voting.sql b/database/migrations/024_decision_voting.sql new file mode 100644 index 0000000..4ac76a6 --- /dev/null +++ b/database/migrations/024_decision_voting.sql @@ -0,0 +1,175 @@ +BEGIN; + +ALTER TABLE decision + ADD COLUMN IF NOT EXISTS voting_open BOOLEAN NOT NULL DEFAULT FALSE, + ADD COLUMN IF NOT EXISTS voting_started_at TIMESTAMPTZ, + ADD COLUMN IF NOT EXISTS voting_started_by BIGINT REFERENCES app_user(id), + ADD COLUMN IF NOT EXISTS voting_closed_at TIMESTAMPTZ, + ADD COLUMN IF NOT EXISTS voting_closed_by BIGINT REFERENCES app_user(id); + +CREATE TABLE IF NOT EXISTS decision_vote ( + decision_id BIGINT NOT NULL REFERENCES decision(id) ON DELETE CASCADE, + user_id BIGINT NOT NULL REFERENCES app_user(id) ON DELETE CASCADE, + vote_value VARCHAR(20) NOT NULL CHECK (vote_value IN ('yes', 'no', 'abstain')), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + PRIMARY KEY (decision_id, user_id) +); + +CREATE INDEX IF NOT EXISTS idx_decision_vote_decision_id + ON decision_vote(decision_id); + +CREATE INDEX IF NOT EXISTS idx_decision_vote_user_id + ON decision_vote(user_id); + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_decision_vote_updated_at') THEN + CREATE TRIGGER trg_decision_vote_updated_at + BEFORE UPDATE ON decision_vote + FOR EACH ROW + EXECUTE FUNCTION set_updated_at(); + END IF; +END $$; + +ALTER TABLE decision_vote ENABLE ROW LEVEL SECURITY; +ALTER TABLE decision_vote FORCE ROW LEVEL SECURITY; + +-- Benutzer desselben Gremiums dürfen sich gegenseitig für Abstimmungslisten sehen. +-- Admin/chair behalten den bisherigen erweiterten Zugriff; jeder Benutzer sieht sich weiterhin selbst. +DROP POLICY IF EXISTS user_select ON app_user; +CREATE POLICY user_select ON app_user FOR SELECT USING ( + app_role() IN ('admin','chair') + OR id = app_user_id() + OR EXISTS ( + SELECT 1 + FROM committee_member mine + JOIN committee_member other_member ON other_member.committee_id = mine.committee_id + WHERE mine.user_id = app_user_id() + AND other_member.user_id = app_user.id + ) +); + +INSERT INTO app_permission(permission_key, label, category, description) +VALUES + ('decisions.vote.manage', 'Abstimmungen verwalten', 'Beschlüsse', 'Beschluss-Abstimmungen öffnen, schließen und auswerten') +ON CONFLICT (permission_key) DO UPDATE + SET label = EXCLUDED.label, + category = EXCLUDED.category, + description = EXCLUDED.description; + +INSERT INTO app_role_permission(role_profile_id, permission_key, granted) +SELECT id, 'decisions.vote.manage', TRUE + FROM app_role_profile + WHERE code IN ('admin', 'chair', 'secretary') +ON CONFLICT (role_profile_id, permission_key) DO UPDATE SET granted = TRUE; + +DROP POLICY IF EXISTS decision_modify_policy ON decision; +CREATE POLICY decision_modify_policy ON decision FOR ALL USING ( + app_has_permission('decisions.write') + OR app_has_permission('decisions.vote.manage') + OR responsible_user_id = app_user_id() + OR EXISTS ( + SELECT 1 + FROM meeting m + JOIN committee_member cm ON cm.committee_id = m.committee_id + WHERE m.id = decision.meeting_id + AND cm.user_id = app_user_id() + ) +) WITH CHECK ( + app_has_permission('decisions.write') + OR app_has_permission('decisions.vote.manage') + OR responsible_user_id = app_user_id() + OR EXISTS ( + SELECT 1 + FROM meeting m + JOIN committee_member cm ON cm.committee_id = m.committee_id + WHERE m.id = decision.meeting_id + AND cm.user_id = app_user_id() + ) +); + +DROP POLICY IF EXISTS decision_vote_select_policy ON decision_vote; +DROP POLICY IF EXISTS decision_vote_insert_policy ON decision_vote; +DROP POLICY IF EXISTS decision_vote_update_policy ON decision_vote; +DROP POLICY IF EXISTS decision_vote_delete_policy ON decision_vote; + +CREATE POLICY decision_vote_select_policy ON decision_vote FOR SELECT USING ( + user_id = app_user_id() + OR app_has_permission('decisions.vote.manage') + OR EXISTS ( + SELECT 1 + FROM decision d + JOIN meeting m ON m.id = d.meeting_id + JOIN committee_member cm ON cm.committee_id = m.committee_id + WHERE d.id = decision_vote.decision_id + AND cm.user_id = app_user_id() + ) +); + +CREATE POLICY decision_vote_insert_policy ON decision_vote FOR INSERT WITH CHECK ( + user_id = app_user_id() + AND app_role() <> 'advisor' + AND EXISTS ( + SELECT 1 + FROM decision d + JOIN meeting m ON m.id = d.meeting_id + JOIN committee_member cm ON cm.committee_id = m.committee_id + WHERE d.id = decision_vote.decision_id + AND d.voting_open = TRUE + AND m.status = 'gestartet' + AND cm.user_id = app_user_id() + ) +); + +CREATE POLICY decision_vote_update_policy ON decision_vote FOR UPDATE USING ( + user_id = app_user_id() + AND app_role() <> 'advisor' + AND EXISTS ( + SELECT 1 + FROM decision d + JOIN meeting m ON m.id = d.meeting_id + JOIN committee_member cm ON cm.committee_id = m.committee_id + WHERE d.id = decision_vote.decision_id + AND d.voting_open = TRUE + AND m.status = 'gestartet' + AND cm.user_id = app_user_id() + ) +) WITH CHECK ( + user_id = app_user_id() + AND app_role() <> 'advisor' +); + +CREATE POLICY decision_vote_delete_policy ON decision_vote FOR DELETE USING ( + app_has_permission('decisions.vote.manage') +); + + +CREATE OR REPLACE FUNCTION sync_decision_vote_counts(p_decision_id BIGINT) +RETURNS TABLE(votes_yes INTEGER, votes_no INTEGER, votes_abstain INTEGER) AS $$ +DECLARE + yes_count INTEGER; + no_count INTEGER; + abstain_count INTEGER; +BEGIN + SELECT COUNT(*) FILTER (WHERE vote_value = 'yes')::int, + COUNT(*) FILTER (WHERE vote_value = 'no')::int, + COUNT(*) FILTER (WHERE vote_value = 'abstain')::int + INTO yes_count, no_count, abstain_count + FROM decision_vote + WHERE decision_id = p_decision_id; + + UPDATE decision + SET votes_yes = COALESCE(yes_count, 0), + votes_no = COALESCE(no_count, 0), + votes_abstain = COALESCE(abstain_count, 0), + updated_at = NOW() + WHERE id = p_decision_id; + + RETURN QUERY SELECT COALESCE(yes_count, 0), COALESCE(no_count, 0), COALESCE(abstain_count, 0); +END; +$$ LANGUAGE plpgsql SECURITY DEFINER SET search_path = public; + +GRANT EXECUTE ON FUNCTION sync_decision_vote_counts(BIGINT) TO PUBLIC; + +COMMIT; diff --git a/database/migrations/025_kummerkasten.sql b/database/migrations/025_kummerkasten.sql new file mode 100644 index 0000000..3c92ead --- /dev/null +++ b/database/migrations/025_kummerkasten.sql @@ -0,0 +1,82 @@ +CREATE TABLE IF NOT EXISTS kummerkasten_setting ( + id SMALLINT PRIMARY KEY DEFAULT 1 CHECK (id = 1), + enabled BOOLEAN NOT NULL DEFAULT FALSE, + access_password_hash TEXT, + intro_text TEXT NOT NULL DEFAULT 'Reichen Sie hier vertraulich einen Vorschlag oder ein Anliegen für die Tagesordnung ein.', + target_committee_id BIGINT REFERENCES committee(id) ON DELETE SET NULL, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +INSERT INTO kummerkasten_setting(id) +VALUES (1) +ON CONFLICT (id) DO NOTHING; + +CREATE TABLE IF NOT EXISTS kummerkasten_submission ( + id BIGSERIAL PRIMARY KEY, + agenda_item_id BIGINT REFERENCES meeting_agenda_item(id) ON DELETE SET NULL, + title VARCHAR(255) NOT NULL, + description TEXT, + submitter_name VARCHAR(255), + submitter_contact VARCHAR(255), + target_committee_id BIGINT REFERENCES committee(id) ON DELETE SET NULL, + status VARCHAR(40) NOT NULL DEFAULT 'converted_to_agenda', + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE INDEX IF NOT EXISTS idx_kummerkasten_submission_created_at ON kummerkasten_submission(created_at DESC); +CREATE INDEX IF NOT EXISTS idx_kummerkasten_submission_agenda_item ON kummerkasten_submission(agenda_item_id); + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_kummerkasten_setting_updated_at') THEN + CREATE TRIGGER trg_kummerkasten_setting_updated_at + BEFORE UPDATE ON kummerkasten_setting + FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; +END $$; + +INSERT INTO app_page(page_key, path, label, nav_group, sort_order, description) +VALUES + ('kummerkasten-admin', '/kummerkasten-admin', 'Kummerkasten', 'admin', 245, 'Öffentliche Kummerkasten-Seite konfigurieren') +ON CONFLICT (page_key) DO UPDATE + SET path = EXCLUDED.path, + label = EXCLUDED.label, + nav_group = EXCLUDED.nav_group, + sort_order = EXCLUDED.sort_order, + description = EXCLUDED.description; + +INSERT INTO app_permission(permission_key, label, category, description) +VALUES + ('kummerkasten.configure', 'Kummerkasten konfigurieren', 'Kummerkasten', 'Öffentliche Kummerkasten-Seite einschalten und Kennwort verwalten') +ON CONFLICT (permission_key) DO UPDATE + SET label = EXCLUDED.label, + category = EXCLUDED.category, + description = EXCLUDED.description; + +INSERT INTO app_role_page(role_profile_id, page_key, can_view) +SELECT id, 'kummerkasten-admin', TRUE + FROM app_role_profile + WHERE code = 'admin' +ON CONFLICT (role_profile_id, page_key) DO UPDATE SET can_view = TRUE; + +INSERT INTO app_role_permission(role_profile_id, permission_key, granted) +SELECT id, 'kummerkasten.configure', TRUE + FROM app_role_profile + WHERE code = 'admin' +ON CONFLICT (role_profile_id, permission_key) DO UPDATE SET granted = TRUE; + +ALTER TABLE kummerkasten_setting ENABLE ROW LEVEL SECURITY; +ALTER TABLE kummerkasten_submission ENABLE ROW LEVEL SECURITY; + +DROP POLICY IF EXISTS kummerkasten_setting_select ON kummerkasten_setting; +DROP POLICY IF EXISTS kummerkasten_setting_modify ON kummerkasten_setting; +CREATE POLICY kummerkasten_setting_select ON kummerkasten_setting FOR SELECT USING (app_has_permission('kummerkasten.configure')); +CREATE POLICY kummerkasten_setting_modify ON kummerkasten_setting FOR ALL USING (app_has_permission('kummerkasten.configure')) WITH CHECK (app_has_permission('kummerkasten.configure')); + +DROP POLICY IF EXISTS kummerkasten_submission_select ON kummerkasten_submission; +DROP POLICY IF EXISTS kummerkasten_submission_modify ON kummerkasten_submission; +CREATE POLICY kummerkasten_submission_select ON kummerkasten_submission FOR SELECT USING (app_has_permission('kummerkasten.configure')); +CREATE POLICY kummerkasten_submission_modify ON kummerkasten_submission FOR ALL USING (app_has_permission('kummerkasten.configure')) WITH CHECK (app_has_permission('kummerkasten.configure')); diff --git a/database/migrations/026_remove_kummerkasten_default_duration.sql b/database/migrations/026_remove_kummerkasten_default_duration.sql new file mode 100644 index 0000000..a53b466 --- /dev/null +++ b/database/migrations/026_remove_kummerkasten_default_duration.sql @@ -0,0 +1,2 @@ +ALTER TABLE IF EXISTS kummerkasten_setting + DROP COLUMN IF EXISTS default_duration_minutes; diff --git a/database/migrations/027_remove_kummerkasten_duration_minutes.sql b/database/migrations/027_remove_kummerkasten_duration_minutes.sql new file mode 100644 index 0000000..fa21541 --- /dev/null +++ b/database/migrations/027_remove_kummerkasten_duration_minutes.sql @@ -0,0 +1,2 @@ +ALTER TABLE IF EXISTS kummerkasten_submission + DROP COLUMN IF EXISTS duration_minutes; diff --git a/database/migrations/028_finance_invoice_lines_tax_codes.sql b/database/migrations/028_finance_invoice_lines_tax_codes.sql new file mode 100644 index 0000000..6220e55 --- /dev/null +++ b/database/migrations/028_finance_invoice_lines_tax_codes.sql @@ -0,0 +1,180 @@ +CREATE TABLE IF NOT EXISTS finance_tax_code ( + id BIGSERIAL PRIMARY KEY, + code VARCHAR(160) NOT NULL UNIQUE, + label VARCHAR(220) NOT NULL, + tax_rate_percent NUMERIC(6,3) NOT NULL DEFAULT 0 CHECK (tax_rate_percent >= 0 AND tax_rate_percent <= 100), + is_active BOOLEAN NOT NULL DEFAULT TRUE, + sort_order INTEGER NOT NULL DEFAULT 1000, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS finance_expense_line ( + id BIGSERIAL PRIMARY KEY, + expense_id BIGINT NOT NULL REFERENCES finance_expense(id) ON DELETE CASCADE, + line_no INTEGER NOT NULL DEFAULT 1, + description VARCHAR(255) NOT NULL, + tax_code_id BIGINT REFERENCES finance_tax_code(id) ON DELETE SET NULL, + tax_code_key VARCHAR(160), + net_amount NUMERIC(14,2) NOT NULL DEFAULT 0 CHECK (net_amount >= 0), + tax_rate_percent NUMERIC(6,3) NOT NULL DEFAULT 0 CHECK (tax_rate_percent >= 0 AND tax_rate_percent <= 100), + tax_amount NUMERIC(14,2) NOT NULL DEFAULT 0 CHECK (tax_amount >= 0), + gross_amount NUMERIC(14,2) NOT NULL DEFAULT 0 CHECK (gross_amount >= 0), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + CONSTRAINT finance_expense_line_line_no_unique UNIQUE (expense_id, line_no) +); + +CREATE INDEX IF NOT EXISTS idx_finance_expense_line_expense ON finance_expense_line(expense_id); +CREATE INDEX IF NOT EXISTS idx_finance_expense_line_tax_code ON finance_expense_line(tax_code_id); + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_finance_tax_code_updated_at') THEN + CREATE TRIGGER trg_finance_tax_code_updated_at BEFORE UPDATE ON finance_tax_code FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; + + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_finance_expense_line_updated_at') THEN + CREATE TRIGGER trg_finance_expense_line_updated_at BEFORE UPDATE ON finance_expense_line FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; +END $$; + +INSERT INTO finance_tax_code(code, label, tax_rate_percent, is_active, sort_order) +VALUES + ('Kfz_Betriebskosten_19%', 'Kfz Betriebskosten 19%', 19.000, TRUE, 10), + ('Mietwagen_Betanken_19%', 'Mietwagen Betanken 19%', 19.000, TRUE, 11), + ('Mietwagen_Ausland', 'Mietwagen Ausland', 0.000, TRUE, 12), + ('Bahn_ueber_50_km_19%', 'Bahn ueber 50 km 19%', 19.000, TRUE, 13), + ('Bahn_ueber_50_km', 'Bahn ueber 50 km', 0.000, TRUE, 14), + ('Bahn_unter_50_km_7%', 'Bahn unter 50 km 7%', 7.000, TRUE, 15), + ('Bahn_unter_50_km', 'Bahn unter 50 km', 0.000, TRUE, 16), + ('Bewirtungskosten_19%', 'Bewirtungskosten 19%', 19.000, TRUE, 17), + ('Bewirtungskosten_7%', 'Bewirtungskosten 7%', 7.000, TRUE, 18), + ('Bewirtungskosten', 'Bewirtungskosten', 0.000, TRUE, 19), + ('Bewirtungskosten_30_19%', 'Bewirtungskosten 30 19%', 19.000, TRUE, 20), + ('Bewirtungskosten_30_7%', 'Bewirtungskosten 30 7%', 7.000, TRUE, 21), + ('Bewirtungskosten_30', 'Bewirtungskosten 30', 0.000, TRUE, 22), + ('Buerobedarf_19%', 'Buerobedarf 19%', 19.000, TRUE, 23), + ('Buerobedarf', 'Buerobedarf', 0.000, TRUE, 24), + ('Bus_ueber_50_km_19%', 'Bus ueber 50 km 19%', 19.000, TRUE, 25), + ('Bus_ueber_50_km', 'Bus ueber 50 km', 0.000, TRUE, 26), + ('Bus_unter_50_km_7%', 'Bus unter 50 km 7%', 7.000, TRUE, 27), + ('Bus_unter_50_km', 'Bus unter 50 km', 0.000, TRUE, 28), + ('Flug_19%', 'Flug 19%', 19.000, TRUE, 29), + ('Flug', 'Flug', 0.000, TRUE, 30), + ('Fruehstueck_(Hotel_Pension)_19%', 'Fruehstueck (Hotel Pension) 19%', 19.000, TRUE, 31), + ('Fruehstueck_(Hotel_Pension)', 'Fruehstueck (Hotel Pension)', 0.000, TRUE, 32), + ('Mittagessen_(Hotel_Pension)_19%', 'Mittagessen (Hotel Pension) 19%', 19.000, TRUE, 33), + ('Mittagessen_(Hotel_Pension)', 'Mittagessen (Hotel Pension)', 0.000, TRUE, 34), + ('Abendessen_(Hotel_Pension)_19%', 'Abendessen (Hotel Pension) 19%', 19.000, TRUE, 35), + ('Abendessen_(Hotel_Pension)', 'Abendessen (Hotel Pension)', 0.000, TRUE, 36), + ('Handy_19%', 'Handy 19%', 19.000, TRUE, 37), + ('Handy', 'Handy', 0.000, TRUE, 38), + ('Hotel_Pension_7%', 'Hotel Pension 7%', 7.000, TRUE, 39), + ('Hotel_Pension', 'Hotel Pension', 0.000, TRUE, 40), + ('Internet_19%', 'Internet 19%', 19.000, TRUE, 41), + ('Internet', 'Internet', 0.000, TRUE, 42), + ('Lebensmittel_19%%', 'Lebensmittel 19%%', 19.000, TRUE, 43), + ('Lebensmittel_7%', 'Lebensmittel 7%', 7.000, TRUE, 44), + ('Lebensmittel', 'Lebensmittel', 0.000, TRUE, 45), + ('Mietwagen_19%', 'Mietwagen 19%', 19.000, TRUE, 46), + ('Mietwagen', 'Mietwagen', 0.000, TRUE, 47), + ('Mietwohnung_Appartement_19%', 'Mietwohnung Appartement 19%', 19.000, TRUE, 48), + ('Mietwohnung_Appartement', 'Mietwohnung Appartement', 0.000, TRUE, 49), + ('Parkgebuehren_19%', 'Parkgebuehren 19%', 19.000, TRUE, 50), + ('Parkgebuehren', 'Parkgebuehren', 0.000, TRUE, 51), + ('Porto_19%', 'Porto 19%', 19.000, TRUE, 52), + ('Porto', 'Porto', 0.000, TRUE, 53), + ('Reservierung_19%', 'Reservierung 19%', 19.000, TRUE, 54), + ('Reservierung', 'Reservierung', 0.000, TRUE, 55), + ('Sonstiges_(19_%_MwSt.)', 'Sonstiges (19 % MwSt.)', 19.000, TRUE, 56), + ('Sonstiges_(7_%_MwSt.)', 'Sonstiges (7 % MwSt.)', 7.000, TRUE, 57), + ('Sonstiges', 'Sonstiges', 0.000, TRUE, 58), + ('Tankbelege_19%', 'Tankbelege 19%', 19.000, TRUE, 59), + ('Tankbelege', 'Tankbelege', 0.000, TRUE, 60), + ('Taxi_ueber_50_km_19%', 'Taxi ueber 50 km 19%', 19.000, TRUE, 61), + ('Taxi_ueber_50_km', 'Taxi ueber 50 km', 0.000, TRUE, 62), + ('Taxi_unter_50_km_7%', 'Taxi unter 50 km 7%', 7.000, TRUE, 63), + ('Taxi_unter_50_km', 'Taxi unter 50 km', 0.000, TRUE, 64), + ('Telefonkosten_19%', 'Telefonkosten 19%', 19.000, TRUE, 65), + ('Telefonkosten', 'Telefonkosten', 0.000, TRUE, 66), + ('Abendessen_(Hotel/Pension)_19%', 'Abendessen (Hotel/Pension) 19%', 19.000, TRUE, 67) +ON CONFLICT (code) DO UPDATE + SET label = EXCLUDED.label, + tax_rate_percent = EXCLUDED.tax_rate_percent, + sort_order = EXCLUDED.sort_order, + updated_at = NOW(); + + + +INSERT INTO finance_expense_line( + expense_id, line_no, description, tax_code_key, + net_amount, tax_rate_percent, tax_amount, gross_amount +) +SELECT e.id, + 1, + COALESCE(NULLIF(e.cost_category, ''), e.title, 'Rechnungsposition'), + e.cost_category, + e.net_amount, + e.tax_rate_percent, + e.tax_amount, + e.gross_amount + FROM finance_expense e + WHERE NOT EXISTS ( + SELECT 1 FROM finance_expense_line l WHERE l.expense_id = e.id + ); + +INSERT INTO app_page(page_key, path, label, nav_group, sort_order, description) +VALUES ('finance-tax-codes', '/finance-tax-codes', 'MwSt.-Sätze Finanzen', 'admin', 55, 'Kostenarten und MwSt.-Sätze für Rechnungspositionen pflegen') +ON CONFLICT (page_key) DO UPDATE + SET path = EXCLUDED.path, + label = EXCLUDED.label, + nav_group = EXCLUDED.nav_group, + sort_order = EXCLUDED.sort_order, + description = EXCLUDED.description; + +INSERT INTO app_permission(permission_key, label, category, description) +VALUES + ('finance.tax_codes', 'MwSt.-Sätze verwalten', 'Finanzen', 'Kostenarten und MwSt.-Sätze für Finanz-Rechnungspositionen pflegen') +ON CONFLICT (permission_key) DO UPDATE + SET label = EXCLUDED.label, + category = EXCLUDED.category, + description = EXCLUDED.description; + +INSERT INTO app_role_page(role_profile_id, page_key, can_view) +SELECT rp.id, 'finance-tax-codes', TRUE + FROM app_role_profile rp + WHERE rp.code IN ('admin','chair') +ON CONFLICT (role_profile_id, page_key) DO UPDATE SET can_view = TRUE; + +INSERT INTO app_role_permission(role_profile_id, permission_key, granted) +SELECT rp.id, 'finance.tax_codes', TRUE + FROM app_role_profile rp + WHERE rp.code IN ('admin','chair') +ON CONFLICT (role_profile_id, permission_key) DO UPDATE SET granted = TRUE; + +ALTER TABLE finance_tax_code ENABLE ROW LEVEL SECURITY; +ALTER TABLE finance_expense_line ENABLE ROW LEVEL SECURITY; + +DROP POLICY IF EXISTS finance_tax_code_select ON finance_tax_code; +DROP POLICY IF EXISTS finance_tax_code_modify ON finance_tax_code; +CREATE POLICY finance_tax_code_select ON finance_tax_code FOR SELECT USING ( + app_has_permission('finance.read') OR app_has_permission('finance.tax_codes') +); +CREATE POLICY finance_tax_code_modify ON finance_tax_code FOR ALL USING ( + app_has_permission('finance.tax_codes') OR app_has_permission('finance.budget') +) WITH CHECK (app_has_permission('finance.tax_codes') OR app_has_permission('finance.budget')); + +DROP POLICY IF EXISTS finance_expense_line_select ON finance_expense_line; +DROP POLICY IF EXISTS finance_expense_line_modify ON finance_expense_line; +CREATE POLICY finance_expense_line_select ON finance_expense_line FOR SELECT USING ( + app_has_permission('finance.read') +); +CREATE POLICY finance_expense_line_modify ON finance_expense_line FOR ALL USING ( + app_has_permission('finance.write') +) WITH CHECK (app_has_permission('finance.write')); + +GRANT SELECT, INSERT, UPDATE, DELETE ON finance_tax_code, finance_expense_line TO br_app; +GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO br_app; diff --git a/database/migrations/029_department_catalog.sql b/database/migrations/029_department_catalog.sql new file mode 100644 index 0000000..9fc1249 --- /dev/null +++ b/database/migrations/029_department_catalog.sql @@ -0,0 +1,95 @@ +CREATE TABLE IF NOT EXISTS department_catalog ( + id BIGSERIAL PRIMARY KEY, + code VARCHAR(80) NOT NULL UNIQUE, + label VARCHAR(120) NOT NULL, + description TEXT, + sort_order INTEGER NOT NULL DEFAULT 1000, + is_active BOOLEAN NOT NULL DEFAULT TRUE, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_department_catalog_updated_at') THEN + CREATE TRIGGER trg_department_catalog_updated_at + BEFORE UPDATE ON department_catalog + FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; +END $$; + +INSERT INTO department_catalog(code, label, sort_order) +VALUES + ('it', 'IT', 10), + ('personal', 'Personal', 20), + ('fertigung', 'Fertigung', 30), + ('qualitaet', 'Qualität', 40), + ('logistik', 'Logistik', 50), + ('einkauf', 'Einkauf', 60), + ('verwaltung', 'Verwaltung', 70), + ('sonstiges', 'Sonstiges', 999) +ON CONFLICT (code) DO UPDATE + SET label = EXCLUDED.label, + sort_order = EXCLUDED.sort_order, + is_active = TRUE; + +INSERT INTO department_catalog(code, label, sort_order) +SELECT DISTINCT + lower(regexp_replace(regexp_replace(trim(department), '[^[:alnum:]]+', '_', 'g'), '^_+|_+$', '', 'g')) AS code, + trim(department) AS label, + 500 + FROM br_case + WHERE department IS NOT NULL + AND trim(department) <> '' + AND NOT EXISTS ( + SELECT 1 + FROM department_catalog d + WHERE d.code = lower(regexp_replace(regexp_replace(trim(br_case.department), '[^[:alnum:]]+', '_', 'g'), '^_+|_+$', '', 'g')) + OR d.code = trim(br_case.department) + ) +ON CONFLICT (code) DO NOTHING; + +INSERT INTO app_page(page_key, path, label, nav_group, sort_order, description) +VALUES ('departments', '/departments', 'Abteilungen', 'admin', 215, 'Abteilungen für Vorgänge pflegen') +ON CONFLICT (page_key) DO UPDATE + SET path = EXCLUDED.path, + label = EXCLUDED.label, + nav_group = EXCLUDED.nav_group, + sort_order = EXCLUDED.sort_order, + description = EXCLUDED.description; + +INSERT INTO app_permission(permission_key, label, category, description) +VALUES ('departments.manage', 'Abteilungen verwalten', 'Administration', 'Abteilungen anlegen, bearbeiten und deaktivieren/löschen') +ON CONFLICT (permission_key) DO UPDATE + SET label = EXCLUDED.label, + category = EXCLUDED.category, + description = EXCLUDED.description; + +INSERT INTO app_role_page(role_profile_id, page_key, can_view) +SELECT id, 'departments', TRUE + FROM app_role_profile + WHERE code IN ('admin', 'chair') +ON CONFLICT (role_profile_id, page_key) DO UPDATE SET can_view = TRUE; + +INSERT INTO app_role_permission(role_profile_id, permission_key, granted) +SELECT id, 'departments.manage', TRUE + FROM app_role_profile + WHERE code IN ('admin', 'chair') +ON CONFLICT (role_profile_id, permission_key) DO UPDATE SET granted = TRUE; + +ALTER TABLE department_catalog ENABLE ROW LEVEL SECURITY; + +DROP POLICY IF EXISTS department_catalog_select ON department_catalog; +DROP POLICY IF EXISTS department_catalog_modify ON department_catalog; +CREATE POLICY department_catalog_select ON department_catalog FOR SELECT USING ( + app_can_view_page('departments') + OR app_has_permission('departments.manage') + OR app_has_permission('cases.write') + OR app_can_view_page('cases') +); +CREATE POLICY department_catalog_modify ON department_catalog FOR ALL USING (app_has_permission('departments.manage')) WITH CHECK (app_has_permission('departments.manage')); + +GRANT SELECT, INSERT, UPDATE, DELETE ON department_catalog TO br_app; +GRANT USAGE, SELECT ON SEQUENCE department_catalog_id_seq TO br_app; diff --git a/database/migrations/030_conf_level_oeffentlich.sql b/database/migrations/030_conf_level_oeffentlich.sql new file mode 100644 index 0000000..fd78a80 --- /dev/null +++ b/database/migrations/030_conf_level_oeffentlich.sql @@ -0,0 +1,12 @@ +DO $$ +BEGIN + IF NOT EXISTS ( + SELECT 1 + FROM pg_enum e + JOIN pg_type t ON t.oid = e.enumtypid + WHERE t.typname = 'conf_level' + AND e.enumlabel = 'oeffentlich' + ) THEN + ALTER TYPE conf_level ADD VALUE 'oeffentlich'; + END IF; +END $$; diff --git a/database/migrations/031_document_categories_public_documents.sql b/database/migrations/031_document_categories_public_documents.sql new file mode 100644 index 0000000..6eee397 --- /dev/null +++ b/database/migrations/031_document_categories_public_documents.sql @@ -0,0 +1,152 @@ +CREATE TABLE IF NOT EXISTS document_category_catalog ( + id BIGSERIAL PRIMARY KEY, + code VARCHAR(80) NOT NULL UNIQUE, + label VARCHAR(120) NOT NULL, + description TEXT, + sort_order INTEGER NOT NULL DEFAULT 1000, + is_active BOOLEAN NOT NULL DEFAULT TRUE, + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +CREATE TABLE IF NOT EXISTS public_document_setting ( + id INTEGER PRIMARY KEY DEFAULT 1, + enabled BOOLEAN NOT NULL DEFAULT FALSE, + intro_text TEXT NOT NULL DEFAULT 'Vom Betriebsrat freigegebene Dokumente', + created_by BIGINT REFERENCES app_user(id), + updated_by BIGINT REFERENCES app_user(id), + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + CONSTRAINT public_document_setting_singleton CHECK (id = 1) +); + +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_document_category_catalog_updated_at') THEN + CREATE TRIGGER trg_document_category_catalog_updated_at + BEFORE UPDATE ON document_category_catalog + FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; + + IF NOT EXISTS (SELECT 1 FROM pg_trigger WHERE tgname = 'trg_public_document_setting_updated_at') THEN + CREATE TRIGGER trg_public_document_setting_updated_at + BEFORE UPDATE ON public_document_setting + FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; +END $$; + +ALTER TABLE document_item + ADD COLUMN IF NOT EXISTS document_category_id BIGINT REFERENCES document_category_catalog(id); + +INSERT INTO document_category_catalog(code, label, description, sort_order) +VALUES + ('allgemein', 'Allgemein', 'Allgemeine Dokumente', 10), + ('protokoll', 'Protokoll', 'Sitzungs- und Gesprächsprotokolle', 20), + ('beschluss', 'Beschluss', 'Beschlussbezogene Dokumente', 30), + ('rechnung', 'Rechnung', 'Rechnungen und Belege', 40), + ('vertrag', 'Vertrag', 'Verträge und Vereinbarungen', 50), + ('vorlage', 'Vorlage', 'Vorlagen und Muster', 60), + ('oeffentlich', 'Öffentlich', 'Öffentlich freigegebene Dokumente', 70), + ('sonstiges', 'Sonstiges', 'Sonstige Dokumente', 999) +ON CONFLICT (code) DO UPDATE + SET label = EXCLUDED.label, + description = EXCLUDED.description, + sort_order = EXCLUDED.sort_order, + is_active = TRUE; + +UPDATE document_item d + SET document_category_id = c.id + FROM document_category_catalog c + WHERE d.document_category_id IS NULL + AND c.code = CASE + WHEN lower(COALESCE(d.document_type, '')) LIKE '%protokoll%' THEN 'protokoll' + WHEN lower(COALESCE(d.document_type, '')) LIKE '%beschluss%' THEN 'beschluss' + WHEN lower(COALESCE(d.document_type, '')) LIKE '%rechnung%' OR lower(COALESCE(d.document_type, '')) LIKE '%beleg%' THEN 'rechnung' + WHEN lower(COALESCE(d.document_type, '')) LIKE '%vertrag%' THEN 'vertrag' + WHEN lower(COALESCE(d.document_type, '')) LIKE '%vorlage%' THEN 'vorlage' + ELSE 'allgemein' + END; + +INSERT INTO public_document_setting(id, enabled, intro_text) +VALUES (1, FALSE, 'Vom Betriebsrat freigegebene Dokumente') +ON CONFLICT (id) DO NOTHING; + +INSERT INTO app_page(page_key, path, label, nav_group, sort_order, description) +VALUES + ('document_categories', '/document-categories', 'Dokumentenkategorien', 'admin', 216, 'Kategorien für Dokumente pflegen'), + ('public_documents_admin', '/public-documents-admin', 'Öffentliche Dokumente', 'admin', 217, 'Öffentliche Dokumentenseite konfigurieren') +ON CONFLICT (page_key) DO UPDATE + SET path = EXCLUDED.path, + label = EXCLUDED.label, + nav_group = EXCLUDED.nav_group, + sort_order = EXCLUDED.sort_order, + description = EXCLUDED.description; + +INSERT INTO app_permission(permission_key, label, category, description) +VALUES + ('document_categories.manage', 'Dokumentenkategorien verwalten', 'Administration', 'Dokumentenkategorien anlegen, bearbeiten und deaktivieren/löschen'), + ('public_documents.configure', 'Öffentliche Dokumente konfigurieren', 'Administration', 'Öffentliche Dokumentenseite ein- und ausschalten sowie Beschreibung pflegen') +ON CONFLICT (permission_key) DO UPDATE + SET label = EXCLUDED.label, + category = EXCLUDED.category, + description = EXCLUDED.description; + +INSERT INTO app_role_page(role_profile_id, page_key, can_view) +SELECT id, page_key, TRUE + FROM app_role_profile + CROSS JOIN (VALUES ('document_categories'), ('public_documents_admin')) AS p(page_key) + WHERE code IN ('admin', 'chair') +ON CONFLICT (role_profile_id, page_key) DO UPDATE SET can_view = TRUE; + +INSERT INTO app_role_permission(role_profile_id, permission_key, granted) +SELECT id, permission_key, TRUE + FROM app_role_profile + CROSS JOIN (VALUES ('document_categories.manage'), ('public_documents.configure')) AS p(permission_key) + WHERE code IN ('admin', 'chair') +ON CONFLICT (role_profile_id, permission_key) DO UPDATE SET granted = TRUE; + +CREATE OR REPLACE FUNCTION app_can_read_document(target_document_id BIGINT) RETURNS BOOLEAN AS $$ +DECLARE + row document_item%ROWTYPE; +BEGIN + SELECT * INTO row FROM document_item WHERE id = target_document_id AND deleted_at IS NULL; + IF NOT FOUND THEN RETURN FALSE; END IF; + IF row.scan_status <> 'clean' THEN RETURN FALSE; END IF; + + IF row.confidentiality_level = 'oeffentlich' THEN RETURN TRUE; END IF; + IF app_role() IN ('admin', 'chair') OR app_has_permission('documents.read.all') THEN RETURN TRUE; END IF; + IF row.uploaded_by = app_user_id() THEN RETURN TRUE; END IF; + IF row.case_id IS NOT NULL AND app_can_read_case(row.case_id) THEN RETURN TRUE; END IF; + IF app_user_has_document_team_access(row.id, FALSE) THEN RETURN TRUE; END IF; + IF row.case_id IS NULL AND row.decision_id IS NULL AND row.confidentiality_level = 'intern' AND app_has_permission('documents.read.released') THEN RETURN TRUE; END IF; + + RETURN FALSE; +END; +$$ LANGUAGE plpgsql STABLE SECURITY DEFINER SET search_path = public; + +ALTER TABLE document_category_catalog ENABLE ROW LEVEL SECURITY; +ALTER TABLE public_document_setting ENABLE ROW LEVEL SECURITY; + +DROP POLICY IF EXISTS document_category_catalog_select ON document_category_catalog; +DROP POLICY IF EXISTS document_category_catalog_modify ON document_category_catalog; +CREATE POLICY document_category_catalog_select ON document_category_catalog FOR SELECT USING ( + is_active = TRUE + OR app_can_view_page('documents') + OR app_can_view_page('document_categories') + OR app_has_permission('documents.write') + OR app_has_permission('document_categories.manage') +); +CREATE POLICY document_category_catalog_modify ON document_category_catalog FOR ALL USING (app_has_permission('document_categories.manage')) WITH CHECK (app_has_permission('document_categories.manage')); + +DROP POLICY IF EXISTS public_document_setting_select ON public_document_setting; +DROP POLICY IF EXISTS public_document_setting_modify ON public_document_setting; +CREATE POLICY public_document_setting_select ON public_document_setting FOR SELECT USING (TRUE); +CREATE POLICY public_document_setting_modify ON public_document_setting FOR ALL USING (app_has_permission('public_documents.configure')) WITH CHECK (app_has_permission('public_documents.configure')); + +CREATE INDEX IF NOT EXISTS idx_document_item_category ON document_item(document_category_id); +CREATE INDEX IF NOT EXISTS idx_document_item_public ON document_item(confidentiality_level, scan_status, deleted_at); + +GRANT SELECT, INSERT, UPDATE, DELETE ON document_category_catalog, public_document_setting TO br_app; +GRANT USAGE, SELECT ON SEQUENCE document_category_catalog_id_seq TO br_app; diff --git a/database/migrations/032_public_documents_password.sql b/database/migrations/032_public_documents_password.sql new file mode 100644 index 0000000..38b8d8b --- /dev/null +++ b/database/migrations/032_public_documents_password.sql @@ -0,0 +1,8 @@ +ALTER TABLE public_document_setting + ADD COLUMN IF NOT EXISTS access_password_hash TEXT; + +COMMENT ON COLUMN public_document_setting.access_password_hash IS 'Argon2-Hash des globalen Kennworts für die fast öffentliche Dokumentenseite.'; + +UPDATE app_permission + SET description = 'Öffentliche Dokumentenseite ein- und ausschalten, Kennwort setzen sowie Beschreibung pflegen' + WHERE permission_key = 'public_documents.configure'; diff --git a/database/migrations/033_public_documents_intro_default.sql b/database/migrations/033_public_documents_intro_default.sql new file mode 100644 index 0000000..92aa175 --- /dev/null +++ b/database/migrations/033_public_documents_intro_default.sql @@ -0,0 +1,4 @@ +UPDATE public_document_setting + SET intro_text = 'Vom Betriebsrat freigegebene Dokumente' + WHERE id = 1 + AND intro_text = 'Hier finden Sie öffentlich freigegebene Dokumente.'; diff --git a/database/migrations/034_comment_protocol_toggle.sql b/database/migrations/034_comment_protocol_toggle.sql new file mode 100644 index 0000000..d0e3ab1 --- /dev/null +++ b/database/migrations/034_comment_protocol_toggle.sql @@ -0,0 +1,6 @@ +ALTER TABLE comment_item + ADD COLUMN IF NOT EXISTS include_in_protocol BOOLEAN NOT NULL DEFAULT FALSE; + +CREATE INDEX IF NOT EXISTS idx_comment_item_agenda_protocol + ON comment_item(entity_type, entity_id, include_in_protocol) + WHERE deleted_at IS NULL; diff --git a/database/migrations/035_meeting_protocol_attendees.sql b/database/migrations/035_meeting_protocol_attendees.sql new file mode 100644 index 0000000..d3013e3 --- /dev/null +++ b/database/migrations/035_meeting_protocol_attendees.sql @@ -0,0 +1,18 @@ +UPDATE template_item + SET content = CASE + WHEN content LIKE '%{{quorum_statement}}%' THEN + REPLACE(content, '{{quorum_statement}}', '{{quorum_statement}} +{{attendees_block}}') + WHEN content LIKE '%## Protokollnotizen%' THEN + REPLACE(content, '## Protokollnotizen', '{{attendees_block}} + +## Protokollnotizen') + ELSE + content || ' + +{{attendees_block}}' + END, + version_label = CASE WHEN version_label IN ('v1', 'v2') THEN 'v3' ELSE version_label END, + updated_at = NOW() + WHERE category = 'meeting_protocol' + AND content NOT LIKE '%{{attendees_block}}%'; diff --git a/database/migrations/036_agenda_item_return_workflow.sql b/database/migrations/036_agenda_item_return_workflow.sql new file mode 100644 index 0000000..eaa8833 --- /dev/null +++ b/database/migrations/036_agenda_item_return_workflow.sql @@ -0,0 +1,49 @@ +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS status VARCHAR(30) NOT NULL DEFAULT 'offen'; + +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS returned_from_meeting_id BIGINT REFERENCES meeting(id) ON DELETE SET NULL; + +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS returned_at TIMESTAMPTZ; + +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS returned_by BIGINT REFERENCES app_user(id) ON DELETE SET NULL; + +DO $$ +BEGIN + IF NOT EXISTS ( + SELECT 1 + FROM pg_constraint + WHERE conname = 'chk_meeting_agenda_item_status' + AND conrelid = 'meeting_agenda_item'::regclass + ) THEN + ALTER TABLE meeting_agenda_item + ADD CONSTRAINT chk_meeting_agenda_item_status + CHECK (status IN ('offen', 'in_sitzung', 'rueckfrage', 'klaerung', 'erledigt')); + END IF; +END $$; + +UPDATE meeting_agenda_item + SET status = CASE WHEN meeting_id IS NULL THEN 'offen' ELSE 'in_sitzung' END + WHERE status IS NULL + OR status NOT IN ('offen', 'in_sitzung', 'rueckfrage', 'klaerung', 'erledigt') + OR (meeting_id IS NOT NULL AND status = 'offen'); + +CREATE TABLE IF NOT EXISTS meeting_agenda_item_return_log ( + id BIGSERIAL PRIMARY KEY, + agenda_item_id BIGINT NOT NULL REFERENCES meeting_agenda_item(id) ON DELETE CASCADE, + meeting_id BIGINT NOT NULL REFERENCES meeting(id) ON DELETE CASCADE, + agenda_number_at_return VARCHAR(20), + title_at_return VARCHAR(255) NOT NULL, + return_type VARCHAR(30) NOT NULL DEFAULT 'rueckfrage', + remark TEXT NOT NULL, + include_in_protocol BOOLEAN NOT NULL DEFAULT TRUE, + returned_by BIGINT REFERENCES app_user(id) ON DELETE SET NULL, + returned_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + CONSTRAINT chk_meeting_agenda_item_return_type CHECK (return_type IN ('rueckfrage', 'klaerung', 'bemerkung')) +); + +CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_status ON meeting_agenda_item(status); +CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_return_log_meeting ON meeting_agenda_item_return_log(meeting_id, returned_at DESC); +CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_return_log_agenda ON meeting_agenda_item_return_log(agenda_item_id, returned_at DESC); diff --git a/database/migrations/037_agenda_item_parent_child_followups.sql b/database/migrations/037_agenda_item_parent_child_followups.sql new file mode 100644 index 0000000..9a4f651 --- /dev/null +++ b/database/migrations/037_agenda_item_parent_child_followups.sql @@ -0,0 +1,45 @@ +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS parent_agenda_item_id BIGINT REFERENCES meeting_agenda_item(id) ON DELETE SET NULL; + +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS root_agenda_item_id BIGINT REFERENCES meeting_agenda_item(id) ON DELETE SET NULL; + +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS follow_up_type VARCHAR(30); + +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS follow_up_note TEXT; + +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS follow_up_created_from_meeting_id BIGINT REFERENCES meeting(id) ON DELETE SET NULL; + +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS follow_up_created_from_agenda_item_id BIGINT REFERENCES meeting_agenda_item(id) ON DELETE SET NULL; + +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS follow_up_created_at TIMESTAMPTZ; + +ALTER TABLE meeting_agenda_item + ADD COLUMN IF NOT EXISTS follow_up_created_by BIGINT REFERENCES app_user(id) ON DELETE SET NULL; + +DO $$ +BEGIN + IF NOT EXISTS ( + SELECT 1 + FROM pg_constraint + WHERE conname = 'chk_meeting_agenda_item_follow_up_type' + AND conrelid = 'meeting_agenda_item'::regclass + ) THEN + ALTER TABLE meeting_agenda_item + ADD CONSTRAINT chk_meeting_agenda_item_follow_up_type + CHECK (follow_up_type IS NULL OR follow_up_type IN ('rueckfrage', 'klaerung', 'bemerkung')); + END IF; +END $$; + +ALTER TABLE meeting_agenda_item_return_log + ADD COLUMN IF NOT EXISTS follow_up_agenda_item_id BIGINT REFERENCES meeting_agenda_item(id) ON DELETE SET NULL; + +CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_parent ON meeting_agenda_item(parent_agenda_item_id); +CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_root ON meeting_agenda_item(root_agenda_item_id); +CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_follow_up_source ON meeting_agenda_item(follow_up_created_from_meeting_id, follow_up_created_from_agenda_item_id); +CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_return_log_follow_up ON meeting_agenda_item_return_log(follow_up_agenda_item_id); diff --git a/database/migrations/038_agenda_item_followup_klaerung.sql b/database/migrations/038_agenda_item_followup_klaerung.sql new file mode 100644 index 0000000..50d96a4 --- /dev/null +++ b/database/migrations/038_agenda_item_followup_klaerung.sql @@ -0,0 +1,23 @@ +-- Erweitert den Parent/Child-Folge-TOP-Workflow um den Typ "Klärung". +-- Diese Migration ist für bestehende Datenbanken nötig, in denen 036/037 bereits ausgeführt wurden. + +ALTER TABLE meeting_agenda_item + DROP CONSTRAINT IF EXISTS chk_meeting_agenda_item_status; + +ALTER TABLE meeting_agenda_item + ADD CONSTRAINT chk_meeting_agenda_item_status + CHECK (status IN ('offen', 'in_sitzung', 'rueckfrage', 'klaerung', 'erledigt')); + +ALTER TABLE meeting_agenda_item_return_log + DROP CONSTRAINT IF EXISTS chk_meeting_agenda_item_return_type; + +ALTER TABLE meeting_agenda_item_return_log + ADD CONSTRAINT chk_meeting_agenda_item_return_type + CHECK (return_type IN ('rueckfrage', 'klaerung', 'bemerkung')); + +ALTER TABLE meeting_agenda_item + DROP CONSTRAINT IF EXISTS chk_meeting_agenda_item_follow_up_type; + +ALTER TABLE meeting_agenda_item + ADD CONSTRAINT chk_meeting_agenda_item_follow_up_type + CHECK (follow_up_type IS NULL OR follow_up_type IN ('rueckfrage', 'klaerung', 'bemerkung')); diff --git a/database/migrations/039_template_html_editor_assets.sql b/database/migrations/039_template_html_editor_assets.sql new file mode 100644 index 0000000..9005768 --- /dev/null +++ b/database/migrations/039_template_html_editor_assets.sql @@ -0,0 +1,80 @@ +CREATE TABLE IF NOT EXISTS template_asset ( + id BIGSERIAL PRIMARY KEY, + title VARCHAR(255) NOT NULL, + description TEXT, + file_name VARCHAR(255) NOT NULL, + storage_path TEXT NOT NULL, + storage_provider VARCHAR(30) NOT NULL DEFAULT 'local', + mime_type VARCHAR(120) NOT NULL, + size_bytes BIGINT NOT NULL DEFAULT 0, + sha256_hash VARCHAR(64) NOT NULL, + uploaded_by BIGINT REFERENCES app_user(id), + is_active BOOLEAN NOT NULL DEFAULT TRUE, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); + +ALTER TABLE template_item + ADD COLUMN IF NOT EXISTS content_format VARCHAR(20) NOT NULL DEFAULT 'markdown'; + +ALTER TABLE template_item + ADD COLUMN IF NOT EXISTS logo_asset_id BIGINT; + +DO $$ +BEGIN + IF NOT EXISTS ( + SELECT 1 + FROM pg_constraint + WHERE conname = 'template_item_logo_asset_id_fkey' + ) THEN + ALTER TABLE template_item + ADD CONSTRAINT template_item_logo_asset_id_fkey + FOREIGN KEY (logo_asset_id) REFERENCES template_asset(id) ON DELETE SET NULL; + END IF; +END$$; + +DO $$ +BEGIN + IF NOT EXISTS ( + SELECT 1 + FROM pg_constraint + WHERE conname = 'template_item_content_format_check' + ) THEN + ALTER TABLE template_item + ADD CONSTRAINT template_item_content_format_check + CHECK (content_format IN ('markdown', 'html')); + END IF; +END$$; + +CREATE INDEX IF NOT EXISTS idx_template_item_logo_asset_id ON template_item(logo_asset_id); +CREATE INDEX IF NOT EXISTS idx_template_asset_active ON template_asset(is_active, created_at DESC); + +DO $$ +BEGIN + IF NOT EXISTS ( + SELECT 1 FROM pg_trigger WHERE tgname = 'trg_template_asset_updated_at' + ) THEN + CREATE TRIGGER trg_template_asset_updated_at + BEFORE UPDATE ON template_asset + FOR EACH ROW EXECUTE FUNCTION set_updated_at(); + END IF; +END$$; + +ALTER TABLE template_asset ENABLE ROW LEVEL SECURITY; +ALTER TABLE template_asset FORCE ROW LEVEL SECURITY; + +DROP POLICY IF EXISTS template_asset_select_policy ON template_asset; +DROP POLICY IF EXISTS template_asset_modify_policy ON template_asset; +CREATE POLICY template_asset_select_policy ON template_asset + FOR SELECT USING (app_can_view_page('templates')); +CREATE POLICY template_asset_modify_policy ON template_asset + FOR ALL USING (app_has_permission('templates.write')) + WITH CHECK (app_has_permission('templates.write')); + +UPDATE template_item + SET content = '{{template_logo}} + +' || content, + updated_at = NOW() + WHERE category = 'meeting_protocol' + AND content NOT LIKE '%{{template_logo}}%'; diff --git a/database/migrations/040_formular_editor_navigation.sql b/database/migrations/040_formular_editor_navigation.sql new file mode 100644 index 0000000..cbb5da4 --- /dev/null +++ b/database/migrations/040_formular_editor_navigation.sql @@ -0,0 +1,4 @@ +UPDATE app_page + SET label = 'Vorlagen / Formular-Editor', + description = 'Vorlagenverwaltung und HTML-/Formular-Editor' + WHERE page_key = 'templates'; diff --git a/docker-compose.local.yml b/docker-compose.local.yml new file mode 100644 index 0000000..b7b13d9 --- /dev/null +++ b/docker-compose.local.yml @@ -0,0 +1,52 @@ +version: '3.9' +services: + postgres: + image: postgres:15 + environment: + POSTGRES_DB: br_office + POSTGRES_USER: br_app + POSTGRES_PASSWORD: change_me + ports: ["5432:5432"] + volumes: + - pgdata:/var/lib/postgresql/data + + frontend: + image: node:20 + working_dir: /app + command: sh -c "npm install && npm run dev -- --host 0.0.0.0" + volumes: + - ./frontend:/app + ports: ["5173:5173"] + environment: + VITE_API_BASE_URL: http://localhost:8080/api + + backend: + image: node:20 + working_dir: /app + command: sh -c "npm install && npm run dev" + volumes: + - ./backend:/app + - ./data/uploads:/app/uploads + ports: ["8080:8080"] + environment: + DATABASE_URL: postgres://br_app:change_me@postgres:5432/br_office + CORS_ORIGIN: http://localhost:5173 + RP_ID: localhost + RP_ORIGIN: http://localhost:5173 + JWT_ACCESS_SECRET: change-me-access + JWT_REFRESH_SECRET: change-me-refresh + COOKIE_SECURE: "false" + UPLOAD_DIR: /app/uploads + FILE_ENCRYPTION_ENABLED: "true" + FILE_ENCRYPTION_KEY: please-change-this-encryption-key + SMTP_HOST: smtp.example.com + SMTP_PORT: "587" + SMTP_USER: smtp-user@example.com + SMTP_PASS: please-change-this-password + SMTP_FROM: BR Office + SMTP_SECURE: "false" + SMTP_REQUIRE_TLS: "true" + depends_on: [postgres] + +volumes: + pgdata: diff --git a/docs/DEPLOYMENT.md b/docs/DEPLOYMENT.md new file mode 100644 index 0000000..18e2734 --- /dev/null +++ b/docs/DEPLOYMENT.md @@ -0,0 +1,22 @@ +# Deployment + +## Lokal +1. PostgreSQL 15+ bereitstellen +2. Migrationen aus `database/migrations` anwenden +3. `.env.example` nach `.env` kopieren und Werte setzen +4. Backend: + - `cd backend` + - `npm install` + - `npm run dev` +5. Frontend: + - `cd frontend` + - `npm install` + - `npm run dev` + +## Produktion +- Reverse Proxy vor Backend/Frontend +- TLS strikt erzwingen +- PostgreSQL getrennt betreiben +- Upload-Storage getrennt vom App-Container +- ClamAV/clamd als separater Dienst +- DB-Backups, PITR und Restore-Tests einplanen diff --git a/docs/SECURITY.md b/docs/SECURITY.md new file mode 100644 index 0000000..72c8756 --- /dev/null +++ b/docs/SECURITY.md @@ -0,0 +1,23 @@ +# Security + +## Authentisierung +- Passwort-Login mit Argon2 +- Zweiter Faktor per TOTP oder WebAuthn +- MFA für privilegierte Rollen erzwungen +- Refresh-Token in HttpOnly-Cookie + +## Autorisierung +- Rollenprüfung im Backend +- PostgreSQL Row-Level Security als zweite Schutzschicht +- getrennte DB-Rollen für App, Migration, Reporting + +## Dokumentensicherheit +- Virenscan-Hook +- SHA-256 Hash je Datei +- Download nur bei `scan_status = clean` +- Audit-Eintrag bei Upload/Download + +## Datenschutz +- vertrauliche Vorgänge per RLS eingeschränkt +- optionale Feldmaskierung via View `v_case_masked` +- Soft-Delete für fachliche Objekte diff --git a/frontend/dist/assets/br-office-logo-DlHO8fHZ.png b/frontend/dist/assets/br-office-logo-DlHO8fHZ.png new file mode 100644 index 0000000000000000000000000000000000000000..b69dc8f77c628a02e7c92586cff74424e9c32a3e GIT binary patch literal 798090 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

M`S-q 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

B!Z-Mo%-&%*io{lj#}1 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≺J{v*O3muLomzNVXII=?Zm0-L<9*|F&IHchxD@#J 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 %Q~yP{*T!8CR^xtStXfF|%Sd#4@lHadtCnGVvS` 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%0DLW++c;J8qYMW?E2-t1uQ(UWBsZ1I9no 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

&!{8z+LJJKJOb8sO(!WNz0 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

^UU5M+D?Mzp}FYegEe5zxq4xSYBFM zT3RCChZ7MM&Ji+G1p9OSBnsrYCxMbt#xO(XAr!5z8`U?fyc4=qHUBCvA^>pKl3a9>f0Ss(>REyZKQU1N3Lx$tl3Dh z3Jhc90oJa%V&&3H&wS#O?aFHW)hraHDoi2u48`YUvjj^9*q9y{-VVjTvMlD`zr&*5 zQh?-FA^>R4J@RO`wKZYRTSB5b*}BV35xM#}M$G-Z-=g{}2_|<3aOdInLkMpxg89%#T%w0sXE)%kb$e3#88EOL_{Ss z`9}FOk6N=U@*Ce9ph#NAtVft1A>?pP0>_kVNu~@C!8c3o`SV-YbwBaL-~DCJxx-Tr z;9NXhKiLPfP&JWY&eT)x9&6rzch|TdHd2}-%~F@eF~1i4Lg3vPVFgN$?5GZyy+b5r zwhTC6@j*SxAOO-nhf!h&y0GH{1u;N|Kx=06E0ES)W?y_E#KoGm!VufSsy z;X?<0?~niV7k}%fZ~4mS&8AJ)^`ykJpr&GJa^GY!IfB=r#N_zAwZ?;SlWI(;7ABPS zn|c(NFt5W5uLuvsf+qu+Q0qu)#VlYN>HENyjCkdyY^Y9wJbR^DG9#cg(1VUde74@o z{*rO%I-&z2Bm@UQghc()bb9R-$A9!6ecK6sX!;h?QtW749dDnRe`8cjW zK#)OKoM56L-%wz_W%Vf4qSA~2n-LgbObGJB9Xx!cgw!Rfk%+aGMWe|80RR9=L_t)N zk>(1rtTdD+zNRC&rtBrT=2#~0V@m7{2~ajY@u4F(X(t_Y4?Xa}m6u=oeXsjl_uO^! z`pS~`zVqaq1K!hyR{M)931)@~NMcWOO3q}2CH~rggK5hmVPzYJ>9U>{&3J2i26`x8 zK>IJLm_}qQcEAz3Ss(! z1mu3?l!Z1H(z;gYG)=`KcD6y~VDeYCur|i8NQgrhH=7JjtEA&7Ol8)AOmE3O<=MGf zox|ieS%SjDzV9!)_~5_!!SDL9pZm36ed8bO-@mt+G>g7R0(87roq{D(C@+49VWc?q zOvA5tC??CS4o_G6MHz3E-ICwp8%P^v+4P*t+OZ3ecAJ$^S8h5<%jmJcU?zB4qds0Qv6HYk?h^dfiCP#(Mfh` zK;Rtm?{x5rOGE%Tw13Y({`S{gcI?p4|I%;mKXkA`+*-`T>0y+A*dvI2UdmvYBlu&T z^%#AXEAFAqb>>mdBD|Zb)ZWwGG;D`B>)fydh)tEoCbJ-E3cnQ0LeoxK*FOC4!&h8# z(RY5+tDkbmjSivj7KkqN&*hmATLY8cLA7yV%nB3>N%Y8>ej`c{VwjDUXknf(>T6f* zuMTFJ&dA|)RxUy*?NzJ{Q!WKrP=;HYp1uimzHMT!m}Q-D?|Gh z6xva%KIv(kJIL}EUV8&mNEMDE9AL(*%|==c<MYp^>`|Y=X;D7w)?|Jg8vsvGDkWP5VdYG8Nh^azfV&hQi2q)Iel_kz!fED}ZSTGMoOH7p6~VArBuTaocOpoWTX*p3C|kh@Qj;s?DRs4Qj#ecOg3{$ zZ&5B&vQi|e9b1D{tcq55r9-s6MXO+$9LeU)0QtIQ<`C4(9@-8;L}aPS0S0KBP9Qd| zNO=vvNXk1k((uSURPIGuLJI`omS?9PJ9S{+zW@4z-|_4x-_UyxfG!^~U}q>qV!d{l z!^mEl)r8@X=VfrkjL5KS_bL}1zd=7@`m3!1$uE_WPMzrI-$0T1eG8y%I^6rmQqnH zD}@wWPOT{-`6W*tJgl!Rzv$kl-+bdWzxu{Mc*FmC>(+d8ePbN}7rsXivK^|dc#l<4 zhDOp+Wby>@3A|D9%w87ir^9twne}paxoAMuB1uVFGaM0-+!gw*l_NbjCYnH?h&T`# zG02H^X^O=C)Sy0kHKwy;Vz6l@=-i{H9-mI8U-cC)f6bRZ=jfq*&N=Trgx}3WS9a6- zqqM{`=nb<6EawU~l{=~G;b};aO|Z2TkR&0JQ!$m1K36W~e#W*CRxft8$={c45a(Hq zb2TNk8&o1hqPS^+(G{= zF|~%CDvVe1lq!iN5J22K>&Xi}ys+zn${S@V-$h-LDo<*@m5UIYRsu}t(UqY*K~N!8 zeB`1qLZaQA(@yG!5Q3oGu<%Bx8Yp@oZ|k1gH-?x@+L>0(wL>Ha0O&dC1^`{xA3m`6 zyT0|+S6+VcfBdOmZW>%&UY&Of1ORjiw55Pdith%)osJ)lR76WyMG>Q46(m$9LDZN; zGmEE;Fl%Q7Ady%yM*6X$luTK5DM!HCTACs;y#OGO=w`F&qmMndG+X-K*M0rV@4b6@ zHto6|5Sw(=n>ex1n5b9{dq3-_b?&~fER6A38DbO8l%>G?jkT3;{OXq-KYIAz{p2sq z=YD--V{>y;2A6j>Z$ep!(un5hLqLc4Co(w` z!b|6J9|=UfMvD}YcdnUCr<>bbr_P;u(Q}{qjbHWROO7Av`)<4I5zs*o&N&B20M1z_ zAPE3%PasKk@d6Q*Q_&&j45e4)yO{=(-7HGhsw#triF93w@Du9Z|VlD-cwd2^3|_ zD+BFn1?L_0V+yI(g2J9XYu8_S>F>Y$1FOr+T|PG@r~@X^Ln$SrXp@a8^I1$sqWVgp zl=UM=ym(GzvQW`uC4Cgxg1j?EqQ77e5V7z5@@#hW&;f_w^$dgxP{I@uCbt_!6A8e3 z-#FabTKxN;`sGI+JF~jB(RB+s>n4J57@c03!P6x1HT4|QP6W zP&$N9nMXQFPOJz5@#rv$k$#bO<1jcAk?P`x#Gr-{x$2Ef3D_7)7P4Sd@_b|gr+@O|5$Ynz|{wKu)ssW;ww^$AAgO zN&_H#WU}Q*2;k6dY&axz06jrMj4GXs($W&C`AjH~4>-wtgR~x}34*qR!al1}HyjBa ziw*N1en0P+wyyxsj{5n*r`eApAAb7ESbDOIdz;~}l3$z_2SW?=yNi8AP#xKxxa zt#$o7MUAP}h<3UlEr#NH2?La^;}@c-M_$rmuBfX)ISs!#RvSK(Fp!09a8 z#$zb)Ch~3DVl#RC7r6A<&q4w;tuIPfj4`);XB2ou0f6kq+ zf68s|eE)qbtIO1N;TPeow=s3)3;-#03TxhlhKePE@jW?^l1psY8S6*wV^k%IA|SXZ z9$nw9EH6Lu;KTpv=YH$TfAE?EdsnF^Y^>?ZO^lDlkojl*r%Yw+uPrukp=>+4Eb-LN zsi_dWO5yZq|NnHA%|Ngwx6-<)V;lA@;(G&k(gC;Ie#Ir8-4)5Boge*IzkAhE4w@ z@)U|Ly=*dZ?2IT)z!LP!6LE!+q|HbG3zYB3>Ag7BCIW&jRbwziHx}lU^89&*XhALUJ6EK{pJPdGg{yC3v-Xni@yhoG}PS zku5MDTClEa@cAPU$TJER2-J*GU@}4|Z7{R*7Pui%ZC+KcNVP@t%w8luWco-yLrDg} zi1n+_VfZD~cMV#B)Jk>Kqj@1sGsQM#{LfOZ?HNGAXmNU@7Z0UlR)~w3D?^E7mqz`{ z&?V?B1=z?i>H!o__2`zdhhYK*_TV*jVbKiA|AWOe$!S!S4yA3XHm3j^0Qm4Dsa`!Q zt3U+6NL?11a`i3B&Qk49s!rPfs&9?;QIkzIB7*Px)#asEz4Y0aUwr&u{9ix+#RneR zv#}0{edhrkBPXeob$$f-NydN+WzDv>Cn+=~;|)Nd=3AL5#gG9P2QkmK)LH3K)XGv& ze&MO4jTWRrQd<(ZZ~)+mkYGBS5%|x4@qufvyz2YD?Q8D1^=br~FXo6Y42083uheRW zF?=?Fe41H+Xv~eNs~)c+*7UIK(nnb(f=S!H_<2t~a_HcX{>PvB^yk00fB$|@)OTHq z7MeM~SVb>Qm9Y6zsiSGq^a&RtoO`fG~@g)^pYJgQJpN7121Y$7DdNt z8bmZ^P^>kI|BYh{VGw|bI_jE93m8{Gk`QzD+-!12NS6RIwV@~4WR?IcLP8zc5sIxN z$T>tAyRbY}ll;&OdE({wT6nJhbW z;5+fU6%liZriBBxBc|0xNFD-kB8H19Uh07n8kqYXQz+qiIt{AW9l-?zNX%dPP}F+A z%Z*S)noN}yt7IeyDPQ0geP$g(5hxKsa8-qLRS8tY2KBZu?LVd2FMES&gRgQ?0=lTw zTdn~_eq8px!T~Z=rNai;ABNcfh!YYOqi8EPz+Xd6sX?hJlvx{Cz&DEVE&YZ$0j}&K zu(S)yQJXaNJ@ClM|M1^`_osf~o92s!b4@S^ z-bX3pOi=D5CKaMM@q~Ev7P`hAd&)hh-u%0Sj?kxYrJ|L>@`OSVAdXx)QNt{nyjdX5 z3(7UBSwc->OdfNn(Wg=bU5CEnT1axOYxf@j=XiFO%!hI;wpw-mh^jW1C>kYEqKYic z3pMP<62bHKN-eoMJ$*GXx1m?U->5lg*r@qCjtF8y0>^n%LnaKM68TM$*K9qqUCJUt zd?OtO$P@ZhL?ADe=FJRJ0(AKV-_+~qM}Vyv0ukzFk{_1SG00Ug$=ai5KZWf7M3N*C zE~H0&7#>OmX^8Eu)Z<}%o2T6%M*t#k(HxT^yF=m*W>UiqQq_oJ+-1zK2=ga9#Lt$-C zGM7mI-&~nRpi!nYp9FxFppVT(CIC_<#Hu%x@CG)byp_d2{T~K+tPD)nQbles_repx zuExd8&QQ}>L?bJ`jDG_M*?dNahYG36W`t~qJ0g%5fN0Ql>_qE^aX&J*w zVo6VeZk9cyoZ^pb)VZH3_b)rDY)R^=W(!*!R=_-(2w-ePFjk1}{CxYOV+Vifw|@WG zcV73JS3Ju#n7~8grLq~?7Al$s2T}@O8uguAo_XKg6adI1_DVWLW~p%H)+g(ChXW{) zJxS4uEP~RK(LkPRLOY&%8A;oYnO*58T4W<&h00v0p!2{7` z(xSsNXU?2GyLIbL*M7~Hz3{1b-ng;0f{1{xX*76!(6QVO{G!t<^mfH4QD)%zt`R*RfzvG5Hik4!Y(eUTT)1ZFnx$tYuIiW z8LU4po{tBD2h1$bsK-@f=&HTN!xg+=R1NK^DA^^*Gm^0oadhQ!V;jkCMaV^IaCer9 zN};?kqE}mlUqj9 zig^>lQmMpbX|5u`MAGkZ^0Ia9bT)bX?3t~t{wrVlf^Yh&mmEF3*Y|$jb%;pbqeBOd zV%oo^Fi382Pnj&3-!-L)g!IJU#}>|?V*#GC1c=c49?{)>$Myg2hrjE`|NC$K#+%-< zvA#B)&ALU;?ktmQu%_lv@hD7OjJ)S6B0Ftu>EA#tf(ST*9Xa7XkfBaVs-@BJKN*K4 zOH%6DWM*5(bmVtX2n=(KU#96~f(}nU_ULT3`t`4V3n5MR^=K8WS({`!gqI0vI5u*dZQZ# zc;=m7CiPi98t6RkRKPS?xj8^#rRY$Wd-#nV>#PsF)(+7W12z=Tb~a{NK65&tr?BNe zo8E+ml|W_!vY01jf(_LUk;5CCR<8jRhOrxX&ygy_7{HRZCivZ%Psgtw3$@{S6sH~G=RI^Ok?ef zfm0-{ni>UZPT9g|%Mdx7>^`s~5$|UdqH&(>Sb-394>BPrs|^AG$pzYx6jdq($c{j& zkM1r1S4&a>#4S|zD%%gANzjmdkABN~Kh-_%1Mftv4m=tow+*%67qXR zxv<+r1^mVSt7H{8v5{pF`E|(NSO}j%eVQhj2@!+H!^m8t*nLV8keFJCNUTDglOswe z;!8d-?)2b@5Ptt{fBK#eJmU#BUNv8IjdNa1jLXFYAhjdT06ZX&M{JryPrUu3jlt9@tTEb>ZJ*+KnT?wQzoql*w680qVkc7 z_Y#3?+-y2I`Pk!t(;xWXzV#bldC$h$GI`&$O#|qO@?lX*kb)&6S!IO|HA}H1kfjVO zy|}l=6s#}46B;;kbh=_=u==K{g`#Z1w(trOG z|8xDw(S9+P)nu-#_*#lyFkqIAC~`}yrWj`V#N9#ra^9+(*FwcF*!Ohc!1_P=ufKNZ z?bqIPVB4$x@TmvTjtmzu89W7L!3scXu@Mi!P{E44nH#iWcwD%Th? zD5|ZzSlbYv(?|oa(@?vW4(c(k;S#7?=Cp5Bo0RymXvZMY>?ZQq?xq8p_S^+<$wtS` zXWlP75v{B&J^N`-xb>zh-~Oi``i~ij+Eel3VHhQ{)qn zZKlxkP@S|na$xWcj3A&XGY03DLu$#Kl= zEux*L>AWpZnCiZrr!A;Tr6^j@SUkQ-Woyd26lBP_j@e z`#)yBm87WvfWBmkq553zZnlrC@u`@mK^7N_UE@?L#iCs0mF!wD38Y!;rkgi6%_%OK zzjCHre#Aa%glo1I0ZrY5b#>VsBLq%T8tQ^fj{qa3Ga;ED@@J@76)bb-!G zPaOX4zy0dFZ@=Zoe(skac=+Lsy?guKcYRzC8UQv)o@JI<<5nPDa}}bUP3|Dskm}6o zI!c}rshEvQ%%`)1rGjH2Lwp#Z!Y~6DJW^r{^+q9Eu`}mnN=g)0@$vsc~+OK&2HJ2ZsP20Zf z=M>lGhi%YKp66Uuhm_YDHu1_9=Wuf(#W&2s?t_4_$DCmzF%KmdBTm?yyFA+`Jl}K9C3jJY>H}R1C+*(#HN+B z;zQsuQ;T6gJ8Ub2(Vl5oX9-G{H_g^~fN^Vk`?8DoPbQ7;J-QNaYmTAv!Au1KfG0nj z&OY|}&wS>yUjWwtVm^c>4MZX}*76MB|Q?&Mj?yc5spQ?V8BD^kmPp)($g2wur#1~T+&F1@F{;#y+9s6 ziag!f;OI4N3RVHIf2nh{GHuboiMtbN%^bJbE-%|bS%PFe@}j%|nj;=U1TbSi5A$EyDoS^=qf%la61n#PwF+b+OI4&i zw74J4gZJHJw&d2=Avgl3H{EL@tb`=PfGn>{fn@hpMT#mkoQovdd)es+1gE3*7?nw)otbllzN2%t<1}K%ZRoFv%DQ8^4 z5rIcx%fi2-sW$UQFkoZR{nSfKE%zWn8MfjB7cUZ#R$5wpU091lhATRYZpzBHRG7M%<8CnN-mr-Zhq zIGWy%QbBUWINylCFf9+2&Me8)kkKdhh0T24t*&i+ z?*0e<#ZUdtzy6-DJh-vkdG7#-!^L5G>ITA7m{())I(ezjIx?*}T%#+#G^T&0o>2Aa zZmv=kvEZR?ZMYJa(q%`0728)JX)znR2BvS$cl}T#q=2o z$Fz)8TdDnYqg!+i@z}wAFa46cp8BL4-ujOB|Iau6-p4=n>6Mk0m9ZiE~pRh_%g0np!Fp#)1S_%S52FVQ>vil?Os%C37=hcN^2UFIf-j16{ zvloGS6{ufFoqzyGB#c-q~!?BBD|G}v{0x9HO=fq=^44yf6o zC}Lu4@lqLqboXkuJ&F|RLO7~|x|RC5pnt_HM4sZWQC0{b0H0k;nx;r!qgQR4N+^TB;wP0OUc}=O=omNkLYhc~BG{mEv>phE zR+nebd&ce8U47y||Lm{6^_}mXO`4U})$Q$h?|l>?5~eLp66$10HA*le&@;aK+D;ls zeL()@TTuN*2_I~YnP%>^{2|-AvC}OVLLm;UB_N>5bc%?NoH{j|E`P(Tzw}ivd(Po~ zYYt)2buRoADxz!6*z9hf&;?#7{*}(98f{@i5#tEn_uj+C+S1GKz5A9MuK1Z>eADmz z;oBX;o_!nhc}JeYvLuvsqmX{7zO_|+QT>>`m|hn<9@uqY23@SuqGzeNb_cxPzVsBT z*A=6sUSQGAE?IX1l2m~}CegeIB<`GR+jhQ~Kl0$CS6+7cH+l8NJMGlOmT5776)(1Moc`)FOj$QOjcIfQjE$!Q2urd2bOPHw{l;6~_2Q@8I+;x3k3K+_F3?vT8xnXE1)IAL zy$AAqq>(T>@+dtLeHD~v_gK~7DoYXtrT~HFb{Ha(@7EBAjaFx+_2j10?X#!%Uwrx6 zMMnwr6nH$sR!|R64M9{d!DmI$Q1MC%VRwL`lxdsoBe~+(M%7EgqzT%YgyfGo07D1jL@Aj9F59q-qb-`vF5XT-c|ekY4IT%<~D zFbLJz>4i+PszeOm-6312W7A|UjR>g_FYj`IJW+@ONJM+qm;deef9s3B=^rnxG(<$? zgAs)C_ZHF>oYLD*&_d0|84L2%|Cei$3F4t)#d4)jdj4L>pCJ2aYr@Ec7)sI2r%ClZDu0GN>Ek&ihrPmD$)CxJX5I_IWs z+x7jUrygH)-R(DB`?BXg{jNK2I&@%ftR5==jYDy7iej>{(etk8zCqy;;TO(9( z7z@UgS9Dm(3F{ni<*htoVl)k73{M9)RS}u!#ZLZR#rTIjMV@u**#L&`32cbLpC#3s(H3sGN!6V$T}&8;D!9}gx`uQlMCR2;Ujby zcdF;gQRsipbc5n&1=Njrl+Z;ZlwwGw!>PPDQs=-Ui%E=p@&r~j$77cVz_9}*0wV7{ z0Z|9NL%igoL*M@$U;C{0Jn_H2{tch{^r!diSznqiZO`Xj*E4@(&Q*?`6tF__jcg2d zR&R6%0KKB1YX8!_UK!QAm7COet2v3XG|vu=RQ!g2GU^mP6b06`O%K9a4`fFVKWc_ z`uU=5n=4No{oZf;%I7})i9i1OH+<-0f4O(h-q~zvzE}`>1O#-*S>jM%NOSAtmql*T zt(e742%w|10C_3rSW3VkxNLHU{CSSQnu}!(fPGEAZL+MyWa@t9TSSD|G;T7T%omFX z9(nZ8fdj95?W?dDz>;M4teFx~;rina@;IPuYO5SL6%4y@g!?mHA(x#^sItq4G z0XbBnyOqmuvat2L^0r!l<$J9%xz$>MMKygJp*wA_OhrdKsi@Czs6Mupn1YCDk3<>l zTh+@fS#Zb$#M42s&74iqv^G4ej6D~;%FU=&x#Khp0aIKzd z#og3eQgfTcWed+4sjZ{_v}~Z<=9L^NnPIZ@%3+{P7;kNZ93YSu-pDRL2QBYO@u*@$ zEKO0V0U+&RWfo?Pm}4!(^rEOq9eoN2s3&3rR+}WxiDR`)7N(6wlZLhy^Y{GuN6&99 z_ROZ#N2@6yNvw+TJ;k-tM0p=S0FVa)^gVeZ?~yz~%zqQFMUR}%odFIv$srJM3G=}= zyg47y+w)Dn0IHNEIP%gvtWBM&#a7R9J}NA~Xd9 zu{>15=nvRzk}KShm5P!YvuGI97y7KYOonijH?vA$NpZ|A)+I)a5@nyC%n&a@pk$A; zzf{!}fptxMPEkw4EEtv>VCG0;msSjA#whWU+!FIGl800oZ;+ZuBq*zl=^;lRRB!9t z@%Ed3_&Z*G_pMh=CeC~B0h+c+GyNE;G#rMkQ}K?8 z?NX+J1RntGV3lwnH?iYIz&}30wQ41^HjD{C&Hrp3;v!qpPmMSUVp+JDXfm}Hd!JaL zqa)l^FXOw)cA&UfSi*9mq4_U{seUG^Xh*$RFSn!lwk=??hsoq+pO;-UCefC*&wF~x ztyg}>-}>@@`JZ0D|Jc!PYZKCJfyl(!xot|LD1n5~iCjNRuF)|lM3sQog30%V^Nw^Y zFNfrP57e!!x*z_pzjpf#S6+SM&}KJhK|%s(Ag&I_p;3d{{+U{CBfYBD9}drR^(d*X zh^AFTrlp~p%d+Ekz))fwj`nJ1s5C_*)s``u>I^~{(!sZ+F*Itzq2bDlRT_sWuDvPz zNy>?a$YHt*(SRrP>ODaR&bdo3I`mav_MGQE`^oSBi;w@>o8I#7_kFNwasQr;b~5ez zzUzsAocI~;@M}YaB!5LCLym$x4VRL7B4nH@#4$V4>{OFmQTnCh-WH7HK3mx!%5^6* zqs?LTdbyHJCnv+A#fsoMcRck&V28v3?|qoiHH~W~llh`M`QXV}+unWWZ7;p|X?NUs z<=*vG*SN)^TP!>PI7D>VI2VHaf?KuzGHfw}p!;4dI7s3{GH9BKPNmRRB?=PRMvVgI z`AQgggGhDSQi`)|e&`}Ac^bV&w1jM|1NB)w60l76JqC~y0|bF&zRN{H>1|@X6Mz#& z`ZAH>c5GFyLKHnnrXn=}d2mAc0hb+JNQpX_Au^69_bBXmh1hK|+5k}xM5N2USbkNm zEc_D`ABFxg3{UiDrXWDrDlDcxsZh)}$-Tk@=1I{d36d6p?`G5>3y^A^l28>Qxx0&E zaT7r`g|Zz&QA#(dyMh&-$6lq-HgVm%l87O9oSv2*Tv$lkzi8E~4cYt1YhB3`0D||l zSS&WyR-XH`+itr4^56fXcmMS3f8+CC`260z8a0XhDb%Cl(!Sjg1d=9630pDT)o-$z_69SH zyL9G;M74r0t4GCe$#%!Ho1>Gx%4Bt9f>fEI34b;myvQ}{o5Fqv`Nhh7I!)?wq?Dhq z)KfAK@fdRmE57-BGwJex$<~dSho$FH_mWj%iddose%&YjA+zLy^6U@+DE=yCP2vr; zNUnuu(xe&S&Q~&>5s`sw004at0PvwteXb)~o3y?sY*_F_9ud>K6`sV0$Obio4$RLK zoEG$i8-)|i-B&mj1@Ge#cGmQ;BqYLEg%ZRkK^bPxE{7P+UjVthl0{XRPpum)5*RDa zgpet!nzQYF5ya%BGo0WG@DA!0bK)ERyz6_v)ybi&-V`$SCFGkrT&HFTl)U+ijjZV9ne zr}KVO`B zkx5GNuDwEMQ)?={DWa0h?PN`(I`DInoFFw|vX>EY5Fp~;`_{#Wgs-Dq8)bN#aR+dJ^eiw~RzXX$k^BcmcNE6+`PCR%cWtxiyY+n=pZLVb zfAq(Hg@rVo`QC`L9+}P$&G+Ta%G`hWaxQxeO^rS6QNb`^5fzV>89*@$OG96F zIy(B0ct}Aq@BQ*@a>>#CCyqSnX-~T0eSdM^8~@;s-u})HZ1<-(HrAF`mdIo8z4t!H ztT6lO!2DuUoisyv?X|FU>^DmXiTn}(K-hgE5+&K8sEI3RFpopmG%Wy}+dOyXq4S3i9(dJDpZC0{J@J|=PwZJ=NyE`J z&PC4~c5aACc%X;mS~&!brz#gK4qwVd7aT|}l}kU%Vudf)jmD2VdywJ#DSbH<(ZTRD zjbTK{5u!`>8Jwd8nkWrlo_3~glC-(n^JYjKzpJc>L>lq;r@YUuo&Ee^AUdZ}Yh_Gy zK>V$kG(B9}dYGY<7Ntmci3-Jxt9B7$-W28u~A>i46#~XBBJ?F05ZhqtM{NXSE)*n22=H$lu>TEWd&leOI#l@&#Ixa!%)JT$+2#Jr9 zf5|H>66;ceRd9_^o~No|ehM!nCC=M4;`EJ(8%oP#g~qF>K>U?jaW|UGv`{H-7igQd znY7#6TMs^b>Y}3uzw4X7>IKh!%Hf0Sjl;!a0f3FO-4D%@5aMV%tNI~_sCLudsU5*A zX07T~^)g(-l{8-|C%Og8*XiMlbE_(~E{KL0bj`Wy57#L$FCc zrnYWutF;XXl~fLvPGLYt5LgbLT=@0Z3LF&gCT~I7X_j8R_@tUOwVGKaRM}yJ4!NHC z95}$1>>CoEICgmd<(C}$_~#y4Uz+w^#}RiTSyj@9;Cw_%N=Kek7gUciE18_QQ!$Q7 zOfyW%T@kck?tID82-31;^tg3?4n$z%gCiHE_IQO{yy2Rr31N>!S6I{|ypECK(c0-uat=7Y{#jJ;)*;M_R@##Gq5ogaW9JVM&bKGmv7Nq!VMx zE5!5CAVte{Cx))UXEwEH^$97BPUxq|76h&pt%z~TgCXElNv;TfgOmdvKy`9+8IMpt zLu~Z7?4~>x0Uk%xs%~=7xdu`gpv5xIVO%awU0)dgAVrjnCB@Wg&b|h6c&KSInF4s~ zJIyi7oD}L7KA~kea2i}$PGVz~d}w_cnKJ0&p2Z5e2#1QY^)a%~AJH}K_U5_$&v^Fo z#U~0k1cvPuy_L75T_-3tdJ!GwFQmvvxiA=rDr!GuWYj`?RCHc2Fj1qg5YC9fDdC61Z$;N>Fo&mz@g=S^bx*imuDLW~ zm0l>(M@Z}EkrV!C>{4p3aHOKjss_fU%+jxd$jllge=><7i&gujN`mGhXpE>WD;ZT_ zy&)@2iJ!SV9Q?Uoe&an)xawbKtBa5LYBxKs1WU#*VB%Xg68b)5_v_vvd-PwmTX1`nW?gWd8%09 zl6qRe`+)|C$uMXo1!B2!Vz3;ozOZFNCi3c~SZCCzMb{IM1KhV~?U_%z?TJsg=2M^g z;vc^AJ#T*7dp`f*Lz8K{zP3J_F7@8`UB@=oaqlT}6=i%H>Vk79ogk@RIaq#EwCk>4cee<(4|GKs76wfS7H$1Yz=mdBkUDL ztP4aQW57RW%f`cvqHYy53vG)A%JI;uP`RJEubNV2jlY-vFgl}50HukkCO+*YNJ^kv z!>nzZ#6reJKv0M-qBLND9suLdwTq&@#-pK*vKda+_=21!Pa z+y?)#!)Pig6+aO~ajOmRat#Ck@XU!ggmr$D9TLMeG#}T_UEQxWQv#f7q1-T$4|?W1 z>c}~~`ikRU|21EF&r|OF_1}HVZ@>AEH@8o1tgSCEFZX@l_dUd=KWPLRE20$mYJZJ2 zN_kok)`e8f+27X~YKBRG(rn~qiD(swXZPhWiR70DfF1ywwsj7-wzeOCo9iGi5i$&KhJjUc1po{HD`5~jxWCv(yaAgN2fdd8gVl!#*3>X%14JvpL zh?&n9leWF#>Jyh7f91W;yz76y@hxxsy?6B8_TGJarb|oRqU!>fL5I+@=a7RX#F?QL zi;M}8=0Y+rQb}DIy9QBYk~d~cN026{RMwK}pa^0T1QS?{Wkg@Zz6+s2*GwBg+}zwc z``F_b9Y6k+FMZMTo__m@iw>_Y&&d1v_8gpZ4x4CuH9kv7TWGwne>HzJZeLU4XDlID z2|1*usPH_w=}{525;PF&;g1z3lE0Y9j?E9MFhjcA?$%2boT>Q#o#t{y71lwFT{~93 z8>9o3ZI`HZTQynt%~I|zpvyQcho!z$3uik_+Nu))z_guA8n@`edL<2dP-f;Bb_VUo zw3ILPx7Mj(^>cwie1WP<3QA@VBUWq=umpn4B0yL(XI&EE8;Zo{V( zSgZmh6gRT5Ayr1yJ}~fl?!gj^VmdC{fjATbjuaIS87et93Xoc@fzD*upd>RY$wT3f z1`+3&v=i5zg~hs*E#)wV;DPQ$tTa9l|F3YED4zO@z8a(hUMndwtULz^U5^ zq=pvV^r9=8)fMnw6xAS1G;C^?G%4|j;;LcFpud4sIFJ8u&Q-rOy!CnKtMXzV3T-;k zjL}fqNf=1Ma{ved2bByDf{!_`Y4TvAcw}j|I%3_VFi1nrTy`YJkujU5^eM;@E@3 zqM=ZqaJ$uu`D>KX#;j`-KvTzsTnhFe?_n^yXnaGqv;dTm9pBRf!}yA867O;WnJbse zjx*3fW=u?Sps7PNR55x3;3d7LQN|8Dl(=PlhC&qqQ}<=9!M_a$+BCs(6IlKyJ|*54 z5m#RmdGbE|6JOq*FP?PM<=^-fFZ{`0{O!Gm4))vI=pY7)`1nf=3o3r9LZnj6YBvkT zDD+ktPpdTioexkOR2W%i$%3&Y1D4}Q^I{IqNNIq0t2iSE8&Fwl__bQO+D%9P`fr#Bf$Vm zbh0Lt*U|#y{g%0Hfw1z%R73<10A1H1y7jfyTW-GUnrlwH_gI%Uh;$V>52v?Ymz)eM*|KhgPqLEGRwb8{>#IUY zuu+*&gDx#nS-c0ws)bV?UeH`W8_{emw7@BltD8AWJqHw1GvaZ$F>1{5|;_(2CgO`vvXB1qWB zvdf7{Y|V;FQFx<@mD@EJjJ@+ZIl)<5~; z0}rgNt*))C5IXPs-V-9aWOjkqGDj(^0KG(A%D)Z3^-7QUOvyvrP&j1zUtBw zM_+pH)8F{JfAq$;yyKxqPVU>YwlrJzfW7bg-n)>sO-peg8y@avasdfLi2M2~MK@Nf z-E>+?kqo|47%7FS@97%?<;B<$L*%bIf)kXQ2pvq_#5GOdb*CObJ)ig2U3J9^zVa#0 zc*?C8A3MCfH1WM(%sX&l*J@ZhQ=DlfJHSvyKrn?(b}}YhI8a<{hS%*XqkSP}w%UR8 z31N6Nbsx|G!qGN&3NtcMZH2-CVoU?+rSWxKRw5<9A*GSE+|Monqiu4$mJtM5zG(rt z2`7ybGDN)q*}LjsW_6~7Af6)t30O7`m)h2Moy*uoP9vnhP&cxvEM?U=8FBD}w$$kr ziY_WH;wUy133Q0*jk3!U9)~Rf;AWHd-1#{H9~ooV5?PU$WFsX+K;ftt0_uIYIq$p9 zlP53SOyosOQbzf-dxlbLCC#~#VlyWjTjssO+(nftl1D>+$4XFSsazCTSZ^BshM;2B zyT6K2Ry*{BGux@2!d#5Z5+ZVl*em7;6=*jSkUpew&G&bC?n^Pb5ieD-`YzF=)CQ_Z zhAxZ%dZxoZo{DmcqAWh~$1p{Zi!mH)L0I~)G|wph za7c-dAEhMp(GrD4$3TS85dnZNG$0s;K!yh(RyYuY0)(!`{>0CbBE93r9%=O<%ospyY(WCVqVp&ZGKF^us14PV*tARqxE z_Q~8zI!YLoJ2{-|sa$3`fgvW1=3tqE4s!zm5D3B9Cq(uXSdHOSWkbnPNm9muWr_TH zImqU#mRGEpRvBnzf|Cc$FXkEolQE?lWr!tB?GeBse&4rz*>Aq(otyJ{)3yY@SYssV zwNhv;rC@Fe4$WJ`-?i`KMQ2gQ#D)pyn(cYF@4$gie*Duv^NVl({?~oQ+UhKAMB}ww zu^KgDms=);$r_PhJ(J!Uy_=GvM@1u}l2#>UoPatoK`k%kC4^a_s9nPV;6WOUSIBJW zcxThoV3$pVu+*s$B1M3+0v#0@ln+2aTb>w7gB}4yY#Io^0!$E2VCey9Hl1F6$+1f= zI`XWiJmHg{{lZ)S#me&1^2$onw0_~cz9;acooYr6JSK&qkvhlB zA>lJb=Zb7d4T@2=4Dn5Iq!wf+ZCeLvQ}kuvR?;9f2NI=%U%5obLTd< zmM2TsTz%Qyw?E-o_uPK$;J$r(*4oDPzVEsY01%yX#?48XjEn-07d4%ayCu2 zxU7gI>&K?UdG=8}A_?P0j7e%W8NPwmoJdE7V#MomLKBo+l3hq8!27sCOixQa&C-+4 z2BkRtjwzmr&9rZQWEM`G~D1fDT`3H7p3e)3zos0rY6j8odeEP z5qK`k3onS%rIJ=lYI=#7Oy0CX;Z(iwLklsN5LR1}S{^4F-~%B{k4i^Yvaw*cbqJ_p zF`=rgk0q`d80kD*2%L-$OWIMzYGkO4m&uZ};kr&SoO0@}XpA2SkjV2XFz9_ecoswY z#?(*ZFw<1UE{p&O4l4UT#EuKO#M%W!fQGY@MC85qeZR4`a`zoK+<47puXxe3-uCwQ zz3~s<{@Kree$uvk_N*^2%{-x}p7-^J{hSK?XmF_RXhsA_ukTA5rAef$;yjL7yW+$e z;&1C<1~it{6wDjNg?T>2usk@2ZQHuWZEbIzeDqY;(N&jU_Ocf~>lt_5eC*)9mF21L z`^938=$u2xKbs>~)+$FU_Db&JO8rolMbeDiPvHpi>%&%21;s|DF3R>Hz@qPoW|H6Y0O()Ym8>_R)ggkWKlaI@AV)#_ZLM_r+bzzw9 zb3ZdhLgD4Z$Snh&FbRREJ4=c90ava({xu*egf|hfZJMT;c;BBrzj^lD`Pp>&?mKRO z{y1|(Ik0zWY3jXSEILGJnnwJXQjM|sYgI7FP_}bb5>^>dQj@*X3rU8=R_o9v zn_Tr}T%If{sfxm`t`cBjOtRWKc7g!AoNnz%#-M+SPc8b{{WQ-Y(GhT|o2;R={BT#T zk5I*xM7*BR;qWzNWQg;Z0goeM-}^o5t53b-#y|hqXS=?44*3@piiN$xO^e;FI`WSU z20=juOwR;;C>TyDy{p`nurq1Nn%*9QIXxopf_RZ8ZS&!e-@mz7thX(ZkKs`^vxOnEC1U`QJCv`Hc`pBeUUfr|y^OU6lA;;&nDSMOBdtn8YV=TSQDr z!n1*<(x4?)Up$kzmmU8Am9w`Dfa$q~m0zoxF0zGn;IdxAuC_t4OAVW9@5Pons zK}O-flkUcPtyYnalT_FF39YbWt~*)56}!49hG?_h4dhxkP`;Kf?HR=9U>iq58x-Sw zyC+xHroc?5GYrl+x6%zx$>v!JL|4HqU;>eVjvw0dFTeL2zwYn<=-$IeXt4kZ#R(Mf zjDbTAXYw6IlPoQTC8rW)aUr23$^x@A${9u}ME=Z}8WHAOixVe~{^$Sk+t0Y`<`+EU zHa_2nJcZ*%75L=&Cq&If;ZW6a0D{NLo9{}S2?W_G!oM%ZwAvWH@OMv zk74_uRs>z&1AudG-=4KQZocNaD=&G~%b#`MCqDnj@BY9$-u1rwzwpIH@7GqA)>c>A zwj~1Z$@e`ZqnlQV*p3V>m9OyIZWhTpm5hwQ0JWIDY(RntR7dWnGE&tt?P6wUDPr7% zu5pcX2r!>79(nAst@(UoW%u6X8CpK$ZFmtS$&@x5znD=RYq==(l|G7((_91^dx zc`89^oo&g#rLU3?(q-$dfJq{_ABD>>nrLRnbpTttE9^i~`+ zeodi4oVYMFM4U#j7Ey{v(WRP1=&u4xI)JuylSwm~xUdn(Av%X~F>3NiY38d2E5}-r zD9DzKZ6aeg20j#hD0-Bv(hfL<%T-uFO+&52wrPAkRE|p$%OFXKOXFaVxX)V|SP7VG z%2WkojR+1Y9EvI_t9X>`h%3DkoY9Tc;4T-8;wu0IV;yZ)l$#siFahKpQizRnjSClI z@nXE;wJ}2RU!|wX#ewpN1RlTv#^#iT&`0sH+GPrA4OBK~?=%_Db!(Hiqd4X(d$i1u zkoPBokU8G7v2xo@S6y?(#V>u))BpVaAN$?6z3crS`tYg8&#teptgft0CX?R#uJ0)V zE*=Vw^D;|_wT0aW(<+%@CuaIt9S|+L9w@lyu$&RiA|K=$^H*~uJ?ZAci#5ykKXr* z&F#~B*H@R9mYTNdd+*5ynGsPtlwT{YX33@M@a5%SlzW~_#EmTWiL!tzs+ zG{&(A&SBF`9is31bDLX_pFQ8W=9_In zAwxc9sA)8hByJLR90BCqM9=p@dGz7Sdq0^>_U&Ek7M)+3kl>~e7FHgtm{3eHDB%o< ztBBdhSd~({iY-oPAjbxy!KIky6nv4w6(L9bLNY-?)J)n3AAkJpxvll(<=&Gs3;+2G zs&Qc#7tlHZ0L&NN%F^shp7X@Fz3;>4H@BCjvvB+ZrlZ#5!aD6B6hDEnp|zU1>*lsP zJ2NiluU9TKloz(;LKvg+@?ErHH7n#ilv&`!Fsd%G=BH6j0+d{YHUqia$n|pm81gQm zEF(lvEcI5D8;z=zF{)qO3%xBAPS;^0zp}!Rgi|tFUAU*dOY6&`gUKrLEK~-Q%rZ@p zPYZV>4obou|0%={(;u*ZDT%as3=;a=XRS+y9 zsijn%8E4}kg^59PxC!e=P+8_0MXJdo(!9sTqQB{u8;%^r8?b3VGD zP?BhrcqD?M%bX_mgHLNxN|9On-%Bca(>gAWQIK3UzmMC zzS8s&j$zhVt|!x#1~n_W5R1e`%qAnR!>Tljax^lfi0qpntpQHWBLg>1yNOJTv_RtM zE9pOz0Gr~Gnu}nCTHAAx{9&EvCWK)QAH|sRZBHHn+r~9*>kv1$w!Zk_ zsm|jimt6G9mp$nf&%Wc6y9NN%`yQxm8$myBwNL9@ls8E1mh@-KUYozStOih8w zb`Mi{L}5I^20zmNtVnUvU9@D3O@GF(!D%7aWWOk$YK6@kFv8&v$@Ruz8HP-3Dy8GY zpj=@}A2weHPQCm&w|~jA?taUkyl-vK9^du(pni!gARryevL&fcTCciE@?E*{T!=HJ zek<+G-A|`jB$J-?8PWB9zqB+(NB_r<{mPBkUV6#V{fouIq2m)a$RQG-tH3|X;f-ie z6&#TFtnlq99=nvEkxc5q&1@6OR%!%XpatNjWkhDAmEllsH9Cy?siZTuD_RA?b~AKP zNV{qq^~d3{Fcwnh*HSh|zZQ9ucLqyBgItHDWFEkK-*+7#%x070D+iAp*nitiSAE4x zp7qJkeDS>>_}HI);3FUZ%>CQjn=7;F%JTATHg)JcKoDIZ45wS`oth?nOi8hXxTXcM zl(!+KP9)z*gd)~mPPDZ-l$L~*oquy7FOmw7Lx*`1W{qnb7@9O;Kj?2<2ycvSx7KijL>0G3c z(?8_b$c`yLi9!;lNWlS(7%M}-w=XaB@E~>Iv zfsr>6Lf7|wx9GbrvNvK<0`g`ODNG3_oSk`|g+NJ2QX@|u5Vsed>l-i1BdSE8?a$Cv zgu5{^iL2#}?#Ks|@>lX8~=gytm+Mc$P>#w@v8Be+Gt|#1h@zDco ztILhU#bU8N?+{(nAcBht8a{CpMXI)F zN~wV**Ek@4+$QvCA1e&28z|Ya`$>LotE@!*sa!)7p1;nejG)Tt4?2&(c3YJ@wcaER zMj;46E*wy=D+wdIvATTt(B8+-otwIeH&ZJBjVo-XhLZbA5R)WUuJ{WMNTrOV0$-V^lXZAd>lwP?Dd7fZFVJpn+Z-gi&G?b>~7 zt7p&69U}jtR{S?uSSPH5Xo-z7DE6qafa+xgDy1S5WtPRt>*v?(_QIV{uv9PbxX0E> zPw1imWGAPXs_~yPzf#zMD3GZmox=nU=~@sjMLvO$5L;_hkBlI#Or|bEnJR^BRY*I( z!HHyY${D|a6#}(#NKdc|SB2a+h1|lMS+cp-Az_mOL%H7(PiYy;W5oC%Re?Fs3yJAA z6e#+clAO|mLj)GU73RJwXqP)I)Hl_j*kSQkgdjc*VbII)*Av3_!ncik`Mq~7Eltm! z-(01`#YXouQ`2r-no7($W6aJ^)LaiSCwC%ak+NT8N83g>R54T$3o?al z>pHzCjY774LHvYcwo^S4GkOv)XUnOL2xOlC{1B@GS#|fBTonuev-rswYg#vHS^_$Me)G)9^IN??bl|`%U-<0jKIx_>-hSZe5&ZqKc z8C?~Ah?2Hg65_gxqs+V2A**Ej$qh(C>(^*eo*o*}tg zFisE9SQ?Ge3a`u6rMvO>X4wv*Seq4BdQcQHgsrX3BZm&Y`+a}$Q@`}P-~EkWy0SFs zx}L)CY610mW0rCrh-RIiWcW^Q^lxf*JlYB~OPe^c1_hLA3{&-2jI9jR@YnCVM#Q%M zP-K_%=+_fZ@<^8!P^22NkE`%VP2H5;4KkkrW>iAqAOR5@06+|pcTeCKJpiq(F7H`i zz2cJNci(=)sngH<%;z5Xz=uEn-Vc84Q=k3ZqmP{e2g^%Kv*~O$og@Smb_lV{jW8#( zFv+7>RUW3-V_X#dU?)Wa;o2Q$%&=HHZ`+MXLFz4pmf6M=0D=PyAgpnX3xKNcX+EEC zZO^yn^VT)T4j+2j9hW}&jvKGK;>7X82i8`XSC(f8)OG!0z6b&F5c?EED@TmPzj1Aj zdLmXv=Abkvu@S?lP?Tk2vcH(V#7~uMTuoUBY#Tc-+7K-(rx_ra?GOrvC~zB5SO>FN+irKeHzZ@`3&3Kjrl!z0l4mI1Syw_a^{=?-wxy|#NlcsTq zt_cv+@p%i7pk_WKCE_mv1oBa)IHO4EDG54|v7QG%X(wyo_H678$!r9S!^P(oo5Y-D zK&UU5C^3|ltR#4PWRfwZXtyx|%g}A5n^KZx9hig;fp9XJHcQLsCT)uV{9{Jm1Aq^} zBy9(Q3^@@X{v;(Mdj|pKL);$1kBj61RYLms-Nj3+c zmYzwvCbVVMf;=EKw5AQV5hW4Y`U_#I-5=b(0l59N4@7pL-k>UD~IBAdNuUNXh-N-kPN}GqD*3_ zfRW*Enz%Rw=Ni{ELBzf9w&&ZYx8{rad~J2*+RHC_;?39JdHW5QUVLQ#-i=A)0D#DM zT@Q$ji$7i!k5G`bC+6!xVeS{?7Tp^fjq);Xk81aIg}m%nDWBb9qCKlRNe}fVBLeEW zZZ>O=A31RR$bs8#zUq-vXYRZ2(|`JbkG$*8Klt#;N4B@S)s>~?m6d5b10+ur_P2r; zTZ!_%n9LnvFw1a?$kBxfW->XX-jyswj_QiAET%;(fEZN1an3aj0C-P}#p3+t_Pp!n z+l!6Wl}nCabos0KMT+?H@l2@So$+m8MxBRt;xJyAWa1ZDk{^K zMra(`s>WC|Gk%yaYM zlaDl$L$|%T{o(sQd-36Y4FKhNS`mX5v}W$Hw{MzezUVHy=-9QFU;O!p9|J&iP5PY& zkcQ5(NpR9yqx{^eUtOrB0*tN3PF7IVrfRIfM`06zlTO?bs|~qAi4nPPHQF;%Q4y1p zpXIz>T~yc**@+^7lF&=A@g@!_KByhCmDxhV^qLybvtG#kuaqwOlF3Akh?xd~mkq!~ zVewK9a~O+owF$HiNWGFjf$C7qXGQu*_nVs%EhSp{*$_v#U6OQ4`Oq~pathCqpVXpL zbLkZd2mr#*Ek{HHaa0Kay1w7Lx^&xhS1h`oE9OOmse4?ti>(vqDENn00if?6e8(Td z`SX*t{axRO?Jr1LHDkgR_-n%`V92{ldzi{-<^if! zL2%p?dYWB!WwWx}&*x#jk!-azDzOQy%8DMCOv|8uue@v5d4L*pLA*j)p&X5AZJ}YP zCDd+;0L-n3h9uG;2oc0ETKP$;Sq}mmrtriG`BILzGQAUY38PqYqjtGLBrHA>JA(8f zJuSSN5#-uMx#vu@eomygjq;JW57xsAhH8Rqtt2NmK%;Ix5L%VUvaiOGRl+`*Dg-fw z0}v}2Wjc`c7vq9e*G#>q&F$@zr%wU8a>H z15JZO;DCU@6H@ONU5^eoR+sl|tX_KY;V0g5?JLhc^VI3{_kH5C@B8q_KKPMOKJf4( zCr_Pq=q7F3G|lqzq-|!N$b%;j-h1!U3h)RZ`IC(mz4)I$(#wa!CM| z46cM;VY29$2C`{eL~PK3Lk}?Do^Q>&uJ7jCix%L}fxS0gd-ZL%Tz&0jCoaAC$j0i* z#`Lk0QQ6=3Pv|D$e4mN+*pYPcL}pop;=Pjf)2%0)!uM^(;4( zYSOxq=?aTuD36&~ca>(m(TiZv7e@fI*>q!ViNaZ&J6O+j6=p*-)oS;+L*HGS7iOs< zpu_k}Igu&^fE%v5^uPVv?}u=zQ}~5e0214W!mX$tC-lsiz(mI7pf(5QS0;QzPA*e402oDA7iARE`|qbyO-V##M7R{%KNe-V*>UFVB{jXGah1zwPF0Uh(2*eDT3Y-~Hzw z{@^D*`N0o;;*rx2dvMdqba{C;n@xS^J$NGD_0;tp0`S4Y(hKufqL}a369gV7t;cCG zXF69e2JS*0*E`;>>YPJpTvU4y~`Q zE-g($<$d2fbb#12aUp_iykw~u%ls^finuQa*-Dq1Oc$p&l~y(zcvAaAMLT&8$iZlY zJc%RW>Ehd{>@)yCN-P5llP99ScMdkzS2osHt~hbzsdwFa>hUw5y8pqy_~<7-c;ClA z{E<&ScJ4F+G)>z8F0U;GY4=0`)cc-%+`^ISjsHgc`dD^d0oi7V{E=)!GjR%p=yVo zs{L-2^R9$ZvsDarrY#=UO71=_T)K7H+Z~a?NP!ETiHWx?&M3cB-N8;%va-ysfBZGJ zrTu56FUkNW>>_DpsEp`5`IY7A%~xIWrayeQ1B&R6qfYs)Ojh2%8LApu8>Vb!HXP!; zk#3SkvGE4axlE@qJ2TSV1tRPLq5tfICl`J1+9n+M5EVf$&ywS*I84DX5&$$!^9`@Q z_d|dAmyd4Iw3&G5Lx>Xc#u%B;lk84i6J$evu0E))SzN7t8B#nLV`w!Asj09n+Xyt) zsYj6!jPyk|6f{8c7zo)9Rq!w4i#XwpRyZG5pf-;ya>LlAFJ(E9!_J12y?AOjt)(8~ z>4*ubB3KaYCh@i2f+A2R(QG*-s%54pwWKjztsA8g3Y1b3UIgF~Kv@vAtjJo3Z23x| z+>>ELGW1R3E;X!DaS~Dx3r=E8lNh2gngs$xPrh|<>-AUNeDx*su4@{H8VN=@6Qm;# zK+3R&V!rPmfA619C$0ek@RYy@s$cgof2>#(qoZF^X$(lTs@V>y_wyHIP*dY<`Vx9W zkTUFqKt!%-=jYCCTzSR*>#qUeAa4aoNFmJAF(@w?NDQ!Y2sS~4;HIV8#nKi3){<-5 z$0@PYjmDcQrj@h8aZT&U1Taq-vb_^)AE;oLx=G( zt%MGobB#j+^u3?Y=kvasZ*3zqmtJ!5D_(HV?bluL)y7Hrl;F}36tLwd^8ZYl zE{6P5n7XO*v!P83a^x#PJn$v41jCp*q!xV3<>bL#2#DZ_PZJ(8opDwi`w3{)A`V<- z$EpQPuj)@rdB1>}V5ONXYq&#XTAX+nsG@Ip`8~h;M}PXB_kX-yUZSoCW)Sf97^!mx z0x31e5`a}$k`K7!0%QuJi~*%1NGK9dp4h$vf$#h2blNZGKk^fAxc2H3*PJ+VesjBR zFod0WF&AZyBNS9IWyRyN9F2NXBpM&bzv>v<>q2e5c(cF><2lz_7IQb!TLKcJ@KORs zU;wIgVX^~)_^}wsUxnXj1roD!se;5f2hdu8m>*$SW$eHMA$cO`djMEjp02FSjvm^7 z&E*$8<0(&g{Pfw)`TWBl`^@|Q;^UvW|G|@|9)0xG>2sUgvspV^o=nmgs^g-kO~`%?<^8pl<(sa)v_{8 z&g&C(T@MHjaA`U@dT9UAL;G*I_Of&5Hy?QDDcc;$w%N^n~lqoIii^u`{3j+yn1;*9X4%(8&iMdgu!eKiYNOWZJfq1_@`= z$!vK-o%aad69R`1-Xryxv5ghc39stSt z&GVb&i5&D@*MPg|#POpC4_tcj(aSD5e*M*#?B7^lnoZZ&R@x>mEbu=3_6VRu1jj2d z2Dxj&iX3ICng#v0`Y_i}JBhJApBcu~JI!KrX}bXqZH+5h1H_?Pnz%$O_J z75}znE2630U24EaH|lDKG~PyG>=z$BcyRy5*7o+KZ9OGnK{2w1Z#%oe96!h;snz5KiTc#AYAZ|*%J<>} zlj;e_VF00@wC#PL{QUXN`O?N3k;hbnOp_p@2&^PdhTvA%9X6e~dDq>0_iZ=baP?c? z{n2K&gdQU{#mr&hLll(F6W5~W+8?O15@iW~t`3M5JvQ&@ITo*ivFQ}WM%jKQORQAE zqO`WAr7BbTg5r_rReDU6n8}l3)bAUXWWuy6bA5w-l{H7z$jf+;JDp!pn<RE2pCVeP;N^maJX2|p5^Jcef7&GO|w`mnntX76K!XM zt7wm-9WsvnxwGd!ao=RxLf`YrJ{2S(ekm1Mnls) zgec$lUDqLia{%Cgqmd*`4YIEd+dDa&jY(Lep{hw!`K{`+Dp%OHRcsI|>XubkGbkDp z$TFN%^FZVY@|px*IZVXd4&QyQ1kxDQ%n4h@d?(90vn}hO%<5%Z8+=0eO{6q17GfcQ z*jg?SiSQJIc3_8VC*`gqG0Wh^wC40uSg3SHRR+&p+- z@4Mgo=Rg03Kl+}(^^&z&(|O-uSn|azNYj@JNhGzZpm)~>Ib9eQLpF4kks|B~ZGHWKT>-}^xolchkC|JDS_tf`&+$Iu!}|=+6D)`hx41;NPcB``S8Jg4)CIjF23QK zOV*c{ZoKY_!~52zlXh)wWj39L2E6xu-v{oZGrvEp*{{VTQCS79#l7%Gxu{34XqT=c zYrGhC1EQ(;BC|dv;?@ME7smr%7j`s4g|eN>0x_Ttdn8 zM>&n)m1OLdixhPX^wZc}4OKh9&ZEsrE) z(z^jWrDDN(bzSeh2gFI^_U~EWzi0irt1f-^-FIxxw?B3NgP;1$1CO0Q`>uC>;E|K3 z&d)c$@cBm;y`N5J)2Sm*li6g_Gzi!@Y}*-uC-4)9SyE)NptPzhI;4;fpHnV9vn{FK3yK(L17u|K+_1oKvGnT+=#qNNw9pr!ycQj1%xee9Z726!B3$5M0>EAM~C8VX?i~ z+?<1hMHeKLnx<(0ns$24)t9#bM~)x8<%Y`-tgl{m>G6Gg)|Y0p*=))i(V_4A#bQB# z&Y|Po%*+y^9fy!zLi&>-1!MG_WYgGpnwiv2oq`hcslkPBF8;zlJeSaljmxgLr{U?AFN2@LG-L1UTE|V43 z(Ocra7aQ&cY4Ock-2lOKVx~X7a&XW3E!STDhwuKtfjxVC*QKpB!oOl}T<$Yftpem( zLk1k-YtTW}FsfB2YIG{-22-P$7vcb^(t=t9fbdh$xV*IVg_Dne?xDvI?p=$&rJB5o z$g?84s3lBj2xNCX5cR~G)=t|W`mV2g9^+2{?LClx|g2WR_StO^UfCL;sJO>e0Dfd8jU0vGNs6ZWoh*OvElEmBm zavEVhb1=q7oRnm0kK>(}3z5Z3**|KP67^929M_u#o0K{h#Z-fOVIpG%s7ga+xw(99 zwIMOijC92y<_Hod%F;N8&rRwKGKTkn4J}^u{O8_#*G=2=`E)YLFkLf5+P36biS2XP zXL`9FRZVubbTT?exQu|bKj(zS$D-5e_o0hA4oCa`lXO71SdHxKFB1{$ZKjM zhmGsD7t`tF$aA0DZfx|vbI!#uaWJDr1aHjmE2>0ZKHVon092f>tVbTCU9$^JQ}QlK zz*UhNiM2Lk$E)wMdLv0OFl{w8z@SwPqU59y6goTb|B!h{p%7v$Q2C@G?S=!XJ~bh{;co| z02Dz(*(h+PEmZEPZ$gxTyC;h~;LJDzA9cidgNJT_KtB2@8V$1`l;V#F#x4h{Z3%#Q zawLZHo+gMcxN%Hb`siCKqB~%U2uvrdQ=`%S_QG-&`S02QX8%#x&LJXeTiaFfz}Z?t zy~YiQE;R(v0TDO1=Qmz;;u~N6B|rL~e|g`b1F+a8AOH^`k-|-+PI0^#xf5|%#b@~e zpp?^W(gj+hgskNJNXu+m6Tngkh)4+DA3m_>Cx7ubo_YJ#&wc6>pzi^Y1x@fhr&WS^U3Te9ZDRO)vVy4&fJP9cwZ_J>AuSxfJ=@a zd3x8K-`als^ts;CgAbql@JBy$ZfpCqpZmfmKJ~fDbn?h!kA3cQkG7M>QNQT>rfrs{ zQ*=l~leU?(&iB5>rd^(TFOK?U)-drY0hCff5ukKkN1mK>ecyH4JpnCx+T7f92p*vC zy!ZXu%IZZ&4gk>V+S;u*U%xh+UUtbvx7=_!^?qe}Wn+CA5mQ8)h(cmD8W5LHqpb>J z>C|}jRXW%(oq1T@_ZG%Nx)w+d0qyu?;ZX2&MX|qPgXxRFy(r%K4J2jdY#0ZIGlvs=fjXGFdUy?%B^$TQXVLKxAa1KSiNMTYX{g>eTd>` z1nj6W5P0)mI^>)&7^eqGV%c z<#RSywaZAVS%fDmDftldB85_$LnDHhGL5>%5kNzZ0LWA4J$Z5n8*9sZ-0G2o`)|ML zny&9&bkCC(U4Qoc<|jV+g}(1U{K-$>ci(3x&OLhO)B_Km1OoE?x$`GI^i9)Xa0-Cf zAkQlt^DA-}5fR9Hns?p-LDMYHW{txJC&w;2+yY*7{K!q$TzX*dp35#fzC3GZ)7k#L z>r1ogq>b6K-utfWgOWSvnkM`vv6$Pdk+P9S#nY(Qa&n{!i766$*a28>$7^Sko+--q zQ9Z~wdjwmOEIzEQL0?SF8zKI-X-GcyeTd%?BCfBktgpdA*mL68kM zKKa;vpZHwoyFYvHhaNk1Zga79`qUW$I={L3$RiK-)VHod*MP$Y)0qpX^q<1|u(%D{ z_k<4m-h0Bf#rdK?arDTcgKOK1#qpy@_U~IeeP;U!H(h)AC5KjLOUI8NZh&S>v%MQ@ zZIk7@_rB}HuaF=jHcgWpU{y7S2SbMQ!r)5*LiuL^Ba^8~+}sTyEl3QD2 z2@=7$6lN)Y)`?OaZ3IAc`Av=`_^}Uz;ZgjC z8ZPR!l8hpQ8DcZ3Fp}VfJS!$dO&k(5ZHtTT_kQrco3A`Jo3=h4%0&z;MSR6+rV;fX zh{D=OLd4cJUEg1K*~LHlz2EfB|L{MY+uU4PUESK6Q>-GURw(9_x%*aK^E&zjRV0@w z^IqU`1V@;FeK3&{@-paWNDn3NW4r42T^OOnr5hCa%W2%;ZJD|l7Q-}1(G3$O8i3i68}4?2L<#EiM4Q zZJ(v{2_>U~n%UE{A;)w$DbLT+xH$wOaIQW3_~|_tU$W=&%K;HQNuF~Z1HM&`o1Hlg zBO%pEuH4`ODUBn@!IVLr9My7Vd!aQ}o7%K4BYjPu!fUlb)7`QZ699lG4}hM?133pk zJ%R_IaEcx#Z$RlkV{(v{9)dJI^HeFwtrHZ}p zi9LJcTy(5)Uk?j_f*U+XPQWb_IVi8T>v|F)`x)?xvSx)ATeM<|$!mwzlt4&*$nALY z0M7Sazwmtr9>WjsaNd%Lz){kd=#jZgre)#ZDUBUM98ye&Lr0$G4)M=sNd=8Dc!w@T z&Zu!7``&qUaR~)Mic#v`W>)1j4H#iXvfa5s?#qtT9HTQsSG}srD8>89&hP>G>Lt)p zA>-A;_aN*L^pujvP!kBS>-yJyLiNcUkn^WM8LjVEG;cR{P2VS=I4I> z+N&-(ab$lu$_#+wtR%r2j2b@7B<;Dzvx${dhboU!4yE@jBnLsC;x!)1G1rL8mPGCt zQZYhn=bn+y`itY&Uq1vfQUlf>E0!jRkiIK$rCuM;a3v++G6MI5v|%RsK?K3bMcGZQ zhCglV00K-VA|K+5)7DMbSNE>30>Bj~jy&EG?~Fd-aKKzJ28Ak;_gTIe+H-v7?7CyYvY3-nr($zKzDY zsn`?}I~`y>BE|#!P~vJ!!=d1q}VRo5PYRX4v&nO$D!$t zsWtSSWbPwNJVIr-vL(qOgb2h4Vr;bQd+;6sCk;&8(8czr61=ormS+=_fw*+0TCViyi@8gW>3Shln9*PM*LawvFq%#oj&p zZn*xce!kV>-Y#c3c0sc2l|9QJ*Gzx4RZ(#q2EbbEV#?C7Bbdsl&AWob5@w2R)a zuPrZ4CyIFQeINGH$NYMdvtU)snxJTLgisKhb5eYjb5V>n@k>ICWYj)A=7BJS5dV^L zNRW_BAtfokXKsp-vrl((5de5C;YOO0*AP}IQJ)h~{BM;CRBlT&ZM_KWCdsx0k3vALOaE)(tV1@!@I|Zi87d=MpZ>t%m5XhS}zw?C?r>`Gdk>0 z9paT2AGz$r(FY$sxxBQz=sU=Z`6U=rypd|5035?F4Oz?>W(<;WS#{G2D}7Dk`4z`0 z6y^sT0t9e`0P9QB58n6b^V@gNrW1$Z7i3cKR_<(7SNMU!7+MK5J8+2J`xoAG$A9=I zfBRei_y2Noe(K=Wf5*2+*@v%&a?kABP-82BHqlPIUfIXu19CgT= zP!xh1a7~ALK?NT%{R2w2_#P>m6bBgn1k@h)kLCheRHK0wb`W!aP;YguMw-$Xi*TwW zqf)XEZ%H&I3JG%DI_>n$AT{V+`VCIqCx|j4)mc&|{RgnctQo_i52>p{UkpyNl1YhR ztq{4ZDixSWU^)%vB6&AgYNZQOQVR1yUxG^2C#o9>elAUu6!(mqxr&%~rMSYtPp54= zX&!v|(JL;!^gsR6Z$GfHx|lBjvG2PO6$&s2)k+K*?0*_^Eq`EO^ZN2N!*oggB)#L8&)U4(snC3QASq1M~LX!cJuMau6^y- ztzLRbN{*w+R#sK97*-<=wM#&pK_?r;jV)SPZ1+JT3FgeiwXDQCYkeq#f`E2(^?PXY zS<0yrB02(^FZ`La+ta1(#nu84h&%#0^Z}oTcz0j{isRC<@w3JsSxFOVanX!8O~@QG zLE;ZUNEgJ_FFyJ+OhcdirxE-ZA55xBvd-{kTze7VM9||9IE5%=d~l{EVt8tn0LVW$j)34CICRaV?Ye$4nOuG4CF^U;edjmUS7y@*5Fxt#`!>k; z)9GwwdFpGw>FB-hd!H7SA^?WNfWtbfXry?Ok@VXl3GvO!E#-%Wv<+|HlMa>N)NOEO z;*H!64N@d+Kaa7z#^lokvIgb>SbbDxQd46_k>#rl@N#ih`|P>%5}88j?DX8`sH!Sj z4sIY)uE~?wwJbW|09E(w!9EG<6zN1sgL=hKS>Jh+LMpXRX_68HF*Qb(o$)#5*DQ=n zXf48KRdo*Z7M16!f*+S7W!4X9qV>!20h<3{)XNn>E3?7gW)aD%P*TC(A7VL*^TsU8 zs9(uDP4uykQXUF)H5BMn?^2wHrqeG4%1k7PiVI&~^iH%f)Hr|!3AtA+9Ds4lbX9Oe z2lCrk4o4o_jKmVXBFd5>eM%}(IA$mwuNom8c;ETZiX#AkeS22+?_D!QJ^8j9h`>2K ze}3!y<|a4mY^;Pm704I~iR0u=>-h0-s*iq*=cp&#eSD0L+ z2{IGLuR{N{!y$RA5;4+MDWjktX@MP^(HM$Uk4x1ZhQ^fsSGy>Q6HhUlIA$)q({+8Q z-vLZoM}WtU959vKdgGNufDTXJ`;_^-gS;j!3|l_-BBezEkvy%gEG@4rH8t;@!r@~9(uOQYJ5f6iaE}=gy|Tt6g&P5f&MD2JB~e7 z-{gnH3UL#yGvab7)rvJ%0aOp>LDgygM%eegunpXdEM2OZyplj;9_zA9>OqAy1J19| zD~&pA=~0uf-yA7hLpGzW6lKi1iRwk5*hSeVN#86A4-7%lCGnRKvG?@bZ~e2M`k!w) zbl|}Dd~PPCY8pr+^u=U9v%(H^XXhJ%a-(Kg5N#lAewYj*a%vQ4I+>n2d-io-@xrIx zeqGZz^1k=vy$=S|aX_n#77>JBN{Zs@Fxy)M_=7+B;5YrikAM39`!7DcznM-J^RD+j z@N!;7C6mW-V@Sgog3|fSBT(-er-Eq8fG#f7rab&c#mma~HG3t46IaDb-2(P;v%nd1 zVLg+vS2nhGM1wA)*UyRe?C!Us67fA4j7on~zG~1|=|*&9zAn1CrwO6~0_gd}0Fg{o zmX5d+LR1pQLeVu?vo5ux9TH*oR8JE3TuS;?5t~c@<@YI@1KxsNF{3gClZ;N1WqBf& zFn^>vP3p6}6<^503#{e{hy;kvO&T|uw)3s6hfkh<#$C7ntM7a5^_L#$yM-t8L_LuM zaLzf0O;5q$)Eftv9bFmUg_d zJ}eVqZ)BmSv^qA{q0>L?Ul|>U%CW#`=}iydTDP^;Ew<**{e{;bzWeUJ@7Wwk^`P(z zkVBzT20l7klx{0%lAd~+W?3cCXld&If5lrzS?ckAK(vYtPYnXQ;}S@;6Qk#^oIJFaQ-@p_M z@w-U3)K>xK7ti1et-oyv`UEdu8)3xYcX#j{7xS@ zL>Cv>lmJo^ZTY0nr%-m99Z-BJORLPVYJDey5RfIJ)*&JhHkV&?c>l&q@8!~3R6pz| zuEF$kj!@PIy3l7;sj8ulbVNf{16T{M*Uc=6DSAFT0eMrW?M1Z)(FGYv;0Flr{mak! zegWR6-$JqnK2SVU8$*sY(HmsK=g1uSJOh%3NcAXMYY4v)Yq#U`In!cUA);W9n8Y9w zwG+3sH9xR_-=)V6whoif#UE^PfCFQcgU?xA_|NX=zloqB=Q}P=y3AOsJG)`i%x=3- zAS7!;Kz*t&cB)sUFYC`$n**mGC)Zi@erIkJvzwxdq*?%sRj7C>DM?jST4xNJyoh;V zY7*^?b|oxapoFXlA^j*(Tm|VG8*c9Vem?IooJ~NP1nFRq58;pI*I@{Gr(=Gr)P(bm zi!P)IwC!vO^kmoM7ppa5Dz~#rG8#q&zohla?9=247(!#?N>J`!8ivya^cBx)_wDRr zxU)KznBx}lAH}mF+Mtm39jyzImZ9;{7}k>_tT7s3uo|fpHgTy|K^Y|zHJ4Ch*hUw% zSeK^on1LLXvbApo^wwykL<_}?LY1$xv>Z2*42&9(^STlB$D&!r%)5!4ddNB*gkemO zD3K6KRC68lAHmp$x9aF!)X*41->mZQ?jn8U2w2vS46`^eT3SK@J(M!2R+CYJJULNi z)wT*-jf5k*m9cJ@y%U4Vsmcnm;eJITDXnHTWhkuJLn7~7GftJN(8tqVsrQjXN{lg0 zhBK`Lw24b}FKOclZnKZH#Da}oXnS%&C~pu}#!e0yPYrttuWZ4b(jC+Km@ksfh-I5( zz&CM z&0|6h<2Y*f%Zqjv=)dwLO*K-Hk`V&R8IgojYK#Vk8LI%-I>DVUp>pJ0bN?3~`Qab? z#k1$Po5uBl7=sP%`e>Pg{VLw^SZ1ObrNt2pocI+y_2(|G)j&H~jZEyoG3f_`sgoY}WS> zqGrNi#ZKm)Mw1BXUp4N+&8wc*=;Hb*-4`*|R49kE9qWDiT~`%}5kDj%j3xpiktY-# zsW^WC7z{=O@M#>{j5F!6840)bz{;aPYSNPW%iYSh2rH}`Sc0Hoo`G_uCm#t!sy*&D z?p?HvfNI%7AHZ@=V`6XZf<9@KOxbb562?4=1@o2$oXQ;9~K4|ZS0-*i|{iGNo~?_ z@jq!43HeB?XnvEVX0eudh9$&|hy9321VoA@e~hXrc89CcQF2D!`*vmJQtbeshRzt+tUe(d*kS-qzCY4ECgr*(HQvUzs<-NxU#!ws*Uqk$Q zOUfXla_qML6h@y~)MEi@sGyiU{^#5JNs z?9D1#p9;wPYCZxy^U)RNM@4Oe)43AojgV2iyF0;)^^31)mUL7}5)%*GjQCrtWp~RF z#+68qTy37S>kN0%uAB==7XVU%#B62k!g4ZG_!DW3BLTY@VTE%k{60c@hk(FgTttVw zn$Ecl`R!jxi)=lBS%sPPUN|9UX(a~f)ilPN3Cah<%OU8Aa(W9zfTg0M8q5n6UQA#| z#DfQ@7EjhaD6hd~e`Cgc{2Gav$pWg;99yng{z27NQ;eOntfNnNQZw;UA)T^Jfq{}j zp;DftmjeWioH$}z-W7Zj)l$9Ps+CZa$Z$tu1~ov4ia#g|$-fohuHwvCxB_WoL7ilc z4eQBVYJl>cpq_(FtK_h=y(_$@QJfsosn=#+8XnovU-D40Aq-Tc(GaE0FW6n(CHj&8 zpzzB|8|rI^DF21L^t-~<^vb|7cJi-Ln!2BqD_b-g8Cag0Th;Z5q9z~^!oNNoQ4>W; zcoudm{3hlFu&g@axm-*@d1U0aguJiCT-q6-=s|M&V_V^5uOM+WRX4C;Op#i>bdc9r z2i4*9xL%DF;zG)VxD++nO*%Eto1dCgABQFpdZ#oziyIs_}bNeltDDP z+snQ?x}Xn)Sd3yBghGJEh!iSa(*(7UZInU+dsJ6Q7RJ^7o~UWu!uwx+(>wmhZ~ft+ zL;JSo9S9$8NJtSmOskj*kdroQR4=(+FPe}N6G-z(1LK$0lTi8^|Ce^A28C&xcJuu9 zcfR%|w_Se)BK4la37#0Y8szjzI`=2BFDO0%#Df|_YaRe$d1?B<$#$*xA04T7jd#Qh}uj;#q+285{*&(`CZ5k zzl2eWAuJsuE+4fL36Bt^lJha4mI8aeaJhx z{}~HvX*VwjtXcZuaK{5Ubc@Aev9)#2&;Pe0PkVaA15}Z2hW1L`shF%JQ;Ymh?p>a~ z1aoaXq;YD4{sv%l&TNYpTAFb-0H_E;OnD8^V5DEN!swu89x3iH%ucFMLlN2sOA^x~ zDxL+os+lDe|JE62cSRR8W!s<31OJDzhMFdTET4%V-)&Gtr>XcVAR?P@HSeRO73_HO z7&%?7BBZ?POhfZG6=eq^h)(K=0-vx`74}4XT&2`16KmG$*9aVdk-}6Y-zxrU6PA0U z=>q8v3@L>(s$?4U1VhrM+mh}-oT>*De;5^6V_CHF(InzUSz$(3$aQ9d(-tbD^k_b* zG)xRo5SS=ZG@uR9WFJCtf*w90bFY9fdFeuWM-lj0R^ z8eim(gmI*bbdOv>q*^gL#qEGb2E|)SJ1Up~v)rR5nLslilBUPcVVS)t z78RF47-dV<+Ge9Op5Cr3J(D0pF{OyunN3RZCI_5E(vkz56rq#^DU1?gFo7)g1|F-d zDcTRP8O@n=w)t||3D5RKGCrM(q57P-7Oe)SUk8;%Gf>&A5_65@3oUBE+9=c;EfPXS z`CWO9>bq$Br#_oi8en^f^3hN|rv0?jY&RsET}XL42T)=30Gmp9VW}+*#BhKU3&?A* zq})m;&ONKQE3|a;rG+}HRlSALGAK%p zT_sJ$EEX}yXqhrHNi7ath2&SDqkKO8w3>&^8gv+NRvh*xfLXZI{5J1y*o>>numB1QtpKNH4b z-;Au3qY{%g603{E`WPT~sbVfYXv@?i2`HmumXbbvshNTndHtfbVq&gZk|YGr2pKms z4oiw=>S{teik56Ow^Xxuaisak`IG?N>G)bjj?gKwSAry#%=be720S5}3RJ&@iscQ~ znNdLm1zDzwEF5}pq}1y2G7V^zmW%9=_A2`KH*uAz(BaVB*c`S5fGXDxP#1H4q~}CM zNqZwCS&M^KlEO;sH6nXtM^PC8B9lEd*0fqPo2OwW?sydtivV=)AvIQOWpoCs9_@av zHI97+=aOLC09#g9MP@j|iahZlSlD;{Y&yB?3D>;kPyTFczHsO~nPVVg1#wYl#8b)g z@IAKaaWbRaZ$!E&!b<$a_M5>$^kX^(tPWI30moDzw65JQ0eRmyE&clM{pod=U$n9^ zgK#u{7G0uzj7WBDi3UK=580JAKm_MEw-4=Gd&zU|yyMoZUi-4={l$Iv|M^Eh{{9bt zd~0hyXmoq!sq3lt)b-F4PA3h4?>nD=kupdQk#q!RC;<6nGfeMD zznDidL1BzTig7q%SC9u9c|^5upyYT+tQ?IQ)uuNsa!E3f4Adw+ql^ZC92N1na&-v@7?RHIMpcGFb-d z77J`~X|~k51{}Hu5gbxjLqOrzC1L_U;Ymg!=}!Ea0Hy`VdmrSRlI*I%$o*lFk7eTN zV&M^nAGITX#4m?#Bmp2q=lHiP9B!@zH}v_OE;I=kpF7BKo)> zBJG7wj4YC)5LH;T(zf9HkNo@ph=ed{sau%Aru;G2D?y%Fr*3?FioA0$9?|d(StBsL zjkS8je62p4w;r019AGntFR12XDCr09?e61hfOBsP(4yrRE`bvphin3GHgD zQ$&IME+7CJ#EfI}QT!#@1{#~NAn6{8W-YG_ghQ5S=g@E{EecRK+eAeUxWs1~big1O+LUDt!^kp0g*y{4~_X zX|aT-94HqF0I2yCl1&kWheLmne^a&WUIkDV zT`Rv1(h-aR<%8w(^Fnu-Fro0Rp z1CDj)cMUxf(?Eebr4$AA>T;@K8iW!gyQFqVz8S0G|%P>oUW; zL}3Etv#Iskh_jw$^q0^ck{n54RSoDHJ$hW4b0;gn6 zg|H1>7Jp*(Y1O;zIwnSDdyTQ;I-@2@3OF4Np%MXt>bv~q3F%r=>`IZP>d9u<;DJ~p zfwYf0*2({>;Uz8z`VK&z@nB+$YP1fv%At{Qy0mB@IS>F_ey2nx0N#hf9@LdIE`}5`wb6a@GA7b90%@sALuA+gm_WHc zbq3+Arp~BNsB>l*=*7o^C?(-&@yWa7Y0;`(+~*PJ|Ym$R-T(7ky)gy7=RFaz6^HPRH(|#@v-FN2Lf@{wZ=aEg|EZtZIqa zXf-L&0uTseBEsHY%Hd`7M14<_N%K2@^noAw@n2qEULo+|m}QRpQp~odo>+$E9%bW| zfS(*Yw3?IW<{1@n*}R-MnV__mTHJ|sWyaYnegza{%#vQJijNRptD4HJt9w7I$c{onTL7e4*gvzyyXvq>5y z7xp&vuFToYz81o5iF132p)Rt+urutuRV11=vF@`4?yv!*-|c93^MCJ3!hXZ z(NEczf$ia$eF_w&day8O2JdQh1d>Gv0LcS6*DgBO`uS6S@~8GcRo!7SJl4WJ}!tAG+it$&<1?6$aC!aDPP3Z-h zx@`5UR&%Gmq>@$%)$$M3Qfx1C3Wu$N1VHu0$GbRVDc87Dus}wV#W}51mKVEbxs8fy z?`GZ9PG(Dzw^L=dcxH`AGmMLS{QW7DHy6-L?q83N&`Pik=S*V@WNEAtZHb(->~qPmD*!Ga#aR!7${zD>NA^4>&lWK#{l=! z=n4>^4V$S{!YjK%J_ba;&fuBwgr&Q_Aq;Kls&<;SVHv2D9$fXb9>vZjHR>KD zK)htUMlpo4Y$!q2D=U2<-Se@js20mYHk53QTP=eii_Tbr3&5tiF2Z~UL|2u9KO6Zk zCk;iDwytq%sUlqiM8#fM>$d}vREg|jknNj-U-HN$0WcMn$_T{Z2NfkNYa)uPWEJtK zt99r~dc{J0EicvCYig!2Sp#`U(M2i-iVAEdIh7v~)MSmIGE$}@^Qe40plGE<*5Nqy zvawAU;>ZfGq!ah@Xs`^Emc%ZsG4Xd>UTG&QppqS|8k42SvAzk&|n!7J0AH<+5+cC^K>;1))cE>zv z2vfHgI-7w)h)ef2e3gJ!tJ%n8Z+JW^6pq;U;>e(SNfEplX{nAf2WZOGg6SIk-|YQ) z*lyWTABI-#_xsK{eY&OYR(DGXNgyFH8w{Ay47M>Q20X`OJjB6{eYuY9#9WWL*Vn;L zaviV}gAKvXjR$bJ4udg+87#nzGV>q=LP#JaAtXf8>Q?s|zVCZ?-9Og!t7+~1o^Jbj z{5;uGpYPp!uT`s7ty)#TRcqKiU_X#07#Y{S)2ow)@E`ppS65eM zJAc_>UY>Tm&_(9**@wbh9V9bdUHF9Bi2*ARehM4eC*S_okNDG{^Uz0pa=@;db{h#GY^N-_xmv>_905u9PGrn)8F}I8c+Hh04IZYLg)FYI zqJA_i<62ez_A)S1tpHX1G4-$5jB@4|LvX`RwL0*GYl)yato<4sN`k%s@zxS0=&%|R z)O>oiyJooOQw1q%tlF!w8D&jp`gqr@O4!WYF47~I~@z9{n zo#jaahrP{qPjh@tn7dPM7T>gvqN8de*^Ia;#dU=ZJvzbY=u$$rr%Cdul|wpU*+X)^K45^g)kAVhqcL z;{=dbthyT(rT4*ro?qkM0XaK#iXx)DoH%zTB{ zQF{Z>2IpAR=@j&@z-Re>%+Ur_#~t8f;qj1~&?)|h*Z zpjwI)pi3On+N8P=7{P0{`tv}2`k!EBRr^(j{n~PAPB67bW<8%&12eo1DVN-T3iSaQ zsH`n;L}^;_YV>_t{ciFhpV#!-)e)hYtk#L%@{lfv{G-+r3r}3otY`Zm7Qg7Nk zP;rJ-H}|CCrrPSHm1Yy*H6_PEb+Z8qg74vtxisoYI5fi-NgJ7*+Z%UcxaiwC`UB;& zto37a-oB|u33YWdsx;3hhrZq87mZM)_QeNue!Jcb@s@@RY=p7;tz}_>pDxj)9>o-; z=VVQB%RA6hb|tN#A6_`7 zlFnU{R&nGWH-pCNA3JN?I$-GWGetnF<~u|S7ul+NIE<-kE*yuXSIUO>9_Uh zxfRxSvXvL7XQIQ|;ntmJKIna3@)!T)@4NrL>+8B2;=HG0Lcgx%_u*>C@$G+5xEh{J z$;Ub%(k+qm{a~7{)r2GdduEeSnAUY&S6Pp1{Z#Ej<)Fm-uAP7R*M8^!?eo6$p@*JN zOme&e36vTu^neGDj#5>{Tbp*}8EdOBo;e?e=_(G@Z~Ctxs2aNTJmCpEx|GZX^%4g} z3ApONoGB_Etc%fRjv0e^mLlH*@_WZpFk6B4S78gUB2H z?&rV$AAHG!kGB~R%OTOg(4}AZti@QwqOVD+EaySs|*Y|V8=m|(8IT{jbeQN0UE=Rnf?#V0| zorcET@;I2OAmq9K(;YY9NOFyCI4J7f{LA2bP%W7hWQQc0ZfM5_m$SIROG8%i=JTd|lz1?=NI zU9h>2yV<1d9=ajTIVXF`gbNi?nc2+RFq+eY_Z8nWw1NjZ^E9}EfSkPNVM7$!j@2w7 zBvz?ak)r~Gth4e|Ct;=ocpHGjH@l%>;l|QQl(W_N9#zzt^DM3niv!e;BnUDWRG_o@ zTXV&q(^DzZ##TI_UyX)O>O} zg+HMZy*xb-S&G@r2awKVMXj{13u;x=+0#}w{Qw)o>0b2d0wCnq<|q!L5ayod(C4K& zTRO8#F!JpvPr83K9}Ad-SaUsWy8k_pPexn0M(AF(GfSkUmoNf1xskc*J z{mgO(LzbY`$A1BXxg9W6!n@1&GtHX)9$LiOo#|iQ6^yC(+R{D zq=3ITG3u2#Mm}9`Of(Kp)Q9oxaCsbRi>`o^w|W%8Xgg%k7ucLg4~IoHod&ge)*Cl~ zeK54|Y%vJ6mmIi!PqZ7&z=L%1o5({Ei6UdLr!V*_jWa}c?Z^q2UQ)Bmyc3aH*HEi$ z6f9Uaij>DrR>M#2aXX_KV_OegJHrms%LR5#XN!y`#VtQU*ku>z<|>KFwdH1#EUN1U zYY;~FKn9^Kot%3s47FeuS(fEvKI{X2%dh{aZ~fjMd9N2fa_iO|Uh0R7JIRKq2!nGy zmJjP=&3b;LQP3fMsBV0RQ-TEoJ(;!(0(~Q}>P*Mu<@0Xd{E44=bAh`vr#y{Mo|9HT39!l-7La;+QW_2+ZiwJ;jk+H84nuY-{TjB$%t)u-;L z>K79eEzD(BmU&%|H_ooV^_QRc+VA-Oi_6RN8#nGe{hp<+%`&D#uT5qXv~B;^Kg{sF zV~`?DKxn2L&p|gnD@DZ;#;qjo{GdLA9Y}N>_t9^C%Vw7`tWp(MXX#ynv3v*PP_o>} zu}>UurqxobSl?aNzj?$&e7wB4@xaY@KK{hle(U#s(no*jiywLL^788J>`-1W3vYy} zsXLwp!DhEQ;em@8^JN@r=U2XwF@6?xn4y}8^HbeBe3Wx zH?D`Dy0(r<&jPgRo@O5FUM!57goE(V9!8zd$b}~RcDL&?e;*P(9S5qaDYW6_U@a?l zI{OI&{R<2w^L)Xz<8R|o(J@V+4E$K<*WpG@r5Iu&JJJK|K{a3h;HGA)mn@*Iu6GDN zRZclNu32YPivT<-4UHT_?OSzBIgBs$r5c7ewRGBjY0OqPBM0>#U|_x;jQbhJDp#1Y z)j|5d=Izb}+IubsEq0}xCU!o=*}y$l0f}O_Zh0Q8X&U&gEl~*sZnM4 zP2KBv4t4kJf1vwmx~w{H_uGDR>Xbk2X=k6#_18v0bV@6GL^GPvaLnnR$2{I0MD|aN zvuLgJJ6iI@`+&F<&Bp@I^5^k8f>VX+G_*< zqh|#^fxNpn{h<}wo@P_yX5hDpfLK*jkd5$T2f*)cs~hQjh-9dB{5(Qo+TEAZ;N`Lcl0X$b^Mw#6?Pk9SNjO5{T+mV%8s+v*aVsqNgPrz&@FoS*06tw$eyNKsNar4^6<6bfl-;*#w&{3d=(9RJUdTL0} zUuA*HDN3}k2~@(?$8*XfNoTv_d2I)FV!VoX@l;#RWSm6IWc+BtZ8&EH|3W5&QH8=K zR)wNd=^!OmN4<_M25HWk0Mm>SxC-!H6JCf!E!T=p6Ry~#U=>mdB#4QUDr`+gjDKec zMDbL7#5hyPrSl_EU0yWmv1wU(&suG%pB5BtBG8(JRTP*#3{v8`YfTtwr_w#nrfOYP z3W?o_np>r$zA^jE8D$Z#iuSxf8fYs$39D|fUm^@@9}Etgw3lLflDcUuiJmzlvd)oRWVmV5kx{~`bkhK#uOqNJ)M1kk1IYE%NEMFW1|`O z3|ghR3<_;Y(@oSA0Xs!CqLfQ^yOC>NVS%qJH!I@+T`yNVXp5stFkD=h+XHW0Q6u?oeASS< z*-=4lZbh}RglB_}M|tp}hra5YzxS0deE@bqiNEiU_%*LuuZ~5<`f=G!Cbd>^TQf0&U7HRiQfwV|F7qJwcyEXsKJF_D1lfT71N2XRK2-lBavC z-P7Bq^{b2XYK_R+Ef;|*XunWiDE4h~v==8}&{HO=cVF{H4#6$;`lz9Rm4QBa#n%*0 zGvV;Le-)>3m9Sjvl_q9RmYdI{?meAQ1}ubpdF(E-6y8@*7o+i*nz^jel>=-!0~=oc zI7scMA2eqJU^V}1ixKg{sw;_l#rK3529J2eud2(I=BpKZ8)J*fNMSar>S>@DpxEeD!OHar@j10 zwd(!M5M#M!@vZ*~q3@QS-i|ae6W9qMyEVMV@}7eEDA&X8WFx~D96h4q9+BF0Sbd6L z3#8_XW(ve>Kjzxg^xt`lOtw?lm{on)%26EjikE-jNKxuz$aV|B)}Tg9mZ(F-0a@KB z3R$w99SicYbvtGxt$JM!&a-KRm-J+Ji5_>jHVFk@im3dUd722)vdvu5<L)7!?IW{vw@2`BPOweUig!`SFgmTNhA4-r(n^{%9 z9@M&D=8R>=6&3mt?M`&JvRh80h20}(Nil8>0I+4x)zWcE)eTil5@K(fAt<(%Ua=>w zrds8?0_UjA!7asj)KyFZqdDL#{k(6_=6)bnDKO5P|K8SWW_o}>;~%-IheRq?5`fZ* z%4<_^n%1y@{uT{ys45xq35PiY@5aa^plQCLU`997Vbnx*w!h4`cZ)-2a_Yk-g-zLw zXS${HVO7Er$__a+9XCHFAgued4L-*Ht;5Q~4xG&{Hd9f0rC{SLMAp7DlgRtL_|ZS~ zS-nau4410Re`T!bli$*q3>lS%&_FbgBG-MEi7z z0=e~uhlHs2gjLqFvok(i{-dw{mcRJW^WOI*k6m2$hMZj`jO2wOg1ofC>H` zRFtMErG(Sf+H;R+n@ZF@%Us`7!6sfaX-%_^-}dccfG633+`WsiiHSfh~I6mh&`KtU6XJ+%zAMU$f47 z$ivO1Hgm(g%JIhi_doMXzx3Fz`77B4)6(E8|8PHzn18xOGZ0R50c*ePQV!qd`&*A$d?t zO`N98u6;SAX{{~78x{`0PehR%I(7=sM-=(K)odd6wEfEBpb-3&5T!w8*P4LFz%^qD zy{oBOnU4bxo8Z?yWZalnY#(zYEjE!Tj6|A_FOi%5A_Rk2X35CzktWk*(3;U1CtyW) zMz^XeRvyFuu91<~wb%e4Z0RW?MV*f)cV7Dkt676s6DJ-Xc9+#3b+0({9j>S>oezYb zb_Lo2zs;QHEU~zh(0x(=jcsU8gDwKD*m=_dOD!dTg=q|&a>)jk8Fj(V*K*b+u}Njg zsij3ecs4($uLydYkDIu}iIZ-kH*rgC0Mu}26st#8q<#a;a>ePC0aG!<-WGvlQhE|8 zP6tae($ub~Ob$e!%Q*c1NXeP|C z+xFF#+E13ps~IM;H1$(Bp*LPY)2}cvZ=>4|{)05NP-jey7ua@oS`_m%TeNClMK!If zWi6Zir(3&dfzGtN0kr&u{ePloJS;c7?S#!#Tvph4!|AQD-gED-+flD8sIx6$htlk~ znujcFdr(}Ls${5m$#75LxBhGMXq;xZgt;lIy;2I&jY)Ax4~teBUf`bElk2)+^uTDt ziAWBa1n$~!LHx^|1q|mj&2*Oe+alJ$<1Rh~H!d-+S+--gBmJ*qWVY4$w@H{%uX??wv0swMGxK zyy@y|O<}w6h?=E5#BT9Doc_qR-%Ws7I|;bJ(K0*}p=IIAmA?GzzT+#u@jGAfJ}-It z*3-<(*feQW%sEHcf7&>Z#$_>B6r}extx4MmzSl(rf17P!hE9=FDR}J1JwHEx&oj@w z;w3NsZ~oZte6L3zygIJ^xY1=v#T8$3FD*(MResnqsK17JsH>~ipjb_$HnkSu8pEI- zD+ZWoT~}f{I~>0B|M#u`_22%dk390AtXIdYvCFl7y{x;`wzwASwm&0lx3vHu8k-feS#_ z!h&p?0Wsam^d2TX)d;-Fx*S+&efN{MzUaUG)1Uo&Kke%3xbQ+uE3H)K8JQNMvb(j+ zykXgvk4~NOee2^h;1pZsaJ`M~6Rb0eO$x6^hjw4MZM#?3l|b*k{m^@ zU%z&Fap!P2`?xRq2QT=P->|ML_k!(oLg5)|7c}V9$Eka;aba4VqofH`POd34X(kh2 zHg6|*U}&uIkHtf1gI0JOCJ!Df%EpHTEQME7#u;wg*fwXq_NmebR&2rW(#n&wlmX!h znzHefZK=L$^+OR5Ar4RNGfh(wig;kcJk@6I^biu?~7nn+=ovo4yX26fY0crlo z1X0wD&xQ!l6yKHtwuIW}xiLb-Zp(=Yc|6%}*qk;+rBOrM8DADTyHSR+t*v~U$fTa{APxEvS+z|_Ln1vi2!;oq zNrcAjk3kakFXZ2XR_dXbwSUr&fAK^@jOsE1;gqp^@N3WI)rUJf{Ycm~nn)9DGb0`( zo|ocTnkcy^Yi)4XFJD}UIvQkg<@dxMR3n|Red7ZIr&)TsQ6I~a+0tWyX>dptj9l^# z3A5}GyNZVTX#t^sreTmh?^tKdyS5?{G@?xcDQQ2T(!HkqMp6ySqA62eT0NX8Oh0#Q zuIxTd=0bzn5BnNhR!)i-GJ;U|K|so(7iob!u%@4ca3u5ECTD$~FLGQimJ z;9X4I&}bV$c=$G<2&^Tw4?f~+Q$zrUdh3{CVlG0ri*lOEMK`cP)Dx>{q#dhsTqL{* zJB%?VQM(Dj%B%p-k{6*{Q>9ORbtXl(Yp{(WGdZWsciKJQn+rbDaksW<_04gM1ryi_v9||i ztl6+`U&gLKYO@zzeg+m8SBO<^bAA_BR}b90|L5NNOJDlcul}4r_?eGAcvIGum!&p! zHbrLp3M=S7ZTX>@a89yEyowmJLO<}zm>)@&vrNK7f=G*qsLYd93JWhk_lv*sFTd@F z)>Y2W&u`zlSolC?N^P8?+lph51Gm;Kzy`gHYv%E^eatr; zPXrKkNZ1O?S_una#{0Q7XX;gLP7$`D=+*t)09ES(J%T1}RyqMX#;I^ySkT_0;@GNM z@fHr5NSGH{*XuWKTwOl-P2ctXpZ>`o_1=#?d|ZzQK9sc?(y1-N#Ihh&Aro`~z)&_l zjHy;_En1CYiIS*38ll}@C20v5U$u;G9uHc|dLQ`8(fYjjs&GuYOzHNJA$Q&OE+kB= z$oaLyQTX<)_k7&{`1vpR)jD%GnC_6` zQ!ei`6Ji@Pf_v)VitsbFTk|P8d4Ph0+7{{^WyeO2J=S!l2-P+$H;T|`Oy zSDCQ+dm3A<_Ly6s&g`?)M9oR)QxU_odqkMEZ1gau73&fwGIeCQ-3_X$hv}Q)8#YkaUh({MyYZa?eOL20+&EVLN_U%Rqjrz^ zs1k&Uaw|>ZI|4vum3LO_SnE)3$bhvS#$X`+7B4j^VQ~*162%W;vMM+0z))mLvvc63 z(|Unv!d%Z>E8AkAvwQnXt;H;V9Jg{*j`7oKbGyqYqoo@B3k!(7oJuhhFG{aqYodgC{ zGXJZargTI%bye{z>l!8}#}xH9c2@9))Vpx53yp#)I^|alZTyGcy7{eY;dUZ0{EKf8 zT3SbE9ht2RmfT8jjl)bN*_a6W)p!D$ITb}_@ax-CC%rNRMXGhw>6a#lU??<5;1>Qt z`{##wiEj^MzO~Oa>kk6Z5_4x2=gP~Ane`?&LA@80HCRvlvRPq^1^)&s$kh7i=z74$P##WZV5QI0q zU);MoBQ?trOga=7tL)(T%Wc<`nyN%#r%w}6ZOzRl3Y^$m)SqqoX0FF}Pa-0|ygEMg zz|GJ8Pe1*c+qYl$hM#}Y3m<#>nOl5Vx?GF__SZlRZNF?IUk?6ye|MJy;_7DBm`>vl~9j_KXn0YL2GlKOfj)UvA$a^>qwVbiKQpGJ(y!uCg4K!`Y1| z-u4S0_PL+?vfuOjRuVZL%iJ<8T)u8A%RY{1szPiW__N>87GnH?;n4+H*2X4bEEaJU<-S}Uw`2XITL#LV7^oC?gUX&d^q zJ*Dd3S{5M13JFSC`e>p0SD|R3c8YgYN@O@sVb)|9bKmS`YnFLYGUG*cD_m2eDDO~K zSTI;16r9b11U#wX;cKZHzbXF63!=SBc5#i2w%G74*?%c0qnS9<9tVgKu@0%nv+kPD zTTo~U26hv1jwQb40e80=lkH)qnjt3&(XDBclY7M=wPArG@HvRE)nScMoev#1HTW0h zv)nNo4V?yZCRZ>j(aH`a_S%zvlF!`5?2KG=1Qn-;Ps{8frJ>F=vG*)VbqWfbtn``| zx646B{UX5em~1nM>2pPiH~fixb)niy5;`yRNGZou}9Eo{z z7f?|6+XS3FAQ4kU$WSL17OB3RLfV~<0#_(1*!1o>43r1LX!n5d_TWaFCX{wEi<$Sd z6HFNwUySnE#LV-R8MLEDyDs>OoXwAjiGx<%Ttyn+Sq4<96If?r8Q{4%E?Z!?ygss? zuFcY)6`Qi`%A1Ys;uSxdgfdp(U?z5Try`}v#FWkL8$Cq0Js~JtKnH}ZjkEd04YWC_ zg>w-4OAZ(qCj0|80ynywOvkxM#`iy*-k1p;+R$5|U_ybyK%OC# zycR+}L7?`5d&lIa3Qi>`<#cj&i6+vRc%Rd*Q!>unkTFXoYN|DK?~v@2YnLP2cTJl) zfL}Qs!BicOyFy$^^Y6`if8z!`Im40nOc1#8f{|U7?CrC0_fUEz22-}acB0a%?1l+H zE`f5!%d_OVd2! zpb(E#nc8Weqgx0Ox9EFc3B^QpU4}n_qD&=@c~2%LK3=Uadi23R@q2&k7yN&}@|}-A z@$iEWK6B^pvMf=ofz`hHzDcpUWMHlt>z1ZZ8`W>Oa1V%cvwvt0tq6S^8|KVLx-JP3 zV&MmFUjNabeEmQD`Wv79yFT^&aJW2PEo~B$`i2PGOg`!~vLz|SKp88A!8Y`T-F$?VY z=s*3gEU9LdAmG1E0Q8*NYPKdw!=0@~jG1%HH9&7nf%aU=oG`8H<$c%h`<2Jv`E}p= zeZT4BKI|ngdid(FRbwq68)VyIr# z*?gkKF9s44sz(G95i>8mu0+Jk+1Xpa>>vH)-~NJYhqLn=*N<0MyezP6K{`9!r;r&N zSgYeGy>D3#+j?lJ{XmY4m!eWyQbJT`<3~>cMwnJ!X`$=)J@ELOf9{q4*?;x{f9iAS z{9G!bQML>2Kl;qmvP{5oC)O!5QqnjW zCRtO?+CJbm1y387vFPR@MIy&v^P^$ZoRtqs2HwgPIb5oKKk=>`GTUzPP$GkRQ)&w= zH4B!syFIHHX3fXZ%wfl2q9h2L3`Rx~K7y3Uq`Xn7vh!r%}Lcn`^;aSvh<3zW)3kn>8PaNPLbGRMwyVK$$2TD=& z*1i63QH_wjfTnk=p*584G?V8UDK@O3MF#Mc(<0r+8%<P- z)`DdGGra=5G38KyMk%IdbHgtMq=zxtXJE0Mz>W+D;2_2L3sa>*HKA>}0&tC#TuBJT zawDcnakzi{3hlV`{~*1ySNWPXAOq=16q3mdAVQ!XP*e$XfHb)1jUok{x6vSv1CHBC z0$59P+Uf*vsSSCgAOIerJQ6^!G-kn~&e^dqbEa%kxP(Z5`%tBuu7D8SMFJ47Yy>uw z&6-k1c26BPx^|QVY>UF%y&YI5@@UM%zPNBTp{}h%?>&L?0)gBt?D|L|q)rM*fMq_h zeZrMjZ7snoTMz>C8-MU@<=mio6o2OV^!7az@=83Bq8vig8EXbQO_RWL^6{99|YC;)M^(@+DvK zEq~!}|I1~|s@S*>Y+0>j^Q+AhD}-2@1-Bgc&lZ6a2!hM@wc1Y0gQ=n3JT@vCLG>o##-ZtX zWo<*%3K_k9RGdJ9OhmFQ3$IsCK7IG^{FOiTCx8EMzI$;YM6}XM!bA)6QZEn4kT+E; zb5ISgtIm3m9y#cBTB(!4foyL%UF6f7 zK66~{_1xEmwZJv}-mpg1Q9SJKan8>&Jh!01tkO;9O{=_Yu)^_=c`b`*|E8_n#%x5a zIVgG4Y@`}e$a*5pSqk}M+JQe(EGrEXYe`4>8=pY4XJ)EhU!b+P5LYlUa0hhelaH-&)`Vx+Ri9%>f~;FVqLb=kPx{wdD*HPuCg~9*C}3a1NLMoy;#r; z*~CJ_v{nq@Vs|F>6y>=J4I|}&5kwiLr*t^`t}OV39kTFc_wa%2Y9U}MgK(yP9SrUA zdfP1dwG@HRX4|2}r3?^EHk(Ccb=0l}HKg2Ew}h1JR1Mg8D`i~ma&d1)l5f=cYfJvA zNOfLopM5!sY7D4i7AzSB&CD5*{(HZ=+?XF%ioFu#8od%lO}zSGH^M$7A&g7Fq$etn z*cx-M=F`gzx^lB@8r_mHEMnY0^Jq~i9bZa6EJ`Y!?Tcw{zZDvne#cQ@&*U}Y6PqIsdaoGv`xnz%7MdWZe zTxa^h*S`L#r{DA0zvEM1{Gx|1FOR(N(nJ|(0|)xs&vP{p7rebCBi8HDy+E~Ih-l30 zb%uIKQ+kVNadFiLUsQbc9!C`7fLZ6(LNm*8>Le9J%aqDSlp130FsJOO%&Wn}Y1SHt z9#()M#iNu@(tts*)hHdV&yD+!{isev(q{3luCDI8aqZ5d+MOH&Z{W6d*y2Sj_zy+A&AjPQY_|Z+iJ}`yC(t*Z;<~7r*#wUCSDb0blwAzHWnI ziwTNB0dM+q)1=nVah!~_162@87o4lic&cn)ZdwF3PqoXdn%!167$4}JU~ATmDdEbiw``rRwy>xYYVkyX;>d|6 z>nrB%yg}UC-Ury7%{ERtAu=83*|s|AM!-h5Y6VSzhdYgjiimw^%5sTiD1_CDl%udN zm0Y4PTc|6%#+s;J2wG=_IMVh{m^UUd7)`Wf;luKGGeprmM;mA)WR;phg?4Berb4ND zkJ^P5>WR4GRsaRT!6$(^Z({7Ry|5`v@pgWNR8uaw?ga`YaRPKu&AS8y!)rQk=bu{_ zI?-~)hE$OnR;QUAtDTaCZ7C7KadcGPBqHOcD6&GO`w<;r?L~{pxaFPG*C(0fNq>aU z604NeWu+RVq-b;@Uo+Pl4y>rCxR}p}4k{*^UZJ@#yg*{@o4sOg&Cx~-M$m3Tr=Kk2 zpk|a<`A(Hqh^B#S#SB{P`E>rN*US;>BL#5?KkjwB;V7Wo*Z5A10mwCD1YA(iN2LQGy`#tm$k ziGcd6WMh3B(M2vMw>W}%_{tr3A8sFY13%)}iy0aMXP!#jAf1>*ZmsuHIS`;cj$)e84pU`$zpxKn|bx z;j^h+A(j|{XK52=Q@`54g#~TSwoVESvzS#feRyug8bHs`53{?mJ6Y?i>2$yIVw2ip zkLi9n9vTVcu)GolAj9O%+kQgoq_uwYQmCs1jLpzkq$q#vBpt`ZVplMe>)NxBk2K&$ zuXf5t!>b~^EN6%12Y&L6|M+Xa{T;vj_TzLY&z(n;hT(t{}+;98Y zU8pHHM_GprLNvN~nKcLl9N-G9!Bl^lh!$qz!-1LT)}70jyztRK@w-3u17G=)tr{(erO!RPB*cv57?#m2|YfC5|03bd+6;tuB$NJNc`T1Q0WMYa!e? z7eloGHzOt@hr>c7?|J&}7yQM~{xARFZ@F{#E|sMSOiX;>Wm)2#V5B_V%+;9pG-)w_b0OW@LKCZ6Bi;5QwOpKqNYX0WjQU{3wrZji@twUw_%#5GeWYAIy z*4~_ae6;B18=yni9T$LNP{XUfQ-j&!d9rOcv#Z({Z1;;S>bhsAOFRipM7Z`xH=Xy* zyF1{fUo>Y?c7&kvMzb~Br69zTIHkjW<*(k!ieGwYKY?2%(pH_sQ|NjGW6o^6Iya<7 z)6}o7RWcHXw#y2cq#TTw6s-@{?Y>4`11@PvSZn~_WVPRb=;Agy85uDnPM+M6*kk>$ z5v{LNc50)0W+0~g$z}wzuOwy#C9`pu*QsD~g|K(LJYhF;)c*KVl9XO%X4j&EhO^CN z;BDGpfc|h`VL(f?N@U%{aj)Kn6Byd31cy~pAj!d7@N2ta-+#EqGf$}i2r1UCif~1rf3h!M~KyB&>DA}-}E^Fu5%$OJB zUpzmkGg{iFE{KIa1q6X?MjI~EI5&!w@+HwCQ<{ckGDc41HN=V{C2MweTThlZ&AncB zjenG6FZ3m=6iOJoGWHp-Io`l&>A+3wFlE4BFM=r-1(O@OW-M9Cifp)mATy*C)ZKq* z({xa6UrZGodto66bsA%%JeTvHKc*9ym;HG&ffK2!W;};);gF(`Lq|Gh5e)(snqHH- z-vs)a`eN<(Pn{CkqlsEm zT7DWmAtG6&F7aj}TGy57V}H%7?!W)$Kl_?jzy9an`r;QpcKi12ex!T%1bw(FjoZF4 zS$Z-=C#rT$(V*%)>e{g5umU{FhuI4lzv8rocQQl7>ncoi|Bdsvzw2FJ@|EB6+dk!^ zKke6lI1yc59V?-=3bo84*|VNHhpINM+Co-gM#Yew&T#+&P+U#PItei4c#Uq&rYPWh zc+%tXcwVdG+dwJDgR-s8ncF~Ql}KlS>$B} zP*ERl919uYDM%2Y%jWO3qa1ADjB8UKP1AOKCrwqQVVQ)Km1Fgi#2WMw*6Ak*H zI6IWm>ioB3u1;tS!!|LzWU+9p*5OmK(JX51NxiSb z3XSUH;PZXd zpHL3H&#W4}bCkT~m3qo^wNu3n1u+wE`COs3X$ht-CHYhYND zvT=1PrvfOtM8w2oAnmE7lB`QViI;_F1 znNg@oSxIctO^}Bkpy`x7-H5^dcBrd2^~*xy#wMNzU+%&amf)LsgR6!R&8k}-N;&|K zkSaY}u+LbX1aU&PFr3%_oZ#r#0C?*u^e|8rH=SAc)HZxja>=lUMKuLn5Rb->&EtZt{vZc{s5eFiopkgSTM*+H*uR|}zhSfRfP786O34$Ysz8QI_}-XhtOiC_vn z8=;IgOmnpW_He~c8-{yPl~@6$l%deV%**nYcRc=OU-xfc^P@lg(ic5?admllbyYS& z2D`!9Dqnj=W?k!{T3Vu+Wy+$X0ROsOtK?b=V+6Yl%ZDTv=JWHztvi?3&dxse!#>~- zedZ@U?}3|lFJKo}nPlZYz1imn`plsIMCp)TP{}5Y-B=S-GK_M4K_OX3>nO6WQa3C! zG10Ya=YQ{?eZyb++yCUz7d)OjzZoW@CZWvlInfUDQDvLAHemL%2ZAiZ~814~KN&4zhfKRb;L7*OkuC59jCa{JMYjy1)OwJpKANTz}q!d^lXnN=yrp-^@99 zbIZy}K%%|Qb(R?Qy>lA?fJ%tX0n{2+>vfI2Ah>DumX(OF-@Nbg_U+3jpZvf-_vhaK z|NdtW58OOnT(Yd=NL6N97Frg!=v%crI3s8__qyQ+ z^;X*-cEY4HZEq)g*J=+bfh$v^DWp8%foLKrR&VDENAVrBSz|%lEMKhUCMil3q*CU( zx(aL7AuHaD)j$17oXsk%<<@Ptan{GAkH2h-&8W!D%Ei7C&9X)yVoJ88+&x&b!RTF< zGv*;Q;f0FooAWM)z6pW|2J+X{-bO z;M*NNJt2#YXodser-#0#8f_h~VcGLBdF}W~`(q42c4AAt(rA{)gIjBSW|@h)t%%YM z9~2!Cxw{x-u91y2(nTaJ(V!tcv#s|`yQk3!gdB4uGrQc3nt3|`SJU$hlu`z)poOo$ za9hL1Oiav>s&{L9yDQ0<{Y*?)@7DIS9Y0fPJ1J$(-4mW%JSi8?)o4Qw%B8viq1DYk zy((nG@k|u`BJCGsia;W>Uf>iH*#Tp4WyeGmDZox^li-v^c*Z(e2X@*l6kgLg9-CA& z-16BmbyahnVDzcHIrOk2M#EuZcj>S|@cA4_mz&BUctTh&+YNG&&ijQecFKe4lL-LD z+*w~$(snM+!Fr{Jk!B?o+`Wf8m;;-xuvZ?(dT|+tbx~+#r~O*dX-~(vyIUYz0sVYF zGkQV?bY&TrZD#931QEgijb0QQkgg~rz*5bdZ@f{8(Sd33b1n#n@%EYs+gNT^duG!# zgBHdofpq_AAvaJZb=IOiFeS$BFz!bd!7e$S-{0nmYu|!`fem_&F18k2Nwto&69nst zdE&c`zrD=J5N2W7?YhKl5l+e37Eyh6>@}|~QnY8flXbX4V?*|KBxUnF?-^0oHukpe z%Isjx0=vMV04krIHPFAQ%0#SBizG_yJG^g2m_p4wBNrngX!w;I(nv$<;gnE3;E6%P z#tdq9CZYoq@#y^AfW`Z~*CT)W_ka3B_g(+4ANaBBH*eg3|IORC?$(_J<}^9IQF8F& zx*2fQPy}{zK!l(jIUcS*%(gNjD&JB!9I_BeIrfz4^0?l2Ug|%?d)|w_x7*&me(8(hx5bP-OEc{XFNC*7?I*kUTctXaB^i*p=*YWGU&%q z>XCl98R1T}mq0yncRdp{M@kzxj9n$)|ke2fh5U ztIOlr*+I$@uQ8#>#IzXWSw|ByM25y+B`l{}s|s<7j`gJwNtCv4N9b~B4Z%Vr>w36x zgO}y!zwqz;>_7YRi(h^B%@;f(#8=0w!@{LElzAfMw=7p(VQO`TJ`}^+cW8ZUKWUV5C8ia|)wYiQOnHMH z0-BwR{7QoR#*nloN~gymjVIul6Kmoojc=d;ZH1qq_iT;Br=cYg>#23x8AJh_q}QZ4 zFQ<1Za6y)xAdbgK>RC6#AhK>I9}bA3SeRrW2Hjy?^Q)^YR+GRiK?aXh7+?E7mJ}ae z#e8UJkSh?pk#sj(dk<&np0s$2oVxXs={>YjAgVy~(Xq5cs~e+n;w17w{eeJEgDt)N z7XOpTZ!y(uS&(7mslAr~EV4+ed?gVcS+vyehpWgh&xT_+ST5ipr>;4}ryRX;G-KFd zF))@Cx_G<5W9ztJ^Qt4Lz?mnv6MEPNiYJ?DV&J=ta`9Q4(n}a#sk4RSse<@cAsOGS zv8Af57DO$PC44ip`bJ-yo8DTeA@*0f6VxW7MXBx8CNXB*_GaI%oOe{UyksKRPoh*w zl6Kmbf3e4)1l?$2ppd#Uu)%v%P9AKGQ+DC1EgH5^<){Rz+?_9s!x2}fGZ31WKmZ6{ zoCgTLu{DFx(5|JvsNx#tyNt%>B~=U4=PO-YUUvY+WOB%cbY)1%nQKQSuPtv*)xhsG zrMJkwvHLIQGYki2^j$W?8PrU$)gsj*({g}9q~-(lQIs(L*9q=I)D+ZR^?9QzI$A3_ z5uWAQyF`C<@6LvX1<)0rxeubYCkaR(DRL}rc!j)|%~RU9=6;tx?~o$S+s(@Ffi*C# z0en=Hq&KDUbEMQsXxkAdtcgA!O^=RD7c=V*w%n!V5YeXNBA9v$NvZiGSFf;7;X|E$ zL$P$B48;lM@;6LrqEeuvUag>tWc{Y03gazK*vXpNKMOI;>R@|3jNMld|E3LK>SiRg zPuh))EgfT@#=OxMNCh^Ac3a}0_;vtFp@z?#;zw^&t@?I}I9*-hx zC#ZIjNk4K_V*}Axt=85eNDUDsc+o|n9e}g1IE`KpDwdwn>Hx5*;V<@uHs_A7VQUeW zX~d?Wt$KzEw;ijE0PF%7q%QDy>HMEEQ=#dz{n=j2V z3!F(GIx3N*?XEnsBJe17t!ZRo7~4SuF)nb`HyEYLDJFFz#GM(w$A4=aN;3&#&EBuddd| z-|^5#e)Ri&&YyYlXML6strr)3I5a_8JH&QcEcMYrG|u`cOd(K7cWwD-H%yzkIgMBJ zJ;X-mC5B8)Sb|ummfCQ5GM?o8+AxFZDGmVG{Kz3|>Jt3Q$yg`{Z|2Cy;8ZLXtpkZp zYz&}lR9z1o6+;uFD@1NRQ0V5}%-pG$zDD@~MKrAdOk!`a)lucx231Z(HCFS~^{Fd# zW@a~I2Wev6eFUe{QIQ&OQ@O2LVYBzepUU9Hjgct6ohsHKyzvWJl}ZM+KrrJrLZ{pj z0bD50u^^m^>$IFD)?DYUvl$b2C;(0+vN?N(}tGRvNy83WqGEo;@8(v}C;Z6vo=0iUW zU0AMowvZsDz$>ko(>{e9xXu{(`z=zgCcwrXBs293_L{I1`$v~@u+n~n)RQ@b6yGI9F*Sw>*v4ZP(jjXvxx;dH74CxyqSbTwa7 zshz^ZUa1xy?9bo?BTGK8-WC-|^GEeBjs)E(d&aGaK17MP`-6%Z8U2BKvvWupGP4fJ z>>+twxv_Z{luoH_kYDU6Ali3&txC$Yvo8eeZ zvW`u7C*dShwpDn&hElIp8I>Z}Hghjx($6PZC!<7$LAY{?9I%klNg_m(L4wAQz%Z;i z%^G87o;2nilSS>VkgOsw$;wQ0ett$oulw0If91D)?+?B1XJ7EpgZJII?|3|39gn?o z#k_a1s|l2;x`>^Ga*Qhm;cuynUTtT{jI(~*Z+5e+%(O5c7Jlm1o%^qy|AvqGHNWdO zfBemxH!dzOnOK-bR&E(t({HxH>qe6StPXCa@uV50vUZ!6YlvWJVc6WxO-B z$1{%rEmI3Fp)^MJJ|o!eDst~IE{>ntG%u9e9&jZ%-i|Mz8d+!&R0}uRbmcTnaN5R{ z(mQt1fuiYgU(*MDcXbgWW)@kmUpxPmU-{J!{=oPD(!cp%ebfiOa7!>gMi*r^JlV?YJA|zm@2;$m76&t3&TADCp<>_4`M?X)az;cX>vA~U z`l%oP$^Yr|fA#zS-SrzcmuuJ7^(eB+S{;xO39Yi04e`jltE=imjgj5~${*HLs@~%Q z`F_4GC~w5k-+6xb&IkON|LSFb?@t*D&NqCJ5tT+D z+8CPq8MZm;#7+z3@|1RCh)%J8A(}F*0jCaY1r9xW=frC;oTe~#^{I><8RYRS<5}Ht z#x|YaQg8Th4Vha!ozOys=~-KZmfwcwz%!W<8LQ0j_2@jS%vO&UfQae#Au$c zfP3Deo0A!cRDeduBzUGxm5-fvQ||Ic$L2vYW$h;2+9Z~I*VLXN>txc@PoB+nVD1^r zm@6NGiT<;(_0M)PUozyI4}WIG*w>?l3(cL~!AltRU$@2F$f}@8UTdO`FKRv_va<+z zD8zOaYftvYYkQA2mCY%ib{hFCv73bIkdS;M&-#m1!_6Q=PdTB?Zju{M2ZD@gA4gJ_ ziF`_R=Zu<9W_DPP1RO}z>VAp?_FUStxx;Jb&Q=kE{vg0td8si%OVpF^@VuE-0F^*$ zzuaO83e+w}r&Qy8x6c?7a*h*T?{V^#b z;>syDhEM`B;GTB^yqY%zPBEXebJr&x$2oN8)pX78H8eW9%nn!rHNlP<5ohPQ^2BEJ zDBADoN!A`SP$Px-n&71@vByz0_eS>VWRlTXiu5s~qcKkm+hS9v2R#~`Td1z>US<_T zd1l~n|G=}7QOd7;sI?wc41f0~T1VA_&e{B*XHrM9NH@pin=C=w>o|r^BX(?RHgrG< z*w6gsP1pYUPNj#n$5~L9QF|7XtbrvqJOycc2uMH8=sGj2p83HJ;)nq%5O$1g#>{G3 zs6G)h){NmBRDT^*(n?`3#CQRGos9c*uNMPB{q}utd_Zy=UOOZb`vRSOl3h#9oLa%C zmTr>Oz3}1QQJn3`I?CP#NBX#6p=lgEx^`e~7CgC_ebctK;4Fk66cpIOB=N+>QT6y7 z*|M%Gqsi4sATOPhCIMhq!txOb9+-QSI+wBPZjd~U~Di`31@WqTqsts;lR;nwBV*L>6W zzV>x*e96n+`{M3hVq&Tvq}0P$U^u|cJQ~=jU|*=AuGT0EyaP>vWHK6_o7J^4q>h%YX#UhwEcKm58ke9bp~_lLjg_n(~|)}sg#5nkw6&){~T zq{y`|!r1U11G1RTf-g-~Q_Mu#W-LTCej!5ZS`OSMVL4tLu3h8h@Q$zhmv8vuzkl)O zx7_!@^Opl3uP%vb>9drz4=%LWBTw1<7O)gj>)(~2FTG$QVRZ~dRiwdkCyeB{iHB7i zjN`zDl@wW-WjVWcc33Wd^@)q8-u>9eeC*5r@E>{c@A-Yp{r4TOE@_qJunbqyl@#U7 z$|SLFW!?Klk8vAoql&{_fzfoA3tHKPE@sf``woX}?YxoB#7rm6*(&aXOx@UspE*#ge5%pI z*S1O={*2x>1cF3+ta~4f?2KiXRfmBF#5JNLCgU%=av{V+R^j0;>hG*lPLKJW_d8$c z7%k4GLN_CfGZC+=3chG+_AHjY+gdO%kUVO#NEVG zJ=&|-N%aMY+Tx7W*Wac|sfEucXvXRDu2%$$CA;2s_=GNR*qj0R$a>GA`N1V_hSThDT#g@$Lh+RynIiUWSQqWRMOda4`#a6d z{;`ijWz8V&SHrk1`a{_=c=`%~T!fRY1@QwJ>Pn9)k$ciG=CzXh^gwF@SA+u3Wx(a64qkkz*#UK*gC&T&494A_b;8eJ3?-{&O`Hh&_+8g* z@#~IcAxX=Uf(o%CwcmHNqxELjQ@8~zvyW%{_K|9T8j1ik0b?ImowRV$N+^A{tdY|D znhciOwL1SEpvxf9di`Vw=`S7A^Jr!y)VYSXxbR@i*z8jMRn6e^?7Jl6W<*Q-)D1bw zP_?-tDTXjOE?9gh$&`|)G88cW8vU^T6`Z1$gFV${Kay~z%o2M=@S@K(>?E548xYI- zp^+L8TCsPt09L~{*j|kec|T-WB>S@Z9TAbUv%_(vpL*k4zVAnV`ul$Tr+)Rxr(f{= z`_InK*W-FzkA18H=1A%&+#K{@kDVt6%iix4-kD7d(7<`*sO#w|3~tQw>e#z5oI=ccLx6 z_Jc)nhbc%6Show_WHf&4pbJr;5DoRSBTzwVfu+eBOYd_HPfoHo!@P~pT{mJ$DS>_1 zTnKprss0M5=7?GdLQKmDRZ}ACdhN#f<4-*C@|V5zfBRd1{^LLF6}N8RJ)9lZqZAOc zEX%U+vhbqEJcPE#3AjSl-Tdpy%nZ0{Wv~WywoOE2rQ=$}u&(RbefQDj#m{{47rpf> z{<*yS_VtIKCs)Vycr1cK(^Y0=yPXC}8Rt}A4l&D+K~NizIW!ZIv~RewQYt)*yjQlL zW?nKE2Xb~eKRXnEX)JYCY?jx@s=S{V3k^5=_^dDVTK1|- z8*xN-R$={_#hVVxX+tbJ?ttis)YlHd`V6vD9l(?h+!{pbv%sGeovVS>jLht1O5Eoj zJ>P#bD)*6ErbDyKKl{h7r)(F~iJgX31>)zWD~I~rQ1rl|`fIC4l5$c3(g#c9++fq3pj-Knx7IGGL~F{uJ@RaO)xzK#Sq1pdl0xy-v2Qe zdWO}#JxOsgwr0puZUpx4GAF8sI0;HXu-P3$Zhk`iO*H4P^grSRUQEB~YfP&j;i4!M z2OB+Iv+Llfp6gN^K8r!q96EZBqlg(&s+`?;b>2Pq;~yexFEnY}G%_3D&_q2-YHQu2 z6oP_ zQ!A3n-wj|q0fANy*{IgJ`>iXLU>-USGCHwrvM^fcl#g{?vQypa+kN(Zpe10%oO+s_ z=`QxR4L7%t_F0Z?Kl5a=v>0yv)Y;e}zQka5$VDmS^r<{`8yP`aM7N zx*vMo&p!3kQ_p|i{pZ)NiO6wXWz~?pp$d)dP1~{2%g_Kgf2gWyqF$azUvSNegE~@N zseF}D7G9X?ncEkSJpXy0{LvrsS)cOjZr;3p_u`W498%kn)@zuyTm3LuqCAc7mcpZR zMay{cj<;fuNvo{uN~;LVx(X5VvM>oP3muR2KYZy||IIJ`s+Yd^3oq~9)k9`rUJpvT zJO$n>*Gz;nt%FP@t~lQEkZikPca~+a6k&?Okq+(#{hYz@1USOGwEhRIudxW)E+^YB z@o?gS0}MFxm_0()*jtjT9dM`UHvTN;Mw8I;K^|ddIlF#%>)Rjy%YXcL{*6EXhZg3m z9#;u=w<4^qE zFL?ahzWsbTJA2@PtILaW{Bt`Gq|?yc!fHBn(LCOg`3Zp^92VdjIc2Q{4_}jU+lA5i z6JnB;ghfPXAvzomXV;13>dB|qC!cuWWiNZ_Z~Hwj{_UUn@JD?Vo$-3-j;z9mg_(&L zS{AZ%t)`+x*q7#5Cs0@cJv5y&^8S0qk$Xi(z<3NnD95D#*E9Z@Frme-0F+h@_ex#I7 zw3o0|c03umaPT@{-eR_vIA}|;Lb8{4`ok1$=%J-F8RfbXoNWpK0RR9=L_t(@Yi5x$ zzwR;(e3S*iyP=MGE0OYtaM8s{t@AKD@Dn;Mfqjq^t&d*OX{}=Ji(~;|6YGUP4mgZ! zLt{H9(10fPq{9%Jw&rottaIt^2yUVUPpD{}B*#C(M*mP@1%u4ov70^&7jUd0a+qvm zj>J(_onB1p{CtwJdMLwsIpVXR>o!0@2M?$%96FqN2URMIXPW=`yY=FL3ZnA6pMD~pD2Oe_u7#B@>%+$MTx z8a-F=aP_C9hBv7M^o^})T;~K>D$h1mfD^WF4iFxdGR;CBtRN5SMu)jVje^^`-9K&N z1#~4_GY3?Z|6F=g1Kbi&m*)KD8k zh@p5%u}c3VAVCD(Kc7uBhe8iC#g>DhP+iazU8!q(j!D~L^IDUtf5%&l1m-o>eL

    K{xi-R_JR`>$Z$hDyBwkWX1Mp7x1Va!^bolQ>EdhnF&A+5IC-{+t&=w&kn@& zAKKm5}_`}h-2-Mo4I+WGaf!?H@*NJ)LqG#gRjMtf#zn|jKVb~|ngg#)fv2$YB2a>uyhOT{gsVQ);N^Hc-go2r z55D$I|HXg%#cz4%uRQ$V19xxVUTCR`G^i^e9Ue>Df^vZ_Dd3w13Q`4dk(^-}vKS z_=UHA=8e~G-ha4p{o?ZO!c4OEQ?6*}j4+quI@qF|+04+(E2+uu`%6&q>dPQl2LC~--u-pCekrVRwK}!(;MzZu?h8A@B4c2YjSQVR zgz^-aYXn;|hPt$uQ-;t|wm$|pf$;i{zV3~P@a^D+@P)ayPwvqKj5d*eo8=7ct{&i- zPYF)W(zm2spEDdQmUPgnID}$#iGt`}4GUoUv)e5s26c-{)EKwd~6LS`aqiRnu{xAz2z7i@;m0JOp$Cu-wcG*^PPG1K5U4@jx-B1pBv=Z>Jm{ zAC_~Pk-R6BO$>yHPOJC!qS2bJKUBCOP%RZR&D)N2bIcn(DuO8LF&@QX8Z%zdx}^HJ z7faS0-rkBR`-4W(l>__C}tkbI8QKxg_i2M}g&1&BIYvO>Wwcb&R9_NaFlJ&<-)+#*& zbFzI{?hRVE`j1_fIka%JOc_^1>4;#M(_gh(gv^I#CpggC6;{*q1hsl9{od_{Aq>mW zpi3(5CbhcONSNTKG1n>VY`!6@LSo`9GL)q6Sl*huA+0pJt{f=dpb+aG_~LakHKT1hT0FNNs&_h0|`4}aAMzv3mI@KGQ9Bd`0} z*S_&Bzxa-K3DdQ+^ZTw}lU4YPiRgF~kyU6RwG*qNTD`lFhzSIWRcDS?4)s67at)w7 z>d-1)uwsL4HTYB$t|ZlMuB)(IzkYsoTz~ZSZ+`OWXFlVTf8D2i?1!xDa&>iFmZeRt zMvkBy?FkkVPnEGA2$jc-{4@w-BGG^=F#4JeRif~5UC+%X1 z(bcV6^_vzDgcE4%D70w(S?6xBJ*qpN3$$`iW?cyAvpVgwzN~N-T!Z7l3dF7{XvbOi za>pchDGyl^jLZTe5-WNpl~cMpLMa9^0#kZT%8&sOk?sp4Z{%b2jZh0TsHjROZXBre z1q=0HCDoURmgVx|>IE-&@Mqur_OJcs@BP?c^M2Q_U0X$#!$SR=fEJlmOX8aMlndj% z8&(v`3A~@ky3)Fmh={CLSBIPTFNedM{=pai)EED+$EWYy_ku@{yxzIIVmcgUU9`?h z^EX1!Mq-Mn587Ki0D^VOD%xdKtoHJycahrEHD%HH^2uK5gDRGlWMMum%i-*d7Lv>3 z-S<3o_4JcB9(v?OpZxKUeC#K`;1fUo`5*FOhv(hD9e?}>GfFV4uuc5s-Yx?HPofirDVt)JML;sz&RhFa3(79vKH{HGj+1+^>kE6v`*r2^L}FqX#;*jwC-LnN7K3{ zQ}Ix4dpwJc8{~EIKEn7*#{(0QKW(hG9!Qx-*Cki8sd9;$37B7j9^PBSmDP?@Sz$@u zM%%d%Obt8FPUXwTb9u2({FS`2J}nLGLRxG>@diZhLF(H}UZlfH$Tg=4)IGKFb0;UI zbffmOOReDFflBi_11 zgki`0-PyHW(@#s#$zYf`>7JY1+tTN8)s_foJ27^{yy+SGsLS;9{R4_&J-o;F_=Co5 zR(S0mNvZOipHihng`>(fCNTqD&(&IsoEsY=a__ z>Be|ZGhu#P+qV*Iy0esS*y15subFd8wg1`}DxED?0jSXQwIqF-(cfng^U; zxBddhH}<)Q+?`X_)ma$~hOmmD`aV+r*=~+XGHXXbWurJVD5z0oB5E;^KET1AZ%0eJ z)uYGGoDqTqorhi2c3txb1N&(xry*`6ZSY763%S$t+>V-ByQ<&~77&p)GpV{wJ#HTe z*Nh<%%ls{{srD4NlAnl~U4TfqOiHO9WE4{EYvwFHoti6oC$vPhnNCZ1fa%{ix zNN>%=`_anq$P%2Ow~05^lQwodX_i!Iv!0!3G=Azg^Tu-sLE9%}8LbzS5}Y|xtfmO$ z-T7e{k-!m{ByG~Mq>}nc!^(^ZiLAtQb~t0EXKvqp>n}h4b8mUa&%XI>uYc3q-u={j zE-$XmuPrQc{l4qV;lRYJl#AANEe30C8)+K=HQ_d6Sh0?nxLKw;F=T)^B*5lv+iaUL zmoX_N#JmX6vK$s(Zr{3i@Od{s@z;Iu@BQ?TyYI&J$d+Aqce6>E4HBs5v^3dJGriPIS3z*>;3m#|Az1S@jvy~zxd+f^5*^b9WU-` z-9XoxsL*IBSNfQyD-~DgWucZDFJr&gTSWk_qbVhripEFat8_;hkJUnisFF;$DaJ&9 zhVzTuDflDkOrr^#o-uLXm99UXI7kcp*0w~+GdpCgonO;VBmgJhN`ZbInsFt-*3V>> zYd5aH`^hI>{OBWJ@_B#mH-7X7UR+*XJ3Ant!m3j%KGb~GEkYyO2wCr5^Fe7o>SV`_ zWwWPHnPNSzXE&~|?|JHHKL3CCxqtpue3bLY9=$qVtg=#dG(uw)OYMD?WK)aLP*@YU zZa_CLyb&r3T88|2)SC6LrmoEO8?C&YoiQ^l%epR1>)qRTE}yx*-o0~n{rUs%|Ed>$ z;;(>=rMw+!^5J)Sg z94Kb2tP-a2oB6uNJ5;5C#1t}GE7fzA2L{E?=*-~P#!go4&+|eE9Z*6@rNv+QQqsU) zt3swDSY9m~*@9KlPA5YW?8G)xzU!IH-&bbnlV)M<0TVu6CGGYfZ z;nghxb&t}l1=?(|hb}0o{3ux+FetP8eClQ36U7<>OIy`ot(axJU_4T$|9WJxvE2|Z z6N?{>raVPWXvVselM)+8amk{G4=0~@1PG%#?VLiUTPbtu{f=habKx-956~#(Kkey7 zxU=Y|7n<@$2$DuidB^NTpt>ywvxmTf-TO9~g$guwkE#>Yr9Do?5^f}#XpSGPhi%uX zg`rQ#9zW4$+85(Ki89kkcgB_Gw&ykO#)M_fVtHTjkcSwrYR9Z=CN8Ze=p3p_?j(#O z!7P`%W{qfiYti;RguUndgF!jSAIY#d1%(Ur-hH&fu6);UDh;>%$%PF^HU^O(%vMm^ z(@nHGgN|w}6BRLc8*`1Fx76Olc-{2ImVNNglEi+3Z)#7BSwqGwO9qyWL&ZF%A$ZdB zgxca(e^2cyp`gNoaFDWrUNl)(%!CI^%A!zQ&*c;*q3n&%28WIb%h1k<`If+8biy`x zFd4-fs-f2incqZCU|Pc(29vVLSN?V`aQDqPG&maDk~-_&0uqF;78cv8o0Vq<(eIVp z1W%icbH7O*2#ttGd!PY{Ho}@+qe~d$+2j@4LXUms8{%ve!+Z$7*87R9XBj{GtAbZ| zfNFEjZI0oSF~2iv8)m_}l`+X`%fv^42y+jP8U0+H-c@;mRn5k3^{1wm1zviq_Pxm- zDQ)8I-IqB$!*~Ug4E4&O=y^w`={UvGnS7@_8&MjrFnz>~e`}&`Y#M~UFevS~qL#td zDYFh|2iU2`rW}iCCt2G;#QT7SW)}*B#MuC(xQ6;H+V!TL(R^p^tO1~>4QG%2uxEDO zBA8AFLq-(z(!JlaF%R0jfqF6Ag7v)_ptm5^;9DZ?i;bUYC%88KDtjx}W0`7Q3b7~O zbL$u1^{a1v$K!8(=dZl}XWsg*cR%seGf!V$uIJ~=wexdkK0iC0pPv`e9S#Q~CR$lo z&1Up+MTlsv>fWt9RaGu0_qIPoOQ~y}+}ZnLB^^^S|sLe$}_X{C!_^=hp3o;ZqW*U(TTc%jP|LcdEU)Q{`r1SjINV zF}0Gq-*(p1=!C`-QZpt-s?H7@`nvN4O#*5MZn4#@1W_DN1H#->mo%+O$F!e@EpUW# zpVb@U^ZXB7)vOkea`lHj+rh#0b!~`N0grc62mtL!bnW{2+ur{8U--{|$KU#||KM_1 z79wU|MVPrRx~M&omqw`z-Jhy70Ws!SjQE$SLiaBsy${ran28r@n@8`y;b-3X_x|U{ zzx~_Ju0QYa;6t~rE*2&dDKo6)L^)|7Pl}=II~9rg@3JgQ5&0Z zGpvl`#41rC5jn2R%X)cvy!DJ+UCHrsy?u8%KfCeh3$DG-%kTey4}SR9eau52{-Mu% z)%)}H>qRDVb!^q|a?(9P&)tWYvP+XT>%!N+5s#pjA)Jj0HTPRzf;Vh9mbw+2*C5E4 z2Vp710G=g>1#B*TZN!&NVw*XKI`fnX{ZR_qq~WPji-L zmy71+lpWfcQSzkpO;DR{yF^>^KdJ39fh$z2U-iL&GZc{47Lqe;`o%EO5nbb+bi3J+ zwKu9JhP8F2+Bo%zj*2Q21*>M1D+*T5Uzr7gVeV!GA1mR_JB{jFdAG4e1P%tDapmV~ z>4-qSnNF$_jj5;UGOrV+ShtX6L>x0Wrn%h>)N1pYI}K_#T@_y5DV$(1_mZ`jwT9Ml zqy(Og)lx`cl6MRi_JQaQHhh7mC>wsZ^Ej$>f2*erR6%C^DE7v(tfL#b5uReCpwo33 zwu&K=js!Is$ZTJXC5&Znh+pjiVTCt8K&xD%QJ8Y;t&K-Pp*l_i>#n%)>R=B=yqVFU z(CH#7oqU45BYikYVa&A`^6i4jT@`KqZRDv5WnRNL&=cfu-%Xn%?Z zZn$+I#fma>ViFT+S9`Ch-oauI%qSF(^u!tJ$osOR<#fQ3xz~}%DMKey>WpkiC*;4! z+q)f`W-(H7&IVg2#E$R+^TaN?Y33GtzKIO+1&%q5N4qnwqxSKhHgr4K;{E) zea#lh>Y<%CTTBUR47I_J{gPK~p7dFT(HaUGS!83|ZfL2!lBjD0IY;S%VI6Y-b+$&J z&@v6NFfZ-9jL%$LzVn?=yyy1qH^1$df8lNKdgkKx&%foJEOhtc&byzwbvP`%@a1}3 z+R3|A;Z`fT9y?ik75J|<^xR0 z*av8xT4c{Dj3O(Hj$J&;tU2qFtR&He){@FRYrSiOD8Vxlp=GB2c8G74_4@VePrm!9 zm%iwQ|KRif%%^z7$;mm(&jg@~5}*+`8$*GucLuAZRKbk#ld)O~|wEng{> zddLYcv@k6TEeqed^Y(xKkZ#q2hq2cX!hILA~ontP5s@{aCnc{y!dt_;7i#+_?X~_j?~AzWIum z-+a}puD$TRANjx!y#IY)cI`zkK0N>VmHOpn0Y>HXt4ur~W7YQ)5SLxhG#znl?2w=V zkAe*`yGLmLviL>4(|BDMWGaK@Zcnn};1zv(>~o{z*LwmiWil*xg0ffQ?oUf;Vyp(t zGwu^@2eg8(4OEUcBV#b=-=Qa+oY3FR3h+Ajis#) z8=$o$r6p?;`+%mx#sJ=ZPsqeiQ3q5B<|`y2yG5jSkXhSPbeHTuT`6Mz7Iqp4g>vHN zP^bmj%YxCJ**c;O+4CKU%A3Pu>)p-z^GEv+^1BK)0PF9!UvL@;==R`O9 zrbD0aSBA0_I;9G&Q&HHiomjk>f-!Mz_!PLaQ+?|gWL3GSw;3B=z4v2`&C6C+6YKxD z#DPtl6oNcE6Ss2)ar@dIs5&{sYxx{X60IlV;5E6DB zrVTqi;Rp$ZxCe6vX(J0i@rKDGQ)cSWjS(Y)VaVLwJ6)QfAamG>8Jz_h+kZCVnBJx_ z;PzC1gp@P%<>xH5^P0(D;eVo_m+6!{hwvvYnKduDCZ%ZNWNejp z@52Z>J=^W1gGiShqz6J4-C*rk2Mf^MJ6?4(6dstb`BsXzIc_ztCtcsH(KHx!-Zgrj znT3RYw-2Ql+i1wnJ5g~OdEXgj=%%qF0E`?5Y-pBFLSGwJ+N8{)Rpqs5ty9Fip=>Ta z6ynu*uxN(IYQTA-ppZV+lePD6LoRO*8C#o)&a^phgEg=6ShR}=Wgb_T7?A=q0_MSv zlz_YVa<~FLj5~N!CpB+DX0B}v1JjQii4))iEUU(1HYG9Cs1L&(4Io7-4M2g0G=U9n zB~abXMPvS>ovX%NA`~P-$K!DoIxKwuwe$CT*$av2*M7kJK6C5h&gI3s9)D_;^_g3@ z-}d&$57(}}^OxWC3vYkd+1X)Tr5xueK)(DLj@xxv9%@h+pf<@$M2m54(ymoRWL@j5 zFp-RqoZ1%4v@Fcb2VS`B*jo;V!{J>|yyp!+_qJdAK`(pofg4O~-`ZO*+kAUhnm91r z)Pwu$MW;|?QO~5Al-lo@*W-FPTb_98nXmoU*SzhWPrURcFTA*Wds*V~gyuvoXMtbb z|1@Cepr+|7!^Md4HKk%oPV3qkVTREYEH|yf>Gw2ZwOos{OcdjV>Wy8>oIEJ?Yqbsf z4tS&uCy>g3Msps}n&EH@tZ^6KL5 z-G?83-s^w_Uj3(rD7eBdV*9%Vt8gPk zK8yufNtk#gIuKpnzV+_czV6yf-tU2r|HQjjcQ3B4ZZNMTv@r3qFddq8sb3{0ArTg# zbro7=EekbT$B?FLLQ=Y6*OUHT+vU*KfWW$f?&EuU=_fo35womB%)Ib{&zSiB=ihwg z2cA9nyyecV^9LV(@Pl4;I6FIk^s(zNdf{^8=Aj8>y}G2M$YH6|t3<+e#+HfVz+M+9 zs*OIvdm|7TOP*@))y2R)D?7*0X*P1-p$~&+Nf93Q%y__Iq(f60md+F)J>L=>UFT1M zRU%%NTn|P06D?dgPzqi|^8tZTcV8pc`l9K8|v;@7p%?3lMCgnt9}%w^kj zV1t}FW!aSQZIr?A(1C4BKJSm2IgJ!AOtuXJSNmmm6O5ke^KKLYNnBTsR1VbAEw9ms z@7Nx<-|dOurn-m;AtEXt-0@WNfRSmZ_LRrJ{kd=7(1j)ZD}p^%&~?lXcdU-rX9i1& zdf!;HJ`|Xk>f1>sZVq>iWGu^?hkf35erAhNCD&6=@b8wxtfr1g?m-l73kv(a=w}li zbMdyJSLbn#XZ?nJZI2so6+P&^X&e3r$&$HI=&=3Q_1g^=fIq`+b55enf^l8}3N!IM z5fuVqGi9i>RAe%&9s=@4BfF}xaouq{Q*@c3kR1?=A-F3I6tR!QFs0SB-T24Hc-c0j zslu4C@RoMoGi=FuT5sYOQeTqV(R9=;Sl-a0-O5~Q#=w{S{YQozXltNk(wGh$faKo( zrWEbrb$n9Ds#d6GM5GUDrrxI}U`vxgnMBTAJ6b5%+aj@d-K1CZkE*eBQl>U0j@Ya{ykR86tu@yM`~>8}GN!1&H&ZH4JY>#U>k|T|VZyB` zs!^0RRFi8X<>sOplid6W5tMXynVe?g%T#{Ny+Ri@wQ18!SsQ7CfZ_P96%r;i*@ewnnxXPn1 zc<}seSxfFwZxCSKsJiI;{?Veb-hldPytvA}CDWivnPM@e5H$d7 zzDcBIWG4&sAVC=jj{uCg*(UbGe5uu5uV26R?kAsq^x=oUF;c%#3 zi-;Ct;e{9Gg1(eJF-VVH0jdW0+Ctu$Q;ZhZ*CiP1<;9&}e8<`K8&``Q*DE1e>vXo1 zd_2^m%n?epK(&JH2qvem!_e618;^w>-Xk=1Rc ztj8mXaG6`>rJi@ps1;?wiZwrq59JArZt0|xkgIn$tmyham6a1Tuy)hU{)>`-lbUz3 z!-mcgRp{%bd$}BhD3nyv@*rr11`f;@dJi1V^SZ(3Mk(x?ZJIb!iLiFFAo3Ke*tGg~ z|DtdI4Z=8CLNMQ+=rr7$ca5$SI)heLs#^WzW}(k5r;3!3V-rM!#>gpi^p z8~!yar2&wTXCI={a5Ra!i$c)tb%#2JGCSe3vG%5-C>AA>WQaQ-5QdabO6FA8Xvoxj zY+d_}&%8Hb(*-e|w8I9)PfgP#rSD>C5vIp^6-dhW*xm9lo!Btk57*p!5frn@Q11N) zSa)nh*MK@Mak>>g(0RwyDYzmAkC7&9&%WfBHKbUUe!JDaKZz1J?r3& z!kn;58y4E{CS)Vvo!mNplzN+2-g4$m$8F~brk-f2DaurK9%!0OIn3#3QnMXD-n{Q; z&*lsaAjl<$4KD9Sp(8QtzcxaJ7Lo`?;r&}-;8yE_Q{3OHbD;(&d+fj@>P?XbZf7J4 zvE|%6Y8EHAYNwIW0gpf$Mso~0>tIK+N|+P(lyxF8EZKM3YfMKgp2MIE<#tu=?U^(nc3?eMz7)T9(bi7Ibt;s&vSiDM2h15#C3e2#!KHYr+W5hgwhN>>RZlJ58rLNw$$o$6X$ z6>C=*HX=GY<{mB~+Mc*pgQAI*KV{savTTO)jMlOnt7xL_v!&1WlBPFYK1$lmwG>U! zV;soTp9xo;8pnr-$hy{DUL|drt$g6-jR$Vtcn+BU_jP$(hVP`D4UC@G?o@&y06PUX zW^)4h#j;|#Vy1PilQm@pI17pJ!g4$w4`*lZeEi9;{KoHn*RMSFJ}-N(ySHy27KUC% zOzH%1>E|n3uuze8`+Tmd3AhPqCSXigsmgSt%0g1Ug&RTsr5D{ak)!1tZN$-O_aC@l zRJ7!(AH(@=`(1@zM6pB;bhWBAo6U_;!2$>UCYT{5J658)u%u2BHpaz>Pm^u-tZ!Ew z7`p9fZb39G+FacYkYT=IA}%J8dAYc}dg!6&zxnO&_*ehtHJ|WdueyHyP!{6U{U^2j z;yRa6!1#e)U%&GbQ+&h#H@?PLvY)(5D-oYxyZQ3>5u)>`*ay(S`^z{$?~Ia5{Kw{pVQ6SVy&Nm5+M}ducJP*u zNT_%MWeh2)fYV@!>&og+Pd~t5?qcBH0F(Ib#ufI*J%ipTMuup9FqSj{=092gx^-Bc zgeSJ=)PiudylGFm`*hu@fU+P@B+P;BB9p5+JrTJN3Jz)r%l2MsKw_D6Ni0Kqu2URq zJM$wF>Par9XUQAxIlH>p_mkb|aa)P|?Zop=f?`OglQL&8Wd3FUT-w9~0yP05gSG*K zJ%?LfaQf$T8{57d%yyFhG z+1X15EvgROTGwZD^n&C3G%9o4n2|$RC91B9Dc@_cQ2lf|H{)D`&7MIuL&nxK*ZWqU z!N$;1&qCE?1+TlYaqcE zrwDL#J1X~GW;7uIQ>5p69QUc7qPwS>Z-E%+>@s==ZDlRKIZ($P5;^S)|Nepi*=bTC z8}~pN$@XJfvf7y_XXZpYf)IV=yU{wIcZzShMFj#p8|Q0rc$`FlsfS>aH6@j?jZ2mr zmY|6R=>r@(;jHA-JeeMBo0cRJJTWtHZ#%CEsy2!>AGZ)Wn-wa0D$`LBk?JdR>bvl9Y-8|VyoHa4&uTD?erMpH<&?OT_{5vlSu^^A&{1#22 zdEE{yEa&rZaM+HM^m}eK>l7nOw8LrlQLe_cT8EAWs(6b#xs0|O?F8SVou%=9wxp?w z_llZ6(oq|hqB;8aHz5QKS6eCsh&zdFSSq~N5B5)+1*MZxB2@e^ZA!;=tL*ojy?HPZ zB45E#85kMiu>jr}_M##RTv;O*Sx(lyWS8RV-Z`II6a54x>Z}n6fQ4HTpKD0O>@XP7 z0VLxk2=U)vB*~U)p|G(Ed5^Q6Yu;YOsO$_R_eZJ;QVZ@*=rBM^xpCb3phw(d6z^GF5%9SO-x}m~ z@&vGuB#Id_;)G*bt8xP#b-+GXTKkll_2E;kO|0(ub25BT)!rIBKar}|5RXVw*|GjT z>C+*+cUO1r=`h5RjfUb=+hSH+-K##&dMGcX&9d1fJtsJGzjFjNxi+yGUVe;^FFgas z_f2O|V(y5Tmw{K4Bq>?Lm+^@S0}YhTq#Ycy$$!45{wISJN8GE= z>jZ8naWM)bd71X*|oRC-EQ(R}QHMUwkW^hTeNK)}0l zvKzBcvQ840%G~RKcf+)jhPYn0hr$#N0e9(OIw-9}^46274O@Nz2t|OZ_MoIM2a~Ld zUN3F`1-*z}HxxUnLF+#qeuRN_otTpZAjdkHmbI>GjJX9Y>HW|vQ@F*gh)^kKn8ke` zrsXKc6W}Vl++I+9lD&=+y2e^Rq2l^>R5YndlN)pUYN-C6jT#%Oa>pP;EtT1C4Mqy- zk&y92k-)OxPN`=(a~Ot}7Mh1Y2NzQRfdPUL8j1dT2F00cFhFFb`f*GmIxroNa(;I9 zi@);ZSAXmGKlRM5m%jADi`%ysj1sPDL|dew@xr)s*g)J5Al#T{ld!ia^QfC$%0FI^ z8mFVxI^16Z~4K5REl`aOQP?jTj|K_!;t0RsW>ngR*xF~i*3%L3D1_0&S;q@l>ga6A2<6cng)Dmg4>t6ys4YcJnJK*b% zg9|qo(z66abDO4)EyR%%mGNC~tUj)Xyq?eYbS`*1Nby8~zxa8FbEq&_fSO4m({eE0 z%~(XhrH^_vcA*O=CNrD5+m_NObY`xnR035=6%PYl2?b0!=VUsuA>)V82|ZPhD9Iy9 zJUhXSJ7#`u>IAKdo)rJ_5%}!Zx$JQ`T$L1zFYHVV`KAjPt^jSz;U@Dv8<|{1?WBh` zu2#cOnorrs5e1(YSAkNaEy}O?2oG3b<)arHrI~gNebNS2yu+s*h=?4Toxp~TR`epu zN(o5MT1}BOZ;HnH@l+I`W8IHXfFVo!O=}F@(WivLx5;nvAvFo@3y4IMGJU~GII6i+ zf_ZZ&tA27O39l8vsY$bT&kTU9^()sQY9VDVnR`+;3EB&S-L*skJ^c{Tp)~e_%elJ&r^T?n zSK9>sPee@RBe#dc@=f3U!{7D;KmNi;9zI@P)d)qaTWy!_;07ixe@Y#k_ZqgM6{fz8 z!bC!Ae&n{n907<#`u)IH#UXsVfOYDk4$LI=S2rnxG;97FTk0iF8P-2;hNWzdbvyrH z(jKbVc`9R?VqA6^z_B!a5WK zlsnExr<>cUy{TFI+A8%i=5o+{N=DNOcTOW)Q;vpD+2}RXw=Qj86N6ce32r7GkN3}@ z&A2~>5lkPRFs1)d0M88Hb8+Ccz$ zK!(2(=AKeD~2| zI4Lzj<*n5C${2TPv}?W?G8aA?Gy@LnUD80lZ|*M0<}+y>K}ixvW)l8iB8$d zfAX@DiM2#A6Lb9Q6nUjCiw6?1zGcG7BKLF0spbqAled1?^8!j0nsu+u?d-Y-gwonO4?? zs-_GVI`1A4*j3b~S$72r4EM9)813sjjZ9RvoYcLnAe>*xvA`1uz0ntr zPd;uHZNbukmGfH+mevlqXrn0!otebLmhs`%Y*<}KFx3feO|p)oBn=7R$RX{~*`38i zPCenY6bE5LUEHODlO)?4S8ZK5a*#r8)y(AE31aoyz8ycCv*+d$Y75tME7i8GC{{FX z*xtA^QuBa{;ZL;wyJ?L^$Er^vVo~ktzw5{&xK&O(?XNtOy~tr}-4U279hr@OD*9rk ztr<$))V63OHO@tX*!B#yhovyl@p!!N#1TX>&}gbAGveq_Hb1LBdXx< zq6+N07{g+Rvue#PmH#4_9(JTYvx{RSHF@hS`WSPlDco|~)Q=13?b}#uOQKY`W~v0c z`C(dgyRQAtqv!TtU-@AgL`F9kQ=7$)@J-KyZZ#;k8r!Oj1a``yP4$+XO?gFJ^Yvrc zS=*$-iiqFC!Of)!x9xCOmzVe7f8Sew>0Mv*jo5I8ni*P;gUTE!&!)TbkCKV8pn72&XApOCd~c5?(N7 z1j;X~)d_R;u29VsLlH_~E-GaqZ!6qcc6UNFUX$6u2^2%l$1PrZX@4N|{X@zEj;l8T z01$cDG`?2u1XaOdeSAmt9J-M(Ock=Nx$UpmaEN0MGd2kMp9Bkh07Ar+?#7>Ey`QOz zcHeu))s`z4JMN8MUAe({8coG4IZnhSPPNL6^b++8Op{(aFp9>AiOV*uO@&jj3`5kZ z<)Tht7A?0prZb5t16iX>N`_tu-2gQ;Yu+bqgoJ#@>ilCVqU`GI8Y@_uvj>6rQI@n1 z8(207Y<(lU#R6*`OKUD|O=sxwjqxO{c!mxc4RxmAIk`-7-&@!PN##>4@{4yBcnGM3+%=q&nH?i{s1P)Yg_)WzJ| z0E#FbbuAuZ$a<}-;=wj-j$SOc-qN71R@Qg95`7sExr&bdqt%*^AToJ zdL=dUdR9ra=bgB`2@>$>Sp^G;+$hFnRnAl`kDCs%Qfni4U%NGg>rU*L;iOIkaCi*T?4!a?^6d+b;bq!UG*@;Q1y+tLT%;DeVcqbZun_4lKJG+8j!E=!aebUI zRU8Sv5u)kzyk9}dl@lbBFm{We4un84yo_|aVi&Y$|!LnGP*j2r3(ru;0ZDc*Z1vd3*oo-88XK{wBH|=zib&rAeh1Pwwok%tJ&AAF@ z!!gbYgQX3YT!$RDaLi-5RyX9F^cK%yG+vedYNDxBoJV&z=|S=E|MyEm?i z&Fi1*tQlHX04xeM+WETr({mq#^eytwzx@H7p{#iC_=<5^Tp-ykq2*n+xP$YH+;tr{fXcE zsdw*QbaAvxyGgVOGnwv#EgJo)$B{S*kn(a zoCkR|4@~ZyrKx%|KG`e?nM&-5Owy=f^#D!r9=2?JRjst>`{BF?@M18rq|^hQk-d`Y zi%rGxJBKM$8oQWmD(cdXK1vHkDGv3h*bz(0ibg1guDY9(WoU{Hd>V>TxlP0~W-cmb zr+Ry34%K_VPfR!}zGpFXyz}aJ$iLfRJUtpgca-MTw|PC)ra7KxDJNwW8yL0D%xn6B zLS}Xk|2H(&Qq^$9j7SIq7tPi;Lk3Q}-5NihUSO$4d82)ut=g%yh9z_9K(;j|Elr`b zzmo(h=Y6n`hbn}%5xTS>4>gi-3Zq}H2{qZxIm?{_aN)%hO4+$z?LUgEHK?f0(FQXn zw!X8jy{GXgVT?hTAvST3&@a7=Bi4AYCfKxQ+okMI>Fv1-zG=!4>BvJVC?8Rd*~xg9 z&Wwldz~*Q&Y}$R-+-+?z&!?&iTEz(aTH{s#Fyq^MC~oJK0z7jg<8N&nnJo*{F5A+> z%g@tnUb_t)raNh?-)TIUu3el_ZEYE@Dk$nXw%C1qJspjho;Uhiduej_c>(Ux5~ZBs zmXa5Dg z%+4&@iO1P^!6kOTCY~xQ2+bP&P7Q*uxFNN3aKXX4?ZIqVaz<9{%0&y+aN2L9;c#QS zu>itjuT!C_P^jm&sG^xm=GBv=!_C^V$hiNwVsE zwKb)^A|m32nGQAm)#dU0{QPI%`mV42H?O&SarN+{_uaj9o0s0Gtc2djKh*>a)l*t< z19B^pTajafbg#5IR%57BS$876WbTafD5mkk&LrY|zYy?DeG?v!g_rO#69?Ya94FYR z`jK9x{MwO}S%!vE2ub4^SEH+qVj!SlyRPbSJ^koFwciLLBp_vao}*mja!Q(_h0gsb zRz=A)098oQ#KT1E)#Z)*Zv5geKmJwU{N2C#6F&SU@AdG-)$#mrsI*I;Y%Yln^POr} zV=Q%i%MiE*vo_X|I3w((fOWz;@_-C|#!~gDQ8cs?h)z4hc*#+XEn8d%^9=?7C^@KK z{pY|3!j7WZA5H z2z$<(R+#~HRG#Z*o;y*G0%o@6oAqnsIn_7X2c;eV)FY(kt5uXC_0AVF z+BqJ#8Pkv6{dMYm!vtf`kG~Ez-}AOH_##ToOITt+N{9SrZKw9R`hD_wXY?s`>?7!% zK35h#u)|ovC(_e|d{kjOO~%=&oXJkc+d7`SMY0`MV$20dXJvZcfD%v)PJiB z+$b{+Xhv58KEkBk3vT;0=;U5t`;<^d0=sx?!lbiBAxWEZ&LO$3G)70!86i{oSoS=H zZ0Lf+#gKJGu-d53TX_#IswqQ5nxUh_zxQf`v0%2wN*^FOLAGLpIBf{Ltt!4JP0|;` zI+^FNfOdLKUZ2!D_k7tXWu8)-9Cu0^s)YLjL2!gM0N40~KI0d7LWz3ipiB-8;;)%= z){DQW9tt%Guucqbrt=)G7^ThLzh?>)EE*x@Pv_cVM+7DvxJ~ZSMfJ}}9*(4xM=&f6 z?}<4rY>xSNCUlO7%uDg*ngl__DJ7V27^aYsig$mLH7YcG%kz{&RFgrDn2x0qZVtos zb?>H0v^MRZRka*!Vu1l8l2J<)$Tkof@F!2(Ke9K><&0IK95cI=*!o&tvw6qq73oQ6 zvAtH{*&fNjQ1_zXL@Ugmc?usUjagNcIe(|rUGWIxCV`aQRn0=0O@Ru>eY;LKELjaE zhan|9SxaLiM>cl+Q_FQ$Q-b7;(=be+5_YBDa&`G&J4lQ#Rp80_J`+TimGGWLeuRjTVOSWGjwpCZx}6CMi@(?W}ooShw(g}>#ye)#);@{Nx? z`tarD%aXqfA)|5_T$yskKUFxDrQ<3&a1=e*6KpI7bZiT zkvSRlhYBpqLSO(T7_4-?l`6BAVktzqcVgY+aqE7wc6Ffu^c(7@S6dfFwQ>9Gy?|Ju zB&9ph4WWY%h40(rkfv`NWB@^%zdZ148^l2r>UG+0ZKElt#R?P!;6?p0=Q#VKmD4$C zCLs!)+aIPx&0I%SP3k2LERKVDaE(S0z4SuWPWHe8PjSWUT|T5IGo$AAwTNqvNxS3u z#zA?TfnYQ=0C@$oBuyj0BEB@KwXL5az>P7m!&>TfJHIic7JZ=xV8>L2PmPqRlnOg& z7w9K)(&;W$tTC2Dml5?jY7uYBn3ITDH82)H6+CUKtt~TvU;)yFZR9MZO{A~k;$npd zJA##Alfp!!#|cR-Np@)dyp>Noa_XcZeIPv=zB5d@u4J@yt9zQyZYk5WCu){ZwuyTw zu2Zv?q0;lFy`vZS9c+^xmzzp43A`7}FZXE)SBjIHHLAM3PJ@pTm?K-G4HuraPGKfD z;EJl>b?3&vk8UrW{wZ>p4;wb4@7nl%;GX z-|!R>x1m@pBRnnH26dn@19hJZwP~UrI=BMuq0oc;DHp?m=SU|`>;k#&71rG*mk?Wt2!X0tT zL%^B%SI&7GwXBmein6UjC9d#xQo72B5GBMj872L5&z|YdgC4zYsXEx7kyDMp5(+2G z+F)^{KkVQqZ*vvh>NvLI$>@eA8e$(vjlAvX@`}|~E-H*UGjyu@Ck#^JD+^iz<*jjp zUTT1hb!&sb*q5kWoBQ&m8j0N4@6N z)+1ez{snbc7DsH{DK4cO1AL*G?~})^9tyvkcJUS1Qa4H7YzA;Gp_mNZuD!R_Z4=DL z%j4nv?9Fd~{OiB{2QIFT*REf`bL-Z^2ej5jC2GFv1HgC;Knr_%MZH0%fqcc#PwEUW zwavX?*GB6UNsH)_R~$59;Gv_yQN8jf_d3<`is{|ex>*mR&4gcffaU1wuj75tqeUAW zF=m?U>$-oqY_bvQWKqwOj?rh;vEhiU<90yM-6|0<5z#{H@#^}G8^8L*(_jDU*ZlV1 z^l>kH@ne^lmuF{(b(ONInOCAkn3;sho~ak}JA6wt2RE*rV+>7Px}KoX37|{3J`o?F z{#qx(Mg#S+k!@cu_|jx5qG_mR7i%p<<6G3B^+=BkR=RJpiuOnot>iVIJtU`N*rM4eClN0VE*nN7a^ z=2J$O6}T~v7%ng(#l$8G-1*0_NnB*-7f)o`drkZoyX96hvDmSJV>v9ySB}Rw?VSB= zt{!vvB}!50@#P)a{x0d8QgfMJJB#pQY@tkaPhK&`&lz!eZ@iClWOLhYBsi-byM_)~ zs}2soe?ep;?K-~H)E}SqUu?3WL)p@knOV?Qt5|r%_>;~u|LW@enoRVPZY<;9?ScvK z2+H_^gSXN2O?x$$k{>!{s&%3l)-#J!bq_F-8S$jI>hovyleek0%-Hk%+sZ^82i;Rv zIo~%$e{J+6zlO?T%UxHs{hcw!XGtj_>pv>27&3k=7ed5;x^X-r+tUP^Jw4UKV#S%F z3jWPiQk)XH6t0_u)M|&y6NGv=FcoHGP6i#LsNs~I<=G#X-hDM8?nmJEOIIRy#%pUIy!O518FKikMeBxkYeG)Ikg!Ej82@6bhU^tPH7^4o<} zd6j(INah$OWe+aH97O`#7FK6!QjW%o@rIQkq&0&+8Kcy`{U}D~5a^rpY^V*BY6cx> z)uIVIQqN*1+I0lY?rT+*Qv)8O172R5AB7MSzhN%}>1P(MKP-y1ZKGP>BSLI51=nl5QHp zReKn=Z+R+AekL5YMTt&Y$QCUoOr%mML#g|Wu0bt)Kn=yH0$VuLV28F0ex1VOI^wRoMV(3nv_pY%mGi>GM`gE*vWP;1SD=9uR(x zwptEXSI0+R@X%|1@{M2pt>5#xpZ$B*b*b!?1A|!(rEL{#5V9XD zJ&mWE>sGs#2UJR7CM=GcRtzI8&LNR%1GEjJKbs!VOmpf$8HR%G&)V#{)~DQ8`3l(? zR$JXYhpMV6~*I zUR9=U1+*K{OzCz`wS|nwoPu>977<8hKMi6Gm!=chE0rQ-K+_+|oDNwZjkkk24`Fvk z3BlW1FB=irjrJO2Nk$J-Cs!(yayO6rIDWJvNmWa8z^D>d)}W${X*`*cu&bKtI2#cz zLruN4UfOOAMMcsO%jP8AG@-O3##AYAoNIf_kWe>;2@XlAfQEp{2$R5WjW-Ga)k>&W)h;U66R1{>SZuG>t?1Kd zby2?3G_g?zjUs~9$J4{2vXE4;`6->jny+)sKQ3O9&q8HlUCho)#CH73C=rdR(~j>@ zRui4{;lhNcj>~j-sPm?Yj@yuXU>g?x*8` zC|n9ZQKxi$P$K-4!I>S~=tR4%uHL((`@yrA^V=}jk^1#VO!x_tv{S^!*)*vgwv5cP zO;I7`D6ZOWa);QDWeVBYLW5BGEp~kZGiI5@KcgVH<)QV^@SLcC;hKEHuf~ARS`HHC z@jPPbY1qWN;#g6mF=lnLdLB(`s(^XkUQ_I?u5i^zHYD`p7n8u;Phz2)TNUjU#AhlU zqh?ws1?MS~&+gXdv?s3w+X25s;92`=NNRk%7C0WB*fHfIk+XO-ISm$ zbzNy3?H3&8F;2d*aB$cHcsLsr#3SPQxV|$M(Fm?7F0%cx)qUu>8ba1gt@^tyXTnt< z(oWJDvTex6{1{}81MOR%Y{%Z#;X!(xW^j7+lug-IbIqE$eTEm> z#aj$rhIK#WBCdm-&2lX%QafhSjM|cPzL{7Z7tFygq83e8%yu2GfAJoV5^0TQvi2B0 zE0)YrKPIkZ4Dl(05RaK)Xker#Q4$$1ZFRB%l$dgZ?qT3ECk^1<#yzb{8;*vSL5d?# zyVSNAt!D&btB_w|P}*`xPIG`mBK13lx%nU==w~+QKgwj*GBj<)L!-6GJa-(>;hwT< zscl)Q=d5;?m`tN{`9vnKw9;Bgud*-`9j}hpu3!79H@*EU{`Gesg|1z{esSv=S{9Mj z<{w;fX=tv$q?alJXIU~!$LP{rwXjnSBM%|s@`Yijr$2$M3$1?C3}MK)lXAwZv0Bg^ zaL{S{S}S~mVwh%YIGGpxOtE2a>Dh?dCsNapm+IU_L!5ATUWpbykX&8Aab2E%<{Mu9?>_4{eC!9l z@}(DdFP4SNT%ZWABnK9$G7R;^cf_@onxt_w#*<)&N3Tq84CzYHHXfEjQb#t#4RV;_ zfnI8JrB#yZO;JzN9wR8EA)+=f*eN={DLYha3rXuts`FWcdFd&`hU?G^RlNuD+M_Nq zLqN1n1NmvRD6e~jZ*Rn73EvIRG^Az{bf;~h#ZC5x(!>TFww{nC@?U% z)9bd)xgQL^wKB|+> zS^5ui+32Ch*mk!nLQtg@wdbd#0we~B_m0waVh^EpL2P~`L7bosj9U6h8e{QP-dWF5 zR@HOwDkF#oq*-i#aT)M1_8#Let(Q@6wHa<_+;yj@iZYVXK1G?mthhbbq-(e@2OBG( zTDgBm^H^~UlK6o8uJ+19AAoopcdcmbl>=G zm-JH2s%2trySAJgr^K6Jy5TIVox^zQlof{Ntr*vNe-%qvnW>FFwc%|EM!8~S5fG1S z=Wd@fzdVsJSk7){QznekX_YXCXRfPSiaXoByh9IXMnjV_%%dN$qhC9c8Bfe}qx;%r zGGg#qoU_=Q&0goXimD1FwciXg&aus$rCbkvw=o%=9fl^DsHFkStm9YH5aq^VIM0t8 z`=wW^gB%97pw8Ti^q$7)WN8M>ZT-+*7 zbeefjnKraq9x_Jo3L$bMv)6-csCqOU9xwC64l4@jb@bXOgY9gI4Up4JBvvk*OB;iS zz88mw=!_Gb4&nEBpKy?3n`1f((9G+MbM>~2Ks4XX$V6ieWXRm^UH7ahZ!yXfJ_AdS+iUS2Q*n#?+9gtx*I(VILy8u zLzG&>m{3NfwBtl_Y{-dwF$6`n4YaxPp^)*%4F6QReFNz|mnR(-${y}$*SiJKMjA1l zncGm%s%-h7sB)R&B&)w=!c6Nb#kQNP0WMApUzG6YwPvPbtT z(`5TDx_!*nW!s}D0*RRHWVteQrRuHC8)xGmwMI`li&~?0N;(U*9m=Gyt~ujD-^5&R z>py*b3Tmd$2?yq?8zbh<3#n$Sd;xMDa#+fwDa*1R`9%*u^kZ-Mg|Gd#@Bb^WeCgq^ zh!`2`cInU12~e^UHoOqtg|WZ>!{cV`Mv2cFi3fYlW23Rt^}z?K=Hqto+IxHeCBdKK zr!gDxMOsE@pixEiB2-m1O5^qZN}+?RtC-(~i=-IF=~x6qE`ch~eZZLO(Iw7iK~LTv zH48ORn$^*PFc}CT$QvA6lom<`t(nUJgcHLVS)sww_*$JXl#C+YS^^xDb;_$;4Uua$k0`7YIaPtlicdj2~KmgoacxO+Cj;gp1mBLm<&KeFu7&sZi*9$#mVFEemftK ziFIIFBvGKx)!m%B=D+a3LbR~&C~8*3brXGTyydGc#nC)xRqWoC2S;E?1^%Tin-M5E z^~@9dX-ss1FMa#SG=MT|yUieAAM>TgLsVK(?>Yr9lvPAoTjzr`7qR8HwLnWXB}n>s zPh_?8KQ7~LPB8+CLlI-!bs?@P(XS0mo|GUBVq%H$rN2rtxk7ijU!69HyZUAzb3!?s zYsnIOchsni2b=aXVsESi*kf<^DD$Kpo0+LM9V-uvhkq&4RWTwD4!=&WzKip4)3!)TTdMJtc!6bu1S54kjYPnMbxd;Nhh$E`+kfyx6hKb8tCj zPRVP$D)}p))wo^jg-2XIwKYPZqv#?h5uSvB%?rm1;=4wgEh!|)o&uplXIU(;@j?c` zfE`=vrYPwZz*0pUfsG@VgGzy?;T9ebzDM06;dZJrv*7Bt`WAvSRY^`YYYE2%50K<4 zv(xJJV0~&9Ex1+NsOJil7g`*e$z_c)G@O2+`Ja(AnT$vGh|bJYVs?)P#59KqZCD-?M#b$iRX@ES zF3Xd*wQLbGRkWi>u1zgOvJw+5v|h>a{`>Cxo*#X~SHJrEZ``;>OzYJZ9~PF?Y`;`! z!keA(V03#IQ-ryVh5UCN1eBm_d}|Bt^y{sbTckeC2G=Pj8{Q+TRfMC8h=~kW&7#&< z@Ny+lvnbk@_9;!6N$!7uPVH{p^9}h8C^Lir;AR!6zPOW8)`hS^n$hZJOHfT`oz~z* zb&@YMbKNgYM8baC0To#nriAzvst(?|<@1uX^7X-nnzJEQghZnU?Y? zR%gCJ7popmjKK_NbMFj&=#+J^B3{#5Q5-{lqoG)agQli_nvC^ZG-hJZtbpA|B~^W@ zClcM7nE}Ew{nU%`A}OJ=bOw?#c3t)l5u@nXqHwTl^b1Shh zcG+K=fwVpo#vP^+6N%Y5B{8H^jx0@3%MhE`kIWS*_)45JDq0K4$CTqLxPq*spQCEa zVS1@VOFNYS3(et{MMU$YJwOfVO%%Xn4B%<0{=HttGY}8vSZlks;XHTt_ zVoboO+b**QIXA--1|-*P?(qCxc=&3|XrsZUupReYz5DGj{>EgHliY?Q);@7^&bEOK z!Jg^evEben$%WnByd5!EAM40^oMGB+UGZ!ablvx)m8x#v7y{70Jjj-xINEO+)A8K2t%eY6^+LP1KV$R5{_(jCN?F zZM%igC(c2-hD+tN?a0C!achNyXSaKg2}3giMqJxi&D=H!3}6zr`vg!;uA=#ww?efm zJSl4nS#){6?vb0__TqvslOhtvn9*e&pQf*wF;{>U~lm4g4@*bV& ziJ7JY1kZ9$_Nx{nz4GCFR? zlxXW9)nKqT+>>?9#({$%HhY@2hr0KUuSgK;eR^ZEA{QLfN(!}1j$MH;AS^Su2wlaJAcnJxBtaAe(&qw{LYuX_|dy}?l4K+YE#ek_TsLHq1ije znGeIb;r)eZoGM4%oMW@Kuco%Q zIP{^hi@0f=>VaykUMYyk?Tf4DKktDb`srWzs&D;)zw#%4`{8gPqC=a{;6CFd!O_=R zT!{ge#)vXkRV>{}wu%JwwWijbFtZ_K*%D}N;JSKB?@}kmQ|~GzwTeI)QjmG$RAc;S z37k!C-$6R|VAJrJW^hMAV~MHK>>8Ep+qpZd8p#d82UTIr;(tS*&FZANiXf&_EDjTo zOuH9HFYHv$YRhwfrP!dC>SSoDqrJR+1KFZU5eZVZSGA2KT8-pLWzyfM8YOj~Hd!2N zPEp^|R;mmyqel^`x^8lkB^FQW#3;|8Gk*0hmor@5f$enKi<3|}94Pd7o$yrMQ?%S1 zK({HYBJGjGsD+yvpWBHs?CMAdAfa>~+#E?(lFDgYTx3$?}2 z$wSNrn#|yI4`z9l^K-G&DKs}l2hG&qGL9I^-}b#K1liMz)lc*(@cA5{SjfCR4JJEP zZzk0pMv_J?ojm*V0cb6^4BmCduc?|IcbGXI15pBrVO({3rH**DA?6J;I6Cb{xb-vK^YnHT$-hXY%(08lcZlk>*v;%%9G)GWdTxSf-9~#wCW~y=+a^RkJ z*xo#38~Ziu-LvjGmlDl@ibyH@K#?9!jOYF<7htG$r=CWhBGEl`;sI3Tl(Q+8*pTci z>)BlM!O=ZmMi~uy^(njb)v%x($&UJL%v36hAX?&*)IY;R%q|_7H1n(s9Zf8j-l+ha z1)l)!{K}z_=8m^``9X@Nqgs6(%7&qs;Au zzdmN!Rd!32wMzmi^*p0W_rA}mZIbd=-uYuCT?2Y>P#zw?J~-ng-@ zN4dJJtaK`XyR7T46iPUc}AmHfAi$~P8StPxWbTHeWdoSSa`mm77aZ+1W z1Ot81*|0d7jV7p*U^Pp2-%Gz(v4fNgND!8#Wn8srN-Td& zjsigu!a=z~V5CrFcC~{drKgwCy;cz-K3-m2zjk)_^3K0{^=m%k6F>aJKlpv_-n}?G zJ1aR>ChFe`f@t?xAxF$h2PZ*~nsv@`(Evoh zhF>JfcF{pMdYPA(@iV>rr#>@6(mGNR{jlHSGfGF2RXIITU>!}nKj}epYgx0L8?WGG zXc=)=D9l;8{R=eVq#)UoV?`&PeVC1G^-~^F$LX%g7(g=?auu9=mVv9yA%w4NctH%s zbfUOiQ^<5khKYk}0Je!+d?W;^I#w&GsH{3F=e7n!Y%V)xJ6GWSb1HzL1Bx7U=H#V% z9aycb{PMpEGB<%>GbB#PQf;(AwIb#5gMV=NsP+TP^$$q*fQr4WP40*&(u;LnH!FlL z%70SBwvNHc47xVBEB7+#0D);$Eb04c@MVWp(ivNTegKHdg|YD6#koU>OdJH=5fK+L zA_#@1Ji%qOXm6N8F+ff%dfLPOo{UPuJ{~d|b^nuA=ua-y)58H~W^C(_GcC=kTFmg4 z`S*QON7*FEgK1|gp*LV>j#yY*HhV0A)`9t86U8t@j^h`3>F*B2f{;$;;5tOo8OQ#m#OBTv^OAwY%mt z)d?@PQ%o)5<^WTGH5_^v_@IAoEHA?#Ji7&m(*eG{lsiz9qv|{oGkh@obame8tlFh{fr0Vce2JjoKWmE%HtD5QpI4324aSCL&#$jUn>zTmKoqX zqLzoi3?XG@y64V2wK&sIsY?uKVqixIsgHE_+Z7hgBw#|w2`c!)D2miDugQ&(R)c3{ zYYVI78L^PV&6GrG#8#To4z8h7PA@`~UgNFp?HB^tu1>Wr%&ECbDkQutOHY419KURBm4`Usu zSS^u((Bke_Y`dO{adM+J7GR=vg(<03?`(`=xmJX>$F_ffuq7H!nn%`tXLl_kZ>mIR zLp5(hApIX!NF|}nE&9(wFrV6Jvz@@|RG8W%Y~(~4i>x2G9fovtYh`?DnzaFu^5^2> z@}UQ=zxHR}{Pq9#hkxw{zYh@|*R=;vxx@9)n={rtatgsP-yGU7Rt^Xex5G2g-l9mL z?$~y^^(()fEgJem;k0|}9Ht7Mcl}a*)=_t?B?)NG-EPnigj~4V_ut5Ek~Z&*w!Ndc z$W8M|0cB*XZ59IwgUTfiJjS6dxQ0NP;T2Mq%*`q6Xjx*H{)7+v%u%U^NbO%G_IrnV z2^)ciMsWw$DUijMiq-U?+0m({zshmBbfX@=SKliuZ(q7Jkb z9X40Hzj51z%l;zHw3{|eO;U=xBe3Pz>cNX2q$hR|g zuoYr!B!$TA6R_Xf>;EX8#N5w>k@FCABI&PA*@2=`n!3j$L<{>$0GP=l=b6$&O0r6t43(>J=t(#D4%+q z_wpRF5!EAPkz3mn$c(>=p!D`?!);{SAu+3k3)8FMZ*z`S(1jI%9$cYa7FzL8o()Gf zJ7j+I2y{P-mXzTKyS)fV*8af=Ray5>)T8J|0MTt1N? zquQmk(D=6oMj!DkzBV#_i>F)xn-XyqlI@*?a$7o%6~O{5jOaI$+5HGwrv`E?)v66> z2Aj$ZSx_{&=3;SvZU3drLS9x(x(`VDXcZd&xRNKfdRy`8bJNhL z3{-7s1qa>F3a=LGZ49DAQl1I>ByeP4bul{OG%Z##KW+_6Ot{*Z3EFuXLs~=JL;E9C zT7Qk2Hhk!a&-jm%83UE+&%Iu=BmKQq6!p6~rxp|KAWapJmh33r%hj!s{U&QnddsNj z+u?s()eIy}R2&MQ!Nc01;NusKmh~}Wq@%_)Sg$Ttl~?VNj5j(s&`KX}#PqeO@MXuK zxl@l*a+zfl1w`;Y8O*ApP;7N+s#UfoyH(H#P~41Lv^lcgYJcUxaetvZdBj4{Fi>Jp znIb6@o+H)b(Q!jGf@%7#0RSim24bvQhx^>b%5?4g>_=bs#((<*uf2Z#y2zEtk(h*z zB)pO|OvwdB39j`(u{HH(BB6z(Y{k(=K!~6l0c0z?poijc88d3Oaa%9qX{sK%knXS!Jevoqy#h<4 z5p7ba$#CzL-ZE=;`-9w7D+1uUSUlq`k6$rg%l~%#Li;G z#66FS?2d*&nQHzbnMCn2n?>3y6J=vYfBpSKvN>Y zg4GHOIH4O%f)r-9)%5GF86Z$Is&(a>au?vJB|95vWHz;F(gZcSiyoGY%f@r(Y!wP8 z~wH0O6OSwH^%(FuWr?s4G+597;UP=rX3 zg%(AuOS`F>QtzpzS&xE@+fVwi?Isy1f%Bva3EfT1Hi};4y^nM{rBeu_cZuJ-Bc3pw zbP3hONbQ8G%uIpDw>wg9(sA`woe;cm!0S9pR!f_)(vtQ>3p|`&$|?d>R{6~L|K?oa z@mAFBPkW$sX+m_)xRs_eS%$J5w~FRvMUYBr+#0&7M7#V~z;|hv)1D||o!np%elgb8 z%t|wl+YU5v=rg*O+e{9|;JQCi;!ZIbhyb~0kcE_#2ZmzjHX*~PcoTUHA~GRTA_^Az zXDrS~C1!)T=10_Xzn)n`kzIgR8h6;$OOU;uL&xU8fI>WGKDM6`|7EQ))HD%xvT|pK3LG$hr1&J}bt~ z(AAY6O^r%QXJ0w~ojn-^ciYjJ8ek>(7;i4s)(k{7l!PrE80w^JnyKeOq-izwCK+FB zZmFQC z3mw<>>~MJEsi(i{TfYAn-+k-7U-Fn-T^$YwlC@5=cLUc)+OseUqarOs?9K1b0l%rg zc7FIzMN3LoVnAuh0z{CJ8Dp*k{*0rsHL-3(xVctj8eRBeMH&uSe8 z5R#_*?H_a>8rPwzfd9yR{#?fYhW)MqStYh!nA*%>3mz+8rK>_61~3sV3qSJ6gFo@6 zxBcty`q4lA2Y&O}@vson!m>*Lz^RZd!V7s663&_tIc?J@t_JkIN_N?41LnS3!8(t( z3V!k|W=l2x3_fa7>~U3|(Wabt6MUjwX0~BZWs-q9^OWui;$Qt0IqTslk4@T+J*yN$ zRhitV(hS4Y8`b1O?0i9|8;QtAMZ;?nr3xIE$*OfJN;1hlqin$X#sF0t=MkkXdAjXDZZD}ze!Iag`+0c*;_g3KF zU=X{dc!89406-U-iz*R28xE1BA=sq%!RkzdL$ooCIhymMA1cinV1qbKfqABxBNgobb?CUb%_??XiHOr0zvPG98% zBE?}^?mn?KjnI!Ka7JT7cTjJXfd&W?qqay&=VE0fwxGcDLR+bQtC&_sP}V?lVxZYj zuCKiP^%tJton5v?wv*{Yl54%x=y);(J0KjvP#+Su=P56_Hlo#anVt(B-eTZck&QEs zT`h`%kg#tT|9f&p$a1HB6wMC{5~(~t2Un*uzRAiJ zx>$Wy)rc-_$?C`QdUn&5^ns1DxO>XSpfd{BWdP9ER;+Ru1cHLP6!zn{D$q9EkJ6#s zcqvypy|(+G00SiB<9n?LwWt}ty)n*F$vz6~T0s26mNZpM0jyK!URg8f(!(!z#w&V_ z;d2;3WX1=$ON`{ThwX9SU(U{Njp36!eFgOa+3OgfcWS1N|I_b)7K&xnGBXjcLg$C& zmw)xi@BE?H{_0!ae(~Z*FK^v0SwMrydv(Rgi z*!Rvaq*JFD2pIn&2UMWds#&^8rtgyXJ^tBT4F87LY$r(jyaYm5e18IaO;P>xGLLTO zihzY`49s{h;=xwaIo~iFoan7`nm}JTGVJbOkrpgEcd@dz??`7(O`|m*?V5}{aloMH zh-cWCL2MAb1Q%`(XIQ9dS2LM0!-gZ$_4Hcm zzO;%=1_6lu5i3hm^Puf8B04r?H^c7Oj(Pb2D&iC8PTEA;^%DLOy-X$NErRY$plmK# zy-mMbZt3}&C^WgaG>#?hI83rqwP-3gGi#3XVD-$T9bIDZn&qDeUXWwZk+J32hdKkg z#1Y37o5^y}cGC`xcP2$tZ)j0na>=;ipr`_DngpSMZPmb78OYQxZKlFbvbX0!JO$=xJsI917@(-ChTAwEPy>9Serq8{JnGOY@PiG5+CBI!HYJ zCEHA*+s--;ZLS6W!=BIjmWEiQn?Q_!&5p14HUV8U!MYP4G~+sYD8DO$ZS&;=LSB}1KqXjpuog`a#>YVs$}vFkq92#Pi`eg^fW-9YetI_nLKBzbAggK349H1OO_BWZ znKX8B&}euDep3ux(n3a^(l)3nMa>S{eXKDl&0VK6{w;OFjccM0gVUunlaGUL<9#v% zO|&pddswR47f%2-tt|V1?e9=&bXoH+08l`$ztZ7Mq<`y*&R&~#9LXHIjszP^7~a9+ zX%F2EWnU1vMnsDoR>^ugZwN-u#RI~5Sy2A4DywH7U8oik=>>;Bbq#ceRJ-hP!DeDW z+%kwcl3x~l?jy#vh^-HM^YqqUxmrq3;D@)A9M*z!W?5woHFw%7rqq)HJ`@DZ)?O6* zf9|`4BOPX=MfxylhX33j8Vf)@0*z`kduyG7OKfn0(Nmq&X3Sj``7yGN`6NW`=JLJc zOT;`o^2BzjX{Y&u6_eB*P#o}->klv%rZipK*!G-Zc6n#^Bq8V0v3TP(n=nYCiq9{y!iq{5vv4j_xz z6q@Q51Kp+y=wK9IRa<=nm1<0UUVuc6PacID)CqWndoYHVDxbq)5s?=^_JZH_>7Q`z zaDM&1o2%Rv;d%gcwY??Y)J~6<6?IM8sjtM;&)21;$aMTmRCl(H{xoLbumf77UtqV1~S(c+<11blcgxr(K6DK4vSSke_D&^ zBI|8a)+~@}s3sw$U}J~K+NTq`&1p2dA~0+y>5)usxDHzY>|9l@byTEaktW#4SF~!> z*~ewbkg0sL2CyBEk#!Zx+2O!Ue0lk)ANQg4Rgvqm6qPGC)pe>xCqk>J?rs4MnM-*- zlHn|e}Z~DJ^OA$~oKx9@ZWT~p%af$I<6FSb3Zd_Am z6!BF#i0Mqq^CImVnj;e(f z@K$36k!UQm{a)C#ll60x67pAN!nIM{03Ye|nKmlP)E_#o6tSfb!g4aS3)_RRtn!f= z9lO+b-+-s)Z6tz}Cd6h#oG!yYErStnT6853qdTTR;A0(NfPM+r0ai4jc|GaS`84V9 zz0F41z%kz7B6cTF2W-LpY_Ph2M!cgdRRB8E38hHRJ)^<1%G2)UuE7AXb*|gA%^8(2 zdT^vu$QWyb{3t8i^sV07$U=6Bltp$j_}TLBP+&YX3&X6&Vd1{vXrQM#7+;`kSt!(~ z077gDLA^F-fo|kH!BXuJXv9zy5JU#{TzM2}v#pH{*T%M)4E4PeKoY8Xjk}Nhkt=+5 z5(w}RGEGXLpqXR3(zBvj;$ddW?Lghi22mMBAkC&57A;@}cA1nhe(Pfq=t@MS&rT<| zOdK&#TtZJ1oO|i)Uw@**8aUQiM|v3pQIBBR6N=dzK+RTcfWeni%xw?`#?RQw@x=sKd zIbrVAB@?IhDeVzJwx-xLC!8s&e6oYVdiYhJsRZUmuk(x^wxg=V5Zc6Z3GGckAsAMy`!5bb0iB^t?{%~n7tx|V84Y9?cxz|{FRMtJQSJRC# z0q0Jcv&o-}Yo;7a39ExcLMy8nY|oOU=evTD+H za%Km9IYU7ysSnzqG?JSU6BOjEZYyur4EPUx+t90v)0iE@&e|tA$U|p zm#F)91Zp-euqVM!!$U@4cW<|?oXq!;kpIAy&)bVP9UVVPIzV<)l3q^LDvi|$$XUe^ z(aGaw4Hem3dd$kC;_)nR<6rG^$_Gb)jDKS&>W8n*MHmoP59Gk5BZp( zR-bdM*V33b6VC%U6vo<9=CWjCSsGKlszR*_Yss}rTYW_xxHDHtl;n*uWj*=~aV=7b zN@NT+mzK2sQ?m3H>NThzs~r{8y%);TN+5Nz|NQLm;zyo;?d)7uSjjC^zqQ77h$YRL zach0mdznpv{qhDv1S>8uaR&Rb-4&SY&@cK??zS@mws!!S)QxRjwhAiJ)I!Xi?95G< zf3|^X-8_*6TxJLIScW&gCgt+ZC4-LKdw=B1Zgk0Z&b0}K;7lZHTBu8`LiY7Cp~%0W~ zhYU1ncNNl$!1njZvWG+YtAJ+!a)Fe>LfyJ`YXJ4_gyXGAR@0pov5ln|`3}^KTkb?v z_Z&D;O(_(yjh-!SRJV=f;Sj}37DTi*(sj`IdV5c>k zC-9S7-SSUEJW^AtI%EnTx7j>|Z$8OfJ zF{`M6#)@6>%PAuTtSbp@aZ~_2Q5g6zwSix0JC@)0+8{vDf{cK(@r0Eb6@7LJ zpqSUQAOonNDF9Mwv^O_O^?k?GRfvKqMl%3itdT9Q8lOsOB(F4NRHDz_ndv|3Z1m&S zS$S<-@9Pbt`4Y31gK63MH=bvaI%y#)Gv4$bqTd#29r%MI;o7~`N znfc^{slfx9!m9~kI7c=|unLg)Nmj*`LOOUz7jPx^5ss}w*Z>(rL@he~2@8+32@;Kb z&|TUKJecRl;_`0stncmEuaUOcL7ZMoIAttzx6LB4dD3tC zz(Hr`mNd7R^RBfKo}0M<(>*3f8e->Hww}P-4nt|ArxIjpX>l7SX+-hZA3dl>66L4p z=SnSId>@b>MvMC9Om5a$w+pkv!=+cq#&;I~uj~K1{sUbi-XPRB^&d6{iS@T+V~3Yr zc8JhzTY1SYjZQx3IK0BiEwN8KV=63uPxXRPL-N*oI+(o}EeP^{O>IVo4!Y^Ix(e2MM-|^h`ThyU#| zsP3#tXM?d6;F*O5GbQvaF^>Yet-zvZ7Gdj}U@hcIbOUf707M?3NI0^n)iR^F z`e$PxziRkKle`Y-Am7Ntg-2@#m~&AnCd>(SM5Y&RhLsXvGc%-7`nW{y43>Io)zdD5 zX{^vQq%1t(Mk(n=rmt@rn@J4HXO35vgkkQ?0lAb!z8PaoLXnw`HHDiV_B=sbEB#h^ ztr5%Jfdly#PMh9mycI(C&M+`I)I=9z+#HE26=!%5Wx`3WDmB5AXFJKt+jKN%oeiGd znz3^Z`z?p4v0W!axZ?Sl_yw9?3PkDezPXg_JK#VRy(OjUrTQcokn{{0D;hQ3us>c7 zLo=-fGVEK5yTOg!0&XZz^-!fWoaGS%C=PUfcu!{{FuhRo>(quV2EXJ=;fH}?Vl^)4 zhZQDD7zOJ6yZ{lk$o+6gu69sNGgzz=>V=gF+i9R+@^;ecLNAc`bR*ILrDYbwPr6J( z3Ofb`R-GKHV&kB$m>5dR2oe= zz}v1CJ#XmGJ!NSfuj@x4bv&+D#}!Ow1ga3Oxt(X+ddTKgc3ald&!Yi@1%2LRS`MZ?7~ObP&(Ez;XreX4cH2bcU1-anTGdLNHn-q zAQO!kJ@GNn34EUl+>R&IzJ4D6l2si)V3+})S)qHbQG3?wtli`sK?5?B7CB$vRi=ZA z`fq5+Lx&%c&BsVCR~Is4MUYv+lp9i=;B3QDP2arl7>Y3Yc6YJt@g}C;yVMkMbu=Y* zih9QS4hSdWqBTY`p`f545)^?qZ2>71YBOYjmNr@kIoudCOfT(_y}>s2Qq@LTOQo+i zyy8?sQY+?S|K2z?if}MOq!3ot0{@x!wNrQ6!Mv_bJjjN}hHe?$K`d`BvsD-CSbm2A zwXlq7xOtl)!v@8Q7xWrGMr-hsMF1Xel)w8DL%~$rmSqx$VoV|<`>zcLoyDZwbI~|r zcBGq|FqpM?XR;eN<3#-F2qvRWn{wqFR|i0iqnwD_cF&|~!dR!D`il7}iE|!^+LYVy z9z8odi@1y7PIdP+tl_-|E~0K5XsPce0~E&$oEpW$l-#WPEKT;RUIPWbcaO`9`x7jt1Q7^JbZ$P6F`n4b*Cz10^m(?AG`*k-%Ih?>nI6%gtd7C>2 z2V60M6%g|`%r+fiATg=#tEV=>AhCR?Wq8%4FdY^?92Q8J$g-bHYo!QTPxz8;^O)GGzAXpa);@lggtaNF6LBH|5j|YNL|37)DqK{liaoDOLdQjQFke zN@2xIiR(z^rHCMr&+*Dsj!0jV1HUAV}jTy@j%1uKPM+3(yFR-6seM zYc{^W|HjlK7ofZZZc`mb=N_nO7vM)G8rnl9bGF-x{)luR@kahGv#BeKUm z@VrE1h5Bc+bftq)LX${6&e8L*vMTPtM%*h!Q&Y(1myo)NskN}7*JIy=6-siyIy7A@ zv~Rf*$)@AF9M1mfFWhnZC5ZnJHdwH8R^E60xUc0$TS&@~yviHM7*61x(nr8BvvG1; z!~VP6(`YIrj7P#a;y%7~y?3n29EB3GEj=rgwe3u-WZ!F2<+dk~o>-<0{09NI>oR zYQ+@h-Wz^Y>1`wa;vXTmgZ_PL!mppV`|)DBDf~NBMSvJfxIK>IHB<9SS1iAEpI~GF z1y(`b;i+))i8>x!nLWi%Ju2a1KSrK;e+~j&FQYYM)qj2izSeSSjA2>gJ#0j`hGt)zBdiyx>g>C`LDq}`0t0o)9~+v zBR+Xu-K$s>ee!k>Kiemlz4sl?KNUMG&aTA+gGj{9W$?iX|YRzl@RV&NkThVgPBU-6{nu^ZjCDYXReu|eg zLv25}J!HBUpkq}{{#m%);L~T;c$^#e<17p3uDXY`%$7@I(j6U3`Nxu__*1;$>q4N- zJ;X4?WBwdzQ8~K%qcwD&$8xgTrM8clbrVJeICDyXN6#M?{minO`A1r$ho9PJ9f15E z!|KH97;{8j;uaZPQSBzG7`^|fp~;_x6&qA5z^MFA1O9j)gV=Mt743cH%L1A)PvjoR z@ZJ$w&fvH4j9Yj7+x$W+E*D3>>dQj6+l9}b@A!4q=HK1O#GEJhh~sFjx8K&lQj#G#G zD>Odoo`a*>gSx}uBw;6;OVju|H8-&pVb2s%a>83#Bnw|CbLSZY7|Q63*m~x7R~ob; z24lSofdr$xaQ)4xwVPsNPRN+MgYcuJ#5}wH{*i{>A;kVAC{YHM(5d&|sK-RJRc;KF_JhOecfjkSLj}gPt5|V?ATj zXN7H1e$jSxYCGvpIfvQ)iT3Zi+cRryRW;D^$Z76|Z#}&8r?8Z^nKN-oGC~z_Kxu$x z*|gYARqXJ@UH`Fii~sO!df3+dE9~pnl`r_dsPx=xOXUL!V6sq)r5Nig^%r_q7MuyLcaBjKw*p z)a0s@S6p=$upw)~SvEdsc(oB!pRst4zi8XMp8E_EN<<>SKJ5yXe|*vjwoF3y4kdUw z<@paiV1+Wwz??#`b>*d>Y>LqI%J-0L7v8WzP;eT(%{|hsm`NuhX%Ez$K)kb_8_GPG zP!luP9oGjtbUjycLthIgse3T9KUO>O6`oaVQ%}5)yRgXqE*9XC=Ur$Y zH0$EDHU9gH72+(a*$t9dBY#&2wDsBeu@$U~@6QK`r+Iw0ITWaKZ-g_JCm!%$^Kk!Y zHhvgR0wT=Wl&B86aWGTU9t$Vyq>w?UOJ4{#mIB-SYG=O=9ThHk26txaqEwE2yn1^4{6;2nUttBO3< zOaJ}%U(@&4NYlu)SHfg5!yo|+vi*0H6_pKLt!C8Gn#|YY?8O)~b90s5fs*CPwb95# za$6o^cO~r*f>9F?JmOdkWgklGGovFDtn3_X|6REh>xZ|R*U8w1ug`L9E}ET~((751 z6l-ui90yqg@#@3k3TLKgzncXU1wO(KkK6!}ok&6pxFBp>oiFuyA>cb{!wK_#b=LH| zH(4vi4w5NBInh*yvs=m=zTvSaqNn-IT;oxVxI3ceaRSu(!@)iBQ^9zUU&-WzHAJOuSqv;VRr-6D#B+RW&7--}Dz1x&VA z`T!uQfv^pv8x|=p*#2)bZc!F^FU?HbGm{`NEd(wW28j*1J{=HV!d9+o1s6%3G{b~8ODpT zi4eWWLI;l=NqKrQdH2#d>}+|jZuc`%KXvq9(;!P2YyK9I`Z_~;ovI(Z%18Hs@ z{TmM994gAx7JG#YuuArpuf`9E!2YEdU~BGfQcS$2e&DHTY7?`)rqbPB3NlFR9T8S= zYdICU0Z6Xe2W4~O|z6HcF4c`!z)r7P~aqA4Y);4Epg*_xyqpUhti%206MM=k=E zq?F2{=iz07-E&CC$FpP}z3|i0#6fp%Qlp&;*087f z2jT~TW`v;LRQZ_SWF2#MR|da;(XuaIKO?an3pIMyX4tQ8IuvEU*V?u-(+r8f=5GV+ zw%{1x3fi(gOlXeHwdXW&GGFOQzmdX_zwG9qh6T_U4Pt{$?R@n98Tby)4MLhd5pyxw zwD`$UcEqfvg-VYFUf5{Ev}XwL)n0{$iIf=1yU6x!vo*LpI|YK%-ppd~wzHV5E?**k z{Q|yiy|R2lW_B}$m`3{@zb)A09P;V8*S|^t>6Rv#aoS+>nX~twZY9Zl55VfaHTaLg z7OC*PWE9o~@n)MVHB8k-i?YxA%O%^@*uICD8C~p&(D2WsEhX+TOv@S_Eb*TE_u=*d z3u#`Jo2z0bZwvmM`!vM#y;?#2edm7Koz6-+_A1Qh`+HwQGjM6MY>l&aE@nli;G1U6 z+WFp%=J5FFm)}3O6?om?r&+t-b>HdTVtTFc8<-eLk$y+X+nSw&FIL5UOl7I1q63Dh z>Jv<7;0+B~r{BgY+smNB^w+v$v~E7et4nC_JXcTO#tTQFD$(pxr>m?t50WHBy`)WQ z*_MD*mw&bmhXyX0oymwkH5^0Q^g}U3Y+GX*fUIWd1PXj*i4M)A!SQZ_r34N7l0s8j zr^CY*$<2TT10C1E$xq<$MN7yNS%h2To zD-XL(S80vS_HWD)d_rI|f)sOUb2l0=nm^vzAmpBUd(Xz zS=n&IJ#8#lx|g;$N%trE_`F^dRWL8#8$UUbgV=aR**oyNpVI5B8-nOUHjVzUc}(in znJLCo%4HCjtLEuFlVa%y3-qGb4FG_zFvWvJi*HRWnr^lBZ1-h0Mr-a(zJQ)D0`vGj z<+FGFZzTsv#2;sFKYFJk7A(wDI=KrP{FxT9?FlI-%`0+SnJMZ{U+2 zhH`mx*|sT5mRK9MmPRVGn%sNP<-LtG02R}8i$mzwrruK~$$E1pX62zB+hd0Mek`O| zKTSBX@}6Jgw`+rOJnYyBx0Cd+WL$MKuHfor!M90=$KBGpYp?5_OxWnPichI#=FFnv zHO6;hm4Bv%47roLiQKEV72f+;Ix=>~ezg|AH=PlSe>M~grK0=0&V#OCuhGxp{s<#Y z-+anshQ*__Oy+TxiY+(YX7bP08RG9B@p&%b84Jf9`Bo^hK!9KG17( ziWs1g;l7WeRD{!A$f*2tuHv#?Drs!1Z>%PnjC!db*ObwM)itudG;xK}uVW6swRbG! zv{#o|R>C**)bzL*x|!+-0WCavb!puL4;pC3q(WppLOOSk_5R6X)0lqmMq5s&WJMDL+3y z0J&oC#kWRl-R~G#|CG?e$Fry2p-Q;9HUD21eD4O!z-0D5QSh@Wc%(4zGp$GG_tcL$ z=+-A{?T!ig6x$MGuD_pCH{H!{@EsXQ`i>SbNWuHNfcE?G#w*3GT9Cs&)a} zd-m4+J|C(_$2-B=`kh?5ySF!1jSdw)E7|tj1S;oEk!D6}t-a~RgOg}eHtNpj>zlW& z*Dy^=$0Z5Z=@^pio2_sI9P8g<2tG;SNM1Y|bXmW*(=ANtv!i z?E#*j8{J%n_e={VLxO4xQA%Q7BUIuv`f1>*3Ic|Jrjow@79`0tv*D- zz>~E%J&(;V{m0b7wr>?aKt=JL-N58sSp0S@q-!@*^SB|9Qk=z9)Q|a;Wu|Am8L$n; zypt}F*(B>1b6C>Sf-W!2hS22U*o+)EXtL^)#|&Kt{yl!#^mMc0;ggc@xMJHV zbs&BGBNl#lU{SwxPol`iIyB*y&t&tbg3~Un)~kvFEL!kvq{7xTu$foFSvcQx562_P zd~W>#gQsF(0gEjJHdboqcRA+`U{dYD8sEKUWv~YqD9AG8A|t0oXcpA!TLdF-f!#P7 zaG!ylCczpFwtE4?&|}9fXs2aCv(`wA{aF;`F(G$1u}(1TZvGha<(+B6EeAc&J`0H9 z()`oP&f;zxJwkEaxnkeht{HIi5^k@$iJ?y>3MMGTk?XJtG~3xJDd$rpb8(QwLw%)n&?j(`t6uP*{MbqOyN1~nbQ#q5KkBZeLrd&Z&D;t$5V4oU} zfCRr-uvL2-%IOugh4wDMUbE=MR@hr;D1VA`zhxem?2P4RpRnSWeYkCNy1;y?yXyJN z{dQ|Wh+AyO8N^x?kGPDst+udD!}{1&hr1rOLDC#W9FZT2m$0ZFG z+cMJ`q4|=H+B*bOI$8LP+2N|$(-Y#BK0C}Y1ITFiP0Zc68>a#UidJlBJ8r+)j`Zm} z(d^HY8+F8t#|+P|1!}R|#5={v;m5#D%%%0idQ@w|QQpS3Dh|qJ!cQP|>%w|hb`h{{ znw196nepZgoUC~{c>ZVjW~%sIy~WUEADC+Vkd|*ZaSzyJ+@H$%LRXGKj&L>b+U15_ zPkPx+LtpH_`<_!I$iWf-FjAok3XeS5Ht+Eq#R2VDWKi=I zmhqRoC`n=rH%habZKIvQ`=7ZZwm@J)Ybjn^bf^*PoBIL{Y1gFA}a#qhe(iq#mD*3Y9x?#^Wjdc0XKUS@9DQpzDD!(kXA zv8aWty|)1$7~_uYv+^m2u>m!=hrfJLdTX$w@Zcq!{*Lab^=rr;b7il zrw?4d6kT-OTMvK=xvQ~6#h$V>22>&nU@W2&<|n@eK?wF}`KQ=J35et+drnT&#y^#x zF!zzc=oIr7CX~drgQ^}%^6){61@D7omw6_l<3!;mRAjx^Pm2%H2IO3U^}Ea0`GC&X zm@GZZ97w6m+Nqiqe5kvS^^&ZBpY@t)mbK;rzb~Tn-og)1aQ?(?Sq1xBojg|(Yso{(i9s5rX&5`^rtIP+f|+KkJiMN&$P@psKnMOK4looEq{w?ar>~m zk@NDZf{1CO?v6q4HRfJ}{bu4m91jPwey6Hf&QCeSSAxmc$jWMlhL@5(?%RBym5G40 zw#~JCJNKW>9@alj+N$Q2F_(~t1=V(#Tdxd65=Fz6Pb&B?Z|!(ZT4~si5n~C4^7iO9 zL=*{iSsRc^rrRH;f+HwVgs@`65qT*QzQQ(J@PZ+jy1lzM69fmdq27U>?rO(+_A^Mq z>fM)r9IX-+c2O}OF&t>^r&}cbc(we_K_mUT?1z@lH>%H5fiSf(c@4w2%2-nQzmmi3J1Y=DNIT9S8RSsb`jG4Am zJ?yad^?h-;YpX*!Z*UYIJHtNJ8I$dKYp}lsQzpN^?aGE4@aF<}7(z(eZ1I+8s>wIyuf=E)b)Vmwn!M5mh?GEv5zj7gIeIv(B~{>R4n)0 za!Y}L#FG8_v2>UR3@F4#hRJA1BuOU4Px9FTn?2XkT-SD$*akEQ>UQqhAy`6Cd_V+; zjr4{Ue}Kv6FOYwSPn5NpFp5}`^Dv#@L~Ybx6N9zGZm)y1{-oPV!>u+5TmM;i7Pe5U zmDm+B*7iOlMf0Z_4jM!2a-0vg){kuaSTlu9Tvb)2fi1WjP@^m|a-R&%Ty1Z5$vld2PW-cyG|aaOmOk$I(Pkx@QJpSCy69!p zp`vWZ>ZPL&3|hH($bA{5S4P3-V03x@#ueR_UT+1+wzARB-m*C)n+5ogk!^Gq$i8oR zO90?NYrjoue>nPiIqUnMNz~E90mSzFd8Z@RxO8Yh&~-~3L0s5ac$~xJNw!Ud@u8Yw z$pn5LTWyEq9S3r_BA3K1+efVO4;wzR{HMioV|Vzh8NJv5qI>ZQNwVie z;kV4$yOa6US~iQ%89{MPQ*sn7dV$8NIOTWi)|H?I@lz z(T@OxCy&nS2Qpuyjqz(;N_yHmKj{)51E6^hRn@YpHc6E{`C5W+mX0xO?;U-mk!FXX z?cYwHep(wQPN5Uf?38VYYOf>(gMF~uv?qPsZ#!h#)oT{HFV{TbjBF= z*ly2*(1$jIvBUejnfD_2?$J6MiVwAVG;8cL4hO!Ke_#liQ-saQ!#Hxg#T$I}WXvZA zG~@GRajU(9KYXywi?GPfDPgK?vAC7nzP-8!1emVP)5%w)I>YS6jTQHOpn^fp%>5!o z*7D`Dzp&NL(C?~bh8x-l9Q5W;Ig=mu`QVH!jI8n4=^txF0__I(j|;9-^6J zG5o`PHz<+av@4=Z{w$?9q%g`{Oecs2eJ089|E>(DRvFv8Sd@oi^kW9$0b=HFEQ4Gx zGh#oF2yPj$lGuB&A-*fu%E?7vtL9enEC;g;NPkJiT`-#AxfhN7qgeZ?P0q_ zUBzkmOwgv8OupyA zSF5;n?W3`-?>cBpow~>(*7Khq>c!#pu#D4m9_+m#(EBH0n{|b)<)&~wV`881UG5AE z4eYU@Bb-Cg8bY<%TgsI&aE&`HuB($nRLHGy&Pth8=)3F~?!*^cX5CUNu$_SUtlpR!*ZvxBEJ6nppn=dwrqv9u_ z??+O`7(Fs^EfyYI;i1!yCPBeP*gT&gzS(+-vba)vl>#_bg+X#yMSGy|qF>V{MD$ zB(bR0_flSd5ecx_S*gJ5DZAuNvFkD9zf$>QOBEZQrtS>)2iJV&dGKTCZe@*dN#;#d zous(jF)4X?>zX#@kSisor z93Cc90oWQB;p3j6ENKqskfo7w7&y)7 za4cVVg^#Ny{2*T6y8}iJ2Og02C;?i_jLAa|(^iH2p>gf2>x;B2OizwxXT^VZw;S6} z$i1#Ik_KeNkCMB}i}u(AP1|8Bwz2Xux#e>BDKVfq1P?F%{_^!Kgy=YJu@Z{5ju&KX zkT^z_6JxEK(Q^cc`U!`rU2BaV$+0h;8B#y**XolH&Slm^ZpCW@yQj`E!z04FtK4%` zl#@@vG5;a{Hiu(0d%TJ5epn2qi+j1_4HcA|?&`2p!~0D!VIk*6pW|lO0(59-FgneL z?V?ZO-kFI&VQGY$ugNS;3ih~Q@e&YZ^<7;eJ_50ju4pdtNPJnRKisRS){X*q-jGr) z`>wJV%+*|zK((MaEHmGH0n&JAg#YjXw;!dBK6w_XG?nrbP~u zG$psd6+KmT?4jSBFmWGmE^om;kZ55hWaRaL12k+jloWXU#P?)%%5S`*1vl4ebi?RP zZnDLO+bMjCl*@X&*_Iri?l+x%FB~Ji3)^^cYJ_zj#fw7=bJaWmGi7atHa_PP?pJ#&rhaXYQ`dt^>fijPX8! z8CPkJYqa&SFSZvx-QJ}g9sV5ldUR#1FTn*v?S?bZJU;sbQ8RpCE}+Y-KZ5ELh}LcS zjaqUs$!k!83EDb>_xi^m#o zZX?K94mk*qKrH2$LvbT8HSd)RlVV{o&|k*ueM-?EZRl;$^T#wGMSrvlWl^7oQ5b$q zq^>%apFwgtiBW6hfjXit2h~hSrG><6S{OBRy}MlXp!@d6^)_C6UhcORuhWc4S{hH~ zE9J=ue&BDa0C3UC8X;r*w>7-S;@?3b6oEWNxYAdglwRNyV=Wd1{94dh9<8)kN}*W8ZS)ExFIn;~ zn@XfaeuFTH>9G4IHJ8Yn0L;%)0BE{*weflS-P|0i@?fu(%u^&1KR>=*2Fy;UGsPST zW4`^%R>%Ms6ni;Brr-2|i4+`$WFztWEDCc5T=1YoIxJS~tr@m;ew+QKZ>yVD=Enur zJBWp5ic}L{5)4`K-XD}<*_ZiE*1_-wa|r?{MN>ex?5lEW{^s_@JGr%q#aQ&vhF%S&db$0KG-ii?GNRlf94EF;iNcy9W-?GhCkd%Z#|S zs2sw%E-kSYM5Z6%kmV-%f-gU7pSUso0sjcL{Si&>%<{#SN)7WtfHHfVW*XffE4 zhZJ0cEixC2B)-7#+Lm5I9>;pc~`W(e_HMddq>> zNNY5zwXPaFyj8U0ZX5nG6OY7K9}0+&85#bc^xLn9gdD)dH$$7B^Gy}sg4Vs6mUbXn zMNubjJNAD&?;+QU^+L<67@LgU8_{jeC;r4NpsDKSg7q-6{eCdxBUE`V-9I(e;cuv{ zX+*4%>GzJysP^ed$xlmo8kMYUe~gJMmOQW=&P$}x4Q$%*Z|!v3IAi^A-Q~8}C;ryJ z{qwN}8=ca9>MjkR#CU7Psai@z25Il+Cwg9@7LzrGP`mOt=k3~>qNDhBLu16a2cqylK5S>}BJAAyS zz^E%;C2eTq1+ru1mxl8l3&o0Z@;<-gMzo?QVCR(@Y7KM*y&d?ILOJd*j%lP3F4$GR zVHMC}753m?m2K+q3jWpF#sYH*p$#P;sxbH^T&?{3Yrdbzkr5T4*Li>w0Rv#t9_iTL zS08%tFyf>+h-MOrbXX3eXl*i&9U5Y;nT-M!9_ifcG-$51_P)sqmrMuis+!_~^$gG5 z*E80^SU}r&4C83lo<@iUu2FTjU4f-DeTGevo_yD1iQPvORvu6=smiYT`>Xxl3SBHc zJKxRQN)1L2oJSSyR$k+He%_lL*gX;~{)?f|%Yg}d-)WDt@u&_)Md7*CR%7anEK6xQ!YRBhF120GQ0l8LW`S?31E zlbL(zDuT~iNKx-jHt1j2DW7u}K-kgT$ItfDq6K3TM}{3|kC~nw0 zp*w}@Ik*{njl7KQMVz-d4;v$C|JPo%&ElLLCG1c69s8JH=5SsmSqHfwh8>G?ZgMmz zmnDF^>RBK2rwucOR`S>+9dU9ARp78T!#LDOyUSd?)xneRXGmm47#ryQ24q+@{wp}}dk*UZ?DcQmwF^jQ6#$K`mJ-YB?|?A472EuydM z9p^?ZXtVI*`R8{Yc0YNxWX6763~c+W65UN)TvFSzZRax$83J*bR)j6Rcl2@d7(Oc> zx{t+1s5b{}CT^@~h;j#~7bZl^t4yNanFx4zsu94-lZIJAvY$OfqNlVThvpd{@6cnK znb%GXsq8oA;eDohA!M4vW5Z_t^X`sK=FP&!Pr@uxvlGWdHkNux$6^*8`CI}nz~raA zoz(1(et#b&qK`*-oDg91*5Le)Y5W2K6G{rv5K4$`=+uf|@J%O$TujspFeXdKX+ZD* ze$PR#w|SojEJO?knJab)zSzX>VzA?+1$}C=c@jLYoXFu-A|5|U*cZ+}Z8k7be8YEG zpQ#cTyO#}gX|Zel&OX}kBR#wc5|Sk~k%;%TIfDeiu_ZcoHM|%ME9tZ5@B1jS2@B>e zd#)z?rlXy*$85pUIM$QE-?3{ucq~@Dld5NU-HhF|Z-{1gKxKT&#QAJ8$Mku{WDcR1 zef0!)qYBRo9-p!e?8D&uFd?fpwrz9x6KcXu1h@nKIw)*1geB&+1ZD=esIKeB^&4^& z1CK>I48x%V1-+T9Z@9h~_a}S3^_;LR{)xt`E{3w7u4*^@h|FDE zx@B!`Tcf(RLH51R*GM$Lu-(f8|BUo#zalt2G-cn+M3a+K4)&7;81H|Kh%f+fA+)v~ z&qXaEb9WEmq*E zpA)7}w2GQ{cQNhMeNM*+fhUD0D=Y~a8?!lKsTaRD%*2+D77;B7@WPif{4`G5R!Xv|n4vAO{l=8gK-3 zeLZJ0Pf$D|W-^`BVwfu8tl`+!_EIfTxxLF#DU`C*@~_HhTr;S$I(kjwo-N~?Q3<<$ z2G8W7-oYlOEN~8M@7y#`+!&>_QnBbh1g^^|It~rUsdD5RB-unCGZebXITenIbzYvg zm|I2q^xc^{SDPpJ=TteK>la`BxLfGehaZp z;zhczt0=4$xysI)&8li;Sb^K zVqf`G@ZSnCwa3p~+m28DEn>?~SeC3U?eig71e3r+$N}?gcf?ws@171@^(YW)Ekh4z zS?a(4{(A5@8bqKS!%@`85GQrVhBJWvEZeT{xzZ!I?E}%MEi$s&il0<1C4Espmfal8 z<>Ccld~$e2a{xa;z`sv2=FgHOam&7GG$*E1-O{!#?4N^cO6N)JI*!~*!4O<`w(&%5 zea(Y)hk(ns33eZ=GyTm6$i^H5J}3yVPe*#Vbo4@nH5%e%e@`tcEFs`tIv$eyjA}Z` z`5(f93;)jjMhkOSr@(@_@=pCWX6#W-J%_N2wp{zoErrDo9C}y;{$dHHDQ%%hFez`b)v|80K@(-$;_77RCBZqq zBp}wK+$0x9K@P!-p@+665jYAtMEKC`#5Jg6ek?stljmbBjI~IH^N>4yyq6~TvG&FW zs}ruCq(?hQr|5)mMKpp(q1+O0+%>lIZagBZ#%=qJhox@6grE!v1b4`AJq?$9jxm;i zG3UgB5^!3_cSvDJtswx)%*#Fxa8j~lUr{T7H~TP0a+lb)HS~3R#U{ifI`!hri;p*T zLl?sH`Nla;w!OP1+e8neG=+f=Z!LlR#bNuRtr5mSTp5B6EqN6SJ5iYf;sHsSdzs7Q zJitkkQT~CZqnV>vX^bQ!6AskzHgz=C8u^4k*(V)Jrp$M!kq!dXkW)zsa`O|V!IaQL?LDaWrn!llV1qyzrl zO=RWFN|;*K}dS@#j^&ezth;f=Ds>@E}DoeT7UkeHVBP9R4O-icOR<_yoQ*dsqn zpkml8;EI_v-aEwM>5TwacN^cS10BCT9#PN?Zx!A4y!ZZ(XsUjL8AJYMUVg7Xc{*A? z`&qnvt*kwA$slW}TJKz$a5FYce2C!TRBhn(IO_T6qr~0qOgQ;t;V>Z_yitb1|8s@Z zz46aaaTJ-(F2amm)5Vs%)8{`y&nfuLZ^y<=p6X%#aLsf#p~iM!fk!#e$7@K4llC_0 z?R_KP%(vU?Js2R%Z5Jsw|C5I@|8(y&?Z2GO9T8Klwf*4O`;W*OG4~z29Kb%zC_|g) zzm%ewI^|8|QZ{3L`ldSQ@v^LBzPCC34UCC0%^fCmj^6p3h%2EH=s4S(Mld32d@OXU zInU3lja0x><{MRn=jn8N;TNuQ`Dvs5;Ayc~PeP-6SFl@EEHSeX<0`cpTbb6ldhh0g z%{W2xZ;OJQ1dw-mDQ-=1Ofy?*wU(iq5U071zb1}LDvRyI_`ucEtnjnv@VAZj3%Ms$ z1suEkiV_)NmczQ|O=Dn?PI?&Y)J5b4glLn9cKjYlBKD34HaR2QGnU|F_Bgo4(tYcC z=KUWGZHGWfOL5$O^Hu3Id7W>`s4PwW??K7Ry}w_OqUJ%0C&Vz`V&ESq+qRTy3HxmE zesPJX!n(Yg;dJKiP`kHQdUNPvcks-Vz15lcD`x@vd;eqa28_L)dOsk-LfgTh5Z$=dT+nK1|S5qe}7w>*)b#QlKMtOiXaXA zWy3aEw+8NhC1!Sw#Z}bf55eryb3DO`M`+F|q;hyySeyuEq!P}QQYP^aB4sNdhNGee z+0on2nBHx~4-Is2Y?bZBt5uTS!iwEu72cF0M5JYa&Qa*C7qH@ugoI-0wjAa#0fXCa zW~|7I@H+(Jn5u zCALd1Q0J_#v6e1=K%Pu*kh#UPR7YzDM6dyQf4gsuvHk33k8!eVXHI@u>`mLCuNZTr zFy~n9onDpLv3%K9Y-NIy@3kaQ0pr?}&j3H*9v#UDB>bgA+!)~7aySzhg|PqZi(ZFF zi(;~G<~Qt#i{E9lZ>~5L-RAOjM>o~7Q?K@-BU1$DE00;gApoVU%DeIi85dr(rf#l3HSb4UoanbJ!$Kd<`8|0H=m!BEraLlo=^}Z+sdV0gEQJ=!)xci1^!VcJiq3ZLl%IqY1-88v3T2>jmRYVr|U zvK@Ut7vuzWpi!2dd3CstDjbuXVP{h9v(u-aA%>mIob6xp}cIy?yaF>DC0(K|hXxGT-MO)k<5R`SRe z?s*SB|0Gk;!w+t~4Lzv`-uUz-d7|g67-M#y3eXp-S*OWS;`+ruq3 zQ|3KZRXyn1r7vl60C3U7ij)8+7A(GJEx_lo-ZsTwmE(0jzPC6bq=YS!RDKYiXVn{LNpZ*wBntZgUm zfS8H1K#?8UbFnt<7Asog@7VBMm1ZYP^KG+`fIMdJA!s){kwS?RV^sMM3wW2ylk@2u zhuw~{!u$$cY-Re)H*~|>?1RfDfH^zMTAT0@UOL2`ZR>-N#hkpjtPd_Dx(`YQghMcY( zaT-;6yrqj6HjF@lv1IB1`*iY+;0OrLh5=p(G`VIE12-(VBI41CbiBp(Bw9^(eKb0m zfJURW>TDq1-V)y$eEQGV?43ul1m9%v1xp=jFR#{c(RY66ci+GVZQw~%-vM8kvIX*V zl9KT-(7uy8l?cb0~3qUt(2#t)fx2zOz2R-3(%E^XQ=oxr{G>fmBIre9WFp zC%O9Ng-7VlC5EsJlDXy(;<5asi!jmJ*L7+bX0}vKwJ+%31qiSKz7_tXnn#JI*Y>Y3 zFuwe3R}!EXn4;XXEHOZQo}7)$XDFilEN;pF3Nu4*DS*?zl-|YZ9+=(U0 zlCbk)vJ(R-3brAcY_qqa8>Z%xJEJv-c(C=CNt~$bdEi<(1IFlZ*8OpBe(JEcqh-eo!Y^o#5;#? zd-<;~oojfy)~ir8rt1+5ynlx4F1W}_C?R27a5=!&$y!Nrcl0il!(Y<+U- z88iI*%LFO9i*f-}!G0=0uEN?SQt!uD(r+;E&@hi1z7_o=9I@i-VOzU14PSRj0{ywX z;V8Td9kF2g@V%cI?kgl(==@nOk4tR9;~5!6#7uPfCodCsx4zl2y^g-+&?rDOQw*Yv z55z=068LGY^`G}^*sC|YzBC{&oL0NV=)}xh{6K1CsVmvJ(L4;(P%krwY3cy6t>czMWO41JulHd8?Dr#l)2=2?Ke#h2 zrbfj1GfhEd*>?yEBbltp?>r6YHkzCjFIW#de8OOwEf{PZyLvG5UzDGpc{JkIWP2Y` zf`?4+|K;i)4-CfI%Z~N;vu#UMgCcIIjlIpOd%WEKarI)WX2zsBY@pE=RFf~-+IaI6 zz`||U5KYsx=gaX~b8)pPxa^^QsBS*M6Rq;|S*Z<=pHnpoJ3!t1ciwyb#QT#hwtb$4 z0`NtXd@+s7*MF;Nc?m@CBkyyPw7)b0ZtIjQ;4UUlI9LM#G&CJ5=hTX+i@)saY}4>K zefJjQd8m;R$^#x6OSlr7{oA|3Ejps3{nCLE9>>+8i#U#*0(IL{N-8SLIIPn_6&qvU zbMs=j!u%m0krG>Vp2MI3%r+3zR`5h3G^4J@bGU@Zn$u|>C+L~CBFwO)PEFTag@`j3 zfFd{-2daURhFduoj}{HyYsmy}pbTZW6704%0d6ywjwG=wKR2_+v*Eg+D0q^V3<} z@d$I@B8?_eF+_SAyEUwfx!4?5&(z zp<(wG7Cpx(Wz7<28Qo}2yplnk&<}>YRK>5yuEzE7uAS&UFkr2`B7%gj>)(a2I>G*JIY5`%;&9@&`oE>U2lR4}(s)ZY|K#s-#s@Yrr z_uqdX6TM#oGj!e`_F?>OL|z`9i0=!03mAAPqp}(n)}ci*bmsA0B}D43S~aHHnzBU0 zH;|oh2-ZEK0HU*Gw@aDUB@9K>0~8m53hfkVQ1u6e_8oabvD2y%bd)^I9#)X8KsTtW zR&C(VKPjoaenP>QV1RV2xaoXCjW&jW)>7|Donz|Vewk|jb$KeY91=bGc9#8(wVMnNRrqJ z6e#+H#0}X+&(zr0_}L1qN)`^0Wv2x}KZ--+=?xiv1g9H`=1qA4?4EA;+4_( zom$&<2R>}@(Kn%aVKj#*%&*?OE(LN3FOSVx;&qgtFs9d{-Mq;B#b&1A#RB@OU z>h|5lB`oUh-W^35+q8L-uqQcu!_axlmV}Z|~i?Y>@E5%PBUw5cFhJ3kq zR_QJGp|vP|PuJu5XNg3uIV9pqtqNXUX%x zD;B;qJea`68X_FEztr~2`|#nnIT=G@i}Uf!Ry|nlub{QVr_*UPzjC@4X0W}lx zcG(FC5E{Bxd)9!n&*>&>%%AZ7Wt<=?TgEYfsgR9gG*J5|Tp)*JsEzr>F>Jl>#sz}J zV>0@W$~T{h&DPO$05v%{ukgSZnEv+6!+3Sa(T5pJQ57RehgBdxYd2>Wo!B5I_XwKJ1pz4SMcbpnOf80baq==zaE#y@b9YM zJg|z5XI%414ekl=al;py@Fvc{_@Y1O1pm`?0Sv+pHMqXGJ}G}v=wMqGqTPMb>-h*x z)@g?3FA+_7>n-EWY!yp3-gsdiMBRc=li z+~x)lrHKL;)Q@n1%CP^gj5NQ->XS2JA5jM}3vWH6hP}(mYwp3;3WDGN76}k9jPO^w-kx!^E&KB(n@jD%~WSr zwmW%=D?&Y5l=p1br&j;zV4Ai+)Pd7d=i@{A~14Eo9xeShA% z&h^jO|H9&|4Xxo?_dysOc;HdhfR1i!sGP`9D3T}i4N|IMg12Bw-bBdV%*QJb&bbpy z9<7~o!Jn9>+#8NBs>r7(etep&C4_ zXySvk6$K&BoQU)jWyuyf5xsvJcy#k$M`_^CYLMkSxzO^g>W!{_CP7Gn4Px+k$3c zP{VqUd6CAasL|6FQFwSPB+tRiyYU4=b_mE$hf0fUq|X+~(z(c^hP*h5eB1 zB@61RzF2pvP__~YGUZJoa7R0LhLDIPUl?ny|N3bTl+G02i& zd0ou6Hatt#;3o|`Klru3yA-n(-Af!tPuUR0$L;8kdGUuVc3+L+jQch}ss_xGRQ;m` zo^stp>|-H8cOw-?9*xFVh*jIED#KMC=I1LKEr_1nm5WbS`9eq9MBNd<^WMq{sw1Kg z{te1Bglq1Xjg+(ATF12;W?C?BIOdzIQ>;5uS>tht#S}l|Y71~m8X=g0708u`qI~zV zLS7<-RNu$-*P03ri%fRcD{=8_D%RS*ezi%F9Qnt%Ak2tyGj$6DnCf) zG*U98;9@fLZa~Rs{^)F|iQ=8IldxMtdr-e-WOAAUVwvYYJQ3Vlc+_E6sB7yZLJHuu zw#@OqXQhy!v3OVx!WJ|{%*KtT)Xd1z@sMdR|P(#R5hU=c;z_gmX zIU#sAlnfv`7;jcB9D&1;x^1!_aRY22Hqs`BOHO5|mT%s3eLNs=*YV!|lRQpmSG!fE zEqsFSf)b0+6S4@u@MbnTJP(72nLLZ?7O9E z->eA~1x2S_G4xILN2)bc>KNnHQFb70Ge~+xO>GYuWu1*`c9tWFsMTUJxhEU@bZvdN zGh3!3tZx(hc7#w5cP<~t(e-Hr0vTQqo!IIO*$kyEROimtp zbgRIj=a#(8BEp1Rgy}@wUE4LYY}|$ftHyOuky_+UpG;O#Xs!wk)T3-g}gd^{o7PjS8%f(B3_si4=YE?mA)weh9y7XR$= z^R!r5p%siGt3d&I4c@x5=exO;e06Is5+mpf7ehq|zpRhkT7MzcC;XVJgFX9Vo8#Me z-J055MY!Ph?z+v!yN5qgFF?hIE2a6;?=fsy%CT1cM|Q<`aCir2`wU(SLSZ{|N)XIG4&oprCMU z7b`5<{=*Omn%^Ly#E?PTkByX%vW{@mFMJt&68hO)Gy7sVnU8NU1To>B-urOUkCEju zeRkYS%AsWD;h+|5KkpI^d~V4YKQ|8Ck2^g&YMiUNG;JDMn~V(p^mTnVQ4zyw$CYLh zv|xQ6U_hV`|8-pB8q7Mbdn+Ib6pJi}aj53Mqger=ZXbX}j$8ANJnZ&K$xtl_Zn=V=E2f7!F65a&2z}|3av2ng@ZqpAn2{Sx zQ3hOT9JKbNf_|E_#I{wYCpjFXx=HXRKQw52@lZbRD{4-k;!ADgRk;EHd1YF-M6?b@ zY~?|WjvHlw4}+zSHA-o{G=sry^FJ1+V?<7{d+3O_x&O;`d#k%If;&9U&;Iksb2pnN zDU1tDXIO5T1f9AOWS;{Nt;>bQGRFC-ner>A>2&^QI8&Ns`~g&~k7U@)U}O{IxDtGl z7Ev4X>4(au2{^JmjIGNLedCJU+|j(`3R?`-soKvExJX>`j`atwj(`6E`oSJ&n}Q3& z6dMm3MymADRJ}W&*4A_^0U!0Oh^m>nn7lGIOy@tR{5Nj6Edz6=cN%BkYx%5`8DQq4 zTjQmv=G$E1lzpmG5h4`^Eq$N0uDPco>@$w2&y~`98C9R+I`NfjiMzaJUapWNqY>-% zvgEi65o~=AZc`4}FUvKTzJR}P3g6j1lt04To-X|I_zM3@PK(`nu|x z^Jly*seB9Mx4{a%cVpo6nZlC0PYTxgX-jm)w;&&=cJ5bPH~+=I1RI{lYx#f7-BsUx zl2#(i-JT1$AjqRbk~H0?f8ByeJk7^N{Ye zQnShG{oUHhx>33yO9lM+c4&Cf_$-T}(1y)JJ)v_FU@Z1lwhKDN!Qy<7>1Gb`Zj0|; zg~aZ#8+deKbdovO9L*dr`fk(P^!8S78rf!`wflfBlk6?63-Oxwf&_(w;i2yT(<+DO znm$$i2US1}&{ZUA!3vmZknlQ|!zI89Fk~zgHwIoFpe0S`vcwaz#c zPY3z7M?19vEnSZ{S%q0N6^QMDcVH14$YB+fzJ6rUvCcR!q$gtQZ{pw%W{{@WBW)D- z%#a>sSnt8k|Ex@E%Vbjax~k%r+#PHK2;^)MRZw?Rh?K65HMCm_9nm zWbe2ZR6XpkH#U}DQ5<{rXCAWIU(|6D)?)K3d2acsddSM~XY|S4M>|Syy`w-cD#-?C z3ONqra#oJW9#lKuc8!WZM?}WyeW|Z8x>9%o1y9s7tL!>uz9gSELbsvx$R4jv)yAo3 zWCemqd7GdsFp%gYVgvkAW~afq=~dR+P?xJMo^L)-6FOP07!`9ZAs}682oa?($9{ODXq$zHz4f{42>+hkmk6>(O0ja`{p7 zn(IN97V?S#A#58p$``M6<8#;gkW;3pdv_UP+DZ&=nSBYc7|L4eKVZ z#Um20;{zQn>%;H|?j^KF>!Zyp-vw=mBw+R_Y^?4j)}FM9ceG)eL!N7D z=HE`uKx(%z+Qb`Rsa$K=3qW#NpcuGsd8O}<#y9uR%Vb33X}>Lf>SlOtBJ(nyw+3uV zbie@(aKON5qzxoM#tRWEk=1un?FZ1CcfPS+bk++7YfHHWPv|_u6U% zsG~d+pA6TW?wEGAx$ALVo^^rcG#}^bRLdZiCQuO!DU}>^`MhJu9VoMGzsAzrZ zVz@wZm0C}X^T#XI!uK5jB1)zlW%oXTYJN1AzC7M>t%NvrcnyRL^lkZlW+!1gmfps zarT`vUpwN#+al&F#u#4}fY9#QPx=f(@N8}#8+vX(NSYLCN@KopUgi*$p4Pca0~~SB zgNJD(b?muXnfVu6!q${UqE(Og6%X7c3P6^KKkSHP_>^fXfc*#h;1nId^FY!BDTT~& zs^5nJwzIpxf*dg)(Jcs$S|g+I$z+eV+1u2UY-1EgJryLV2#{oUtY2b*pRg_(?0WUK z$t4?zUPN=>@0@Fxfy8RPzNh<;+^Ty4MkZ_qt%RkG`OG3>YM9q_bhEpXpF%*vKHC16 z;C9uy_!dTEyv@|DEcvLgk(6Ymtma>o4AgbF&u;ipjw+ZLlzgz*%=uP0u&48`_CA$i z{x6)&+>jDN<)+{l!nkAITJ(RdM~^kN6GnI=vDOZICO#mYb$w%1oj@9=A}kWFi;p-rmqE)ZHJ{ ziL|Te*!v6nhFei-b9mKv-7W`^o-#BI;COH%+nKS}$RMx|BE59Pm@DRwOtqSQ7^=rX zZtX9GcII|@(flH6(uNOSn%&1{c@6(oSZfJ5CurT77udo#SG-o4PA7mE#=^M1xA*Dp z3e-$=b*UdLd4h6{D0jbTnPGJlG+A>EW@BIM+2))TE*q$ulfSpbTtdI~6W3|AOPp{~tTFE>X2F6FmPuo9VNU<3>=id* zfH1n1f;h=s|6)z28ITKiQx>W`X&M@kxVs=wAA70$OXg44>}B6&6VZm<*^&S&>Ux}e z9}{!-b(6Nw+MbH_&uH?~VgF&_^t8f1%Uw^02;Wz0f%v5XOK<6N{6NL&vWLB9I&!OH zLx8TXTPBmc^>UFQYWkSccc8y1V2%J9}8d%EH+)4R(D%3or!CV4zUGa~PL?y3g z4-g*W`H3oVn&IN4eY(BMz02!)ihy>)I1S&H!ocQcGqNdp=;4oq7t8v4#amhNYJz#T zb(&RZmLO!ia1zx+U&^8(&1{q!}9zlvM`c2QmQ%9vp{nA55{|AUG9+H5Z+v>B2ouJwZ-qC@qb} z2U36>hWu?evHGSB!7(G-Vg4%^oa0_U;m&EvWU88 z5As;5E>kd~nzGBpA74G@P?K`yU|UPYcGs+cX`8lZ+Nu9b;(vEsaOaQAH6c;dIS@zo zKu~$oSA&Za4qeF&iWF!$$wGLr8~kD^%t^+7cW+k4y|Cn9?4g+6V)INeV5r^iG<-X& z(wVM>G`72gmZ<}oYfe$^1!K;|&~cCRHCgTD!L~Ei1tI6t02Q((Se7=p1bt5t(98Z9bC-Xh6F!Yf#SlFwjiqKA>kZ~7$c*F zrEl*q)HfoBebT@sk8{Li7RC^j)_Nwu1KkR$MYmpSqFK@$?9sAxjJ++L^br}K>eb6< z0JmB78lLRy(S@Z1G5qZgSJ7O=7BD~JGJDY5o{Qq+0egCkuMt3@P zGVj*-NDJAfvd~05!ML*Qt{cOlU;=LC`+BEW*kSD$IauG6r~VHp6r7PeVFIdQ?j>XX z{4GqI3dz{R^2Nr$Xt4~N?VTo9IQ8#W_{w_6-Buf@PKhQ%qHIeGo1+JCyDHOnr#;S*@%&=~q?xS2smVr5$J(b_y8NT#+8ivgvcR>Mnjh{2RPN+YXKw%D7g zQ2R$zFMpDqln8XtS*;6=m?bfyQ6hO@+>Xh9(1=^o?mq7lf+{?%;XV7z8mSsE5J z_1z>^GdG?1Cd-qZz-VQi?%TJJ&#?@!@P)M3CH$zHpDpxA_w4=MGV$Rr`e{+a_qr(p zlem8Vr4?ZoEW>i)Jd+0%>%k}+I2*Io0rPf-+Euo)fF&zL(@j1qL0~Cs#a%@FIP6o6xoK& zOn8KmTJstCp-lSri7xbeHtqYr|NcAQAsVXnJlnorbqJ04`FtS|n&!q~u*?-=klf1KbO%py%Ou1qxL=}u*G-Y66yD1| znix-(D6A;%K2DlJROu$`L3G>)qT)UkHB?yGqp~L6Wp?h)uV5l0QTyQtv_k%JTUopn{wSxXK--HY7NVT_94_k!f+`c4h|*0@7>vSE1+C5r@D znDVYtd2jXwWoeq?Fw8;!eJib;mxIekCsGfmQ9JWM#m(qVC=Mltdc3sxvdQmWBc@fdvydV)yvUZ1@83MOBQuCCF2Lpgm zVp9m(n*UOuo981}ACwQQ{eMtInw5N0JmFP^&EwWeUOr+zAuGIV8CbT{TGY+;AuozP zw=MuT{^Aheh=-1sqhD97E|BGq=if6H$Ws2Cw5gM8P6=1%*Cp*>QSijT0@OyEL0LrO zC+%Ycawt+KCp&zB(0Infu=9d&gDNvPfgfqQ)mHY)mjr*Jp=_J+&mB=E1I2 zA*|r{c#`-_{M0blG#5Aewtb7x=hm|E^v7z1KdDM}dh1oRvJa+vxU(efs zRtHPDJOCQbu)6|9Jr#IG=bc*j7=f=WLN(%JnA+>@bL-mrI^0QedE|bx@Jbyv-sPvW z!O`_5sm^GQ4=BS``fGpuZN8 z?9I6``I_~&zWMa*nxh3j?3i*iGx+hz4|iN9y4Y;G+kX&3e~!#VVQl1KjSE8FpBG%* z3^`9Vdcq5&;ZZ`~&wgA4d~9H5$719nJhln^3|6lC%49DMWY5H@vQLUJ50VstOUe!m zSe@28{j|a1fx$Y8vu1u6Q(;_+8I=15P1LV{;Mz2M|4Y$=&v9(lj0r@85IM>w!J*IN zIBHP8@q~kpd}dWLf&T;5+a?!!)pAjkhUHrw94ijY%a{JeE3`0CW@SmWZzZTq$; zOVZ-yP?-q!=+<$eRk}T7EoTX*3DJ5QV1Ld-DiVEkco00rk{6=o)Kgd+>Fj!Uw$yh! z+UVlJH+Y130U6D;7Vl)*mxb}MXE_u-81t-UT8c)@21jYkQW8H;XW(0c!#>qx=xaQG zEAS@vz)MESeNTy#;iV)xBHd{!bl1q#9mc}A04d+3$+uUs9UWK+=I!%Nk+5JXtHE|D z-I0QAKUdYnMuRMdGDLG_e@AQP-99oOEzR7y)W1VHXa}q>^XwbdpwAPbR~T)&hW`62 zc#s*k<`AjN#c};Tpgre~8$`VHM--jP=JID+&cw6Ev8zp>&iZIvvfYwPi<%`O7`C-t z5Kgvc${!k$Q@*gYpB|{1o7tosy^oWB>^3zQN%8erP)%JyIkb49a)NFA==@apqjYnS zsqD!n);ny!sT>G07&wj)RD{!*6)W%#Ty?03+~&|Rb`#?nn%TLae(8z!`crG-Nmkoj zpGQA7dy&8sgm!{7uzn~KLtq11WBznm0))OO5FjM=UcKhE?q(?Vsjh`FIJ7O?(iT9dhn?NEqS? zOs8mJ&4A#P;$>lshsxs?=NJ=Xm48bz6Bx9NTs3^)omhH%-KjHc-P2C5OW+d`6>c$S z9=68in0m6*Pl7$+F~gUw=FK@OwpMvz!*T;lFwL zRFAb}cr6p|lE25S%Yv(PxlKrC*f?149NQ!eKiFhLobWK1{RvHh7$0uQGvGluIZM`J zr{O~krRKFhlzB+HHVoT39{N@SD^DtH*cqg{AT~cVGPJs?gu74*2gf|0hqgW@{Z3lf@)u9`i#BB$3Z5pU}t(6yAU1`Xt`0EHa@vuU`NFa)@N=anbWnDtOB9Q>GNL zf}8ipK!d$L9701Ri2=vIa#g+c%c0SH8}lYu{5ZvV3;~ch1yRHUK!pVTy@acHo3Iyl zjbM1NBLfM?fOns&_weg%ljq5Dj5o?6<1DFVh)9W@gQ!P$W{zM|)ik{b&*{R)QgMh; z6>@ow)w+whIK@{H(${?gkkXP@#y>BosW25&6m3+)uVrlF1bXpSl-nMY;N2qevtw#4 z(9^u;s(*Ci9~Xis%WX9rT3eS*ed$|O;b=%=v&7~c6S>QSk0IC2qo8~e&!~y`j4|Q< zuP3D}-jL!Qv2nzfNhV({*?E&SDBVE?5)#2^WaV;;F<@u9r!&0gO$C41yB{rBQ|0&v z=R~qa$?U3~F^eEnidvmpYoCu^fP{6U1@{(sv$CtEG0t+dQDi=uv1$ge!49|F&7u3gexp>)?A9$4t~FEAud zR}B<)-x=2O2HbRcPcS?z*?<9B$eqG}8jmSZQF63IMOyy>-)a(BW18{j+Ot65Qi4wohh%|!59*@1K)uDt#I{@is>ScK z*FBNDUii^=EQ6<(UD=Yu{`)(6|6SeULgPHNT(e+7-Bb2gh8hLtjRGuO)mrmaPIFVw zzfb|+nHJm<$;Fk&9%zA?fU`3lML~AAyXA-Ug0ACb9cn(Ec~6Va-I!bZ+rTdiu`~n5 zeroP1HA>#Oa+{PTC;1gZvw7iaqqm>P`$8njtAvjt;Q+<)<7WBD_*`flf%b1olp$U3 zx5ZqQK7t$cc!gfb)=OCV{#zxgO2SeYC<%~$2N$fs6f;(hp2pZP)wCm7w%j^42U)57 zc`{oO89vnveY$G6LCK6S-pf`Qp9^Ss$-GcWpKL%jUTr0uB0KUPh-W4eE- zs&>ocW?~82?IF`JuY=I4;VV--$zm*l14Q$;;TD_M7n;{q`>=gjsQ)L0#5=^n4UwlE z>3_qR=`(>%21&kJXXPD9**_7+3n|3FVOU=u1*(KMBH=_CCes`SM}xI~g9R)ez{cTZM@lA33l>^n(~v56%)yethzDw$tjsJOGOi89P3d*I>qdW1v+B5& z5+bEkNga@~L}J0~ctwX}Hkyjr=)$vw>G89C$8nH5sDD}sPjnz!Y$x$BgI7+pj`7{CDbi;NK2{CZ*RGGGGG@maRXwIPSNfpKI^Y6Dl5HdG4SRHiz}j zSTJ0%a_VD&$4rDDm#!DI#=p@`ElgVau=gdgt0FTZZ{0`B#T#t zyazD2;M|@R6A@T8nwjm84S7;-Se9;V6Vck-U}&wi_gF#!ddkJRJj3zr9DZBui!^Qw z=lv2-PlFpFd~76tLJ>`fe85txj_4Cd9xW>|vl#$UGrGL=9ml>P;qr25;>5suTRYm` z<{Q3Z`1rK^L+faHqmI-ajuu>5#$sc4hr&gRIV*7TaE{`Be>Y3@{C<1S#o9iTLJ?rV zJFRftUb_h`W|IwOMx&RWOk=!c%R-gwzuAGMr59E8ezZyG)TzK43+6W$lq3lMrL zaHd&nKjz2y!ER_k*07&!X`UW(9zOnwuwP=)FJd35vL3IL=?00;sB~A8Qc+M9d`I_9 zh?hsZ4OEEHXNqPI(`!vSW4Uhs+!(`K0DL^+kRmiWohzX02StZ`wt`?+`mueD@x-*; zb)}%?*XAW)WA`@f@`G&aN%w&6QyC50!V#*RNVJ7&9z0Pt!#UqdE<(oS22)e|Sc0($nsT z;S*ZQYgA#ZM>BAbos*J~4H&FcDhIS~9n%6uzp(h?U!MLF#Zvj)wf#{!z_ibbS`_ow zE5O2XCZVF0iZlbJo`q5Yh*#TvMOlX2CNp9hJa%gyBg&`UHDMW(jaA8AS6Dr5l`$-T ziitH8qiHW{;*G+3%A>7BZb0z&ch67n3`oq!YoJ*bLKM_JG4GOLq+TMPcZyq6rREWA zdrGEg=BI~_?m;x&`)8%2o5_ez{{*Y|%#||~6=310P@*Ct$xn+t3<< z74zRF{2kbGFO_t@bXv%I!`Z^aJwz3k8>rqe1`OaHROCmNW@McdcXgbeIt8b|r|~ zy`-gnGU3&ucHz-m0%o}lxawmFWJfK(%2y)#sD6|6?G#C^xNqNmulF$%l!_+JR}ZRD z$9JXjErDQ(+n)T#>p)K4J<0*o$Cezovv-dI+)Y0IH1WA= zWKfA7uJ}}c@gbVQh=u<83m3%?WVneH5@0PpxoW13cTBR#%^0){PmbM81%AOI>OyGZ zPnnY4zW4k@ty$8$)82&4W3k~8UK3x~=gqhSM}_sC2%SMJ&mw zXms(o5s2@H(VL+A@4zyIxWP|vH577TcN#*{yQ+0#?hky+SKM}4pA*lLNc+NafcY2d zSx(ku)-T_3qkRH@Kk2iwLr}TZ+P1N?GCB_@dJ8}z^PrEr_R|B-!@)pj6V8jy(06$T zVMsb48*K?Uoy>~~Ln>%4Xv2>E=2aeT4XH-AC&hvM! ze-l1v*Avw=^24C677#sc(qe)x8w{poWu zQjr~QeCyYD5Kat}?r6$mIK{ReSs2IMnKGP;gNPI-Gk6Di_EQ(QJdZyw&q5gZZ(sib z_I9kJO*-oV${b`oI7F+wlf*&%;|it~q~O>qso&(viGyb-978c+ElfZjnv# zilZbDSaHZ^j#!SpK|O_^HBg>?`;BP&^VTRFq1bR)TjMT;nF|2? z6*9iEt!xvSA)wp9A!Pg1DYBR5J413X6=f9CyyxS4=~rjcrA#`-dntVMNh@R}Q=3OP zH$;dh{1m%pPUFUV9j(p5dxiX^pg+=@9oNiRS~-1h-nXp?1H}wI98i>F%syVx`As`E zOz}=?hD#2gPa~`Aci3XXa0s4m9zesIhYw&_ZkBOhwq%1pP-~W*HiH3srPe7W(NfdV znjPJk#%3-1!>zG_R}oWKTyB8)GSa@&7wZa&z}87}YMmSN%uvCYff&Z67<(<-b~w5? z{sUt<<`Ar-PM?M1=8@*OHOri-i>?n&O$mgSTL3;l!N1OOJEzKQrIt2Q-X!@b_+?!N z5l4TNV;kh1KRu2dw$@5-+Kv7Sfcdh9KSN0K(+=3i^%dU=&BeNlNz5e3B*LC${X;(8 z5vM87GfTZ1aUx5U;LN>e8AKD=*hzrRs|liDR_F++?a_auDLt|b%T8r-%HK8p!Y`7L zV!G4O6o@n}hg_Hy7(4%N@>43@B{1d@pwI5rqHGRZgXomGj_XGv43|`vx?0aRX z2Lr2z@q$kgzW$216)Wb;7Z{U~MAlW$bJIS!D3lHOEts6*RJ5zKi1RKdf^8GKOa}R_ zD-K(wAxwlZ+CBv;s*slqX54I7+!e_0AD9rWBC6QXJ^l%|t(7>R>}^)Fr(#Ga>>nK@ z{EaxxJ@IRbu`oFdZrZ9qkdx3c{?1htN&lT212!%S})~(_8zelqn-V zkfelOi{%U2>1IIYHja55s^BJa-$~4tlhlaFyn$HRywuHYzjw^Z-B`O)FL-3=7%~iX z+35!7B_oamq56(&UJlZ7RXKNiG}5VhWmdJ!9{a8PbyllP9o(Bg73fok1yAvZC-|R~ zmWnESkQ&bmMjK3|W3}99gwF{&qr^()?O`IBS9lQ`$}0nZ_tyB>697>^t&N|DY1`C# zYwOuOP~ZSh8QV?O`YhgDB!70;>AyKnfR+P(U^l~snC2bB0i+n<-hiQw!k?TP${%qA zG3F`g>hEFx>#u9}koM^A=z&{nAUU|nIbjaS@S!2XnmdFO1Kqr@ zYx}i~`B6;6-tJZo0r(#ycc#IDzua1yRI>NrJwvii2%Ib%d3vr|P(TLs8&E&2?D z>n)d~6R7hXVk<4WD%%B|`19yIC?aBeLv|C47pXE=)@7 z1bd)Ly}j0Z^!BC#`IQu7*G1S7#u_Iz;kHnIF_U+sWb2w$k8(1UgY%iV=Z{6|gEi^~ zp8%@w?S;M;H05R%gAY-eU==l2e3DwZvxFo!yGnOAd|Fe}7_x?xHI{n1`iCdPm=u|4j34GK{Ve}r zA_@`;&x8r4=y_%OJL4fwPgxjD`skkM6-#5WG%d|;$($3W<=Gu@5^|@V4?DWs-Fvm$ z5!Ix4f&GywR|ivx2<%v}+s(sh;6v6^ z<;%av{Vzfr^+We>`(*5A_FlpkN}awB+&$=NZO6I0o~paZl3{jvLa zDnL@$zb{}&Uj(&x7=d8bb}sg~;1jVZTR&%bEw~UbIN<${2$!8~kOXBh#vN|JN|p`^dX>JVfPYr}UeXocC^!PbRK9 z*cediGDFyUV9>C`$p`5S>_GLtyHC%tGnE)L!}g?S^m-0vK+>uC5EE_8F{lEoRDe$f?sf$iceeI;K0B!D`WY?-(KA;_YjrE^(bJ#iqm5{zx zOt3EHfg~i!_9m=1v7n(7l=CxCVItVzp6E%+4a66WZ8maK*&OQdV8*ufZX#&d>~i?e zRZ`8C6^%cGPPv*N4*8%lBs(C2g@uH zZR^EPU)3dkk0s4lMRr*>*!ZN)g?X`WS@Ug+?=FzMdVp!Fhx1K2;DWl2x!rgl+tp1K z=qMnib|8Y9qB64>_?Ouj=p<1s8)RFP`xFd;ftyp3Vz?%Tb~-34wirGL%Ct;KOW4be zPf0$zX8%jq#;h5!yigiZ4%xJ;jy1v*j0hjNcW5WxB86Wuuy5Lc_tyO8R3HQ?3n8Ekd%jx zU9ZI81ZoobAp0#3LDQu*q^65a4g8VYWs|U47Rltno z9XWw7fYb0`{wEe5*9^{B4NeU9NJ1%V8?F7c_RpNI+S#7Z1`h{X{VY2FpD6#=gCumf zK-dQs|AQt1NP|9Xyk~=x=L5s6I9qH%cLrW;>moRhwyz_51X#N5huWZCrHROkLl|ZQ zeR*O*qhhY=8ae6^zwFlb_(^%(;Q%#$Z*&K&lEvCM@A+wOIlQKk|J^E&$W6{P z62Cs;slDAQBIo&>2!NHtL;rQ#;l9dz%AZ%oywwzbV`K5NjPK}ezog!qdtZIGo;7yW z6F;`o2&V~hE<_;Iq$$lY_ii42l}ROw>MTtT8=?x)?XWOzbGdA)ylwPSTU|3=fyaI4 zsGJJSYf!brKeaNE%xiou9;=E=G7=wkrNb_}iA>=C&%A)_w6ei4t3LH+{e5HbAo}|y zV2WB4F2FCO6{5-|W1T-}k+WVhI4|vCm|?P`n=Of_=Fbl_+#qgJ=rtbla@=T)Qrn;U z1<{S)GqZ*E&*B}~?Q1F=E}JZ8fO_$r+Ey5tta`0Ac=Ab9$*gWxXg}cjW#z(-&X4Ql z{S7w9DUH>k(~-aS#|{>tr_FhD{?XzYKRwCn_>!+(o6a}tDAgM(a$a-JSJ1;wS0v*7nL#VzIs_b+C{J%4^O?>r~kq z#-xL%5gxl_vJdnyvuIwHN-M{Y5!jyX1=0bd+kzFkGU&&9T+Uq%kXMxonfBT-ZnVa)q5@)fMj$9cBs zvFedo;g3<=nVk{(wc9Msf5Be6knI-(l3ULy8;oF99-?l!P{2$)m}1=6b1x2}hB`E97_cIQ%ndZ|BIIpo`as zX+^wl(oI+L{Q1W~-^+vurv>&sK7WeAjv#tu?Or>bP0hdk8;|~XKyP07~`e}0sD@^q}nP@UiQG9iLI|RcI zDCuEDdExi1ky-B;+P0*5+ydA0ue)S=O>mVe%z+y~gEH9sd< zgbAbywA;eSzN#!27Mm+SyXnl={Es#4UR-nv8LZU#m$d0Vp_jP&kpDt zs2N`Rso#t%+R(}{k;AJh-?cAm19&R#-KLy3!KdLiv3Lh+%aKX(D@-Z;eT<}({Fm^_ zY*@23Cl1$^-g1{*8O1Ke`T3+JM?0!ccgO6|sT2Gey8GUn{{oh;Jnxc5VK>9L^8iyJ zf0=4SKfJ?wcC?Aok)&iY;-856-0WH2$k-5$pPjQsQj|ImhlrRmyeQ&b%a4^k86GW? zd-mBH8yomRxr)F1cyr^Qm?l&&nzg%=Z-mfJa>aCzM+Jc)-HVV*&4=Nee>2X;8g#4t zQEGH9%?sH@4y32w1WnDO%o4o5yT$iHP99zj4b|6h9o(b@uU_xJb#nHkh#eDrdCrHF}QOv9WdJB^IlL<4PRfv;G7KdHO2f zw<&`E1BJS5lbChHB2**S)7)~{%+6`lP{7TAC{vrOssu{Y-C}4We6Sn`s+dZ!aJCEcO<}5JbpC2Mzm(Eml!|=0!{yP zu%@d}cC~S}csBM$@<$n{`yv`TG%U;WA<+90vnB4hm^4YB1MqFrFTV_XNIpN2j8^W# z>-Bfl*G~zLEf?JBq7=7!u9qQG_iTnB!*hs?2>~_(G|_~h8t(uxQjjy1vRN&$qXjtx zkM`d0WhsRzP2&R&G~6>)V4+XpIbguLMa~4cG0xNinHb~x!rg3caZ~Jz;;bA=!p%5R zUg=$jhmGlw6Xhg;9obm4RAijL;7bgDmJmOITh-^#Rb>L#-X-O@QES5KEU31KgDXij zFp#|}fgNy*m%q__ROi1aej&neZn&=p*oy2#@?bLwr4wcJ84~{m6v>_-mGa}`Dx-s9 z3Vf9A8fi9eV6o(LlO0I~|LON6%Rx19hChERfI{G`(}#6GpxoxU%Y^`jgL)O~PKX#Y;xy3_-q z1|%_$IQ#yB2U|z&Rn#^4FE?4!Y$*ugRcfZP$!gtsH~%+OxZfD|ou9#vM=Ca1O)ohB z>{2}~{OJ4_d5Krx(k1mm>F^lBrU`ZDfW+F#4i8{}DzgqoXI!_|vdr~CTBK3kb3DYw zkaEOA8))j?XESs49`P^uq?>AoZOQCUQ6zA6;@|?s-8q!o9Zfl$=Z>tVfV=dGS#h0e z35f<%GjyS=b!LndCEqf?`v6QZ+pl49U5s5ZK~P}Q_yfa0b<93fCnAggP?pc*s8%q5 zRVPnCd!~Tom5D=U{!cbpzjs$$F<& zb>R~fym@;Qm90p;9g|7V)SRJA1RWj2+y`lEmRlFCFVwkM+^5_RnnLW9Yl=j$JvF)% z?C6pVJP(Dgdf~Qyb?ON?K{&={DKpCf92*KAV)q0TPG&a4XdN|u!Dx%|J}Vz>ITZY* zX>#1UAa{?oui{DQ!aOA-H#VFT#C`!TWK7i0mwIkP+be00Z~}x?D!NY`sLRj9UsTRE zS(jZ1?w-U+cE}CQ$&LG32-J0jB6~nVvUx$RYFZ@`IZ;xcQwx)rm;8x*OtCI}6ZmDK zY^AQ8@_kH8SRr*liGa2vw*}k2ZyKp=-PYtcEQm-2_jdeQDku_Q5>&~zWs;48tZTzS zR5j+Q&&8t}!6QmZ;qT8FfeAx^H@b{X*Mc^ zXHtjqMlD?X2pr5tp+P5_hxq3{iXgVTzqMk;Sa8P*>e;|O*1nAM^1=qO?bYM!&`ey7 za!F6($hM=Vu?G-`ePscXNy_`V@9qSMaS)1oys{KOBp0`9~Ue7gl# zj;?cEez3qo+hC#1O;&5SBDC2~z~~C^(zoug+#FJei(`KTmG&*1RmXlBsd(zupsf-t z4fCIA2NI|D{xi1GC@hmz*nM+W5bcer?B-`E^Kqt6SHOOGgDxs|TQu67C}9225`OF! zV;&NU5}SRJJc`)ZqzRD-5#wH;vB6L+ygNpMbdb;4Kry0SY0-^$rN0efC$8SCX~{rAs9yhfS&Oowk$OxUo+(p~@+ z5f8N#t)Hudi0U3YX|7m&E6+?b=u5hoV91>YyS<;2u72|t$s*IN+t}4@oovq`k7$N_ zK$VCqc0^T`+%kF36Sz%~!zb_6Ojb$^S4Qd+P;qfl*fbT>oFEmK^{^f-5+{7-5&&Lg zjX&KNI6&6j@VrbMt;K$0jJcEg+LPwq9gTZo23>VI6>GyO3RI1=@%;d6!=?cw>ao(^ zc+XXkwbTVqf~+gqq!ppKs)p>2;U-)?_b=)9^&eB!!0#&ouIG-5WP@0hhF|8--1*=C z{?}U{9p2;3c7T>D@Qig7x%mUwlJU`yce7+Pj%c)&+ehLc`33-OU1TAI$b<0C3TL{@ z8FS!I_Sg#6a`Zp~X^`DZD~0aSS2O^w)Ih1NGaNf$x;H+kp8w~h2c z9*2@?sI6Q13UMcOdQjd$nt&}_!nAwawY+IJ|5se)=~wYFY4a0<%G79omYVV9iq7|y z1Eq#N%NqeE5jwq>Q(kZ7VTiD$0e;z&K_IWXy9m%;myBn-;^_{9lvodVf#$qS zE|0rmY(B8g#YrKC*G5nzc_S9X&v(&c^T-Y{%ARjx_E&Fh2>lYZbv{el(z8=5%D+>p z&6ka6=7QF8>xMMNHETfr^yxT+&*DBm1PYX#9fP{&pCv%Hv8mGG3((pJh9v_+fkSNr0`C`QD#-5o2|}o77TNUEcT60i>(;Nz=MR~&6> z?oBoa>$t5TI&?hwM1gHiJ|#*Vbv`vQ;lUT3uLm;;_iR&l|HheS4RPdlEuO#2X|Wdg z6d7@ZUL&SsDQ0)6Zka3z=^ajp)swTZ*iAlx7dc6~K4uRAr}Bp6-bY4uu+myo*I=Q>julvJ^H8?X;j__s-KS z<7kSS+I=8zA-q_ubO-02Xlt4?6pQGWqiArr3y`!w+hjEz9bk;3Bi{BA)AHDbSAf@{ zzwm(?^Hlvmy?5TU8|J^=X?BMS^Cm(is=pYb;%rXP)AI`?k|#Lbt~ffvb5tx3mGumC zAaM7p6i{og!5wt5tzPyO*NN~SqneHj(0^9Wn8-W zOLvIpGr8iH-;PAChmASOx~`vZhkkAZgY$Iq@-aeQU_TRKZ+0WfN9*j@C~5fn8+P}H zCHGjfupB+8**?v3WU}uUn8>YhwVcTFFQGjn1gzOGWZe0A+Cl|Fk9m`n)|j)(D)w>`<}TT8~|sYxg{1#}(&te7YeK z@@Xvq$azBVlf@iMSq<#^P~H!Et$vFT=xV}Nd0%ALUrCIk&P07pDkl9S*Zi5xzgmN?2%eyR%0};({ZNcD zo&5Z*t@?WBa$g1#6i^w=QQc=>1ro~x;Zd3Mt2>xftZQCn&lI;@B zWCaafo|s4j?*^OEn7Uh~d9m$VzMJYY62UB9ZGpP^OhXSjtl+5zRtdK2*4UR&@Z(> zMq5c*#&2NE zq4ZBf(_1``0}oLHp<%x6`f%3g$ZTi5W!lJU#b-hI?Bk0`>s zJ`#s@cZQ+LvFH>cin0RUMnriv;(@p|aRTX7&V+-X_IEbYobS#*($y$pp@|`PYA)(D zFnZ*Hc+vlh;&hH-O{&|imE-MP4zGq8yNtu4ryZT!7E7e3LCzE;9NJD-_1FKnJU24%2VVqNbofm<%N^43-75%hqrZ^h152s2@P`T_hh9mk zm}cw~?4SLhfCC zQCb4Bf`J>$$=GW&JvYe-)e-GhMjejfOb*`~db$$xL8L}9-nr=x!CPfk70x`{fuK$h zXaJ1XmD`Ei2rD*)Br62DPHy;R1$)O;cJR?Kcrt+bZQX`vTi1z@(PQ;Zf~1!lmeeN?#h{w-*i_s z7x|jzIG=Fz?Dxog%YYNh;)~{$%5**c7?7)uzoyB2qk8!0Mh?iENLku$z=E?Q8_CZr zTLd8an@kJ;4qcOL$vz{j=^!*8ee5%qV|9P{rB0j+`V0GvgRUmiVD;lb`w8Zz~kJTQ08*B5qtX-#-#@K<5nA888jsSXyjJzl zj4^jTHZcgr1KDVo1 zbn2O~U4Sm6!NpOnJWGip`O2H@U-5wGkUILa1T-Zt2>ImrDjC9KTxtP}|4>#gKZ&)( zdXu7`tF^u^r)fOO*r39{zizq3)yY?x*A&?kpI2CtXyad5P$83PBCOjg<~<~~iDWfp zKKh{eg{S3+cv~3Iu+Z-ViijbS7E`~T!CY*HEKoaSFX`q*L~{l>UPxJr71?QuyBl(= zdd)0kvPWy1c;l?hl;*_*AYU${FlVBox@gGac|NksNNgHP(pc(R$#a46!)T z@n_{~2jb%rk&T?%jaZ(2>mVx!NjHf^%L z_xnnvYOG$~l^+PfXq^e}QbVA= z!raVN(tJc;QVHnr!rk=hc?ib)If7}Yur04#PHkK{vMdoyWL-BY7blCSr`PX$=4c(m zwSi9&z8!b-d+~Cxct;?WFj>U|J>}sPdV^D=-h#@zg0v@-*5P}imQJ1oOb5W$vYd3d zQoze6{a5Ajekgc(eS}^|4)Ukz4}ynPslut}xUK6eV(AZGD$PD z0%PKVgI|E&q8qNq=Fte^L%)rHQV=Sj$X3`|m-v~3#P}|Aan(&$@=O86t!-EKIP;6t z4C_K_e3G$;5LBHkmD}!W?qaO?Kw~p!(o*lA+&dOjy#w5(rk~XezH=B=wpx}?_?<4) zH(8b1!~LkC`%0jz=`w1?UOJeL6EyrHLcb`qrA!~eyDW+2Cj(f7zAuA?gu}5oP02D{ zc{2S}4xl;*2BFf3ZmJC3+F#|P{Lt!aH{59%MK+>NgC4K!b3&&b<9#Nh zL>e}?jH&xHbh5s+&BVcxv)wStBf&pyP{32(xyVK(qR9h5Dw|~uO;)!Vjl36p4@W)C z0?ujuN3cjS_|;|*vXnSM&Q%{HQxdIMoe$yXH^9>NQbx9)ZBOd9d(=$<5bAf;G(Y)v z$e2IwPWM7g(xRh#z4DqNl1E|oqW_1oWet$Z%cK@P)1YLP@Zjn zhwel-VU(K{xwDwZCWjP-a<|-2c*L9$Sc12a^aurFq|vqKI6Ck)BJpT zw}b7d+wSg-N#$}{CdIU}#RpWUL9{?2QU&}BthcGHn7tCwsncM*NGCw>8^fLGAO?7X zLLT#&=AkWe6GWakF{aJTGBdV#u&fe3xI(26;iLTL&XjKQugdf z4LaTb*8+DD5>tJ}ZHRtPI4x8h&N29E^QqkxYgnoRxm((4sv4ze1p|tQz&)+)s(Po` zu+yDnIB27*KH6_r1g=JX+qD(FcBhP{uY^P6tM2ktZ9DSg;7wfFTv zJqFbD9I8k*b!7Z;iTUr;i{4elHvuz%#TctQt`5Ex5{MM2hBbGCD56Xn+C}Je+=LSBuEWyks{oFi%U#c({pOhYv{KfIDCA)NVoH9EOoKm6&wjc`mS;Q7Gm`^;w$|n*YwztJ)vN4n zT{k-!!~FMxLQs*tcrY(V_jxQyWJM|$!ai%0#=boaa5-(c2K!7a!aUg{so}{*Ib+Fq z#}G4fjTi@LpX^a+mtp7a5W%S#S=s_VldaXSN1!PtMYa z+?-vTa?Q9}Yj4e_uiWh={*? zQF=uiRt?(+>!(jR(pCXM1fdQydU^lz1FHWgK^NGir8{K$#;#B!TCWQ9kFD}h?Qf&d z)#Eq&9F|UA`N?J2aHuu65SE~6n(z3GhHvXTpLk>&DF4kQgB7-bYX3RqzIUNYiwK7C z!(8vq1l=L)yr$HARm3^{49{%s*cgs*@=xPBJ;*g2W7~wir!maUz~=Az3O_$3 zBAyOi&t_(w)jn$iDUbr80u(aX=yWa(0?Z(INq*wv#ILpK=89!U^)kT!|dWncxbHJh;Q@7HT|>M7VGnKx6H z$Nk0u%dy|s$Kmz%uAMK}hQ0H5Lq9=r?KJ|iLqCubL6#*mA&~d;5lP4r%zAm~c9n%! zrhfBNv8%<*bJ;8lByWx9kxm+zGfT!C)ddb}vb21J@THHoep!~=8OgWC?F5L$3b0Hk?t??lD{-8Ehp$vVgDw$;NYLJiWN%Or{xm(RH(3|4(WZewm27@TTJWO_H-s1jnnlx^g4bQ)do^x1!t_)eJU7rD z_PRJ(V9fuHCT#t&8X{xo*RxC$;4Md|49T9@RZZwneI9z+)~*+Xp!V-V z5RyHvmA;TVg`#_YRG;Zc@#od&btIuNwRjKs0pJE%#&1Sf-|Hrn;oh@f7 z0m9pLcUzq43r#p#9uR>WkVc{gkx`?S@)Bl#ko!-wb?u~*7dn_)?9V^phS2MSQ=p>; zM+mP?jPWm;Ld?7(2mUhWM{)(QSyedM1eepKu9kZl^134%p&jS(Rc8Uio|?TA-5|1- zcwI67C=x!?&%xm_&8^y67sJ}Q|KSNa%Nq$>ykC`VvKj+2POEe#l9}*DwMF%+J1+h~LB-B{@_oc_2%jL^YjpIAi8Y(!))oJUBTq zWVa_|z-d~M>2R&u%?7;Z;4IC@)K)VYfAX*l(}Y@7Rr4-|TA*`G<+ZI*IEWR7G!lT% zcAT_$INVpAD|c`!`R0NM*we5j{Qbx&T&WIxMtqNiz$7>V?c{Fw zw(MsJs<#Q)yrj^bgWp}veH!-4_>@4}`{np;+{esZu-n?bX7p}2wDqYOQ%eK1GQw^e z^2HXWO4T%%^)6Bqvq8{-8n_JApGbGus`>XjhV4HCbr+epQ>hr_%@A_2^U{J*iWBg~ zi~S~RVUyL(M6W*zV{NH2i$wM@#3> zB9$?Wgs3I_q9*kqv+@9qt*Hdb+I#_`J}ScNO`5qA$>_L-UVfyhQgy4nh|`P%YqO?N ze+$pmKa?^U6Q&%yM9Jhiu$%Er3|3atL4$&z=_d7eV zhenbHKmC58!xcv(ugf8!k%HCJcH@Xlk+fS&+~WDWUxlDgN7ea1 z3LaFRmQ@D7o-3u2tJ9~(t_)0N0<38Um2(RQ6s|VdQomLoso<|()7#4m%yU6O-sbG% z(s+%gB9`#yy`H6pF1nQ3dmL`OVIcl)tgS=V*&H)NK|LV@d?n8b#*@~ASCqmY?~8aL zfY`1lTa3BJK-K(b_9j$2hK@c2$c#n}!K&>FftpH`{X*Aw5d=7dUx1$)ImE+3tP#jO z@_>YPZ<58V2)(`p0|BXvZ?2aT6`zb~c+`~ln+S|=m>ahW!zr*iR1l8qvDJZL$dl z7gsp~>_oYk-f3cGbp_RFy+D+jtNeSXWa18}`0CLFSGn;FyB94!HQ<@hI+dgmWg(9Q z&a)2})yG_6a5viM@5#2j$?ELEY=B%@xzs&|)~;g>Y|fz+kpPyURD;IGj^QeV@c1b) zWNmL#j^_0_YIWr53Y6zxQLblBv*<|F9b@xAFci?U?}tFg&8~tP4hM1jN*&x>g(5OV zwMJ#%b6&i-8G)vguBjt*DPnTPf&EnTsz{bgswAa%@B_|woYZ{DH#Rx~XJUH&-7D*4 zI=uup=VfJhA@eD>+jt?!ZmpSD5WRS$k4P{r>6TpDKgJIW30#JXe-X1C`ltiDoS#$y z?>_a49g(JlVwrrP*XJWV2EMdQXT|s^qPSa*v>0%Fd72JSMNfX+Y@2PS^wvwpQ5h=a zTQ5ZRNT(L)dfNi^b8{`&%4C3fu15u_#rR-zlwE3}+!?@+K!v~tM-ESBRvP^U8;qj4 zt_`=xP6;e}8a{P@_+AvzKV_^w7WfS6oHrz}c5F`4u{tD%pf3MfD)w_}ay{7%GF#v% z9ypEYgujGne;pR?#G&Q2XTB>XTg4cj>=jl_bBMVcn2)y>_g;cUFYuaCez;V-SvacC06LfS3%^!VbE#kD#P8=?qY|)(@H1wq%0^-L zB`=|*kt36bt6iBC+iBSYdLqNH1eA|Hv0konK~XX6y}Cbh6PfNu#7-6JF0k_tX9w~y zB<_XQIF`x6m(i0_+%92@9P#Ru9Vvg8lrsyF@gxTE_D9HqG zs8gh*;JK*aAj5`}KZs}@8@Pn4SD4QOWGv_CUDNCnFVSqj443x~o0A`=o4Q(M|6GGK zsrNQAYSXOFFwJf+JN|lRIlIsMr6u3yX*ePqnMgXaRotDdKd3UazVILyTJH)>cef(a zU8O)0YNei!J2`RmLGAP@(6ICj?KgZCgE899W-e#W*rB$~Z7a~DbFrEa)jh9?(`=h!*F zZB5t}3(TN@^KydFv71PqQc|ntWiP7#La|uVxFn)w={S*Am`{;fUwD=l{mSV^%{D^G`-N1(u)^UXM{xCHa z54OY;&hl)X+D+`~d7-;vlC5|9Y;^_%OYIc*@xT+ulqZN6>>uK(oH(330782{+_WGy z^Pxf~ULD#x;=V(ReSbF6njD4ZKP!3cTqZ+sCEs5Dp?f)T$MtFKbrd($@g$S-l|MRooQNelVbPTfmh$zgCxM+7A08{Y zUA3UHW<)Y^NCz#~DWTdanrqqQuuoZkMw>fPai)oRu-qm*h{(deYWYRxKkoFZhzPeR zFgNxg>(mFTx#oh&ReY4E^y(Du#Dhz}y9xSCiwP^9%~0EdSq6C-<|2T@Cq?r(`TqOw zZwrBw}Rv#Qmimu(eqy5_ZBZW4%YjkCy=Sqzxl^lq4h)l;F?au9y506cscJ{_86 zsU?=?L0pk~bXdoe{A{6B%HiWHdlv{}P29K4OOk82nQalI1zlJJh;Di*_63T~BEyWq znCw(zh$f|(+f6{xM1~Rh&<#Dqg3IlDlnDv@4VT98V?#kPpGSOlRdxm`24}8Q-eigu zkXfoQZ)UhU7#l(=E`)E6W;IK6@XEBgT>A=hJfayU)AUV{kRa*S8ftrar7q!4YHbGD zWYy{W^+EA@cPf!wBx>UA;#?Cwf&|*Q3WMsCJ@si{>XRHzVD9+Jl^0I$CjLjkw9^{9EugGh z%W+SzuIrswDn&2WMIK-O#XgqJ>*k{G9~$WZ!&;InKt~2pnv1tr^`51#Y*=0ND|@aX zSy5xYgQ_e*RUe;7=Gj?!*I_QlUK)Fp&-&6{Yx^zOh;-uatx&e!Hu@T)(E(+24&gxo zuVQCg$TW$(v2m7DjgyumQdb0?l8^}IdLIsR-Dhf1DT^bM2DQpA9?SGk)& z9Zw#ZC_7ViGvXFg90FycrP`l9cz$}8D7T;Rl*jL1x|nicXkQWJc}UUkF|gWN$?67? z#S<$(J^r(wH+Pp{H!0igfdMPugXU@p?CMXN%H;8WnftJYWUN-zuQG(C5 zSXlpfE8cH2PSy4GhsuNNgBZPzr^o7}AvviZlQ@t)s- z7aB_ta7*KkNmYB%jZ7Rpx<8nzWKa;+wX^Z#k7J0M$g{Qln{!5Mfe$1$bC zO2lV8eYC75Ch2XTSiq!xlxN?ivwePt;(D3XF`X4rmWiWUX6e98arebbqcmt0QuB9^ z6~Uil@GvQXQ{G=0Y_W|n42#r0DyrYV(NY^|+mKwES<8%1QN{!OoK?R%#75iJp}(K4 zj0Ml9TjfvLB&ta)MP2w(=i!X;(u0dFed}%MxGqnD-iS0jj4?ic(&ebsO9$5 z`S#8>zHh6tHXaf#$fJ?I({UfJtz#sWOw-0oF`dk1JKPTgYqn~7s48Q_a$n)ytL$N_fVtCy2W-;> zkY1*uPrV6xKmMXvJDS-{2xpkrTU)0qM5}5ur;XxgbG@m7e>}RYOpOYsk8OwR<@BXY z@ID6#fh_#hSdca;rMc@P??&De;0a3$dj-Q4P+k%;)Yw%3K+Y6iz-n0;u@E+g$YbFj z?akW1@`~d7I(SpP~8YlLN@e8ecOdYqbRtu%v6f80H#~tysz3}DcS+|88#a)oI=q{E8!aI zuT`nq?Is{1Itdd{ImdY3dD+TQ7XSp+TK-Y?O}oe>lJW||)2LIQEnjpzuKCVBE3&jM z(dpA+C>L(uDt$1i-w-#dcVZy|JZSe+7wYBIAu*K*R)*|vv zhHjOCr@8BH-_4D1RIZLJ)@w3vI_Q`~v+p%?LBC035!4Q= zhxvq``h}7LgV-4TA(|Xi&3I&&^3Fc`eU=tvKW)>YX6oyZiL&|jm9b?a(!por*3TPV zh~@um{ayWHkjZpZdOfO~d9M~?l+D;S=nNuR4o#h$2P&24iOld&*FQ6cK4Z&@12c2> zPsmSXBW`UjD%AzGt1Sj9lp46`6w(DL1MdOuVUXik3i-*3X9OeJ&ti(%I`Js6ijm+^ z_A1}XI+Q!O)z#^FS&25HC=#y|$(^Kv2S2iKfg?&QTa?umq+;{(M0B}5ze&FHmCroIZ7*@j>}tBd2!>O} zEH}v6u4Kmxp$%DD5RCVN2PqG>$NDnm4rXPt>Mc~E;FYELoNN4kbw-e9h z_f4}Y&e;o;D3Ta?Szy+i$W%PXV4IfN$V#fJhjNN{fU*z$=G18pvNFnZGK3*y)wx+m6!r2O7Z{e)XlUO!BS{*b*Y^-u{LX_ximT)Dl%x|X&ZLV;8GJKgOvcTeQ97e(9AHQR$c#t+H zL^aQ!Jqzyg$7gwTrzHq@NNKi8*ag?@QF3-p*+uflqF;#B+XtJhyQ^jHGFy;^Kw`Hr zl9<+79J{`+;%0ZDms|pDMPxFOo+fW~62I*RT=a*Oh)hIN_KR_Eb(7VV+*X-LT0`Dw zid#GEUW8?hD{4*t-}#Z4ayeMdK(=E|y{S`_z1t_OqezSq_d(A)J#x6PMi@MNl;Lv5 z)UfQ}^_4E%J^WS3o{LUrzwC-U4>AdO>Kb~0fsoQ!ia-1M5t2&c*xOD&&*zFxYwwgK*7CMf)mNpV>-3pW^f^j4qF6lX zD920nv7f`aKiN@R$ql+pT{${unM+qEi3T$WoyJkbA@`L}V2-Y3U$cQb8>YFhU#teH z5o@jC`zwb@{&?GOjBvb>wU_%z`NG}og7oCAuS<*3{f{KJGgMY*AMh|~K?JQB!oE~D zSof`Xv);;b}0d4Qk&|Fo`adFmAAtZvIa3p#^HJmy~dKN zL>js!D#^dOg)`>o6^d)aDN5?vhOcI>@W9JKN(@iol(h)xr zSLbd{_Uol|dwd_TyRgNQ>@(Db6*J`UekwqS{}58EtXJofX! zA%+EzrIty^-^r2-GULhzmNE_w&&=Lhp6Kq8ps|pxHGA;*zH0ohSv~x&MlMT5W|*aR zj`!-F77=NT#anx$t@O;GwA1wQg>#5woahVI)qtt z@y$~jjC|rmPj4`ah?%gBAAN3XZzgO=nOyrdL?=nh#{NF4zbmAhC>M!BmOD6jM!QU_zZBK|OA5w37O&RN=%&^n^z&|ueMtfyG$tLicVfL_u^=} zE;`Nkf!GM{8=h`@H|OXgw(>D>b>Oboi^{&=WWq_-MAXE-MB0~KU6P_+Ub5r;EMUTb zVE7ANxGg7U0_;$_tLevmeP1*`L7FCvKZ&4yx`)7OjtD}Xq-MvzG!0dswsgHIvN-d+ZhvQdDn`2lzSYzd*s!W#cca_HK0sja^4JBx ztX+wvp)vNPYsPcJ9|ahSC2o1qX%493RO3jWsTwwI@lF_m0kYMh;mrz7QNFpA#{;x$ zePAY^v_--SsU_9hHbJS^xcw$mSaKBYNM}D=3vo@l92|~*bSbK(sr8V%ff z+2+xTuD$a|5&BuL|KF7(evozS&6NC~JzjQY;;1QI$yrJkJz`Hb8Oz;Fj;wGI5Ooy8 zyTzChdSA62h{Z{@73rZE@Ts@agjGSytuI%RX&xY4oDQ4uz)*+#y!Nd}|8$rl(V&bZ zQ^h&FrBDPFTXKb673Io4981|svw|HL?oWIHcpnBu*l^+1b+>J77A^&Nn&P40~UGg(Gy2Geljyahl zH2lB90<`_O%!Fh$qLJ<-Y0!U7)7EtKDzH& zy!W`^!>Qcpz1)-DP?Z@bQYl$GTCA@H8 z!!`|xKh6yG&{x}{!R9`i?X0LV(!9aYAn`FP%bKUYcmgf)FSPeRI=oSIgjFwCI@x8G z+a%tr=XSq%a!s7SFGWJp;SwdVE3PWp^G-uz?#!>_n6A~acc<5K><@)+(&ehA4w{32 z86qEBooMf?;%LD{)AN%;^BD*xc>BO2@ zh4%xAc&loTTqlEGmb&p^|_CqkJ5fRe(k-Ygfo1JYVlxlC`K(u^YkpAgVBq9@gf(P0J;Y- z;h>(giAO|fr%WcFB_icII=DH}&AiEU*fL|kCSbG{w7X8R1nBQ<10R3G8y`5;6%0Jv zRXOB0S()3}Eg5G=NC9DI+2etUHiYUWV5X|C2SKa(4!5jXa zDVokQR`FU-G|du&fAr^0lOP>U95U9aT9l1B2TI8@I%e|3oxPRfJ#Zqb0XIYtQ zidoh8iU!87(Oa)u!#roOaSW7NwyX&c0+S?G3(HpFg5!vfK!13z$0cuDxY6Tu-3pP1~41Na= zJ*sd2#+S3fH|2SZw4=j$d+7^3T+?N|9~Cm2tW7VU;^QW@7uzE;oJ{w?gDW*d#-xr3 zaoh0y&%jGeE%e{W#HYuK#vjQ1pk#(4b)V@T$>#==v;VGcd6hqAfjgwOG6YhUrE>1; z`ACoR(8^O$Po!R9ERRdnMY<~+60T*2uH^89aidatr@p9YWt}>2^d^}5gY0Lqd~Q$F zyCdrt4febl5DAn$rByg?5yaWQ0RbZqX$VJ>He{XElxoIHa0piON&C!tQ^O(WnEqNp zX6i8u*>k8_##qhr*!S&HAnGyV!Se-!KqxGJ9pyY^K$8<&6M(6^?cYGx|M?yAuO7w66l9W1!#e} z0M!nsMW%8Yv{n0X=-l6!sgB7xq4o7nd9dFEYnJM5J}95D+!050oV&@8*!zoSdhEZf zSf$5}leARD?oqL%txJzKQ~7L2i9<&=A5R6PPgcZYvE#v|@tM{VaGH&g30(9)l4r>k zaDgmc$$)S^v}*#jV-KFNM+Tf`>14Gs3scu+S1#5j545v}t+nj6|MU7Jb8en zwON-fdp1t$y-hCf!XtSH`Ok@Mq`cBb*|lt!W&lL zvj`oVlViL=lD0o;&Kl?CErCxrF?cwol3F58moZ~rQipD_mhT~x7Pe_c+em))73c)M z#w=0kt-tRvE+BRn`u!)BKPw+}ahqYTP^Pq)mjR*_cT!nalBoSx-?nF(dMtzmA@+6@^Fah&jRYOKwPth|&n}=7N{AZ~-ne_Nojl5dWby%2R~LXLUbS&+r-cr)>k+ znt8i)!Ve79(?c$KSGWEH4AG3@WD@g8^V59X-QnqV1eS|vJrUfdUx~6C=@#2ZXLk9h zP&f&ati!3Z_D%X;>w`A`|yDX!7y@>{(z*N6LMX{VsDm6O*9nO|))~Za|ZZes? zGw$VSIr~$);=%D-Hl4g%VOk5J&aZT@Av!(3v&zBU4mYq*5eq`6kU6n&|6NH4z@N zrd~ULjX}H^GP&uk+aq%!I*|;U2)eg1w^>{N_kaI#Q|MSk<)}Uv@t!xz7b(KwL$sjW zJe(M1*P)@ubBhbg6;P;H!#9Fo-QQdbqUwh*xYFMj6!c6zoUOM$ytj*kWJ@8LU+a|v zEhM2tFS1Q52rv;OqhH@7^OXZ;;?`9Y!(+cnzLYmJ?t)%TLN~t)KbWMWxlDIUd=gto zPltns0Iy%}4GeqlAWln3$6!+CZwzsRzOcq}NF|R_$v%y9r z1|)uGaPnC`2y@Ep*;BIZnVE}pKky=&%|ucCxo_q$*;tBI=^R#{c(^(ug=qtiu5OGB z#bTKzWM?9bv}@L)iR(0qZ>!3si5tnUyraCY!`^vDcDNUh)?Yz&L-$aje0TWRxmK#r z6}4@$bT_dLu!<++@?{8Y=+Kl^#*V; z(4G$ebp54v7%IlD|H?-B`L87*+bP&YlKBCRrPgeBM33dCq# z@!y!u`a}l0z0NU116WHuH0kH;v@$$StR%hIWpA-Fi?HLzCqZcnBZ^0WR+nSX49a`tA|7z=tk_f$h)F@fD?>|! z-h1mf`f$p>dJMnlGDoOFyRyQ^20wt0LSR95Y}K&i=P;rX)MRf2+meFMIrYtb3!P188dRJ%BDu|l zeNRLYz1Y#zxN|Vt5u5+YyM>;D7w$q#o0J$hB?{4DygK&0X}je z{q@GJ@)3^(baPvrxTizI9L%t^H#?Cmc(E;FtmsVBd7s7=QOP@(7`|FVNtDLFzF`S8{h0CK0YiVT2LpJ((?{+O;duH zYpy=EL!-nzAY2dZ!_nAlypW-c)R9%U(x0KB$%l!`;NCeR&~xP(K0+5D%zAN%HP)Ye zZ{^KQvH!rhLDohN~adp9rV=gN`~QF|Z$VnQZVH z!`-U{@?n#;m=_ANlw84K;MGbZd`I<^1^hl-aSs<`Bhb;LsFIPdr zf*NNFRg>Z1Z4-MZ8Qk@46PCnMdX*WIv1+Gz*`eGdyluNt#)Ge4!n<`HKku4n2~z&x zXA+BHWp9DI`F~UZKLnJye!~&v0EtK~=qR(&t}k$zrc<_!jYb_}&UMVf^T$8E_r3xg z*t`8)!klyL=Az~4NMTp%4_Yx9uZ#pO$%ti|+45w2d`py`Ox!cOcKM;_%7i})Lldid z5vgtH9rQv9p+MC^@fzF31X>~JRNs=So3;}Syr^ue-C%_SOD1tsc(~;+%F|2YAByvU zICx$p#L(JU-*cWW3z=PE!AE)ml3pxr{MH?j9V6(zRg7 zPr|S1K1mPBw$-vNPob`pw0)&--w|jiRRs=&n=`$Xi@-GSbjO%5w(WmTQ)kh%t}*H} z7&PC1PX4CIu_?7VLHY|^rqj5(iQ7-XOtMLJjUoa|MRoF-|M_7G0a^D}qj@E$cWR|j z+}kYLv{IF46ImVxj8AVg)^hUYTCA)e;a=wXVCu=kKCxa%mRU0muMm{8TE|ez#b!&k z2ilTA!pXM=K_7JwZ|!wq?RI%GtWjP!I0Jwz9p45>{Gji ztil=Q?gE!I0 zK&%1<;z>crT&3xW95eWN1S-od=D)yroh^JsnUd*}r9;0yurgP66fB(b%Z_JBy+}e0 zm>;?Q;MvZdcwB(VJa@-^_0~u0-S`?4Dh=~b!`Y)uXY)redmiPAKj$493#}(W8PqFSlAE+-^3)(-(OnNKM6sQV$STY%5+-YZ zD8)s8SQ3m{oL*GPF6#soK8endKqfQ6itm}11AJ^FfZINPf3Zpo&X3reqH<~N3-h9J z>bn-RxBmJaIFG6EA{}~4Y;v%G8*T>i?xeGrxkTMjfVmRB?=7#NmunU~eH6H01q3IFH#Nj# zimqW?pQX$Dc-!`nQ~`l^BBs#@%5Am0C<1yG`@QP6|2cpnXVI4wjtpSUxRvC9CDEJ{HNQW zZGd!nhV8U}{Ov|6oo0iqbTJ8jawwqE)RAO3h}NQy4x9yS7(_uZSCRO@p+rFpR2Z`F zT|1gX^bpz#tM1!-G@?dkGrOE~6|o_yM&Mk8WJoFz9+|+}-DWtG0u!S%Cr};7Yvv^k z#Zh*I?s(QX(MbsNQUI3ewK@-a{_Bm51~Tux8=R0IQq6qvBTF)sFzdSXVse*AD0^xJ z!TJ>Jm)v;j=5j#m6wLUXk$J1bz*To4tvq&%6J&?CnenR4Q_3^2O8E~$BNf3|qL&&*FbY*vk`y0a5? zmIUR9N#!3i#D9bea1UTc;O(Eg{4AiZoL_YE%PeJw!%@s~^EsDMdpu`c?mlyqqc7(sAOV}E_1Ft{!)QmYVI2=VXYkL302GmRs!61x4W#E+jHojU zOkq(TVtA)qMAY+}AiBbp%d7L?4G}f0#8YpdBJM+E3FWJA!HSG=#_Z{R{gmOAl07Drc)(vM_| zl`#R~0ZRFU^VU5F_~r_f;7`jW7a;qFLGYreh(Cf(2W?-qJp!=Yy;W2@SRFd<=E`b) ze8_g%_F(=Fi-;>v1IyK%1;u_z$+;iy*!jm8D>xJzqg9G(*gU2tj=vyI%v`M<K;RV72Z!OUhKs}F6Eis2J z4~tSrDM|_%kf?0*N*T_#Kw7qacyz7eRCfFg>_LU>w8ldyN54|j@?mak%aIO11g&*o zqe6Kp7n!u2AE_x$lvsJ9^^p+{Vn!=-yW@@`n#P;j=4c)=7DeoacatbGvdNWl_Ye-fo^PbFM;F#yk16=oovgKQfJJ|8sN)y!6? zM`oVGRkOF&#(P|F|NZyh9Zi{lBAFBMc_GV{?Xi4{bG)9?h1 zkmFbYCtF4(I@F-gzoy^JE34=+l=a+18J5nlE=w6VwQ$3%N=4xvW~IAR{{ozS+%p5# zQeBF0hD%9gt(s%C2IXbkSP$p?1YYdBr?8LB#ARd>Lb>5~Bd$<5w5xfq<+-g@x!UU* z`~L~_5ggk4;x^uA^OCxa50Xa9PJ`dH3N0NIO8gP5AoB5hUB?{=ORQCOr(Ux)`tXh8ACIq_#-;c)ZfJ5L>7J5FJ+dY&c_{%kFtS5@L5rH=p4F0bRsRq6LelbyU{vJ3eH zRM8FbRT&7EqY2+BHL*q*YaVtqElVdJXrWuQ3a5dDFO@2;Y>zxN?lxRgpKi!G{HElj zdt5=7%36L|?2fls@LaD+L(d{sOlsy)6?WJnB|1Tl-11)yEh>O=OU*+|y7Ni*V#OG$yDfjjy;O9h&;<>Voz3C(0k#eC$ znXICGA*jhJO9%2nN=;>bt?jEnfbwO@p5yuGflfzMP}VrDs8)4TpH|*gBQ@Xmd0GT1 zW8SlVPcxI0k7u|g4s@A2+<^-l3btZ9c0uQK268c_liF3PEGDqF6XecIbN4OvG`zWZ z{P6&rlQY_Yub1%1KmyCa7dr?b1NeYjZ%*l~?^>5<;}>_^<`Khm{aujJ|DBtxZ%F#s zlW^7^4ujDS(XnX1{!Hi4=Z;)oN4&TM#Yfvnc~32Di=CeA@w*CmHxJ{DeaQnb-l@K;v@4M^PnOFu3!hZ3m%Aivxfcm^BG`8{H7k{Rf@Dge5>m9r5VS4F?rr_damkvHUMGC&R zyrZ00-1KVUJ}-Mg&JWX!h5=4f0PMZT&|$<1csDeD@n~YE9Dh0@wt1u3Mjz2#{lpZu zqMHb6ZbRhNFV)9J(|F7aCxGfa*gdy2^H(s#ic|i&o|`6Ipt4`CO4^fhrS9?;1%gq4 zyvqlPlp^|CbExtgCnM%SNWRgP`t;1jBo6U|rxUg#U}A?-%zZgmmIA7zzmrsc2&j12 z#&HU={QB&T6J!>GE_}nYJ|+@E+7vyCm#V7U?ur1SbjtO&^S{c+CPb|Ao+R^Nq+&$Z4x>}i zX9*NDAnbRLYfJUA?xFe z45Bt6yhSG1Ac`4xeDS==%HIcyH(A9Hc$_q%2RM!0YcN8`;%NNE)3BGpcYF8OXM=&4 zs3A~=S=du+c?KZQBe>chinAeyNM;N-{-83gGMU{Rw|$&|qdOQo9S-i#)oEqM*M*N* z3Wrw73e|u$glf90vZz#w$EJqX9c8%{5!B75BIZFv=B7#FDw>~It2g2?jcqjP7uh>9 zhzAF1`HC{9noxRLMXDMJM;@433CLd%9DcUp;hjA#!!)0lH08CLIldf3hhg}(zkU|& z-{K3F8`=S7<2-?3X;E&BIcq{ad={}u!{jsarhoavy=0`sy}VM%J>qJA9#zK%WX1A~sg+-GFYwEX!E^*s_|Za5NBg(G$<*w> zG2~+#+xeJT*(o&HbuR`!q+LzY>pbMR)N^^#yzuSSj^;LkUQ!5nMT-4@-Q{^k9rgM1uM=Z>QtzI))8TVBk6 zuCU2Euur!3qYKK!LlrtUWLUrz{FA@+Xg zf<#z3mwPV~aI2o-NzxiYUsY1|sP-}$9pnvWAVCbrW4}Y=2jS@}46?#A(Sjo$^OXGr z+sI_TI2wdjdxSS<$3DOY(kdD9htP$~!EG5{^Q{_ZOzvIy+feL;BuU^?dKNgj*s2-0 zP9BQIPB2aJar_lqo4-=AcC?48QyoUFCIKN^l@GN}?W#3C!h2eWa$3ZLvXrrda}ddYtV=#k44 z_T6OHV>QF>SlX7mRVA~+Totc&b&0r%!V?ycuGC!u23b}Biv zR(cOVXgDl)zBiiTpwnSQN0;2k7mC=wiAdEA-&4KPeU7oHW>le^a)Q?CXUAamzb${) zOTHKxH2FZZk|xRzY^7W(v8s%WwRwG*CLJqVI5e6u;?K#MDPD+gvZb6_-?ol6QoBRj*Y+y7lQB=XA)$A#?ST@x;w^lfdlKW!RGbkO33v9-hkDkIgwS7AZN`)BN8dMDv9qkT+) z1QL>98X1bIAb3N?XNnhD7`;PQJRD21>!;ibX57ByU5v62oCi#LPB2D&mT>qy$%zM_ z_&X@rGQ2}AjPa_2KHgyN9-Tq8JhngNxPz_`r%%{3b!fR0NoXhpq763*c{=|e44+I) zZq;8-JoKVG;E=lxgBq!v{TUpdi%%0|SU2hMjR9=S{a=CE;dlQ=8tVvlRrpVecqcxN zwaO2+Uxfp(R$ezFNRn*SK?YU5MeD*6Co7Z7UeOw zNwbMx-^IYS_(miXY&LI2hLvmPUCbu3>hP7_o%iPm@4?GNS39Geu1}&TFR@DglUXJI z@>i0X>;N@jTRQ)cs&GJ_`V?~y$eJ2vVaO8k<&IvLkIZ$54IXCFJ$U*oViwuWnOUQA z-Zay)K`UDqBq^~;acS-ly%b5+wPXDmIOW%;fH^$bqLSfysvSLM?4o&!JhriQ-A@Mw z=0%B_FP=r7Ej|%|q;2LSY*vb5mi;3JDn`N)2_m+IbU!hdiG;|Xa9L)JqN2X3&&Zl+ zM?7?T^R<}BjTEQoi*Id(8JR3#mZ^R%1AirlhY%(rB>^GvlP3%#;u9#~Jd{o2m2bM= z#T0)Zd!)+GdT#v~FiK9;gv@a#g*LJ>sZdS_+`@(~Ps|MWM4o}d))kEAF0ivgWMu`e z;V@Poli^)C0MUn@m4tq5Ocp84zrHbAvVCJ<#?0>YfB*eAI&&#ttq=QhDpecqAyY-U z%_y&#VBmCeY4}6ex0RW&3vsps4H*tdV`YlO(h&`Fg+d6AL=WKyHB4M})G#SBVRsYn zd4MZ;P!4QFmD|QTDX=J&te0cuLLP(zlD7-OCuay%@Avcf4_wF8E3~5Qq^}t)WqvGP zc&kztU|?q>LxP_EE-BHGpYSoCJW9OToDi+A8k+f$1}$)gFS)!sAe9)g^zIdg6>qY( zjhZ!SPNVncCMt}ko;DD7b;JtYP<8!(4A7&Gu&QRAS`WlhMeMs<;9zPCmudYAO1#y2 zyL>#LQBTxQYZ<6Yf%{1jM2@XRmN7H){czsl8sHEr-&d2VUv?u~lM|vcwd_&`92;FU8x`NvGw^ zDGoINBsX6Q%)#yIg&7FaQyu~ARz5qIY&4bu9#1%|&bE9tYu8)yE=b+tjrSV`mEug? zV&HpM6&%^+jG@gEK+t#EDm#=M)vw-xW79UNe>$K`HDgvpC7PM{GbO7Xf|*RU`}^#x zC(bozb#Zl8MhJZsXcKa)#tSaXK}d|u3$0rHz3tXw8UFY?yK1~WnS5$Z+zIlTr_N*y z)gkx7cL74u=`pPSU}h@22Ag4lBW_AQxNLNhGZKAJ66^+jxrhwwB@4%q5*lm-?QRm| z=OdqnHqa7ZSTfc3E;6t`e+_$CPq+$}3%em>X8Pv+eW06&SoXZS#lp$yqmABL|M%a2 zeV_2nHs=U0P`Im^0lQP%xM?In6SlDoB@EAYq6g&)sVQ!pu{eDiGv6sNaTvB$EeZWN zPO^)V4qdi1B&l?yEbB!BAhM>xX`rH7)mkO zVg3&_l@M|WVeh&iVG{%UjKtOba4|NT)x#Akg+Ujnz*YW&0B*}<&*H&(@`1wyJFfLBhkOsgMF(8ELC>4g)?+9+@vkzDQ@! zf;XiJe{Q64&nJctW#4#`-kle3D{_t7Lr7=Uy%p7fu{hjX%RmJ>XT^FaU9F)KXO1))<#hC*i~Gjto^4b;Uzi}9~9&u z@T{^^%BWo=DB3d4HKc+Xfvp~5y z;gQUY_T(2BGHFhBNU{G-RUI0q(|d8)pz=YRCkOE40%-Vh#i60I+5;!1rEDSsC;9}6cdP?5zeXnV63BCW-mjTE6k7tOZpAp_`5Sp#Z`u(tqH(3q2ZarZV)DLuTD`B<5n0J%)fB*jLd(Gm;mKxJ6lm+&E z+k={2>;`cZK!!AV@c6WHos#c|(HXj}eV%zgJ~5QVdl^I+EJ3b0b5Kml1tP%s@6ha9PoOMZN82s zGA_yLRP4!dW70qT?hRn9^>=ThN|zsS_1s6E6j>iYN*<(i_3c+yKSR-cW~r2Enu6gz zhut0PA=9>H?zW+q;VsgDKS>NTG|-$pN970!L(DR7>HA~8Y6;pSsB5*3`Z zbMvK}r%l$QGffQF!P@5>ZsLtjsJ-~+y<3iC=g~s-kou;R!|r-01%i~A%7$o61kBXC z9V)GIo^+t>TRdgvGr)=L2?su*WMB3M>{k@&`WW}JX4OAA*Pq4CEeJi_%Aw+|9 zqQxdI#YLTdIg4U`#h);js{`%Tl#aGeHa5Ts8LPNdVng%5waHM@qeTH8WtMtkZM^4= z>AW4mp5}!W7alo=N!wE{?+3~Tb8yh32zI*ALp|T=$)%mOf`JXlM6wiuv8X1`VTrN0 z7o_wihRpqdtQ=sb*U7-mD|GBfsV|8e(~s#!JeS~K8clHBT2P>yn$L$PACzr0!$Th& z0Ax4fM&S?AdIsD=>KzF;FMW=?_e35t;?awhY@Pk)iWgwoZ~H9v%*$>3TWkKTgxPO% z=rM+B$0GrM zfa^_GW3s36?(qm;I@Tjak;o3Csnj?Zn)-fE(6RZ`g(osYkW8Yee6S#NTric}hiZ!@ z4>IT9y!Fr?*RnI7t+n)#ic&ACGI1#l$`)L6p_^r#IDmyIsclx^R6y(OyFs-3I@J*1=rL0v<>yvTewnUmt7Bx z_CAu{1E|(WD8tZRICIt6(^}YnlxNNAQvM7>`OchGGsG5wJxbDE!L}?g`2%9)a!AR2 zJt|}6@bq%w@~!V&9gWZID31(Jrw6axkNGELF~%2`q=@w}Dqu`vSIQ0InBQL$&KA$; z+~y(!Fv?F)fq-Ruu5 z+v?K_yQu5cxxqlY)&YKKAW8vyo=1ayc`yh-~TdnihAs3DliZ{bW_1+PK`ME zouqA}z0~c0mvV-yJQ`29gV>uxVX=crq9xAA8rr_HIC{j~_v@5{LzoJejtIEdC6f*B z(*S!#fZDi{pi0nGpb<}fUzbbvK|pF+p$wnbFH{ z5G-DK0%`M5H4)uQ$3fWuG8)h4ilWse4tO4_4xMjd^D#MTa!e^(R`^N&HuzI`o=3Jf zBcFc}4v;Ki<}-o)!g9u0Q-&7KrY( zQ0bk-x$|Oi*XbrJE{FS4%;u!O{~4{de{?WYDN*9P^*B{`|7~;EtL;g35B}wC(#>r| zxr_;3FCbu8YtDjrpz{UR|Fc4SpMs^i3Q+TlUMiLQRC6y9&8`=%V2mKCkOklSOmtG_ z?$f|-yxW_9*pAymM*$t;zmIgI`v0}$B*^uO!YUytw;Lq3pmLvZD#aw@7X&-GrT?%D z^9M?}H>chG;o50cryv=6$+=7GXMy^5l2|j(&?5n=NmmwmWdgYiyE)`Mf`~Naz?Dbn zt+oEM0v-9Vzp;N`D4;3}t%h{(I&?ez7b^}IIlz$eyg790R_^GcJjR@o!W-qM4`7{0 zE1J#ZTfIbzrn~aeSA_2Z9wix4VLf6tHj}425)K`)li<%Vc(p%%?W?xN{?oeI%OqDvuMydb+v58rKn@&Z zOG=9nht|?kkkxzUoBrQKh`!UV?b}KYG%uX~;$Q>P5?!{WWbDH+SU3)wY#g>>X>PTJ zj{RQAqVq_#A0N%7FT1PTdqYSVlDyhz&*jjiS>b2Y5FLGQZQv`>!dhaODK@1n7Uph4 zA z5SlPFPfnud>*xHP&k{*a-CgE8bD!!Fn6s%D0++TWPGzsxU5YiDnK~RLmc*^iYg`<1 z_B=!c)}|DPXp*Atly&KHpjNme zn5sJ3ZG2&K`ufh5t<3D^xL|W9WpIW0yPGT8?@MlbYw2cUsyn$yG6OhS$5?D_NApcq zVI+tx%n^1tm*jRaQJ5)nIr`p9_Imm zWpuN0@t$k9DM724-kp=$I$AqMM%yJhM0PDf*{aLRtEO8WRDWxt)m>ELG6KZZ{?}-X_hNEjzuFCw+_gjJc@zZax3vFu($oSW6>-X>u-* z_UYTqT=>?*fK~7x`55fRz+2Z1$}r32$DqQe+4#?7>0^vaZj)jj?e(HE;GAXY#iqP# zFQB=6^10vbcD&|bZ1n*(GDpE|Fd&KC<$ovhc-L0qUU(-Xvnjc)OjMMfeqU^1@MOZ5 z(7RGD-9UF|rUsrFR5~>@a9eDFi#8#A7!#|m5pXVs_~`VKU5+|*IqZpw$^$E~2ah`) z*d4z#01o|hN&)eeR!$mH3DL{T)D1Ss=i$UdByZn*Z|tJvMkb$%^>nNX0Ap)&B7184 zw3qz2OP@xjG~req8frw}e>ytbWgpSZTb13?@RjCew5(~|aUt#b*9|>RNT%0^=M?!20eN8QC_`oFALrj$+Dx3|TX#i71U~#Qj(Y?GL-O%V zSsc++Y?>tpfViH#jyj?b9?9>&6%`12QMx=ZXvYtv+$gAL`~TsegG@7ctPp-A7nH2YLTio{-m8F-oaxsos`|1x>d;M zKeq^E!6{ev^~5wrq7enWeBmHkG&~8; zq_m&7j3u0*FMX$p`&g;<&EtDq@UQ6Ao9T$lgY>5|oeO*&>qIG)_ih#?e14wi;~D3y zjx)=x#q4Q-_l^y*6e$;c5vM zBbE*&*L13zQp)r(7wNng<$qQ8iop{6M#6o8r5^Kok=FOMW-i)n-+1u|tI98RMz{N_A zc&vS150*Nyls~yO^e2Gk-IlG(mBn*xhFJFwC-|guwvoo_YbS*`p(Q6ix~~%1!+f92 zWv;oK*f80yhBMEyOkah=M@y6lL?RDU&%pvZS8d zMHWoS;fH`$!9A(UyO(lyrJ7Fh4@E!ovK(U19w4LM*-b~4Jy(Hm-PNqeF>^Gx*Hko( zda;{sqTWLr>Bm!DkGDm7(O`i{j?Z3WhTzWN~dB5 z9(_KvwRZUw;CZoZO@hs)T5im*_U*DzBS1vL4e~;wk8mBj4>wkqCbTVy)mlPzigBQk zB4XLNNFb-A#41;2!+EO%AF;>eM0c+Ae*`4bB)m6776ysWYSee)cFo7H_V#YF{_kJc!eqDhf1r7%6*^_g zf{0%GSd20b(f%Dsvh$z>fcCoTla{Uy-=nMq zHSY~}P?jtY<`7zWGe=2?qp7tuV`UeXw>(RCUc}%G^dkA>!vpQEpYM-h56c~>s*&pL zfR%5Yi0kFbCS<)b-3uPJ{x+pZLd8SHv0dFyix}c`H(HC6+m)(PLrvcuS!6%2 z(A-?WI@);zIT1v$+mIo_UNryST?zvd2Fq689<6z39^BJJCf4^@L!cmzNwWg|Zvu8I zWcfYvp_(m~inM5u=_9vfLr$T3a!=2qAHkmPn%jgUy+QIA;AmQr9mp1a3tbm19U{s) zZ2NBt+Ajx?qLQu{zZ%!piz_}b{_DVUOS~Zn7JwSh@iz!aBh8z(h)eEtnxRDRYP&-a)=5CKTQ-x z%tsY#8Y6kQXls_pLOWaCZK(8~aSYvXGM<=#PPwUJr#-Td=c{PM$B2I`f}gkL@8S&S z;NLE|tCZ!p2EAFbIn2}wb-|*w_4o1w4+w9q_y7I-zvHLI+(}R;1VEKP3sAw9!P|mu z6w>Yn#wIgY-c=p@|A3-QfCDOPran)qPCjOB9r!UTVd>d@@$z|{CFog&ULl9wDc)0Q zh!`^sx;PCV7l+h>l^r16eR7*kF}lpdW`CQaJ8+YA_iAK^TUsu2kvJuKw)Pyhd`Kb^ zL*`RLRFjQ5N)g4i$tJ4@XTV^2T9TS>zcVc&{}#zsqd@BlH(YJB7bq(wgt*bG+mQpk zAty7QjyQ0VZ!RK|`1tsNyG>T)Z~mJa*x5~ypLSAwDtDw-E1>JN@09KoUG~=a-B{Ui zLD~%|c1KQlyxejJr*kP4kJe1FshNCfkC3b#TkHx3h{&cT#nox6x-)&-DD|Mo)4P5g z_yV}5Mqht))zM~E&S%q8N*c(FIb^KMa?yL3AoPoHX#b7iN~_CqVi`MaRAZ1}^^x97 zv)$k7hv?T{n_pZpV8*1Gz#T-x@p5=FKe8c}t7E`@NF0+c9d9rcS&yZ7CJC&OgPOvEt_rh8H#J-u?3B0#qD=stXuje>wYV zqc`4FG6ahqpLz^^j2FFo&&^jBiU_%Kr|(iUq-J~>&apbkp2BS{Hcd`Y+%;kWrJbtc zexWmI_FpHHRnc0a!kruc70vi*OI6%#(X3o;vSNFzINa5X_r=diCv;t@$yrzOSvv5* zo2n!VUJlvD!XfX| zWeZ0kaZjncRFfTLC>YJm>ND=i{Oe&PnJt!3T&&<}gEK44-@ zhaugKUD$WJ9dN{kV6>fZGmg^yW!jF}=BdnHk2WOYjT|0WqH%D*$iq*HeBwhAo; zFhpjyvWW>F!QbT%;t6-Hs}3D z=T9gr5gM*$kJIn{_xD$EX}b2wFOnFOzg1yA4xVFMslpj_H#`g!)Wsf8r2b$Oh9QDm z*{5w_Rh41MtA|iEb+GU=1?xO%Vh$r4Yr$)NuBksAOrWHT4%y$d6ngtps^#p7hmnIo}S+lv_=)A30W!c2`-o&ahFUmBei*1hF1kQ)3@ zCFK-C<**fbF@aq3DNX6;-wWU`vfG;<=*6Tm!WnjziNg}O3Y3m)b?W`O;ad6T>wSx77Qwz`q>QL5qDGy!1szbem7nF~Hv8f-nO@bQo{?hj+lO5kmHYb=R z2eA-+@di+0GxEdL4{4?w-%6ce^pnEHf&X@{{teUtiDsUFjOI!6kepHE!YTlB?hJ;o zle7ND?D5Uip7fsT0?50Y71GDVYEexe0f{IeVCV|=1P#^0a&7CNH)73Un zo`-4K64Tu*y>p`6aE4p{WbzT}*iKq&tiOo3aXp|LeugkK3!v7{n`iL5Wm4)5AT?we zr2xlb34wRPElSD<2AE&3=E*N+pra$HpJl?+drAUhbD#eK2kKtvTooKNz>C$)#uEEt zYWKo64rVgd(BxrU_j;t$ixA!lu|v`2WfO;)o~*_Pg+npP->f%Q2XW`O(IKSB8*E@_JJs}d~W%HedpHhqMH z*M;aP8{MwCkIP)wD&NPtE_I;ei`SCKY%eFW_QTY^&a8|g`cFs(#M`4O(o!HiQvDQxc{nf#CsYTPn26@2J%~)s zo$mQp5RPDmpb`<5cyit2+3j>cr0=1*L-L|U=auwd%}mj$4>Ipfz;J(T{s7}9ZZb7% z;UhuTYISzp$HH@WvB62J`W}U!;s6%|HId}YgkMwb{I}fY4;ce@^9^J;7lMx=w~el| zzI7q>ZA!&S0Q&xKxJ)*J^`1J@rqrwwKAC;Fy+*^QBvbg#9C1D&?D~xnCNen@9oQgv z6{By0-Vt5F`2SyRU$$&J3L^_Q`v1SUtGEv~pd2Ld+SNpyvzKiU0yLxm<1UtenPr_( z;p@bD_qAG>dB_h-P{);nfR-&ikG>c!8DcAAI6IMp*)Il)*q-=CXwy0$R_80C(QofI9b;$y znEJuae=w~Ci4n3a8I-puP2#DQYpZ3s+5$FSvn%IL=`1MUj7vUM&iK_||kWhwF&gZEneUmdlo@tr0fDB$;$q14{YBsldx>FzE zuV&U2qTytw?QC7rb6-CRi5&PrH+1}FuB;ZXV@srLaf4F6MpjU(py60S)GvHRD`=1gWiXY29JxQ-*UaK>Bc& zY1FVsvMA`f_V3?9oXb_}mEkUh&%`+*NiECF#?1W69p!hHe}tSNieWXc)pa!Vq3PFo z#7AHIwK9TyGvst~qoMItf|0%^dlc9dQ$b?PE;rY+p}t0Eu8$mMVM`=_W;jhuHrW1;$~(s!GMb zA23Gw^xh($MeF0_#!b>_I#$?#|K3WtBC{vJU%>%qxcyX6nm?&Cz%WOzJoN+&Wm@tS zP6=6q-OK!}a+{FEAqdV(kjYaU>cxRgAB+w(Nnt=E>B*=l9c&PPd1VNy1ae3?ok zX1sq|3!^C9@U)FTyMcoSQSL*!I>a>)-dw=N{<@xdO5=i=MRsJ=bb9btY)o{i^IP4? zAABN7fem`D2p?*z_a1iy*Y9YKi;om6`u98$u`8`#Q(_1*A*#wfT2rNO$%*KZ zhZVLTg979eSS>smGk`j|)jk4z{|hXn)lj<*|(Xj-u>5I#kAjU_fsr(;pLMHs#@ox@t8Fqv?Xp8nnI16+ZS5$lZk z7Umw?RK~Zlz5ny?zp*c~3PvOpYcdlzf~?oiRAzbusTrmb6!WmD~mK+q1S@by{-!t84L)(4*j| z&9EoGwzvU}y;PeyQ!Vf9SM531|D=8XS z8i51sLsMS%{}7a3u={hu6JQhqu*1H^D~7-8r8{{d(dl|PKTcgP7X%M=5eRzAOh?p4 z$`=%vS_^GrBa*+MWA zaHR88HD|W-?D_1TX*yWjoVBAJ$Pm0rNI~|+_cP-cBx$~Da%a2T#+JZsDNEHjx<$3L z(l0<=gbY73BT-{jHr7JrrXNc?v35_I(;o`@MOu!j2V@h)+L&7D(gM?F53HEoL-*`K zYs=sKR5rKmS2^<+ziy?}y)GGUkXpy-I4xxk5T+|@TQ@HP$gLUwA%u)l`s*zA!Gq@^ z*y1B46#=52QEb~g#uIas53g2anLuI$Xf?%S`J*K{4iOsCK{VihKwBks+||| z!EC^?=B;QQ-V4t${+V+5v9nBAsgNl z-=Q$t66?eyrw; zn=7c6PvvW=4Z8II##|raQwUm!Ax>vo`b{K)rW@N7Gv1mhniRGZ1tt{Ue?lwfBJ2Mw z7&L_Fu-}|e%;=$%$cGmJyVN=N8K%H~0H=`_m zmb91U>Ee9#n^ZwJG@^cBQ+QxA%{r?AHQ;_|r}YHb%u@}vskZa=3x;nIy8UiqusN$h z504ZlMcxl~IFX6>VKQy2tM{)$`FN`~aa8dKdswG3J%M4FQ!vsEn|?QU&*I4 zMl%tzN0KLVaomkd)mE7=(^7{UV$R}?*4WCulwDKn*;UPU$VsQs^mnTVt{r9H{Z`6G z(!Q+Xr^y$8l=N_%=Q&;41d|Q1<)!t8WIjq12@^6$O<(~&!q5-5@d%(d%NYCr>r{VZ z>3&-995sf?^pvQ&2J=Bq{5cyx)qKoSptvuG*K%GM&mLDq`l|AKI<4&fp3;f1i{|Te ze=%HC^vuR>+DBfsC#u~w)aIlJq3%R!W%oq`G~YYV=)gUr8?K{_j8kPTP^AC?s8D$6s*9Ly1nlzEp3+K~;_(|K)qR ztN7*O;9*C0X>VJLL7jPMFSOD)F+yzja;lMEuUWI=HksGFHiKU`mOAeJy`lD!x5oEnG$D8CFO(~7DJibJR z&N|K9?T04~Ida(heEDxUO0)ug=f74o;zz%=beZbB9w|e7shd*3hVa!9Sxfvh)^2de zNIqfH=)igqiQZ6M54&VoU|2=(I|?&bq2YX-Y7!_0mgA#}gzPmuN|A9hMAUNKR`SIO zR+&2vYKt;*d{3_0MzHd0?cv>;R1JUjI24Q4Cmt2EMP=LFR|TR1!nmq~H}!oB7?y&i zVc1oriyF)OSU>8K(t0-yacadWM!!#Y8Wu`GH8p($YLiB7NZz8z9wTk*?zJZuL|nG^ z4n)g?U~>}z%gnx>C-LJ!vM)7Y$yVyEILA(BSG)Za!nAPuN7msnd&@@rEc1!Szx%=k zCKC7{NTe!hL9eC@La9Ix*qBBFOY~$W1Cf3~fN3#kn)wieT4+l27 zCV&ZfzAM_NxJLRQ`(;<4RqWA+K6i-opr?RkTC%loBTy#;zMk2$XZX{T!4l|hvN*Su z!MwYeH^qDT5U>+LOLc%c#q56(=w*(;*&?vWtu;MVya2R#ClF;|povdHj$#?@Rs(6T z=w4WC;*g5>%%P|~DPvFed-wfN{rNSOrT2N2 zjCv`zMb|vk`D@?bbYySAB+m3d9dQ}trsrK7L5<;zavOun^!r~Dc$&0e?PB9OBfa`Vj~6b=$(=bbFz~th z;lmv9>>1@n%1N{f<|4e`Kf?3Ioeu`Q2NynbA|@DZxAk?Cr;zxNmN<@p6W4O5QK($) z6H^<98z0iTPHpZ{Q7U3}U7Yw1cP-;~&O)*pHL!v9-vW{q@+4wKhDNQ|NeyeUpH|3OeVH{*}P$aD57lpyzDV^2JRy~fEg=oU7_^_<3CFIgcn0KFeSb(-P?Py z2fDnYcg@nrT*&@oTb`(B!4m|$o5_}6YPyu+KQE%>I~zieZb-YPvaIy4fXhS|m}?}@ zPRwdB^wJz;L;7ZMzi1ow5C;B%A3IBxwZuJwDNY5DyCO7=!${h27eovolk|>Zw&34( z?T}C=51q=nn@%RH`;arzIh)uxc3nDw>E|>a+kO*!&XE|_AyZba$K0t57cJk~zQSu} zCpdy7X&p*Pff1hl!MyZz`0_4W!#)-Er4sw-ab&P%&&h3{g{?Wt>W2;=(|EjFoUPpZ z4w4<~%M5V-X)?DJrsg2x@M8ypn5(B{{FNItSr7pv@s2@~%l@lsH_B|pzM9#%QDdZ$)P~SM}=50O0;)i}iglcZErtq$1#XM<9q4LWcuwvi1zc{iUYL zLLNQ)@V|St6$%q?wQ!ILD2HCc`wfP8emHs|txh{Fi_}LO%e;)fwrPyk`al2tI|mMW z2gY{7_bEc}TznZFJ*Ig^7ip#y6tp?T65qiO;)}l`V_D_tt?Mb*%Qso|jutGJ<<}sC zEu&0{^e%Ci-fB;;#&BvEqnZt2svZ@IWV()5VU6b%;jNrM@1lLl?cAxKcxVNqD5K`O z+~CYSL)4eZN9JJTw*)>TFYPh2;U#32?IFc?p%W@`6o(Dr5$z;n+EqrG&cVd%KA^TS zXbLE$$!4G6Z8FE6$7-1T*Zo9UtrvlcMe!XgDvnfcao|$ZdcrpueZP4s{EY)rHunBN z?_J0G4{AXsXv%a+Z%bGR}--GQ8g5Cz1A8@r!=GEF#qW7VV&9~wNI@;l?iHTEuW%}SP)n&;HL9sV3^ z>2nuAVz<=SA0`l}1B3q}QiL%IQVU=RULd4LeR2*4To1IL!davEZ6ga^zOc|9Y6=%?<7Cxew>yT zD?GWl<%QJ<=fYkdD%(!@B=J2!`jFYxQsRVc<{F>xItwVn5|US%eUBv=zIu4lCx}R{ z=hoiL9Q{XdUv2M;U$tupnbUfczP#EB|40ITU|us3>`fv8(vq$_&Pt1^_9i1j(P_+ZzZbz~E(+E>Wb;a6nZRjt2_4X~bZg$$DjI2(;8i(K z=}PR@5=Y?yk2QV3x5rp2Lr|LgyTwy6YYbO{`Ldwrx2C-mSB<@Wk>_+0%7WXLjeIRS z)u#=Q#Imct4tyI)UgRMbw5gmsxW`XlPISLW#@G+{>@f%4nHB)_EqTf0@5`~4l%gMZ z`iPLd^?7n#Z%!~12@0?`y8PR)ZjuL>LE~S{wzI?*(5uH=UB}@RLdK#1$|R?^b-NZo zNjw#~El!LPp300~L~tFNG+K)RATF{>08{voh%9kpOiX3cfnK~Ti-D79qnsBOGh587 zwguy|4Anz+$}?-n|6D5emA=vv%{fn2q%FFcw@&%0qJS^freuJ<6ygMKCq@s{@Wcn7 zk>00Z?L2Xj?*?EA|KloD;He^V@Zh(j{AE}xI-I_IefeM$S{2S5_9SJQ1;Jh&4VW1C zD+s;q21Z6-m%fPXReHQjZi^NzBm#p{O7!3P%x`ZVYT!$Y&BGtcSh zC!|xqMzQ}Pnoxq*@^g>s&uB_ZWJZM1OFOJ+P2n(g+|2DifQjX9M7z;G;coI zb{m_R$4AkUBQ63>I^8`iusyl%S38|!5@gwvr>uaw^Ac+E_gfq#1D!?##W_ms`N(L; zktZD*$OG4Evv9D7XXdfd^ z=PeLibfP@s0g&A~;lHXN*TV%qEyh4Wtc!w^TVVQHu}gP5NXY%U^9j531r-V#FZyAH zqg#kcV5v_&C!W<*L-F=kdk=jBbxYO1-bBFHf@#;2K?1MmTmv1ADfd;KxlAPdopwsg zZm9e-gl>g=8N=4>;%%3IQY;l`e_zL;>Sq*nuY4mi10#;@Hq*+0tuZ&!q`ot#O zAj}g60f{}*@upC#p+vK+KTqxQqz6`h!2FUb$W_h@AFX$#=Nz}w=UA?B9?L+8ay5OL z9{RS%FuCYab?3Y_4m(r=WO}9e|LuBD!UNY?6`OwU%^GpACwn(>jP^Ye&p53bz{~lD zpNq`Wsi~W2Yp`yTKQU|H_%9}&Y_;EuE*KCozYJ4ojyX^`X%5akVvm?! zFJfoT$U%M~{80!ci7D5OQrq>}ZoyGV)NtpiUcj*ipMXUykrfohN+t-4V-h&-f2sFlJD#DUju0RqZLHFk^= z0Bccjbl7lz@B>&+nYW4X#9kw=q+pcy91sOk(omZj3Vsle#%&i4e)ahGKE*7`guJSB zFITTzhd>dFn41*%_uj_n?;`6g6+;;Qu2M9x%PPLq2R??X@7@KOYfeGgmz!V!XDX39 z96LoL68sO*tijez3a!<^#$}AT!dHbbv-itgZ`qpi$0VjHiOBGila2d_QD;^RsY`61KTyFu3li@ZY-Bke$|*0s~q*-qJYio8wa$#@=@y((|mMohQ(ETMNI`*En{~T6{i#f0EubgeSRnDqU zN7>BBSJpE0UDwP!OtscfW~sNz8LLLTdYt$>ouxk@FSt|Z>4=#l&&|kTW${=B&}BQc z!CVZ^>Uku!*p-Tcn$^Me=nmhFm?O&1-A5L5#_H2@Ca=hb25ya?T^G#-EwbV+u5Y1* zQ=dc5m~O)*l$N*Gyls-Qu@>=9$^hAcVj|uQmhfPBv|HwHyoZUflJ9_-X~*)Nw9KL} z2Zfxn7$&6s?!oy-%#`$t0aryg<-U_Au)f)}s5lp(H0n~YSvcd&YR?pmVKUf9##pI_ zisl~=JUKXs@y{?;8G6$l3>q#+bZy@b$-iDuVUVLUIT)`)wMVY~-0N zdNO_mnR+?qOe(NG?f!(f9MnwVVHph?O=u)$?yE_mY*awxh>hmR#;vRCyxmK2m<$~` zsp?JE(gFjYDVG)c{kXmYbPMZQGJW-(>7>pQXXY&uCDBbj(WjIwXr=kq3Mrh+lD)fp zvzPSYI`d2C@{FbRy_x(dVqzE_*ctI&n{R^bTa}Q<;A50Kn0q{~4t-c;bh5xkKw)#{ zsx=I8Y_ah?DikPA+0fSM^{RX>xBQ%+I&pYv3UH=fG!L|mzVUBjvfPp27=XUWij96U z!fm_YI1&;eD7cD_t7=^-1YPE(Lk-7t(PI&ZhNm<-?N$zn*Q-F#LW&HVWMmy8%`9Ow zFxn4gG9n!njrWt4qg((vHk|kUfb>BH2MaCXpwa0S&uQ{HiuVg7VUDo(@h-Cd??1h_ zXOA0vYmw}J^8+lS!n>O>DrosW)6?xl@Y8!Y3MUcH8~Lo8M}3GhE(X4s###%;-z^=n z02r#ta`2Nv3pp(LUpUSrv&4?{(Qkg5 zR|KcX!hf2$Tf32*=1Z9sG!j8hHFANWl zEs?m}NwN2gqYzCV!1RDinriPTKViJ zmY=i*^YD$n+2`?s(H`&@YO#y*Pj*v%hOKRoqI?TAgP1;9x!|To_$%}eTVyitvxv7; zNa}^U3Q?DNsg{RJ$h<-5A~)aVtCz6W83`_gfhl{C0R?awja)8G6@C2A->|Lkb%JCC~mu-oGVq3qp>xIfF|#a z(8bkmm4KzDqLDRUi>&|qzyI5$wdW54!+crNQ)^u}@Gj7n zW?ubvNx^y8PDNH8*!Ek=7kx=E(!y%e!sa%Ydd;QB&X~AGkE=tDY^|jYhD;eM1JmGe z@Ur(wEyhP4k{$ZRBrlaZrnxx_5%$)0m>7HBv${P5SyW!i%RosMK)3``Jc8gxUQlZD zDKox@*Fz5Tl9<(1+l!||v%R-L=Q`$XQR>3I1YOH5$xD5!rBLA4tKk&-{qvktSA#!Fa8?z!}06uHLeih&Cti5 zVvoa0&jc53XKFYKQGkp6@=5UU2DZuuFhq1DOWbNkQJr|x+7>lMP39-n#>{FJuxO)b zBxC1&tnorHPi(lrHWif1ez@QHrzL|947w4jj(=ytc-w+dEE9J0Wi>EItvzQ`-TD-o zmLWfD8FUN2Z@30HRN^jm}~w z-ytektv~q--DjLG9+|^yB5Uo||RVN%nL&U=3*T{dI+2WUCVBQZM{t!5quQ=Mji%zp$FY!yEIy zvSqCx4|6}=yetp71J6&RjkkwHd8;rMU4ibs(2iQLq!8um(>2M*8jvR0%jcFc&T>WU zN9`0%OU(+&$&)_k^yVO#Sokd)4!BDx0 zkaD^_bOHL|j|nMhfHl4_jzlOzI-n+`O3WWiWK6vKNvd6R@HV5kSwpfWrJ2v5V(^Wk z(#v3w1t{_C28ivx2o`%I@^x>-i-xaE^Wrf@8Ex&_TEWg(#|1M-YMgKa4*eOIOkKed zrG^r7SJFw^d`-8>I7mwM;z~mwZ%ZAb=w_tyE$0pSQF0MVy!S#KsZ*~ETe&~=DVrJu zCWVS&r#yoTMgxvbD3y3UQI zY6w|8`vJ z5oK0CoqnJeyYh_sUP2mS!AUo9Uqt+ZxUx{~7fwEOKmXhHO^1FBeDe*?h$fIy=Y4kK zz`JLov(P#ME5Ha7C&#$RT;naP2$8#iSLIXTp45z#%ywp9fC?BOQpD)*vplgN0+&r_#-m;3x__o$-8ks4FYNOz0Qp~@kgh3YV z`A$u}BX>e0s(kNr_g-+Wjckj+(xcT{>(I6%aeL_D$P)YeE^Gm6nyxW=Rw?Rm)i*%0@(wpaKG zF4F8o=cwuirK_d*c6Y#Wr};i>dW8^5M{&M*(9yYItnYRO^S>x42; zmFDG6S2fWxwOIF)&Kq=56PIzA{B`({&{!qGI25Fm$#0uB^63cizrTOlNOtjr3tu4o zz4j?}mv29u;1AD1Yr27e&t?t}YprLGi34rAC8)y{l(AU~3~^M|Z|94D`8G4vKCmA+ zuMt{bQ@3LiD*L9ETsmBQk;889UQ}B2CsCv$7Bu_0`qe@8SDsRKgpOfIz|RCQCkH6e zUD~1pDcFy7Gb$eCD2&HN%11xVoEgaaa?R+A%}vByii_1Csb~c^P$?Eo^G03li@)olq74xxoVqHTOWm_L z-DRwhTwqOquKZ%&OybyRZuu$5t)cg1$BT>l(3VkFoe^T zw$iZ#)f7Z85L{w)=iMH&WpqLa<7BiO3E2IKtApT)QuUgh)x)2+IIuy-LO{jp^`M5> zrdcvVjM4VoRbe6w;UIAX-})&fMZZ&-GQ93B9z%7Hci)oQEa~rop`IryZ8Q@>3wG4)l$aL=w=rn-!wU0wZ}=tE3V5!cf7*5e1#j z1_w&1?nEog79)~Z!)$9!>fzhJZk3a2%K(8#%V3d=u=K|jNIqMr+$8XsLXc%@Gw$GI zo-S<&$Jgd;p%nLLB7$A5g1N(2!KjwBAZ{|tagH9!`VDv^UT|HTYtoeKofcG^iVtoV zYtTbjsiN6U(MO081|{5z@Lm`fEtnsfc7cqiTgvsQHJ*YiN3Ci@0qmQa7n8+gV7Fzf zx6s;<&3PZXd&Q9N@lL9&W$OL1pnUI{nJOJjJ761_eWQ&IJWltsL!V|RvQ3RXbJ|nt zsIJGN>6$m!x{=OH8*AS1G0aQ-B!KY0WnFOmOwRi_<5 z`cGv|)I`hqpBCCb=mO5oiT?z~!rZDzx&ok}MgryY9b@yzk%BBOuL&Wn|eq7Ila?_yj z4sasDR_7G+ctCu}iEb5T3i|ZM{<|#sp@;II-V+u%EkkHJ#-XG%_{?(CpB5UxjO1aS*7RMPAGjW>?ywuab;1#CNfY9g(F6DXf*wu@>?y)I0`6yMkv z1zYN2Wa=H?|8p{pcNqYhP<8#5hQHy^K(;lXeymlFeNW#xJj z8cHp3Ysgc`RD|S&yuO>ZQodY`?m{A%ETrwvvr2dj9e#(^xXP5?>hrXfN34k0KLG_t z26koeYs5@f`+`TWw@3B+thtol)Qh7{4%*j-k3Z0##1dRrzK>^&(L|iPxo; zl!$E#!CeD>ncMfO4u>iJy(0mg zfaC#PlD8`kF~-8l8<|DtV7*DE?7r9Kyrwj*5Jc7+G86fTNFj?|e#fVW*VIoFh_w!+ zsYX9JO_BjB*hzbJ^&%%6+sR}bI=-}iQ%$|$?c7}mCS+Z~AbmDjI*3ob0DD>y#h#{DF0qQ%RLEI0&1TldU7Y5zLCNgQYxQh|=-Pbm84kKB>fivKmG zfGW?~q+J&rD8M$+$0WCv01jrq-4F4W%(#^z_Fe5yDXpPnjvq1ev4>|j8R*qY^yQ)l zqyEYapr$v|Sq!GmeCT1CS^bpkoV%@r%9RAXb7)@ttYqYFPK%GPACZ zw%nBoJ(mzE7i+T!F}o3}Oi6~~;CydU-xuh0e~4>?;Z}5no?9tlt#I|lTbl4K;OZ(0 zC^xD~HI+O^149bOj_iIpc2c`7n~*wV?>}^YQEx-&Tjva%c|E<4!qVM1mX7iu`>x*G zGLfqw|9y*fj8`H?YrXxCnA9Bw%C7ewzcmOTTE=e^#T>P%CdmCuIDu6FB4B3ZawVyB8`s?Ni663~{ho zg#jUxjT~gnQFqg{TgIqk&S^WQRhs`gJT(;^0`qwPgrx0IE)y3x3BzXT;80ll-_p}7 zy)VZ(g=PuQXsw4Wkh`F%^rZlT$9x)0HH!s1Z`T_F3`Zr(Wx#mSLilG$Ic&}{)g~oj z4sX+hWAd~}11)OhbsEe3D}-@NAN59(tdeSNZ%!A2#sDLX>)y>@Kq*xSHWaD({YsY#hmAAL=n%>elHpxb`?#OnP9$*q4m5#$dw5=#a<-JpStJ*?FJHQzS zg$W&c{LJY&3C6jVK|lpRr8^2n1xNDxB@2eC$Fu*E^LDxw2Es(OiL-MrM^M)qudEX{ zoLTC%zgyC`Srcx&-c6-ASTb-nNIXn6n5xxK$L`96Dk6=+Po$GN=h#`Jt@^$%&4@(D zve_ie)=hKBDH8QZ;8MSR0@X$4594=C`F>M#GvT9KcpxRVERpv?ejpm{y~nAq@U#zJ zfAlX8=!E-XHo#G}07nO8>IyY#>f!%g7sYF&1!LHQbOWi*ci%RVIC3wHmQN`buR|Dc zAZizW&tV>|o$MY-a0E=l1+uc~KsKKW$eh}5i3RU^KHtyjP5XI>h6-kAybCq!t>J4p zy%Fy0@zFT35kCpG)O{Zp{NYQ;<6TL6pO)+Yyxvx9z~KW`Gj>)<)}>WQPFs!JDZ>rj zUC1pxvB0$lHz#?=nLNW?prNmN zW+pYX8!dIU!o+@}B-JTWkg<)ypR%>!HSp7moa98zjz+r9mWsuSsm9rU{*I`uX>$3f zlTMLIMz&}ve=N@o!C{BfeH*a%_%FG zNgUHbVtJeO7a1s18dMC)a}DR!3lti0qYDOXJY{d+W6)qYe?_41n!-Wi_0pO@Z2{i6 z?HEfKch zAiL_mwws`?G6<*Fh%J>h1ORS7cES8gweGX=SB-jLNe zp<%PeU?$8bKbI*WpGW88#wD#W^N!Z~xLRc8RtR9MgYk#Q`KE?BTNJ#? zH&iM~Dn*EMtXyBsevf@-g15r%nHfQnBgX!ihWz{w-Zo4YTM`R)d5l<7r)Vq5&`wI5 z?Zjvt!pE#kr`|Y{)bu_?0V>Q$=^??OKY|EKN41RDPtVJN%Njj)GciOmW95vPaA!!# z{xPA!0TZD6auS@XhsoSV9bOe|m3cfNFvxmRCm%2!KUsbVH=;0Uwx2dUD&EtW;Y7^E zTAen_zB{u}rh^+YCJT5HrCU~iH1Z+Z$trn5CrcSTctf%z_X%@b3$UR?ABF+T%u z`f{~sH)hvAwN^1Tt|g)5;VbDGw$K%DgePpF*j+~ZjywMzbev9lmZIehQR+x&ten5x zjr_0!5-9=nxG+9Ho2iAy|U6DHi(%dh64Sob;H7}lA^&Y{Dy~hkOvxKA_)6sGr zrKL!_lDmoE8aDlsKDh8h&Z>02DX-eXdrDCR;_VBYoazb*-DCMtnCg)#@U5+3*OO;= zt_j6%H)pF(hG2v1KEg1v$_|JCqv1Y3D=7K84O(hB+CqJu=zEw9lfTdpLX;ar9{fVJ z3l6Co2gO_>CSiOBg0qs46~N7afP!*g5$!-vOyIp*t4E^m271BSZ9-m|^Vx?%7<0Vh zH~dAqiCMn!r|U`GH{#c_?DjJ&@o~8bAtzGQA=;6A-U}%rZL`v(*dZN};~{g6EAIKh2V%+3j(G6{;E1i?fT6Des#XNo z3!*;0`5pClku}H|RBgD2pB2PvEKcjWZN+6*Qw`<4{)nhXSatIm z(MDNKQiaFQmP62x^VV!*50I-!iSoOqnJwdOzSSqLHRhu;md(JH98Bpp#Vdt9!Ej;V!hR;u zLbC2iiqRyBcfI4r-OSzV4hW3TIYIS^495O5QVz4e{hA-kuFRQLZ1kjWRcQ+iW_^0# zz$}pf6E^B#o!@@>01= zYnaLR%T?jxFWsEfdB$h#GOjDF)uhxi_dfM$)65z%W-@{esJb#|EehOnzNB=;aO@6e zi3Pnje3l7-u=zZK);6>{_~j+wLY& zjox{9i-G+#XQRwkw!8$lNmWtlvDMX*v#pU*3Bo=TOzWLg?NsRONR3amcfKsSYrRfoOcNU;(F0 z@~u1Iak+5}T5ebY9=6V!U3m~;z;J*^>IY5XIHyc3TC3KV$(`lvVMIXp0}ppD)*-Xc zd`wdtCAOBj2L0d}E#oC9c;x?Jh6dm8B~Aku&iL+wR{~-kzf6sl`0K4eF@N?oElJ)z z-6^_aX1++Ot~|I$(x3TBn8~f!3Fxz*DVX^Zpz)nLCEj+@$Rn$xKd#*z65}jq$f`st zcl7k|kjE)jLy!;pXT&LC*PfgqHH}$ADlbnJ5r!OP*u-9U$!`6WdnB>%LWRL$R~(!b z^k^0?YVqa#OYQ0L2Dcb5dnz?TzFw-%Z(&s(j+}xO<`!H7tAiQ;UyZG*>K{y+zw3ZR zS)vqgZ^K)_M1?CEUc(YDe@xdH?hCo~x0nD)?p5wF5WnRo&6k98UlM@BygUm?I`F+k zr{V%LUYVRBhma{)IAyAB+A$Tz%Ct!289l2!u@{;-x1~|wj}GP|m?&`IKB|Y2A$Kv$Nq6zjR6-Sb8gKMg(|haV-zjNfi_4lz~RWXI}=&W}?T0^L!uMx<%t}vvq-M!(+UQ>%B zLtwyFTj?nD1;0ET&+hB(v>PfZ*c2-{LN5{(Ge&R~04o`OXT8jAvjZC$oCVldJ?`&f zYV?bo7=84Jbqh`W53Rvy21%Hg=Q18I<&bSzkjSgue=D!!0Qn~`?w#7)b?iHTw)0UY&yyB%j13CZwars-Kq+hi+hs-PCiBRtWSb zd$#JW^taPryqvwfExn)?(N^KLc4`J%y8g6mJ3%s@OqBqgx?#NI<-!Gy{bi_Wp1q^I z#E#N7b8>Jk_jbFU-VWQ&k(CPwb~M8ON%~Jr{r7@Pj=YgNHg@XQQtzwox$n|U9o#o8 zObt<0jhjyPa?+VLy|wUKb3n+4;iw<0f_CHjU-jJV&xS{!-m!}mhM@7?q_;2b;N^uv zGzZ}!Ma{7}X;9Fkpg0I-4i4X~lqMeRdN=nD;T^wMC+D7og#fW+eK+q$swYVSWbc4l z_R$p&%0Q$0A+b@8K5%Ersn*8lXPfqibalLN{gK@#$0Dc%JpWQ;T1byG6ltX#r989s zSpSR{jba?cO1N<^$yvCpTSVkDs|{MqC^8!JM*ULw{ckc(ntVVZz*1~8=A^^^a%u9z z`bYV{1|&Kfa2XqmjyxRau+jb^If8&$?-hP^aB+K><2PBO5T1@Bh)n>uBxoQ+Ysn(V z_6_`Kn|sl{5aGnG>9(el!>wQ2DQ}jnmB6xb9S$kPdZ!fk$-^=Poi)~_@M219PNFcw z<}a>~D$ZD6Kb`J#eT{6;ch8nRrX9$}BE`pV*~sMTfu@3n;1YKCtNdWqJeR7|1WwZY z_(pSVW!9D=%JcyP@!&`EOpVakb z*(axSMJ1vs3vuQ{zJ`VuK7Ce`(=7V15bvCNFd_~O0LZDW)dQ@~`M&+thUaBQ}GCr=fgw8rT6{gd-UEdd_6p(|iu2K(K77sM_ z2p0l{!ezHZ7tQd0cE?~N6*&xeV?njBn$Se>6qD?VMe)_t-z=5gXN!EgG-^P_bskM_ zm|3yC8tUqDXIq{=d455{9x*|2;7FyRr$bD)Gp@U_45Fh9_b6B)%kywa+|CYQUbthC z)-Gj`EE$B*t+Fi2oU;%E9Mc}|xFAIwN?4H+0F|2hgEPHXF&Z`tdeX8i1D=Ow#u1SH zjS=f<+>}NZc}|nRj28m?%W~|?B#r04E)``gRpZ!=)Q)_ml`*U3frKYBdW*,.page-glass .page-grid>*,.page-glass .section-card,.page-glass .glass,.page-glass .glass-card{background:#ffffffb8;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.16);box-shadow:0 14px 38px #0f172a1a;border-radius:18px} diff --git a/frontend/dist/assets/index-DfTZCsJJ.js b/frontend/dist/assets/index-DfTZCsJJ.js new file mode 100644 index 0000000..539814e --- /dev/null +++ b/frontend/dist/assets/index-DfTZCsJJ.js @@ -0,0 +1,1818 @@ +function zp(e,t){for(var n=0;ni[s]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))i(s);new MutationObserver(s=>{for(const a of s)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const a={};return s.integrity&&(a.integrity=s.integrity),s.referrerPolicy&&(a.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?a.credentials="include":s.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function i(s){if(s.ep)return;s.ep=!0;const a=n(s);fetch(s.href,a)}})();function Bp(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Tp={exports:{}},wo={},Pp={exports:{}},xe={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var zs=Symbol.for("react.element"),Xv=Symbol.for("react.portal"),Qv=Symbol.for("react.fragment"),Zv=Symbol.for("react.strict_mode"),Yv=Symbol.for("react.profiler"),Jv=Symbol.for("react.provider"),eb=Symbol.for("react.context"),tb=Symbol.for("react.forward_ref"),nb=Symbol.for("react.suspense"),rb=Symbol.for("react.memo"),ib=Symbol.for("react.lazy"),Wd=Symbol.iterator;function sb(e){return e===null||typeof e!="object"?null:(e=Wd&&e[Wd]||e["@@iterator"],typeof e=="function"?e:null)}var Ep={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Dp=Object.assign,Ap={};function gi(e,t,n){this.props=e,this.context=t,this.refs=Ap,this.updater=n||Ep}gi.prototype.isReactComponent={};gi.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};gi.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Rp(){}Rp.prototype=gi.prototype;function Du(e,t,n){this.props=e,this.context=t,this.refs=Ap,this.updater=n||Ep}var Au=Du.prototype=new Rp;Au.constructor=Du;Dp(Au,gi.prototype);Au.isPureReactComponent=!0;var Gd=Array.isArray,Op=Object.prototype.hasOwnProperty,Ru={current:null},Ip={key:!0,ref:!0,__self:!0,__source:!0};function Lp(e,t,n){var i,s={},a=null,o=null;if(t!=null)for(i in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(a=""+t.key),t)Op.call(t,i)&&!Ip.hasOwnProperty(i)&&(s[i]=t[i]);var l=arguments.length-2;if(l===1)s.children=n;else if(1>>1,J=R[ae];if(0>>1;aes(ee,X))les(ge,ee)?(R[ae]=ge,R[le]=X,ae=le):(R[ae]=ee,R[pe]=X,ae=pe);else if(les(ge,X))R[ae]=ge,R[le]=X,ae=le;else break e}}return K}function s(R,K){var X=R.sortIndex-K.sortIndex;return X!==0?X:R.id-K.id}if(typeof performance=="object"&&typeof performance.now=="function"){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,l=o.now();e.unstable_now=function(){return o.now()-l}}var c=[],u=[],m=1,d=null,h=3,x=!1,g=!1,p=!1,w=typeof setTimeout=="function"?setTimeout:null,b=typeof clearTimeout=="function"?clearTimeout:null,v=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(R){for(var K=n(u);K!==null;){if(K.callback===null)i(u);else if(K.startTime<=R)i(u),K.sortIndex=K.expirationTime,t(c,K);else break;K=n(u)}}function j(R){if(p=!1,y(R),!g)if(n(c)!==null)g=!0,$(k);else{var K=n(u);K!==null&&Z(j,K.startTime-R)}}function k(R,K){g=!1,p&&(p=!1,b(S),S=-1),x=!0;var X=h;try{for(y(K),d=n(c);d!==null&&(!(d.expirationTime>K)||R&&!F());){var ae=d.callback;if(typeof ae=="function"){d.callback=null,h=d.priorityLevel;var J=ae(d.expirationTime<=K);K=e.unstable_now(),typeof J=="function"?d.callback=J:d===n(c)&&i(c),y(K)}else i(c);d=n(c)}if(d!==null)var ue=!0;else{var pe=n(u);pe!==null&&Z(j,pe.startTime-K),ue=!1}return ue}finally{d=null,h=X,x=!1}}var N=!1,_=null,S=-1,P=5,D=-1;function F(){return!(e.unstable_now()-DR||125ae?(R.sortIndex=X,t(u,R),n(c)===null&&R===n(u)&&(p?(b(S),S=-1):p=!0,Z(j,X-ae))):(R.sortIndex=J,t(c,R),g||x||(g=!0,$(k))),R},e.unstable_shouldYield=F,e.unstable_wrapCallback=function(R){var K=h;return function(){var X=h;h=K;try{return R.apply(this,arguments)}finally{h=X}}}})(Up);Vp.exports=Up;var xc=Vp.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var vb=f,St=xc;function W(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),vc=Object.prototype.hasOwnProperty,bb=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Qd={},Zd={};function yb(e){return vc.call(Zd,e)?!0:vc.call(Qd,e)?!1:bb.test(e)?Zd[e]=!0:(Qd[e]=!0,!1)}function jb(e,t,n,i){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return i?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function _b(e,t,n,i){if(t===null||typeof t>"u"||jb(e,t,n,i))return!0;if(i)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function dt(e,t,n,i,s,a,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=i,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=o}var nt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){nt[e]=new dt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];nt[t]=new dt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){nt[e]=new dt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){nt[e]=new dt(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){nt[e]=new dt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){nt[e]=new dt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){nt[e]=new dt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){nt[e]=new dt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){nt[e]=new dt(e,5,!1,e.toLowerCase(),null,!1,!1)});var Iu=/[\-:]([a-z])/g;function Lu(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Iu,Lu);nt[t]=new dt(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Iu,Lu);nt[t]=new dt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Iu,Lu);nt[t]=new dt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){nt[e]=new dt(e,1,!1,e.toLowerCase(),null,!1,!1)});nt.xlinkHref=new dt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){nt[e]=new dt(e,1,!1,e.toLowerCase(),null,!0,!0)});function Mu(e,t,n,i){var s=nt.hasOwnProperty(t)?nt[t]:null;(s!==null?s.type!==0:i||!(2l||s[o]!==a[l]){var c=` +`+s[o].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}while(1<=o&&0<=l);break}}}finally{al=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Fi(e):""}function wb(e){switch(e.tag){case 5:return Fi(e.type);case 16:return Fi("Lazy");case 13:return Fi("Suspense");case 19:return Fi("SuspenseList");case 0:case 2:case 15:return e=ol(e.type,!1),e;case 11:return e=ol(e.type.render,!1),e;case 1:return e=ol(e.type,!0),e;default:return""}}function _c(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Ar:return"Fragment";case Dr:return"Portal";case bc:return"Profiler";case Fu:return"StrictMode";case yc:return"Suspense";case jc:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Wp:return(e.displayName||"Context")+".Consumer";case Kp:return(e._context.displayName||"Context")+".Provider";case $u:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case qu:return t=e.displayName||null,t!==null?t:_c(e.type)||"Memo";case An:t=e._payload,e=e._init;try{return _c(e(t))}catch{}}return null}function kb(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return _c(t);case 8:return t===Fu?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function er(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Xp(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Sb(e){var t=Xp(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),i=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var s=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(o){i=""+o,a.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return i},setValue:function(o){i=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Gs(e){e._valueTracker||(e._valueTracker=Sb(e))}function Qp(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),i="";return e&&(i=Xp(e)?e.checked?"true":"false":e.value),e=i,e!==n?(t.setValue(e),!0):!1}function $a(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function wc(e,t){var n=t.checked;return Le({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Jd(e,t){var n=t.defaultValue==null?"":t.defaultValue,i=t.checked!=null?t.checked:t.defaultChecked;n=er(t.value!=null?t.value:n),e._wrapperState={initialChecked:i,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Zp(e,t){t=t.checked,t!=null&&Mu(e,"checked",t,!1)}function kc(e,t){Zp(e,t);var n=er(t.value),i=t.type;if(n!=null)i==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(i==="submit"||i==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Sc(e,t.type,n):t.hasOwnProperty("defaultValue")&&Sc(e,t.type,er(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function ef(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var i=t.type;if(!(i!=="submit"&&i!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Sc(e,t,n){(t!=="number"||$a(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var $i=Array.isArray;function Gr(e,t,n,i){if(e=e.options,t){t={};for(var s=0;s"+t.valueOf().toString()+"",t=Xs.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function is(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Hi={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Nb=["Webkit","ms","Moz","O"];Object.keys(Hi).forEach(function(e){Nb.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Hi[t]=Hi[e]})});function th(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Hi.hasOwnProperty(e)&&Hi[e]?(""+t).trim():t+"px"}function nh(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var i=n.indexOf("--")===0,s=th(n,t[n],i);n==="float"&&(n="cssFloat"),i?e.setProperty(n,s):e[n]=s}}var Cb=Le({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function zc(e,t){if(t){if(Cb[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(W(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(W(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(W(61))}if(t.style!=null&&typeof t.style!="object")throw Error(W(62))}}function Bc(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Tc=null;function Vu(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Pc=null,Xr=null,Qr=null;function rf(e){if(e=Ps(e)){if(typeof Pc!="function")throw Error(W(280));var t=e.stateNode;t&&(t=zo(t),Pc(e.stateNode,e.type,t))}}function rh(e){Xr?Qr?Qr.push(e):Qr=[e]:Xr=e}function ih(){if(Xr){var e=Xr,t=Qr;if(Qr=Xr=null,rf(e),t)for(e=0;e>>=0,e===0?32:31-(Lb(e)/Mb|0)|0}var Qs=64,Zs=4194304;function qi(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Ha(e,t){var n=e.pendingLanes;if(n===0)return 0;var i=0,s=e.suspendedLanes,a=e.pingedLanes,o=n&268435455;if(o!==0){var l=o&~s;l!==0?i=qi(l):(a&=o,a!==0&&(i=qi(a)))}else o=n&~s,o!==0?i=qi(o):a!==0&&(i=qi(a));if(i===0)return 0;if(t!==0&&t!==i&&!(t&s)&&(s=i&-i,a=t&-t,s>=a||s===16&&(a&4194240)!==0))return t;if(i&4&&(i|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=i;0n;n++)t.push(e);return t}function Bs(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Gt(t),e[t]=n}function Vb(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var i=e.eventTimes;for(e=e.expirationTimes;0=Wi),mf=" ",pf=!1;function kh(e,t){switch(e){case"keyup":return xy.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Sh(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Rr=!1;function by(e,t){switch(e){case"compositionend":return Sh(t);case"keypress":return t.which!==32?null:(pf=!0,mf);case"textInput":return e=t.data,e===mf&&pf?null:e;default:return null}}function yy(e,t){if(Rr)return e==="compositionend"||!Zu&&kh(e,t)?(e=_h(),Na=Gu=Ln=null,Rr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=i}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=vf(n)}}function Bh(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Bh(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Th(){for(var e=window,t=$a();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=$a(e.document)}return t}function Yu(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function By(e){var t=Th(),n=e.focusedElem,i=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Bh(n.ownerDocument.documentElement,n)){if(i!==null&&Yu(n)){if(t=i.start,e=i.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var s=n.textContent.length,a=Math.min(i.start,s);i=i.end===void 0?a:Math.min(i.end,s),!e.extend&&a>i&&(s=i,i=a,a=s),s=bf(n,a);var o=bf(n,i);s&&o&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),a>i?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,Or=null,Ic=null,Xi=null,Lc=!1;function yf(e,t,n){var i=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Lc||Or==null||Or!==$a(i)||(i=Or,"selectionStart"in i&&Yu(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),Xi&&us(Xi,i)||(Xi=i,i=Ga(Ic,"onSelect"),0Mr||(e.current=Uc[Mr],Uc[Mr]=null,Mr--)}function Ce(e,t){Mr++,Uc[Mr]=e.current,e.current=t}var tr={},ot=sr(tr),ht=sr(!1),yr=tr;function ri(e,t){var n=e.type.contextTypes;if(!n)return tr;var i=e.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===t)return i.__reactInternalMemoizedMaskedChildContext;var s={},a;for(a in n)s[a]=t[a];return i&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function gt(e){return e=e.childContextTypes,e!=null}function Qa(){Te(ht),Te(ot)}function Cf(e,t,n){if(ot.current!==tr)throw Error(W(168));Ce(ot,t),Ce(ht,n)}function Mh(e,t,n){var i=e.stateNode;if(t=t.childContextTypes,typeof i.getChildContext!="function")return n;i=i.getChildContext();for(var s in i)if(!(s in t))throw Error(W(108,kb(e)||"Unknown",s));return Le({},n,i)}function Za(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||tr,yr=ot.current,Ce(ot,e),Ce(ht,ht.current),!0}function zf(e,t,n){var i=e.stateNode;if(!i)throw Error(W(169));n?(e=Mh(e,t,yr),i.__reactInternalMemoizedMergedChildContext=e,Te(ht),Te(ot),Ce(ot,e)):Te(ht),Ce(ht,n)}var hn=null,Bo=!1,jl=!1;function Fh(e){hn===null?hn=[e]:hn.push(e)}function $y(e){Bo=!0,Fh(e)}function ar(){if(!jl&&hn!==null){jl=!0;var e=0,t=we;try{var n=hn;for(we=1;e>=o,s-=o,gn=1<<32-Gt(t)+s|n<S?(P=_,_=null):P=_.sibling;var D=h(b,_,y[S],j);if(D===null){_===null&&(_=P);break}e&&_&&D.alternate===null&&t(b,_),v=a(D,v,S),N===null?k=D:N.sibling=D,N=D,_=P}if(S===y.length)return n(b,_),De&&cr(b,S),k;if(_===null){for(;SS?(P=_,_=null):P=_.sibling;var F=h(b,_,D.value,j);if(F===null){_===null&&(_=P);break}e&&_&&F.alternate===null&&t(b,_),v=a(F,v,S),N===null?k=F:N.sibling=F,N=F,_=P}if(D.done)return n(b,_),De&&cr(b,S),k;if(_===null){for(;!D.done;S++,D=y.next())D=d(b,D.value,j),D!==null&&(v=a(D,v,S),N===null?k=D:N.sibling=D,N=D);return De&&cr(b,S),k}for(_=i(b,_);!D.done;S++,D=y.next())D=x(_,b,S,D.value,j),D!==null&&(e&&D.alternate!==null&&_.delete(D.key===null?S:D.key),v=a(D,v,S),N===null?k=D:N.sibling=D,N=D);return e&&_.forEach(function(T){return t(b,T)}),De&&cr(b,S),k}function w(b,v,y,j){if(typeof y=="object"&&y!==null&&y.type===Ar&&y.key===null&&(y=y.props.children),typeof y=="object"&&y!==null){switch(y.$$typeof){case Ws:e:{for(var k=y.key,N=v;N!==null;){if(N.key===k){if(k=y.type,k===Ar){if(N.tag===7){n(b,N.sibling),v=s(N,y.props.children),v.return=b,b=v;break e}}else if(N.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===An&&Pf(k)===N.type){n(b,N.sibling),v=s(N,y.props),v.ref=Di(b,N,y),v.return=b,b=v;break e}n(b,N);break}else t(b,N);N=N.sibling}y.type===Ar?(v=xr(y.props.children,b.mode,j,y.key),v.return=b,b=v):(j=Aa(y.type,y.key,y.props,null,b.mode,j),j.ref=Di(b,v,y),j.return=b,b=j)}return o(b);case Dr:e:{for(N=y.key;v!==null;){if(v.key===N)if(v.tag===4&&v.stateNode.containerInfo===y.containerInfo&&v.stateNode.implementation===y.implementation){n(b,v.sibling),v=s(v,y.children||[]),v.return=b,b=v;break e}else{n(b,v);break}else t(b,v);v=v.sibling}v=Bl(y,b.mode,j),v.return=b,b=v}return o(b);case An:return N=y._init,w(b,v,N(y._payload),j)}if($i(y))return g(b,v,y,j);if(zi(y))return p(b,v,y,j);ia(b,y)}return typeof y=="string"&&y!==""||typeof y=="number"?(y=""+y,v!==null&&v.tag===6?(n(b,v.sibling),v=s(v,y),v.return=b,b=v):(n(b,v),v=zl(y,b.mode,j),v.return=b,b=v),o(b)):n(b,v)}return w}var si=Uh(!0),Hh=Uh(!1),eo=sr(null),to=null,qr=null,nd=null;function rd(){nd=qr=to=null}function id(e){var t=eo.current;Te(eo),e._currentValue=t}function Wc(e,t,n){for(;e!==null;){var i=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,i!==null&&(i.childLanes|=t)):i!==null&&(i.childLanes&t)!==t&&(i.childLanes|=t),e===n)break;e=e.return}}function Yr(e,t){to=e,nd=qr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(pt=!0),e.firstContext=null)}function Lt(e){var t=e._currentValue;if(nd!==e)if(e={context:e,memoizedValue:t,next:null},qr===null){if(to===null)throw Error(W(308));qr=e,to.dependencies={lanes:0,firstContext:e}}else qr=qr.next=e;return t}var mr=null;function sd(e){mr===null?mr=[e]:mr.push(e)}function Kh(e,t,n,i){var s=t.interleaved;return s===null?(n.next=n,sd(t)):(n.next=s.next,s.next=n),t.interleaved=n,jn(e,i)}function jn(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Rn=!1;function ad(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Wh(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function vn(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Wn(e,t,n){var i=e.updateQueue;if(i===null)return null;if(i=i.shared,be&2){var s=i.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),i.pending=t,jn(e,n)}return s=i.interleaved,s===null?(t.next=t,sd(i)):(t.next=s.next,s.next=t),i.interleaved=t,jn(e,n)}function za(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var i=t.lanes;i&=e.pendingLanes,n|=i,t.lanes=n,Hu(e,n)}}function Ef(e,t){var n=e.updateQueue,i=e.alternate;if(i!==null&&(i=i.updateQueue,n===i)){var s=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};a===null?s=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?s=a=t:a=a.next=t}else s=a=t;n={baseState:i.baseState,firstBaseUpdate:s,lastBaseUpdate:a,shared:i.shared,effects:i.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function no(e,t,n,i){var s=e.updateQueue;Rn=!1;var a=s.firstBaseUpdate,o=s.lastBaseUpdate,l=s.shared.pending;if(l!==null){s.shared.pending=null;var c=l,u=c.next;c.next=null,o===null?a=u:o.next=u,o=c;var m=e.alternate;m!==null&&(m=m.updateQueue,l=m.lastBaseUpdate,l!==o&&(l===null?m.firstBaseUpdate=u:l.next=u,m.lastBaseUpdate=c))}if(a!==null){var d=s.baseState;o=0,m=u=c=null,l=a;do{var h=l.lane,x=l.eventTime;if((i&h)===h){m!==null&&(m=m.next={eventTime:x,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var g=e,p=l;switch(h=t,x=n,p.tag){case 1:if(g=p.payload,typeof g=="function"){d=g.call(x,d,h);break e}d=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=p.payload,h=typeof g=="function"?g.call(x,d,h):g,h==null)break e;d=Le({},d,h);break e;case 2:Rn=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,h=s.effects,h===null?s.effects=[l]:h.push(l))}else x={eventTime:x,lane:h,tag:l.tag,payload:l.payload,callback:l.callback,next:null},m===null?(u=m=x,c=d):m=m.next=x,o|=h;if(l=l.next,l===null){if(l=s.shared.pending,l===null)break;h=l,l=h.next,h.next=null,s.lastBaseUpdate=h,s.shared.pending=null}}while(!0);if(m===null&&(c=d),s.baseState=c,s.firstBaseUpdate=u,s.lastBaseUpdate=m,t=s.shared.interleaved,t!==null){s=t;do o|=s.lane,s=s.next;while(s!==t)}else a===null&&(s.shared.lanes=0);wr|=o,e.lanes=o,e.memoizedState=d}}function Df(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var i=wl.transition;wl.transition={};try{e(!1),t()}finally{we=n,wl.transition=i}}function ug(){return Mt().memoizedState}function Hy(e,t,n){var i=Xn(e);if(n={lane:i,action:n,hasEagerState:!1,eagerState:null,next:null},dg(e))fg(t,n);else if(n=Kh(e,t,n,i),n!==null){var s=ct();Xt(n,e,i,s),mg(n,t,i)}}function Ky(e,t,n){var i=Xn(e),s={lane:i,action:n,hasEagerState:!1,eagerState:null,next:null};if(dg(e))fg(t,s);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,l=a(o,n);if(s.hasEagerState=!0,s.eagerState=l,Qt(l,o)){var c=t.interleaved;c===null?(s.next=s,sd(t)):(s.next=c.next,c.next=s),t.interleaved=s;return}}catch{}finally{}n=Kh(e,t,s,i),n!==null&&(s=ct(),Xt(n,e,i,s),mg(n,t,i))}}function dg(e){var t=e.alternate;return e===Oe||t!==null&&t===Oe}function fg(e,t){Qi=io=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function mg(e,t,n){if(n&4194240){var i=t.lanes;i&=e.pendingLanes,n|=i,t.lanes=n,Hu(e,n)}}var so={readContext:Lt,useCallback:rt,useContext:rt,useEffect:rt,useImperativeHandle:rt,useInsertionEffect:rt,useLayoutEffect:rt,useMemo:rt,useReducer:rt,useRef:rt,useState:rt,useDebugValue:rt,useDeferredValue:rt,useTransition:rt,useMutableSource:rt,useSyncExternalStore:rt,useId:rt,unstable_isNewReconciler:!1},Wy={readContext:Lt,useCallback:function(e,t){return nn().memoizedState=[e,t===void 0?null:t],e},useContext:Lt,useEffect:Rf,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Ta(4194308,4,sg.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ta(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ta(4,2,e,t)},useMemo:function(e,t){var n=nn();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var i=nn();return t=n!==void 0?n(t):t,i.memoizedState=i.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},i.queue=e,e=e.dispatch=Hy.bind(null,Oe,e),[i.memoizedState,e]},useRef:function(e){var t=nn();return e={current:e},t.memoizedState=e},useState:Af,useDebugValue:pd,useDeferredValue:function(e){return nn().memoizedState=e},useTransition:function(){var e=Af(!1),t=e[0];return e=Uy.bind(null,e[1]),nn().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var i=Oe,s=nn();if(De){if(n===void 0)throw Error(W(407));n=n()}else{if(n=t(),Ze===null)throw Error(W(349));_r&30||Zh(i,t,n)}s.memoizedState=n;var a={value:n,getSnapshot:t};return s.queue=a,Rf(Jh.bind(null,i,a,e),[e]),i.flags|=2048,vs(9,Yh.bind(null,i,a,n,t),void 0,null),n},useId:function(){var e=nn(),t=Ze.identifierPrefix;if(De){var n=xn,i=gn;n=(i&~(1<<32-Gt(i)-1)).toString(32)+n,t=":"+t+"R"+n,n=gs++,0<\/script>",e=e.removeChild(e.firstChild)):typeof i.is=="string"?e=o.createElement(n,{is:i.is}):(e=o.createElement(n),n==="select"&&(o=e,i.multiple?o.multiple=!0:i.size&&(o.size=i.size))):e=o.createElementNS(e,n),e[rn]=t,e[ms]=i,wg(e,t,!1,!1),t.stateNode=e;e:{switch(o=Bc(n,i),n){case"dialog":Be("cancel",e),Be("close",e),s=i;break;case"iframe":case"object":case"embed":Be("load",e),s=i;break;case"video":case"audio":for(s=0;sli&&(t.flags|=128,i=!0,Ai(a,!1),t.lanes=4194304)}else{if(!i)if(e=ro(o),e!==null){if(t.flags|=128,i=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Ai(a,!0),a.tail===null&&a.tailMode==="hidden"&&!o.alternate&&!De)return it(t),null}else 2*$e()-a.renderingStartTime>li&&n!==1073741824&&(t.flags|=128,i=!0,Ai(a,!1),t.lanes=4194304);a.isBackwards?(o.sibling=t.child,t.child=o):(n=a.last,n!==null?n.sibling=o:t.child=o,a.last=o)}return a.tail!==null?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=$e(),t.sibling=null,n=Ae.current,Ce(Ae,i?n&1|2:n&1),t):(it(t),null);case 22:case 23:return yd(),i=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==i&&(t.flags|=8192),i&&t.mode&1?bt&1073741824&&(it(t),t.subtreeFlags&6&&(t.flags|=8192)):it(t),null;case 24:return null;case 25:return null}throw Error(W(156,t.tag))}function t0(e,t){switch(ed(t),t.tag){case 1:return gt(t.type)&&Qa(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ai(),Te(ht),Te(ot),cd(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return ld(t),null;case 13:if(Te(Ae),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(W(340));ii()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Te(Ae),null;case 4:return ai(),null;case 10:return id(t.type._context),null;case 22:case 23:return yd(),null;case 24:return null;default:return null}}var aa=!1,st=!1,n0=typeof WeakSet=="function"?WeakSet:Set,ie=null;function Vr(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(i){Fe(e,t,i)}else n.current=null}function nu(e,t,n){try{n()}catch(i){Fe(e,t,i)}}var Kf=!1;function r0(e,t){if(Mc=Ka,e=Th(),Yu(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var i=n.getSelection&&n.getSelection();if(i&&i.rangeCount!==0){n=i.anchorNode;var s=i.anchorOffset,a=i.focusNode;i=i.focusOffset;try{n.nodeType,a.nodeType}catch{n=null;break e}var o=0,l=-1,c=-1,u=0,m=0,d=e,h=null;t:for(;;){for(var x;d!==n||s!==0&&d.nodeType!==3||(l=o+s),d!==a||i!==0&&d.nodeType!==3||(c=o+i),d.nodeType===3&&(o+=d.nodeValue.length),(x=d.firstChild)!==null;)h=d,d=x;for(;;){if(d===e)break t;if(h===n&&++u===s&&(l=o),h===a&&++m===i&&(c=o),(x=d.nextSibling)!==null)break;d=h,h=d.parentNode}d=x}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(Fc={focusedElem:e,selectionRange:n},Ka=!1,ie=t;ie!==null;)if(t=ie,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ie=e;else for(;ie!==null;){t=ie;try{var g=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var p=g.memoizedProps,w=g.memoizedState,b=t.stateNode,v=b.getSnapshotBeforeUpdate(t.elementType===t.type?p:Vt(t.type,p),w);b.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var y=t.stateNode.containerInfo;y.nodeType===1?y.textContent="":y.nodeType===9&&y.documentElement&&y.removeChild(y.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(W(163))}}catch(j){Fe(t,t.return,j)}if(e=t.sibling,e!==null){e.return=t.return,ie=e;break}ie=t.return}return g=Kf,Kf=!1,g}function Zi(e,t,n){var i=t.updateQueue;if(i=i!==null?i.lastEffect:null,i!==null){var s=i=i.next;do{if((s.tag&e)===e){var a=s.destroy;s.destroy=void 0,a!==void 0&&nu(t,n,a)}s=s.next}while(s!==i)}}function Eo(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var i=n.create;n.destroy=i()}n=n.next}while(n!==t)}}function ru(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Ng(e){var t=e.alternate;t!==null&&(e.alternate=null,Ng(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[rn],delete t[ms],delete t[Vc],delete t[My],delete t[Fy])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Cg(e){return e.tag===5||e.tag===3||e.tag===4}function Wf(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Cg(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function iu(e,t,n){var i=e.tag;if(i===5||i===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Xa));else if(i!==4&&(e=e.child,e!==null))for(iu(e,t,n),e=e.sibling;e!==null;)iu(e,t,n),e=e.sibling}function su(e,t,n){var i=e.tag;if(i===5||i===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(i!==4&&(e=e.child,e!==null))for(su(e,t,n),e=e.sibling;e!==null;)su(e,t,n),e=e.sibling}var Je=null,Ut=!1;function En(e,t,n){for(n=n.child;n!==null;)zg(e,t,n),n=n.sibling}function zg(e,t,n){if(on&&typeof on.onCommitFiberUnmount=="function")try{on.onCommitFiberUnmount(ko,n)}catch{}switch(n.tag){case 5:st||Vr(n,t);case 6:var i=Je,s=Ut;Je=null,En(e,t,n),Je=i,Ut=s,Je!==null&&(Ut?(e=Je,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Je.removeChild(n.stateNode));break;case 18:Je!==null&&(Ut?(e=Je,n=n.stateNode,e.nodeType===8?yl(e.parentNode,n):e.nodeType===1&&yl(e,n),ls(e)):yl(Je,n.stateNode));break;case 4:i=Je,s=Ut,Je=n.stateNode.containerInfo,Ut=!0,En(e,t,n),Je=i,Ut=s;break;case 0:case 11:case 14:case 15:if(!st&&(i=n.updateQueue,i!==null&&(i=i.lastEffect,i!==null))){s=i=i.next;do{var a=s,o=a.destroy;a=a.tag,o!==void 0&&(a&2||a&4)&&nu(n,t,o),s=s.next}while(s!==i)}En(e,t,n);break;case 1:if(!st&&(Vr(n,t),i=n.stateNode,typeof i.componentWillUnmount=="function"))try{i.props=n.memoizedProps,i.state=n.memoizedState,i.componentWillUnmount()}catch(l){Fe(n,t,l)}En(e,t,n);break;case 21:En(e,t,n);break;case 22:n.mode&1?(st=(i=st)||n.memoizedState!==null,En(e,t,n),st=i):En(e,t,n);break;default:En(e,t,n)}}function Gf(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new n0),t.forEach(function(i){var s=f0.bind(null,e,i);n.has(i)||(n.add(i),i.then(s,s))})}}function $t(e,t){var n=t.deletions;if(n!==null)for(var i=0;is&&(s=o),i&=~a}if(i=s,i=$e()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*s0(i/1960))-i,10e?16:e,Mn===null)var i=!1;else{if(e=Mn,Mn=null,lo=0,be&6)throw Error(W(331));var s=be;for(be|=4,ie=e.current;ie!==null;){var a=ie,o=a.child;if(ie.flags&16){var l=a.deletions;if(l!==null){for(var c=0;c$e()-vd?gr(e,0):xd|=n),xt(e,t)}function Og(e,t){t===0&&(e.mode&1?(t=Zs,Zs<<=1,!(Zs&130023424)&&(Zs=4194304)):t=1);var n=ct();e=jn(e,t),e!==null&&(Bs(e,t,n),xt(e,n))}function d0(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Og(e,n)}function f0(e,t){var n=0;switch(e.tag){case 13:var i=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:i=e.stateNode;break;default:throw Error(W(314))}i!==null&&i.delete(t),Og(e,n)}var Ig;Ig=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||ht.current)pt=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return pt=!1,Jy(e,t,n);pt=!!(e.flags&131072)}else pt=!1,De&&t.flags&1048576&&$h(t,Ja,t.index);switch(t.lanes=0,t.tag){case 2:var i=t.type;Pa(e,t),e=t.pendingProps;var s=ri(t,ot.current);Yr(t,n),s=dd(null,t,i,e,s,n);var a=fd();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,gt(i)?(a=!0,Za(t)):a=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,ad(t),s.updater=Po,t.stateNode=s,s._reactInternals=t,Xc(t,i,e,n),t=Yc(null,t,i,!0,a,n)):(t.tag=0,De&&a&&Ju(t),lt(null,t,s,n),t=t.child),t;case 16:i=t.elementType;e:{switch(Pa(e,t),e=t.pendingProps,s=i._init,i=s(i._payload),t.type=i,s=t.tag=p0(i),e=Vt(i,e),s){case 0:t=Zc(null,t,i,e,n);break e;case 1:t=Vf(null,t,i,e,n);break e;case 11:t=$f(null,t,i,e,n);break e;case 14:t=qf(null,t,i,Vt(i.type,e),n);break e}throw Error(W(306,i,""))}return t;case 0:return i=t.type,s=t.pendingProps,s=t.elementType===i?s:Vt(i,s),Zc(e,t,i,s,n);case 1:return i=t.type,s=t.pendingProps,s=t.elementType===i?s:Vt(i,s),Vf(e,t,i,s,n);case 3:e:{if(yg(t),e===null)throw Error(W(387));i=t.pendingProps,a=t.memoizedState,s=a.element,Wh(e,t),no(t,i,null,n);var o=t.memoizedState;if(i=o.element,a.isDehydrated)if(a={element:i,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=a,t.memoizedState=a,t.flags&256){s=oi(Error(W(423)),t),t=Uf(e,t,i,n,s);break e}else if(i!==s){s=oi(Error(W(424)),t),t=Uf(e,t,i,n,s);break e}else for(_t=Kn(t.stateNode.containerInfo.firstChild),wt=t,De=!0,Kt=null,n=Hh(t,null,i,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(ii(),i===s){t=_n(e,t,n);break e}lt(e,t,i,n)}t=t.child}return t;case 5:return Gh(t),e===null&&Kc(t),i=t.type,s=t.pendingProps,a=e!==null?e.memoizedProps:null,o=s.children,$c(i,s)?o=null:a!==null&&$c(i,a)&&(t.flags|=32),bg(e,t),lt(e,t,o,n),t.child;case 6:return e===null&&Kc(t),null;case 13:return jg(e,t,n);case 4:return od(t,t.stateNode.containerInfo),i=t.pendingProps,e===null?t.child=si(t,null,i,n):lt(e,t,i,n),t.child;case 11:return i=t.type,s=t.pendingProps,s=t.elementType===i?s:Vt(i,s),$f(e,t,i,s,n);case 7:return lt(e,t,t.pendingProps,n),t.child;case 8:return lt(e,t,t.pendingProps.children,n),t.child;case 12:return lt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(i=t.type._context,s=t.pendingProps,a=t.memoizedProps,o=s.value,Ce(eo,i._currentValue),i._currentValue=o,a!==null)if(Qt(a.value,o)){if(a.children===s.children&&!ht.current){t=_n(e,t,n);break e}}else for(a=t.child,a!==null&&(a.return=t);a!==null;){var l=a.dependencies;if(l!==null){o=a.child;for(var c=l.firstContext;c!==null;){if(c.context===i){if(a.tag===1){c=vn(-1,n&-n),c.tag=2;var u=a.updateQueue;if(u!==null){u=u.shared;var m=u.pending;m===null?c.next=c:(c.next=m.next,m.next=c),u.pending=c}}a.lanes|=n,c=a.alternate,c!==null&&(c.lanes|=n),Wc(a.return,n,t),l.lanes|=n;break}c=c.next}}else if(a.tag===10)o=a.type===t.type?null:a.child;else if(a.tag===18){if(o=a.return,o===null)throw Error(W(341));o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),Wc(o,n,t),o=a.sibling}else o=a.child;if(o!==null)o.return=a;else for(o=a;o!==null;){if(o===t){o=null;break}if(a=o.sibling,a!==null){a.return=o.return,o=a;break}o=o.return}a=o}lt(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,i=t.pendingProps.children,Yr(t,n),s=Lt(s),i=i(s),t.flags|=1,lt(e,t,i,n),t.child;case 14:return i=t.type,s=Vt(i,t.pendingProps),s=Vt(i.type,s),qf(e,t,i,s,n);case 15:return xg(e,t,t.type,t.pendingProps,n);case 17:return i=t.type,s=t.pendingProps,s=t.elementType===i?s:Vt(i,s),Pa(e,t),t.tag=1,gt(i)?(e=!0,Za(t)):e=!1,Yr(t,n),pg(t,i,s),Xc(t,i,s,n),Yc(null,t,i,!0,e,n);case 19:return _g(e,t,n);case 22:return vg(e,t,n)}throw Error(W(156,t.tag))};function Lg(e,t){return dh(e,t)}function m0(e,t,n,i){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Rt(e,t,n,i){return new m0(e,t,n,i)}function _d(e){return e=e.prototype,!(!e||!e.isReactComponent)}function p0(e){if(typeof e=="function")return _d(e)?1:0;if(e!=null){if(e=e.$$typeof,e===$u)return 11;if(e===qu)return 14}return 2}function Qn(e,t){var n=e.alternate;return n===null?(n=Rt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Aa(e,t,n,i,s,a){var o=2;if(i=e,typeof e=="function")_d(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Ar:return xr(n.children,s,a,t);case Fu:o=8,s|=8;break;case bc:return e=Rt(12,n,t,s|2),e.elementType=bc,e.lanes=a,e;case yc:return e=Rt(13,n,t,s),e.elementType=yc,e.lanes=a,e;case jc:return e=Rt(19,n,t,s),e.elementType=jc,e.lanes=a,e;case Gp:return Ao(n,s,a,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Kp:o=10;break e;case Wp:o=9;break e;case $u:o=11;break e;case qu:o=14;break e;case An:o=16,i=null;break e}throw Error(W(130,e==null?e:typeof e,""))}return t=Rt(o,n,t,s),t.elementType=e,t.type=i,t.lanes=a,t}function xr(e,t,n,i){return e=Rt(7,e,i,t),e.lanes=n,e}function Ao(e,t,n,i){return e=Rt(22,e,i,t),e.elementType=Gp,e.lanes=n,e.stateNode={isHidden:!1},e}function zl(e,t,n){return e=Rt(6,e,null,t),e.lanes=n,e}function Bl(e,t,n){return t=Rt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function h0(e,t,n,i,s){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=cl(0),this.expirationTimes=cl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=cl(0),this.identifierPrefix=i,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function wd(e,t,n,i,s,a,o,l,c){return e=new h0(e,t,n,l,c),t===1?(t=1,a===!0&&(t|=8)):t=0,a=Rt(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:i,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},ad(a),e}function g0(e,t,n){var i=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(qg)}catch(e){console.error(e)}}qg(),qp.exports=Ct;var fo=qp.exports,nm=fo;gc.createRoot=nm.createRoot,gc.hydrateRoot=nm.hydrateRoot;/** + * @remix-run/router v1.23.2 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function ys(){return ys=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function Cd(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function _0(){return Math.random().toString(36).substr(2,8)}function im(e,t){return{usr:e.state,key:e.key,idx:t}}function uu(e,t,n,i){return n===void 0&&(n=null),ys({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?bi(t):t,{state:n,key:t&&t.key||i||_0()})}function mo(e){let{pathname:t="/",search:n="",hash:i=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),i&&i!=="#"&&(t+=i.charAt(0)==="#"?i:"#"+i),t}function bi(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let i=e.indexOf("?");i>=0&&(t.search=e.substr(i),e=e.substr(0,i)),e&&(t.pathname=e)}return t}function w0(e,t,n,i){i===void 0&&(i={});let{window:s=document.defaultView,v5Compat:a=!1}=i,o=s.history,l=Fn.Pop,c=null,u=m();u==null&&(u=0,o.replaceState(ys({},o.state,{idx:u}),""));function m(){return(o.state||{idx:null}).idx}function d(){l=Fn.Pop;let w=m(),b=w==null?null:w-u;u=w,c&&c({action:l,location:p.location,delta:b})}function h(w,b){l=Fn.Push;let v=uu(p.location,w,b);u=m()+1;let y=im(v,u),j=p.createHref(v);try{o.pushState(y,"",j)}catch(k){if(k instanceof DOMException&&k.name==="DataCloneError")throw k;s.location.assign(j)}a&&c&&c({action:l,location:p.location,delta:1})}function x(w,b){l=Fn.Replace;let v=uu(p.location,w,b);u=m();let y=im(v,u),j=p.createHref(v);o.replaceState(y,"",j),a&&c&&c({action:l,location:p.location,delta:0})}function g(w){let b=s.location.origin!=="null"?s.location.origin:s.location.href,v=typeof w=="string"?w:mo(w);return v=v.replace(/ $/,"%20"),Ie(b,"No window.location.(origin|href) available to create URL for href: "+v),new URL(v,b)}let p={get action(){return l},get location(){return e(s,o)},listen(w){if(c)throw new Error("A history only accepts one active listener");return s.addEventListener(rm,d),c=w,()=>{s.removeEventListener(rm,d),c=null}},createHref(w){return t(s,w)},createURL:g,encodeLocation(w){let b=g(w);return{pathname:b.pathname,search:b.search,hash:b.hash}},push:h,replace:x,go(w){return o.go(w)}};return p}var sm;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(sm||(sm={}));function k0(e,t,n){return n===void 0&&(n="/"),S0(e,t,n)}function S0(e,t,n,i){let s=typeof t=="string"?bi(t):t,a=ci(s.pathname||"/",n);if(a==null)return null;let o=Vg(e);N0(o);let l=null;for(let c=0;l==null&&c{let c={relativePath:l===void 0?a.path||"":l,caseSensitive:a.caseSensitive===!0,childrenIndex:o,route:a};c.relativePath.startsWith("/")&&(Ie(c.relativePath.startsWith(i),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+i+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(i.length));let u=Zn([i,c.relativePath]),m=n.concat(c);a.children&&a.children.length>0&&(Ie(a.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),Vg(a.children,t,m,u)),!(a.path==null&&!a.index)&&t.push({path:u,score:D0(u,a.index),routesMeta:m})};return e.forEach((a,o)=>{var l;if(a.path===""||!((l=a.path)!=null&&l.includes("?")))s(a,o);else for(let c of Ug(a.path))s(a,o,c)}),t}function Ug(e){let t=e.split("/");if(t.length===0)return[];let[n,...i]=t,s=n.endsWith("?"),a=n.replace(/\?$/,"");if(i.length===0)return s?[a,""]:[a];let o=Ug(i.join("/")),l=[];return l.push(...o.map(c=>c===""?a:[a,c].join("/"))),s&&l.push(...o),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function N0(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:A0(t.routesMeta.map(i=>i.childrenIndex),n.routesMeta.map(i=>i.childrenIndex)))}const C0=/^:[\w-]+$/,z0=3,B0=2,T0=1,P0=10,E0=-2,am=e=>e==="*";function D0(e,t){let n=e.split("/"),i=n.length;return n.some(am)&&(i+=E0),t&&(i+=B0),n.filter(s=>!am(s)).reduce((s,a)=>s+(C0.test(a)?z0:a===""?T0:P0),i)}function A0(e,t){return e.length===t.length&&e.slice(0,-1).every((i,s)=>i===t[s])?e[e.length-1]-t[t.length-1]:0}function R0(e,t,n){let{routesMeta:i}=e,s={},a="/",o=[];for(let l=0;l{let{paramName:h,isOptional:x}=m;if(h==="*"){let p=l[d]||"";o=a.slice(0,a.length-p.length).replace(/(.)\/+$/,"$1")}const g=l[d];return x&&!g?u[h]=void 0:u[h]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:a,pathnameBase:o,pattern:e}}function O0(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),Cd(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let i=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,l,c)=>(i.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(i.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),i]}function I0(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Cd(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function ci(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,i=e.charAt(n);return i&&i!=="/"?null:e.slice(n)||"/"}const L0=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,M0=e=>L0.test(e);function F0(e,t){t===void 0&&(t="/");let{pathname:n,search:i="",hash:s=""}=typeof e=="string"?bi(e):e,a;if(n)if(M0(n))a=n;else{if(n.includes("//")){let o=n;n=n.replace(/\/\/+/g,"/"),Cd(!1,"Pathnames cannot have embedded double slashes - normalizing "+(o+" -> "+n))}n.startsWith("/")?a=om(n.substring(1),"/"):a=om(n,t)}else a=t;return{pathname:a,search:V0(i),hash:U0(s)}}function om(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function Tl(e,t,n,i){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(i)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function $0(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function zd(e,t){let n=$0(e);return t?n.map((i,s)=>s===n.length-1?i.pathname:i.pathnameBase):n.map(i=>i.pathnameBase)}function Bd(e,t,n,i){i===void 0&&(i=!1);let s;typeof e=="string"?s=bi(e):(s=ys({},e),Ie(!s.pathname||!s.pathname.includes("?"),Tl("?","pathname","search",s)),Ie(!s.pathname||!s.pathname.includes("#"),Tl("#","pathname","hash",s)),Ie(!s.search||!s.search.includes("#"),Tl("#","search","hash",s)));let a=e===""||s.pathname==="",o=a?"/":s.pathname,l;if(o==null)l=n;else{let d=t.length-1;if(!i&&o.startsWith("..")){let h=o.split("/");for(;h[0]==="..";)h.shift(),d-=1;s.pathname=h.join("/")}l=d>=0?t[d]:"/"}let c=F0(s,l),u=o&&o!=="/"&&o.endsWith("/"),m=(a||o===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||m)&&(c.pathname+="/"),c}const Zn=e=>e.join("/").replace(/\/\/+/g,"/"),q0=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),V0=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,U0=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function H0(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const Hg=["post","put","patch","delete"];new Set(Hg);const K0=["get",...Hg];new Set(K0);/** + * React Router v6.30.3 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function js(){return js=Object.assign?Object.assign.bind():function(e){for(var t=1;t{l.current=!0}),f.useCallback(function(u,m){if(m===void 0&&(m={}),!l.current)return;if(typeof u=="number"){i.go(u);return}let d=Bd(u,JSON.parse(o),a,m.relative==="path");e==null&&t!=="/"&&(d.pathname=d.pathname==="/"?t:Zn([t,d.pathname])),(m.replace?i.replace:i.push)(d,m.state,m)},[t,i,o,a,e])}function qo(e,t){let{relative:n}=t===void 0?{}:t,{future:i}=f.useContext(Cn),{matches:s}=f.useContext(or),{pathname:a}=Jt(),o=JSON.stringify(zd(s,i.v7_relativeSplatPath));return f.useMemo(()=>Bd(e,JSON.parse(o),a,n==="path"),[e,o,a,n])}function X0(e,t){return Q0(e,t)}function Q0(e,t,n,i){yi()||Ie(!1);let{navigator:s}=f.useContext(Cn),{matches:a}=f.useContext(or),o=a[a.length-1],l=o?o.params:{};o&&o.pathname;let c=o?o.pathnameBase:"/";o&&o.route;let u=Jt(),m;if(t){var d;let w=typeof t=="string"?bi(t):t;c==="/"||(d=w.pathname)!=null&&d.startsWith(c)||Ie(!1),m=w}else m=u;let h=m.pathname||"/",x=h;if(c!=="/"){let w=c.replace(/^\//,"").split("/");x="/"+h.replace(/^\//,"").split("/").slice(w.length).join("/")}let g=k0(e,{pathname:x}),p=t1(g&&g.map(w=>Object.assign({},w,{params:Object.assign({},l,w.params),pathname:Zn([c,s.encodeLocation?s.encodeLocation(w.pathname).pathname:w.pathname]),pathnameBase:w.pathnameBase==="/"?c:Zn([c,s.encodeLocation?s.encodeLocation(w.pathnameBase).pathname:w.pathnameBase])})),a,n,i);return t&&p?f.createElement(Fo.Provider,{value:{location:js({pathname:"/",search:"",hash:"",state:null,key:"default"},m),navigationType:Fn.Pop}},p):p}function Z0(){let e=s1(),t=H0(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,s={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return f.createElement(f.Fragment,null,f.createElement("h2",null,"Unexpected Application Error!"),f.createElement("h3",{style:{fontStyle:"italic"}},t),n?f.createElement("pre",{style:s},n):null,null)}const Y0=f.createElement(Z0,null);class J0 extends f.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?f.createElement(or.Provider,{value:this.props.routeContext},f.createElement(Wg.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function e1(e){let{routeContext:t,match:n,children:i}=e,s=f.useContext(Mo);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),f.createElement(or.Provider,{value:t},i)}function t1(e,t,n,i){var s;if(t===void 0&&(t=[]),n===void 0&&(n=null),i===void 0&&(i=null),e==null){var a;if(!n)return null;if(n.errors)e=n.matches;else if((a=i)!=null&&a.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let o=e,l=(s=n)==null?void 0:s.errors;if(l!=null){let m=o.findIndex(d=>d.route.id&&(l==null?void 0:l[d.route.id])!==void 0);m>=0||Ie(!1),o=o.slice(0,Math.min(o.length,m+1))}let c=!1,u=-1;if(n&&i&&i.v7_partialHydration)for(let m=0;m=0?o=o.slice(0,u+1):o=[o[0]];break}}}return o.reduceRight((m,d,h)=>{let x,g=!1,p=null,w=null;n&&(x=l&&d.route.id?l[d.route.id]:void 0,p=d.route.errorElement||Y0,c&&(u<0&&h===0?(o1("route-fallback"),g=!0,w=null):u===h&&(g=!0,w=d.route.hydrateFallbackElement||null)));let b=t.concat(o.slice(0,h+1)),v=()=>{let y;return x?y=p:g?y=w:d.route.Component?y=f.createElement(d.route.Component,null):d.route.element?y=d.route.element:y=m,f.createElement(e1,{match:d,routeContext:{outlet:m,matches:b,isDataRoute:n!=null},children:y})};return n&&(d.route.ErrorBoundary||d.route.errorElement||h===0)?f.createElement(J0,{location:n.location,revalidation:n.revalidation,component:p,error:x,children:v(),routeContext:{outlet:null,matches:b,isDataRoute:!0}}):v()},null)}var Xg=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(Xg||{}),Qg=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(Qg||{});function n1(e){let t=f.useContext(Mo);return t||Ie(!1),t}function r1(e){let t=f.useContext(Kg);return t||Ie(!1),t}function i1(e){let t=f.useContext(or);return t||Ie(!1),t}function Zg(e){let t=i1(),n=t.matches[t.matches.length-1];return n.route.id||Ie(!1),n.route.id}function s1(){var e;let t=f.useContext(Wg),n=r1(),i=Zg();return t!==void 0?t:(e=n.errors)==null?void 0:e[i]}function a1(){let{router:e}=n1(Xg.UseNavigateStable),t=Zg(Qg.UseNavigateStable),n=f.useRef(!1);return Gg(()=>{n.current=!0}),f.useCallback(function(s,a){a===void 0&&(a={}),n.current&&(typeof s=="number"?e.navigate(s):e.navigate(s,js({fromRouteId:t},a)))},[e,t])}const lm={};function o1(e,t,n){lm[e]||(lm[e]=!0)}function l1(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function ca(e){let{to:t,replace:n,state:i,relative:s}=e;yi()||Ie(!1);let{future:a,static:o}=f.useContext(Cn),{matches:l}=f.useContext(or),{pathname:c}=Jt(),u=$o(),m=Bd(t,zd(l,a.v7_relativeSplatPath),c,s==="path"),d=JSON.stringify(m);return f.useEffect(()=>u(JSON.parse(d),{replace:n,state:i,relative:s}),[u,d,s,n,i]),null}function je(e){Ie(!1)}function c1(e){let{basename:t="/",children:n=null,location:i,navigationType:s=Fn.Pop,navigator:a,static:o=!1,future:l}=e;yi()&&Ie(!1);let c=t.replace(/^\/*/,"/"),u=f.useMemo(()=>({basename:c,navigator:a,static:o,future:js({v7_relativeSplatPath:!1},l)}),[c,l,a,o]);typeof i=="string"&&(i=bi(i));let{pathname:m="/",search:d="",hash:h="",state:x=null,key:g="default"}=i,p=f.useMemo(()=>{let w=ci(m,c);return w==null?null:{location:{pathname:w,search:d,hash:h,state:x,key:g},navigationType:s}},[c,m,d,h,x,g,s]);return p==null?null:f.createElement(Cn.Provider,{value:u},f.createElement(Fo.Provider,{children:n,value:p}))}function cm(e){let{children:t,location:n}=e;return X0(fu(t),n)}new Promise(()=>{});function fu(e,t){t===void 0&&(t=[]);let n=[];return f.Children.forEach(e,(i,s)=>{if(!f.isValidElement(i))return;let a=[...t,s];if(i.type===f.Fragment){n.push.apply(n,fu(i.props.children,a));return}i.type!==je&&Ie(!1),!i.props.index||!i.props.children||Ie(!1);let o={id:i.props.id||a.join("-"),caseSensitive:i.props.caseSensitive,element:i.props.element,Component:i.props.Component,index:i.props.index,path:i.props.path,loader:i.props.loader,action:i.props.action,errorElement:i.props.errorElement,ErrorBoundary:i.props.ErrorBoundary,hasErrorBoundary:i.props.ErrorBoundary!=null||i.props.errorElement!=null,shouldRevalidate:i.props.shouldRevalidate,handle:i.props.handle,lazy:i.props.lazy};i.props.children&&(o.children=fu(i.props.children,a)),n.push(o)}),n}/** + * React Router DOM v6.30.3 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function po(){return po=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[s]=e[s]);return n}function u1(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function d1(e,t){return e.button===0&&(!t||t==="_self")&&!u1(e)}const f1=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],m1=["aria-current","caseSensitive","className","end","style","to","viewTransition","children"],p1="6";try{window.__reactRouterVersion=p1}catch{}const h1=f.createContext({isTransitioning:!1}),g1="startTransition",um=br[g1];function x1(e){let{basename:t,children:n,future:i,window:s}=e,a=f.useRef();a.current==null&&(a.current=j0({window:s,v5Compat:!0}));let o=a.current,[l,c]=f.useState({action:o.action,location:o.location}),{v7_startTransition:u}=i||{},m=f.useCallback(d=>{u&&um?um(()=>c(d)):c(d)},[c,u]);return f.useLayoutEffect(()=>o.listen(m),[o,m]),f.useEffect(()=>l1(i),[i]),f.createElement(c1,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:o,future:i})}const v1=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",b1=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,y1=f.forwardRef(function(t,n){let{onClick:i,relative:s,reloadDocument:a,replace:o,state:l,target:c,to:u,preventScrollReset:m,viewTransition:d}=t,h=Yg(t,f1),{basename:x}=f.useContext(Cn),g,p=!1;if(typeof u=="string"&&b1.test(u)&&(g=u,v1))try{let y=new URL(window.location.href),j=u.startsWith("//")?new URL(y.protocol+u):new URL(u),k=ci(j.pathname,x);j.origin===y.origin&&k!=null?u=k+j.search+j.hash:p=!0}catch{}let w=W0(u,{relative:s}),b=_1(u,{replace:o,state:l,target:c,preventScrollReset:m,relative:s,viewTransition:d});function v(y){i&&i(y),y.defaultPrevented||b(y)}return f.createElement("a",po({},h,{href:g||w,onClick:p||a?i:v,ref:n,target:c}))}),Ra=f.forwardRef(function(t,n){let{"aria-current":i="page",caseSensitive:s=!1,className:a="",end:o=!1,style:l,to:c,viewTransition:u,children:m}=t,d=Yg(t,m1),h=qo(c,{relative:d.relative}),x=Jt(),g=f.useContext(Kg),{navigator:p,basename:w}=f.useContext(Cn),b=g!=null&&w1(h)&&u===!0,v=p.encodeLocation?p.encodeLocation(h).pathname:h.pathname,y=x.pathname,j=g&&g.navigation&&g.navigation.location?g.navigation.location.pathname:null;s||(y=y.toLowerCase(),j=j?j.toLowerCase():null,v=v.toLowerCase()),j&&w&&(j=ci(j,w)||j);const k=v!=="/"&&v.endsWith("/")?v.length-1:v.length;let N=y===v||!o&&y.startsWith(v)&&y.charAt(k)==="/",_=j!=null&&(j===v||!o&&j.startsWith(v)&&j.charAt(v.length)==="/"),S={isActive:N,isPending:_,isTransitioning:b},P=N?i:void 0,D;typeof a=="function"?D=a(S):D=[a,N?"active":null,_?"pending":null,b?"transitioning":null].filter(Boolean).join(" ");let F=typeof l=="function"?l(S):l;return f.createElement(y1,po({},d,{"aria-current":P,className:D,ref:n,style:F,to:c,viewTransition:u}),typeof m=="function"?m(S):m)});var mu;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(mu||(mu={}));var dm;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(dm||(dm={}));function j1(e){let t=f.useContext(Mo);return t||Ie(!1),t}function _1(e,t){let{target:n,replace:i,state:s,preventScrollReset:a,relative:o,viewTransition:l}=t===void 0?{}:t,c=$o(),u=Jt(),m=qo(e,{relative:o});return f.useCallback(d=>{if(d1(d,n)){d.preventDefault();let h=i!==void 0?i:mo(u)===mo(m);c(e,{replace:h,state:s,preventScrollReset:a,relative:o,viewTransition:l})}},[u,c,m,i,s,n,e,a,o,l])}function w1(e,t){t===void 0&&(t={});let n=f.useContext(h1);n==null&&Ie(!1);let{basename:i}=j1(mu.useViewTransitionState),s=qo(e,{relative:t.relative});if(!n.isTransitioning)return!1;let a=ci(n.currentLocation.pathname,i)||n.currentLocation.pathname,o=ci(n.nextLocation.pathname,i)||n.nextLocation.pathname;return du(s.pathname,o)!=null||du(s.pathname,a)!=null}const fm="/assets/br-office-logo-DlHO8fHZ.png",k1={admin:["/","/cases","/deadlines","/meetings","/agenda-items","/decisions","/reports","/finance","/tasks","/calendar","/documents","/comments","/notifications","/users","/committees","/departments","/document-categories","/public-documents-admin","/templates","/permissions","/security","/audit"],chair:["/","/cases","/deadlines","/meetings","/agenda-items","/decisions","/reports","/finance","/tasks","/calendar","/documents","/comments","/notifications","/committees","/departments","/document-categories","/public-documents-admin","/templates"],secretary:["/","/meetings","/agenda-items","/decisions","/reports","/finance","/tasks","/calendar","/documents","/comments","/notifications"],member:["/","/cases","/deadlines","/tasks","/calendar","/documents","/comments","/notifications"],advisor:["/","/calendar","/documents","/comments","/notifications"]};function S1(e){return Array.isArray(e==null?void 0:e.allowed_page_paths)&&e.allowed_page_paths.length?e.allowed_page_paths:k1[e==null?void 0:e.role]||["/"]}function Jg(e,t){return e?e.role==="admin"?!0:S1(e).includes(t):!1}const Pl=[{key:"dashboard",label:"Dashboard",standalone:!0,items:[{label:"Dashboard",to:"/"}]},{key:"work",label:"Arbeit",items:[{label:"Vorgänge",to:"/cases"},{label:"Fristen",to:"/deadlines"},{label:"Sitzungen",to:"/meetings"},{label:"TOP-Bestand",to:"/agenda-items"},{label:"Beschlüsse",to:"/decisions"},{label:"Reports",to:"/reports"},{label:"Finanzen",to:"/finance"},{label:"Aufgaben",to:"/tasks"},{label:"Kalender",to:"/calendar"},{label:"Dokumente",to:"/documents"},{label:"Kommentare",to:"/comments"},{label:"Benachrichtigungen",to:"/notifications"}]},{key:"admin",label:"Administration",items:[{label:"Benutzer",to:"/users"},{label:"Ausschüsse",to:"/committees"},{label:"Abteilungen",to:"/departments"},{label:"Dokumentenkategorien",to:"/document-categories"},{label:"Öffentliche Dokumente",to:"/public-documents-admin"},{label:"Vorlagen / Formular-Editor",to:"/templates"},{label:"Rollen & Rechte",to:"/permissions"},{label:"Kummerkasten",to:"/kummerkasten-admin"},{label:"MwSt.-Sätze Finanzen",to:"/finance-tax-codes"},{label:"Sicherheit",to:"/security"},{label:"Audit",to:"/audit"}]}];function El(e,t){return e.items.some(n=>n.to==="/"?t==="/":t===n.to||t.startsWith(`${n.to}/`))}function N1({user:e,onLogout:t,children:n}){const i=Jt(),[s,a]=f.useState(!1),o=f.useMemo(()=>{const m={};for(const d of Pl)m[d.key]=d.standalone?!0:El(d,i.pathname);return m},[i.pathname]),[l,c]=f.useState(o);f.useEffect(()=>{c(m=>{const d={...m};for(const h of Pl)(h.standalone||El(h,i.pathname))&&(d[h.key]=!0);return d}),a(!1)},[i.pathname]);function u(m){c(d=>({...d,[m]:!d[m]}))}return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .app-shell { + min-height: 100vh; + display: grid; + grid-template-columns: 280px minmax(0, 1fr); + background: var(--app-bg, #f6f8fb); + } + + .app-sidebar { + background: var(--panel-bg, #ffffff); + border-right: 1px solid rgba(15, 23, 42, 0.08); + padding: 18px 14px; + display: flex; + flex-direction: column; + gap: 14px; + position: sticky; + top: 0; + height: 100vh; + overflow: auto; + z-index: 30; + } + + .app-brand { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + padding: 6px 8px 12px; + border-bottom: 1px solid rgba(15, 23, 42, 0.08); + } + + .app-brand-main { + min-width: 0; + display: flex; + align-items: center; + gap: 12px; + } + + .app-brand-logo { + width: 58px; + max-height: 42px; + flex: 0 0 auto; + object-fit: contain; + display: block; + } + + .app-brand-title { + font-weight: 800; + font-size: 1.05rem; + } + + .app-brand-subtitle { + font-size: 0.85rem; + opacity: 0.7; + } + + .sidebar-groups { + display: flex; + flex-direction: column; + gap: 10px; + } + + .sidebar-group { + border: 1px solid rgba(15, 23, 42, 0.07); + border-radius: 14px; + overflow: hidden; + background: rgba(255, 255, 255, 0.8); + } + + .sidebar-group.standalone { + padding: 6px; + } + + .sidebar-group-toggle { + width: 100%; + display: flex; + align-items: center; + justify-content: space-between; + gap: 10px; + border: 0; + background: transparent; + padding: 12px 14px; + cursor: pointer; + font-weight: 700; + font-size: 0.95rem; + text-align: left; + } + + .sidebar-group-toggle:hover { + background: rgba(15, 23, 42, 0.04); + } + + .sidebar-chevron { + transition: transform 0.2s ease; + font-size: 0.9rem; + opacity: 0.7; + } + + .sidebar-chevron.open { + transform: rotate(90deg); + } + + .sidebar-links { + display: flex; + flex-direction: column; + gap: 4px; + padding: 0 8px 10px; + } + + .sidebar-group.standalone .sidebar-links { + padding: 0; + } + + .sidebar-link { + display: flex; + align-items: center; + min-height: 40px; + padding: 9px 12px; + border-radius: 10px; + text-decoration: none; + color: inherit; + font-weight: 500; + transition: background 0.15s ease, color 0.15s ease; + } + + .sidebar-link:hover { + background: rgba(15, 23, 42, 0.05); + } + + .sidebar-link.active { + background: rgba(37, 99, 235, 0.12); + color: #1d4ed8; + font-weight: 700; + } + + .sidebar-footer { + margin-top: auto; + padding-top: 12px; + border-top: 1px solid rgba(15, 23, 42, 0.08); + display: grid; + gap: 10px; + } + + .user-card { + display: grid; + gap: 2px; + padding: 10px 12px; + border-radius: 12px; + background: rgba(15, 23, 42, 0.04); + } + + .app-main { + min-width: 0; + display: flex; + flex-direction: column; + } + + .app-topbar { + display: none; + align-items: center; + justify-content: space-between; + gap: 12px; + padding: 12px 14px; + background: var(--panel-bg, #fff); + border-bottom: 1px solid rgba(15, 23, 42, 0.08); + position: sticky; + top: 0; + z-index: 25; + } + + .app-mobile-brand { + display: flex; + align-items: center; + gap: 10px; + font-weight: 800; + } + + .app-mobile-brand-logo { + width: 32px; + max-height: 28px; + object-fit: contain; + display: block; + } + + .app-content { + min-width: 0; + padding: 18px; + } + + .menu-btn, + .sidebar-close-btn { + border: 1px solid rgba(15, 23, 42, 0.12); + background: var(--panel-bg, #fff); + border-radius: 10px; + padding: 8px 10px; + cursor: pointer; + font-weight: 700; + } + + .sidebar-close-btn { + display: none; + } + + .sidebar-backdrop { + display: none; + } + + @media (max-width: 980px) { + .app-shell { + grid-template-columns: 1fr; + } + + .app-topbar { + display: flex; + } + + .app-sidebar { + position: fixed; + inset: 0 auto 0 0; + width: min(320px, 86vw); + transform: translateX(-100%); + transition: transform 0.24s ease; + box-shadow: 0 18px 50px rgba(0, 0, 0, 0.22); + } + + .app-sidebar.open { + transform: translateX(0); + } + + .sidebar-close-btn { + display: inline-flex; + } + + .sidebar-backdrop { + display: block; + position: fixed; + inset: 0; + background: rgba(15, 23, 42, 0.45); + z-index: 20; + } + + .app-content { + padding: 14px; + } + } + `}),r.jsxs("div",{className:"app-shell",children:[s?r.jsx("div",{className:"sidebar-backdrop",onClick:()=>a(!1)}):null,r.jsxs("aside",{className:`app-sidebar ${s?"open":""}`,children:[r.jsxs("div",{className:"app-brand",children:[r.jsxs("div",{className:"app-brand-main",children:[r.jsx("img",{className:"app-brand-logo",src:fm,alt:"BR-Office Logo"}),r.jsxs("div",{children:[r.jsx("div",{className:"app-brand-title",children:"BR-Office"}),r.jsx("div",{className:"app-brand-subtitle",children:"Navigation"})]})]}),r.jsx("button",{className:"sidebar-close-btn",type:"button",onClick:()=>a(!1),"aria-label":"Menü schließen",children:"×"})]}),r.jsx("nav",{className:"sidebar-groups",children:Pl.map(m=>{const d=m.items.filter(p=>Jg(e,p.to));if(!d.length)return null;const h={...m,items:d},x=m.standalone?!0:!!l[m.key],g=El(h,i.pathname);return r.jsxs("div",{className:`sidebar-group ${m.standalone?"standalone":""} ${g?"active":""}`,children:[m.standalone?null:r.jsxs("button",{className:"sidebar-group-toggle",type:"button",onClick:()=>u(m.key),children:[r.jsx("span",{children:m.label}),r.jsx("span",{className:`sidebar-chevron ${x?"open":""}`,children:"▶"})]}),x?r.jsx("div",{className:"sidebar-links",children:d.map(p=>r.jsx(Ra,{to:p.to,end:p.to==="/",className:({isActive:w})=>`sidebar-link ${w?"active":""}`,children:p.label},p.to))}):null]},m.key)})}),r.jsxs("div",{className:"sidebar-footer",children:[r.jsxs("div",{className:"user-card",children:[r.jsx("strong",{children:(e==null?void 0:e.full_name)||(e==null?void 0:e.email)||"Benutzer"}),r.jsx("span",{children:(e==null?void 0:e.role)||""})]}),r.jsx("button",{className:"btn secondary",type:"button",onClick:t,children:"Abmelden"})]})]}),r.jsxs("main",{className:"app-main",children:[r.jsxs("div",{className:"app-topbar",children:[r.jsx("button",{className:"menu-btn",type:"button",onClick:()=>a(!0),"aria-label":"Menü öffnen",children:"☰ Menü"}),r.jsxs("div",{className:"app-mobile-brand",children:[r.jsx("img",{className:"app-mobile-brand-logo",src:fm,alt:"BR-Office Logo"}),r.jsx("strong",{children:"BR-Office"})]})]}),r.jsx("div",{className:"app-content",children:n})]})]})]})}const _s="http://localhost:8080/api";let sn=typeof window<"u"&&localStorage.getItem("br_access_token")||"",ua=null;typeof window<"u"&&(window.__br_access_token=sn||"");function Vo(e){sn=e||"",typeof window<"u"&&(sn?localStorage.setItem("br_access_token",sn):localStorage.removeItem("br_access_token"),window.__br_access_token=sn)}function ho(){sn="",typeof window<"u"&&(localStorage.removeItem("br_access_token"),localStorage.removeItem("br_user"),window.__br_access_token="")}function C1(){return!sn&&typeof window<"u"&&(sn=localStorage.getItem("br_access_token")||"",window.__br_access_token=sn),sn}function z1(e={}){return!e.body||e.body instanceof FormData?!1:typeof e.body=="string"}function go(e={},t=null){const n={...z1(e)?{"Content-Type":"application/json"}:{},...e.headers||{}},i=t??C1();return i&&(n.Authorization=`Bearer ${i}`),n}async function B1(){const e=await fetch(`${_s}/auth/refresh`,{method:"POST",credentials:"include"});if(!e.ok)return ho(),null;const t=await e.json().catch(()=>({})),n=(t==null?void 0:t.accessToken)||"";return n?(Vo(n),typeof window<"u"&&(t!=null&&t.user)&&localStorage.setItem("br_user",JSON.stringify(t.user)),n):(ho(),null)}async function ex(){return ua||(ua=B1().finally(()=>{ua=null})),ua}async function tx(e){return e.json().catch(()=>({}))}async function da(e,t={}){let n=await fetch(`${_s}${e}`,{...t,headers:go(t),credentials:"include"});if(n.status===401&&!e.includes("/auth/refresh")){const s=await ex();s&&(n=await fetch(`${_s}${e}`,{...t,headers:go(t,s),credentials:"include"}))}const i=await tx(n);if(!n.ok){n.status===401&&ho();const s=new Error(i.error||"API-Fehler");throw s.response=i,s.status=n.status,s}return i}async function Uo(e,t={}){let n=await fetch(`${_s}${e}`,{...t,headers:go(t),credentials:"include"});if(n.status===401&&!e.includes("/auth/refresh")){const i=await ex();i&&(n=await fetch(`${_s}${e}`,{...t,headers:go(t,i),credentials:"include"}))}if(!n.ok){const i=await tx(n);n.status===401&&ho();const s=new Error(i.error||"Datei konnte nicht geladen werden");throw s.response=i,s.status=n.status,s}return n}async function ji(e,t="download"){const i=await(await Uo(e)).blob(),s=window.URL.createObjectURL(i),a=document.createElement("a");a.href=s,a.download=t,document.body.appendChild(a),a.click(),a.remove(),window.setTimeout(()=>window.URL.revokeObjectURL(s),1e3)}async function _i(e){const n=await(await Uo(e)).blob(),i=window.URL.createObjectURL(n);window.open(i,"_blank","noopener,noreferrer"),window.setTimeout(()=>window.URL.revokeObjectURL(i),6e4)}async function T1(e){const n=await(await Uo(e)).blob(),i=window.URL.createObjectURL(n),s=document.createElement("iframe");s.style.position="fixed",s.style.right="0",s.style.bottom="0",s.style.width="0",s.style.height="0",s.style.border="0",s.src=i,s.onload=()=>{window.setTimeout(()=>{var a,o;try{(a=s.contentWindow)==null||a.focus(),(o=s.contentWindow)==null||o.print()}catch{window.open(i,"_blank","noopener,noreferrer")}},250),window.setTimeout(()=>{window.URL.revokeObjectURL(i),s.remove()},6e4)},document.body.appendChild(s)}const O={get:e=>da(e),post:(e,t)=>da(e,{method:"POST",body:t instanceof FormData?t:JSON.stringify(t)}),put:(e,t)=>da(e,{method:"PUT",body:t instanceof FormData?t:JSON.stringify(t)}),delete:e=>da(e,{method:"DELETE"})};function P1(){return{email:"",password:""}}function mm(){return{totp_code:""}}function fa(e){if(!e||typeof e!="string")return e;const t="=".repeat((4-e.length%4)%4),n=(e+t).replace(/-/g,"+").replace(/_/g,"/"),i=window.atob(n),s=new Uint8Array(i.length);for(let a=0;a({...i,id:fa(i.id)}))),Array.isArray(t.excludeCredentials)&&(t.excludeCredentials=t.excludeCredentials.map(i=>({...i,id:fa(i.id)}))),(n=t.user)!=null&&n.id&&(t.user={...t.user,id:fa(t.user.id)}),t}function Oi(e){if(!e)return"";const t=e instanceof Uint8Array?e:new Uint8Array(e);let n="";for(let i=0;itypeof window<"u"&&!!window.PublicKeyCredential&&!!navigator.credentials,[]);function j(P){if(!(P!=null&&P.accessToken)||!(P!=null&&P.user))throw new Error("Login-Antwort unvollständig");Vo(P.accessToken),localStorage.setItem("br_user",JSON.stringify(P.user)),g(""),w(""),e==null||e(P.user)}async function k(P){var D,F,T,M;P.preventDefault(),v(!0),w(""),g("");try{const z=await O.post("/auth/login",{email:t.email.trim(),password:t.password});if(z!=null&&z.mfaRequired){c(z.loginToken||""),m(z.userHint||null),h({totp:!!((D=z==null?void 0:z.availableSecondFactors)!=null&&D.totp),webauthn:!!((F=z==null?void 0:z.availableSecondFactors)!=null&&F.webauthn)}),(T=z==null?void 0:z.availableSecondFactors)!=null&&T.totp?(o("totp"),g("Bitte zweiten Faktor mit TOTP bestätigen.")):(M=z==null?void 0:z.availableSecondFactors)!=null&&M.webauthn?(o("webauthn"),g("Bitte Anmeldung mit Sicherheitsschlüssel oder Passkey bestätigen.")):(o("mfa-choice"),g("Zweiter Faktor erforderlich."));return}j(z)}catch(z){w(z.message||"Login fehlgeschlagen.")}finally{v(!1)}}async function N(P){P.preventDefault(),v(!0),w(""),g("");try{const D=await O.post("/auth/login/totp",{login_token:l,totp_code:i.totp_code.trim()});j(D)}catch(D){w(D.message||"TOTP-Anmeldung fehlgeschlagen.")}finally{v(!1)}}async function _(){v(!0),w(""),g("");try{if(!y)throw new Error("WebAuthn wird in diesem Browser nicht unterstützt.");const P=await O.post("/auth/login/webauthn/options",{login_token:l}),D=await navigator.credentials.get({publicKey:E1(P)});if(!D)throw new Error("WebAuthn-Anmeldung wurde abgebrochen.");const F=await O.post("/auth/login/webauthn/verify",{login_token:l,credential:D1(D)});j(F)}catch(P){w(P.message||"WebAuthn-Anmeldung fehlgeschlagen.")}finally{v(!1)}}function S(){o("password"),c(""),s(mm()),h({totp:!1,webauthn:!1}),m(null),g(""),w("")}return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .login-shell { + min-height: 100vh; + display: grid; + place-items: center; + padding: 24px; + background: + radial-gradient(circle at top left, rgba(37, 99, 235, 0.10), transparent 28%), + radial-gradient(circle at bottom right, rgba(220, 38, 38, 0.08), transparent 24%), + linear-gradient(180deg, #f4f7fb 0%, #eef3f8 100%); + } + + .login-card { + width: min(540px, 100%); + background: rgba(255, 255, 255, 0.74); + backdrop-filter: blur(18px); + -webkit-backdrop-filter: blur(18px); + border: 1px solid rgba(15, 23, 42, 0.08); + border-radius: 24px; + box-shadow: 0 20px 60px rgba(15, 23, 42, 0.12); + padding: 24px; + backdrop-filter: blur(10px); + } + + .login-header { + margin-bottom: 18px; + } + + .login-header h1 { + margin: 0; + font-size: 1.8rem; + } + + .login-header p { + margin: 8px 0 0; + color: #64748b; + } + + .login-meta { + margin-bottom: 14px; + padding: 12px 14px; + border-radius: 14px; + background: rgba(15, 23, 42, 0.04); + color: #334155; + } + + .login-actions { + display: flex; + justify-content: flex-end; + gap: 10px; + margin-top: 8px; + flex-wrap: wrap; + } + + .login-choice-actions { + display: flex; + gap: 10px; + flex-wrap: wrap; + margin-top: 12px; + } + `}),r.jsx("div",{className:"login-shell",children:r.jsxs("div",{className:"login-card",children:[r.jsxs("div",{className:"login-header",children:[r.jsx("h1",{children:"BR-Office"}),r.jsx("p",{children:a==="password"?"Bitte anmelden.":"Bitte zweiten Faktor bestätigen."})]}),u?r.jsxs("div",{className:"login-meta",children:[r.jsx("strong",{children:u.full_name||u.email}),r.jsx("div",{children:u.email}),r.jsx("div",{children:u.role})]}):null,p?r.jsx("div",{className:"alert error",children:p}):null,x?r.jsx("div",{className:"alert success",children:x}):null,a==="password"?r.jsxs("form",{className:"form-grid",onSubmit:k,children:[r.jsxs("label",{children:[r.jsx("span",{children:"E-Mail"}),r.jsx("input",{className:"input",type:"email",autoComplete:"username",value:t.email,onChange:P=>n(D=>({...D,email:P.target.value}))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Passwort"}),r.jsx("input",{className:"input",type:"password",autoComplete:"current-password",value:t.password,onChange:P=>n(D=>({...D,password:P.target.value}))})]}),r.jsx("div",{className:"login-actions",children:r.jsx("button",{className:"btn",type:"submit",disabled:b,children:b?"Anmelden...":"Anmelden"})})]}):null,a==="mfa-choice"?r.jsxs("div",{children:[r.jsx("p",{className:"field-hint",children:"Es ist ein zweiter Faktor erforderlich. Bitte eine Methode auswählen."}),r.jsxs("div",{className:"login-choice-actions",children:[d.totp?r.jsx("button",{className:"btn",type:"button",onClick:()=>{o("totp"),w(""),g("")},disabled:b,children:"TOTP verwenden"}):null,d.webauthn?r.jsx("button",{className:"btn secondary",type:"button",onClick:()=>{o("webauthn"),w(""),g("")},disabled:b,children:"WebAuthn verwenden"}):null,r.jsx("button",{className:"btn secondary",type:"button",onClick:S,disabled:b,children:"Zurück"})]})]}):null,a==="totp"?r.jsxs("form",{className:"form-grid",onSubmit:N,children:[r.jsxs("label",{children:[r.jsx("span",{children:"TOTP-Code"}),r.jsx("input",{className:"input",inputMode:"numeric",autoComplete:"one-time-code",placeholder:"123456",value:i.totp_code,onChange:P=>s(D=>({...D,totp_code:P.target.value}))})]}),r.jsxs("div",{className:"login-actions",children:[d.webauthn?r.jsx("button",{className:"btn secondary",type:"button",onClick:()=>{o("webauthn"),w(""),g("")},disabled:b,children:"WebAuthn stattdessen"}):null,r.jsx("button",{className:"btn secondary",type:"button",onClick:S,disabled:b,children:"Abbrechen"}),r.jsx("button",{className:"btn",type:"submit",disabled:b,children:b?"Prüfen...":"Bestätigen"})]})]}):null,a==="webauthn"?r.jsxs("div",{children:[r.jsx("p",{className:"field-hint",children:"Mit Sicherheitsschlüssel, Windows Hello, Touch ID oder Passkey anmelden."}),r.jsxs("div",{className:"login-actions",children:[d.totp?r.jsx("button",{className:"btn secondary",type:"button",onClick:()=>{o("totp"),w(""),g("")},disabled:b,children:"TOTP stattdessen"}):null,r.jsx("button",{className:"btn secondary",type:"button",onClick:S,disabled:b,children:"Abbrechen"}),r.jsx("button",{className:"btn",type:"button",onClick:_,disabled:b,children:b?"Anmeldung läuft...":"WebAuthn starten"})]})]}):null]})})]})}function de({title:e,subtitle:t,children:n,actions:i}){return r.jsxs("section",{className:"section-card glass",children:[r.jsxs("header",{className:"section-header",children:[r.jsxs("div",{children:[r.jsx("h2",{children:e}),t?r.jsx("p",{children:t}):null]}),r.jsx("div",{className:"section-actions",children:i})]}),n]})}function pm(e){if(!e)return"—";const t=new Date(e);return Number.isNaN(t.getTime())?String(e):t.toLocaleDateString("de-DE")}function R1(e){if(!e)return"—";const t=new Date(e);return Number.isNaN(t.getTime())?String(e):t.toLocaleString("de-DE",{day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit"})}function O1(e){return Array.isArray(e)?e:Array.isArray(e==null?void 0:e.items)?e.items:[]}function hm(e){const t=String(e||"").toLowerCase();return t==="geplant"?"Geplant":t==="gestartet"?"Gestartet":t==="beendet"?"Beendet":t==="ungeplant"?"Ungeplant":t==="neu"?"Neu":t==="in_bearbeitung"?"In Bearbeitung":t==="rueckfrage"?"Rückfrage":t==="abgeschlossen"?"Abgeschlossen":e||"—"}function I1(){const[e,t]=f.useState(null),[n,i]=f.useState([]),[s,a]=f.useState([]),[o,l]=f.useState([]),[c,u]=f.useState("");f.useEffect(()=>{let h=!0;async function x(){u("");try{const[g,p,w,b]=await Promise.all([O.get("/dashboard"),O.get("/meetings?show_ended=false&page=1&page_size=5"),O.get("/cases"),O.get("/notifications")]);if(!h)return;const v=O1(p).slice().sort((k,N)=>String(k.meeting_date||"").localeCompare(String(N.meeting_date||""))).slice(0,5),y=(Array.isArray(w)?w:[]).filter(k=>String(k.status||"")!=="abgeschlossen").slice(0,5),j=(Array.isArray(b)?b:[]).slice(0,5);t(g||null),i(v),a(y),l(j)}catch(g){if(!h)return;u(g.message||"Dashboard konnte nicht geladen werden.")}}return x(),()=>{h=!1}},[]);const m=f.useMemo(()=>n[0]||null,[n]),d=[{title:"Meine Vorgänge",value:(e==null?void 0:e.openCases)??"—",hint:e!=null&&e.openCases?`${e.openCases} offen`:"Keine Daten",tone:"blue"},{title:"Nächste Sitzung",value:m!=null&&m.meeting_date?pm(m.meeting_date):"—",hint:(m==null?void 0:m.title)||"Keine Sitzung geplant",tone:"green"},{title:"Dringende Fristen",value:(e==null?void 0:e.urgentDeadlines)??"—",hint:e!=null&&e.urgentDeadlines?"innerhalb 3 Tagen":"Keine Daten",tone:"purple"},{title:"Dokumente",value:(e==null?void 0:e.documents)??"—",hint:e!=null&&e.unreadNotifications?`${e.unreadNotifications} neue Hinweise`:"Dokumentenbestand",tone:"amber"}];return r.jsxs("div",{className:"stack dashboard-stack",children:[r.jsxs(de,{title:"Dashboard",subtitle:"Startseite mit den wichtigsten Kennzahlen, Sitzungen, Vorgängen und Benachrichtigungen.",children:[c?r.jsx("div",{className:"alert error",children:c}):null,r.jsx("div",{className:"dashboard-kpi-grid",children:d.map(h=>r.jsxs("div",{className:`dashboard-kpi-card tone-${h.tone}`,children:[r.jsx("div",{className:"dashboard-kpi-icon","aria-hidden":"true"}),r.jsxs("div",{className:"dashboard-kpi-content",children:[r.jsx("span",{children:h.title}),r.jsx("strong",{children:h.value}),r.jsx("small",{children:h.hint})]})]},h.title))})]}),r.jsxs("div",{className:"dashboard-two-col",children:[r.jsx(de,{title:"Meine nächsten Sitzungen",subtitle:"Kommende Termine im Überblick",actions:r.jsx(Ra,{className:"btn secondary",to:"/meetings",children:"Alle Sitzungen anzeigen"}),children:r.jsx("div",{className:"dashboard-list",children:n.length?n.map(h=>r.jsxs("div",{className:"dashboard-list-item",children:[r.jsxs("div",{className:"dashboard-date-box",children:[r.jsx("strong",{children:pm(h.meeting_date).slice(0,5)}),r.jsx("span",{children:String(h.meeting_date||"").slice(0,4)})]}),r.jsxs("div",{className:"dashboard-list-main",children:[r.jsx("strong",{children:h.title||h.meeting_number||`Sitzung ${h.id}`}),r.jsxs("div",{className:"field-hint",children:[h.meeting_number?`${h.meeting_number} · `:"",h.location||"Ort offen"]})]}),r.jsx("span",{className:`status-chip status-${String(h.status||"").toLowerCase()}`,children:hm(h.status)})]},h.id)):r.jsx("div",{className:"field-hint",children:"Keine kommenden Sitzungen gefunden."})})}),r.jsx(de,{title:"Meine offenen Vorgänge",subtitle:"Nicht abgeschlossene Vorgänge",actions:r.jsx(Ra,{className:"btn secondary",to:"/cases",children:"Alle Vorgänge anzeigen"}),children:r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table dashboard-table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"Vorgang"}),r.jsx("th",{children:"Status"}),r.jsx("th",{children:"Priorität"}),r.jsx("th",{children:"Ausschuss"})]})}),r.jsx("tbody",{children:s.length?s.map(h=>r.jsxs("tr",{children:[r.jsxs("td",{children:[r.jsx("strong",{children:h.case_number||`V-${h.id}`}),r.jsx("div",{className:"field-hint",children:h.title||"Ohne Titel"})]}),r.jsx("td",{children:hm(h.status)}),r.jsx("td",{children:h.priority||"—"}),r.jsx("td",{children:h.committee_name||h.department||"—"})]},h.id)):r.jsx("tr",{children:r.jsx("td",{colSpan:4,children:"Keine offenen Vorgänge gefunden."})})})]})})})]}),r.jsx(de,{title:"Aktuelle Benachrichtigungen",subtitle:"Neueste Hinweise aus dem System",actions:r.jsx(Ra,{className:"btn secondary",to:"/notifications",children:"Alle Benachrichtigungen anzeigen"}),children:r.jsx("div",{className:"dashboard-notification-list",children:o.length?o.map(h=>r.jsxs("div",{className:"dashboard-notification-row",children:[r.jsxs("div",{children:[r.jsx("strong",{children:h.title||h.notification_type||"Hinweis"}),r.jsxs("div",{className:"field-hint",children:[h.entity_type?`${h.entity_type} · `:"",R1(h.created_at)]})]}),r.jsx("span",{className:`status-chip ${h.is_read?"status-neutral":"status-geplant"}`,children:h.is_read?"Gelesen":"Neu"})]},h.id)):r.jsx("div",{className:"field-hint",children:"Keine Benachrichtigungen vorhanden."})})})]})}function nx({title:e,rows:t,columns:n,onPick:i,onClose:s}){const[a,o]=f.useState(""),l=f.useMemo(()=>{const c=a.trim().toLowerCase();return c?t.filter(u=>JSON.stringify(u).toLowerCase().includes(c)):t},[t,a]);return r.jsx("div",{style:{position:"fixed",inset:0,background:"rgba(15, 23, 42, 0.55)",display:"grid",placeItems:"center",zIndex:999},children:r.jsxs("div",{className:"glass",style:{width:"min(960px, 92vw)",maxHeight:"85vh",overflow:"auto",padding:18,borderRadius:20},children:[r.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:12,marginBottom:14},children:[r.jsxs("div",{children:[r.jsx("h3",{style:{margin:0},children:e}),r.jsx("p",{style:{margin:"6px 0 0 0",opacity:.75},children:"Eintrag auswählen und die ID automatisch übernehmen."})]}),r.jsx("button",{className:"btn secondary",type:"button",onClick:s,children:"Schließen"})]}),r.jsx("input",{className:"input search",placeholder:"Suchen...",value:a,onChange:c=>o(c.target.value),style:{marginBottom:12}}),r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[n.map(c=>r.jsx("th",{children:c.label},c.key)),r.jsx("th",{children:"Aktion"})]})}),r.jsx("tbody",{children:l.map(c=>r.jsxs("tr",{children:[n.map(u=>r.jsx("td",{children:String(c[u.key]??"")},u.key)),r.jsx("td",{children:r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>i(c),children:"Übernehmen"})})]},c.id))})]})})]})})}function Dl(){return{name:"",committee_type:"general",default_user_id:"",chair_user_id:"",secretary_user_id:""}}function gm(e){return{name:e.name??"",committee_type:e.committee_type??"general",default_user_id:e.default_user_id?String(e.default_user_id):"",chair_user_id:e.chair_user_id?String(e.chair_user_id):"",secretary_user_id:e.secretary_user_id?String(e.secretary_user_id):""}}function L1({open:e,selected:t,form:n,setForm:i,users:s,members:a,membersLoading:o,lookup:l,setLookup:c,error:u,onClose:m,onSubmit:d,onAssignMember:h,onRemoveMember:x}){if(!e)return null;function g(v){return s.find(y=>String(y.id)===String(v))}function p(v,y){i(j=>({...j,[v]:String(y.id)})),c(null)}const w=new Set(a.map(v=>String(v.user_id??v.id))),b=s.filter(v=>!w.has(String(v.id)));return r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"modal-backdrop",onClick:v=>{l||v.target===v.currentTarget&&m()},children:r.jsxs("div",{className:"modal-panel",onClick:v=>v.stopPropagation(),children:[r.jsxs("div",{className:"modal-header",children:[r.jsxs("div",{children:[r.jsx("h2",{style:{margin:0},children:t?"Ausschuss bearbeiten":"Neuen Ausschuss anlegen"}),r.jsx("p",{className:"modal-subtitle",children:"Leitung, Schriftführung und Standard-User werden direkt im Ausschuss gepflegt. Benutzer können mehreren Ausschüssen zugeordnet sein."})]}),r.jsx("button",{className:"modal-close",type:"button",onClick:m,"aria-label":"Schließen",children:"×"})]}),u?r.jsx("div",{className:"alert error",children:u}):null,r.jsxs("form",{className:"form-grid",onSubmit:d,children:[r.jsxs("label",{children:[r.jsx("span",{children:"Name"}),r.jsx("input",{className:"input",value:n.name,onChange:v=>i(y=>({...y,name:v.target.value}))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Typ"}),r.jsx("input",{className:"input",value:n.committee_type,onChange:v=>i(y=>({...y,committee_type:v.target.value}))})]}),[["chair_user_id","Leitung User-ID"],["secretary_user_id","Schriftführung User-ID"],["default_user_id","Standard-User-ID"]].map(([v,y])=>{const j=g(n[v]);return r.jsxs("label",{children:[r.jsx("span",{children:y}),r.jsxs("div",{style:{display:"flex",gap:8},children:[r.jsx("input",{className:"input",value:n[v],readOnly:!0}),r.jsx("button",{className:"btn secondary",type:"button",onClick:()=>c(v),children:"Auswählen"}),r.jsx("button",{className:"btn secondary",type:"button",onClick:()=>i(k=>({...k,[v]:""})),children:"Leeren"})]}),r.jsx("small",{children:j?`${j.full_name} (${j.email})`:"Kein Benutzer ausgewählt"})]},v)}),r.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:10,gridColumn:"1 / -1"},children:[r.jsx("button",{className:"btn secondary",type:"button",onClick:m,children:"Abbrechen"}),r.jsx("button",{className:"btn",type:"submit",children:t?"Speichern":"Erstellen"})]})]}),r.jsx("div",{style:{marginTop:18},children:r.jsx(de,{title:"Benutzerzuordnung",subtitle:t?"Benutzer können diesem Ausschuss zusätzlich als Mitglieder zugeordnet werden.":"Benutzerzuordnung ist nach dem ersten Speichern des Ausschusses möglich.",actions:t?r.jsx("button",{className:"btn secondary",type:"button",onClick:()=>c("assign_committee_member"),children:"Benutzer hinzufügen"}):null,children:t?r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"ID"}),r.jsx("th",{children:"Name"}),r.jsx("th",{children:"E-Mail"}),r.jsx("th",{children:"Rolle"}),r.jsx("th",{children:"Aktiv"}),r.jsx("th",{children:"Aktionen"})]})}),r.jsx("tbody",{children:o?r.jsx("tr",{children:r.jsx("td",{colSpan:6,children:"Benutzer werden geladen …"})}):a.length?a.map(v=>r.jsxs("tr",{children:[r.jsx("td",{children:v.user_id??v.id}),r.jsx("td",{children:v.full_name}),r.jsx("td",{children:v.email}),r.jsx("td",{children:v.role}),r.jsx("td",{children:String(v.is_active!==!1)}),r.jsx("td",{className:"row-actions",children:r.jsx("button",{className:"mini-btn danger",type:"button",onClick:()=>x(v.user_id??v.id),children:"Entfernen"})})]},`${v.user_id??v.id}`)):r.jsx("tr",{children:r.jsx("td",{colSpan:6,children:"Keine Benutzer zugeordnet"})})})]})}):r.jsx("div",{className:"helper-text",children:"Ausschuss zuerst speichern, danach können Mitglieder zugeordnet werden."})})})]})}),l?r.jsx("div",{style:{position:"fixed",inset:0,zIndex:1100},children:r.jsx(nx,{title:l==="assign_committee_member"?"Benutzer dem Ausschuss zuordnen":"Benutzer auswählen",rows:l==="assign_committee_member"?b:s,columns:[{key:"id",label:"ID"},{key:"full_name",label:"Name"},{key:"email",label:"E-Mail"},{key:"role",label:"Rolle"}],onPick:v=>{if(l==="assign_committee_member"){h(v.id),c(null);return}p(l,v)},onClose:()=>c(null)})}):null]})}function M1(){const[e,t]=f.useState([]),[n,i]=f.useState([]),[s,a]=f.useState([]),[o,l]=f.useState(!1),[c,u]=f.useState(null),[m,d]=f.useState(Dl()),[h,x]=f.useState(""),[g,p]=f.useState(""),[w,b]=f.useState(""),[v,y]=f.useState(""),[j,k]=f.useState(null),[N,_]=f.useState(!1);async function S(){b("");try{const[R,K]=await Promise.all([O.get("/committees"),O.get("/users")]);t(Array.isArray(R)?R:[]),i(Array.isArray(K)?K.filter(X=>X.is_active!==!1):[])}catch(R){b(R.message||"Ausschüsse konnten nicht geladen werden.")}}async function P(R){if(!R){a([]);return}l(!0);try{const K=await O.get(`/committees/${R}/members`);a(Array.isArray(K)?K:[])}catch(K){y(K.message||"Mitglieder konnten nicht geladen werden."),a([])}finally{l(!1)}}f.useEffect(()=>{S()},[]);const D=f.useMemo(()=>{const R=h.trim().toLowerCase();return R?e.filter(K=>JSON.stringify(K).toLowerCase().includes(R)):e},[e,h]);function F(){u(null),d(Dl()),a([]),l(!1),p(""),b(""),y(""),k(null),_(!0)}async function T(R){u(R),d(gm(R)),a([]),l(!1),p(""),b(""),y(""),k(null),_(!0),await P(R.id)}function M(){u(null),d(Dl()),a([]),l(!1),y(""),k(null),_(!1)}async function z(R){R.preventDefault(),y(""),p("");const K={name:m.name.trim(),committee_type:m.committee_type.trim(),default_user_id:m.default_user_id?Number(m.default_user_id):null,chair_user_id:m.chair_user_id?Number(m.chair_user_id):null,secretary_user_id:m.secretary_user_id?Number(m.secretary_user_id):null};try{if(c!=null&&c.id)await O.put(`/committees/${c.id}`,K),await S(),await P(c.id),p("Ausschuss gespeichert");else{const X=await O.post("/committees",K);await S(),p("Ausschuss erstellt"),X!=null&&X.id?(u(X),d(gm(X)),await P(X.id)):M()}}catch(X){y(X.message||"Ausschuss konnte nicht gespeichert werden.")}}async function A(R){b(""),p("");try{await O.delete(`/committees/${R}`),(c==null?void 0:c.id)===R&&M(),await S(),p("Ausschuss gelöscht")}catch(K){b(K.message||"Ausschuss konnte nicht gelöscht werden.")}}async function $(R){if(c!=null&&c.id){y("");try{await O.post(`/committees/${c.id}/members`,{user_id:Number(R)}),await P(c.id),p("Benutzer dem Ausschuss zugeordnet")}catch(K){y(K.message||"Benutzer konnte nicht zugeordnet werden.")}}}async function Z(R){if(c!=null&&c.id){y("");try{await O.delete(`/committees/${c.id}/members/${R}`),await P(c.id),p("Benutzer aus Ausschuss entfernt")}catch(K){y(K.message||"Benutzer konnte nicht entfernt werden.")}}}return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .committees-toolbar { + display: flex; + gap: 12px; + align-items: center; + justify-content: space-between; + flex-wrap: wrap; + } + + .modal-backdrop { + position: fixed; + inset: 0; + background: rgba(15, 23, 42, 0.55); + display: flex; + align-items: center; + justify-content: center; + padding: 16px; + z-index: 1000; + } + + .modal-panel { + width: min(960px, 100%); + max-height: 92vh; + overflow: auto; + border-radius: 18px; + background: rgba(255, 255, 255, 0.74); + backdrop-filter: blur(18px); + -webkit-backdrop-filter: blur(18px); + border: 1px solid rgba(255, 255, 255, 0.24); + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25); + padding: 18px; + } + + .modal-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 16px; + margin-bottom: 16px; + } + + .modal-subtitle { + margin: 6px 0 0; + opacity: 0.75; + font-size: 0.95rem; + } + + .modal-close { + border: 0; + background: transparent; + font-size: 28px; + line-height: 1; + cursor: pointer; + padding: 4px 8px; + } + `}),r.jsxs(de,{title:"Ausschüsse",subtitle:"Leitung, Schriftführung und Standard-User werden einmal pro Ausschuss gepflegt. Mitglieder können mehreren Ausschüssen zugeordnet sein.",actions:r.jsxs("div",{className:"committees-toolbar",children:[r.jsx("input",{className:"input search",placeholder:"Suchen...",value:h,onChange:R=>x(R.target.value)}),r.jsx("button",{className:"btn",type:"button",onClick:F,children:"Neuer Ausschuss"})]}),children:[w?r.jsx("div",{className:"alert error",children:w}):null,g?r.jsx("div",{className:"alert success",children:g}):null,r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"ID"}),r.jsx("th",{children:"Name"}),r.jsx("th",{children:"Typ"}),r.jsx("th",{children:"Leitung"}),r.jsx("th",{children:"Schriftführung"}),r.jsx("th",{children:"Standard-User"}),r.jsx("th",{children:"Aktionen"})]})}),r.jsxs("tbody",{children:[D.map(R=>r.jsxs("tr",{onClick:()=>T(R),children:[r.jsx("td",{children:R.id}),r.jsx("td",{children:R.name}),r.jsx("td",{children:R.committee_type}),r.jsx("td",{children:R.chair_user_name||R.chair_user_id||""}),r.jsx("td",{children:R.secretary_user_name||R.secretary_user_id||""}),r.jsx("td",{children:R.default_user_name||R.default_user_id||""}),r.jsxs("td",{className:"row-actions",children:[r.jsx("button",{className:"mini-btn",type:"button",onClick:K=>{K.stopPropagation(),T(R)},children:"Bearbeiten"}),r.jsx("button",{className:"mini-btn danger",type:"button",onClick:K=>{K.stopPropagation(),A(R.id)},children:"Löschen"})]})]},R.id)),D.length?null:r.jsx("tr",{children:r.jsx("td",{colSpan:7,children:"Keine Ausschüsse gefunden"})})]})]})})]}),r.jsx(L1,{open:N,selected:c,form:m,setForm:d,users:n,members:s,membersLoading:o,lookup:j,setLookup:k,error:v,onClose:M,onSubmit:z,onAssignMember:$,onRemoveMember:Z})]})}function Al(){return{full_name:"",email:"",role:"member",committee_id:"",is_active:!0,security_classification:"standard",force_password_reset:!1}}function F1(e){return{full_name:e.full_name??"",email:e.email??"",role:e.role??"member",committee_id:e.committee_id?String(e.committee_id):"",is_active:!!e.is_active,security_classification:e.security_classification??"standard",force_password_reset:!!e.force_password_reset}}function $1({open:e,selected:t,form:n,setForm:i,committees:s,error:a,onClose:o,onSubmit:l}){return e?r.jsx("div",{className:"modal-backdrop",onClick:o,children:r.jsxs("div",{className:"modal-panel",onClick:c=>c.stopPropagation(),children:[r.jsxs("div",{className:"modal-header",children:[r.jsxs("div",{children:[r.jsx("h2",{style:{margin:0},children:t?"Benutzer bearbeiten":"Neuen Benutzer anlegen"}),r.jsx("p",{className:"modal-subtitle",children:"Ausschuss auswählen, die Ausschuss-ID wird im Datensatz gespeichert."})]}),r.jsx("button",{className:"modal-close",type:"button",onClick:o,"aria-label":"Schließen",children:"×"})]}),a?r.jsx("div",{className:"alert error",children:a}):null,r.jsxs("form",{className:"form-grid",onSubmit:l,children:[r.jsxs("label",{children:[r.jsx("span",{children:"Name"}),r.jsx("input",{className:"input",value:n.full_name,onChange:c=>i({...n,full_name:c.target.value})})]}),r.jsxs("label",{children:[r.jsx("span",{children:"E-Mail"}),r.jsx("input",{className:"input",type:"email",value:n.email,onChange:c=>i({...n,email:c.target.value})})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Rolle"}),r.jsxs("select",{className:"input",value:n.role,onChange:c=>i({...n,role:c.target.value}),children:[r.jsx("option",{value:"admin",children:"admin"}),r.jsx("option",{value:"chair",children:"chair"}),r.jsx("option",{value:"secretary",children:"secretary"}),r.jsx("option",{value:"member",children:"member"}),r.jsx("option",{value:"advisor",children:"advisor"})]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Ausschuss"}),r.jsxs("select",{className:"input",value:n.committee_id,onChange:c=>i({...n,committee_id:c.target.value}),children:[r.jsx("option",{value:"",children:"Bitte auswählen"}),s.map(c=>r.jsx("option",{value:c.id,children:c.name},c.id))]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Sicherheitsklasse"}),r.jsx("input",{className:"input",value:n.security_classification,onChange:c=>i({...n,security_classification:c.target.value})})]}),r.jsxs("label",{style:{display:"flex",gap:10,alignItems:"center",marginTop:26},children:[r.jsx("input",{type:"checkbox",checked:!!n.is_active,onChange:c=>i({...n,is_active:c.target.checked})}),r.jsx("span",{children:"Aktiv"})]}),r.jsxs("label",{style:{display:"flex",gap:10,alignItems:"center",gridColumn:"1 / -1"},children:[r.jsx("input",{type:"checkbox",checked:!!n.force_password_reset,onChange:c=>i({...n,force_password_reset:c.target.checked})}),r.jsx("span",{children:"Passwort-Reset erzwingen"})]}),r.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:10,gridColumn:"1 / -1"},children:[r.jsx("button",{className:"btn secondary",type:"button",onClick:o,children:"Abbrechen"}),r.jsx("button",{className:"btn",type:"submit",children:t?"Speichern":"Erstellen"})]})]})]})}):null}function q1(){const[e,t]=f.useState([]),[n,i]=f.useState([]),[s,a]=f.useState(null),[o,l]=f.useState(Al()),[c,u]=f.useState(""),[m,d]=f.useState(""),[h,x]=f.useState(""),[g,p]=f.useState(""),[w,b]=f.useState(!1);async function v(){x("");try{const[D,F]=await Promise.all([O.get("/users"),O.get("/committees")]);t(Array.isArray(D)?D:[]),i(Array.isArray(F)?F:[])}catch(D){x(D.message)}}f.useEffect(()=>{v()},[]);const y=f.useMemo(()=>{const D=c.trim().toLowerCase();return D?e.filter(F=>JSON.stringify(F).toLowerCase().includes(D)):e},[e,c]);function j(D){var F;return((F=n.find(T=>String(T.id)===String(D)))==null?void 0:F.name)||""}function k(){a(null),l(Al()),p(""),d(""),x(""),b(!0)}function N(D){a(D),l(F1(D)),p(""),d(""),x(""),b(!0)}function _(){a(null),l(Al()),p(""),b(!1)}async function S(D){D.preventDefault(),p(""),d("");const F={full_name:o.full_name.trim(),email:o.email.trim(),role:o.role,committee_id:o.committee_id?Number(o.committee_id):null,is_active:!!o.is_active,security_classification:o.security_classification.trim(),force_password_reset:!!o.force_password_reset};try{const T=s!=null&&s.id?"Benutzer gespeichert":"Benutzer erstellt";s!=null&&s.id?await O.put(`/users/${s.id}`,F):await O.post("/users",F),await v(),_(),d(T)}catch(T){p(T.message)}}async function P(D){x(""),d("");try{await O.delete(`/users/${D}`),(s==null?void 0:s.id)===D&&_(),await v(),d("Benutzer deaktiviert")}catch(F){x(F.message)}}return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .users-toolbar { + display: flex; + gap: 12px; + align-items: center; + justify-content: space-between; + flex-wrap: wrap; + } + + .modal-backdrop { + position: fixed; + inset: 0; + background: rgba(15, 23, 42, 0.55); + display: flex; + align-items: center; + justify-content: center; + padding: 16px; + z-index: 1000; + } + + .modal-panel { + width: min(900px, 100%); + max-height: 92vh; + overflow: auto; + border-radius: 18px; + background: rgba(255, 255, 255, 0.74); + backdrop-filter: blur(18px); + -webkit-backdrop-filter: blur(18px); + border: 1px solid rgba(255, 255, 255, 0.24); + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25); + padding: 18px; + } + + .modal-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 16px; + margin-bottom: 16px; + } + + .modal-subtitle { + margin: 6px 0 0; + opacity: 0.75; + font-size: 0.95rem; + } + + .modal-close { + border: 0; + background: transparent; + font-size: 28px; + line-height: 1; + cursor: pointer; + padding: 4px 8px; + } + `}),r.jsxs(de,{title:"Benutzer",subtitle:"Ausschuss wird per Auswahl übernommen, die interne ID bleibt dabei eindeutig erhalten.",actions:r.jsxs("div",{className:"users-toolbar",children:[r.jsx("input",{className:"input search",placeholder:"Suchen...",value:c,onChange:D=>u(D.target.value)}),r.jsx("button",{className:"btn",type:"button",onClick:k,children:"Neuer Benutzer"})]}),children:[h?r.jsx("div",{className:"alert error",children:h}):null,m?r.jsx("div",{className:"alert success",children:m}):null,r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"ID"}),r.jsx("th",{children:"Name"}),r.jsx("th",{children:"E-Mail"}),r.jsx("th",{children:"Rolle"}),r.jsx("th",{children:"Ausschuss"}),r.jsx("th",{children:"Aktiv"}),r.jsx("th",{children:"Aktionen"})]})}),r.jsxs("tbody",{children:[y.map(D=>r.jsxs("tr",{onClick:()=>N(D),children:[r.jsx("td",{children:D.id}),r.jsx("td",{children:D.full_name}),r.jsx("td",{children:D.email}),r.jsx("td",{children:D.role}),r.jsx("td",{children:j(D.committee_id)}),r.jsx("td",{children:String(!!D.is_active)}),r.jsxs("td",{className:"row-actions",children:[r.jsx("button",{className:"mini-btn",type:"button",onClick:F=>{F.stopPropagation(),N(D)},children:"Bearbeiten"}),r.jsx("button",{className:"mini-btn danger",type:"button",onClick:F=>{F.stopPropagation(),P(D.id)},children:"Deaktivieren"})]})]},D.id)),y.length?null:r.jsx("tr",{children:r.jsx("td",{colSpan:7,children:"Keine Benutzer gefunden"})})]})]})})]}),r.jsx($1,{open:w,selected:s,form:o,setForm:l,committees:n,error:g,onClose:_,onSubmit:S})]})}const xm=[{value:"sehr_hoch",label:"Sehr hoch"},{value:"hoch",label:"Hoch"},{value:"mittel",label:"Mittel"},{value:"niedrig",label:"Niedrig"}],V1=[{value:"intern",label:"Intern"},{value:"vertraulich",label:"Vertraulich"},{value:"streng_vertraulich",label:"Streng vertraulich"}],U1=["neu","in_bearbeitung","rueckfrage","abgeschlossen"],H1=[{value:"",label:"Bitte auswählen"},{value:"it",label:"IT"},{value:"personal",label:"Personal"},{value:"fertigung",label:"Fertigung"},{value:"qualitaet",label:"Qualität"},{value:"logistik",label:"Logistik"},{value:"einkauf",label:"Einkauf"},{value:"verwaltung",label:"Verwaltung"},{value:"sonstiges",label:"Sonstiges"}];function Rl(e){if(e==null)return null;const t=String(e).trim();return t||null}function K1(){const e=localStorage.getItem("br_user");return e?JSON.parse(e):null}function W1(e){if(!e||e.is_closed===!0||e.closed===!0||e.closed_at)return!1;const t=String(e.status??"").trim().toLowerCase();return!["geschlossen","closed","archiviert","archived","beendet"].includes(t)}function vm(e){const t=Number(e||0);return t?t<1024?`${t} B`:t<1024*1024?`${Math.round(t/1024)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`:"0 KB"}function G1(e){if(!e)return"";const t=new Date(e);return Number.isNaN(t.getTime())?"":t.toLocaleString("de-DE")}function Ol(e){return{case_number:"",title:"",case_type_id:"",status:"neu",priority:"mittel",confidentiality_level:"intern",summary:"",affected_employee_name:"",department:"",committee_id:"",owner_user_id:e?String(e):"",legal_hold:!1,attachmentFiles:[],team_role_ids:[]}}function X1(e){return{case_number:e.case_number??"",title:e.title??"",case_type_id:e.case_type_id?String(e.case_type_id):"",status:e.status??"neu",priority:e.priority??"mittel",confidentiality_level:e.confidentiality_level??"intern",summary:e.summary??"",affected_employee_name:e.affected_employee_name??"",department:e.department??"",committee_id:e.committee_id?String(e.committee_id):"",owner_user_id:e.owner_user_id?String(e.owner_user_id):"",legal_hold:!!e.legal_hold,attachmentFiles:[],team_role_ids:Array.isArray(e.team_role_ids)?e.team_role_ids.map(String):[]}}function Q1(e){return{id:e.id,title:e.title||e.file_name||e.original_filename||"Datei",file_name:e.file_name||e.original_filename||e.title||"Datei",size_bytes:e.size_bytes||0,mime_type:e.mime_type||"",uploaded_at:e.uploaded_at||e.created_at||null,uploaded_by_name:e.uploaded_by_name||"",uploaded_by_email:e.uploaded_by_email||""}}function Z1(e){const t=String((e==null?void 0:e.mime_type)||"").toLowerCase();return t.startsWith("image/")||t==="application/pdf"||t.startsWith("text/")}function Y1(){const e=f.useMemo(()=>K1(),[]),[t,n]=f.useState([]),[i,s]=f.useState({caseTypes:[],users:[],committees:[],meetings:[],teamRoles:[],departments:[]}),[a,o]=f.useState([]),[l,c]=f.useState(()=>Ol(e==null?void 0:e.id)),[u,m]=f.useState(null),[d,h]=f.useState(""),[x,g]=f.useState(""),[p,w]=f.useState(""),[b,v]=f.useState(!1),[y,j]=f.useState(!1),[k,N]=f.useState(""),[_,S]=f.useState(""),[P,D]=f.useState("15"),[F,T]=f.useState(!1),[M,z]=f.useState([]),[A,$]=f.useState(!1),[Z,R]=f.useState(null),[K,X]=f.useState(0),ae=Jt();f.useEffect(()=>{const C=new URLSearchParams(ae.search).get("open");if(!C||!t.length)return;const G=t.find(ne=>String(ne.id)===String(C));G&&choose(G)},[ae.search,t]);async function J(){w("");try{const[C,G,ne]=await Promise.all([O.get("/cases"),O.get("/cases/meta"),O.get("/agenda-items")]);n(Array.isArray(C)?C:[]),s(G||{caseTypes:[],users:[],committees:[],meetings:[],teamRoles:[],departments:[]}),o(Array.isArray(ne)?ne:[])}catch(C){w(C.message||"Daten konnten nicht geladen werden.")}}f.useEffect(()=>{J()},[]);const ue=f.useMemo(()=>{const C=d.trim().toLowerCase();return C?t.filter(G=>JSON.stringify(G).toLowerCase().includes(C)):t},[t,d]),pe=f.useMemo(()=>{const C=Array.isArray(i.departments)?i.departments.map(ye=>({value:ye.code,label:ye.label})):[],ne=!l.department||C.some(ye=>ye.value===l.department)?C:[{value:l.department,label:l.department},...C];return[{value:"",label:"Bitte auswählen"},...ne.length?ne:H1.slice(1)]},[i.departments,l.department]),ee=f.useMemo(()=>{const C=Number(l.committee_id||(u==null?void 0:u.committee_id)||0),G=(i.meetings||[]).filter(W1);return C?G.filter(ne=>Number(ne.committee_id)===Number(C)):G},[i.meetings,l.committee_id,u==null?void 0:u.committee_id]),le=f.useMemo(()=>u!=null&&u.id?a.filter(C=>!C.case_id||Number(C.case_id)===Number(u.id)):a,[a,u==null?void 0:u.id]);function ge(){z([]),$(!1),R(null),X(C=>C+1)}async function Y(C){$(!0);try{const G=await O.get(`/cases/${C}/attachments`),ne=Array.isArray(G)?G:Array.isArray(G==null?void 0:G.items)?G.items:[];z(ne.map(Q1))}catch(G){z([]),w(G.message||"Anlagen konnten nicht geladen werden.")}finally{$(!1)}}function fe(){m(null),c(Ol(e==null?void 0:e.id)),ge(),j(!1),N(""),S(""),D("15"),w(""),g(""),v(!0)}async function Se(C,G=!1){m(C),c(X1(C)),ge(),j(G),N(""),S(""),D("15"),w(""),g(""),v(!0),await Y(C.id)}function he(){v(!1),j(!1),N(""),S(""),D("15"),m(null),c(Ol(e==null?void 0:e.id)),ge()}function q(){return{title:l.title.trim(),case_type_id:Number(l.case_type_id),status:l.status,priority:l.priority,confidentiality_level:l.confidentiality_level,summary:Rl(l.summary),affected_employee_name:Rl(l.affected_employee_name),department:Rl(l.department),committee_id:l.committee_id?Number(l.committee_id):null,owner_user_id:l.owner_user_id?Number(l.owner_user_id):e==null?void 0:e.id,legal_hold:!!l.legal_hold,team_role_ids:Array.isArray(l.team_role_ids)?l.team_role_ids.map(Number):[]}}function re(C){const G=Array.from(C.target.files||[]);G.length&&(c(ne=>({...ne,attachmentFiles:[...ne.attachmentFiles,...G]})),X(ne=>ne+1))}function me(C){c(G=>({...G,attachmentFiles:G.attachmentFiles.filter((ne,ye)=>ye!==C)}))}async function V(C){if(!(!(u!=null&&u.id)||!window.confirm("Diese gespeicherte Datei wirklich entfernen?"))){R(C),w(""),g("");try{await O.delete(`/cases/${u.id}/attachments/${C}`),z(ne=>ne.filter(ye=>ye.id!==C)),n(ne=>ne.map(ye=>ye.id===u.id?{...ye,attachment_count:Math.max(0,Number(ye.attachment_count||0)-1)}:ye)),m(ne=>ne&&{...ne,attachment_count:Math.max(0,Number(ne.attachment_count||0)-1)}),g("Datei entfernt")}catch(ne){w(ne.message||"Datei konnte nicht entfernt werden.")}finally{R(null)}}}async function te(C){try{await _i(`/documents/${C.id}/view`)}catch(G){w(G.message||"Datei konnte nicht angezeigt werden.")}}async function Ne(C){try{await ji(`/documents/${C.id}/download`,C.file_name||C.title||`datei-${C.id}`)}catch(G){w(G.message||"Datei konnte nicht heruntergeladen werden.")}}async function Xe(C){if(!Array.isArray(l.attachmentFiles)||l.attachmentFiles.length===0)return;const G=new FormData;l.attachmentFiles.forEach(ne=>{G.append("files",ne)}),await O.post(`/cases/${C}/attachments`,G)}async function E(C){if(C.preventDefault(),w(""),g(""),!l.title.trim()){w("Bitte einen Titel eingeben.");return}if(!l.case_type_id){w("Bitte einen Typ auswählen.");return}T(!0);try{const G=q();let ne;u!=null&&u.id?ne=await O.put(`/cases/${u.id}`,G):ne=await O.post("/cases",G),await Xe(ne.id),await J(),g(u!=null&&u.id?"Vorgang gespeichert":`Vorgang erstellt: ${ne.case_number}`),he()}catch(G){w(G.message||"Speichern fehlgeschlagen.")}finally{T(!1)}}async function B(C){w(""),g("");try{await O.delete(`/cases/${C}`),await J(),(u==null?void 0:u.id)===C&&he(),g("Vorgang gelöscht")}catch(G){w(G.message||"Löschen fehlgeschlagen.")}}async function U(){if(u!=null&&u.id){w(""),g("");try{const C=await O.post(`/cases/${u.id}/add-to-agenda`,{meeting_id:Number(k),agenda_item_id:_?Number(_):null,duration_minutes:P?Number(P):null});g(`TOP ${C.agenda_number} für Sitzung ${C.meeting_number} zugewiesen`),j(!1),await J(),he()}catch(C){w(C.message||"TOP konnte nicht an die Sitzung angehängt werden.")}}}return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .cases-toolbar { + display: flex; + gap: 12px; + align-items: center; + justify-content: space-between; + flex-wrap: wrap; + } + + .row-actions { + display: flex; + gap: 8px; + flex-wrap: wrap; + } + + .modal-backdrop { + position: fixed; + inset: 0; + background: rgba(15, 23, 42, 0.55); + display: flex; + align-items: center; + justify-content: center; + padding: 16px; + z-index: 1000; + } + + .modal-panel { + width: min(1100px, 100%); + max-height: 92vh; + overflow: auto; + border-radius: 18px; + background: rgba(255, 255, 255, 0.74); + backdrop-filter: blur(18px); + -webkit-backdrop-filter: blur(18px); + border: 1px solid rgba(255, 255, 255, 0.24); + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25); + padding: 18px; + } + + .modal-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 16px; + margin-bottom: 16px; + } + + .modal-subtitle { + margin: 6px 0 0; + opacity: 0.75; + font-size: 0.95rem; + } + + .modal-close { + border: 0; + background: transparent; + font-size: 28px; + line-height: 1; + cursor: pointer; + padding: 4px 8px; + } + + .modal-top-actions { + display: flex; + gap: 8px; + flex-wrap: wrap; + margin-bottom: 12px; + } + + .form-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 14px; + } + + .form-grid > label.full { + grid-column: 1 / -1; + } + + .upload-list { + list-style: none; + margin: 10px 0 0; + padding: 0; + display: grid; + gap: 8px; + } + + .upload-item { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + padding: 10px 12px; + border: 1px solid rgba(148, 163, 184, 0.35); + border-radius: 12px; + background: rgba(148, 163, 184, 0.08); + } + + .upload-item-main { + min-width: 0; + } + + .upload-item-name { + font-weight: 600; + word-break: break-word; + } + + .upload-item-meta { + margin-top: 3px; + font-size: 0.85rem; + opacity: 0.75; + } + + .upload-remove-btn { + border: 0; + background: transparent; + font-size: 20px; + line-height: 1; + cursor: pointer; + padding: 4px 6px; + border-radius: 8px; + } + + .upload-remove-btn:hover { + background: rgba(239, 68, 68, 0.12); + } + + .upload-remove-btn:disabled { + opacity: 0.45; + cursor: not-allowed; + } + + .helper-text { + margin-top: 6px; + font-size: 0.9rem; + opacity: 0.75; + } + + .attachments-section { + display: grid; + gap: 10px; + } + + .permission-list { + display: grid; + gap: 8px; + } + + .permission-check { + display: flex; + gap: 8px; + align-items: center; + padding: 8px 10px; + border: 1px solid rgba(148, 163, 184, 0.35); + border-radius: 12px; + } + + .attachments-title { + font-weight: 600; + margin-top: 8px; + } + + @media (max-width: 860px) { + .form-grid { + grid-template-columns: 1fr; + } + + .modal-panel { + padding: 14px; + } + } + `}),r.jsx("div",{className:"page-grid",children:r.jsxs(de,{title:"Vorgänge",subtitle:"Vorgangsnummern werden automatisch als Jahr_Monat_fortlaufende Nummer erzeugt. Beim Erstellen entsteht automatisch ein TOP im Bestand.",actions:r.jsxs("div",{className:"cases-toolbar",children:[r.jsx("input",{className:"input search",placeholder:"Suchen...",value:d,onChange:C=>h(C.target.value)}),r.jsx("button",{className:"btn",type:"button",onClick:fe,children:"Neuer Vorgang"})]}),children:[p?r.jsx("div",{className:"alert error",children:p}):null,x?r.jsx("div",{className:"alert success",children:x}):null,r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"ID"}),r.jsx("th",{children:"Vorgangsnummer"}),r.jsx("th",{children:"Titel"}),r.jsx("th",{children:"Typ"}),r.jsx("th",{children:"Status"}),r.jsx("th",{children:"Prio"}),r.jsx("th",{children:"Verantwortlich"}),r.jsx("th",{children:"Abteilung"}),r.jsx("th",{children:"Ausschuss"}),r.jsx("th",{children:"Dateien"}),r.jsx("th",{children:"Aktionen"})]})}),r.jsxs("tbody",{children:[ue.map(C=>{var G;return r.jsxs("tr",{onClick:()=>Se(C),children:[r.jsx("td",{children:C.id}),r.jsx("td",{children:C.case_number}),r.jsx("td",{children:C.title}),r.jsx("td",{children:C.case_type}),r.jsx("td",{children:C.status}),r.jsx("td",{children:((G=xm.find(ne=>ne.value===C.priority))==null?void 0:G.label)||C.priority}),r.jsx("td",{children:C.owner_name||C.owner_user_id}),r.jsx("td",{children:C.department_label||C.department||""}),r.jsx("td",{children:C.committee_name||C.committee_id||""}),r.jsx("td",{children:C.attachment_count??0}),r.jsxs("td",{className:"row-actions",children:[r.jsx("button",{className:"mini-btn",type:"button",onClick:ne=>{ne.stopPropagation(),Se(C)},children:"Bearbeiten"}),r.jsx("button",{className:"mini-btn",type:"button",onClick:ne=>{ne.stopPropagation(),Se(C,!0)},children:"TOP an Sitzung"}),r.jsx("button",{className:"mini-btn danger",type:"button",onClick:ne=>{ne.stopPropagation(),B(C.id)},children:"Löschen"})]})]},C.id)}),ue.length===0?r.jsx("tr",{children:r.jsx("td",{colSpan:"11",children:"Keine Vorgänge gefunden."})}):null]})]})})]})}),b?r.jsx("div",{className:"modal-backdrop",onClick:he,children:r.jsxs("div",{className:"modal-panel",onClick:C=>C.stopPropagation(),children:[r.jsxs("div",{className:"modal-header",children:[r.jsxs("div",{children:[r.jsx("h2",{style:{margin:0},children:u?"Vorgang bearbeiten":"Neuen Vorgang anlegen"}),r.jsx("p",{className:"modal-subtitle",children:"Verantwortliche Person ist beim Neuanlegen automatisch auf den Erfasser vorbelegt."})]}),r.jsx("button",{className:"modal-close",type:"button",onClick:he,"aria-label":"Schließen",children:"×"})]}),u?r.jsxs("div",{className:"modal-top-actions",children:[r.jsx("button",{className:"btn secondary",type:"button",onClick:()=>j(!1),children:"Stammdaten"}),r.jsx("button",{className:"btn secondary",type:"button",onClick:()=>j(!0),children:"TOP an Sitzung"})]}):null,p?r.jsx("div",{className:"alert error",children:p}):null,y?r.jsxs("div",{className:"form-grid",children:[r.jsxs("label",{className:"full",children:[r.jsx("span",{children:"Sitzung"}),r.jsxs("select",{className:"input",value:k,onChange:C=>N(C.target.value),children:[r.jsx("option",{value:"",children:"Bitte auswählen"}),ee.map(C=>r.jsxs("option",{value:C.id,children:[C.meeting_number," – ",C.title," (",C.meeting_date,")"]},C.id))]}),r.jsx("div",{className:"helper-text",children:"Es werden nur offene Sitzungen angezeigt."})]}),r.jsxs("label",{className:"full",children:[r.jsx("span",{children:"Vorhandenen TOP-Bestand wählen"}),r.jsxs("select",{className:"input",value:_,onChange:C=>S(C.target.value),children:[r.jsx("option",{value:"",children:"Automatischen TOP aus diesem Vorgang verwenden oder erzeugen"}),le.map(C=>r.jsxs("option",{value:C.id,children:[C.case_number?`${C.case_number} – `:"",C.title]},C.id))]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Dauer in Minuten"}),r.jsx("input",{className:"input",type:"number",min:"0",max:"600",value:P,onChange:C=>D(C.target.value)})]}),r.jsxs("div",{className:"full",style:{display:"flex",gap:10,flexWrap:"wrap"},children:[r.jsx("button",{className:"btn",type:"button",disabled:!k,onClick:U,children:"Automatisch an Sitzung anhängen"}),r.jsx("button",{className:"btn secondary",type:"button",onClick:()=>j(!1),children:"Zurück zu Stammdaten"})]})]}):r.jsxs("form",{className:"form-grid",onSubmit:E,children:[r.jsxs("label",{children:[r.jsx("span",{children:"Vorgangsnummer"}),r.jsx("input",{className:"input",value:u?l.case_number:"wird automatisch vergeben",disabled:!0})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Titel"}),r.jsx("input",{className:"input",value:l.title,onChange:C=>c({...l,title:C.target.value})})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Typ"}),r.jsxs("select",{className:"input",value:l.case_type_id,onChange:C=>c({...l,case_type_id:C.target.value}),children:[r.jsx("option",{value:"",children:"Bitte auswählen"}),i.caseTypes.map(C=>r.jsx("option",{value:C.id,children:C.label},C.id))]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Status"}),r.jsx("select",{className:"input",value:l.status,onChange:C=>c({...l,status:C.target.value}),children:U1.map(C=>r.jsx("option",{value:C,children:C},C))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Priorität"}),r.jsx("select",{className:"input",value:l.priority,onChange:C=>c({...l,priority:C.target.value}),children:xm.map(C=>r.jsx("option",{value:C.value,children:C.label},C.value))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Vertraulichkeit"}),r.jsx("select",{className:"input",value:l.confidentiality_level,onChange:C=>c({...l,confidentiality_level:C.target.value}),children:V1.map(C=>r.jsx("option",{value:C.value,children:C.label},C.value))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Verantwortliche Person"}),r.jsxs("select",{className:"input",value:l.owner_user_id,onChange:C=>c({...l,owner_user_id:C.target.value}),children:[r.jsx("option",{value:"",children:"Bitte auswählen"}),i.users.map(C=>r.jsxs("option",{value:C.id,children:[C.full_name," (",C.email,")"]},C.id))]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Ausschuss"}),r.jsxs("select",{className:"input",value:l.committee_id,onChange:C=>c({...l,committee_id:C.target.value}),children:[r.jsx("option",{value:"",children:"Bitte auswählen"}),i.committees.map(C=>r.jsx("option",{value:C.id,children:C.name},C.id))]})]}),r.jsxs("div",{className:"full",children:[r.jsx("span",{children:"Teamrollen mit Vorgangs-Zugriff"}),r.jsx("div",{className:"permission-list",children:(i.teamRoles||[]).map(C=>{const G=String(C.id),ne=l.team_role_ids.includes(G);return r.jsxs("label",{className:"permission-check",children:[r.jsx("input",{type:"checkbox",checked:ne,onChange:()=>{const ye=new Set(l.team_role_ids);ye.has(G)?ye.delete(G):ye.add(G),c({...l,team_role_ids:Array.from(ye)})}}),r.jsx("span",{children:C.name})]},C.id)})}),r.jsx("div",{className:"helper-text",children:"Diese Teamrollen erhalten Lesezugriff auf diesen Vorgang. Chair und Ersteller sehen den Vorgang immer."})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Betroffene Person"}),r.jsx("input",{className:"input",value:l.affected_employee_name,onChange:C=>c({...l,affected_employee_name:C.target.value})})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Abteilung"}),r.jsx("select",{className:"input",value:l.department,onChange:C=>c({...l,department:C.target.value}),children:pe.map(C=>r.jsx("option",{value:C.value,children:C.label},C.value||"empty"))})]}),r.jsxs("label",{className:"full",children:[r.jsx("span",{children:"Sachverhalt"}),r.jsx("textarea",{className:"input textarea",value:l.summary,onChange:C=>c({...l,summary:C.target.value})})]}),r.jsxs("label",{className:"full",children:[r.jsx("span",{children:"Dateien"}),r.jsxs("div",{className:"attachments-section",children:[r.jsx("input",{className:"input",type:"file",multiple:!0,onChange:re},K),r.jsx("div",{className:"helper-text",children:"Bereits gespeicherte Dateien werden unten angezeigt. Neue Dateien kannst du direkt hinzufügen oder mit X wieder entfernen."}),u?r.jsx("div",{className:"attachments-title",children:"Gespeicherte Dateien"}):null,u&&A?r.jsx("div",{className:"helper-text",children:"Dateien werden geladen..."}):null,u&&!A&&M.length===0?r.jsx("div",{className:"helper-text",children:"Keine gespeicherten Dateien vorhanden."}):null,M.length>0?r.jsx("ul",{className:"upload-list",children:M.map(C=>r.jsxs("li",{className:"upload-item",children:[r.jsxs("div",{className:"upload-item-main",children:[r.jsx("div",{className:"upload-item-name",children:C.file_name}),r.jsx("div",{className:"upload-item-meta",children:vm(C.size_bytes)}),C.uploaded_at?r.jsxs("div",{className:"upload-item-meta",children:["Hochgeladen: ",G1(C.uploaded_at)]}):null,C.uploaded_by_name?r.jsxs("div",{className:"upload-item-meta",children:["Von: ",C.uploaded_by_name]}):null]}),r.jsxs("div",{className:"row-actions",children:[Z1(C)?r.jsx("button",{type:"button",className:"mini-btn",onClick:()=>te(C),children:"Anzeigen"}):null,r.jsx("button",{type:"button",className:"mini-btn",onClick:()=>Ne(C),children:"Download"}),r.jsx("button",{type:"button",className:"upload-remove-btn",title:"Datei entfernen",disabled:Z===C.id,onClick:()=>V(C.id),children:"×"})]})]},C.id))}):null,r.jsx("div",{className:"attachments-title",children:"Neue Dateien zum Hochladen"}),l.attachmentFiles.length===0?r.jsx("div",{className:"helper-text",children:"Keine neuen Dateien ausgewählt."}):r.jsx("ul",{className:"upload-list",children:l.attachmentFiles.map((C,G)=>r.jsxs("li",{className:"upload-item",children:[r.jsxs("div",{className:"upload-item-main",children:[r.jsx("div",{className:"upload-item-name",children:C.name}),r.jsx("div",{className:"upload-item-meta",children:vm(C.size)})]}),r.jsx("button",{type:"button",className:"upload-remove-btn",title:"Aus Auswahl entfernen",onClick:()=>me(G),children:"×"})]},`${C.name}-${C.size}-${G}`))})]})]}),r.jsx("label",{className:"full",children:r.jsxs("span",{children:[r.jsx("input",{type:"checkbox",checked:!!l.legal_hold,onChange:C=>c({...l,legal_hold:C.target.checked}),style:{marginRight:8}}),"Legal Hold"]})}),r.jsxs("div",{className:"full",style:{display:"flex",gap:10,flexWrap:"wrap"},children:[r.jsx("button",{className:"btn",type:"submit",disabled:F,children:F?"Speichern...":u?"Speichern":"Erstellen"}),r.jsx("button",{className:"btn secondary",type:"button",onClick:he,children:"Abbrechen"})]})]})]})}):null]})}const Il=typeof window>"u"?global:window,Ll="@griffel/";function J1(e,t){return Il[Symbol.for(Ll+e)]||(Il[Symbol.for(Ll+e)]=t),Il[Symbol.for(Ll+e)]}const pu=J1("DEFINITION_LOOKUP_TABLE",{}),es="data-make-styles-bucket",ej="data-priority",hu="f",gu=7,Td="___",tj=Td.length+gu,nj=0,rj=1,ij={all:1,borderColor:1,borderStyle:1,borderWidth:1,borderBlock:1,borderBlockEnd:1,borderBlockStart:1,borderInline:1,borderInlineEnd:1,borderInlineStart:1},xu="DO_NOT_USE_DIRECTLY: @griffel/reset-value";function ws(e){for(var t=0,n,i=0,s=e.length;s>=4;++i,s-=4)n=e.charCodeAt(i)&255|(e.charCodeAt(++i)&255)<<8|(e.charCodeAt(++i)&255)<<16|(e.charCodeAt(++i)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,t=(n&65535)*1540483477+((n>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(s){case 3:t^=(e.charCodeAt(i+2)&255)<<16;case 2:t^=(e.charCodeAt(i+1)&255)<<8;case 1:t^=e.charCodeAt(i)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}function sj(e){const t=e.length;if(t===gu)return e;for(let n=t;n0&&(t+=h.slice(0,x)),n+=g,i[d]=g}}}if(n==="")return t.slice(0,-1);const s=bm[n];if(s!==void 0)return t+s;const a=[];for(let d=0;do.cssText):s}}}const lj=["r","d","l","v","w","f","i","h","a","s","k","t","m","c"],ym=lj.reduce((e,t,n)=>(e[t]=n,e),{});function cj(e,t,n){return(e==="m"?e+t:e)+n}function uj(e,t,n,i,s={}){var a,o;const l=e==="m",c=(a=s.m)!==null&&a!==void 0?a:"0",u=(o=s.p)!==null&&o!==void 0?o:0,m=cj(e,c,u);if(!i.stylesheets[m]){const d=t&&t.createElement("style"),h=oj(d,e,u,Object.assign({},i.styleElementAttributes,l&&{media:c}));i.stylesheets[m]=h,t!=null&&t.head&&d&&t.head.insertBefore(d,fj(t,n,e,i,s))}return i.stylesheets[m]}function dj(e,t,n){var i,s;const a=t+((i=n.m)!==null&&i!==void 0?i:""),o=e.getAttribute(es)+((s=e.media)!==null&&s!==void 0?s:"");return a===o}function fj(e,t,n,i,s={}){var a,o;const l=ym[n],c=(a=s.m)!==null&&a!==void 0?a:"",u=(o=s.p)!==null&&o!==void 0?o:0;let m=p=>l-ym[p.getAttribute(es)],d=e.head.querySelectorAll(`[${es}]`);if(n==="m"){const p=e.head.querySelectorAll(`[${es}="${n}"]`);p.length&&(d=p,m=w=>i.compareMediaQueries(c,w.media))}const h=p=>dj(p,n,s)?u-Number(p.getAttribute("data-priority")):m(p),x=d.length;let g=x-1;for(;g>=0;){const p=d.item(g);if(h(p)>0)return p.nextSibling;g--}return x>0?d.item(0):t?t.nextSibling:null}function jm(e,t){try{e.insertRule(t)}catch{}}let mj=0;const pj=(e,t)=>et?1:0;function hj(e=typeof document>"u"?void 0:document,t={}){const{classNameHashSalt:n,unstable_filterCSSRule:i,insertionPoint:s,styleElementAttributes:a,compareMediaQueries:o=pj}=t,l={classNameHashSalt:n,insertionCache:{},stylesheets:{},styleElementAttributes:Object.freeze(a),compareMediaQueries:o,id:`d${mj++}`,insertCSSRules(c){for(const u in c){const m=c[u];for(let d=0,h=m.length;d{const e={};return function(n,i){e[n.id]===void 0&&(n.insertCSSRules(i),e[n.id]=!0)}};function sx(e){return e.reduce(function(t,n){var i=n[0],s=n[1];return t[i]=s,t[s]=i,t},{})}function gj(e){return typeof e=="boolean"}function xj(e){return typeof e=="function"}function Ui(e){return typeof e=="number"}function vj(e){return e===null||typeof e>"u"}function bj(e){return e&&typeof e=="object"}function yj(e){return typeof e=="string"}function Oa(e,t){return e.indexOf(t)!==-1}function jj(e){return parseFloat(e)===0?e:e[0]==="-"?e.slice(1):"-"+e}function ma(e,t,n,i){return t+jj(n)+i}function _j(e){var t=e.indexOf(".");if(t===-1)e=100-parseFloat(e)+"%";else{var n=e.length-t-2;e=100-parseFloat(e),e=e.toFixed(n)+"%"}return e}function ax(e){return e.replace(/ +/g," ").split(" ").map(function(t){return t.trim()}).filter(Boolean).reduce(function(t,n){var i=t.list,s=t.state,a=(n.match(/\(/g)||[]).length,o=(n.match(/\)/g)||[]).length;return s.parensDepth>0?i[i.length-1]=i[i.length-1]+" "+n:i.push(n),s.parensDepth+=a-o,{list:i,state:s}},{list:[],state:{parensDepth:0}}).list}function _m(e){var t=ax(e);if(t.length<=3||t.length>4)return e;var n=t[0],i=t[1],s=t[2],a=t[3];return[n,a,s,i].join(" ")}function wj(e){return!gj(e)&&!vj(e)}function kj(e){for(var t=[],n=0,i=0,s=!1;i0?at(wi,--Nt):0,di--,Re===10&&(di=1,Ko--),Re}function It(){return Re=Nt2||fi(Re)>3?"":" "}function Wj(e){for(;It();)switch(fi(Re)){case 0:hr(vx(Nt-1),e);break;case 2:hr(La(Re),e);break;default:hr(ei(Re),e)}return e}function Gj(e,t){for(;--t&&It()&&!(Re<48||Re>102||Re>57&&Re<65||Re>70&&Re<97););return Go(e,Ia()+(t<6&&$n()==32&&It()==32))}function bu(e){for(;It();)switch(Re){case e:return Nt;case 34:case 39:e!==34&&e!==39&&bu(Re);break;case 40:e===41&&bu(e);break;case 92:It();break}return Nt}function Xj(e,t){for(;It()&&e+Re!==57;)if(e+Re===84&&$n()===47)break;return"/*"+Go(t,Nt-1)+"*"+ei(e===47?e:It())}function vx(e){for(;!fi($n());)It();return Go(e,Nt)}function bx(e){return xx(Ma("",null,null,null,[""],e=gx(e),0,[0],e))}function Ma(e,t,n,i,s,a,o,l,c){for(var u=0,m=0,d=o,h=0,x=0,g=0,p=1,w=1,b=1,v=0,y=0,j="",k=s,N=a,_=i,S=j;w;)switch(g=y,y=It()){case 40:g!=108&&at(S,d-1)==58?(v++,S+="("):S+=La(y);break;case 41:v--,S+=")";break;case 34:case 39:case 91:S+=La(y);break;case 9:case 10:case 13:case 32:if(v>0){S+=ei(y);break}S+=Kj(g);break;case 92:S+=Gj(Ia()-1,7);continue;case 47:switch($n()){case 42:case 47:hr(Qj(Xj(It(),Ia()),t,n,c),c),(fi(g||1)==5||fi($n()||1)==5)&&Ht(S)&&ui(S,-1,void 0)!==" "&&(S+=" ");break;default:S+="/"}break;case 123*p:l[u++]=Ht(S)*b;case 125*p:case 59:case 0:if(v>0&&y){S+=ei(y);break}switch(y){case 0:case 125:w=0;case 59+m:b==-1&&(S=yt(S,/\f/g,"")),x>0&&(Ht(S)-d||p===0)&&hr(x>32?Sm(S+";",i,n,d-1,c):Sm(yt(S," ","")+";",i,n,d-2,c),c);break;case 59:S+=";";default:if(hr(_=km(S,t,n,u,m,s,l,j,k=[],N=[],d,a),a),y===123)if(m===0)Ma(S,t,_,_,k,a,d,l,N);else{switch(h){case 99:if(at(S,3)===110)break;case 108:if(at(S,2)===97)break;default:m=0;case 100:case 109:case 115:}m?Ma(e,_,_,i&&hr(km(e,_,_,0,0,s,l,j,s,k=[],d,N),N),s,N,d,l,i?k:N):Ma(S,_,_,_,[""],N,0,l,N)}}u=m=x=0,p=b=1,j=S="",d=o;break;case 58:d=1+Ht(S),x=g;default:if(p<1){if(y==123)--p;else if(y==125&&p++==0&&Uj()==125)continue}switch(S+=ei(y),y*p){case 38:b=m>0?1:(S+="\f",-1);break;case 44:if(v>0)break;l[u++]=(Ht(S)-1)*b,b=1;break;case 64:$n()===45&&(S+=La(It())),h=$n(),m=d=Ht(j=S+=vx(Ia())),y++;break;case 45:g===45&&Ht(S)==2&&(p=0)}}return a}function km(e,t,n,i,s,a,o,l,c,u,m,d){for(var h=s-1,x=s===0?a:[""],g=px(x),p=0,w=0,b=0;p0?x[v]+" "+y:yt(y,/&\f/g,x[v])))&&(c[b++]=j);return Wo(e,t,n,s===0?Ho:l,c,u,m,d)}function Qj(e,t,n,i){return Wo(e,t,n,ux,ei(Vj()),ui(e,2,-2),0,i)}function Sm(e,t,n,i,s){return Wo(e,t,n,Ed,ui(e,0,i),ui(e,i+1,-1),i,s)}function mi(e,t){for(var n="",i=0;i{switch(e.type){case Ho:if(typeof e.props=="string")return;e.props=e.props.map(t=>t.indexOf(":global(")===-1?t:Hj(t).reduce((n,i,s,a)=>{if(i==="")return n;if(i===":"&&a[s+1]==="global"){const o=a[s+2].slice(1,-1)+" ";return n.unshift(o),a[s+1]="",a[s+2]="",n}return n.push(i),n},[]).join(""))}};function wx(e,t,n){switch(Fj(e,t)){case 5103:return qt+"print-"+e+e;case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:return qt+e+e;case 4215:if(at(e,9)===102||at(e,t+1)===116)return qt+e+e;break;case 4789:return ts+e+e;case 5349:case 4246:case 6968:return qt+e+ts+e+e;case 6187:if(!mx(e,/grab/))return yt(yt(yt(e,/(zoom-|grab)/,qt+"$1"),/(image-set)/,qt+"$1"),e,"")+e;case 5495:case 3959:return yt(e,/(image-set\([^]*)/,qt+"$1$`$1");case 4095:case 3583:case 4068:case 2532:return yt(e,/(.+)-inline(.+)/,qt+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(Ht(e)-1-t>6)switch(at(e,t+1)){case 102:if(at(e,t+3)===108)return yt(e,/(.+:)(.+)-([^]+)/,"$1"+qt+"$2-$3$1"+ts+(at(e,t+3)==108?"$3":"$2-$3"))+e;case 115:return~$j(e,"stretch")?wx(yt(e,"stretch","fill-available"),t)+e:e}break}return e}function kx(e,t,n,i){if(e.length>-1&&!e.return)switch(e.type){case Ed:e.return=wx(e.value,e.length);return;case Ho:if(e.length)return qj(e.props,function(s){switch(mx(s,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return mi([Fl(e,{props:[yt(s,/:(read-\w+)/,":"+ts+"$1")]})],i);case"::placeholder":return mi([Fl(e,{props:[yt(s,/:(plac\w+)/,":"+qt+"input-$1")]}),Fl(e,{props:[yt(s,/:(plac\w+)/,":"+ts+"$1")]})],i)}return""})}}function Yj(e){switch(e.type){case"@container":case Dj:case Rj:case dx:return!0}return!1}const Jj=e=>{Yj(e)&&Array.isArray(e.children)&&e.children.sort((t,n)=>t.props[0]>n.props[0]?1:-1)};function e_(e,t){const n=[];return mi(bx(e),jx([Zj,Jj,kx,yx,_x(i=>n.push(i))])),n}const t_=/,( *[^ &])/g;function n_(e){return"&"+cx(e.replace(t_,",&$1"))}function Nm(e,t,n){let i=t;return n.length>0&&(i=n.reduceRight((s,a)=>`${n_(a)} { ${s} }`,t)),`${e}{${i}}`}function Cm(e,t){const{className:n,selectors:i,property:s,rtlClassName:a,rtlProperty:o,rtlValue:l,value:c}=e,{container:u,layer:m,media:d,supports:h}=t,x=`.${n}`,g=Array.isArray(c)?`${c.map(w=>`${Hr(s)}: ${w}`).join(";")};`:`${Hr(s)}: ${c};`;let p=Nm(x,g,i);if(o&&a){const w=`.${a}`,b=Array.isArray(l)?`${l.map(v=>`${Hr(o)}: ${v}`).join(";")};`:`${Hr(o)}: ${l};`;p+=Nm(w,b,i)}return d&&(p=`@media ${d} { ${p} }`),m&&(p=`@layer ${m} { ${p} }`),h&&(p=`@supports ${h} { ${p} }`),u&&(p=`@container ${u} { ${p} }`),e_(p)}function r_(e){let t="";for(const n in e){const i=e[n];if(typeof i=="string"||typeof i=="number"){t+=Hr(n)+":"+i+";";continue}if(Array.isArray(i))for(const s of i)t+=Hr(n)+":"+s+";"}return t}function zm(e){let t="";for(const n in e)t+=`${n}{${r_(e[n])}}`;return t}function Bm(e,t){const n=`@keyframes ${e} {${t}}`,i=[];return mi(bx(n),jx([yx,kx,_x(s=>i.push(s))])),i}const i_={animation:[-1,["animationDelay","animationDirection","animationDuration","animationFillMode","animationIterationCount","animationName","animationPlayState","animationTimeline","animationTimingFunction"]],animationRange:[-1,["animationRangeEnd","animationRangeStart"]],background:[-2,["backgroundAttachment","backgroundClip","backgroundColor","backgroundImage","backgroundOrigin","backgroundPosition","backgroundPositionX","backgroundPositionY","backgroundRepeat","backgroundSize"]],backgroundPosition:[-1,["backgroundPositionX","backgroundPositionY"]],border:[-2,["borderBottom","borderBottomColor","borderBottomStyle","borderBottomWidth","borderLeft","borderLeftColor","borderLeftStyle","borderLeftWidth","borderRight","borderRightColor","borderRightStyle","borderRightWidth","borderTop","borderTopColor","borderTopStyle","borderTopWidth"]],borderBottom:[-1,["borderBottomColor","borderBottomStyle","borderBottomWidth"]],borderImage:[-1,["borderImageOutset","borderImageRepeat","borderImageSlice","borderImageSource","borderImageWidth"]],borderLeft:[-1,["borderLeftColor","borderLeftStyle","borderLeftWidth"]],borderRadius:[-1,["borderBottomLeftRadius","borderBottomRightRadius","borderTopLeftRadius","borderTopRightRadius"]],borderRight:[-1,["borderRightColor","borderRightStyle","borderRightWidth"]],borderTop:[-1,["borderTopColor","borderTopStyle","borderTopWidth"]],caret:[-1,["caretColor","caretShape"]],columnRule:[-1,["columnRuleColor","columnRuleStyle","columnRuleWidth"]],columns:[-1,["columnCount","columnWidth"]],containIntrinsicSize:[-1,["containIntrinsicHeight","containIntrinsicWidth"]],container:[-1,["containerName","containerType"]],flex:[-1,["flexBasis","flexGrow","flexShrink"]],flexFlow:[-1,["flexDirection","flexWrap"]],font:[-1,["fontFamily","fontSize","fontStretch","fontStyle","fontVariant","fontWeight","lineHeight"]],gap:[-1,["columnGap","rowGap"]],grid:[-1,["columnGap","gridAutoColumns","gridAutoFlow","gridAutoRows","gridColumnGap","gridRowGap","gridTemplateAreas","gridTemplateColumns","gridTemplateRows","rowGap"]],gridArea:[-1,["gridColumnEnd","gridColumnStart","gridRowEnd","gridRowStart"]],gridColumn:[-1,["gridColumnEnd","gridColumnStart"]],gridRow:[-1,["gridRowEnd","gridRowStart"]],gridTemplate:[-1,["gridTemplateAreas","gridTemplateColumns","gridTemplateRows"]],inset:[-1,["bottom","left","right","top"]],insetBlock:[-1,["insetBlockEnd","insetBlockStart"]],insetInline:[-1,["insetInlineEnd","insetInlineStart"]],listStyle:[-1,["listStyleImage","listStylePosition","listStyleType"]],margin:[-1,["marginBottom","marginLeft","marginRight","marginTop"]],marginBlock:[-1,["marginBlockEnd","marginBlockStart"]],marginInline:[-1,["marginInlineEnd","marginInlineStart"]],mask:[-1,["maskClip","maskComposite","maskImage","maskMode","maskOrigin","maskPosition","maskRepeat","maskSize"]],maskBorder:[-1,["maskBorderMode","maskBorderOutset","maskBorderRepeat","maskBorderSlice","maskBorderSource","maskBorderWidth"]],offset:[-1,["offsetAnchor","offsetDistance","offsetPath","offsetPosition","offsetRotate"]],outline:[-1,["outlineColor","outlineStyle","outlineWidth"]],overflow:[-1,["overflowX","overflowY"]],overscrollBehavior:[-1,["overscrollBehaviorX","overscrollBehaviorY"]],padding:[-1,["paddingBottom","paddingLeft","paddingRight","paddingTop"]],paddingBlock:[-1,["paddingBlockEnd","paddingBlockStart"]],paddingInline:[-1,["paddingInlineEnd","paddingInlineStart"]],placeContent:[-1,["alignContent","justifyContent"]],placeItems:[-1,["alignItems","justifyItems"]],placeSelf:[-1,["alignSelf","justifySelf"]],scrollMargin:[-1,["scrollMarginBottom","scrollMarginLeft","scrollMarginRight","scrollMarginTop"]],scrollMarginBlock:[-1,["scrollMarginBlockEnd","scrollMarginBlockStart"]],scrollMarginInline:[-1,["scrollMarginInlineEnd","scrollMarginInlineStart"]],scrollPadding:[-1,["scrollPaddingBottom","scrollPaddingLeft","scrollPaddingRight","scrollPaddingTop"]],scrollPaddingBlock:[-1,["scrollPaddingBlockEnd","scrollPaddingBlockStart"]],scrollPaddingInline:[-1,["scrollPaddingInlineEnd","scrollPaddingInlineStart"]],scrollTimeline:[-1,["scrollTimelineAxis","scrollTimelineName"]],textDecoration:[-1,["textDecorationColor","textDecorationLine","textDecorationStyle","textDecorationThickness"]],textEmphasis:[-1,["textEmphasisColor","textEmphasisStyle"]],transition:[-1,["transitionBehavior","transitionDelay","transitionDuration","transitionProperty","transitionTimingFunction"]],viewTimeline:[-1,["viewTimelineAxis","viewTimelineName"]]};function Tm(e,t){return e.length===0?t:`${e} and ${t}`}function s_(e){return e.substr(0,6)==="@media"}function a_(e){return e.substr(0,6)==="@layer"}const o_=/^(:|\[|>|&)/;function l_(e){return o_.test(e)}function c_(e){return e.substr(0,9)==="@supports"}function u_(e){return e.substring(0,10)==="@container"}function d_(e){return e!=null&&typeof e=="object"&&Array.isArray(e)===!1}const Pm={"us-w":"w","us-v":"i",nk:"l",si:"v",cu:"f",ve:"h",ti:"a"};function Em(e,t){if(t.media)return"m";if(t.layer||t.supports)return"t";if(t.container)return"c";if(e.length>0){const n=e[0].trim();if(n.charCodeAt(0)===58)return Pm[n.slice(4,8)]||Pm[n.slice(3,5)]||"d"}return"d"}function pa(e,t){return e&&t+e}function Sx(e){return pa(e.container,"c")+pa(e.media,"m")+pa(e.layer,"l")+pa(e.supports,"s")}function $l(e,t,n){const i=e+Sx(n)+t,s=ws(i),a=s.charCodeAt(0);return a>=48&&a<=57?String.fromCharCode(a+17)+s.slice(1):s}function ha({property:e,selector:t,salt:n,value:i},s){return hu+ws(n+t+Sx(s)+e+i.trim())}function f_(e){return e===xu}function ql(e){return e.replace(/>\s+/g,">")}function Dm(e){return i_[e]}function Am(e){var t;return(t=e==null?void 0:e[0])!==null&&t!==void 0?t:0}function Vl(e,t,n,i){e[t]=i?[n,i]:n}function Rm(e,t){return t.length>0?[e,Object.fromEntries(t)]:e}function Ul(e,t,n,i,s,a){var o;const l=[];a!==0&&l.push(["p",a]),t==="m"&&s&&l.push(["m",s]),(o=e[t])!==null&&o!==void 0||(e[t]=[]),n&&e[t].push(Rm(n,l)),i&&e[t].push(Rm(i,l))}function dn(e,t="",n=[],i={container:"",layer:"",media:"",supports:""},s={},a={},o){for(const l in e){if(ij.hasOwnProperty(l)){e[l];continue}const c=e[l];if(c!=null){if(f_(c)){const u=ql(n.join("")),m=$l(u,l,i);Vl(s,m,0,void 0);continue}if(typeof c=="string"||typeof c=="number"){const u=ql(n.join("")),m=Dm(l);if(m){const j=m[1],k=Object.fromEntries(j.map(N=>[N,xu]));dn(k,t,n,i,s,a)}const d=$l(u,l,i),h=ha({value:c.toString(),salt:t,selector:u,property:l},i),x=o&&{key:l,value:o}||vu(l,c),g=x.key!==l||x.value!==c,p=g?ha({value:x.value.toString(),property:x.key,salt:t,selector:u},i):void 0,w=g?{rtlClassName:p,rtlProperty:x.key,rtlValue:x.value}:void 0,b=Em(n,i),[v,y]=Cm(Object.assign({className:h,selectors:n,property:l,value:c},w),i);Vl(s,d,h,p),Ul(a,b,v,y,i.media,Am(m))}else if(l==="animationName"){const u=Array.isArray(c)?c:[c],m=[],d=[];for(const h of u){const x=zm(h),g=zm(lx(h)),p=hu+ws(x);let w;const b=Bm(p,x);let v=[];x===g?w=p:(w=hu+ws(g),v=Bm(w,g));for(let y=0;y[_,xu]));dn(N,t,n,i,s,a)}const d=$l(u,l,i),h=ha({value:c.map(k=>(k??"").toString()).join(";"),salt:t,selector:u,property:l},i),x=c.map(k=>vu(l,k));if(!!x.some(k=>k.key!==x[0].key))continue;const p=x[0].key!==l||x.some((k,N)=>k.value!==c[N]),w=p?ha({value:x.map(k=>{var N;return((N=k==null?void 0:k.value)!==null&&N!==void 0?N:"").toString()}).join(";"),salt:t,property:x[0].key,selector:u},i):void 0,b=p?{rtlClassName:w,rtlProperty:x[0].key,rtlValue:x.map(k=>k.value)}:void 0,v=Em(n,i),[y,j]=Cm(Object.assign({className:h,selectors:n,property:l,value:c},b),i);Vl(s,d,h,w),Ul(a,v,y,j,i.media,Am(m))}else if(d_(c)){if(l_(l))dn(c,t,n.concat(cx(l)),i,s,a);else if(s_(l)){const u=Tm(i.media,l.slice(6).trim());dn(c,t,n,Object.assign({},i,{media:u}),s,a)}else if(a_(l)){const u=(i.layer?`${i.layer}.`:"")+l.slice(6).trim();dn(c,t,n,Object.assign({},i,{layer:u}),s,a)}else if(c_(l)){const u=Tm(i.supports,l.slice(9).trim());dn(c,t,n,Object.assign({},i,{supports:u}),s,a)}else if(u_(l)){const u=l.slice(10).trim();dn(c,t,n,Object.assign({},i,{container:u}),s,a)}}}}return[s,a]}function m_(e,t=""){const n={},i={};for(const s in e){const a=e[s],[o,l]=dn(a,t);n[s]=o,Object.keys(l).forEach(c=>{i[c]=(i[c]||[]).concat(l[c])})}return[n,i]}function p_(e,t=Pd){const n=t();let i=null,s=null,a=null,o=null;function l(c){const{dir:u,renderer:m}=c;i===null&&([i,s]=m_(e,m.classNameHashSalt));const d=u==="ltr";return d?a===null&&(a=xo(i,u)):o===null&&(o=xo(i,u)),n(m,s),d?a:o}return l}function h_(e,t,n=Pd){const i=n();let s=null,a=null;function o(l){const{dir:c,renderer:u}=l,m=c==="ltr";return m?s===null&&(s=xo(e,c)):a===null&&(a=xo(e,c)),i(u,t),m?s:a}return o}function g_(e,t,n,i=Pd){const s=i();function a(o){const{dir:l,renderer:c}=o,u=l==="ltr"?e:t||e;return s(c,Array.isArray(n)?{r:n}:n),u}return a}function x_(){return typeof window<"u"&&!!(window.document&&window.document.createElement)}const Om=br.useInsertionEffect?br.useInsertionEffect:void 0,Dd=()=>{const e={};return function(n,i){if(Om&&x_()){Om(()=>{n.insertCSSRules(i)},[n,i]);return}e[n.id]===void 0&&(n.insertCSSRules(i),e[n.id]=!0)}},v_=f.createContext(hj());function Ad(){return f.useContext(v_)}const b_=f.createContext("ltr");function Rd(){return f.useContext(b_)}function y_(e){const t=p_(e,Dd);return function(){const i=Rd(),s=Ad();return t({dir:i,renderer:s})}}function Pe(e,t){const n=h_(e,t,Dd);return function(){const s=Rd(),a=Ad();return n({dir:s,renderer:a})}}function en(e,t,n){const i=g_(e,t,n,Dd);return function(){const a=Rd(),o=Ad();return i({dir:a,renderer:o})}}const Nx=Symbol.for("fui.slotRenderFunction"),Xo=Symbol.for("fui.slotElementType"),Cx=Symbol.for("fui.slotClassNameProp");function vt(e,t){const{defaultProps:n,elementType:i}=t,s=j_(e),a={...n,...s,[Xo]:i,[Cx]:(s==null?void 0:s.className)||(n==null?void 0:n.className)};return s&&typeof s.children=="function"&&(a[Nx]=s.children,a.children=n==null?void 0:n.children),a}function et(e,t){if(!(e===null||e===void 0&&!t.renderByDefault))return vt(e,t)}function j_(e){return typeof e=="string"||typeof e=="number"||__(e)||f.isValidElement(e)?{children:e}:e}const __=e=>typeof e=="object"&&e!==null&&Symbol.iterator in e;function w_(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&!f.isValidElement(e)}function Im(e){return!!(e!=null&&e.hasOwnProperty(Xo))}const ze=(...e)=>{const t={};for(const n of e){const i=Array.isArray(n)?n:Object.keys(n);for(const s of i)t[s]=1}return t},k_=ze(["onAuxClick","onAnimationEnd","onAnimationStart","onCopy","onCut","onPaste","onCompositionEnd","onCompositionStart","onCompositionUpdate","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onInput","onSubmit","onLoad","onError","onKeyDown","onKeyDownCapture","onKeyPress","onKeyUp","onAbort","onCanPlay","onCanPlayThrough","onDurationChange","onEmptied","onEncrypted","onEnded","onLoadedData","onLoadedMetadata","onLoadStart","onPause","onPlay","onPlaying","onProgress","onRateChange","onSeeked","onSeeking","onStalled","onSuspend","onTimeUpdate","onVolumeChange","onWaiting","onClick","onClickCapture","onContextMenu","onDoubleClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onMouseUpCapture","onSelect","onTouchCancel","onTouchEnd","onTouchMove","onTouchStart","onScroll","onWheel","onPointerCancel","onPointerDown","onPointerEnter","onPointerLeave","onPointerMove","onPointerOut","onPointerOver","onPointerUp","onGotPointerCapture","onLostPointerCapture"]),S_=ze(["accessKey","children","className","contentEditable","dir","draggable","hidden","htmlFor","id","lang","popover","focusgroup","focusgroupstart","ref","role","style","tabIndex","title","translate","spellCheck","name"]),N_=ze(["itemID","itemProp","itemRef","itemScope","itemType"]),He=ze(S_,k_,N_),C_=ze(He,["form"]),zx=ze(He,["height","loop","muted","preload","src","width"]),z_=ze(zx,["poster"]),B_=ze(He,["start"]),T_=ze(He,["value"]),P_=ze(He,["download","href","hrefLang","media","referrerPolicy","rel","target","type"]),E_=ze(He,["dateTime"]),Qo=ze(He,["autoFocus","disabled","form","formAction","formEncType","formMethod","formNoValidate","formTarget","popoverTarget","popoverTargetAction","type","value"]),D_=ze(Qo,["accept","alt","autoCorrect","autoCapitalize","autoComplete","checked","dirname","form","height","inputMode","list","max","maxLength","min","minLength","multiple","pattern","placeholder","readOnly","required","src","step","size","type","value","width"]),A_=ze(Qo,["autoCapitalize","cols","dirname","form","maxLength","placeholder","readOnly","required","rows","wrap"]),R_=ze(Qo,["form","multiple","required"]),O_=ze(He,["selected","value"]),I_=ze(He,["cellPadding","cellSpacing"]),L_=He,M_=ze(He,["colSpan","rowSpan","scope"]),F_=ze(He,["colSpan","headers","rowSpan","scope"]),$_=ze(He,["span"]),q_=ze(He,["span"]),V_=ze(He,["disabled","form"]),U_=ze(He,["acceptCharset","action","encType","encType","method","noValidate","target"]),H_=ze(He,["allow","allowFullScreen","allowPaymentRequest","allowTransparency","csp","height","importance","referrerPolicy","sandbox","src","srcDoc","width"]),K_=ze(He,["alt","crossOrigin","height","src","srcSet","useMap","width"]),W_=ze(He,["open","onCancel","onClose"]);function G_(e,t,n){const i=Array.isArray(t),s={},a=Object.keys(e);for(const o of a)(!i&&t[o]||i&&t.indexOf(o)>=0||o.indexOf("data-")===0||o.indexOf("aria-")===0)&&(!n||(n==null?void 0:n.indexOf(o))===-1)&&(s[o]=e[o]);return s}const X_={label:C_,audio:zx,video:z_,ol:B_,li:T_,a:P_,button:Qo,input:D_,textarea:A_,select:R_,option:O_,table:I_,tr:L_,th:M_,td:F_,colGroup:$_,col:q_,fieldset:V_,form:U_,iframe:H_,img:K_,time:E_,dialog:W_};function Bx(e,t,n){const i=e&&X_[e]||He;return i.as=1,G_(t,i,n)}const Od=({primarySlotTagName:e,props:t,excludedPropNames:n})=>({root:{style:t.style,className:t.className},primary:Bx(e,t,[...n||[],"style","className"])}),Ds=(e,t,n)=>{var i;return Bx((i=t.as)!==null&&i!==void 0?i:e,t,n)};function Q_(e,t){const n=f.useRef(void 0),i=f.useCallback((a,o)=>(n.current!==void 0&&t(n.current),n.current=e(a,o),n.current),[t,e]),s=f.useCallback(()=>{n.current!==void 0&&(t(n.current),n.current=void 0)},[t]);return f.useEffect(()=>s,[s]),[i,s]}const Tx=f.createContext(void 0),Z_="";Tx.Provider;function Y_(){var e;return(e=f.useContext(Tx))!==null&&e!==void 0?e:Z_}const Px=f.createContext(void 0),J_={targetDocument:typeof document=="object"?document:void 0,dir:"ltr"};Px.Provider;function un(){var e;return(e=f.useContext(Px))!==null&&e!==void 0?e:J_}const Ex=f.createContext(void 0);Ex.Provider;function Dx(){var e;return(e=f.useContext(Ex))!==null&&e!==void 0?e:{}}const Ax=f.createContext(void 0),ew=()=>{};Ax.Provider;const zn=e=>{var t,n;return(n=(t=f.useContext(Ax))===null||t===void 0?void 0:t[e])!==null&&n!==void 0?n:ew},Rx=f.createContext(void 0);Rx.Provider;function tw(){return f.useContext(Rx)}function nw(e){return typeof e=="function"}const ks=e=>{"use no memo";const[t,n]=f.useState(()=>e.defaultState===void 0?e.initialState:rw(e.defaultState)?e.defaultState():e.defaultState),i=f.useRef(e.state);f.useEffect(()=>{i.current=e.state},[e.state]);const s=f.useCallback(a=>{nw(a)&&a(i.current)},[]);return iw(e.state)?[e.state,s]:[t,n]};function rw(e){return typeof e=="function"}const iw=e=>{"use no memo";const[t]=f.useState(()=>e!==void 0);return t};function Ox(){return typeof window<"u"&&!!(window.document&&window.document.createElement)}const sw={current:0},aw=f.createContext(void 0);function ow(){var e;return(e=f.useContext(aw))!==null&&e!==void 0?e:sw}const nr=Ox()?f.useLayoutEffect:f.useEffect,qe=e=>{const t=f.useRef(()=>{throw new Error("Cannot call an event handler while rendering")});return nr(()=>{t.current=e},[e]),f.useCallback((...n)=>{const i=t.current;return i(...n)},[t])};function lw(){const e=f.useRef(!0);return f.useEffect(()=>{e.current&&(e.current=!1)},[]),e.current}const Ix=f.createContext(void 0);Ix.Provider;function cw(){return f.useContext(Ix)||""}function Zo(e="fui-",t){"use no memo";const n=ow(),i=cw(),s=br.useId;if(s){const a=s(),o=f.useMemo(()=>a.replace(/:/g,""),[a]);return t||`${i}${e}${o}`}return f.useMemo(()=>t||`${i}${e}${++n.current}`,[i,e,t,n])}function Yn(...e){"use no memo";const t=f.useCallback(n=>{t.current=n;for(const i of e)typeof i=="function"?i(n):i&&(i.current=n)},[...e]);return t}const Lx=(e,t)=>!!(e!=null&&e.contains(t)),uw=e=>{const{targetDocument:t}=un(),n=t==null?void 0:t.defaultView,{refs:i,callback:s,element:a,disabled:o,disabledFocusOnIframe:l,contains:c=Lx}=e,u=f.useRef(void 0);fw({element:a,disabled:l||o,callback:s,refs:i,contains:c});const m=f.useRef(!1),d=qe(x=>{if(m.current){m.current=!1;return}const g=x.composedPath()[0];i.every(w=>!c(w.current||null,g))&&!o&&s(x)}),h=qe(x=>{m.current=i.some(g=>c(g.current||null,x.target))});f.useEffect(()=>{if(o)return;let x=dw(n);const g=p=>{if(p===x){x=void 0;return}d(p)};return a==null||a.addEventListener("click",g,!0),a==null||a.addEventListener("touchstart",g,!0),a==null||a.addEventListener("contextmenu",g,!0),a==null||a.addEventListener("mousedown",h,!0),u.current=n==null?void 0:n.setTimeout(()=>{x=void 0},1),()=>{a==null||a.removeEventListener("click",g,!0),a==null||a.removeEventListener("touchstart",g,!0),a==null||a.removeEventListener("contextmenu",g,!0),a==null||a.removeEventListener("mousedown",h,!0),n==null||n.clearTimeout(u.current),x=void 0}},[d,a,o,h,n])},dw=e=>{if(e){var t,n;if(typeof e.window=="object"&&e.window===e)return e.event;var i;return(i=(n=e.ownerDocument)===null||n===void 0||(t=n.defaultView)===null||t===void 0?void 0:t.event)!==null&&i!==void 0?i:void 0}},Hl="fuiframefocus",fw=e=>{const{disabled:t,element:n,callback:i,contains:s=Lx,pollDuration:a=100,refs:o}=e,l=f.useRef(void 0),c=qe(u=>{o.every(d=>!s(d.current||null,u.target))&&!t&&i(u)});f.useEffect(()=>{if(!t)return n==null||n.addEventListener(Hl,c,!0),()=>{n==null||n.removeEventListener(Hl,c,!0)}},[n,t,c]),f.useEffect(()=>{var u;if(!t)return l.current=n==null||(u=n.defaultView)===null||u===void 0?void 0:u.setInterval(()=>{const m=n==null?void 0:n.activeElement;if((m==null?void 0:m.tagName)==="IFRAME"||(m==null?void 0:m.tagName)==="WEBVIEW"){const d=new CustomEvent(Hl,{bubbles:!0});m.dispatchEvent(d)}},a),()=>{var m;n==null||(m=n.defaultView)===null||m===void 0||m.clearInterval(l.current)}},[n,t,a])},mw=e=>-1,pw=e=>{};function Mx(){const{targetDocument:e}=un(),t=e==null?void 0:e.defaultView,n=t?t.setTimeout:mw,i=t?t.clearTimeout:pw;return Q_(n,i)}function Wt(e,t){return(...n)=>{e==null||e(...n),t==null||t(...n)}}function pi(e,t){var n;const i=e;var s;return!!(!(i==null||(n=i.ownerDocument)===null||n===void 0)&&n.defaultView&&i instanceof i.ownerDocument.defaultView[(s=void 0)!==null&&s!==void 0?s:"HTMLElement"])}function Lm(e,t){e&&Object.assign(e,{_virtual:{parent:t}})}function hw(e,t){return{...t,[Xo]:e}}function Fx(e,t){return function(i,s,a,o,l){return Im(s)?t(hw(i,s),null,a,o,l):Im(i)?t(i,s,a,o,l):e(i,s,a,o,l)}}function $x(e){const{as:t,[Cx]:n,[Xo]:i,[Nx]:s,...a}=e,o=a,l=typeof i=="string"?t??i:i;return typeof l!="string"&&t&&(o.as=t),{elementType:l,props:o,renderFunction:s}}const vr=xb,gw=(e,t,n)=>{const{elementType:i,renderFunction:s,props:a}=$x(e),o={...a,...t};return s?vr.jsx(f.Fragment,{children:s(i,o)},n):vr.jsx(i,o,n)},xw=(e,t,n)=>{const{elementType:i,renderFunction:s,props:a}=$x(e),o={...a,...t};return s?vr.jsx(f.Fragment,{children:s(i,{...o,children:vr.jsxs(f.Fragment,{children:o.children},void 0)})},n):vr.jsxs(i,o,n)},ke=Fx(vr.jsx,gw),wn=Fx(vr.jsxs,xw),qx=f.createContext(void 0),vw={};qx.Provider;const bw=()=>{const e=f.useContext(qx);return e??vw};var yw=typeof WeakRef<"u",Mm=class{constructor(e){yw&&typeof e=="object"?this._weakRef=new WeakRef(e):this._instance=e}deref(){var e,t;let n;return this._weakRef?(n=(e=this._weakRef)==null?void 0:e.deref(),n||delete this._weakRef):(n=this._instance,(t=n==null?void 0:n.isDisposed)!=null&&t.call(n)&&delete this._instance),n}},Ss="keyborg:focusin",jw="keyborg:focusout";function _w(e){const t=e.HTMLElement,n=t.prototype.focus;let i=!1;return t.prototype.focus=function(){i=!0},e.document.createElement("button").focus(),t.prototype.focus=n,i}var Kl=!1;function ww(e){const t=e;Kl||(Kl=_w(t));const n=t.HTMLElement.prototype.focus;if(n.__keyborgNativeFocus)return;t.HTMLElement.prototype.focus=c;const i=new Set,s=m=>{const d=m.target;if(!d)return;const h=new CustomEvent(jw,{cancelable:!0,bubbles:!0,composed:!0,detail:{originalEvent:m}});d.dispatchEvent(h)},a=m=>{const d=m.target;if(!d)return;let h=m.composedPath()[0];const x=new Set;for(;h;)h.nodeType===Node.DOCUMENT_FRAGMENT_NODE?(x.add(h),h=h.host):h=h.parentNode;for(const g of i){const p=g.deref();(!p||!x.has(p))&&(i.delete(g),p&&(p.removeEventListener("focusin",a,!0),p.removeEventListener("focusout",s,!0)))}o(d,m.relatedTarget||void 0)},o=(m,d,h)=>{var x;const g=m.shadowRoot;if(g){for(const b of i)if(b.deref()===g)return;g.addEventListener("focusin",a,!0),g.addEventListener("focusout",s,!0),i.add(new Mm(g));return}const p={relatedTarget:d,originalEvent:h},w=new CustomEvent(Ss,{cancelable:!0,bubbles:!0,composed:!0,detail:p});w.details=p,(Kl||l.lastFocusedProgrammatically)&&(p.isFocusedProgrammatically=m===((x=l.lastFocusedProgrammatically)==null?void 0:x.deref()),l.lastFocusedProgrammatically=void 0),m.dispatchEvent(w)},l=t.__keyborgData={focusInHandler:a,focusOutHandler:s,shadowTargets:i};t.document.addEventListener("focusin",t.__keyborgData.focusInHandler,!0),t.document.addEventListener("focusout",t.__keyborgData.focusOutHandler,!0);function c(){const m=t.__keyborgData;return m&&(m.lastFocusedProgrammatically=new Mm(this)),n.apply(this,arguments)}let u=t.document.activeElement;for(;u&&u.shadowRoot;)o(u),u=u.shadowRoot.activeElement;c.__keyborgNativeFocus=n}function kw(e){const t=e,n=t.HTMLElement.prototype,i=n.focus.__keyborgNativeFocus,s=t.__keyborgData;if(s){t.document.removeEventListener("focusin",s.focusInHandler,!0),t.document.removeEventListener("focusout",s.focusOutHandler,!0);for(const a of s.shadowTargets){const o=a.deref();o&&(o.removeEventListener("focusin",s.focusInHandler,!0),o.removeEventListener("focusout",s.focusOutHandler,!0))}s.shadowTargets.clear(),delete t.__keyborgData}i&&(n.focus=i)}var Sw=500,Vx=0,Nw=class{constructor(e,t){this._isNavigatingWithKeyboard_DO_NOT_USE=!1,this._onFocusIn=i=>{if(this._isMouseOrTouchUsedTimer||this.isNavigatingWithKeyboard)return;const s=i.detail;s.relatedTarget&&(s.isFocusedProgrammatically||s.isFocusedProgrammatically===void 0||(this.isNavigatingWithKeyboard=!0))},this._onMouseDown=i=>{i.buttons===0||i.clientX===0&&i.clientY===0&&i.screenX===0&&i.screenY===0||this._onMouseOrTouch()},this._onMouseOrTouch=()=>{const i=this._win;i&&(this._isMouseOrTouchUsedTimer&&i.clearTimeout(this._isMouseOrTouchUsedTimer),this._isMouseOrTouchUsedTimer=i.setTimeout(()=>{delete this._isMouseOrTouchUsedTimer},1e3)),this.isNavigatingWithKeyboard=!1},this._onKeyDown=i=>{this.isNavigatingWithKeyboard?this._shouldDismissKeyboardNavigation(i)&&this._scheduleDismiss():this._shouldTriggerKeyboardNavigation(i)&&(this.isNavigatingWithKeyboard=!0)},this.id="c"+ ++Vx,this._win=e;const n=e.document;if(t){const i=t.triggerKeys,s=t.dismissKeys;i!=null&&i.length&&(this._triggerKeys=new Set(i)),s!=null&&s.length&&(this._dismissKeys=new Set(s))}n.addEventListener(Ss,this._onFocusIn,!0),n.addEventListener("mousedown",this._onMouseDown,!0),e.addEventListener("keydown",this._onKeyDown,!0),n.addEventListener("touchstart",this._onMouseOrTouch,!0),n.addEventListener("touchend",this._onMouseOrTouch,!0),n.addEventListener("touchcancel",this._onMouseOrTouch,!0),ww(e)}get isNavigatingWithKeyboard(){return this._isNavigatingWithKeyboard_DO_NOT_USE}set isNavigatingWithKeyboard(e){this._isNavigatingWithKeyboard_DO_NOT_USE!==e&&(this._isNavigatingWithKeyboard_DO_NOT_USE=e,this.update())}dispose(){const e=this._win;if(e){this._isMouseOrTouchUsedTimer&&(e.clearTimeout(this._isMouseOrTouchUsedTimer),this._isMouseOrTouchUsedTimer=void 0),this._dismissTimer&&(e.clearTimeout(this._dismissTimer),this._dismissTimer=void 0),kw(e);const t=e.document;t.removeEventListener(Ss,this._onFocusIn,!0),t.removeEventListener("mousedown",this._onMouseDown,!0),e.removeEventListener("keydown",this._onKeyDown,!0),t.removeEventListener("touchstart",this._onMouseOrTouch,!0),t.removeEventListener("touchend",this._onMouseOrTouch,!0),t.removeEventListener("touchcancel",this._onMouseOrTouch,!0),delete this._win}}isDisposed(){return!!this._win}update(){var e,t;const n=(t=(e=this._win)==null?void 0:e.__keyborg)==null?void 0:t.refs;if(n)for(const i of Object.keys(n))Id.update(n[i],this.isNavigatingWithKeyboard)}_shouldTriggerKeyboardNavigation(e){var t;if(e.key==="Tab")return!0;const n=(t=this._win)==null?void 0:t.document.activeElement,i=!this._triggerKeys||this._triggerKeys.has(e.keyCode),s=n&&(n.tagName==="INPUT"||n.tagName==="TEXTAREA"||n.isContentEditable);return i&&!s}_shouldDismissKeyboardNavigation(e){var t;return(t=this._dismissKeys)==null?void 0:t.has(e.keyCode)}_scheduleDismiss(){const e=this._win;if(e){this._dismissTimer&&(e.clearTimeout(this._dismissTimer),this._dismissTimer=void 0);const t=e.document.activeElement;this._dismissTimer=e.setTimeout(()=>{this._dismissTimer=void 0;const n=e.document.activeElement;t&&n&&t===n&&(this.isNavigatingWithKeyboard=!1)},Sw)}}},Id=class Ux{constructor(t,n){this._cb=[],this._id="k"+ ++Vx,this._win=t;const i=t.__keyborg;i?(this._core=i.core,i.refs[this._id]=this):(this._core=new Nw(t,n),t.__keyborg={core:this._core,refs:{[this._id]:this}})}static create(t,n){return new Ux(t,n)}static dispose(t){t.dispose()}static update(t,n){t._cb.forEach(i=>i(n))}dispose(){var t;const n=(t=this._win)==null?void 0:t.__keyborg;n!=null&&n.refs[this._id]&&(delete n.refs[this._id],Object.keys(n.refs).length===0&&(n.core.dispose(),delete this._win.__keyborg)),this._cb=[],delete this._core,delete this._win}isNavigatingWithKeyboard(){var t;return!!((t=this._core)!=null&&t.isNavigatingWithKeyboard)}subscribe(t){this._cb.push(t)}unsubscribe(t){const n=this._cb.indexOf(t);n>=0&&this._cb.splice(n,1)}setVal(t){this._core&&(this._core.isNavigatingWithKeyboard=t)}};function Hx(e,t){return Id.create(e,t)}function Kx(e){Id.dispose(e)}/*! + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. + */const Fm="data-fui-focus-visible";function Cw(e,t){if(Wx(e))return()=>{};const n={current:void 0},i=Hx(t);function s(c){i.isNavigatingWithKeyboard()&&pi(c)&&(n.current=c,c.setAttribute(Fm,""))}function a(){n.current&&(n.current.removeAttribute(Fm),n.current=void 0)}i.subscribe(c=>{c?s(t.document.activeElement):a()});const o=c=>{a();const u=c.composedPath()[0];s(u)},l=c=>{(!c.relatedTarget||pi(c.relatedTarget)&&!e.contains(c.relatedTarget))&&a()};return e.addEventListener(Ss,o),e.addEventListener("focusout",l),e.focusVisible=!0,e.contains(t.document.activeElement)&&s(t.document.activeElement),()=>{a(),e.removeEventListener(Ss,o),e.removeEventListener("focusout",l),e.focusVisible=void 0,Kx(i)}}function Wx(e){return e?e.focusVisible?!0:Wx(e==null?void 0:e.parentElement):!1}function zw(e={}){const t=un(),n=f.useRef(null);var i;const s=(i=e.targetDocument)!==null&&i!==void 0?i:t.targetDocument;return f.useEffect(()=>{if(s!=null&&s.defaultView&&n.current)return Cw(n.current,s.defaultView)},[n,s]),n}function Gx(){const{targetDocument:e}=un(),t=f.useRef(null);return f.useEffect(()=>{const n=e==null?void 0:e.defaultView;if(n){const i=Hx(n);return t.current=i,()=>{Kx(i),t.current=null}}},[e]),t}function Xx(e){const t=Gx(),n=qe(e);f.useEffect(()=>{const i=t.current;if(i){const s=a=>{n(a)};return i.subscribe(s),s(i.isNavigatingWithKeyboard()),()=>{i.unsubscribe(s)}}},[t,n])}function Bw(){const e=Gx();return f.useCallback(t=>{var n;(n=e.current)===null||n===void 0||n.setVal(t)},[e])}const $m={colorNeutralForeground3:"var(--colorNeutralForeground3)",fontSizeBase200:"var(--fontSizeBase200)"},Tw=e=>n=>{const i=f.useRef(n.value),s=f.useRef(null);return s.current||(s.current={value:i,listeners:[]}),nr(()=>{i.current=n.value,xc.unstable_runWithPriority(xc.unstable_NormalPriority,()=>{s.current.listeners.forEach(a=>{a(n.value)})})},[n.value]),f.createElement(e,{value:s.current},n.children)},Qx=e=>{const t=f.createContext({value:{current:e},listeners:[],isDefault:!0});return t.Provider=Tw(t.Provider),delete t.Consumer,t},Pw=(e,t)=>{const n=f.useContext(e),{value:i,listeners:s}=n,a=t(i.current),[,o]=f.useReducer(u=>u+1,0),l=f.useRef(t),c=f.useRef(a);return nr(()=>{l.current=t,c.current=a}),nr(()=>{const u=m=>{try{const d=l.current(m);Object.is(c.current,d)||o()}catch{}};return s.push(u),u(i.current),()=>{const m=s.indexOf(u);m!==-1&&s.splice(m,1)}},[s,i]),a};function Zx(e){return!f.useContext(e).isDefault}const ns="Enter",qn=" ",Ew="Tab",qm="ArrowDown",Wl="ArrowUp",Dw="End",Aw="Home",Rw="PageDown",Ow="PageUp",Iw="Escape";function Lw(e,t){const{disabled:n,disabledFocusable:i=!1,["aria-disabled"]:s,onClick:a,onKeyDown:o,onKeyUp:l,...c}=t??{},u=typeof s=="string"?s==="true":s,m=n||i||u,d=qe(g=>{m?(g.preventDefault(),g.stopPropagation()):a==null||a(g)}),h=qe(g=>{if(o==null||o(g),g.isDefaultPrevented())return;const p=g.key;if(m&&(p===ns||p===qn)){g.preventDefault(),g.stopPropagation();return}if(p===qn){g.preventDefault();return}else p===ns&&(g.preventDefault(),g.currentTarget.click())}),x=qe(g=>{if(l==null||l(g),g.isDefaultPrevented())return;const p=g.key;if(m&&(p===ns||p===qn)){g.preventDefault(),g.stopPropagation();return}p===qn&&(g.preventDefault(),g.currentTarget.click())});if(e==="button"||e===void 0)return{...c,disabled:n&&!i,"aria-disabled":i?!0:u,onClick:i?void 0:d,onKeyUp:i?void 0:l,onKeyDown:i?void 0:o};{const g=!!c.href;let p=g?void 0:"button";!p&&m&&(p="link");const w={role:p,tabIndex:i||!g&&!n?0:void 0,...c,onClick:d,onKeyUp:x,onKeyDown:h,"aria-disabled":m};return e==="a"&&m&&(w.href=void 0),w}}const ft=()=>{},Mw={controller:{active:ft,blur:ft,find:ft,first:ft,focus:ft,focusLastActive:ft,scrollActiveIntoView:ft,last:ft,next:ft,prev:ft,showAttributes:ft,hideAttributes:ft,showFocusVisibleAttributes:ft,hideFocusVisibleAttributes:ft}},Ld=f.createContext(void 0),Yx=Ld.Provider,Jx=()=>{var e;return(e=f.useContext(Ld))!==null&&e!==void 0?e:Mw},Fw=()=>!!f.useContext(Ld);function $w(e){const{matchOption:t}=e,{targetDocument:n}=un(),i=f.useRef(null),s=f.useRef(null),a=f.useCallback(c=>pi(c)&&t(c)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP,[t]),o=f.useCallback(c=>{c&&n?(s.current=c,i.current=n.createTreeWalker(c,NodeFilter.SHOW_ELEMENT,a)):(s.current=null,i.current=null)},[n,a]);return{optionWalker:f.useMemo(()=>({first:()=>!i.current||!s.current?null:(i.current.currentNode=s.current,i.current.firstChild()),last:()=>!i.current||!s.current?null:(i.current.currentNode=s.current,i.current.lastChild()),next:()=>i.current?i.current.nextNode():null,prev:()=>i.current?i.current.previousNode():null,find:(c,u)=>{if(!i.current||!s.current)return null;const m=u?n==null?void 0:n.getElementById(u):null;i.current.currentNode=m??s.current;let d=i.current.currentNode;for(;d&&!c(d.id);)d=i.current.nextNode();return d},setCurrent:c=>{i.current&&(i.current.currentNode=c)}}),[n]),listboxCallbackRef:o}}const Vm="data-activedescendant",Tr="data-activedescendant-focusvisible",Um=e=>{if(!e)return;const t=ev(e.parentElement);if(!t)return;const{offsetHeight:n}=e,i=tv(e,t),{scrollMarginTop:s,scrollMarginBottom:a}=qw(e),{offsetHeight:o,scrollTop:l}=t,c=i-sl+o,m=2;c?t.scrollTo(0,i-s-m):u&&t.scrollTo(0,i+n+a-o+m)},ev=e=>e?e.scrollHeight>e.offsetHeight?e:ev(e.parentElement):null,tv=(e,t)=>!e||e===t?0:e.contains(t)?t.offsetTop*-1:e.offsetTop+tv(e.offsetParent,t),qw=e=>{var t;const n=(t=e.ownerDocument)===null||t===void 0?void 0:t.defaultView;if(!n)return{scrollMarginTop:0,scrollMarginBottom:0};const i=n.getComputedStyle(e);var s;const a=(s=ga(i.scrollMarginTop))!==null&&s!==void 0?s:ga(i.scrollMarginBlockStart);var o;const l=(o=ga(i.scrollMarginBottom))!==null&&o!==void 0?o:ga(i.scrollMarginBlockEnd);return{scrollMarginTop:a,scrollMarginBottom:l}},ga=e=>e?parseInt(e,10):0,Vw=e=>new CustomEvent("activedescendantchange",{bubbles:!0,cancelable:!1,composed:!0,detail:e});function nv(e){const{imperativeRef:t,matchOption:n}=e,i=f.useRef(!1),s=f.useRef(!0),a=f.useRef(null),o=f.useRef(null),l=f.useRef(null),c=f.useRef(!0),u=f.useCallback(()=>{var j;(j=l.current)===null||j===void 0||j.removeAttribute("aria-activedescendant")},[]),m=f.useCallback(j=>{if(j&&(a.current=j),c.current&&a.current){var k;(k=l.current)===null||k===void 0||k.setAttribute("aria-activedescendant",a.current)}},[]);Xx(j=>{i.current=j;const k=p();k&&(j&&s.current?k.setAttribute(Tr,""):k.removeAttribute(Tr))});const d=qe(n),h=f.useRef(null),{optionWalker:x,listboxCallbackRef:g}=$w({matchOption:d}),p=f.useCallback(()=>{var j;return(j=h.current)===null||j===void 0?void 0:j.querySelector(`#${a.current}`)},[h]),w=f.useCallback(j=>{s.current=j;const k=p();k&&(j&&i.current?k.setAttribute(Tr,""):k.removeAttribute(Tr))},[p]),b=f.useCallback(()=>{const j=p();j&&(j.removeAttribute(Vm),j.removeAttribute(Tr)),u(),o.current=a.current,a.current=null;var k;return(k=j==null?void 0:j.id)!==null&&k!==void 0?k:null},[p,u]),v=f.useCallback(j=>{if(!j)return;const k=b();Um(j),m(j.id),j.setAttribute(Vm,""),i.current&&s.current&&j.setAttribute(Tr,"");const N=Vw({id:j.id,previousId:k});j.dispatchEvent(N)},[b,m]),y=f.useMemo(()=>({first:({passive:j}={})=>{const k=x.first();return j||v(k),k==null?void 0:k.id},last:({passive:j}={})=>{const k=x.last();return j||v(k),k==null?void 0:k.id},next:({passive:j}={})=>{const k=p();if(!k)return;x.setCurrent(k);const N=x.next();return j||v(N),N==null?void 0:N.id},prev:({passive:j}={})=>{const k=p();if(!k)return;x.setCurrent(k);const N=x.prev();return j||v(N),N==null?void 0:N.id},blur:()=>{b()},active:()=>{var j;return(j=p())===null||j===void 0?void 0:j.id},focus:j=>{if(!h.current)return;const k=h.current.querySelector(`#${j}`);k&&v(k)},focusLastActive:()=>{if(!h.current||!o.current)return;const j=h.current.querySelector(`#${o.current}`);if(j)return v(j),!0},find(j,{passive:k,startFrom:N}={}){const _=x.find(j,N);return k||v(_),_==null?void 0:_.id},scrollActiveIntoView:()=>{if(!h.current)return;const j=p();j&&Um(j)},showAttributes(){c.current=!0,m()},hideAttributes(){c.current=!1,u()},showFocusVisibleAttributes(){w(!0)},hideFocusVisibleAttributes(){w(!1)}}),[x,h,m,u,v,b,p,w]);return f.useImperativeHandle(t,()=>y),{listboxRef:Yn(h,g),activeParentRef:l,controller:y}}const Uw=Pe({root:{mc9l5x:"f1w7gpdv",Bg96gwp:"fez10in"},rtl:{Bz10aip:"f13rod7r"}},{d:[".f1w7gpdv{display:inline;}",".fez10in{line-height:0;}",".f13rod7r{transform:scaleX(-1);}"]}),Hw=(e,t)=>{const{filled:n,title:i,primaryFill:s="currentColor",...a}=e,o={...a,fill:s},l=Uw(),c=bw();return o.className=_e(l.root,(t==null?void 0:t.flipInRtl)&&(c==null?void 0:c.textDirection)==="rtl"&&l.rtl,o.className),i&&(o["aria-label"]=i),!o["aria-label"]&&!o["aria-labelledby"]?o["aria-hidden"]=!0:o.role="img",o},Kw=Pe({root:{B8gzw0y:"f1dd5bof"}},{m:[["@media (forced-colors: active){.f1dd5bof{forced-color-adjust:auto;}}",{m:"(forced-colors: active)"}]]}),Ww="fui-Icon",Ft=(e,t,n,i)=>{const s=t==="1em"?"20":t,a=f.forwardRef((o,l)=>{const c=Kw(),u=Hw(o,{flipInRtl:i==null?void 0:i.flipInRtl}),m={...u,className:_e(Ww,u.className,c.root),ref:l,width:t,height:t,viewBox:`0 0 ${s} ${s}`,xmlns:"http://www.w3.org/2000/svg"};return typeof n=="string"?f.createElement("svg",{...m,dangerouslySetInnerHTML:{__html:n}}):f.createElement("svg",m,...n.map(d=>f.createElement("path",{d,fill:m.fill})))});return a.displayName=e,a},Gw=Ft("CheckmarkFilled","1em",["M7.03 13.9 3.56 10a.75.75 0 0 0-1.12 1l4 4.5c.29.32.79.34 1.09.03l10.5-10.5a.75.75 0 0 0-1.06-1.06l-9.94 9.94Z"]),Xw=Ft("ChevronDownRegular","1em",["M15.85 7.65c.2.2.2.5 0 .7l-5.46 5.49a.55.55 0 0 1-.78 0L4.15 8.35a.5.5 0 1 1 .7-.7L10 12.8l5.15-5.16c.2-.2.5-.2.7 0Z"]),Qw=Ft("DismissRegular","1em",["m4.09 4.22.06-.07a.5.5 0 0 1 .63-.06l.07.06L10 9.29l5.15-5.14a.5.5 0 0 1 .63-.06l.07.06c.18.17.2.44.06.63l-.06.07L10.71 10l5.14 5.15c.18.17.2.44.06.63l-.06.07a.5.5 0 0 1-.63.06l-.07-.06L10 10.71l-5.15 5.14a.5.5 0 0 1-.63.06l-.07-.06a.5.5 0 0 1-.06-.63l.06-.07L9.29 10 4.15 4.85a.5.5 0 0 1-.06-.63l.06-.07-.06.07Z"]),Zw=Ft("Open24Regular","24",["M6.25 4.5c-.97 0-1.75.78-1.75 1.75v11.5c0 .97.78 1.75 1.75 1.75h11.5c.97 0 1.75-.78 1.75-1.75v-4a.75.75 0 0 1 1.5 0v4c0 1.8-1.46 3.25-3.25 3.25H6.25A3.25 3.25 0 0 1 3 17.75V6.25C3 4.45 4.46 3 6.25 3h4a.75.75 0 0 1 0 1.5h-4ZM13 3.75c0-.41.34-.75.75-.75h6.5c.41 0 .75.34.75.75v6.5a.75.75 0 0 1-1.5 0V5.56l-5.22 5.22a.75.75 0 0 1-1.06-1.06l5.22-5.22h-4.69a.75.75 0 0 1-.75-.75Z"]),Yw=Ft("Warning12Filled","12",["M4.28 1.97a2 2 0 0 1 3.43 0l3 5A2 2 0 0 1 9 10H3A2 2 0 0 1 1.3 6.98l3-5ZM6 6.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM6 3.5a.5.5 0 0 0-.5.5v1.5a.5.5 0 0 0 1 0V4a.5.5 0 0 0-.5-.5Z"]),Jw=Ft("Add24Regular","24",["M12 3.25c.41 0 .75.34.75.75v7.25H20a.75.75 0 0 1 0 1.5h-7.25V20a.75.75 0 0 1-1.5 0v-7.25H4a.75.75 0 0 1 0-1.5h7.25V4c0-.41.34-.75.75-.75Z"]),ek=Ft("Edit24Regular","24",["M20.95 3.05a3.58 3.58 0 0 0-5.06 0L3.94 15c-.4.4-.7.92-.82 1.48l-1.1 4.6a.75.75 0 0 0 .9.9l4.6-1.1A3.1 3.1 0 0 0 9 20.07L20.95 8.11a3.58 3.58 0 0 0 0-5.06Zm-4 1.06a2.08 2.08 0 1 1 2.94 2.94l-.89.89L16.06 5l.9-.9ZM15 6.06 17.94 9l-10 10a1.6 1.6 0 0 1-.76.43l-3.42.8.82-3.4c.06-.3.21-.56.42-.77l10-10Z"]),tk=Ft("ArrowDownload24Regular","24",["M18.25 20.5a.75.75 0 1 1 0 1.5h-13a.75.75 0 1 1 0-1.5h13Zm-6.6-18.49h.1c.38 0 .7.28.74.64l.01.1v13.7l3.72-3.73a.75.75 0 0 1 .98-.07l.08.07c.27.27.3.68.07.98l-.07.08-5 5a.75.75 0 0 1-.97.07l-.09-.07-5-5a.75.75 0 0 1 .98-1.13l.08.07L11 16.43V2.76c0-.38.28-.7.65-.75h.1-.1Z"]),nk=Ft("Checkmark12Filled","12",["M9.76 3.2c.3.29.32.76.04 1.06l-4.25 4.5a.75.75 0 0 1-1.08.02L2.22 6.53a.75.75 0 0 1 1.06-1.06l1.7 1.7L8.7 3.24a.75.75 0 0 1 1.06-.04Z"]),rk=Ft("CheckmarkCircle12Filled","12",["M1 6a5 5 0 1 1 10 0A5 5 0 0 1 1 6Zm7.35-.9a.5.5 0 1 0-.7-.7L5.5 6.54 4.35 5.4a.5.5 0 1 0-.7.7l1.5 1.5c.2.2.5.2.7 0l2.5-2.5Z"]),rv=Ft("Delete24Regular","24",["M10 5h4a2 2 0 1 0-4 0ZM8.5 5a3.5 3.5 0 1 1 7 0h5.75a.75.75 0 0 1 0 1.5h-1.32l-1.17 12.11A3.75 3.75 0 0 1 15.03 22H8.97a3.75 3.75 0 0 1-3.73-3.39L4.07 6.5H2.75a.75.75 0 0 1 0-1.5H8.5Zm2 4.75a.75.75 0 0 0-1.5 0v7.5a.75.75 0 0 0 1.5 0v-7.5ZM14.25 9c.41 0 .75.34.75.75v7.5a.75.75 0 0 1-1.5 0v-7.5c0-.41.34-.75.75-.75Zm-7.52 9.47a2.25 2.25 0 0 0 2.24 2.03h6.06c1.15 0 2.12-.88 2.24-2.03L18.42 6.5H5.58l1.15 11.97Z"]),ik=Ft("DiamondDismiss12Filled","12",["M4.59 1.09a2 2 0 0 1 2.82 0l3.5 3.5a2 2 0 0 1 0 2.82l-3.5 3.5a2 2 0 0 1-2.82 0l-3.5-3.5a2 2 0 0 1 0-2.83l3.5-3.5Zm3.26 3.06a.5.5 0 0 0-.7 0L6 5.29 4.85 4.15a.5.5 0 0 0-.7.7L5.29 6 4.15 7.15a.5.5 0 0 0 .7.7L6 6.71l1.15 1.14a.5.5 0 1 0 .7-.7L6.71 6l1.14-1.15a.5.5 0 0 0 0-.7Z"]),Hm="data-popper-is-intersecting",Km="data-popper-escaped",Wm="data-popper-reference-hidden",sk="data-popper-placement",yu="fui-positioningend",ak=({options:e})=>e,iv=f.createContext(void 0);iv.Provider;const ok=()=>{var e;return(e=f.useContext(iv))!==null&&e!==void 0?e:ak},lk=["top","right","bottom","left"],Sr=Math.min,At=Math.max,vo=Math.round,cn=e=>({x:e,y:e}),ck={left:"right",right:"left",bottom:"top",top:"bottom"};function ju(e,t,n){return At(e,Sr(t,n))}function kn(e,t){return typeof e=="function"?e(t):e}function Sn(e){return e.split("-")[0]}function ki(e){return e.split("-")[1]}function Md(e){return e==="x"?"y":"x"}function Fd(e){return e==="y"?"height":"width"}function an(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function $d(e){return Md(an(e))}function uk(e,t,n){n===void 0&&(n=!1);const i=ki(e),s=$d(e),a=Fd(s);let o=s==="x"?i===(n?"end":"start")?"right":"left":i==="start"?"bottom":"top";return t.reference[a]>t.floating[a]&&(o=bo(o)),[o,bo(o)]}function dk(e){const t=bo(e);return[_u(e),t,_u(t)]}function _u(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const Gm=["left","right"],Xm=["right","left"],fk=["top","bottom"],mk=["bottom","top"];function pk(e,t,n){switch(e){case"top":case"bottom":return n?t?Xm:Gm:t?Gm:Xm;case"left":case"right":return t?fk:mk;default:return[]}}function hk(e,t,n,i){const s=ki(e);let a=pk(Sn(e),n==="start",i);return s&&(a=a.map(o=>o+"-"+s),t&&(a=a.concat(a.map(_u)))),a}function bo(e){const t=Sn(e);return ck[t]+e.slice(t.length)}function gk(e){return{top:0,right:0,bottom:0,left:0,...e}}function sv(e){return typeof e!="number"?gk(e):{top:e,right:e,bottom:e,left:e}}function yo(e){const{x:t,y:n,width:i,height:s}=e;return{width:i,height:s,top:n,left:t,right:t+i,bottom:n+s,x:t,y:n}}function Qm(e,t,n){let{reference:i,floating:s}=e;const a=an(t),o=$d(t),l=Fd(o),c=Sn(t),u=a==="y",m=i.x+i.width/2-s.width/2,d=i.y+i.height/2-s.height/2,h=i[l]/2-s[l]/2;let x;switch(c){case"top":x={x:m,y:i.y-s.height};break;case"bottom":x={x:m,y:i.y+i.height};break;case"right":x={x:i.x+i.width,y:d};break;case"left":x={x:i.x-s.width,y:d};break;default:x={x:i.x,y:i.y}}switch(ki(t)){case"start":x[o]-=h*(n&&u?-1:1);break;case"end":x[o]+=h*(n&&u?-1:1);break}return x}async function av(e,t){var n;t===void 0&&(t={});const{x:i,y:s,platform:a,rects:o,elements:l,strategy:c}=e,{boundary:u="clippingAncestors",rootBoundary:m="viewport",elementContext:d="floating",altBoundary:h=!1,padding:x=0}=kn(t,e),g=sv(x),w=l[h?d==="floating"?"reference":"floating":d],b=yo(await a.getClippingRect({element:(n=await(a.isElement==null?void 0:a.isElement(w)))==null||n?w:w.contextElement||await(a.getDocumentElement==null?void 0:a.getDocumentElement(l.floating)),boundary:u,rootBoundary:m,strategy:c})),v=d==="floating"?{x:i,y:s,width:o.floating.width,height:o.floating.height}:o.reference,y=await(a.getOffsetParent==null?void 0:a.getOffsetParent(l.floating)),j=await(a.isElement==null?void 0:a.isElement(y))?await(a.getScale==null?void 0:a.getScale(y))||{x:1,y:1}:{x:1,y:1},k=yo(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:v,offsetParent:y,strategy:c}):v);return{top:(b.top-k.top+g.top)/j.y,bottom:(k.bottom-b.bottom+g.bottom)/j.y,left:(b.left-k.left+g.left)/j.x,right:(k.right-b.right+g.right)/j.x}}const xk=50,vk=async(e,t,n)=>{const{placement:i="bottom",strategy:s="absolute",middleware:a=[],platform:o}=n,l=o.detectOverflow?o:{...o,detectOverflow:av},c=await(o.isRTL==null?void 0:o.isRTL(t));let u=await o.getElementRects({reference:e,floating:t,strategy:s}),{x:m,y:d}=Qm(u,i,c),h=i,x=0;const g={};for(let p=0;p({name:"arrow",options:e,async fn(t){const{x:n,y:i,placement:s,rects:a,platform:o,elements:l,middlewareData:c}=t,{element:u,padding:m=0}=kn(e,t)||{};if(u==null)return{};const d=sv(m),h={x:n,y:i},x=$d(s),g=Fd(x),p=await o.getDimensions(u),w=x==="y",b=w?"top":"left",v=w?"bottom":"right",y=w?"clientHeight":"clientWidth",j=a.reference[g]+a.reference[x]-h[x]-a.floating[g],k=h[x]-a.reference[x],N=await(o.getOffsetParent==null?void 0:o.getOffsetParent(u));let _=N?N[y]:0;(!_||!await(o.isElement==null?void 0:o.isElement(N)))&&(_=l.floating[y]||a.floating[g]);const S=j/2-k/2,P=_/2-p[g]/2-1,D=Sr(d[b],P),F=Sr(d[v],P),T=D,M=_-p[g]-F,z=_/2-p[g]/2+S,A=ju(T,z,M),$=!c.arrow&&ki(s)!=null&&z!==A&&a.reference[g]/2-(zz<=0)){var F,T;const z=(((F=a.flip)==null?void 0:F.index)||0)+1,A=_[z];if(A&&(!(d==="alignment"?v!==an(A):!1)||D.every(R=>an(R.placement)===v?R.overflows[0]>0:!0)))return{data:{index:z,overflows:D},reset:{placement:A}};let $=(T=D.filter(Z=>Z.overflows[0]<=0).sort((Z,R)=>Z.overflows[1]-R.overflows[1])[0])==null?void 0:T.placement;if(!$)switch(x){case"bestFit":{var M;const Z=(M=D.filter(R=>{if(N){const K=an(R.placement);return K===v||K==="y"}return!0}).map(R=>[R.placement,R.overflows.filter(K=>K>0).reduce((K,X)=>K+X,0)]).sort((R,K)=>R[1]-K[1])[0])==null?void 0:M[0];Z&&($=Z);break}case"initialPlacement":$=l;break}if(s!==$)return{reset:{placement:$}}}return{}}}};function Zm(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Ym(e){return lk.some(t=>e[t]>=0)}const jk=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n,platform:i}=t,{strategy:s="referenceHidden",...a}=kn(e,t);switch(s){case"referenceHidden":{const o=await i.detectOverflow(t,{...a,elementContext:"reference"}),l=Zm(o,n.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:Ym(l)}}}case"escaped":{const o=await i.detectOverflow(t,{...a,altBoundary:!0}),l=Zm(o,n.floating);return{data:{escapedOffsets:l,escaped:Ym(l)}}}default:return{}}}}},ov=new Set(["left","top"]);async function _k(e,t){const{placement:n,platform:i,elements:s}=e,a=await(i.isRTL==null?void 0:i.isRTL(s.floating)),o=Sn(n),l=ki(n),c=an(n)==="y",u=ov.has(o)?-1:1,m=a&&c?-1:1,d=kn(t,e);let{mainAxis:h,crossAxis:x,alignmentAxis:g}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return l&&typeof g=="number"&&(x=l==="end"?g*-1:g),c?{x:x*m,y:h*u}:{x:h*u,y:x*m}}const wk=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,i;const{x:s,y:a,placement:o,middlewareData:l}=t,c=await _k(t,e);return o===((n=l.offset)==null?void 0:n.placement)&&(i=l.arrow)!=null&&i.alignmentOffset?{}:{x:s+c.x,y:a+c.y,data:{...c,placement:o}}}}},kk=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:i,placement:s,platform:a}=t,{mainAxis:o=!0,crossAxis:l=!1,limiter:c={fn:b=>{let{x:v,y}=b;return{x:v,y}}},...u}=kn(e,t),m={x:n,y:i},d=await a.detectOverflow(t,u),h=an(Sn(s)),x=Md(h);let g=m[x],p=m[h];if(o){const b=x==="y"?"top":"left",v=x==="y"?"bottom":"right",y=g+d[b],j=g-d[v];g=ju(y,g,j)}if(l){const b=h==="y"?"top":"left",v=h==="y"?"bottom":"right",y=p+d[b],j=p-d[v];p=ju(y,p,j)}const w=c.fn({...t,[x]:g,[h]:p});return{...w,data:{x:w.x-n,y:w.y-i,enabled:{[x]:o,[h]:l}}}}}},Sk=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:i,placement:s,rects:a,middlewareData:o}=t,{offset:l=0,mainAxis:c=!0,crossAxis:u=!0}=kn(e,t),m={x:n,y:i},d=an(s),h=Md(d);let x=m[h],g=m[d];const p=kn(l,t),w=typeof p=="number"?{mainAxis:p,crossAxis:0}:{mainAxis:0,crossAxis:0,...p};if(c){const y=h==="y"?"height":"width",j=a.reference[h]-a.floating[y]+w.mainAxis,k=a.reference[h]+a.reference[y]-w.mainAxis;xk&&(x=k)}if(u){var b,v;const y=h==="y"?"width":"height",j=ov.has(Sn(s)),k=a.reference[d]-a.floating[y]+(j&&((b=o.offset)==null?void 0:b[d])||0)+(j?0:w.crossAxis),N=a.reference[d]+a.reference[y]+(j?0:((v=o.offset)==null?void 0:v[d])||0)-(j?w.crossAxis:0);gN&&(g=N)}return{[h]:x,[d]:g}}}},Nk=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,i;const{placement:s,rects:a,platform:o,elements:l}=t,{apply:c=()=>{},...u}=kn(e,t),m=await o.detectOverflow(t,u),d=Sn(s),h=ki(s),x=an(s)==="y",{width:g,height:p}=a.floating;let w,b;d==="top"||d==="bottom"?(w=d,b=h===(await(o.isRTL==null?void 0:o.isRTL(l.floating))?"start":"end")?"left":"right"):(b=d,w=h==="end"?"top":"bottom");const v=p-m.top-m.bottom,y=g-m.left-m.right,j=Sr(p-m[w],v),k=Sr(g-m[b],y),N=!t.middlewareData.shift;let _=j,S=k;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(S=y),(i=t.middlewareData.shift)!=null&&i.enabled.y&&(_=v),N&&!h){const D=At(m.left,0),F=At(m.right,0),T=At(m.top,0),M=At(m.bottom,0);x?S=g-2*(D!==0||F!==0?D+F:At(m.left,m.right)):_=p-2*(T!==0||M!==0?T+M:At(m.top,m.bottom))}await c({...t,availableWidth:S,availableHeight:_});const P=await o.getDimensions(l.floating);return g!==P.width||p!==P.height?{reset:{rects:!0}}:{}}}};function Yo(){return typeof window<"u"}function Si(e){return lv(e)?(e.nodeName||"").toLowerCase():"#document"}function kt(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Bn(e){var t;return(t=(lv(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function lv(e){return Yo()?e instanceof Node||e instanceof kt(e).Node:!1}function Zt(e){return Yo()?e instanceof Element||e instanceof kt(e).Element:!1}function Tn(e){return Yo()?e instanceof HTMLElement||e instanceof kt(e).HTMLElement:!1}function Jm(e){return!Yo()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof kt(e).ShadowRoot}function As(e){const{overflow:t,overflowX:n,overflowY:i,display:s}=Yt(e);return/auto|scroll|overlay|hidden|clip/.test(t+i+n)&&s!=="inline"&&s!=="contents"}function Ck(e){return/^(table|td|th)$/.test(Si(e))}function Jo(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const zk=/transform|translate|scale|rotate|perspective|filter/,Bk=/paint|layout|strict|content/,lr=e=>!!e&&e!=="none";let Gl;function qd(e){const t=Zt(e)?Yt(e):e;return lr(t.transform)||lr(t.translate)||lr(t.scale)||lr(t.rotate)||lr(t.perspective)||!Vd()&&(lr(t.backdropFilter)||lr(t.filter))||zk.test(t.willChange||"")||Bk.test(t.contain||"")}function Tk(e){let t=rr(e);for(;Tn(t)&&!hi(t);){if(qd(t))return t;if(Jo(t))return null;t=rr(t)}return null}function Vd(){return Gl==null&&(Gl=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Gl}function hi(e){return/^(html|body|#document)$/.test(Si(e))}function Yt(e){return kt(e).getComputedStyle(e)}function el(e){return Zt(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function rr(e){if(Si(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Jm(e)&&e.host||Bn(e);return Jm(t)?t.host:t}function cv(e){const t=rr(e);return hi(t)?e.ownerDocument?e.ownerDocument.body:e.body:Tn(t)&&As(t)?t:cv(t)}function uv(e,t,n){var i;t===void 0&&(t=[]);const s=cv(e),a=s===((i=e.ownerDocument)==null?void 0:i.body),o=kt(s);return a?(wu(o),t.concat(o,o.visualViewport||[],As(s)?s:[],[])):t.concat(s,uv(s,[]))}function wu(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function dv(e){const t=Yt(e);let n=parseFloat(t.width)||0,i=parseFloat(t.height)||0;const s=Tn(e),a=s?e.offsetWidth:n,o=s?e.offsetHeight:i,l=vo(n)!==a||vo(i)!==o;return l&&(n=a,i=o),{width:n,height:i,$:l}}function fv(e){return Zt(e)?e:e.contextElement}function ti(e){const t=fv(e);if(!Tn(t))return cn(1);const n=t.getBoundingClientRect(),{width:i,height:s,$:a}=dv(t);let o=(a?vo(n.width):n.width)/i,l=(a?vo(n.height):n.height)/s;return(!o||!Number.isFinite(o))&&(o=1),(!l||!Number.isFinite(l))&&(l=1),{x:o,y:l}}const Pk=cn(0);function mv(e){const t=kt(e);return!Vd()||!t.visualViewport?Pk:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Ek(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==kt(e)?!1:t}function Ns(e,t,n,i){t===void 0&&(t=!1),n===void 0&&(n=!1);const s=e.getBoundingClientRect(),a=fv(e);let o=cn(1);t&&(i?Zt(i)&&(o=ti(i)):o=ti(e));const l=Ek(a,n,i)?mv(a):cn(0);let c=(s.left+l.x)/o.x,u=(s.top+l.y)/o.y,m=s.width/o.x,d=s.height/o.y;if(a){const h=kt(a),x=i&&Zt(i)?kt(i):i;let g=h,p=wu(g);for(;p&&i&&x!==g;){const w=ti(p),b=p.getBoundingClientRect(),v=Yt(p),y=b.left+(p.clientLeft+parseFloat(v.paddingLeft))*w.x,j=b.top+(p.clientTop+parseFloat(v.paddingTop))*w.y;c*=w.x,u*=w.y,m*=w.x,d*=w.y,c+=y,u+=j,g=kt(p),p=wu(g)}}return yo({width:m,height:d,x:c,y:u})}function tl(e,t){const n=el(e).scrollLeft;return t?t.left+n:Ns(Bn(e)).left+n}function pv(e,t){const n=e.getBoundingClientRect(),i=n.left+t.scrollLeft-tl(e,n),s=n.top+t.scrollTop;return{x:i,y:s}}function Dk(e){let{elements:t,rect:n,offsetParent:i,strategy:s}=e;const a=s==="fixed",o=Bn(i),l=t?Jo(t.floating):!1;if(i===o||l&&a)return n;let c={scrollLeft:0,scrollTop:0},u=cn(1);const m=cn(0),d=Tn(i);if((d||!d&&!a)&&((Si(i)!=="body"||As(o))&&(c=el(i)),d)){const x=Ns(i);u=ti(i),m.x=x.x+i.clientLeft,m.y=x.y+i.clientTop}const h=o&&!d&&!a?pv(o,c):cn(0);return{width:n.width*u.x,height:n.height*u.y,x:n.x*u.x-c.scrollLeft*u.x+m.x+h.x,y:n.y*u.y-c.scrollTop*u.y+m.y+h.y}}function Ak(e){return Array.from(e.getClientRects())}function Rk(e){const t=Bn(e),n=el(e),i=e.ownerDocument.body,s=At(t.scrollWidth,t.clientWidth,i.scrollWidth,i.clientWidth),a=At(t.scrollHeight,t.clientHeight,i.scrollHeight,i.clientHeight);let o=-n.scrollLeft+tl(e);const l=-n.scrollTop;return Yt(i).direction==="rtl"&&(o+=At(t.clientWidth,i.clientWidth)-s),{width:s,height:a,x:o,y:l}}const ep=25;function Ok(e,t){const n=kt(e),i=Bn(e),s=n.visualViewport;let a=i.clientWidth,o=i.clientHeight,l=0,c=0;if(s){a=s.width,o=s.height;const m=Vd();(!m||m&&t==="fixed")&&(l=s.offsetLeft,c=s.offsetTop)}const u=tl(i);if(u<=0){const m=i.ownerDocument,d=m.body,h=getComputedStyle(d),x=m.compatMode==="CSS1Compat"&&parseFloat(h.marginLeft)+parseFloat(h.marginRight)||0,g=Math.abs(i.clientWidth-d.clientWidth-x);g<=ep&&(a-=g)}else u<=ep&&(a+=u);return{width:a,height:o,x:l,y:c}}function Ik(e,t){const n=Ns(e,!0,t==="fixed"),i=n.top+e.clientTop,s=n.left+e.clientLeft,a=Tn(e)?ti(e):cn(1),o=e.clientWidth*a.x,l=e.clientHeight*a.y,c=s*a.x,u=i*a.y;return{width:o,height:l,x:c,y:u}}function tp(e,t,n){let i;if(t==="viewport")i=Ok(e,n);else if(t==="document")i=Rk(Bn(e));else if(Zt(t))i=Ik(t,n);else{const s=mv(e);i={x:t.x-s.x,y:t.y-s.y,width:t.width,height:t.height}}return yo(i)}function hv(e,t){const n=rr(e);return n===t||!Zt(n)||hi(n)?!1:Yt(n).position==="fixed"||hv(n,t)}function Lk(e,t){const n=t.get(e);if(n)return n;let i=uv(e,[]).filter(l=>Zt(l)&&Si(l)!=="body"),s=null;const a=Yt(e).position==="fixed";let o=a?rr(e):e;for(;Zt(o)&&!hi(o);){const l=Yt(o),c=qd(o);!c&&l.position==="fixed"&&(s=null),(a?!c&&!s:!c&&l.position==="static"&&!!s&&(s.position==="absolute"||s.position==="fixed")||As(o)&&!c&&hv(e,o))?i=i.filter(m=>m!==o):s=l,o=rr(o)}return t.set(e,i),i}function Mk(e){let{element:t,boundary:n,rootBoundary:i,strategy:s}=e;const o=[...n==="clippingAncestors"?Jo(t)?[]:Lk(t,this._c):[].concat(n),i],l=tp(t,o[0],s);let c=l.top,u=l.right,m=l.bottom,d=l.left;for(let h=1;h{const i=new Map,s={platform:Uk,...n},a={...s.platform,_c:i};return vk(e,t,{...s,platform:a})};function xv(e){const t=e.split("-");return{side:t[0],alignment:t[1]}}const Yk=e=>e.nodeName==="HTML"?e:e.parentNode||e.host,Jk=e=>{var t;if(e.nodeType!==1)return{};const n=(t=e.ownerDocument)===null||t===void 0?void 0:t.defaultView;return n?n.getComputedStyle(e,null):{}},nl=e=>{const t=e&&Yk(e);if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}const{overflow:n,overflowX:i,overflowY:s}=Jk(t);return/(auto|scroll|overlay)/.test(n+s+i)?t:nl(t)},eS=e=>{var t;const n=nl(e);return n?n!==((t=n.ownerDocument)===null||t===void 0?void 0:t.body):!1};function Ud(e,t){if(t==="window")return e==null?void 0:e.ownerDocument.documentElement;if(t==="clippingParents")return"clippingAncestors";if(t==="scrollParent"){let n=nl(e);return n.nodeName==="BODY"&&(n=e==null?void 0:e.ownerDocument.documentElement),n}return t}function vv(e,t){if(typeof e=="number")return e;const{start:n,end:i,...s}=e,a=s,o=t?"end":"start",l=t?"start":"end";return e[o]&&(a.left=e[o]),e[l]&&(a.right=e[l]),a}const tS=e=>({above:"top",below:"bottom",before:e?"right":"left",after:e?"left":"right"}),nS=()=>({start:"start",end:"end",top:"start",bottom:"end",center:void 0}),rS=(e,t)=>{const n=e==="above"||e==="below",i=t==="top"||t==="bottom";return n&&i||!n&&!i},bv=(e,t,n)=>{const i=rS(t,e)?"center":e,s=t&&tS(n)[t],a=i&&nS()[i];return s&&a?`${s}-${a}`:s},iS=()=>({top:"above",bottom:"below",right:"after",left:"before"}),sS=e=>e==="above"||e==="below"?{start:"start",end:"end"}:{start:"top",end:"bottom"},aS=e=>{const{side:t,alignment:n}=xv(e),i=iS()[t],s=n&&sS(i)[n];return{position:i,alignment:s}},oS={above:{position:"above",align:"center"},"above-start":{position:"above",align:"start"},"above-end":{position:"above",align:"end"},below:{position:"below",align:"center"},"below-start":{position:"below",align:"start"},"below-end":{position:"below",align:"end"},before:{position:"before",align:"center"},"before-top":{position:"before",align:"top"},"before-bottom":{position:"before",align:"bottom"},after:{position:"after",align:"center"},"after-top":{position:"after",align:"top"},"after-bottom":{position:"after",align:"bottom"}};function yv(e){return e==null?{}:typeof e=="string"?oS[e]:e}function Ql(e,t,n){const i=f.useRef(!0),[s]=f.useState(()=>({value:e,callback:t,facade:{get current(){return s.value},set current(a){const o=s.value;o!==a&&(s.value=a,s.callback(a,o))}}}));return nr(()=>{i.current=!1},[]),s.callback=t,s.facade}function lS(e){let t;return()=>(t||(t=new Promise(n=>{Promise.resolve().then(()=>{t=void 0,n(e())})})),t)}function cS(e){const{arrow:t,middlewareData:n}=e;if(!n.arrow||!t)return;const{x:i,y:s}=n.arrow;Object.assign(t.style,{left:i!=null?`${i}px`:"",top:s!=null?`${s}px`:""})}function uS(e){var t,n,i;const{container:s,placement:a,middlewareData:o,strategy:l,lowPPI:c,coordinates:u,useTransform:m=!0}=e;if(!s)return;s.setAttribute(sk,a),s.removeAttribute(Hm),o.intersectionObserver.intersecting&&s.setAttribute(Hm,""),s.removeAttribute(Km),!((t=o.hide)===null||t===void 0)&&t.escaped&&s.setAttribute(Km,""),s.removeAttribute(Wm),!((n=o.hide)===null||n===void 0)&&n.referenceHidden&&s.setAttribute(Wm,"");const d=((i=s.ownerDocument.defaultView)===null||i===void 0?void 0:i.devicePixelRatio)||1,h=Math.round(u.x*d)/d,x=Math.round(u.y*d)/d;if(Object.assign(s.style,{position:l}),m){Object.assign(s.style,{transform:c?`translate(${h}px, ${x}px)`:`translate3d(${h}px, ${x}px, 0)`});return}Object.assign(s.style,{left:`${h}px`,top:`${x}px`})}const dS=e=>{switch(e){case"always":case!0:return{applyMaxWidth:!0,applyMaxHeight:!0};case"width-always":case"width":return{applyMaxWidth:!0,applyMaxHeight:!1};case"height-always":case"height":return{applyMaxWidth:!1,applyMaxHeight:!0};default:return!1}};function sp(e){const t=[];let n=e;for(;n;){const i=nl(n);if(e.ownerDocument.body===i){t.push(i);break}if(i.nodeName==="BODY"&&i!==e.ownerDocument.body)break;t.push(i),n=i}return t}function fS(e,t){return new e.ResizeObserver(t)}function mS(e){let t=!1;const{container:n,target:i,arrow:s,strategy:a,middleware:o,placement:l,useTransform:c=!0,disableUpdateOnResize:u=!1}=e,m=n.ownerDocument.defaultView;if(!i||!n||!m)return{updatePosition:()=>{},dispose:()=>{}};const d=u?null:fS(m,b=>{b.every(y=>y.contentRect.width>0&&y.contentRect.height>0)&&p()});let h=!0;const x=new Set;Object.assign(n.style,{position:"fixed",left:0,top:0,margin:0});const g=()=>{t||(h&&(sp(n).forEach(b=>x.add(b)),pi(i)&&sp(i).forEach(b=>x.add(b)),x.forEach(b=>{b.addEventListener("scroll",p,{passive:!0})}),d==null||d.observe(n),pi(i)&&(d==null||d.observe(i)),h=!1),Object.assign(n.style,{position:a}),Zk(i,n,{placement:l,middleware:o,strategy:a}).then(({x:b,y:v,middlewareData:y,placement:j})=>{t||(cS({arrow:s,middlewareData:y}),uS({container:n,middlewareData:y,placement:j,coordinates:{x:b,y:v},lowPPI:((m==null?void 0:m.devicePixelRatio)||1)<=1,strategy:a,useTransform:c}),n.dispatchEvent(new CustomEvent(yu,{detail:{placement:j}})))}).catch(b=>{}))},p=lS(()=>g()),w=()=>{t=!0,m&&(m.removeEventListener("scroll",p),m.removeEventListener("resize",p)),x.forEach(b=>{b.removeEventListener("scroll",p)}),x.clear(),d==null||d.disconnect()};return m&&(m.addEventListener("scroll",p,{passive:!0}),m.addEventListener("resize",p)),p(),{updatePosition:p,dispose:w}}function pS(){return{name:"coverTarget",fn:e=>{const{placement:t,rects:n,x:i,y:s}=e,a=xv(t).side,o={x:i,y:s};switch(a){case"bottom":o.y-=n.reference.height;break;case"top":o.y+=n.reference.height;break;case"left":o.x+=n.reference.width;break;case"right":o.x-=n.reference.width;break}return o}}}function hS(e){const{hasScrollableElement:t,flipBoundary:n,container:i,fallbackPositions:s=[],isRtl:a}=e,o=s.reduce((l,c)=>{const{position:u,align:m}=yv(c),d=bv(m,u,a);return d&&l.push(d),l},[]);return Gk({...t&&{boundary:"clippingAncestors"},...n&&{altBoundary:!0,boundary:Ud(i,n)},fallbackStrategy:"bestFit",...o.length&&{fallbackPlacements:o}})}function gS(){return{name:"intersectionObserver",fn:async e=>{const t=e.rects.floating,n=await Hk(e,{altBoundary:!0}),i=n.top0,s=n.bottom0;return{data:{intersecting:i||s}}}}}const xS=e=>({name:"resetMaxSize",fn({middlewareData:t,elements:n}){var i;if(!((i=t.resetMaxSize)===null||i===void 0)&&i.maxSizeAlreadyReset)return{};const{applyMaxWidth:s,applyMaxHeight:a}=e;return s&&(n.floating.style.removeProperty("box-sizing"),n.floating.style.removeProperty("max-width"),n.floating.style.removeProperty("width")),a&&(n.floating.style.removeProperty("box-sizing"),n.floating.style.removeProperty("max-height"),n.floating.style.removeProperty("height")),{data:{maxSizeAlreadyReset:!0},reset:{rects:!0}}}});function vS(e,t){const{container:n,overflowBoundary:i,overflowBoundaryPadding:s,isRtl:a}=t;return Xk({...s&&{padding:vv(s,a)},...i&&{altBoundary:!0,boundary:Ud(n,i)},apply({availableHeight:o,availableWidth:l,elements:c,rects:u}){const m=(x,g,p)=>{if(x&&(c.floating.style.setProperty("box-sizing","border-box"),c.floating.style.setProperty(`max-${g}`,`${p}px`),u.floating[g]>p)){c.floating.style.setProperty(g,`${p}px`);const w=g==="width"?"x":"y";c.floating.style.getPropertyValue(`overflow-${w}`)||c.floating.style.setProperty(`overflow-${w}`,"auto")}},{applyMaxWidth:d,applyMaxHeight:h}=e;m(d,"width",l),m(h,"height",o)}})}function bS(e){return!e||typeof e=="number"||typeof e=="object"?e:({rects:{floating:t,reference:n},placement:i})=>{const{position:s,alignment:a}=aS(i);return e({positionedRect:t,targetRect:n,position:s,alignment:a})}}function yS(e){const t=bS(e);return Kk(t)}function jS(e){const{hasScrollableElement:t,shiftToCoverTarget:n,disableTether:i,overflowBoundary:s,container:a,overflowBoundaryPadding:o,isRtl:l}=e;return Wk({...t&&{boundary:"clippingAncestors"},...n&&{crossAxis:!0,limiter:ip({crossAxis:!0,mainAxis:!1})},...i&&{crossAxis:i==="all",limiter:ip({crossAxis:i!=="all",mainAxis:!1})},...o&&{padding:vv(o,l)},...s&&{altBoundary:!0,boundary:Ud(a,s)}})}const ap="--fui-match-target-size";function _S(){return{name:"matchTargetSize",fn:async e=>{const{rects:{reference:t,floating:n},elements:{floating:i},middlewareData:{matchTargetSize:{matchTargetSizeAttempt:s=!1}={}}}=e;if(t.width===n.width||s)return{};const{width:a}=t;return i.style.setProperty(ap,`${a}px`),i.style.width||(i.style.width=`var(${ap})`),{data:{matchTargetSizeAttempt:!0},reset:{rects:!0}}}}}function wS(e,t){const{align:n,arrowPadding:i,autoSize:s,coverTarget:a,disableUpdateOnResize:o,flipBoundary:l,offset:c,overflowBoundary:u,pinned:m,position:d,unstable_disableTether:h,strategy:x,overflowBoundaryPadding:g,fallbackPositions:p,useTransform:w,matchTargetSize:b,shiftToCoverTarget:v}=t;return f.useCallback((y,j)=>e({container:y,arrow:j,options:{autoSize:s,disableUpdateOnResize:o,matchTargetSize:b,offset:c,strategy:x,coverTarget:a,flipBoundary:l,overflowBoundary:u,useTransform:w,overflowBoundaryPadding:g,pinned:m,arrowPadding:i,align:n,fallbackPositions:p,shiftToCoverTarget:v,position:d,unstable_disableTether:h}}),[s,o,b,c,x,a,l,u,w,g,m,i,n,p,v,d,h,e])}function kS(e){const{dir:t,targetDocument:n}=un(),i=t==="rtl",s=wS(ok(),e),{positionFixed:a}=e;return f.useCallback((o,l)=>{const c=eS(o),u=s(o,l),{autoSize:m,disableUpdateOnResize:d,matchTargetSize:h,offset:x,coverTarget:g,flipBoundary:p,overflowBoundary:w,useTransform:b,overflowBoundaryPadding:v,pinned:y,position:j,arrowPadding:k,strategy:N,align:_,fallbackPositions:S,shiftToCoverTarget:P,unstable_disableTether:D}=u,F=dS(m),T=[F&&xS(F),h&&_S(),x&&yS(x),g&&pS(),!y&&hS({container:o,flipBoundary:p,hasScrollableElement:c,isRtl:i,fallbackPositions:S}),jS({container:o,hasScrollableElement:c,overflowBoundary:w,disableTether:D,overflowBoundaryPadding:v,isRtl:i,shiftToCoverTarget:P}),F&&vS(F,{container:o,overflowBoundary:w,overflowBoundaryPadding:v,isRtl:i}),gS(),l&&Qk({element:l,padding:k}),rp({strategy:"referenceHidden"}),rp({strategy:"escaped"}),!1].filter(Boolean);return{placement:bv(_,j,i),middleware:T,strategy:N??a?"fixed":"absolute",disableUpdateOnResize:d,useTransform:b}},[s,i,n,a])}function SS(e){"use no memo";const t=f.useRef(null),n=f.useRef(null),i=f.useRef(null),s=f.useRef(null),a=f.useRef(null),{enabled:o=!0}=e,l=kS(e),c=f.useCallback(()=>{t.current&&t.current.dispose(),t.current=null;var g;const p=(g=i.current)!==null&&g!==void 0?g:n.current;o&&Ox()&&p&&s.current&&(t.current=mS({container:s.current,target:p,arrow:a.current,...l(s.current,a.current)}))},[o,l]),u=qe(g=>{i.current=g,c()});f.useImperativeHandle(e.positioningRef,()=>({updatePosition:()=>{var g;return(g=t.current)===null||g===void 0?void 0:g.updatePosition()},setTarget:g=>{e.target,u(g)}}),[e.target,u]),nr(()=>{var g;u((g=e.target)!==null&&g!==void 0?g:null)},[e.target,u]),nr(()=>{c()},[c]);const m=Ql(null,g=>{n.current!==g&&(n.current=g,c())}),d=qe(g=>{var p;return(p=e.onPositioningEnd)===null||p===void 0?void 0:p.call(e,g)}),h=Ql(null,g=>{if(s.current!==g){var p;(p=s.current)===null||p===void 0||p.removeEventListener(yu,d),g==null||g.addEventListener(yu,d),s.current=g,c()}}),x=Ql(null,g=>{a.current!==g&&(a.current=g,c())});return{targetRef:m,containerRef:h,arrowRef:x}}function NS(e){return pi(e)?{element:e}:typeof e=="object"?e===null?{element:null}:e:{}}const CS=br.useInsertionEffect?br.useInsertionEffect:nr,jv=Symbol.for("fui-portal-style-ref-count"),zS="[data-portal-node]{position:absolute;top:0;left:0;right:0;z-index:1000000}",_v="fui-portal-styles";function wv(e){var t;return(t=e[jv])!==null&&t!==void 0?t:0}function ku(e,t){e[jv]=t}function BS(e){var t;const n=wv(e);if(n>0){ku(e,n+1);return}const i=e.createElement("style");i.id=_v,e.head.prepend(i),(t=i.sheet)===null||t===void 0||t.insertRule(zS),ku(e,1)}function TS(e){const t=wv(e);if(t===0)return;const n=t-1;if(n===0){var i;(i=e.head.querySelector(`#${_v}`))===null||i===void 0||i.remove()}ku(e,n)}function PS(e){const{targetDocument:t}=un();CS(()=>{if(!(e||!t))return BS(t),()=>TS(t)},[e,t])}const kv=br.useInsertionEffect,ES=e=>{"use no memo";const{className:t,dir:n,focusVisibleRef:i,targetNode:s}=e,a=f.useMemo(()=>{if(s===void 0||e.disabled)return null;const o=s.ownerDocument.createElement("div");return s.appendChild(o),o},[s,e.disabled]);return f.useMemo(()=>{a&&(a.className=t,a.setAttribute("dir",n),a.setAttribute("data-portal-node","true"),i.current=a)},[t,n,a,i]),f.useEffect(()=>()=>{a==null||a.remove()},[a]),a},DS=()=>{let e;function t(i,s){return e||(s&&(e=i.ownerDocument.createElement("div"),i.appendChild(e)),e)}function n(){e&&(e.remove(),e=void 0)}return{get:t,dispose:n}},AS=e=>{"use no memo";const{className:t,dir:n,focusVisibleRef:i,targetNode:s}=e,[a]=f.useState(DS),o=f.useMemo(()=>s===void 0||e.disabled?null:new Proxy({},{get(l,c){if(c==="nodeType")return 1;if(c==="remove"){const d=a.get(s,!1);return d&&d.childNodes.length===0&&a.dispose(),()=>{}}const u=a.get(s,!0),m=u?u[c]:void 0;return typeof m=="function"?m.bind(u):m},set(l,c,u){const m=c==="_virtual"||c==="focusVisible",d=m?a.get(s,!1):a.get(s,!0);return m&&!d?!0:d?(Object.assign(d,{[c]:u}),!0):!1}}),[a,s,e.disabled]);return kv(()=>{if(o)return o.setAttribute("class",t),o.setAttribute("dir",n),o.setAttribute("data-portal-node","true"),i.current=o,()=>{o.removeAttribute("class"),o.removeAttribute("dir")}},[t,n,o,i]),f.useEffect(()=>()=>{o==null||o.remove()},[o]),o},RS=kv?AS:ES,OS=e=>{"use no memo";const{targetDocument:t,dir:n}=un(),i=tw(),s=zw(),a=Y_(),o={dir:n,disabled:e.disabled,focusVisibleRef:s,className:[a,e.className].filter(Boolean).join(" "),targetNode:i??(t==null?void 0:t.body)};return PS(e.disabled),RS(o)},IS=e=>{const{element:t,className:n}=NS(e.mountNode),i=f.useRef(null),s=OS({disabled:!!t,className:n}),a=t??s,o={children:e.children,mountNode:a,virtualParentRootRef:i};return f.useEffect(()=>{if(!a)return;const l=i.current,c=a.contains(l);if(l&&!c)return Lm(a,l),()=>{Lm(a,void 0)}},[i,a]),o},LS=e=>f.createElement("span",{hidden:!0,ref:e.virtualParentRootRef},e.mountNode&&fo.createPortal(f.createElement(f.Fragment,null,e.children,f.createElement("span",{hidden:!0})),e.mountNode)),Sv=e=>{const t=IS(e);return LS(t)};Sv.displayName="Portal";const MS=e=>{const{iconOnly:t,iconPosition:n}=e;return wn(e.root,{children:[n!=="after"&&e.icon&&ke(e.icon,{}),!t&&e.root.children,n==="after"&&e.icon&&ke(e.icon,{})]})},Nv=f.createContext(void 0),FS={};Nv.Provider;const $S=()=>{var e;return(e=f.useContext(Nv))!==null&&e!==void 0?e:FS},qS=(e,t)=>{const{size:n}=$S(),{appearance:i="secondary",shape:s="rounded",size:a=n??"medium",...o}=e,l=VS(o,t);return{appearance:i,shape:s,size:a,...l}},VS=(e,t)=>{const{icon:n,iconPosition:i="before",...s}=e,a=et(n,{elementType:"span"});var o,l;return{disabled:(o=e.disabled)!==null&&o!==void 0?o:!1,disabledFocusable:(l=e.disabledFocusable)!==null&&l!==void 0?l:!1,iconPosition:i,iconOnly:!!(a!=null&&a.children&&!e.children),components:{root:"button",icon:"span"},root:vt(Lw(s.as,s),{elementType:"button",defaultProps:{ref:t,type:e.as!=="a"?"button":void 0}}),icon:a}},op={root:"fui-Button",icon:"fui-Button__icon"},US=en("r1f29ykk",null,{r:[".r1f29ykk{align-items:center;box-sizing:border-box;display:inline-flex;justify-content:center;text-decoration-line:none;vertical-align:middle;margin:0;overflow:hidden;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);border:var(--strokeWidthThin) solid var(--colorNeutralStroke1);font-family:var(--fontFamilyBase);outline-style:none;padding:5px var(--spacingHorizontalM);min-width:96px;border-radius:var(--borderRadiusMedium);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase300);transition-duration:var(--durationFaster);transition-property:background,border,color;transition-timing-function:var(--curveEasyEase);}",".r1f29ykk:hover{background-color:var(--colorNeutralBackground1Hover);border-color:var(--colorNeutralStroke1Hover);color:var(--colorNeutralForeground1Hover);cursor:pointer;}",".r1f29ykk:hover:active,.r1f29ykk:active:focus-visible{background-color:var(--colorNeutralBackground1Pressed);border-color:var(--colorNeutralStroke1Pressed);color:var(--colorNeutralForeground1Pressed);outline-style:none;}",".r1f29ykk[data-fui-focus-visible]{border-color:var(--colorStrokeFocus2);border-radius:var(--borderRadiusMedium);border-width:1px;outline:var(--strokeWidthThick) solid var(--colorTransparentStroke);box-shadow:0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset;z-index:1;}"],s:["@media screen and (prefers-reduced-motion: reduce){.r1f29ykk{transition-duration:0.01ms;}}","@media (forced-colors: active){.r1f29ykk:focus{border-color:ButtonText;}.r1f29ykk:hover{background-color:HighlightText;border-color:Highlight;color:Highlight;forced-color-adjust:none;}.r1f29ykk:hover:active,.r1f29ykk:active:focus-visible{background-color:HighlightText;border-color:Highlight;color:Highlight;forced-color-adjust:none;}}","@supports (-moz-appearance:button){.r1f29ykk[data-fui-focus-visible]{box-shadow:0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset;}}"]}),HS=en("rywnvv2",null,[".rywnvv2{align-items:center;display:inline-flex;justify-content:center;font-size:20px;height:20px;width:20px;--fui-Button__icon--spacing:var(--spacingHorizontalSNudge);}"]),KS=Pe({outline:{De3pzq:"f1c21dwh",Jwef8y:"fjxutwb",Bpjbzib:"fkoldzo"},primary:{De3pzq:"ffp7eso",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],sj55zd:"f1phragk",Jwef8y:"f15wkkf3",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],Bi91k9c:"f1rq72xc",Bpjbzib:"f1ksv2xa",im15vp:"fhvnf4x",Hjvxdg:["fb6swo4","f232fm2"],Gpfmf1:"f1klyf7k",ustxxc:["f232fm2","fb6swo4"],Brsut9c:"f1d6mv4x",By8wz76:"f1nz3ub2",Bcq6wej:"fag2qd2",Jcjdmf:["fmvhcg7","f14bpyus"],sc4o1m:"f1o3dhpw",Bosien3:["f14bpyus","fmvhcg7"],B7iucu3:"fqc85l4",B8gzw0y:"f1h3a8gf",Bbkh6qg:"fkiggi6",F230oe:"f8gmj8i",Bdw8ktp:["f1ap8nzx","fjag8bx"],Bj1xduy:"f1igan7k",Bhh2cfd:["fjag8bx","f1ap8nzx"],Bahaeuw:"f1v3eptx",Bv2bamp:"f1ysmecq",vxuvv6:"faulsx",Bli9q98:["f79t15f","f8qmx7k"],Bx2tt8t:"fbtzoaq",yad0b3:["f8qmx7k","f79t15f"],j2fop7:"fd4bjan"},secondary:{},subtle:{De3pzq:"fhovq9v",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],sj55zd:"fkfq4zb",Jwef8y:"f1t94bn6",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],Bi91k9c:"fnwyq0v",Bk3fhr4:"ft1hn21",Bmfj8id:"fuxngvv",Bbdnnc7:"fy5bs14",Bpjbzib:"f1q1yqic",im15vp:"fhvnf4x",Hjvxdg:["fb6swo4","f232fm2"],Gpfmf1:"f1klyf7k",ustxxc:["f232fm2","fb6swo4"],Brsut9c:"fwga7ee",Bqou3pl:"f1nhwcv0",Bsnehw8:"f1gm6xmp",wsxvnf:"f1xxsver",Bahaeuw:"f1v3eptx",Buhizc3:"fivsta0",j2fop7:"fd4bjan",Bqabnb4:"f3m6zum"},transparent:{De3pzq:"f1c21dwh",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],sj55zd:"fkfq4zb",Jwef8y:"fjxutwb",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],Bi91k9c:"f139oj5f",Bk3fhr4:"ft1hn21",Bmfj8id:"fuxngvv",Bpjbzib:"fkoldzo",im15vp:"fhvnf4x",Hjvxdg:["fb6swo4","f232fm2"],Gpfmf1:"f1klyf7k",ustxxc:["f232fm2","fb6swo4"],Brsut9c:"f1l983o9",Bqou3pl:"f1nhwcv0",Bsnehw8:"f1gm6xmp",Bbkh6qg:"fxoo9op",Bahaeuw:"f1v3eptx",Bv2bamp:"f1i0gk12",j2fop7:"fd4bjan"},circular:{Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"f44lkw9"},rounded:{},square:{Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"f1fabniw"},small:{Bf4jedk:"fh7ncta",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"fneth5b",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"ft85np5",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm"},smallWithIcon:{Byoj8tv:"f1brlhvm",z8tnut:"f1sl3k7w"},medium:{},large:{Bf4jedk:"f14es27b",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f4db1ww",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"ft85np5",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},largeWithIcon:{Byoj8tv:"fy7v416",z8tnut:"f1a1bwwz"}},{d:[".f1c21dwh{background-color:var(--colorTransparentBackground);}",".ffp7eso{background-color:var(--colorBrandBackground);}",".f1p3nwhy{border-top-color:transparent;}",".f11589ue{border-right-color:transparent;}",".f1pdflbu{border-left-color:transparent;}",".f1q5o8ev{border-bottom-color:transparent;}",".f1phragk{color:var(--colorNeutralForegroundOnBrand);}",".fhovq9v{background-color:var(--colorSubtleBackground);}",".fkfq4zb{color:var(--colorNeutralForeground2);}",[".f44lkw9{border-radius:var(--borderRadiusCircular);}",{p:-1}],[".f1fabniw{border-radius:var(--borderRadiusNone);}",{p:-1}],".fh7ncta{min-width:64px;}",[".fneth5b{padding:3px var(--spacingHorizontalS);}",{p:-1}],[".ft85np5{border-radius:var(--borderRadiusMedium);}",{p:-1}],".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".f1brlhvm{padding-bottom:1px;}",".f1sl3k7w{padding-top:1px;}",".f14es27b{min-width:96px;}",[".f4db1ww{padding:8px var(--spacingHorizontalL);}",{p:-1}],[".ft85np5{border-radius:var(--borderRadiusMedium);}",{p:-1}],".fod5ikn{font-size:var(--fontSizeBase400);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fy7v416{padding-bottom:7px;}",".f1a1bwwz{padding-top:7px;}"],h:[".fjxutwb:hover{background-color:var(--colorTransparentBackgroundHover);}",".fkoldzo:hover:active,.fkoldzo:active:focus-visible{background-color:var(--colorTransparentBackgroundPressed);}",".f15wkkf3:hover{background-color:var(--colorBrandBackgroundHover);}",".f1s2uweq:hover{border-top-color:transparent;}",".fr80ssc:hover{border-right-color:transparent;}",".fecsdlb:hover{border-left-color:transparent;}",".f1ukrpxl:hover{border-bottom-color:transparent;}",".f1rq72xc:hover{color:var(--colorNeutralForegroundOnBrand);}",".f1ksv2xa:hover:active,.f1ksv2xa:active:focus-visible{background-color:var(--colorBrandBackgroundPressed);}",".fhvnf4x:hover:active,.fhvnf4x:active:focus-visible{border-top-color:transparent;}",".fb6swo4:hover:active,.fb6swo4:active:focus-visible{border-right-color:transparent;}",".f232fm2:hover:active,.f232fm2:active:focus-visible{border-left-color:transparent;}",".f1klyf7k:hover:active,.f1klyf7k:active:focus-visible{border-bottom-color:transparent;}",".f1d6mv4x:hover:active,.f1d6mv4x:active:focus-visible{color:var(--colorNeutralForegroundOnBrand);}",".f1t94bn6:hover{background-color:var(--colorSubtleBackgroundHover);}",".fnwyq0v:hover{color:var(--colorNeutralForeground2Hover);}",".ft1hn21:hover .fui-Icon-filled{display:inline;}",".fuxngvv:hover .fui-Icon-regular{display:none;}",".fy5bs14:hover .fui-Button__icon{color:var(--colorNeutralForeground2BrandHover);}",".f1q1yqic:hover:active,.f1q1yqic:active:focus-visible{background-color:var(--colorSubtleBackgroundPressed);}",".fwga7ee:hover:active,.fwga7ee:active:focus-visible{color:var(--colorNeutralForeground2Pressed);}",".f1nhwcv0:hover:active .fui-Icon-filled,.f1nhwcv0:active:focus-visible .fui-Icon-filled{display:inline;}",".f1gm6xmp:hover:active .fui-Icon-regular,.f1gm6xmp:active:focus-visible .fui-Icon-regular{display:none;}",".f1xxsver:hover:active .fui-Button__icon,.f1xxsver:active:focus-visible .fui-Button__icon{color:var(--colorNeutralForeground2BrandPressed);}",".f139oj5f:hover{color:var(--colorNeutralForeground2BrandHover);}",".f1l983o9:hover:active,.f1l983o9:active:focus-visible{color:var(--colorNeutralForeground2BrandPressed);}"],m:[["@media (forced-colors: active){.f1nz3ub2{background-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fag2qd2{border-top-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f14bpyus{border-left-color:HighlightText;}.fmvhcg7{border-right-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1o3dhpw{border-bottom-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fqc85l4{color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1h3a8gf{forced-color-adjust:none;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fkiggi6:hover{background-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f8gmj8i:hover{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1ap8nzx:hover{border-right-color:Highlight;}.fjag8bx:hover{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1igan7k:hover{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1v3eptx:hover{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1ysmecq:hover:active,.f1ysmecq:active:focus-visible{background-color:HighlightText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.faulsx:hover:active,.faulsx:active:focus-visible{border-top-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f79t15f:hover:active,.f79t15f:active:focus-visible{border-right-color:Highlight;}.f8qmx7k:hover:active,.f8qmx7k:active:focus-visible{border-left-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fbtzoaq:hover:active,.fbtzoaq:active:focus-visible{border-bottom-color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fd4bjan:hover:active,.fd4bjan:active:focus-visible{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fivsta0:hover .fui-Button__icon{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f3m6zum:hover:active .fui-Button__icon,.f3m6zum:active:focus-visible .fui-Button__icon{color:Highlight;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fxoo9op:hover{background-color:var(--colorTransparentBackground);}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1i0gk12:hover:active,.f1i0gk12:active:focus-visible{background-color:var(--colorTransparentBackground);}}",{m:"(forced-colors: active)"}]]}),WS=Pe({base:{De3pzq:"f1bg9a2p",g2u3we:"f1jj8ep1",h3c5rm:["f15xbau","fy0fskl"],B9xav0g:"f4ikngz",zhjwy3:["fy0fskl","f15xbau"],sj55zd:"f1s2aq7o",Bceei9c:"fdrzuqr",Bfinmwp:"f15x8b5r",Jwef8y:"f1falr9n",Bgoe8wy:"f12mpcsy",Bwzppfd:["f1gwvigk","f18rmfxp"],oetu4i:"f1jnshp0",gg5e9n:["f18rmfxp","f1gwvigk"],Bi91k9c:"fvgxktp",eoavqd:"fphbwmw",Bk3fhr4:"f19vpps7",Bmfj8id:"fv5swzo",Bbdnnc7:"f1al02dq",Bpjbzib:"f1jct5ie",im15vp:"f13txml0",Hjvxdg:["f1ncddno","f1axfvow"],Gpfmf1:"f1z04ada",ustxxc:["f1axfvow","f1ncddno"],Brsut9c:"f1uhomfy",Bses4qk:"fy9mucy",Bqou3pl:"f1g9va8i",Bsnehw8:"fwgvudy",wsxvnf:"fom6jww"},highContrast:{By8wz76:"f14ptb23",Bcq6wej:"f9dbb4x",Jcjdmf:["f3qs60o","f5u9ap2"],sc4o1m:"fwd1oij",Bosien3:["f5u9ap2","f3qs60o"],B7iucu3:"f1cyfu5x",Grqk0h:"f127ot8j",h3ptyc:"f19etb0b",Buw724y:["f4f984j","fw441p0"],Buk7464:"f3d22hf",Hwei09:["fw441p0","f4f984j"],Bbkh6qg:"fj8k9ua",F230oe:"fifrq0d",Bdw8ktp:["f196mwp7","fnekfq"],Bj1xduy:"f1l6uprw",Bhh2cfd:["fnekfq","f196mwp7"],Bahaeuw:"fa9u7a5",Buhizc3:"f1m71e0y",Bv2bamp:"fw24f3",vxuvv6:"f1nznrny",Bli9q98:["fq8nxuu","f1ao3jkc"],Bx2tt8t:"ftoixeo",yad0b3:["f1ao3jkc","fq8nxuu"],j2fop7:"fpmuzpx",Bqabnb4:"f168odog"},outline:{De3pzq:"f1c21dwh",Jwef8y:"f9ql6rf",Bpjbzib:"f9r0db0"},primary:{g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],im15vp:"fhvnf4x",Hjvxdg:["fb6swo4","f232fm2"],Gpfmf1:"f1klyf7k",ustxxc:["f232fm2","fb6swo4"]},secondary:{},subtle:{De3pzq:"f1c21dwh",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],Jwef8y:"f9ql6rf",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],Bpjbzib:"f9r0db0",im15vp:"fhvnf4x",Hjvxdg:["fb6swo4","f232fm2"],Gpfmf1:"f1klyf7k",ustxxc:["f232fm2","fb6swo4"]},transparent:{De3pzq:"f1c21dwh",g2u3we:"f1p3nwhy",h3c5rm:["f11589ue","f1pdflbu"],B9xav0g:"f1q5o8ev",zhjwy3:["f1pdflbu","f11589ue"],Jwef8y:"f9ql6rf",Bgoe8wy:"f1s2uweq",Bwzppfd:["fr80ssc","fecsdlb"],oetu4i:"f1ukrpxl",gg5e9n:["fecsdlb","fr80ssc"],Bpjbzib:"f9r0db0",im15vp:"fhvnf4x",Hjvxdg:["fb6swo4","f232fm2"],Gpfmf1:"f1klyf7k",ustxxc:["f232fm2","fb6swo4"]}},{d:[".f1bg9a2p{background-color:var(--colorNeutralBackgroundDisabled);}",".f1jj8ep1{border-top-color:var(--colorNeutralStrokeDisabled);}",".f15xbau{border-right-color:var(--colorNeutralStrokeDisabled);}",".fy0fskl{border-left-color:var(--colorNeutralStrokeDisabled);}",".f4ikngz{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}",".f15x8b5r .fui-Button__icon{color:var(--colorNeutralForegroundDisabled);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".f1p3nwhy{border-top-color:transparent;}",".f11589ue{border-right-color:transparent;}",".f1pdflbu{border-left-color:transparent;}",".f1q5o8ev{border-bottom-color:transparent;}"],h:[".f1falr9n:hover{background-color:var(--colorNeutralBackgroundDisabled);}",".f12mpcsy:hover{border-top-color:var(--colorNeutralStrokeDisabled);}",".f1gwvigk:hover{border-right-color:var(--colorNeutralStrokeDisabled);}",".f18rmfxp:hover{border-left-color:var(--colorNeutralStrokeDisabled);}",".f1jnshp0:hover{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".fvgxktp:hover{color:var(--colorNeutralForegroundDisabled);}",".fphbwmw:hover{cursor:not-allowed;}",".f19vpps7:hover .fui-Icon-filled{display:none;}",".fv5swzo:hover .fui-Icon-regular{display:inline;}",".f1al02dq:hover .fui-Button__icon{color:var(--colorNeutralForegroundDisabled);}",".f1jct5ie:hover:active,.f1jct5ie:active:focus-visible{background-color:var(--colorNeutralBackgroundDisabled);}",".f13txml0:hover:active,.f13txml0:active:focus-visible{border-top-color:var(--colorNeutralStrokeDisabled);}",".f1ncddno:hover:active,.f1ncddno:active:focus-visible{border-right-color:var(--colorNeutralStrokeDisabled);}",".f1axfvow:hover:active,.f1axfvow:active:focus-visible{border-left-color:var(--colorNeutralStrokeDisabled);}",".f1z04ada:hover:active,.f1z04ada:active:focus-visible{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".f1uhomfy:hover:active,.f1uhomfy:active:focus-visible{color:var(--colorNeutralForegroundDisabled);}",".fy9mucy:hover:active,.fy9mucy:active:focus-visible{cursor:not-allowed;}",".f1g9va8i:hover:active .fui-Icon-filled,.f1g9va8i:active:focus-visible .fui-Icon-filled{display:none;}",".fwgvudy:hover:active .fui-Icon-regular,.fwgvudy:active:focus-visible .fui-Icon-regular{display:inline;}",".fom6jww:hover:active .fui-Button__icon,.fom6jww:active:focus-visible .fui-Button__icon{color:var(--colorNeutralForegroundDisabled);}",".f9ql6rf:hover{background-color:var(--colorTransparentBackground);}",".f9r0db0:hover:active,.f9r0db0:active:focus-visible{background-color:var(--colorTransparentBackground);}",".f1s2uweq:hover{border-top-color:transparent;}",".fr80ssc:hover{border-right-color:transparent;}",".fecsdlb:hover{border-left-color:transparent;}",".f1ukrpxl:hover{border-bottom-color:transparent;}",".fhvnf4x:hover:active,.fhvnf4x:active:focus-visible{border-top-color:transparent;}",".fb6swo4:hover:active,.fb6swo4:active:focus-visible{border-right-color:transparent;}",".f232fm2:hover:active,.f232fm2:active:focus-visible{border-left-color:transparent;}",".f1klyf7k:hover:active,.f1klyf7k:active:focus-visible{border-bottom-color:transparent;}"],m:[["@media (forced-colors: active){.f14ptb23{background-color:ButtonFace;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f9dbb4x{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f3qs60o{border-right-color:GrayText;}.f5u9ap2{border-left-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fwd1oij{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1cyfu5x{color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f127ot8j .fui-Button__icon{color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f19etb0b:focus{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f4f984j:focus{border-right-color:GrayText;}.fw441p0:focus{border-left-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f3d22hf:focus{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fj8k9ua:hover{background-color:ButtonFace;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fifrq0d:hover{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f196mwp7:hover{border-right-color:GrayText;}.fnekfq:hover{border-left-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1l6uprw:hover{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fa9u7a5:hover{color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1m71e0y:hover .fui-Button__icon{color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fw24f3:hover:active,.fw24f3:active:focus-visible{background-color:ButtonFace;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1nznrny:hover:active,.f1nznrny:active:focus-visible{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f1ao3jkc:hover:active,.f1ao3jkc:active:focus-visible{border-left-color:GrayText;}.fq8nxuu:hover:active,.fq8nxuu:active:focus-visible{border-right-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.ftoixeo:hover:active,.ftoixeo:active:focus-visible{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fpmuzpx:hover:active,.fpmuzpx:active:focus-visible{color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f168odog:hover:active .fui-Button__icon,.f168odog:active:focus-visible .fui-Button__icon{color:GrayText;}}",{m:"(forced-colors: active)"}]]}),GS=Pe({circular:{Bw81rd7:0,kdpuga:0,dm238s:0,B6xbmo0:0,B3whbx2:"f1062rbf"},rounded:{},square:{Bw81rd7:0,kdpuga:0,dm238s:0,B6xbmo0:0,B3whbx2:"fj0ryk1"},primary:{B8q5s1w:"f17t0x8g",Bci5o5g:["f194v5ow","fk7jm04"],n8qw10:"f1qgg65p",Bdrgwmp:["fk7jm04","f194v5ow"],j6ew2k:["fhgccpy","fjo7pq6"],he4mth:"f32wu9k",Byr4aka:"fu5nqqq",lks7q5:["f13prjl2","f1nl83rv"],Bnan3qt:"f1czftr5",k1dn9:["f1nl83rv","f13prjl2"],Bqsb82s:["fixhny3","f18mfu3r"],jg1oma:"feygou5"},small:{Bw81rd7:0,kdpuga:0,dm238s:0,B6xbmo0:0,B3whbx2:"fazmxh"},medium:{},large:{Bw81rd7:0,kdpuga:0,dm238s:0,B6xbmo0:0,B3whbx2:"f1b6alqh"}},{d:[[".f1062rbf[data-fui-focus-visible]{border-radius:var(--borderRadiusCircular);}",{p:-1}],[".fj0ryk1[data-fui-focus-visible]{border-radius:var(--borderRadiusNone);}",{p:-1}],".f17t0x8g[data-fui-focus-visible]{border-top-color:var(--colorStrokeFocus2);}",".f194v5ow[data-fui-focus-visible]{border-right-color:var(--colorStrokeFocus2);}",".fk7jm04[data-fui-focus-visible]{border-left-color:var(--colorStrokeFocus2);}",".f1qgg65p[data-fui-focus-visible]{border-bottom-color:var(--colorStrokeFocus2);}",".fhgccpy[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}",".fjo7pq6[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}",".f32wu9k[data-fui-focus-visible]:hover{box-shadow:var(--shadow2),0 0 0 var(--strokeWidthThin) var(--colorStrokeFocus2) inset;}",".fu5nqqq[data-fui-focus-visible]:hover{border-top-color:var(--colorStrokeFocus2);}",".f13prjl2[data-fui-focus-visible]:hover{border-right-color:var(--colorStrokeFocus2);}",".f1nl83rv[data-fui-focus-visible]:hover{border-left-color:var(--colorStrokeFocus2);}",".f1czftr5[data-fui-focus-visible]:hover{border-bottom-color:var(--colorStrokeFocus2);}",[".fazmxh[data-fui-focus-visible]{border-radius:var(--borderRadiusSmall);}",{p:-1}],[".f1b6alqh[data-fui-focus-visible]{border-radius:var(--borderRadiusLarge);}",{p:-1}]],t:["@supports (-moz-appearance:button){.f18mfu3r[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}.fixhny3[data-fui-focus-visible]{box-shadow:var(--shadow2),0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset,0 0 0 var(--strokeWidthThick) var(--colorNeutralForegroundOnBrand) inset;}}","@supports (-moz-appearance:button){.feygou5[data-fui-focus-visible]:hover{box-shadow:var(--shadow2),0 0 0 calc(var(--strokeWidthThin) + 0.25px) var(--colorStrokeFocus2) inset;}}"]}),XS=Pe({small:{Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"fu97m5z",Bf4jedk:"f17fgpbq",B2u0y6b:"f1jt17bm"},medium:{Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f18ktai2",Bf4jedk:"fwbmr0d",B2u0y6b:"f44c6la"},large:{Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1hbd1aw",Bf4jedk:"f12clzc2",B2u0y6b:"fjy1crr"}},{d:[[".fu97m5z{padding:1px;}",{p:-1}],".f17fgpbq{min-width:24px;}",".f1jt17bm{max-width:24px;}",[".f18ktai2{padding:5px;}",{p:-1}],".fwbmr0d{min-width:32px;}",".f44c6la{max-width:32px;}",[".f1hbd1aw{padding:7px;}",{p:-1}],".f12clzc2{min-width:40px;}",".fjy1crr{max-width:40px;}"]}),QS=Pe({small:{Be2twd7:"fe5j1ua",Bqenvij:"fjamq6b",a9b677:"f64fuq3",Bqrlyyl:"fbaiahx"},medium:{},large:{Be2twd7:"f1rt2boy",Bqenvij:"frvgh55",a9b677:"fq4mcun",Bqrlyyl:"f1exjqw5"},before:{t21cq0:["f1nizpg2","f1a695kz"]},after:{Frg6f3:["f1a695kz","f1nizpg2"]}},{d:[".fe5j1ua{font-size:20px;}",".fjamq6b{height:20px;}",".f64fuq3{width:20px;}",".fbaiahx{--fui-Button__icon--spacing:var(--spacingHorizontalXS);}",".f1rt2boy{font-size:24px;}",".frvgh55{height:24px;}",".fq4mcun{width:24px;}",".f1exjqw5{--fui-Button__icon--spacing:var(--spacingHorizontalSNudge);}",".f1nizpg2{margin-right:var(--fui-Button__icon--spacing);}",".f1a695kz{margin-left:var(--fui-Button__icon--spacing);}"]}),ZS=e=>{"use no memo";const t=US(),n=HS(),i=KS(),s=WS(),a=GS(),o=XS(),l=QS(),{appearance:c,disabled:u,disabledFocusable:m,icon:d,iconOnly:h,iconPosition:x,shape:g,size:p}=e;return e.root.className=_e(op.root,t,c&&i[c],i[p],d&&p==="small"&&i.smallWithIcon,d&&p==="large"&&i.largeWithIcon,i[g],(u||m)&&s.base,(u||m)&&s.highContrast,c&&(u||m)&&s[c],c==="primary"&&a.primary,a[p],a[g],h&&o[p],e.root.className),e.icon&&(e.icon.className=_e(op.icon,n,!!e.root.children&&l[x],l[p],e.icon.className)),e},Jn=f.forwardRef((e,t)=>{const n=qS(e,t);return ZS(n),zn("useButtonStyles_unstable")(n),MS(n)});Jn.displayName="Button";const Cv=f.createContext(void 0),YS=Cv.Provider,JS=()=>f.useContext(Cv),eN=e=>{var t,n,i,s;const{generatedControlId:a,orientation:o,required:l,size:c,validationState:u}=e,m=(t=e.label)===null||t===void 0?void 0:t.htmlFor,d=(n=e.label)===null||n===void 0?void 0:n.id,h=(i=e.validationMessage)===null||i===void 0?void 0:i.id,x=(s=e.hint)===null||s===void 0?void 0:s.id;return{field:f.useMemo(()=>({generatedControlId:a,hintId:x,labelFor:m,labelId:d,orientation:o,required:l,size:c,validationMessageId:h,validationState:u}),[a,x,m,d,o,l,c,h,u])}};function rl(e,t){return zv(JS(),e,t)}function zv(e,t,n){if(!e)return t;t={...t};const{generatedControlId:i,hintId:s,labelFor:a,labelId:o,required:l,validationMessageId:c,validationState:u}=e;if(i){var m,d;(d=(m=t).id)!==null&&d!==void 0||(m.id=i)}if(o&&(!(n!=null&&n.supportsLabelFor)||a!==t.id)){var h,x,g;(g=(h=t)[x="aria-labelledby"])!==null&&g!==void 0||(h[x]=o)}if((c||s)&&(t["aria-describedby"]=[c,s,t==null?void 0:t["aria-describedby"]].filter(Boolean).join(" ")),u==="error"){var p,w,b;(b=(p=t)[w="aria-invalid"])!==null&&b!==void 0||(p[w]=!0)}if(l)if(n!=null&&n.supportsRequired){var v,y;(y=(v=t).required)!==null&&y!==void 0||(v.required=!0)}else{var j,k,N;(N=(j=t)[k="aria-required"])!==null&&N!==void 0||(j[k]=!0)}if(n!=null&&n.supportsSize){var _,S;(S=(_=t).size)!==null&&S!==void 0||(_.size=e.size)}return t}const tN=(e,t)=>{let{children:n}=e;return typeof n=="function"&&(n=n(zv(t.field)||{})),ke(YS,{value:t==null?void 0:t.field,children:wn(e.root,{children:[e.label&&ke(e.label,{}),n,e.validationMessage&&wn(e.validationMessage,{children:[e.validationMessageIcon&&ke(e.validationMessageIcon,{}),e.validationMessage.children]}),e.hint&&ke(e.hint,{})]})})},nN=(e,t)=>{const{weight:n="regular",size:i="medium",...s}=e,a=rN(s,t);return{weight:n,size:i,...a}},rN=(e,t)=>{const{disabled:n=!1,required:i=!1,...s}=e;return{disabled:n,required:et(i===!0?"*":i||void 0,{defaultProps:{"aria-hidden":"true"},elementType:"span"}),components:{root:"label",required:"span"},root:vt(Ds("label",{ref:t,...s}),{elementType:"label"})}},iN=e=>wn(e.root,{children:[e.root.children,e.required&&ke(e.required,{})]}),lp={root:"fui-Label",required:"fui-Label__required"},sN=Pe({root:{Bahqtrf:"fk6fouc",sj55zd:"f19n0e5"},disabled:{sj55zd:"f1s2aq7o",B7iucu3:"f1cyfu5x"},required:{sj55zd:"f1whyuy6",uwmqm3:["fruq291","f7x41pl"]},small:{Be2twd7:"fy9rknc",Bg96gwp:"fwrc4pm"},medium:{Be2twd7:"fkhj508",Bg96gwp:"f1i3iumi"},large:{Be2twd7:"fod5ikn",Bg96gwp:"faaz57k",Bhrd7zp:"fl43uef"},semibold:{Bhrd7zp:"fl43uef"}},{d:[".fk6fouc{font-family:var(--fontFamilyBase);}",".f19n0e5{color:var(--colorNeutralForeground1);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".f1whyuy6{color:var(--colorPaletteRedForeground3);}",".fruq291{padding-left:var(--spacingHorizontalXS);}",".f7x41pl{padding-right:var(--spacingHorizontalXS);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".fkhj508{font-size:var(--fontSizeBase300);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",".fl43uef{font-weight:var(--fontWeightSemibold);}"],m:[["@media (forced-colors: active){.f1cyfu5x{color:GrayText;}}",{m:"(forced-colors: active)"}]]}),aN=e=>{"use no memo";const t=sN();return e.root.className=_e(lp.root,t.root,e.disabled&&t.disabled,t[e.size],e.weight==="semibold"&&t.semibold,e.root.className),e.required&&(e.required.className=_e(lp.required,t.required,e.disabled&&t.disabled,e.required.className)),e},Cs=f.forwardRef((e,t)=>{const n=nN(e,t);return aN(n),zn("useLabelStyles_unstable")(n),iN(n)});Cs.displayName="Label";const oN=(e,t)=>{const{children:n,required:i=!1,validationState:s=e.validationMessage?"error":"none"}=e,a=Zo("field-"),o=a+"__control",l=vt(Ds("div",{...e,ref:t},["children"]),{elementType:"div"}),c=et(e.label,{defaultProps:{htmlFor:o,id:a+"__label",required:i},elementType:"label"}),u=et(e.validationMessage,{defaultProps:{id:a+"__validationMessage",role:s==="error"||s==="warning"?"alert":void 0},elementType:"div"}),m=et(e.hint,{defaultProps:{id:a+"__hint"},elementType:"div"}),d=et(e.validationMessageIcon,{renderByDefault:!1,elementType:"span"});return{children:n,generatedControlId:o,required:i,validationState:s,components:{root:"div",label:"label",validationMessage:"div",validationMessageIcon:"span",hint:"div"},root:l,label:c,validationMessageIcon:d,validationMessage:u,hint:m}},lN={error:f.createElement(ik,null),warning:f.createElement(Yw,null),success:f.createElement(rk,null),none:void 0},cN=(e,t)=>{const{orientation:n="vertical",size:i="medium",...s}=e,a=oN(s,t),o=lN[a.validationState];return{...a,components:{...a.components,label:Cs},label:et(e.label,{defaultProps:{size:i,...a.label},elementType:Cs}),validationMessageIcon:et(e.validationMessageIcon,{renderByDefault:!!o,defaultProps:{children:o},elementType:"span"}),orientation:n,size:i}},Ii={root:"fui-Field",label:"fui-Field__label",validationMessage:"fui-Field__validationMessage",validationMessageIcon:"fui-Field__validationMessageIcon",hint:"fui-Field__hint"},uN=Pe({base:{mc9l5x:"f13qh94s"},horizontal:{Budl1dq:"f2wwaib",wkccdc:"f1645dqt"},horizontalNoLabel:{uwmqm3:["f15jqgz8","fggqkej"],Budl1dq:"f1c2z91y"}},{d:[".f13qh94s{display:grid;}",".f2wwaib{grid-template-columns:33% 1fr;}",".f1645dqt{grid-template-rows:auto auto auto 1fr;}",".f15jqgz8{padding-left:33%;}",".fggqkej{padding-right:33%;}",".f1c2z91y{grid-template-columns:1fr;}"]}),dN=Pe({base:{B2u0y6b:"f6nezus",Bxyxcbc:"f1iqmcbn"},vertical:{z8tnut:"fclwglc",Byoj8tv:"fywfov9",jrapky:"fyacil5"},verticalLarge:{z8tnut:"f1sl3k7w",Byoj8tv:"f1brlhvm",jrapky:"f8l5zjj"},horizontal:{z8tnut:"fp2oml8",Byoj8tv:"f1tdddsa",t21cq0:["fkujibs","f199hnxi"],Ijaq50:"f16hsg94",nk6f5a:"f1nzqi2z"},horizontalSmall:{z8tnut:"f1ywm7hm",Byoj8tv:"f14wxoun"},horizontalLarge:{z8tnut:"f1hqyr95",Byoj8tv:"fm4hlj0"}},{d:[".f6nezus{max-width:max-content;}",".f1iqmcbn{max-height:max-content;}",".fclwglc{padding-top:var(--spacingVerticalXXS);}",".fywfov9{padding-bottom:var(--spacingVerticalXXS);}",".fyacil5{margin-bottom:var(--spacingVerticalXXS);}",".f1sl3k7w{padding-top:1px;}",".f1brlhvm{padding-bottom:1px;}",".f8l5zjj{margin-bottom:var(--spacingVerticalXS);}",".fp2oml8{padding-top:var(--spacingVerticalSNudge);}",".f1tdddsa{padding-bottom:var(--spacingVerticalSNudge);}",".fkujibs{margin-right:var(--spacingHorizontalM);}",".f199hnxi{margin-left:var(--spacingHorizontalM);}",".f16hsg94{grid-row-start:1;}",".f1nzqi2z{grid-row-end:-1;}",".f1ywm7hm{padding-top:var(--spacingVerticalXS);}",".f14wxoun{padding-bottom:var(--spacingVerticalXS);}",".f1hqyr95{padding-top:9px;}",".fm4hlj0{padding-bottom:9px;}"]}),fN=en("r5c4z9l",null,[".r5c4z9l{margin-top:var(--spacingVerticalXXS);color:var(--colorNeutralForeground3);font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase200);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase200);}"]),mN=Pe({error:{sj55zd:"f1hcrxcs"},withIcon:{uwmqm3:["frawy03","fg4c52"]}},{d:[".f1hcrxcs{color:var(--colorPaletteRedForeground1);}",".frawy03{padding-left:calc(12px + var(--spacingHorizontalXS));}",".fg4c52{padding-right:calc(12px + var(--spacingHorizontalXS));}"]}),pN=en("ra7h1uk","r1rh6bd7",[".ra7h1uk{display:inline-block;font-size:12px;margin-left:calc(-12px - var(--spacingHorizontalXS));margin-right:var(--spacingHorizontalXS);line-height:0;vertical-align:-1px;}",".r1rh6bd7{display:inline-block;font-size:12px;margin-right:calc(-12px - var(--spacingHorizontalXS));margin-left:var(--spacingHorizontalXS);line-height:0;vertical-align:-1px;}"]),hN=Pe({error:{sj55zd:"f1hcrxcs"},warning:{sj55zd:"f1k5f75o"},success:{sj55zd:"ffmvakt"}},{d:[".f1hcrxcs{color:var(--colorPaletteRedForeground1);}",".f1k5f75o{color:var(--colorPaletteDarkOrangeForeground1);}",".ffmvakt{color:var(--colorPaletteGreenForeground1);}"]}),gN=e=>{"use no memo";const{validationState:t,size:n}=e,i=e.orientation==="horizontal",s=uN();e.root.className=_e(Ii.root,s.base,i&&s.horizontal,i&&!e.label&&s.horizontalNoLabel,e.root.className);const a=dN();e.label&&(e.label.className=_e(Ii.label,a.base,i&&a.horizontal,i&&n==="small"&&a.horizontalSmall,i&&n==="large"&&a.horizontalLarge,!i&&a.vertical,!i&&n==="large"&&a.verticalLarge,e.label.className));const o=pN(),l=hN();e.validationMessageIcon&&(e.validationMessageIcon.className=_e(Ii.validationMessageIcon,o,t!=="none"&&l[t],e.validationMessageIcon.className));const c=fN(),u=mN();return e.validationMessage&&(e.validationMessage.className=_e(Ii.validationMessage,c,t==="error"&&u.error,!!e.validationMessageIcon&&u.withIcon,e.validationMessage.className)),e.hint&&(e.hint.className=_e(Ii.hint,c,e.hint.className)),e},Tt=f.forwardRef((e,t)=>{const n=cN(e,t);gN(n),zn("useFieldStyles_unstable")(n);const i=eN(n);return tN(n,i)});Tt.displayName="Field";const Bv=Qx({activeOption:void 0,appearance:"outline",focusVisible:!1,open:!1,registerOption(){return()=>{}},selectedOptions:[],selectOption(){},setActiveOption(){},setOpen(){},size:"medium"});Bv.Provider;const xN={activeOption:void 0,focusVisible:!1,multiselect:!1,getOptionById(){},getOptionsMatchingValue(){return[]},registerOption(){return()=>{}},selectedOptions:[],onOptionClick(){},onActiveDescendantChange(){},selectOption(){},setActiveOption(){}},Ni=Qx(void 0),jt=e=>Pw(Ni,(t=xN)=>e(t));Ni.Provider;function vN(e){const{appearance:t,open:n,getOptionById:i,getOptionsMatchingValue:s,registerOption:a,selectedOptions:o,selectOption:l,setOpen:c,size:u,activeDescendantController:m,onOptionClick:d,onActiveDescendantChange:h}=e,x={activeOption:void 0,appearance:t,focusVisible:!1,open:n,registerOption:a,selectedOptions:o,selectOption:l,setActiveOption:()=>null,setOpen:c,size:u},g={activeOption:void 0,focusVisible:!1,getOptionById:i,getOptionsMatchingValue:s,registerOption:a,selectedOptions:o,selectOption:l,setActiveOption:()=>null,onOptionClick:d,onActiveDescendantChange:h},p=f.useMemo(()=>({controller:m}),[m]);return{combobox:x,activeDescendant:p,listbox:g}}function bN(e){const t=Zx(Ni),{getOptionById:n,getOptionsMatchingValue:i,multiselect:s,registerOption:a,selectedOptions:o,selectOption:l,activeDescendantController:c}=e,u=jt(p=>p.registerOption),m=jt(p=>p.onOptionClick),d=jt(p=>p.onActiveDescendantChange),x={activeOption:void 0,focusVisible:!1,getOptionById:n,getOptionsMatchingValue:i,multiselect:s,registerOption:t?u:a,selectedOptions:o,selectOption:l,setActiveOption:()=>{},onOptionClick:m,onActiveDescendantChange:d},g=f.useMemo(()=>({controller:c}),[c]);return{listbox:x,activeDescendant:g}}function Hd(e,t={}){const{open:n=!0,multiselect:i=!1}=t,s=e.key,{altKey:a,ctrlKey:o,key:l,metaKey:c}=e;return l.length===1&&s!==qn&&!a&&!o&&!c?"Type":n?s===Wl&&a||s===ns||!i&&s===qn?"CloseSelect":i&&s===qn?"Select":s===Iw?"Close":s===qm?"Next":s===Wl?"Previous":s===Aw?"First":s===Dw?"Last":s===Ow?"PageUp":s===Rw?"PageDown":s===Ew?"Tab":"None":s===qm||s===Wl||s===ns||s===qn?"Open":"None"}const Tv=()=>{const e=f.useRef(new Map),t=f.useMemo(()=>({getCount:()=>e.current.size,getOptionAtIndex:()=>{},getIndexOfId:()=>-1,getOptionById:u=>e.current.get(u),getOptionsMatchingText:u=>Array.from(e.current.values()).filter(({text:m})=>u(m)),getOptionsMatchingValue:u=>{const m=[];for(const d of e.current.values())u(d.value)&&m.push(d);return m}}),[]),n=f.useCallback(i=>(e.current.set(i.id,i),()=>e.current.delete(i.id)),[]);return{...t,options:Array.from(e.current.values()),registerOption:n}},Pv=e=>{const{defaultSelectedOptions:t,multiselect:n,onOptionSelect:i}=e,[s,a]=ks({state:e.selectedOptions,defaultState:t,initialState:[]}),o=f.useCallback((c,u)=>{if(u.disabled)return;let m=[u.value];if(n){const d=s.findIndex(h=>h===u.value);d>-1?m=[...s.slice(0,d),...s.slice(d+1)]:m=[...s,u.value]}a(m),i==null||i(c,{optionValue:u.value,optionText:u.text,selectedOptions:m})},[i,n,s,a]);return{clearSelection:c=>{a([]),i==null||i(c,{optionValue:void 0,optionText:void 0,selectedOptions:[]})},selectOption:o,selectedOptions:s}},jo={root:"fui-Option",checkIcon:"fui-Option__checkIcon"},yN=Pe({root:{Bt984gj:"f122n59",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"ft85np5",sj55zd:"f19n0e5",i8kkvl:"f1ufnopg",Bceei9c:"f1k6fduh",mc9l5x:"f22iagw",Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bg96gwp:"f1i3iumi",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"fm5eomj",qhf8xq:"f10pi13n",Jwef8y:"f1knas48",Bi91k9c:"feu1g3u",zqbkvg:"fo79ri9",h82x05:["f1osiabc","f1e8le25"],cqj998:"f1yusjty",j3hlsh:["f1e8le25","f1osiabc"],ecr2s2:"fb40n2d",lj723h:"f1g4hkjv",Btxx2vb:"f1lnr2zp",sltcwy:["f1ogfk9z","f1g7j8ec"],dnwvvm:"fiuf46r",Blyvkvs:["f1g7j8ec","f1ogfk9z"]},active:{Bowz1zl:"f11vrvdw",oxogb1:"f17hxjb7",Ix2sn8:"f1dha69c",q7v32p:"f1lm7500",B7cbj04:0,Bewtojm:0,b50fsz:0,B1wzb3v:0,Bqwk70n:0,B37u8z8:0,avt0cx:0,f0sref:0,B9fkznv:0,Be3o27t:0,Bertapg:0,B53xpsf:0,Bsv72rj:0,B39dzdd:0,Btq9bd3:0,Bqfxd14:0,atup0s:"fo7xqb",Fffuxt:0,Bttcd12:0,Beitzug:0,Bqougee:0,B86i8pi:"f1kurthe",Bhijsxg:"fwq15dy",kktds4:"f1pb3wry",Bmau3bo:["ftjv2f4","f1flhb1f"],npektv:["f1flhb1f","ftjv2f4"]},disabled:{sj55zd:"f1s2aq7o",Jwef8y:"f9ql6rf",Bi91k9c:"fvgxktp",zqbkvg:"f185j3qj",h82x05:["f1dligi3","f1vydzie"],cqj998:"fjw1di3",j3hlsh:["f1vydzie","f1dligi3"],ecr2s2:"fgj9um3",lj723h:"f19wldhg",Btxx2vb:"f1ss0kt2",sltcwy:["f1t6oli3","fjy9ci8"],dnwvvm:"fresaxk",Blyvkvs:["fjy9ci8","f1t6oli3"],B7iucu3:"f1cyfu5x"},selected:{},checkIcon:{Bnnss6s:"fi64zpg",Be2twd7:"fod5ikn",Frg6f3:["f18b9hdq","fn6qj8t"],t21cq0:["f1xk557c","f1h9en5y"],Bcdw1i0:"fd7fpy0",Bo70h7d:"fvc9v3g"},selectedCheck:{Bcdw1i0:"f1022m68"},multiselectCheck:{Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"f1l3cf7o",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"fq9zq91",B7ck84d:"f1ewtqcl",mc9l5x:"f22iagw",Bt984gj:"f122n59",Brf1p80:"f4d9j23",Bkfmm31:"f1w9h62z",Be2twd7:"f1ugzwwg",Bqenvij:"fd461yt",a9b677:"fjw5fx7",Bcdw1i0:"f1022m68"},selectedMultiselectCheck:{De3pzq:"ftywsgz",sj55zd:"fqpbvvt",g2u3we:"f3xi7mh",h3c5rm:["ftovhe4","f1wczvin"],B9xav0g:"f68vbr6",zhjwy3:["f1wczvin","ftovhe4"]},checkDisabled:{sj55zd:"f1s2aq7o",B7iucu3:"f1cyfu5x"},multiselectCheckDisabled:{g2u3we:"f1r1t4y1",h3c5rm:["fmj8ijw","figx54m"],B9xav0g:"f360ss8",zhjwy3:["figx54m","fmj8ijw"]}},{d:[".f122n59{align-items:center;}",[".ft85np5{border-radius:var(--borderRadiusMedium);}",{p:-1}],".f19n0e5{color:var(--colorNeutralForeground1);}",".f1ufnopg{column-gap:var(--spacingHorizontalXS);}",".f1k6fduh{cursor:pointer;}",".f22iagw{display:flex;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",[".fm5eomj{padding:var(--spacingVerticalSNudge) var(--spacingHorizontalS);}",{p:-1}],".f10pi13n{position:relative;}",'.f11vrvdw[data-activedescendant-focusvisible]::after{content:"";}',".f17hxjb7[data-activedescendant-focusvisible]::after{position:absolute;}",".f1dha69c[data-activedescendant-focusvisible]::after{pointer-events:none;}",".f1lm7500[data-activedescendant-focusvisible]::after{z-index:1;}",[".fo7xqb[data-activedescendant-focusvisible]::after{border:2px solid var(--colorStrokeFocus2);}",{p:-2}],[".f1kurthe[data-activedescendant-focusvisible]::after{border-radius:var(--borderRadiusMedium);}",{p:-1}],".fwq15dy[data-activedescendant-focusvisible]::after{top:-2px;}",".f1pb3wry[data-activedescendant-focusvisible]::after{bottom:-2px;}",".ftjv2f4[data-activedescendant-focusvisible]::after{left:-2px;}",".f1flhb1f[data-activedescendant-focusvisible]::after{right:-2px;}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fi64zpg{flex-shrink:0;}",".fod5ikn{font-size:var(--fontSizeBase400);}",".f18b9hdq{margin-left:calc(var(--spacingHorizontalXXS) * -1);}",".fn6qj8t{margin-right:calc(var(--spacingHorizontalXXS) * -1);}",".f1xk557c{margin-right:var(--spacingHorizontalXXS);}",".f1h9en5y{margin-left:var(--spacingHorizontalXXS);}",".fd7fpy0{visibility:hidden;}",".fvc9v3g svg{display:block;}",".f1022m68{visibility:visible;}",[".f1l3cf7o{border:var(--strokeWidthThin) solid var(--colorNeutralStrokeAccessible);}",{p:-2}],[".fq9zq91{border-radius:var(--borderRadiusSmall);}",{p:-1}],".f1ewtqcl{box-sizing:border-box;}",".f4d9j23{justify-content:center;}",".f1w9h62z{fill:currentColor;}",".f1ugzwwg{font-size:12px;}",".fd461yt{height:16px;}",".fjw5fx7{width:16px;}",".ftywsgz{background-color:var(--colorCompoundBrandBackground);}",".fqpbvvt{color:var(--colorNeutralForegroundInverted);}",".f3xi7mh{border-top-color:var(--colorCompoundBrandBackground);}",".ftovhe4{border-right-color:var(--colorCompoundBrandBackground);}",".f1wczvin{border-left-color:var(--colorCompoundBrandBackground);}",".f68vbr6{border-bottom-color:var(--colorCompoundBrandBackground);}",".f1r1t4y1{border-top-color:var(--colorNeutralForegroundDisabled);}",".fmj8ijw{border-right-color:var(--colorNeutralForegroundDisabled);}",".figx54m{border-left-color:var(--colorNeutralForegroundDisabled);}",".f360ss8{border-bottom-color:var(--colorNeutralForegroundDisabled);}"],h:[".f1knas48:hover{background-color:var(--colorNeutralBackground1Hover);}",".feu1g3u:hover{color:var(--colorNeutralForeground1Hover);}",".fo79ri9:hover .fui-Option__checkIcon{border-top-color:var(--colorNeutralForeground1Hover);}",".f1osiabc:hover .fui-Option__checkIcon{border-right-color:var(--colorNeutralForeground1Hover);}",".f1e8le25:hover .fui-Option__checkIcon{border-left-color:var(--colorNeutralForeground1Hover);}",".f1yusjty:hover .fui-Option__checkIcon{border-bottom-color:var(--colorNeutralForeground1Hover);}",".f9ql6rf:hover{background-color:var(--colorTransparentBackground);}",".fvgxktp:hover{color:var(--colorNeutralForegroundDisabled);}",".f185j3qj:hover .fui-Option__checkIcon{border-top-color:var(--colorNeutralForegroundDisabled);}",".f1dligi3:hover .fui-Option__checkIcon{border-right-color:var(--colorNeutralForegroundDisabled);}",".f1vydzie:hover .fui-Option__checkIcon{border-left-color:var(--colorNeutralForegroundDisabled);}",".fjw1di3:hover .fui-Option__checkIcon{border-bottom-color:var(--colorNeutralForegroundDisabled);}"],a:[".fb40n2d:active{background-color:var(--colorNeutralBackground1Pressed);}",".f1g4hkjv:active{color:var(--colorNeutralForeground1Pressed);}",".f1lnr2zp:active .fui-Option__checkIcon{border-top-color:var(--colorNeutralForeground1Hover);}",".f1ogfk9z:active .fui-Option__checkIcon{border-right-color:var(--colorNeutralForeground1Hover);}",".f1g7j8ec:active .fui-Option__checkIcon{border-left-color:var(--colorNeutralForeground1Hover);}",".fiuf46r:active .fui-Option__checkIcon{border-bottom-color:var(--colorNeutralForeground1Hover);}",".fgj9um3:active{background-color:var(--colorTransparentBackground);}",".f19wldhg:active{color:var(--colorNeutralForegroundDisabled);}",".f1ss0kt2:active .fui-Option__checkIcon{border-top-color:var(--colorNeutralForegroundDisabled);}",".f1t6oli3:active .fui-Option__checkIcon{border-right-color:var(--colorNeutralForegroundDisabled);}",".fjy9ci8:active .fui-Option__checkIcon{border-left-color:var(--colorNeutralForegroundDisabled);}",".fresaxk:active .fui-Option__checkIcon{border-bottom-color:var(--colorNeutralForegroundDisabled);}"],m:[["@media (forced-colors: active){.f1cyfu5x{color:GrayText;}}",{m:"(forced-colors: active)"}]]}),jN=e=>{"use no memo";const{disabled:t,multiselect:n,selected:i}=e,s=yN();return e.root.className=_e(jo.root,s.root,s.active,t&&s.disabled,i&&s.selected,e.root.className),e.checkIcon&&(e.checkIcon.className=_e(jo.checkIcon,s.checkIcon,n&&s.multiselectCheck,i&&s.selectedCheck,i&&n&&s.selectedMultiselectCheck,t&&s.checkDisabled,t&&n&&s.multiselectCheckDisabled,e.checkIcon.className)),e},cp={activeOption:void 0,focusVisible:!1,setActiveOption:()=>null},_N=(e,t)=>{"use no memo";const{multiselect:n,disableAutoFocus:i=!1}=e,s=Tv(),{listboxRef:a,activeParentRef:o,controller:l}=nv({matchOption:z=>z.classList.contains(jo.root)}),c=Zx(Ni),u=jt(z=>z.onActiveDescendantChange),m=jt(z=>z.getOptionById),d=jt(z=>z.getOptionsMatchingValue),h=c?m:s.getOptionById,x=c?d:s.getOptionsMatchingValue,g=f.useMemo(()=>{let z=null;const A=$=>{const Z=$;u==null||u(Z)};return $=>{if(!$){z==null||z.removeEventListener("activedescendantchange",A);return}z=$,z.addEventListener("activedescendantchange",A)}},[u]),[p,w]=f.useState(!1);Xx(w);const b=Jx(),v=Fw(),y=v?b.controller:l,{clearSelection:j,selectedOptions:k,selectOption:N}=Pv(e),_=z=>{const A=Hd(z,{open:!0}),$=y.active(),Z=$?h($):null;switch(A){case"First":case"Last":case"Next":case"Previous":case"PageDown":case"PageUp":case"CloseSelect":case"Select":z.preventDefault();break}switch(A){case"Next":Z?y.next():y.first();break;case"Previous":Z?y.prev():y.first();break;case"PageUp":case"First":y.first();break;case"PageDown":case"Last":y.last();break;case"Select":case"CloseSelect":Z&&N(z,Z);break}},S=jt(z=>z.selectedOptions),P=jt(z=>z.selectOption),D=c?{selectedOptions:S,selectOption:P,...cp}:{selectedOptions:k,selectOption:N,...cp};f.useEffect(()=>{if(!v){if(y.hideFocusVisibleAttributes(),!i)if(!n&&D.selectedOptions.length>0){const z=x(A=>A===D.selectedOptions[0]).pop();z!=null&&z.id&&y.focus(z.id)}else y.first();return()=>{y.blur()}}},[]);const F=f.useCallback(()=>{v||(y.showFocusVisibleAttributes(),p&&y.scrollActiveIntoView())},[y,v,p]),T=f.useCallback(()=>{v||y.hideFocusVisibleAttributes()},[y,v]),M={components:{root:"div"},root:vt(Ds("div",{ref:Yn(t,o,a,g),role:n?"menu":"listbox",tabIndex:0,...e}),{elementType:"div"}),standalone:!c,multiselect:n,clearSelection:j,activeDescendantController:y,onActiveDescendantChange:u,...s,...D};return M.root.onKeyDown=qe(Wt(M.root.onKeyDown,_)),M.root.onFocus=qe(Wt(M.root.onFocus,F)),M.root.onBlur=qe(Wt(M.root.onBlur,T)),M},wN=(e,t)=>ke(Yx,{value:t.activeDescendant,children:ke(Ni.Provider,{value:t.listbox,children:ke(e.root,{})})}),kN={root:"fui-Listbox"},SN=Pe({root:{De3pzq:"fxugw4r",B7ck84d:"f1ewtqcl",mc9l5x:"f22iagw",Beiy3e4:"f1vx9l62",Bf4jedk:"f3hsy1e",Bmxbyg5:"f5zp4f",Bw0xxkn:0,oeaueh:0,Bpd4iqm:0,Befb4lg:"f1iepc6i",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1t35pdg",Belr9w4:"fiut8dr"}},{d:[".fxugw4r{background-color:var(--colorNeutralBackground1);}",".f1ewtqcl{box-sizing:border-box;}",".f22iagw{display:flex;}",".f1vx9l62{flex-direction:column;}",".f3hsy1e{min-width:160px;}",".f5zp4f{overflow-y:auto;}",[".f1iepc6i{outline:1px solid var(--colorTransparentStroke);}",{p:-1}],[".f1t35pdg{padding:var(--spacingHorizontalXS);}",{p:-1}],".fiut8dr{row-gap:var(--spacingHorizontalXXS);}"]}),NN=e=>{"use no memo";const t=SN();return e.root.className=_e(kN.root,t.root,e.root.className),e},Kd=f.forwardRef((e,t)=>{const n=_N(e,t),i=bN(n);return NN(n),zn("useListboxStyles_unstable")(n),wN(n,i)});Kd.displayName="Listbox";function CN(e,t){if(e!==void 0)return e;let n="",i=!1;return f.Children.forEach(t,s=>{typeof s=="string"?n+=s:i=!0}),i&&console.warn("Provide a `text` prop to Option components when they contain non-string children."),n}const zN=(e,t)=>{"use no memo";const n=BN(e,t);let i=f.createElement(Gw,null);if(n.multiselect&&(i=n.selected?f.createElement(nk,null):""),n.checkIcon){var s,a;(a=(s=n.checkIcon).children)!==null&&a!==void 0||(s.children=i)}return n},BN=(e,t)=>{const{children:n,disabled:i,text:s,value:a}=e,o=f.useRef(null),l=CN(s,n),c=a??l,u=Zo("fluent-option",e.id),m=f.useMemo(()=>({id:u,disabled:i,text:l,value:c}),[u,i,l,c]),{controller:d}=Jx(),h=jt(y=>y.multiselect),x=jt(y=>y.registerOption),g=jt(y=>{const j=y.selectedOptions;return c!==void 0&&j.find(k=>k===c)!==void 0}),p=jt(y=>y.selectOption),w=jt(y=>y.onOptionClick),b=y=>{var j;if(i){y.preventDefault();return}d.focus(u),p(y,m),w(y),(j=e.onClick)===null||j===void 0||j.call(e,y)};f.useEffect(()=>{if(u&&o.current)return x(m,o.current)},[u,m,x]);const v=h?{role:"menuitemcheckbox","aria-checked":g}:{role:"option","aria-selected":g};return{components:{root:"div",checkIcon:"span"},root:vt(Ds("div",{ref:Yn(t,o),"aria-disabled":i?"true":void 0,id:u,...v,...e,onClick:b}),{elementType:"div"}),checkIcon:et(e.checkIcon,{renderByDefault:!0,defaultProps:{"aria-hidden":"true"},elementType:"span"}),disabled:i,multiselect:h,selected:g,focusVisible:!1,active:!1}},TN=e=>wn(e.root,{children:[e.checkIcon&&ke(e.checkIcon,{}),e.root.children]}),Pr=f.forwardRef((e,t)=>{const n=zN(e,t);return jN(n),zn("useOptionStyles_unstable")(n),TN(n)});Pr.displayName="Option";const PN=e=>{"use no memo";const{appearance:t="outline",disableAutoFocus:n,children:i,clearable:s=!1,editable:a=!1,inlinePopup:o=!1,mountNode:l=void 0,multiselect:c,onOpenChange:u,size:m="medium",activeDescendantController:d,freeform:h=!1,disabled:x=!1,onActiveOptionChange:g=null}=e,p=Tv(),{getOptionsMatchingValue:w}=p,{getOptionById:b}=p,v=f.useCallback(()=>{const J=d.active();return J?b(J):void 0},[d,b]),y=v(),j=f.useCallback(J=>{let ue;if(typeof J=="function"){const pe=v();ue=J(pe)}ue?d.focus(ue.id):d.blur()},[d,v]),[k,N]=f.useState(!1),[_,S]=f.useState(!1),P=f.useRef(!1),D=lw(),[F,T]=ks({state:e.value,initialState:void 0}),{selectedOptions:M,selectOption:z,clearSelection:A}=Pv(e),$=f.useCallback((J,ue)=>{fo.unstable_batchedUpdates(()=>{T(void 0),z(J,ue)})},[T,z]),Z=f.useMemo(()=>{if(F!==void 0)return F;if(D&&e.defaultValue!==void 0)return e.defaultValue;const J=w(ue=>M.includes(ue)).map(ue=>ue.text);return c?a?"":J.join(", "):J[0]},[F,a,w,c,M]),[R,K]=ks({state:e.open,defaultState:e.defaultOpen,initialState:!1}),X=f.useCallback((J,ue)=>{x||(u==null||u(J,{open:ue}),fo.unstable_batchedUpdates(()=>{!ue&&!h&&T(void 0),K(ue)}))},[u,K,T,h,x]);f.useEffect(()=>{if(R){if(!c&&M.length>0){const J=w(ue=>ue===M[0]).pop();J!=null&&J.id&&d.focus(J.id)}}else d.blur()},[R,d]),f.useEffect(()=>{R&&!n&&!d.active()&&d.first()},[R,i,n,d,b]);const ae=qe(J=>{const ue=J.detail.previousId?p.getOptionById(J.detail.previousId):null,pe=p.getOptionById(J.detail.id);g==null||g(J,{event:J,type:"change",previousOption:ue,nextOption:pe})});return{...p,freeform:h,disabled:x,selectOption:$,clearSelection:A,selectedOptions:M,activeOption:y,appearance:t,clearable:s,focusVisible:k,ignoreNextBlur:P,inlinePopup:o,mountNode:l,open:R,hasFocus:_,setActiveOption:j,setFocusVisible:N,setHasFocus:S,setOpen:X,setValue:T,size:m,value:Z,multiselect:c,onOptionClick:qe(J=>{c||X(J,!1)}),onActiveDescendantChange:ae}};function EN(e){const{positioning:t}=e,i={position:"below",align:"start",offset:{crossAxis:0,mainAxis:2},fallbackPositions:["above","after","after-top","before","before-top"],matchTargetSize:"width",autoSize:!0,...yv(t)},{targetRef:s,containerRef:a}=SS(i);return[a,s]}function DN(e,t,n){const{state:{multiselect:i},triggerRef:s,defaultProps:a}=n,o=Zo("fluent-listbox",w_(e)?e.id:void 0),l=et(e,{renderByDefault:!0,elementType:Kd,defaultProps:{id:o,multiselect:i,tabIndex:void 0,...a}}),c=rl({id:o},{supportsLabelFor:!0});l&&!l["aria-label"]&&!l["aria-labelledby"]&&c["aria-labelledby"]&&(l["aria-labelledby"]=c["aria-labelledby"]);const u=qe(Wt(h=>{h.preventDefault()},l==null?void 0:l.onMouseDown)),m=qe(Wt(h=>{var x;h.preventDefault(),(x=s.current)===null||x===void 0||x.focus()},l==null?void 0:l.onClick)),d=Yn(l==null?void 0:l.ref,t);return l&&(l.ref=d,l.onMouseDown=u,l.onClick=m),l}function AN(e,t,n){const{state:{open:i,setOpen:s,setHasFocus:a},defaultProps:o,elementType:l,activeDescendantController:c}=n,u=vt(e,{defaultProps:{type:"text","aria-expanded":i,role:"combobox",...typeof o=="object"&&o},elementType:l}),m=f.useRef(null);return u.ref=Yn(m,u.ref,t),u.onBlur=Wt(d=>{s(d,!1),a(!1)},u.onBlur),u.onFocus=Wt(d=>{d.target===d.currentTarget&&a(!0)},u.onFocus),u.onClick=Wt(d=>{s(d,!i)},u.onClick),u.onKeyDown=Wt(RN({activeDescendantController:c,...n.state}),u.onKeyDown),u}function RN(e){const{activeDescendantController:t,getOptionById:n,setOpen:i,selectOption:s,multiselect:a,open:o}=e,l=f.useCallback(()=>{const p=t.active();return p?n(p):void 0},[t,n]),c=()=>{t.first()},u=()=>{t.last()},m=p=>{p?t.next():t.first()},d=p=>{p?t.prev():t.first()},h=()=>{for(let p=0;p<10;p++)t.prev()},x=()=>{for(let p=0;p<10;p++)t.next()},g=Bw();return qe(p=>{const w=Hd(p,{open:o,multiselect:a}),b=l();switch(w){case"First":case"Last":case"Next":case"Previous":case"PageDown":case"PageUp":case"Open":case"Close":case"CloseSelect":case"Select":p.preventDefault();break}switch(g(!0),w){case"First":c();break;case"Last":u();break;case"Next":m(b);break;case"Previous":d(b);break;case"PageDown":x();break;case"PageUp":h();break;case"Open":i(p,!0);break;case"Close":p.stopPropagation(),i(p,!1);break;case"CloseSelect":!a&&!(b!=null&&b.disabled)&&i(p,!1);case"Select":b&&s(p,b);break;case"Tab":!a&&b&&s(p,b);break}})}function ON(e,t,n){"use no memo";const{state:{open:i,setOpen:s,getOptionById:a},defaultProps:o,activeDescendantController:l}=n,c=f.useRef(""),[u,m]=Mx(),d=(p,w={startFromNext:!1})=>{const{startFromNext:b}=w,v=l.active(),y=l.find(j=>{const k=a(j);return!!k&&p(k.text)},{startFrom:b?l.next({passive:!0}):v});return y||l.find(j=>{const k=a(j);return!!k&&p(k.text)})},h=()=>{d(p=>p.toLocaleLowerCase().indexOf(c.current)===0,{startFromNext:c.current.length===1})||IN(c.current)&&d(p=>p.toLocaleLowerCase().indexOf(c.current[0])===0,{startFromNext:!0})||l.blur()},x=p=>{m(),Hd(p)==="Type"&&(c.current+=p.key.toLowerCase(),u(()=>{c.current=""},500),i&&h(),!i&&s(p,!0))},g=AN(e,t,{state:n.state,defaultProps:o,elementType:"button",activeDescendantController:l});return g.onKeyDown=Wt(x,g.onKeyDown),g}function IN(e){for(let t=1;t{"use no memo";var n;e=rl(e,{supportsLabelFor:!0});const{listboxRef:i,activeParentRef:s,controller:a}=nv({matchOption:$=>$.classList.contains(jo.root)}),o=PN({...e,activeDescendantController:a,freeform:!1}),{appearance:l,size:c,freeform:u,...m}=o,{clearable:d,clearSelection:h,disabled:x,hasFocus:g,multiselect:p,open:w,selectedOptions:b,setOpen:v}=m,{primary:y,root:j}=Od({props:e,primarySlotTagName:"button",excludedPropNames:["children"]}),[k,N]=EN(e),_=f.useRef(null),S=DN(e.listbox,Yn(k,i),{state:o,triggerRef:_,defaultProps:{children:e.children}}),{targetDocument:P}=un();uw({element:P,callback:$=>v($,!1),refs:[_,k,N],disabled:!w});var D;const F=ON((D=e.button)!==null&&D!==void 0?D:{},Yn(_,s,t),{state:o,defaultProps:{type:"button",tabIndex:y.disabled?void 0:0,children:m.value||e.placeholder,"aria-controls":w?S==null?void 0:S.id:void 0,...y},activeDescendantController:a}),T=vt(e.root,{defaultProps:{"aria-owns":!e.inlinePopup&&w?S==null?void 0:S.id:void 0,children:e.children,...j},elementType:"div"});T.ref=Yn(T.ref,N);const M=b.length>0&&!x&&d&&!p,z={components:{root:"div",button:"button",clearButton:"button",expandIcon:"span",listbox:Kd},root:T,button:F,listbox:w||g?S:void 0,clearButton:et(e.clearButton,{defaultProps:{"aria-label":"Clear selection",tabIndex:M?0:void 0,type:"button"},elementType:"button",renderByDefault:!0}),expandIcon:et(e.expandIcon,{renderByDefault:!0,elementType:"span"}),placeholderVisible:!m.value&&!!e.placeholder,showClearButton:M,activeDescendantController:a,...m},A=qe(Wt((n=z.clearButton)===null||n===void 0?void 0:n.onClick,$=>{var Z;h($),(Z=_.current)===null||Z===void 0||Z.focus()}));return z.clearButton&&(z.clearButton.onClick=A),p&&(z.clearButton=void 0),z},MN=(e,t)=>{"use no memo";const{appearance:n="outline",size:i="medium",...s}=e,a=LN(s,t);if(a.clearButton){var o,l;(l=(o=a.clearButton).children)!==null&&l!==void 0||(o.children=f.createElement(Qw,null))}if(a.expandIcon){var c,u;(u=(c=a.expandIcon).children)!==null&&u!==void 0||(c.children=f.createElement(Xw,null))}return{...a,appearance:n,size:i}},FN=(e,t)=>ke(e.root,{children:ke(Yx,{value:t.activeDescendant,children:ke(Ni.Provider,{value:t.listbox,children:wn(Bv.Provider,{value:t.combobox,children:[wn(e.button,{children:[e.button.children,e.expandIcon&&ke(e.expandIcon,{})]}),e.clearButton&&ke(e.clearButton,{}),e.listbox&&(e.inlinePopup?ke(e.listbox,{}):ke(Sv,{mountNode:e.mountNode,children:ke(e.listbox,{})}))]})})})}),Li={root:"fui-Dropdown",button:"fui-Dropdown__button",clearButton:"fui-Dropdown__clearButton",expandIcon:"fui-Dropdown__expandIcon",listbox:"fui-Dropdown__listbox"},$N=Pe({root:{Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"ft85np5",B7ck84d:"f1ewtqcl",mc9l5x:"ftuwxu6",Bf4jedk:"f1exfvgq",qhf8xq:"f10pi13n",ha4doy:"fmrv4ls",Bbr2w1p:"f14a1fxs",Bduesf4:"f3e99gv",Bpq79vn:"fhljsf7",li1rpt:"f1gw3sf2",Bsft5z2:"f13zj6fq",E3zdtr:"f1mdlcz9",Eqx8gd:["f1a7op3","f1cjjd47"],By385i5:"f1gboi2j",B1piin3:["f1cjjd47","f1a7op3"],Dlnsje:"ffyw7fx",d9w3h3:["f1kp91vd","f1ibwz09"],B3778ie:["f1ibwz09","f1kp91vd"],B1q35kw:0,Bw17bha:0,Bcgy8vk:0,Bjuhk93:"f1mnjydx",Gjdm7m:"f13evtba",b1kco5:"f1yk9hq",Ba2ppi3:"fhwpy7i",F2fol1:"f14ee0xe",lck23g:"f1xhbsuh",wi16st:"fsrmcvb",ywj3b2:"f1t3k7v9",umuwi5:"fjw5xc1",Blcqepd:"f1xdyd5c",nplu4u:"fatpbeo",Bioka5o:"fb7uyps",Bnupc0a:"fx04xgm",bing71:"f1c7in40",Bercvud:"f1ibeo51",Br277j9:"f18qfb8s",Btis473:"f1m082s7"},listbox:{B7ck84d:"f1ewtqcl",E5pizo:"f1hg901r",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"ft85np5",Bxyxcbc:"fmmk62d"},listboxCollapsed:{mc9l5x:"fjseox"},inlineListbox:{Bj3rh1h:"f19g0ac"},button:{Bt984gj:"f122n59",De3pzq:"f1c21dwh",Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"f3bhgqh",B7ck84d:"f1ewtqcl",sj55zd:"f19n0e5",i8kkvl:"f14mj54c",Bceei9c:"f1k6fduh",mc9l5x:"f13qh94s",Bahqtrf:"fk6fouc",Budl1dq:"f12nh0o2",Brf1p80:"f1869bpl",fsow6f:["f1o700av","fes3tcz"],a9b677:"fly5x3f",Brovlpu:"ftqa4ok"},placeholder:{sj55zd:"fxc4j92"},small:{Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:["fye6m5k","f3cq2dl"]},medium:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:["f14ev680","f58uxzw"]},large:{i8kkvl:"f1rjii52",Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"figsok6",Bg96gwp:"faaz57k",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:["f139mn7i","f1v3q0m"]},outline:{De3pzq:"fxugw4r",Bgfg5da:0,B9xav0g:"f1c1zstj",oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"fhz96rm"},outlineInteractive:{Bgoe8wy:"fvcxoqz",Bwzppfd:["f1ub3y4t","f1m52nbi"],oetu4i:"f1l4zc64",gg5e9n:["f1m52nbi","f1ub3y4t"],B6oc9vd:"fvs00aa",ak43y8:["f1assf6x","f4ruux4"],wmxk5l:"f1z0osm6",B50zh58:["f4ruux4","f1assf6x"],Bvq3b66:"f1b473iu",Brahy3i:["f381qr8","ft4skwv"],zoxjo1:"f1qzcrsd",an54nd:["ft4skwv","f381qr8"]},underline:{De3pzq:"f1c21dwh",B9xav0g:0,oivjwe:0,Bn0qgzm:0,Bgfg5da:"f9ez7ne",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"fokr779"},"filled-lighter":{De3pzq:"fxugw4r",Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"fs2rfia"},"filled-darker":{De3pzq:"f16xq7d1",Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"fs2rfia"},invalid:{tvckwq:"fs4k3qj",gk2u95:["fcee079","fmyw78r"],hhx65j:"f1fgmyf4",Bxowmz0:["fmyw78r","fcee079"]},invalidUnderline:{hhx65j:"f1fgmyf4"},disabled:{Bceei9c:"fdrzuqr",De3pzq:"f1c21dwh",g2u3we:"f1jj8ep1",h3c5rm:["f15xbau","fy0fskl"],B9xav0g:"f4ikngz",zhjwy3:["fy0fskl","f15xbau"],Bcq6wej:"f9dbb4x",Jcjdmf:["f3qs60o","f5u9ap2"],sc4o1m:"fwd1oij",Bosien3:["f5u9ap2","f3qs60o"]},disabledText:{sj55zd:"f1s2aq7o",Bceei9c:"fdrzuqr"},hidden:{mc9l5x:"fjseox"}},{d:[[".ft85np5{border-radius:var(--borderRadiusMedium);}",{p:-1}],".f1ewtqcl{box-sizing:border-box;}",".ftuwxu6{display:inline-flex;}",".f1exfvgq{min-width:250px;}",".f10pi13n{position:relative;}",".fmrv4ls{vertical-align:middle;}",".f1gw3sf2::after{box-sizing:border-box;}",'.f13zj6fq::after{content:"";}',".f1mdlcz9::after{position:absolute;}",".f1a7op3::after{left:-1px;}",".f1cjjd47::after{right:-1px;}",".f1gboi2j::after{bottom:-1px;}",".ffyw7fx::after{height:max(var(--strokeWidthThick), var(--borderRadiusMedium));}",".f1kp91vd::after{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1ibwz09::after{border-bottom-right-radius:var(--borderRadiusMedium);}",[".f1mnjydx::after{border-bottom:var(--strokeWidthThick) solid var(--colorCompoundBrandStroke);}",{p:-1}],".f13evtba::after{clip-path:inset(calc(100% - 2px) 0 0 0);}",".f1yk9hq::after{transform:scaleX(0);}",".fhwpy7i::after{transition-property:transform;}",".f14ee0xe::after{transition-duration:var(--durationUltraFast);}",".f1xhbsuh::after{transition-delay:var(--curveAccelerateMid);}",".f1hg901r{box-shadow:var(--shadow16);}",[".ft85np5{border-radius:var(--borderRadiusMedium);}",{p:-1}],".fmmk62d{max-height:80vh;}",".fjseox{display:none;}",".f19g0ac{z-index:1;}",".f122n59{align-items:center;}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",[".f3bhgqh{border:none;}",{p:-2}],".f19n0e5{color:var(--colorNeutralForeground1);}",".f14mj54c{column-gap:var(--spacingHorizontalXXS);}",".f1k6fduh{cursor:pointer;}",".f13qh94s{display:grid;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".f12nh0o2{grid-template-columns:[content] 1fr [icon] auto [end];}",".f1869bpl{justify-content:space-between;}",".f1o700av{text-align:left;}",".fes3tcz{text-align:right;}",".fly5x3f{width:100%;}",".fxc4j92{color:var(--colorNeutralForeground4);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",[".fye6m5k{padding:3px var(--spacingHorizontalSNudge) 3px calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS));}",{p:-1}],[".f3cq2dl{padding:3px calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS)) 3px var(--spacingHorizontalSNudge);}",{p:-1}],".fkhj508{font-size:var(--fontSizeBase300);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",[".f14ev680{padding:5px var(--spacingHorizontalMNudge) 5px calc(var(--spacingHorizontalMNudge) + var(--spacingHorizontalXXS));}",{p:-1}],[".f58uxzw{padding:5px calc(var(--spacingHorizontalMNudge) + var(--spacingHorizontalXXS)) 5px var(--spacingHorizontalMNudge);}",{p:-1}],".f1rjii52{column-gap:var(--spacingHorizontalSNudge);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",[".f139mn7i{padding:7px var(--spacingHorizontalM) 7px calc(var(--spacingHorizontalM) + var(--spacingHorizontalSNudge));}",{p:-1}],[".f1v3q0m{padding:7px calc(var(--spacingHorizontalM) + var(--spacingHorizontalSNudge)) 7px var(--spacingHorizontalM);}",{p:-1}],".fxugw4r{background-color:var(--colorNeutralBackground1);}",[".fhz96rm{border:var(--strokeWidthThin) solid var(--colorNeutralStroke1);}",{p:-2}],".f1c1zstj{border-bottom-color:var(--colorNeutralStrokeAccessible);}",[".f9ez7ne{border-bottom:var(--strokeWidthThin) solid var(--colorNeutralStrokeAccessible);}",{p:-1}],[".fokr779{border-radius:0;}",{p:-1}],[".fs2rfia{border:var(--strokeWidthThin) solid transparent;}",{p:-2}],".f16xq7d1{background-color:var(--colorNeutralBackground3);}",[".fs2rfia{border:var(--strokeWidthThin) solid transparent;}",{p:-2}],".fs4k3qj:not(:focus-within),.fs4k3qj:hover:not(:focus-within){border-top-color:var(--colorPaletteRedBorder2);}",".fcee079:not(:focus-within),.fcee079:hover:not(:focus-within){border-right-color:var(--colorPaletteRedBorder2);}",".fmyw78r:not(:focus-within),.fmyw78r:hover:not(:focus-within){border-left-color:var(--colorPaletteRedBorder2);}",".f1fgmyf4:not(:focus-within),.f1fgmyf4:hover:not(:focus-within){border-bottom-color:var(--colorPaletteRedBorder2);}",".fdrzuqr{cursor:not-allowed;}",".f1jj8ep1{border-top-color:var(--colorNeutralStrokeDisabled);}",".f15xbau{border-right-color:var(--colorNeutralStrokeDisabled);}",".fy0fskl{border-left-color:var(--colorNeutralStrokeDisabled);}",".f4ikngz{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}"],w:[".f14a1fxs:focus-within{outline-width:2px;}",".f3e99gv:focus-within{outline-style:solid;}",".fhljsf7:focus-within{outline-color:transparent;}",".fjw5xc1:focus-within::after{transform:scaleX(1);}",".f1xdyd5c:focus-within::after{transition-property:transform;}",".fatpbeo:focus-within::after{transition-duration:var(--durationNormal);}",".fb7uyps:focus-within::after{transition-delay:var(--curveDecelerateMid);}",".f1ibeo51:focus-within:active::after{border-bottom-color:var(--colorCompoundBrandStrokePressed);}",".f1b473iu:focus-within{border-top-color:var(--colorNeutralStroke1Pressed);}",".f381qr8:focus-within{border-right-color:var(--colorNeutralStroke1Pressed);}",".ft4skwv:focus-within{border-left-color:var(--colorNeutralStroke1Pressed);}",".f1qzcrsd:focus-within{border-bottom-color:var(--colorNeutralStrokeAccessiblePressed);}"],m:[["@media screen and (prefers-reduced-motion: reduce){.fsrmcvb::after{transition-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.f1t3k7v9::after{transition-delay:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.fx04xgm:focus-within::after{transition-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.f1c7in40:focus-within::after{transition-delay:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media (forced-colors: active){.f9dbb4x{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f3qs60o{border-right-color:GrayText;}.f5u9ap2{border-left-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fwd1oij{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}]],t:["@supports selector(:has(*)){.f18qfb8s:has(.fui-Dropdown__clearButton:focus)::after{border-bottom-color:initial;}}","@supports selector(:has(*)){.f1m082s7:has(.fui-Dropdown__clearButton:focus)::after{transform:scaleX(0);}}"],f:[".ftqa4ok:focus{outline-style:none;}"],h:[".fvcxoqz:hover{border-top-color:var(--colorNeutralStroke1Hover);}",".f1ub3y4t:hover{border-right-color:var(--colorNeutralStroke1Hover);}",".f1m52nbi:hover{border-left-color:var(--colorNeutralStroke1Hover);}",".f1l4zc64:hover{border-bottom-color:var(--colorNeutralStrokeAccessibleHover);}"],a:[".fvs00aa:active{border-top-color:var(--colorNeutralStroke1Pressed);}",".f1assf6x:active{border-right-color:var(--colorNeutralStroke1Pressed);}",".f4ruux4:active{border-left-color:var(--colorNeutralStroke1Pressed);}",".f1z0osm6:active{border-bottom-color:var(--colorNeutralStrokeAccessiblePressed);}"]}),qN=Pe({icon:{B7ck84d:"f1ewtqcl",sj55zd:"fxkbij4",mc9l5x:"ftgm304",Be2twd7:"f1pp30po",Br312pm:"f12w6cgp",Bw0ie65:"f8bv1bt",Bo70h7d:"fvc9v3g"},small:{Be2twd7:"f4ybsrx",Frg6f3:["f1h9en5y","f1xk557c"]},medium:{Be2twd7:"fe5j1ua",Frg6f3:["f1h9en5y","f1xk557c"]},large:{Be2twd7:"f1rt2boy",Frg6f3:["f1t5qyk5","f1ikr372"]},disabled:{sj55zd:"f1s2aq7o"}},{d:[".f1ewtqcl{box-sizing:border-box;}",".fxkbij4{color:var(--colorNeutralStrokeAccessible);}",".ftgm304{display:block;}",".f1pp30po{font-size:var(--fontSizeBase500);}",".f12w6cgp{grid-column-start:icon;}",".f8bv1bt{grid-column-end:end;}",".fvc9v3g svg{display:block;}",".f4ybsrx{font-size:16px;}",".f1h9en5y{margin-left:var(--spacingHorizontalXXS);}",".f1xk557c{margin-right:var(--spacingHorizontalXXS);}",".fe5j1ua{font-size:20px;}",".f1rt2boy{font-size:24px;}",".f1t5qyk5{margin-left:var(--spacingHorizontalSNudge);}",".f1ikr372{margin-right:var(--spacingHorizontalSNudge);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}"]}),VN=en("rticfuj","r1vp6jef",{r:[".rticfuj{align-self:center;background-color:var(--colorTransparentBackground);border:none;cursor:pointer;height:fit-content;margin:0;margin-right:var(--spacingHorizontalMNudge);padding:0;position:relative;}",".rticfuj:focus{outline-style:none;}",".rticfuj:focus-visible{outline-style:none;}",".rticfuj[data-fui-focus-visible]{border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent;}",'.rticfuj[data-fui-focus-visible]::after{content:"";position:absolute;pointer-events:none;z-index:1;border:2px solid var(--colorStrokeFocus2);border-radius:var(--borderRadiusMedium);top:calc(2px * -1);right:calc(2px * -1);bottom:calc(2px * -1);left:calc(2px * -1);}',".r1vp6jef{align-self:center;background-color:var(--colorTransparentBackground);border:none;cursor:pointer;height:fit-content;margin:0;margin-left:var(--spacingHorizontalMNudge);padding:0;position:relative;}",".r1vp6jef:focus{outline-style:none;}",".r1vp6jef:focus-visible{outline-style:none;}",".r1vp6jef[data-fui-focus-visible]{border-top-color:transparent;border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent;}",'.r1vp6jef[data-fui-focus-visible]::after{content:"";position:absolute;pointer-events:none;z-index:1;border:2px solid var(--colorStrokeFocus2);border-radius:var(--borderRadiusMedium);top:calc(2px * -1);left:calc(2px * -1);bottom:calc(2px * -1);right:calc(2px * -1);}'],s:["@media (forced-colors: active){.rticfuj[data-fui-focus-visible]::after{border-top-color:Highlight;border-right-color:Highlight;border-bottom-color:Highlight;border-left-color:Highlight;}}","@media (forced-colors: active){.r1vp6jef[data-fui-focus-visible]::after{border-top-color:Highlight;border-left-color:Highlight;border-bottom-color:Highlight;border-right-color:Highlight;}}"]}),UN=e=>{"use no memo";const{appearance:t,open:n,placeholderVisible:i,showClearButton:s,size:a}=e,o=`${e.button["aria-invalid"]}`=="true",l=e.button.disabled,c=$N(),u=qN(),m=VN();return e.root.className=_e(Li.root,c.root,c[t],!l&&t==="outline"&&c.outlineInteractive,o&&t!=="underline"&&c.invalid,o&&t==="underline"&&c.invalidUnderline,l&&c.disabled,e.root.className),e.button.className=_e(Li.button,c.button,c[a],i&&c.placeholder,l&&c.disabledText,e.button.className),e.listbox&&(e.listbox.className=_e(Li.listbox,c.listbox,e.inlinePopup&&c.inlineListbox,!n&&c.listboxCollapsed,e.listbox.className)),e.expandIcon&&(e.expandIcon.className=_e(Li.expandIcon,u.icon,u[a],l&&u.disabled,s&&c.hidden,e.expandIcon.className)),e.clearButton&&(e.clearButton.className=_e(Li.clearButton,m,u.icon,u[a],l&&u.disabled,!s&&c.hidden,e.clearButton.className)),e},Fa=f.forwardRef((e,t)=>{const n=MN(e,t),i=vN(n);return UN(n),zn("useDropdownStyles_unstable")(n),FN(n,i)});Fa.displayName="Dropdown";const HN=(e,t)=>{e=rl(e,{supportsLabelFor:!0,supportsRequired:!0,supportsSize:!0});const n=Dx();var i;const{size:s="medium",appearance:a=(i=n.inputDefaultAppearance)!==null&&i!==void 0?i:"outline",...o}=e,l=KN(o,t);return{size:s,appearance:a,...l}},KN=(e,t)=>{const{onChange:n}=e,[i,s]=ks({state:e.value,defaultState:e.defaultValue,initialState:""}),a=Od({props:e,primarySlotTagName:"input",excludedPropNames:["onChange","value","defaultValue"]}),o={components:{root:"span",input:"input",contentBefore:"span",contentAfter:"span"},input:vt(e.input,{defaultProps:{type:"text",ref:t,...a.primary},elementType:"input"}),contentAfter:et(e.contentAfter,{elementType:"span"}),contentBefore:et(e.contentBefore,{elementType:"span"}),root:vt(e.root,{defaultProps:a.root,elementType:"span"})};return o.input.value=i,o.input.onChange=qe(l=>{const c=l.target.value;n==null||n(l,{value:c}),s(c)}),o},WN=e=>wn(e.root,{children:[e.contentBefore&&ke(e.contentBefore,{}),ke(e.input,{}),e.contentAfter&&ke(e.contentAfter,{})]}),xa={root:"fui-Input",input:"fui-Input__input",contentBefore:"fui-Input__contentBefore",contentAfter:"fui-Input__contentAfter"},GN=en("r1oeeo9n","r9sxh5",{r:[".r1oeeo9n{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:var(--spacingHorizontalXXS);border-radius:var(--borderRadiusMedium);position:relative;box-sizing:border-box;vertical-align:middle;min-height:32px;font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);background-color:var(--colorNeutralBackground1);border:1px solid var(--colorNeutralStroke1);border-bottom-color:var(--colorNeutralStrokeAccessible);}",'.r1oeeo9n::after{box-sizing:border-box;content:"";position:absolute;left:-1px;bottom:-1px;right:-1px;height:max(2px, var(--borderRadiusMedium));border-bottom-left-radius:var(--borderRadiusMedium);border-bottom-right-radius:var(--borderRadiusMedium);border-bottom:2px solid var(--colorCompoundBrandStroke);clip-path:inset(calc(100% - 2px) 0 0 0);transform:scaleX(0);transition-property:transform;transition-duration:var(--durationUltraFast);transition-delay:var(--curveAccelerateMid);}',".r1oeeo9n:focus-within::after{transform:scaleX(1);transition-property:transform;transition-duration:var(--durationNormal);transition-delay:var(--curveDecelerateMid);}",".r1oeeo9n:focus-within:active::after{border-bottom-color:var(--colorCompoundBrandStrokePressed);}",".r1oeeo9n:focus-within{outline:2px solid transparent;}",".r9sxh5{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:var(--spacingHorizontalXXS);border-radius:var(--borderRadiusMedium);position:relative;box-sizing:border-box;vertical-align:middle;min-height:32px;font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);background-color:var(--colorNeutralBackground1);border:1px solid var(--colorNeutralStroke1);border-bottom-color:var(--colorNeutralStrokeAccessible);}",'.r9sxh5::after{box-sizing:border-box;content:"";position:absolute;right:-1px;bottom:-1px;left:-1px;height:max(2px, var(--borderRadiusMedium));border-bottom-right-radius:var(--borderRadiusMedium);border-bottom-left-radius:var(--borderRadiusMedium);border-bottom:2px solid var(--colorCompoundBrandStroke);clip-path:inset(calc(100% - 2px) 0 0 0);transform:scaleX(0);transition-property:transform;transition-duration:var(--durationUltraFast);transition-delay:var(--curveAccelerateMid);}',".r9sxh5:focus-within::after{transform:scaleX(1);transition-property:transform;transition-duration:var(--durationNormal);transition-delay:var(--curveDecelerateMid);}",".r9sxh5:focus-within:active::after{border-bottom-color:var(--colorCompoundBrandStrokePressed);}",".r9sxh5:focus-within{outline:2px solid transparent;}"],s:["@media screen and (prefers-reduced-motion: reduce){.r1oeeo9n::after{transition-duration:0.01ms;transition-delay:0.01ms;}}","@media screen and (prefers-reduced-motion: reduce){.r1oeeo9n:focus-within::after{transition-duration:0.01ms;transition-delay:0.01ms;}}","@media screen and (prefers-reduced-motion: reduce){.r9sxh5::after{transition-duration:0.01ms;transition-delay:0.01ms;}}","@media screen and (prefers-reduced-motion: reduce){.r9sxh5:focus-within::after{transition-duration:0.01ms;transition-delay:0.01ms;}}"]}),XN=Pe({small:{sshi5w:"f1pha7fy",Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm"},medium:{},large:{sshi5w:"f1w5jphr",Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"figsok6",Bg96gwp:"faaz57k",i8kkvl:0,Belr9w4:0,rmohyg:"f1eyhf9v"},outline:{},outlineInteractive:{Bgoe8wy:"fvcxoqz",Bwzppfd:["f1ub3y4t","f1m52nbi"],oetu4i:"f1l4zc64",gg5e9n:["f1m52nbi","f1ub3y4t"],Drbcw7:"f8vnjqi",udz0bu:["fz1etlk","f1hc16gm"],Be8ivqh:"f1klwx88",ofdepl:["f1hc16gm","fz1etlk"]},underline:{De3pzq:"f1c21dwh",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"fokr779",icvyot:"f1ern45e",vrafjx:["f1n71otn","f1deefiw"],wvpqe5:["f1deefiw","f1n71otn"],Eqx8gd:["f1n6gb5g","f15yvnhg"],B1piin3:["f15yvnhg","f1n6gb5g"]},underlineInteractive:{oetu4i:"f1l4zc64",Be8ivqh:"f1klwx88",d9w3h3:0,B3778ie:0,B4j8arr:0,Bl18szs:0,Blrzh8d:"f2ale1x"},filled:{g2u3we:"fghlq4f",h3c5rm:["f1gn591s","fjscplz"],B9xav0g:"fb073pr",zhjwy3:["fjscplz","f1gn591s"]},filledInteractive:{q7v0qe:"ftmjh5b",kmh5ft:["f17blpuu","fsrcdbj"],nagaa4:"f1tpwn32",B1yhkcb:["fsrcdbj","f17blpuu"]},invalid:{tvckwq:"fs4k3qj",gk2u95:["fcee079","fmyw78r"],hhx65j:"f1fgmyf4",Bxowmz0:["fmyw78r","fcee079"]},"filled-darker":{De3pzq:"f16xq7d1"},"filled-lighter":{De3pzq:"fxugw4r"},"filled-darker-shadow":{De3pzq:"f16xq7d1",E5pizo:"fyed02w"},"filled-lighter-shadow":{De3pzq:"fxugw4r",E5pizo:"fyed02w"},disabled:{Bceei9c:"fdrzuqr",De3pzq:"f1c21dwh",g2u3we:"f1jj8ep1",h3c5rm:["f15xbau","fy0fskl"],B9xav0g:"f4ikngz",zhjwy3:["fy0fskl","f15xbau"],Bcq6wej:"f9dbb4x",Jcjdmf:["f3qs60o","f5u9ap2"],sc4o1m:"fwd1oij",Bosien3:["f5u9ap2","f3qs60o"],Bsft5z2:"fhr9occ",Bduesf4:"f99w1ws"},smallWithContentBefore:{uwmqm3:["fk8j09s","fdw0yi8"]},smallWithContentAfter:{z189sj:["fdw0yi8","fk8j09s"]},mediumWithContentBefore:{uwmqm3:["f1ng84yb","f11gcy0p"]},mediumWithContentAfter:{z189sj:["f11gcy0p","f1ng84yb"]},largeWithContentBefore:{uwmqm3:["f1uw59to","fw5db7e"]},largeWithContentAfter:{z189sj:["fw5db7e","f1uw59to"]}},{d:[".f1pha7fy{min-height:24px;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".f1w5jphr{min-height:40px;}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}",[".f1eyhf9v{gap:var(--spacingHorizontalSNudge);}",{p:-1}],".f1c21dwh{background-color:var(--colorTransparentBackground);}",[".fokr779{border-radius:0;}",{p:-1}],".f1ern45e{border-top-style:none;}",".f1n71otn{border-right-style:none;}",".f1deefiw{border-left-style:none;}",".f1n6gb5g::after{left:0;}",".f15yvnhg::after{right:0;}",[".f2ale1x::after{border-radius:0;}",{p:-1}],".fghlq4f{border-top-color:var(--colorTransparentStroke);}",".f1gn591s{border-right-color:var(--colorTransparentStroke);}",".fjscplz{border-left-color:var(--colorTransparentStroke);}",".fb073pr{border-bottom-color:var(--colorTransparentStroke);}",".fs4k3qj:not(:focus-within),.fs4k3qj:hover:not(:focus-within){border-top-color:var(--colorPaletteRedBorder2);}",".fcee079:not(:focus-within),.fcee079:hover:not(:focus-within){border-right-color:var(--colorPaletteRedBorder2);}",".fmyw78r:not(:focus-within),.fmyw78r:hover:not(:focus-within){border-left-color:var(--colorPaletteRedBorder2);}",".f1fgmyf4:not(:focus-within),.f1fgmyf4:hover:not(:focus-within){border-bottom-color:var(--colorPaletteRedBorder2);}",".f16xq7d1{background-color:var(--colorNeutralBackground3);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",".fyed02w{box-shadow:var(--shadow2);}",".fdrzuqr{cursor:not-allowed;}",".f1jj8ep1{border-top-color:var(--colorNeutralStrokeDisabled);}",".f15xbau{border-right-color:var(--colorNeutralStrokeDisabled);}",".fy0fskl{border-left-color:var(--colorNeutralStrokeDisabled);}",".f4ikngz{border-bottom-color:var(--colorNeutralStrokeDisabled);}",".fhr9occ::after{content:unset;}",".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".f1ng84yb{padding-left:var(--spacingHorizontalMNudge);}",".f11gcy0p{padding-right:var(--spacingHorizontalMNudge);}",".f1uw59to{padding-left:var(--spacingHorizontalM);}",".fw5db7e{padding-right:var(--spacingHorizontalM);}"],h:[".fvcxoqz:hover{border-top-color:var(--colorNeutralStroke1Hover);}",".f1ub3y4t:hover{border-right-color:var(--colorNeutralStroke1Hover);}",".f1m52nbi:hover{border-left-color:var(--colorNeutralStroke1Hover);}",".f1l4zc64:hover{border-bottom-color:var(--colorNeutralStrokeAccessibleHover);}",".ftmjh5b:hover,.ftmjh5b:focus-within{border-top-color:var(--colorTransparentStrokeInteractive);}",".f17blpuu:hover,.f17blpuu:focus-within{border-right-color:var(--colorTransparentStrokeInteractive);}",".fsrcdbj:hover,.fsrcdbj:focus-within{border-left-color:var(--colorTransparentStrokeInteractive);}",".f1tpwn32:hover,.f1tpwn32:focus-within{border-bottom-color:var(--colorTransparentStrokeInteractive);}"],a:[".f8vnjqi:active,.f8vnjqi:focus-within{border-top-color:var(--colorNeutralStroke1Pressed);}",".fz1etlk:active,.fz1etlk:focus-within{border-right-color:var(--colorNeutralStroke1Pressed);}",".f1hc16gm:active,.f1hc16gm:focus-within{border-left-color:var(--colorNeutralStroke1Pressed);}",".f1klwx88:active,.f1klwx88:focus-within{border-bottom-color:var(--colorNeutralStrokeAccessiblePressed);}"],m:[["@media (forced-colors: active){.f9dbb4x{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f3qs60o{border-right-color:GrayText;}.f5u9ap2{border-left-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fwd1oij{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}]],w:[".f99w1ws:focus-within{outline-style:none;}"]}),QN=en("r12stul0",null,[".r12stul0{align-self:stretch;box-sizing:border-box;flex-grow:1;min-width:0;border-style:none;padding:0 var(--spacingHorizontalM);color:var(--colorNeutralForeground1);background-color:transparent;outline-style:none;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;}",".r12stul0::-webkit-input-placeholder{color:var(--colorNeutralForeground4);opacity:1;}",".r12stul0::-moz-placeholder{color:var(--colorNeutralForeground4);opacity:1;}",".r12stul0::placeholder{color:var(--colorNeutralForeground4);opacity:1;}"]),ZN=Pe({small:{uwmqm3:["f1f5gg8d","f1vdfbxk"],z189sj:["f1vdfbxk","f1f5gg8d"]},medium:{},large:{uwmqm3:["fnphzt9","flt1dlf"],z189sj:["flt1dlf","fnphzt9"]},smallWithContentBefore:{uwmqm3:["fgiv446","ffczdla"]},smallWithContentAfter:{z189sj:["ffczdla","fgiv446"]},mediumWithContentBefore:{uwmqm3:["fgiv446","ffczdla"]},mediumWithContentAfter:{z189sj:["ffczdla","fgiv446"]},largeWithContentBefore:{uwmqm3:["fk8j09s","fdw0yi8"]},largeWithContentAfter:{z189sj:["fdw0yi8","fk8j09s"]},disabled:{sj55zd:"f1s2aq7o",De3pzq:"f1c21dwh",Bceei9c:"fdrzuqr",yvdlaj:"fahhnxm"}},{d:[".f1f5gg8d{padding-left:var(--spacingHorizontalS);}",".f1vdfbxk{padding-right:var(--spacingHorizontalS);}",".fnphzt9{padding-left:calc(var(--spacingHorizontalM) + var(--spacingHorizontalSNudge));}",".flt1dlf{padding-right:calc(var(--spacingHorizontalM) + var(--spacingHorizontalSNudge));}",".fgiv446{padding-left:var(--spacingHorizontalXXS);}",".ffczdla{padding-right:var(--spacingHorizontalXXS);}",".fk8j09s{padding-left:var(--spacingHorizontalSNudge);}",".fdw0yi8{padding-right:var(--spacingHorizontalSNudge);}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",".fdrzuqr{cursor:not-allowed;}",".fahhnxm::-webkit-input-placeholder{color:var(--colorNeutralForegroundDisabled);}",".fahhnxm::-moz-placeholder{color:var(--colorNeutralForegroundDisabled);}"]}),YN=en("r1572tok",null,[".r1572tok{box-sizing:border-box;color:var(--colorNeutralForeground3);display:flex;}",".r1572tok>svg{font-size:20px;}"]),JN=Pe({disabled:{sj55zd:"f1s2aq7o"},small:{Duoase:"f3qv9w"},medium:{},large:{Duoase:"f16u2scb"}},{d:[".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".f3qv9w>svg{font-size:16px;}",".f16u2scb>svg{font-size:24px;}"]}),e2=e=>{"use no memo";const{size:t,appearance:n}=e,i=e.input.disabled,s=`${e.input["aria-invalid"]}`=="true",a=n.startsWith("filled"),o=XN(),l=ZN(),c=JN();e.root.className=_e(xa.root,GN(),o[t],e.contentBefore&&o[`${t}WithContentBefore`],e.contentAfter&&o[`${t}WithContentAfter`],o[n],!i&&n==="outline"&&o.outlineInteractive,!i&&n==="underline"&&o.underlineInteractive,!i&&a&&o.filledInteractive,a&&o.filled,!i&&s&&o.invalid,i&&o.disabled,e.root.className),e.input.className=_e(xa.input,QN(),l[t],e.contentBefore&&l[`${t}WithContentBefore`],e.contentAfter&&l[`${t}WithContentAfter`],i&&l.disabled,e.input.className);const u=[YN(),i&&c.disabled,c[t]];return e.contentBefore&&(e.contentBefore.className=_e(xa.contentBefore,...u,e.contentBefore.className)),e.contentAfter&&(e.contentAfter.className=_e(xa.contentAfter,...u,e.contentAfter.className)),e},mn=f.forwardRef((e,t)=>{const n=HN(e,t);return e2(n),zn("useInputStyles_unstable")(n),WN(n)});mn.displayName="Input";const Ev=f.createContext(void 0),t2={};Ev.Provider;const n2=()=>{var e;return(e=f.useContext(Ev))!==null&&e!==void 0?e:t2},r2=(e,t)=>{const{size:n}=n2(),{appearance:i="primary",size:s=n??"medium",...a}=e,o=i2(a,t);return{...o,appearance:i,size:s,components:{...o.components,label:Cs},label:et(e.label,{defaultProps:o.label,elementType:Cs})}},i2=(e,t)=>{const{delay:n=0,labelPosition:i="after"}=e,s=Zo("spinner"),{role:a="progressbar",...o}=e,l=vt(Ds("div",{ref:t,role:a,...o}),{elementType:"div"}),[c,u]=f.useState(!1),[m,d]=Mx();f.useEffect(()=>{if(!(n<=0))return m(()=>{u(!0)},n),()=>{d()}},[m,d,n]);const h=et(e.label,{defaultProps:{id:s},renderByDefault:!1,elementType:"label"}),x=et(e.spinner,{renderByDefault:!0,elementType:"span"});return h&&l&&!l["aria-labelledby"]&&(l["aria-labelledby"]=h.id),{delay:n,labelPosition:i,shouldRenderSpinner:!n||c,components:{root:"div",spinner:"span",spinnerTail:"span",label:"label"},root:l,spinner:x,spinnerTail:vt(e.spinnerTail,{elementType:"span"}),label:h}},s2=e=>{const{labelPosition:t,shouldRenderSpinner:n}=e;return wn(e.root,{children:[e.label&&n&&(t==="above"||t==="before")&&ke(e.label,{}),e.spinner&&n&&ke(e.spinner,{children:e.spinnerTail&&ke(e.spinnerTail,{})}),e.label&&n&&(t==="below"||t==="after")&&ke(e.label,{})]})},va={root:"fui-Spinner",spinner:"fui-Spinner__spinner",spinnerTail:"fui-Spinner__spinnerTail",label:"fui-Spinner__label"},a2=en("rpp59a7",null,[".rpp59a7{display:flex;align-items:center;justify-content:center;line-height:0;gap:8px;overflow:hidden;min-width:min-content;}"]),o2=Pe({vertical:{Beiy3e4:"f1vx9l62"}},{d:[".f1vx9l62{flex-direction:column;}"]}),l2=en("rvgcg50","r15nd2jo",{r:[".rvgcg50{position:relative;flex-shrink:0;-webkit-mask-image:radial-gradient(closest-side, transparent calc(100% - var(--fui-Spinner--strokeWidth) - 1px), white calc(100% - var(--fui-Spinner--strokeWidth)) calc(100% - 1px), transparent 100%);mask-image:radial-gradient(closest-side, transparent calc(100% - var(--fui-Spinner--strokeWidth) - 1px), white calc(100% - var(--fui-Spinner--strokeWidth)) calc(100% - 1px), transparent 100%);background-color:var(--colorBrandStroke2Contrast);color:var(--colorBrandStroke1);animation-duration:1.5s;animation-iteration-count:infinite;animation-timing-function:linear;animation-name:rb7n1on;}","@keyframes rb7n1on{0%{transform:rotate(0deg);}100%{transform:rotate(360deg);}}",".r15nd2jo{position:relative;flex-shrink:0;-webkit-mask-image:radial-gradient(closest-side, transparent calc(100% - var(--fui-Spinner--strokeWidth) - 1px), white calc(100% - var(--fui-Spinner--strokeWidth)) calc(100% - 1px), transparent 100%);mask-image:radial-gradient(closest-side, transparent calc(100% - var(--fui-Spinner--strokeWidth) - 1px), white calc(100% - var(--fui-Spinner--strokeWidth)) calc(100% - 1px), transparent 100%);background-color:var(--colorBrandStroke2Contrast);color:var(--colorBrandStroke1);animation-duration:1.5s;animation-iteration-count:infinite;animation-timing-function:linear;animation-name:r1gx3jof;}","@keyframes r1gx3jof{0%{transform:rotate(0deg);}100%{transform:rotate(-360deg);}}"],s:["@media screen and (forced-colors: active){.rvgcg50{background-color:HighlightText;color:Highlight;forced-color-adjust:none;}}","@media screen and (prefers-reduced-motion: reduce){.rvgcg50{animation-duration:1.8s;}}","@media screen and (forced-colors: active){.r15nd2jo{background-color:HighlightText;color:Highlight;forced-color-adjust:none;}}","@media screen and (prefers-reduced-motion: reduce){.r15nd2jo{animation-duration:1.8s;}}"]}),c2=en("rxov3xa","r1o544mv",{r:[".rxov3xa{position:absolute;display:block;width:100%;height:100%;-webkit-mask-image:conic-gradient(transparent 105deg, white 105deg);mask-image:conic-gradient(transparent 105deg, white 105deg);animation-duration:1.5s;animation-iteration-count:infinite;animation-timing-function:var(--curveEasyEase);animation-name:r15mim6k;}",'.rxov3xa::before,.rxov3xa::after{content:"";position:absolute;display:block;width:100%;height:100%;animation:inherit;background-image:conic-gradient(currentcolor 135deg, transparent 135deg);}',"@keyframes r15mim6k{0%{transform:rotate(-135deg);}50%{transform:rotate(0deg);}100%{transform:rotate(225deg);}}",".rxov3xa::before{animation-name:r18vhmn8;}","@keyframes r18vhmn8{0%{transform:rotate(0deg);}50%{transform:rotate(105deg);}100%{transform:rotate(0deg);}}",".rxov3xa::after{animation-name:rkgrvoi;}","@keyframes rkgrvoi{0%{transform:rotate(0deg);}50%{transform:rotate(225deg);}100%{transform:rotate(0deg);}}",".r1o544mv{position:absolute;display:block;width:100%;height:100%;-webkit-mask-image:conic-gradient(transparent 105deg, white 105deg);mask-image:conic-gradient(transparent 105deg, white 105deg);animation-duration:1.5s;animation-iteration-count:infinite;animation-timing-function:var(--curveEasyEase);animation-name:r109gmi5;}",'.r1o544mv::before,.r1o544mv::after{content:"";position:absolute;display:block;width:100%;height:100%;animation:inherit;background-image:conic-gradient(currentcolor 135deg, transparent 135deg);}',"@keyframes r109gmi5{0%{transform:rotate(135deg);}50%{transform:rotate(0deg);}100%{transform:rotate(-225deg);}}",".r1o544mv::before{animation-name:r17whflh;}","@keyframes r17whflh{0%{transform:rotate(0deg);}50%{transform:rotate(-105deg);}100%{transform:rotate(0deg);}}",".r1o544mv::after{animation-name:re4odhl;}","@keyframes re4odhl{0%{transform:rotate(0deg);}50%{transform:rotate(-225deg);}100%{transform:rotate(0deg);}}"],s:["@media screen and (prefers-reduced-motion: reduce){.rxov3xa{animation-iteration-count:0;background-image:conic-gradient(transparent 120deg, currentcolor 360deg);}.rxov3xa::before,.rxov3xa::after{content:none;}}","@media screen and (prefers-reduced-motion: reduce){.r1o544mv{animation-iteration-count:0;background-image:conic-gradient(transparent 120deg, currentcolor 360deg);}.r1o544mv::before,.r1o544mv::after{content:none;}}"]}),u2=Pe({inverted:{De3pzq:"fr407j0",sj55zd:"f1f7voed"},rtlTail:{btxmck:"f179dep3",gb5jj2:"fbz9ihp",Bdya8wy:"f1pme1qz"},"extra-tiny":{Bqenvij:"fd461yt",a9b677:"fjw5fx7",qmp6fs:"f1v3ph3m"},tiny:{Bqenvij:"fjamq6b",a9b677:"f64fuq3",qmp6fs:"f1v3ph3m"},"extra-small":{Bqenvij:"frvgh55",a9b677:"fq4mcun",qmp6fs:"f1v3ph3m"},small:{Bqenvij:"fxldao9",a9b677:"f1w9dchk",qmp6fs:"f1v3ph3m"},medium:{Bqenvij:"f1d2rq10",a9b677:"f1szoe96",qmp6fs:"fb52u90"},large:{Bqenvij:"f8ljn23",a9b677:"fpdz1er",qmp6fs:"fb52u90"},"extra-large":{Bqenvij:"fbhnoac",a9b677:"feqmc2u",qmp6fs:"fb52u90"},huge:{Bqenvij:"f1ft4266",a9b677:"fksc0bp",qmp6fs:"fa3u9ii"}},{d:[".fr407j0{background-color:var(--colorNeutralStrokeAlpha2);}",".f1f7voed{color:var(--colorNeutralStrokeOnBrand2);}",".f179dep3{-webkit-mask-image:conic-gradient(white 255deg, transparent 255deg);mask-image:conic-gradient(white 255deg, transparent 255deg);}",".fbz9ihp::before,.fbz9ihp::after{background-image:conic-gradient(transparent 225deg, currentcolor 225deg);}",".fd461yt{height:16px;}",".fjw5fx7{width:16px;}",".f1v3ph3m{--fui-Spinner--strokeWidth:var(--strokeWidthThick);}",".fjamq6b{height:20px;}",".f64fuq3{width:20px;}",".frvgh55{height:24px;}",".fq4mcun{width:24px;}",".fxldao9{height:28px;}",".f1w9dchk{width:28px;}",".f1d2rq10{height:32px;}",".f1szoe96{width:32px;}",".fb52u90{--fui-Spinner--strokeWidth:var(--strokeWidthThicker);}",".f8ljn23{height:36px;}",".fpdz1er{width:36px;}",".fbhnoac{height:40px;}",".feqmc2u{width:40px;}",".f1ft4266{height:44px;}",".fksc0bp{width:44px;}",".fa3u9ii{--fui-Spinner--strokeWidth:var(--strokeWidthThickest);}"],m:[["@media screen and (prefers-reduced-motion: reduce){.f1pme1qz{background-image:conic-gradient(currentcolor 0deg, transparent 240deg);}}",{m:"screen and (prefers-reduced-motion: reduce)"}]]}),d2=Pe({inverted:{sj55zd:"fonrgv7"},"extra-tiny":{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},tiny:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},"extra-small":{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},small:{Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},medium:{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},large:{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},"extra-large":{Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"fl43uef",Bg96gwp:"faaz57k"},huge:{Bahqtrf:"fk6fouc",Be2twd7:"f1pp30po",Bhrd7zp:"fl43uef",Bg96gwp:"f106mvju"}},{d:[".fonrgv7{color:var(--colorNeutralForegroundStaticInverted);}",".fk6fouc{font-family:var(--fontFamilyBase);}",".fkhj508{font-size:var(--fontSizeBase300);}",".figsok6{font-weight:var(--fontWeightRegular);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".fod5ikn{font-size:var(--fontSizeBase400);}",".fl43uef{font-weight:var(--fontWeightSemibold);}",".faaz57k{line-height:var(--lineHeightBase400);}",".f1pp30po{font-size:var(--fontSizeBase500);}",".f106mvju{line-height:var(--lineHeightBase500);}"]}),f2=e=>{"use no memo";const{labelPosition:t,size:n,appearance:i}=e,{dir:s}=un(),a=a2(),o=o2(),l=l2(),c=u2(),u=c2(),m=d2();return e.root.className=_e(va.root,a,(t==="above"||t==="below")&&o.vertical,e.root.className),e.spinner&&(e.spinner.className=_e(va.spinner,l,c[n],i==="inverted"&&c.inverted,e.spinner.className)),e.spinnerTail&&(e.spinnerTail.className=_e(va.spinnerTail,u,s==="rtl"&&c.rtlTail,e.spinnerTail.className)),e.label&&(e.label.className=_e(va.label,m[n],i==="inverted"&&m.inverted,e.label.className)),e},Dv=f.forwardRef((e,t)=>{const n=r2(e,t);return f2(n),zn("useSpinnerStyles_unstable")(n),s2(n)});Dv.displayName="Spinner";const m2=e=>ke(e.root,{children:ke(e.textarea,{})}),p2=(e,t)=>{const n=Dx();var i;const{size:s="medium",appearance:a=(i=n.inputDefaultAppearance)!==null&&i!==void 0?i:"outline",...o}=e;return{...h2(o,t),size:s,appearance:a}},h2=(e,t)=>{e=rl(e,{supportsLabelFor:!0,supportsRequired:!0,supportsSize:!0});const{resize:n="none",onChange:i}=e,[s,a]=ks({state:e.value,defaultState:e.defaultValue,initialState:void 0}),o=Od({props:e,primarySlotTagName:"textarea",excludedPropNames:["onChange","value","defaultValue"]}),l={resize:n,components:{root:"span",textarea:"textarea"},textarea:vt(e.textarea,{defaultProps:{ref:t,...o.primary},elementType:"textarea"}),root:vt(e.root,{defaultProps:o.root,elementType:"span"})};return l.textarea.value=s,l.textarea.onChange=qe(c=>{const u=c.target.value;i==null||i(c,{value:u}),a(u)}),l},up={root:"fui-Textarea",textarea:"fui-Textarea__textarea"},g2=Pe({base:{mc9l5x:"ftuwxu6",B7ck84d:"f1ewtqcl",qhf8xq:"f10pi13n",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1yiegib",jrapky:0,Frg6f3:0,t21cq0:0,B6of3ja:0,B74szlk:"f1s184ao",Beyfa6y:0,Bbmb7ep:0,Btl43ni:0,B7oj6ja:0,Dimara:"ft85np5",ha4doy:"f12kltsn"},disabled:{De3pzq:"f1c21dwh",Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"ff3nzm7",Bcq6wej:"f9dbb4x",Jcjdmf:["f3qs60o","f5u9ap2"],sc4o1m:"fwd1oij",Bosien3:["f5u9ap2","f3qs60o"]},interactive:{li1rpt:"f1gw3sf2",Bsft5z2:"f13zj6fq",E3zdtr:"f1mdlcz9",Eqx8gd:["f1a7op3","f1cjjd47"],By385i5:"f1gboi2j",B1piin3:["f1cjjd47","f1a7op3"],Dlnsje:"ffyw7fx",d9w3h3:["f1kp91vd","f1ibwz09"],B3778ie:["f1ibwz09","f1kp91vd"],B1q35kw:0,Bw17bha:0,Bcgy8vk:0,Bjuhk93:"f1mnjydx",Gjdm7m:"fj2g8qd",b1kco5:"f1yk9hq",Ba2ppi3:"fhwpy7i",F2fol1:"f14ee0xe",lck23g:"f1xhbsuh",wi16st:"fsrmcvb",ywj3b2:"f1t3k7v9",umuwi5:"fjw5xc1",Blcqepd:"f1xdyd5c",nplu4u:"fatpbeo",Bioka5o:"fb7uyps",Bnupc0a:"fx04xgm",bing71:"f1c7in40",Bercvud:"f1ibeo51",Bbr2w1p:"f1vnc8sk",Bduesf4:"f3e99gv",Bpq79vn:"fhljsf7"},filled:{Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"f88035w",q7v0qe:"ftmjh5b",kmh5ft:["f17blpuu","fsrcdbj"],nagaa4:"f1tpwn32",B1yhkcb:["fsrcdbj","f17blpuu"]},"filled-darker":{De3pzq:"f16xq7d1"},"filled-lighter":{De3pzq:"fxugw4r"},"filled-darker-shadow":{De3pzq:"f16xq7d1",Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"f1gmd7mu",E5pizo:"fyed02w"},"filled-lighter-shadow":{De3pzq:"fxugw4r",Bgfg5da:0,B9xav0g:0,oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"f1gmd7mu",E5pizo:"fyed02w"},outline:{De3pzq:"fxugw4r",Bgfg5da:0,B9xav0g:"f1c1zstj",oivjwe:0,Bn0qgzm:0,B4g9neb:0,zhjwy3:0,wvpqe5:0,ibv6hh:0,u1mtju:0,h3c5rm:0,vrafjx:0,Bekrc4i:0,i8vvqc:0,g2u3we:0,icvyot:0,B4j52fo:0,irswps:"fhz96rm"},outlineInteractive:{kzujx5:0,oetu4i:"f1l4zc64",gvrnp0:0,xv9156:0,jek2p4:0,gg5e9n:0,Beu9t3s:0,dt87k2:0,Bt1vbvt:0,Bwzppfd:0,Bop6t4b:0,B2zwrfe:0,Bwp2tzp:0,Bgoe8wy:0,Bf40cpq:0,ckks6v:0,Baalond:"f9mts5e",v2iqwr:0,wmxk5l:"f1z0osm6",Bj33j0h:0,Bs0cc2w:0,qwjtx1:0,B50zh58:0,f7epvg:0,e1hlit:0,B7mkhst:0,ak43y8:0,Bbcopvn:0,Bvecx4l:0,lwioe0:0,B6oc9vd:0,e2sjt0:0,uqwnxt:0,asj8p9:"f1acnei2",Br8fjdy:0,zoxjo1:"f1so894s",Bt3ojkv:0,B7pmvfx:0,Bfht2n1:0,an54nd:0,t1ykpo:0,Belqbek:0,bbt1vd:0,Brahy3i:0,r7b1zc:0,rexu52:0,ovtnii:0,Bvq3b66:0,Bawrxx6:0,Bbs6y8j:0,B2qpgjt:"f19ezbcq"},invalid:{tvckwq:"fs4k3qj",gk2u95:["fcee079","fmyw78r"],hhx65j:"f1fgmyf4",Bxowmz0:["fmyw78r","fcee079"]}},{d:[".ftuwxu6{display:inline-flex;}",".f1ewtqcl{box-sizing:border-box;}",".f10pi13n{position:relative;}",[".f1yiegib{padding:0 0 var(--strokeWidthThick) 0;}",{p:-1}],[".f1s184ao{margin:0;}",{p:-1}],[".ft85np5{border-radius:var(--borderRadiusMedium);}",{p:-1}],".f12kltsn{vertical-align:top;}",".f1c21dwh{background-color:var(--colorTransparentBackground);}",[".ff3nzm7{border:var(--strokeWidthThin) solid var(--colorNeutralStrokeDisabled);}",{p:-2}],".f1gw3sf2::after{box-sizing:border-box;}",'.f13zj6fq::after{content:"";}',".f1mdlcz9::after{position:absolute;}",".f1a7op3::after{left:-1px;}",".f1cjjd47::after{right:-1px;}",".f1gboi2j::after{bottom:-1px;}",".ffyw7fx::after{height:max(var(--strokeWidthThick), var(--borderRadiusMedium));}",".f1kp91vd::after{border-bottom-left-radius:var(--borderRadiusMedium);}",".f1ibwz09::after{border-bottom-right-radius:var(--borderRadiusMedium);}",[".f1mnjydx::after{border-bottom:var(--strokeWidthThick) solid var(--colorCompoundBrandStroke);}",{p:-1}],".fj2g8qd::after{clip-path:inset(calc(100% - var(--strokeWidthThick)) 0 0 0);}",".f1yk9hq::after{transform:scaleX(0);}",".fhwpy7i::after{transition-property:transform;}",".f14ee0xe::after{transition-duration:var(--durationUltraFast);}",".f1xhbsuh::after{transition-delay:var(--curveAccelerateMid);}",[".f88035w{border:var(--strokeWidthThin) solid var(--colorTransparentStroke);}",{p:-2}],".f16xq7d1{background-color:var(--colorNeutralBackground3);}",".fxugw4r{background-color:var(--colorNeutralBackground1);}",[".f1gmd7mu{border:var(--strokeWidthThin) solid var(--colorTransparentStrokeInteractive);}",{p:-2}],".fyed02w{box-shadow:var(--shadow2);}",[".f1gmd7mu{border:var(--strokeWidthThin) solid var(--colorTransparentStrokeInteractive);}",{p:-2}],[".fhz96rm{border:var(--strokeWidthThin) solid var(--colorNeutralStroke1);}",{p:-2}],".f1c1zstj{border-bottom-color:var(--colorNeutralStrokeAccessible);}",".fs4k3qj:not(:focus-within),.fs4k3qj:hover:not(:focus-within){border-top-color:var(--colorPaletteRedBorder2);}",".fcee079:not(:focus-within),.fcee079:hover:not(:focus-within){border-right-color:var(--colorPaletteRedBorder2);}",".fmyw78r:not(:focus-within),.fmyw78r:hover:not(:focus-within){border-left-color:var(--colorPaletteRedBorder2);}",".f1fgmyf4:not(:focus-within),.f1fgmyf4:hover:not(:focus-within){border-bottom-color:var(--colorPaletteRedBorder2);}"],m:[["@media (forced-colors: active){.f9dbb4x{border-top-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.f3qs60o{border-right-color:GrayText;}.f5u9ap2{border-left-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media (forced-colors: active){.fwd1oij{border-bottom-color:GrayText;}}",{m:"(forced-colors: active)"}],["@media screen and (prefers-reduced-motion: reduce){.fsrmcvb::after{transition-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.f1t3k7v9::after{transition-delay:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.fx04xgm:focus-within::after{transition-duration:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}],["@media screen and (prefers-reduced-motion: reduce){.f1c7in40:focus-within::after{transition-delay:0.01ms;}}",{m:"screen and (prefers-reduced-motion: reduce)"}]],w:[".fjw5xc1:focus-within::after{transform:scaleX(1);}",".f1xdyd5c:focus-within::after{transition-property:transform;}",".fatpbeo:focus-within::after{transition-duration:var(--durationNormal);}",".fb7uyps:focus-within::after{transition-delay:var(--curveDecelerateMid);}",".f1ibeo51:focus-within:active::after{border-bottom-color:var(--colorCompoundBrandStrokePressed);}",".f1vnc8sk:focus-within{outline-width:var(--strokeWidthThick);}",".f3e99gv:focus-within{outline-style:solid;}",".fhljsf7:focus-within{outline-color:transparent;}",[".f19ezbcq:focus-within{border:var(--strokeWidthThin) solid var(--colorNeutralStroke1Pressed);}",{p:-2}],".f1so894s:focus-within{border-bottom-color:var(--colorCompoundBrandStroke);}"],h:[".ftmjh5b:hover,.ftmjh5b:focus-within{border-top-color:var(--colorTransparentStrokeInteractive);}",".f17blpuu:hover,.f17blpuu:focus-within{border-right-color:var(--colorTransparentStrokeInteractive);}",".fsrcdbj:hover,.fsrcdbj:focus-within{border-left-color:var(--colorTransparentStrokeInteractive);}",".f1tpwn32:hover,.f1tpwn32:focus-within{border-bottom-color:var(--colorTransparentStrokeInteractive);}",[".f9mts5e:hover{border:var(--strokeWidthThin) solid var(--colorNeutralStroke1Hover);}",{p:-2}],".f1l4zc64:hover{border-bottom-color:var(--colorNeutralStrokeAccessibleHover);}"],a:[[".f1acnei2:active{border:var(--strokeWidthThin) solid var(--colorNeutralStroke1Pressed);}",{p:-2}],".f1z0osm6:active{border-bottom-color:var(--colorNeutralStrokeAccessiblePressed);}"]}),x2=Pe({base:{icvyot:"f1ern45e",vrafjx:["f1n71otn","f1deefiw"],oivjwe:"f1h8hb77",wvpqe5:["f1deefiw","f1n71otn"],jrapky:0,Frg6f3:0,t21cq0:0,B6of3ja:0,B74szlk:"f1s184ao",De3pzq:"f3rmtva",B7ck84d:"f1ewtqcl",sj55zd:"f19n0e5",Bh6795r:"fqerorx",Bahqtrf:"fk6fouc",Bqenvij:"f1l02sjl",yvdlaj:"fwyc1cq",B3o7kgh:"f13ta7ih",oeaueh:"f1s6fcnf"},disabled:{sj55zd:"f1s2aq7o",Bceei9c:"fdrzuqr",yvdlaj:"fahhnxm"},small:{sshi5w:"f1w5jphr",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1pnffij",Bxyxcbc:"f192z54u",Bahqtrf:"fk6fouc",Be2twd7:"fy9rknc",Bhrd7zp:"figsok6",Bg96gwp:"fwrc4pm"},medium:{sshi5w:"fvmd9f",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f1ww82xo",Bxyxcbc:"f1if7ixc",Bahqtrf:"fk6fouc",Be2twd7:"fkhj508",Bhrd7zp:"figsok6",Bg96gwp:"f1i3iumi"},large:{sshi5w:"f1kfson",Byoj8tv:0,uwmqm3:0,z189sj:0,z8tnut:0,B0ocmuz:"f15hvtkj",Bxyxcbc:"f3kip1f",Bahqtrf:"fk6fouc",Be2twd7:"fod5ikn",Bhrd7zp:"figsok6",Bg96gwp:"faaz57k"}},{d:[".f1ern45e{border-top-style:none;}",".f1n71otn{border-right-style:none;}",".f1deefiw{border-left-style:none;}",".f1h8hb77{border-bottom-style:none;}",[".f1s184ao{margin:0;}",{p:-1}],".f3rmtva{background-color:transparent;}",".f1ewtqcl{box-sizing:border-box;}",".f19n0e5{color:var(--colorNeutralForeground1);}",".fqerorx{flex-grow:1;}",".fk6fouc{font-family:var(--fontFamilyBase);}",".f1l02sjl{height:100%;}",".fwyc1cq::-webkit-input-placeholder{color:var(--colorNeutralForeground4);}",".fwyc1cq::-moz-placeholder{color:var(--colorNeutralForeground4);}",".f13ta7ih::-webkit-input-placeholder{opacity:1;}",".f13ta7ih::-moz-placeholder{opacity:1;}",".f1s6fcnf{outline-style:none;}",".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}",".fdrzuqr{cursor:not-allowed;}",".fahhnxm::-webkit-input-placeholder{color:var(--colorNeutralForegroundDisabled);}",".fahhnxm::-moz-placeholder{color:var(--colorNeutralForegroundDisabled);}",".f1w5jphr{min-height:40px;}",[".f1pnffij{padding:var(--spacingVerticalXS) calc(var(--spacingHorizontalSNudge) + var(--spacingHorizontalXXS));}",{p:-1}],".f192z54u{max-height:200px;}",".fy9rknc{font-size:var(--fontSizeBase200);}",".figsok6{font-weight:var(--fontWeightRegular);}",".fwrc4pm{line-height:var(--lineHeightBase200);}",".fvmd9f{min-height:52px;}",[".f1ww82xo{padding:var(--spacingVerticalSNudge) calc(var(--spacingHorizontalMNudge) + var(--spacingHorizontalXXS));}",{p:-1}],".f1if7ixc{max-height:260px;}",".fkhj508{font-size:var(--fontSizeBase300);}",".f1i3iumi{line-height:var(--lineHeightBase300);}",".f1kfson{min-height:64px;}",[".f15hvtkj{padding:var(--spacingVerticalS) calc(var(--spacingHorizontalM) + var(--spacingHorizontalXXS));}",{p:-1}],".f3kip1f{max-height:320px;}",".fod5ikn{font-size:var(--fontSizeBase400);}",".faaz57k{line-height:var(--lineHeightBase400);}"]}),v2=Pe({none:{B3rzk8w:"f1o1s39h"},both:{B3rzk8w:"f1pxm0xe"},horizontal:{B3rzk8w:"fq6nmtn"},vertical:{B3rzk8w:"f1f5ktr4"}},{d:[".f1o1s39h{resize:none;}",".f1pxm0xe{resize:both;}",".fq6nmtn{resize:horizontal;}",".f1f5ktr4{resize:vertical;}"]}),b2=e=>{"use no memo";const{size:t,appearance:n,resize:i}=e,s=e.textarea.disabled,a=`${e.textarea["aria-invalid"]}`=="true",o=n.startsWith("filled"),l=g2();e.root.className=_e(up.root,l.base,s&&l.disabled,!s&&o&&l.filled,!s&&l[n],!s&&l.interactive,!s&&n==="outline"&&l.outlineInteractive,!s&&a&&l.invalid,e.root.className);const c=x2(),u=v2();return e.textarea.className=_e(up.textarea,c.base,c[t],u[i],s&&c.disabled,e.textarea.className),e},Av=f.forwardRef((e,t)=>{const n=p2(e,t);return b2(n),zn("useTextareaStyles_unstable")(n),m2(n)});Av.displayName="Textarea";const Su=[{value:"offen",label:"Offen"},{value:"in_bearbeitung",label:"In Bearbeitung"},{value:"erledigt",label:"Erledigt"},{value:"ueberfaellig",label:"Überfällig"}],Rv=y_({toolbar:{display:"flex",gap:"12px",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap"},search:{minWidth:"280px",flexGrow:1},formGrid:{display:"grid",gridTemplateColumns:"repeat(2, minmax(0, 1fr))",gap:"16px",alignItems:"start","@media (max-width: 860px)":{gridTemplateColumns:"1fr"}},full:{gridColumn:"1 / -1"},helperText:{fontSize:$m.fontSizeBase200,color:$m.colorNeutralForeground3,marginTop:"6px"},tableWrap:{overflowX:"auto"},rowActions:{display:"flex",gap:"8px",flexWrap:"wrap"},attachmentHeader:{marginBottom:"8px",fontWeight:600},fluentInput:{backgroundColor:"rgba(255, 255, 255, 0.92)",borderRadius:"10px",border:"1px solid rgba(148, 163, 184, 0.35)",boxShadow:"none","& input":{backgroundColor:"#FFFFFF",color:"#0f172a"}},fluentTextareaLarge:{backgroundColor:"rgba(255, 255, 255, 0.92)",borderRadius:"10px",border:"1px solid rgba(148, 163, 184, 0.35)","& textarea":{backgroundColor:"#FFFFFF",color:"#0f172a",minHeight:"220px"}},fluentDropdown:{backgroundColor:"rgba(255, 255, 255, 0.92)",borderRadius:"10px",border:"1px solid rgba(148, 163, 184, 0.35)",color:"#0f172a"}});function Zl(){return{case_id:"",title:"",deadline_type:"",due_date_date:null,due_date_time:"",status:"offen",remind_days_before:3,assigned_user_id:"",committee_id:"",description:""}}function Ov(e){if(!e)return"";const t=new Date(e);return Number.isNaN(t.getTime())?String(e):t.toLocaleString("de-DE")}function y2(e){if(!e)return{date:null,time:""};const t=new Date(e);if(!Number.isNaN(t.getTime()))return{date:new Date(t.getFullYear(),t.getMonth(),t.getDate()),time:`${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`};const n=String(e),[i="",s=""]=n.split("T"),[a,o,l]=i.split("-").map(u=>Number(u)),c=s.slice(0,5);return a&&o&&l?{date:new Date(a,o-1,l),time:c}:{date:null,time:""}}function j2(e,t){if(!e||!(e instanceof Date)||Number.isNaN(e.getTime()))return null;const[n="0",i="0"]=String(t||"00:00").split(":"),s=Number(n||0),a=Number(i||0),o=e.getFullYear(),l=String(e.getMonth()+1).padStart(2,"0"),c=String(e.getDate()).padStart(2,"0"),u=String(s).padStart(2,"0"),m=String(a).padStart(2,"0");return`${o}-${l}-${c}T${u}:${m}`}function _2(e){const t=y2(e.due_date);return{case_id:e.case_id?String(e.case_id):"",title:e.title??"",deadline_type:e.deadline_type??"",due_date_date:t.date,due_date_time:t.time,status:e.status??"offen",remind_days_before:e.remind_days_before===null||e.remind_days_before===void 0?3:Number(e.remind_days_before),assigned_user_id:e.assigned_user_id?String(e.assigned_user_id):"",committee_id:e.committee_id?String(e.committee_id):"",description:e.description??""}}function w2({form:e,setForm:t,users:n,committees:i,attachments:s,pendingFiles:a,setPendingFiles:o,selected:l,onRemoveAttachment:c,onViewAttachment:u,onDownloadAttachment:m}){var h,x,g;const d=Rv();return r.jsxs("div",{className:d.formGrid,children:[r.jsx(Tt,{label:"Vorgangs-ID",children:r.jsx(mn,{className:d.fluentInput,value:e.case_id||(l==null?void 0:l.case_number)||"wird automatisch vergeben",disabled:!0})}),r.jsx(Tt,{label:"Titel",required:!0,children:r.jsx(mn,{className:d.fluentInput,value:e.title,onChange:(p,w)=>t(b=>({...b,title:w.value}))})}),r.jsx(Tt,{label:"Fristart",required:!0,children:r.jsx(mn,{className:d.fluentInput,value:e.deadline_type,onChange:(p,w)=>t(b=>({...b,deadline_type:w.value}))})}),r.jsx(Tt,{label:"Fällig am",required:!0,children:r.jsx(mn,{className:d.fluentInput,type:"date",value:e.due_date_date instanceof Date&&!Number.isNaN(e.due_date_date.getTime())?[e.due_date_date.getFullYear(),String(e.due_date_date.getMonth()+1).padStart(2,"0"),String(e.due_date_date.getDate()).padStart(2,"0")].join("-"):"",onChange:(p,w)=>{const b=w.value;if(!b){t(N=>({...N,due_date_date:null}));return}const[v,y,j]=b.split("-").map(Number),k=new Date(v,(y||1)-1,j||1);t(N=>({...N,due_date_date:k}))}})}),r.jsx(Tt,{label:"Uhrzeit",children:r.jsx(mn,{className:d.fluentInput,type:"time",value:e.due_date_time||"",onChange:(p,w)=>t(b=>({...b,due_date_time:w.value||""}))})}),r.jsx(Tt,{label:"Status",children:r.jsx(Fa,{className:d.fluentDropdown,selectedOptions:[e.status],value:((h=Su.find(p=>p.value===e.status))==null?void 0:h.label)||"",onOptionSelect:(p,w)=>t(b=>({...b,status:w.optionValue||"offen"})),children:Su.map(p=>r.jsx(Pr,{value:p.value,children:p.label},p.value))})}),r.jsx(Tt,{label:"Erinnerung Tage vorher",children:r.jsx(mn,{className:d.fluentInput,type:"number",min:"0",value:String(e.remind_days_before??""),onChange:(p,w)=>t(b=>({...b,remind_days_before:w.value===""?"":Number(w.value)}))})}),r.jsx(Tt,{label:"Zugewiesener Benutzer",children:r.jsxs(Fa,{className:d.fluentDropdown,selectedOptions:[e.assigned_user_id||"__none__"],value:e.assigned_user_id?((x=n.find(p=>String(p.id)===String(e.assigned_user_id)))==null?void 0:x.full_name)||"":"Kein Benutzer",onOptionSelect:(p,w)=>t(b=>({...b,assigned_user_id:w.optionValue==="__none__"?"":String(w.optionValue||"")})),children:[r.jsx(Pr,{value:"__none__",children:"Kein Benutzer"}),n.map(p=>r.jsxs(Pr,{value:String(p.id),children:[p.full_name," ",p.email?`(${p.email})`:""]},p.id))]})}),r.jsx(Tt,{label:"Gremium",children:r.jsxs(Fa,{className:d.fluentDropdown,selectedOptions:[e.committee_id||"__none__"],value:e.committee_id?((g=i.find(p=>String(p.id)===String(e.committee_id)))==null?void 0:g.name)||"":"Kein Gremium",onOptionSelect:(p,w)=>t(b=>({...b,committee_id:w.optionValue==="__none__"?"":String(w.optionValue||"")})),children:[r.jsx(Pr,{value:"__none__",children:"Kein Gremium"}),i.map(p=>r.jsx(Pr,{value:String(p.id),children:p.name},p.id))]})}),r.jsx("div",{className:d.full,children:r.jsx(Tt,{label:"Beschreibung",children:r.jsx(Av,{className:d.fluentTextareaLarge,value:e.description,resize:"vertical",onChange:(p,w)=>t(b=>({...b,description:w.value}))})})}),r.jsxs("div",{className:d.full,children:[r.jsx(Tt,{label:"Dokumente anhängen",children:r.jsx(mn,{className:d.fluentInput,type:"file",multiple:!0,onChange:p=>o(Array.from(p.target.files||[]))})}),a.length?r.jsxs("div",{className:d.helperText,children:["Ausgewählt: ",a.map(p=>p.name).join(", ")]}):null]}),l?r.jsxs("div",{className:d.full,children:[r.jsx("div",{className:d.attachmentHeader,children:"Vorhandene Anhänge"}),r.jsx("div",{className:d.tableWrap,children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"ID"}),r.jsx("th",{children:"Datei"}),r.jsx("th",{children:"Hochgeladen"}),r.jsx("th",{children:"Aktionen"})]})}),r.jsxs("tbody",{children:[s.map(p=>r.jsxs("tr",{children:[r.jsx("td",{children:p.id}),r.jsx("td",{children:p.file_name||p.title||""}),r.jsx("td",{children:Ov(p.uploaded_at)}),r.jsx("td",{children:r.jsxs("div",{className:d.rowActions,children:[r.jsx(Jn,{appearance:"secondary",size:"small",icon:r.jsx(Zw,{}),onClick:()=>u(p),children:"Anzeigen"}),r.jsx(Jn,{appearance:"secondary",size:"small",icon:r.jsx(tk,{}),onClick:()=>m(p),children:"Download"}),r.jsx(Jn,{appearance:"secondary",size:"small",icon:r.jsx(rv,{}),onClick:()=>c(p),children:"Entfernen"})]})})]},p.id)),s.length?null:r.jsx("tr",{children:r.jsx("td",{colSpan:4,children:"Keine Anhänge vorhanden"})})]})]})})]}):null]})}function k2({open:e,selected:t,form:n,setForm:i,users:s,committees:a,attachments:o,pendingFiles:l,setPendingFiles:c,loading:u,error:m,onClose:d,onSubmit:h,onRemoveAttachment:x,onViewAttachment:g,onDownloadAttachment:p}){return e?r.jsx("div",{className:"modal-backdrop",onClick:d,children:r.jsxs("div",{className:"modal-panel",onClick:w=>w.stopPropagation(),children:[r.jsxs("div",{className:"modal-header",children:[r.jsxs("div",{children:[r.jsx("h2",{style:{margin:0},children:t?"Frist bearbeiten":"Neue Frist anlegen"}),r.jsx("p",{className:"modal-subtitle",children:"Vorgangs-ID wird nicht mehr manuell gepflegt und nur noch angezeigt."})]}),r.jsx("button",{className:"modal-close",type:"button",onClick:d,"aria-label":"Schließen",children:"×"})]}),m?r.jsx("div",{className:"alert error",children:m}):null,r.jsxs("form",{onSubmit:h,children:[r.jsx(w2,{form:n,setForm:i,users:s,committees:a,attachments:o,pendingFiles:l,setPendingFiles:c,selected:t,onRemoveAttachment:x,onViewAttachment:g,onDownloadAttachment:p}),r.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:10,marginTop:20},children:[r.jsx(Jn,{appearance:"secondary",onClick:d,children:"Abbrechen"}),r.jsx(Jn,{appearance:"primary",type:"submit",disabled:u,children:u?"Speichern...":t?"Speichern":"Erstellen"})]})]})]})}):null}function S2(){const e=Rv(),[t,n]=f.useState([]),[i,s]=f.useState([]),[a,o]=f.useState([]),[l,c]=f.useState([]),[u,m]=f.useState([]),[d,h]=f.useState(null),[x,g]=f.useState(Zl()),[p,w]=f.useState(""),[b,v]=f.useState(""),[y,j]=f.useState(""),[k,N]=f.useState(""),[_,S]=f.useState(!1),[P,D]=f.useState(null),[F,T]=f.useState(!1);async function M(){j("");try{const[ee,le,ge]=await Promise.all([O.get("/deadlines"),O.get("/users"),O.get("/committees")]);n(Array.isArray(ee)?ee:[]),s(Array.isArray(le)?le.filter(Y=>Y.is_active!==!1):[]),o(Array.isArray(ge)?ge:[])}catch(ee){j(ee.message||"Fristen konnten nicht geladen werden.")}}async function z(ee){try{const le=await O.get(`/deadlines/${ee}/attachments`);c(Array.isArray(le)?le:[])}catch{c([])}}f.useEffect(()=>{M()},[]);const A=f.useMemo(()=>{const ee=p.trim().toLowerCase();return ee?t.filter(le=>JSON.stringify(le).toLowerCase().includes(ee)):t},[t,p]);function $(){h(null),g(Zl()),c([]),m([]),N(""),v(""),j(""),T(!0)}async function Z(ee){h(ee),g(_2(ee)),m([]),N(""),v(""),j(""),T(!0),await z(ee.id)}function R(){h(null),g(Zl()),c([]),m([]),N(""),T(!1)}async function K(ee){if(!u.length)return;const le=new FormData;u.forEach(ge=>le.append("files",ge)),await O.post(`/deadlines/${ee}/attachments`,le)}async function X(ee){if(ee.preventDefault(),N(""),v(""),!x.title.trim()){N("Bitte einen Titel eingeben.");return}if(!x.deadline_type.trim()){N("Bitte eine Fristart eingeben.");return}if(!x.due_date_date){N("Bitte ein Datum auswählen.");return}S(!0);try{const le={title:x.title.trim(),deadline_type:x.deadline_type.trim(),due_date:j2(x.due_date_date,x.due_date_time),status:x.status,remind_days_before:x.remind_days_before===""||x.remind_days_before===null?null:Number(x.remind_days_before),assigned_user_id:x.assigned_user_id?Number(x.assigned_user_id):null,committee_id:x.committee_id?Number(x.committee_id):null,description:x.description.trim()||null};let ge=(d==null?void 0:d.id)||null;if(d!=null&&d.id)await O.put(`/deadlines/${d.id}`,le),v("Frist gespeichert");else{const Y=await O.post("/deadlines",le);ge=(Y==null?void 0:Y.id)||null,v("Frist erstellt")}ge&&u.length&&await K(ge),await M(),R()}catch(le){N(le.message||"Frist konnte nicht gespeichert werden.")}finally{S(!1)}}async function ae(ee){j(""),v(""),D(ee.id);try{await O.delete(`/deadlines/${ee.id}`),(d==null?void 0:d.id)===ee.id&&R(),await M(),v("Frist gelöscht")}catch(le){j(le.message||"Frist konnte nicht gelöscht werden.")}finally{D(null)}}async function J(ee){if(d!=null&&d.id){N("");try{await O.delete(`/deadlines/${d.id}/attachments/${ee.id}`),await z(d.id)}catch(le){N(le.message||"Anhang konnte nicht entfernt werden.")}}}async function ue(ee){if(d!=null&&d.id)try{await _i(`/deadlines/${d.id}/attachments/${ee.id}/view`)}catch(le){N(le.message||"Anhang konnte nicht angezeigt werden.")}}async function pe(ee){if(d!=null&&d.id)try{await ji(`/deadlines/${d.id}/attachments/${ee.id}/download`,ee.file_name||`anhang-${ee.id}`)}catch(le){N(le.message||"Anhang konnte nicht heruntergeladen werden.")}}return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .modal-backdrop { + position: fixed; + inset: 0; + background: rgba(15, 23, 42, 0.55); + display: flex; + align-items: center; + justify-content: center; + padding: 16px; + z-index: 1000; + } + + .modal-panel { + width: min(1040px, 100%); + max-height: 92vh; + overflow: auto; + border-radius: 18px; + background: rgba(255, 255, 255, 0.74); + backdrop-filter: blur(18px); + -webkit-backdrop-filter: blur(18px); + border: 1px solid rgba(255, 255, 255, 0.24); + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25); + padding: 18px; + } + + .modal-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 16px; + margin-bottom: 16px; + } + + .modal-subtitle { + margin: 6px 0 0; + opacity: 0.75; + font-size: 0.95rem; + } + + .modal-close { + border: 0; + background: transparent; + font-size: 28px; + line-height: 1; + cursor: pointer; + padding: 4px 8px; + } + `}),r.jsxs(de,{title:"Fristen",subtitle:"Fristen werden über ein Dialogfenster angelegt, bearbeitet und verwaltet. Benutzer, Gremien und mehrere Dokumente können zugeordnet werden.",actions:r.jsxs("div",{className:e.toolbar,children:[r.jsx(mn,{className:e.search,placeholder:"Suchen...",value:p,onChange:(ee,le)=>w(le.value)}),r.jsx("button",{className:"btn",type:"button",onClick:$,children:r.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:8},children:[r.jsx(Jw,{}),"Neue Frist"]})})]}),children:[y?r.jsx("div",{className:"alert error",children:y}):null,b?r.jsx("div",{className:"alert success",children:b}):null,_&&!t.length?r.jsx(Dv,{label:"Fristen werden geladen..."}):null,r.jsx("div",{className:e.tableWrap,children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"ID"}),r.jsx("th",{children:"Vorgang"}),r.jsx("th",{children:"Titel"}),r.jsx("th",{children:"Fristart"}),r.jsx("th",{children:"Fällig"}),r.jsx("th",{children:"Status"}),r.jsx("th",{children:"Benutzer"}),r.jsx("th",{children:"Gremium"}),r.jsx("th",{children:"Aktionen"})]})}),r.jsxs("tbody",{children:[A.map(ee=>{var le;return r.jsxs("tr",{children:[r.jsx("td",{children:ee.id}),r.jsx("td",{children:ee.case_number||ee.case_id||""}),r.jsx("td",{children:ee.title}),r.jsx("td",{children:ee.deadline_type}),r.jsx("td",{children:Ov(ee.due_date)}),r.jsx("td",{children:((le=Su.find(ge=>ge.value===ee.status))==null?void 0:le.label)||ee.status}),r.jsx("td",{children:ee.assigned_user_name||ee.assigned_user_id||""}),r.jsx("td",{children:ee.committee_name||ee.committee_id||""}),r.jsx("td",{children:r.jsxs("div",{className:e.rowActions,children:[r.jsx(Jn,{appearance:"secondary",size:"small",icon:r.jsx(ek,{}),onClick:()=>Z(ee),children:"Bearbeiten"}),r.jsx(Jn,{appearance:"secondary",size:"small",icon:r.jsx(rv,{}),disabled:P===ee.id,onClick:()=>ae(ee),children:"Löschen"})]})})]},ee.id)}),A.length?null:r.jsx("tr",{children:r.jsx("td",{colSpan:9,children:"Keine Fristen vorhanden"})})]})]})})]}),r.jsx(k2,{open:F,selected:d,form:x,setForm:g,users:i,committees:a,attachments:l,pendingFiles:u,setPendingFiles:m,loading:_,error:k,onClose:R,onSubmit:X,onRemoveAttachment:J,onViewAttachment:ue,onDownloadAttachment:pe})]})}const Iv=[{value:"ordentlich",label:"Ordentlich"},{value:"ausserordentlich",label:"Außerordentlich"}],Lv=[{value:"geplant",label:"Geplant"},{value:"ungeplant",label:"Ungeplant"},{value:"gestartet",label:"Gestartet"},{value:"beendet",label:"Beendet"}],Yl=25;function ba(){return{meeting_number:"",title:"",meeting_type:"ordentlich",meeting_date:"",start_time:"",end_time:"",location:"",status:"geplant",protocol_text:"",committee_id:"",chair_user_id:"",secretary_user_id:""}}function pn(e){return(e==null?void 0:e.status)==="gestartet"||(e==null?void 0:e.status)==="beendet"}function Mv(e){if(!e)return"";const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString("de-DE")}function N2(e){const t=Number(e||0);return t?t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`:""}function C2(e){return e===!0?"Ja":e===!1?"Nein":"–"}function dp(e){return{offen:"Offen",in_sitzung:"In Sitzung",rueckfrage:"Rückfrage",klaerung:"Klärung",erledigt:"Erledigt"}[e]||e||"Offen"}function z2(e){return e==="klaerung"?"Klärung":e==="bemerkung"?"Bemerkung / Wiedervorlage":"Rückfrage"}function B2({meeting:e,data:t,onAssignExisting:n,onCreateAndAssign:i,onUnassign:s,onCreateFollowUp:a,onOpenReports:o,onOpenComments:l,onClose:c,loading:u}){const m=(t==null?void 0:t.assigned)||[],d=(t==null?void 0:t.unassigned)||[],h=pn(e),x=(e==null?void 0:e.status)==="beendet",[g,p]=f.useState(""),[w,b]=f.useState(""),[v,y]=f.useState(""),[j,k]=f.useState(""),[N,_]=f.useState(""),S=N.trim().toLowerCase(),P=T=>S?JSON.stringify(T).toLowerCase().includes(S):!0,D=m.filter(P),F=d.filter(P);return r.jsx("div",{style:{position:"fixed",inset:0,background:"rgba(15, 23, 42, 0.55)",display:"grid",placeItems:"center",zIndex:999},children:r.jsxs("div",{className:"glass",style:{width:"min(1280px, 96vw)",maxHeight:"88vh",overflow:"auto",padding:18,borderRadius:20},children:[r.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:12,marginBottom:14,flexWrap:"wrap"},children:[r.jsxs("div",{children:[r.jsx("h3",{style:{margin:0},children:"TOPs für Sitzung"}),r.jsxs("p",{style:{margin:"6px 0 0 0",opacity:.75},children:[e==null?void 0:e.meeting_number," – ",e==null?void 0:e.title]}),h?r.jsx("p",{style:{margin:"6px 0 0 0",color:"#b45309"},children:"Diese Sitzung ist gesperrt. TOPs und zugehörige Berichte können angezeigt, aber nicht mehr geändert werden."}):null]}),r.jsxs("div",{style:{display:"flex",gap:10,alignItems:"center",flexWrap:"wrap"},children:[r.jsx("input",{className:"input search",placeholder:"TOPs / Themen suchen...",value:N,onChange:T=>_(T.target.value)}),r.jsx("button",{className:"btn secondary",type:"button",onClick:c,children:"Schließen"})]})]}),r.jsxs("div",{className:"page-grid",style:{gridTemplateColumns:"1fr 1fr"},children:[r.jsx(de,{title:"Bereits zugewiesene TOPs",subtitle:"TOP-Nummern werden automatisch beim Hinzufügen vergeben. Zugehörige Berichte lassen sich direkt anzeigen oder nachdrucken.",children:r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"TOP"}),r.jsx("th",{children:"Vorgang"}),r.jsx("th",{children:"Titel"}),r.jsx("th",{children:"Min."}),r.jsx("th",{children:"Status"}),r.jsx("th",{children:"Berichte"}),r.jsx("th",{children:"Kommentare"}),r.jsx("th",{})]})}),r.jsxs("tbody",{children:[D.map(T=>r.jsxs("tr",{children:[r.jsx("td",{children:T.agenda_number}),r.jsx("td",{children:T.case_number||T.case_id||""}),r.jsxs("td",{children:[T.title,T.parent_agenda_item_id?r.jsxs(r.Fragment,{children:[r.jsx("br",{}),r.jsxs("small",{children:["Folge von TOP ",T.parent_agenda_number||T.parent_agenda_item_id,T.follow_up_source_meeting_number?` · Sitzung ${T.follow_up_source_meeting_number}`:""]})]}):null]}),r.jsx("td",{children:T.duration_minutes??""}),r.jsx("td",{children:dp(T.status||"in_sitzung")}),r.jsx("td",{children:T.report_count??0}),r.jsxs("td",{children:[T.comment_count??0,T.protocol_comment_count?` / ${T.protocol_comment_count} im Protokoll`:""]}),r.jsxs("td",{className:"row-actions",children:[r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>o(T),children:"Berichte"}),r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>l(T),children:"Kommentare"}),r.jsx("button",{className:"mini-btn",type:"button",disabled:u||x,onClick:()=>a(T),children:"Folge-TOP"}),r.jsx("button",{className:"mini-btn danger",type:"button",disabled:u||h,onClick:()=>s(T.id),children:"Entfernen"})]})]},T.id)),D.length?null:r.jsx("tr",{children:r.jsx("td",{colSpan:8,children:"Keine TOPs zugewiesen"})})]})]})})}),r.jsxs(de,{title:"TOP-Bestand hinzufügen",subtitle:"Vorhandenen TOP auswählen oder direkt einen neuen TOP für diese Sitzung erzeugen.",children:[r.jsx("div",{className:"table-wrap",style:{marginBottom:16},children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"ID"}),r.jsx("th",{children:"Vorgang"}),r.jsx("th",{children:"Titel"}),r.jsx("th",{children:"Min."}),r.jsx("th",{children:"Status"}),r.jsx("th",{children:"Berichte"}),r.jsx("th",{children:"Bemerkung"}),r.jsx("th",{})]})}),r.jsxs("tbody",{children:[F.map(T=>r.jsxs("tr",{children:[r.jsx("td",{children:T.id}),r.jsx("td",{children:T.case_number||T.case_id||""}),r.jsxs("td",{children:[T.title,T.parent_agenda_item_id?r.jsxs(r.Fragment,{children:[r.jsx("br",{}),r.jsxs("small",{children:["Folge von TOP ",T.parent_agenda_number||T.parent_agenda_item_id,T.follow_up_source_meeting_number?` · Sitzung ${T.follow_up_source_meeting_number}`:""]})]}):null]}),r.jsx("td",{children:T.duration_minutes??""}),r.jsx("td",{children:dp(T.status||"offen")}),r.jsx("td",{children:T.report_count??0}),r.jsx("td",{children:T.follow_up_note||T.last_return_remark?r.jsxs("small",{children:[z2(T.follow_up_type||T.last_return_type),": ",T.follow_up_note||T.last_return_remark]}):""}),r.jsx("td",{children:r.jsx("button",{className:"mini-btn",type:"button",disabled:u||h,onClick:()=>n(T.id),children:"Hinzufügen"})})]},T.id)),F.length?null:r.jsx("tr",{children:r.jsx("td",{colSpan:8,children:"Keine freien TOPs vorhanden"})})]})]})}),r.jsxs("div",{className:"form-grid",children:[r.jsxs("label",{children:[r.jsx("span",{children:"Neuer TOP-Titel"}),r.jsx("input",{className:"input",value:g,onChange:T=>p(T.target.value),disabled:h})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Vorgangs-ID optional"}),r.jsx("input",{className:"input",value:j,onChange:T=>k(T.target.value.replace(/[^\d]/g,"")),disabled:h})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Dauer in Minuten"}),r.jsx("input",{className:"input",type:"number",min:"0",max:"600",value:v,onChange:T=>y(T.target.value),disabled:h})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Beschreibung"}),r.jsx("textarea",{className:"input textarea",value:w,onChange:T=>b(T.target.value),disabled:h})]}),r.jsx("button",{className:"btn",type:"button",disabled:u||h||!g.trim(),onClick:()=>{i({title:g.trim(),description:w.trim()||null,duration_minutes:v?Number(v):null,case_id:j?Number(j):null}),p(""),b(""),y(""),k("")},children:"Neuen TOP erzeugen und zuweisen"})]})]})]})]})})}function T2({open:e,data:t,onClose:n,onView:i,onDownload:s,onPrint:a,onPrintSummary:o}){if(!e)return null;const l=(t==null?void 0:t.agenda_item)||null,c=(t==null?void 0:t.reports)||[];return r.jsx("div",{className:"modal-backdrop",children:r.jsxs("div",{className:"modal-panel",style:{width:"min(1080px, 100%)"},children:[r.jsxs("div",{className:"modal-header",children:[r.jsxs("div",{children:[r.jsxs("h3",{style:{margin:0},children:["Berichte zu TOP ",(l==null?void 0:l.agenda_number)||""]}),r.jsxs("p",{className:"modal-subtitle",children:[(l==null?void 0:l.title)||"",l!=null&&l.case_number?` · Vorgang ${l.case_number}`:""]})]}),r.jsx("button",{className:"modal-close",type:"button",onClick:n,"aria-label":"Schließen",children:"×"})]}),l!=null&&l.case_summary?r.jsx(de,{title:"Bericht / Sachverhalt",subtitle:"Der Berichtstext des verknüpften Vorgangs kann direkt nachgedruckt werden.",actions:r.jsx("button",{className:"btn secondary",type:"button",onClick:()=>o(l),children:"Bericht drucken"}),children:r.jsx("div",{style:{whiteSpace:"pre-wrap",lineHeight:1.5},children:l.case_summary})}):null,r.jsx(de,{title:"Verknüpfte Dokumente",subtitle:"Dokumente des TOP-Vorgangs und der Sitzung können angezeigt, heruntergeladen oder nachgedruckt werden.",children:r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"ID"}),r.jsx("th",{children:"Dokument-Nr."}),r.jsx("th",{children:"Titel"}),r.jsx("th",{children:"Art"}),r.jsx("th",{children:"Datei"}),r.jsx("th",{children:"Größe"}),r.jsx("th",{children:"Hochgeladen"}),r.jsx("th",{children:"Von"}),r.jsx("th",{children:"Aktionen"})]})}),r.jsxs("tbody",{children:[c.map(u=>r.jsxs("tr",{children:[r.jsx("td",{children:u.id}),r.jsx("td",{children:u.document_number||""}),r.jsx("td",{children:u.title}),r.jsx("td",{children:u.document_type||""}),r.jsx("td",{children:u.file_name||""}),r.jsx("td",{children:N2(u.size_bytes)}),r.jsx("td",{children:Mv(u.uploaded_at)}),r.jsx("td",{children:u.uploaded_by_name||""}),r.jsxs("td",{className:"row-actions",children:[r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>i(u),children:"Anzeigen"}),r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>a(u),children:"Nachdrucken"}),r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>s(u),children:"Download"})]})]},u.id)),c.length?null:r.jsx("tr",{children:r.jsx("td",{colSpan:9,children:"Keine Berichte oder Dokumente zu diesem TOP gefunden"})})]})]})})})]})})}function P2({open:e,data:t,loading:n,onClose:i,onCreate:s,onUpdate:a,onDelete:o}){var F;const[l,c]=f.useState(""),[u,m]=f.useState("intern"),[d,h]=f.useState(!1),[x,g]=f.useState(""),[p,w]=f.useState(""),[b,v]=f.useState("intern"),[y,j]=f.useState(!1);if(f.useEffect(()=>{e||(c(""),m("intern"),h(!1),g(""))},[e]),!e)return null;const k=(t==null?void 0:t.agenda_item)||null,N=(t==null?void 0:t.comments)||[],_=((F=t==null?void 0:t.meeting)==null?void 0:F.status)==="beendet";function S(T){g(String(T.id)),w(T.comment_text||""),v(T.visibility||"intern"),j(!!T.include_in_protocol)}async function P(T){T.preventDefault(),l.trim()&&(await s({comment_text:l.trim(),visibility:u,include_in_protocol:d}),c(""),m("intern"),h(!1))}async function D(T){p.trim()&&(await a(T,{comment_text:p.trim(),visibility:b,include_in_protocol:y}),g(""))}return r.jsx("div",{className:"modal-backdrop",children:r.jsxs("div",{className:"modal-panel",style:{width:"min(1080px, 100%)"},children:[r.jsxs("div",{className:"modal-header",children:[r.jsxs("div",{children:[r.jsxs("h3",{style:{margin:0},children:["Kommentare zu TOP ",(k==null?void 0:k.agenda_number)||""]}),r.jsxs("p",{className:"modal-subtitle",children:[(k==null?void 0:k.title)||"",_?" · Sitzung beendet":""]})]}),r.jsx("button",{className:"modal-close",type:"button",onClick:i,"aria-label":"Schließen",children:"×"})]}),_?r.jsx("div",{className:"alert",style:{marginBottom:14},children:"Diese Sitzung ist beendet. Kommentare können angezeigt, aber nicht mehr geändert werden."}):null,r.jsx(de,{title:"Neuer Kommentar",subtitle:"Mit dem Schalter „ins Protokoll“ wird der Kommentar beim Erzeugen des Sitzungsprotokolls beim jeweiligen TOP ausgegeben.",children:r.jsxs("form",{className:"form-grid",onSubmit:P,children:[r.jsxs("label",{children:[r.jsx("span",{children:"Kommentar"}),r.jsx("textarea",{className:"input textarea",value:l,onChange:T=>c(T.target.value),disabled:_||n})]}),r.jsxs("div",{style:{display:"flex",gap:14,alignItems:"center",flexWrap:"wrap"},children:[r.jsxs("label",{style:{minWidth:220},children:[r.jsx("span",{children:"Sichtbarkeit"}),r.jsxs("select",{className:"input",value:u,onChange:T=>m(T.target.value),disabled:_||n,children:[r.jsx("option",{value:"intern",children:"Intern"}),r.jsx("option",{value:"vertraulich",children:"Vertraulich"})]})]}),r.jsxs("label",{className:"switch-line",children:[r.jsx("input",{type:"checkbox",checked:d,onChange:T=>h(T.target.checked),disabled:_||n}),r.jsx("span",{children:"Ins Sitzungsprotokoll übernehmen"})]}),r.jsx("button",{className:"btn",type:"submit",disabled:_||n||!l.trim(),children:"Kommentar hinzufügen"})]})]})}),r.jsx(de,{title:"Bestehende Kommentare",subtitle:"Kommentare können direkt hier bearbeitet und für das Protokoll ein- oder ausgeschaltet werden.",children:r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"Kommentar"}),r.jsx("th",{children:"Kommentar von"}),r.jsx("th",{children:"Sichtbarkeit"}),r.jsx("th",{children:"Protokoll"}),r.jsx("th",{children:"Aktionen"})]})}),r.jsxs("tbody",{children:[N.map(T=>{const M=String(T.id)===x;return r.jsxs("tr",{children:[r.jsxs("td",{style:{minWidth:320},children:[M?r.jsx("textarea",{className:"input textarea",value:p,onChange:z=>w(z.target.value),disabled:n}):r.jsx("div",{style:{whiteSpace:"pre-wrap"},children:T.comment_text}),r.jsx("small",{children:Mv(T.created_at)})]}),r.jsxs("td",{children:["Kommentar von: ",T.author_name||T.author_user_id||"unbekannt"]}),r.jsx("td",{children:M?r.jsxs("select",{className:"input",value:b,onChange:z=>v(z.target.value),disabled:n,children:[r.jsx("option",{value:"intern",children:"Intern"}),r.jsx("option",{value:"vertraulich",children:"Vertraulich"})]}):T.visibility==="vertraulich"?"Vertraulich":"Intern"}),r.jsx("td",{children:M?r.jsxs("label",{className:"switch-line",children:[r.jsx("input",{type:"checkbox",checked:y,onChange:z=>j(z.target.checked),disabled:n}),r.jsx("span",{children:"Übernehmen"})]}):T.include_in_protocol?"Ja":"Nein"}),r.jsx("td",{className:"row-actions",children:M?r.jsxs(r.Fragment,{children:[r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>D(T),disabled:n||!p.trim(),children:"Speichern"}),r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>g(""),disabled:n,children:"Abbrechen"})]}):r.jsxs(r.Fragment,{children:[r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>S(T),disabled:_||n,children:"Bearbeiten"}),r.jsx("button",{className:"mini-btn",type:"button",disabled:_||n,onClick:()=>a(T,{include_in_protocol:!T.include_in_protocol}),children:T.include_in_protocol?"Nicht ins Protokoll":"Ins Protokoll"}),r.jsx("button",{className:"mini-btn danger",type:"button",onClick:()=>o(T),disabled:_||n,children:"Löschen"})]})})]},T.id)}),N.length?null:r.jsx("tr",{children:r.jsx("td",{colSpan:5,children:"Noch keine Kommentare zu diesem TOP vorhanden."})})]})]})})})]})})}function E2({open:e,meeting:t,agendaItem:n,loading:i,onClose:s,onSubmit:a}){const[o,l]=f.useState("rueckfrage"),[c,u]=f.useState(""),[m,d]=f.useState(!0);if(f.useEffect(()=>{e&&(l("rueckfrage"),u(""),d(!0))},[e,n==null?void 0:n.id]),!e||!n)return null;async function h(x){x.preventDefault(),c.trim()&&await a({return_type:o,remark:c.trim(),include_in_protocol:m})}return r.jsx("div",{className:"modal-backdrop",children:r.jsxs("div",{className:"modal-panel",style:{width:"min(760px, 100%)"},children:[r.jsxs("div",{className:"modal-header",children:[r.jsxs("div",{children:[r.jsx("h3",{style:{margin:0},children:"Folge-TOP für Rückfrage / Klärung / Wiedervorlage anlegen"}),r.jsxs("p",{className:"modal-subtitle",children:["TOP ",n.agenda_number||n.id," – ",n.title,t!=null&&t.meeting_number?` · Sitzung ${t.meeting_number}`:""]})]}),r.jsx("button",{className:"modal-close",type:"button",onClick:s,"aria-label":"Schließen",disabled:i,children:"×"})]}),r.jsx("div",{className:"alert",style:{marginBottom:14},children:"Der ursprüngliche TOP bleibt in dieser Sitzung erhalten. Zusätzlich wird ein neuer verknüpfter Folge-TOP im TOP-Bestand angelegt."}),r.jsxs("form",{className:"form-grid",onSubmit:h,children:[r.jsxs("label",{children:[r.jsx("span",{children:"Art"}),r.jsxs("select",{className:"input",value:o,onChange:x=>l(x.target.value),disabled:i,children:[r.jsx("option",{value:"rueckfrage",children:"Rückfrage"}),r.jsx("option",{value:"klaerung",children:"Klärung"}),r.jsx("option",{value:"bemerkung",children:"Bemerkung / Wiedervorlage"})]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Bemerkung / Rückfrage / Klärung"}),r.jsx("textarea",{className:"input textarea",required:!0,value:c,onChange:x=>u(x.target.value),placeholder:"Was muss vor erneuter Behandlung geklärt oder bearbeitet werden?",disabled:i})]}),r.jsxs("label",{className:"switch-line",children:[r.jsx("input",{type:"checkbox",checked:m,onChange:x=>d(x.target.checked),disabled:i}),r.jsx("span",{children:"Bemerkung und Folge-TOP im Sitzungsprotokoll erwähnen"})]}),r.jsxs("div",{className:"row-actions",style:{justifyContent:"flex-end"},children:[r.jsx("button",{className:"btn secondary",type:"button",onClick:s,disabled:i,children:"Abbrechen"}),r.jsx("button",{className:"btn",type:"submit",disabled:i||!c.trim(),children:"Folge-TOP anlegen"})]})]})]})})}function D2({form:e,setForm:t,committees:n,committeeUsers:i,handleCommitteeChange:s,setLookup:a,disabled:o}){return r.jsxs(r.Fragment,{children:[r.jsxs("label",{children:[r.jsx("span",{children:"Sitzungsnummer"}),r.jsx("input",{className:"input",value:e.meeting_number,readOnly:!0,placeholder:"Wird automatisch generiert"})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Titel"}),r.jsx("input",{className:"input",value:e.title,onChange:l=>t({...e,title:l.target.value}),disabled:o})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Art"}),r.jsx("select",{className:"input",value:e.meeting_type,onChange:l=>t({...e,meeting_type:l.target.value}),disabled:o,children:Iv.map(l=>r.jsx("option",{value:l.value,children:l.label},l.value))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Sitzungsdatum"}),r.jsx("input",{className:"input",type:"date",value:e.meeting_date,onChange:l=>t({...e,meeting_date:l.target.value}),disabled:o})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Startzeit"}),r.jsx("input",{className:"input",type:"time",value:e.start_time,onChange:l=>t({...e,start_time:l.target.value}),disabled:o})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Endzeit"}),r.jsx("input",{className:"input",type:"time",value:e.end_time,onChange:l=>t({...e,end_time:l.target.value}),disabled:o})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Ort"}),r.jsx("input",{className:"input",value:e.location,onChange:l=>t({...e,location:l.target.value}),disabled:o})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Status"}),r.jsx("select",{className:"input",value:e.status,onChange:l=>t({...e,status:l.target.value}),disabled:o,children:Lv.map(l=>r.jsx("option",{value:l.value,children:l.label},l.value))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Ausschuss"}),r.jsxs("select",{className:"input",value:e.committee_id,onChange:l=>s(l.target.value),disabled:o,children:[r.jsx("option",{value:"",children:"Bitte auswählen"}),n.map(l=>r.jsx("option",{value:l.id,children:l.name},l.id))]})]}),[["chair_user_id","Leitung User-ID"],["secretary_user_id","Schriftführung User-ID"]].map(([l,c])=>{const u=i.find(m=>String(m.id)===String(e[l]));return r.jsxs("label",{children:[r.jsx("span",{children:c}),r.jsxs("div",{style:{display:"flex",gap:8},children:[r.jsx("input",{className:"input",value:e[l],readOnly:!0}),r.jsx("button",{className:"btn secondary",type:"button",onClick:()=>a(l),disabled:o,children:"Auswählen"}),r.jsx("button",{className:"btn secondary",type:"button",onClick:()=>t({...e,[l]:""}),disabled:o,children:"Leeren"})]}),r.jsx("small",{children:u?`${u.full_name} (${u.email})`:"Kein Benutzer ausgewählt"})]},l)}),r.jsxs("label",{children:[r.jsx("span",{children:"Protokoll"}),r.jsx("textarea",{className:"input textarea",value:e.protocol_text,onChange:l=>t({...e,protocol_text:l.target.value}),disabled:o})]})]})}function A2({open:e,selected:t,form:n,setForm:i,committees:s,committeeUsers:a,handleCommitteeChange:o,setLookup:l,onClose:c,onSubmit:u,error:m,lookupOpen:d}){if(!e)return null;const h=t?pn(t):!1;return r.jsx("div",{className:"modal-backdrop",onClick:x=>{d||x.target===x.currentTarget&&c()},children:r.jsxs("div",{className:"modal-panel",onClick:x=>x.stopPropagation(),children:[r.jsxs("div",{className:"modal-header",children:[r.jsxs("div",{children:[r.jsx("h2",{style:{margin:0},children:t?"Sitzung bearbeiten":"Neue Sitzung anlegen"}),r.jsx("p",{className:"modal-subtitle",children:t?"Gleiche Funktion wie beim Anlegen. Die Sitzungsnummer ist bereits vergeben.":"Die Sitzungsnummer wird beim Speichern automatisch erzeugt."})]}),r.jsx("button",{className:"modal-close",type:"button",onClick:c,"aria-label":"Schließen",children:"×"})]}),m?r.jsx("div",{className:"alert error",children:m}):null,h?r.jsx("div",{className:"alert",children:"Diese Sitzung ist gesperrt und kann nicht mehr bearbeitet werden."}):null,r.jsxs("form",{className:"form-grid",onSubmit:u,children:[r.jsx(D2,{form:n,setForm:i,committees:s,committeeUsers:a,handleCommitteeChange:o,setLookup:l,disabled:h}),r.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:10,gridColumn:"1 / -1"},children:[r.jsx("button",{className:"btn secondary",type:"button",onClick:c,children:"Abbrechen"}),r.jsx("button",{className:"btn",type:"submit",disabled:h,children:t?"Speichern":"Erstellen"})]})]})]})})}function R2({meeting:e,loading:t,onAnswer:n,onClose:i}){return e?r.jsx("div",{className:"modal-backdrop",onClick:s=>{!t&&s.target===s.currentTarget&&i()},children:r.jsxs("div",{className:"modal-panel",style:{width:"min(560px, 100%)"},onClick:s=>s.stopPropagation(),children:[r.jsxs("div",{className:"modal-header",children:[r.jsxs("div",{children:[r.jsx("h2",{style:{margin:0},children:"Sitzung starten"}),r.jsxs("p",{className:"modal-subtitle",children:[e.meeting_number," – ",e.title]})]}),r.jsx("button",{className:"modal-close",type:"button",onClick:i,disabled:t,"aria-label":"Schließen",children:"×"})]}),r.jsx("div",{className:"alert",style:{marginBottom:16},children:"Ist die Sitzung beschlussfähig?"}),r.jsx("p",{style:{marginTop:0,opacity:.8},children:"Die Antwort wird gespeichert und am Anfang des automatisch erzeugten Protokolls ausgegeben."}),r.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:10,flexWrap:"wrap"},children:[r.jsx("button",{className:"btn secondary",type:"button",onClick:i,disabled:t,children:"Abbrechen"}),r.jsx("button",{className:"btn secondary",type:"button",onClick:()=>n(!1),disabled:t,children:"Nein"}),r.jsx("button",{className:"btn",type:"button",onClick:()=>n(!0),disabled:t,children:"Ja"})]})]})}):null}function O2(){const[e,t]=f.useState([]),[n,i]=f.useState([]),[s,a]=f.useState([]),[o,l]=f.useState(null),[c,u]=f.useState(ba()),[m,d]=f.useState(""),[h,x]=f.useState(""),[g,p]=f.useState(""),[w,b]=f.useState(""),[v,y]=f.useState(null),[j,k]=f.useState(null),[N,_]=f.useState(!1),[S,P]=f.useState(null),[D,F]=f.useState(!1),[T,M]=f.useState(null),[z,A]=f.useState(!1),[$,Z]=f.useState(null),[R,K]=f.useState(!1),[X,ae]=f.useState(1),[J,ue]=f.useState(!1),[pe,ee]=f.useState(null),[le,ge]=f.useState(!1),Y=Jt();f.useEffect(()=>{const L=new URLSearchParams(Y.search).get("open");if(!L||!e.length)return;const Q=e.find(oe=>String(oe.id)===String(L));Q&&!pn(Q)&&me(Q)},[Y.search,e]);const[fe,Se]=f.useState({total:0,page:1,page_size:Yl,total_pages:1});async function he({nextPage:L=X,nextShowEnded:Q=R,nextQuery:oe=m}={}){p("");try{const ve=new URLSearchParams({show_ended:Q?"true":"false",page:String(L),page_size:String(Yl)});String(oe||"").trim()&&ve.set("q",oe.trim());const[Me,Ve,zr]=await Promise.all([O.get(`/meetings?${ve.toString()}`),O.get("/committees"),O.get("/users")]);t(Array.isArray(Me==null?void 0:Me.items)?Me.items:[]),Se({total:(Me==null?void 0:Me.total)??0,page:(Me==null?void 0:Me.page)??1,page_size:(Me==null?void 0:Me.page_size)??Yl,total_pages:(Me==null?void 0:Me.total_pages)??1}),i(Array.isArray(Ve)?Ve:[]),a(Array.isArray(zr)?zr.filter(Gv=>Gv.is_active!==!1):[])}catch(ve){p(ve.message)}}f.useEffect(()=>{he()},[X,R]),f.useEffect(()=>{const L=setTimeout(()=>{he({nextPage:1,nextQuery:m}),ae(1)},250);return()=>clearTimeout(L)},[m]);const q=f.useMemo(()=>c.committee_id?s.filter(L=>!L.committee_id||String(L.committee_id)===String(c.committee_id)):s,[s,c.committee_id]);function re(L){return n.find(Q=>String(Q.id)===String(L))}function me(L){pn(L)||(l(L),u({meeting_number:L.meeting_number??"",title:L.title??"",meeting_type:L.meeting_type??"ordentlich",meeting_date:L.meeting_date??"",start_time:L.start_time??"",end_time:L.end_time??"",location:L.location??"",status:L.status??"geplant",protocol_text:L.protocol_text??"",committee_id:L.committee_id?String(L.committee_id):"",chair_user_id:L.chair_user_id?String(L.chair_user_id):"",secretary_user_id:L.secretary_user_id?String(L.secretary_user_id):""}),y(null),x(""),p(""),b(""),ue(!0))}function V(){l(null),u(ba()),y(null),x(""),p(""),b("")}function te(){l(null),u(ba()),y(null),x(""),p(""),b(""),ue(!0)}function Ne(){ue(!1),l(null),u(ba()),y(null),b("")}function Xe(L){const Q=re(L);u(oe=>({...oe,committee_id:L,chair_user_id:oe.chair_user_id||(Q!=null&&Q.chair_user_id?String(Q.chair_user_id):""),secretary_user_id:oe.secretary_user_id||(Q!=null&&Q.secretary_user_id?String(Q.secretary_user_id):"")}))}async function E(L,Q){if(typeof Q=="boolean"){ge(!0),p(""),x("");try{await O.post(`/meetings/${L}/start`,{is_quorate:Q}),await he(),(o==null?void 0:o.id)===L&&V(),ee(null),x(Q?"Sitzung gestartet: Die Sitzung ist Beschlussfähig.":"Sitzung gestartet: Die Sitzung ist nicht Beschlussfähig.")}catch(oe){p(oe.message)}finally{ge(!1)}}}async function B(L){var Q,oe;p(""),x("");try{const ve=await O.post(`/meetings/${L}/stop`,{});await he(),(o==null?void 0:o.id)===L&&V(),((Q=j==null?void 0:j.meeting)==null?void 0:Q.id)===L&&k(null),(S==null?void 0:S.meeting_id)===Number(L)&&ne(),(T==null?void 0:T.meeting_id)===Number(L)&&Ci(),((oe=$==null?void 0:$.meeting)==null?void 0:oe.id)===Number(L)&&Z(null),ve!=null&&ve.protocol_document&&(ve!=null&&ve.decision_report_document)?x("Sitzung beendet, Protokoll und Beschlussbericht erzeugt"):ve!=null&&ve.protocol_document?x("Sitzung beendet und Protokoll erzeugt"):ve!=null&&ve.decision_report_document?x("Sitzung beendet und Beschlussbericht erzeugt"):x("Sitzung beendet")}catch(ve){p(ve.message)}}async function U(L){_(!0),p("");try{const Q=await O.get(`/meetings/${L.id}/agenda-items`);k(Q)}catch(Q){p(Q.message)}finally{_(!1)}}async function C(L){const Q=await O.get(`/meetings/${L}/agenda-items`);k(Q)}async function G(L){var Q;if(!(!((Q=j==null?void 0:j.meeting)!=null&&Q.id)||!(L!=null&&L.id))){F(!0),p("");try{const oe=await O.get(`/meetings/${j.meeting.id}/agenda-items/${L.id}/reports`);P(oe)}catch(oe){p(oe.message||"Berichte konnten nicht geladen werden.")}finally{F(!1)}}}function ne(){P(null),F(!1)}async function ye(L){var Q;if(!(!((Q=j==null?void 0:j.meeting)!=null&&Q.id)||!(L!=null&&L.id))){A(!0),p("");try{const oe=await O.get(`/meetings/${j.meeting.id}/agenda-items/${L.id}/comments`);M({...oe,meeting:j.meeting})}catch(oe){p(oe.message||"Kommentare konnten nicht geladen werden.")}finally{A(!1)}}}async function Pn(){var Q;if(!(T!=null&&T.meeting_id)||!((Q=T==null?void 0:T.agenda_item)!=null&&Q.id))return;const L=await O.get(`/meetings/${T.meeting_id}/agenda-items/${T.agenda_item.id}/comments`);M(oe=>({...L,meeting:(oe==null?void 0:oe.meeting)||(j==null?void 0:j.meeting)||null}))}function Ci(){M(null),A(!1)}async function Rs(L){var Q;if(!(!(T!=null&&T.meeting_id)||!((Q=T==null?void 0:T.agenda_item)!=null&&Q.id))){A(!0),p("");try{await O.post(`/meetings/${T.meeting_id}/agenda-items/${T.agenda_item.id}/comments`,L),await Pn(),await C(T.meeting_id),x("Kommentar zum TOP gespeichert.")}catch(oe){p(oe.message||"Kommentar konnte nicht gespeichert werden.")}finally{A(!1)}}}async function Os(L,Q){var oe;if(!(!(T!=null&&T.meeting_id)||!((oe=T==null?void 0:T.agenda_item)!=null&&oe.id)||!(L!=null&&L.id))){A(!0),p("");try{await O.put(`/meetings/${T.meeting_id}/agenda-items/${T.agenda_item.id}/comments/${L.id}`,Q),await Pn(),await C(T.meeting_id),x("Kommentar aktualisiert.")}catch(ve){p(ve.message||"Kommentar konnte nicht aktualisiert werden.")}finally{A(!1)}}}async function Is(L){var Q;if(!(!(T!=null&&T.meeting_id)||!((Q=T==null?void 0:T.agenda_item)!=null&&Q.id)||!(L!=null&&L.id))&&window.confirm("Kommentar löschen?")){A(!0),p("");try{await O.delete(`/meetings/${T.meeting_id}/agenda-items/${T.agenda_item.id}/comments/${L.id}`),await Pn(),await C(T.meeting_id),x("Kommentar gelöscht.")}catch(oe){p(oe.message||"Kommentar konnte nicht gelöscht werden.")}finally{A(!1)}}}async function Ls(L){p("");try{await _i(`/documents/${L.id}/view`)}catch(Q){p(Q.message||"Bericht konnte nicht angezeigt werden.")}}async function Ms(L){p("");try{await ji(`/documents/${L.id}/download`,L.file_name||L.title||`bericht-${L.id}`)}catch(Q){p(Q.message||"Bericht konnte nicht heruntergeladen werden.")}}async function Fs(L){p("");try{await T1(`/documents/${L.id}/view`)}catch(Q){p(Q.message||"Bericht konnte nicht gedruckt werden.")}}function $s(L){const Q=window.open("","_blank","noopener,noreferrer,width=900,height=700");if(!Q){p("Druckfenster konnte nicht geöffnet werden.");return}const oe=`${L!=null&&L.agenda_number?`TOP ${L.agenda_number} – `:""}${(L==null?void 0:L.title)||"Bericht"}`,ve=(L==null?void 0:L.case_summary)||"Kein Berichtstext vorhanden.";Q.document.open(),Q.document.write(` + + + + ${oe} + + + +

    ${oe}

    +
    ${L!=null&&L.case_number?`Vorgang ${L.case_number}`:""}
    +
    ${ve.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">")}
    + +`),Q.document.close(),Q.focus(),window.setTimeout(()=>Q.print(),250)}async function qs(L){var Q;if(!(!((Q=j==null?void 0:j.meeting)!=null&&Q.id)||pn(j.meeting))){_(!0),p(""),x("");try{await O.post(`/meetings/${j.meeting.id}/agenda-items/assign`,{agenda_item_id:L}),await C(j.meeting.id),await he(),x("TOP zur Sitzung hinzugefügt")}catch(oe){p(oe.message)}finally{_(!1)}}}async function Vs(L){var Q;if(!(!((Q=j==null?void 0:j.meeting)!=null&&Q.id)||pn(j.meeting))){_(!0),p(""),x("");try{await O.post(`/meetings/${j.meeting.id}/agenda-items/create-and-assign`,L),await C(j.meeting.id),await he(),x("Neuer TOP erzeugt und der Sitzung zugewiesen")}catch(oe){p(oe.message)}finally{_(!1)}}}function I(L){var Q;!((Q=j==null?void 0:j.meeting)!=null&&Q.id)||!(L!=null&&L.id)||(Z({meeting:j.meeting,agendaItem:L}),p(""),x(""))}async function se(L){var Q,oe;if(!(!((Q=$==null?void 0:$.meeting)!=null&&Q.id)||!((oe=$==null?void 0:$.agendaItem)!=null&&oe.id))){_(!0),p(""),x("");try{await O.post(`/meetings/${$.meeting.id}/agenda-items/${$.agendaItem.id}/return-to-pool`,L),Z(null),await C($.meeting.id),await he(),x("Verknüpfter Folge-TOP wurde im TOP-Bestand angelegt.")}catch(ve){p(ve.message||"Folge-TOP konnte nicht angelegt werden.")}finally{_(!1)}}}async function ce(L){var Q;if(!(!((Q=j==null?void 0:j.meeting)!=null&&Q.id)||pn(j.meeting))){_(!0),p(""),x("");try{await O.post(`/meetings/${j.meeting.id}/agenda-items/${L}/unassign`,{}),await C(j.meeting.id),await he(),x("TOP aus Sitzung entfernt und wieder in den Bestand eingeordnet")}catch(oe){p(oe.message)}finally{_(!1)}}}async function Ke(L){if(L.preventDefault(),b(""),x(""),!c.meeting_date){b("Bitte ein Sitzungsdatum auswählen.");return}const Q={title:c.title.trim(),meeting_type:c.meeting_type,meeting_date:c.meeting_date,start_time:c.start_time||null,end_time:c.end_time||null,location:c.location.trim()||null,status:c.status,protocol_text:c.protocol_text.trim()||null,committee_id:c.committee_id?Number(c.committee_id):null,chair_user_id:c.chair_user_id?Number(c.chair_user_id):null,secretary_user_id:c.secretary_user_id?Number(c.secretary_user_id):null};try{const oe=o!=null&&o.id?"Sitzung gespeichert":"Sitzung erstellt";o!=null&&o.id?await O.put(`/meetings/${o.id}`,Q):await O.post("/meetings",Q),await he({nextPage:1}),ae(1),Ne(),x(oe)}catch(oe){b(oe.message)}}async function Us(L,Q){var oe;if(!pn(Q)){p(""),x("");try{await O.delete(`/meetings/${L}`),(o==null?void 0:o.id)===L&&V(),((oe=j==null?void 0:j.meeting)==null?void 0:oe.id)===L&&k(null),await he(),x("Sitzung gelöscht")}catch(ve){p(ve.message)}}}function Hs(L,Q){u(oe=>({...oe,[L]:String(Q.id)})),y(null)}return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .modal-backdrop { + position: fixed; + inset: 0; + background: rgba(15, 23, 42, 0.55); + display: flex; + align-items: center; + justify-content: center; + padding: 16px; + z-index: 1000; + } + + .modal-panel { + width: min(900px, 100%); + max-height: 92vh; + overflow: auto; + border-radius: 18px; + background: rgba(255, 255, 255, 0.74); + backdrop-filter: blur(18px); + -webkit-backdrop-filter: blur(18px); + border: 1px solid rgba(255, 255, 255, 0.24); + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25); + padding: 18px; + } + + .modal-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 16px; + margin-bottom: 16px; + } + + .modal-subtitle { + margin: 6px 0 0; + opacity: 0.75; + font-size: 0.95rem; + } + + .modal-close { + border: 0; + background: transparent; + font-size: 28px; + line-height: 1; + cursor: pointer; + padding: 4px 8px; + } + + .switch-line { + display: inline-flex; + align-items: center; + gap: 8px; + font-weight: 600; + } + `}),r.jsx("div",{className:"page-grid",children:r.jsxs(de,{title:"Sitzungen",subtitle:"Beendete Sitzungen sind standardmäßig ausgeblendet. Suche unterstützt auch SQL-Wildcards wie % und findet zusätzlich Themen/TOPs.",actions:r.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",flexWrap:"wrap"},children:[r.jsxs("label",{style:{display:"flex",gap:8,alignItems:"center"},children:[r.jsx("input",{type:"checkbox",checked:R,onChange:L=>{K(L.target.checked),ae(1)}}),r.jsx("span",{children:"Beendete einblenden"})]}),r.jsx("input",{className:"input search",placeholder:"Suchen... (% als Wildcard möglich)",value:m,onChange:L=>d(L.target.value)}),r.jsx("button",{className:"btn",type:"button",onClick:te,children:"Neue Sitzung"})]}),children:[g?r.jsx("div",{className:"alert error",children:g}):null,h?r.jsx("div",{className:"alert success",children:h}):null,r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"ID"}),r.jsx("th",{children:"Sitzung"}),r.jsx("th",{children:"Titel"}),r.jsx("th",{children:"Art"}),r.jsx("th",{children:"Datum"}),r.jsx("th",{children:"Ort"}),r.jsx("th",{children:"Status"}),r.jsx("th",{children:"Beschlussfähig"}),r.jsx("th",{children:"TOPs"}),r.jsx("th",{children:"Aktionen"})]})}),r.jsxs("tbody",{children:[e.map(L=>{var oe,ve,Me;const Q=pn(L);return r.jsxs("tr",{onClick:()=>{Q||me(L)},style:{cursor:Q?"default":"pointer",opacity:L.status==="beendet"?.75:1},children:[r.jsx("td",{children:L.id}),r.jsx("td",{children:L.meeting_number}),r.jsx("td",{children:L.title}),r.jsx("td",{children:((oe=Iv.find(Ve=>Ve.value===L.meeting_type))==null?void 0:oe.label)||L.meeting_type}),r.jsx("td",{children:L.meeting_date}),r.jsx("td",{children:L.location}),r.jsx("td",{children:((ve=Lv.find(Ve=>Ve.value===L.status))==null?void 0:ve.label)||L.status}),r.jsx("td",{children:C2(L.is_quorate)}),r.jsx("td",{children:L.agenda_item_count??0}),r.jsxs("td",{className:"row-actions",children:[r.jsx("button",{className:"mini-btn",type:"button",onClick:Ve=>{Ve.stopPropagation(),ee(L)},disabled:le||L.status==="gestartet"||L.status==="beendet",children:"Starten"}),r.jsx("button",{className:"mini-btn",type:"button",onClick:Ve=>{Ve.stopPropagation(),B(L.id)},disabled:L.status!=="gestartet",children:"Stoppen"}),r.jsx("button",{className:"mini-btn",type:"button",onClick:Ve=>{Ve.stopPropagation(),me(L)},disabled:Q,children:"Bearbeiten"}),r.jsx("button",{className:"mini-btn",type:"button",onClick:Ve=>{Ve.stopPropagation(),U(L)},disabled:N&&((Me=j==null?void 0:j.meeting)==null?void 0:Me.id)===L.id,children:"TOPs"}),r.jsx("button",{className:"mini-btn danger",type:"button",onClick:Ve=>{Ve.stopPropagation(),Us(L.id,L)},disabled:Q,children:"Löschen"})]})]},L.id)}),e.length?null:r.jsx("tr",{children:r.jsx("td",{colSpan:10,children:"Keine Sitzungen gefunden"})})]})]})}),fe.total_pages>1?r.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginTop:14},children:[r.jsxs("div",{children:["Seite ",fe.page," von ",fe.total_pages," · ",fe.total," Einträge"]}),r.jsxs("div",{style:{display:"flex",gap:8},children:[r.jsx("button",{className:"btn secondary",type:"button",disabled:fe.page<=1,onClick:()=>ae(L=>Math.max(1,L-1)),children:"Zurück"}),r.jsx("button",{className:"btn secondary",type:"button",disabled:fe.page>=fe.total_pages,onClick:()=>ae(L=>Math.min(fe.total_pages,L+1)),children:"Weiter"})]})]}):null]})}),j?r.jsx(B2,{meeting:j.meeting,data:j,onAssignExisting:qs,onCreateAndAssign:Vs,onUnassign:ce,onCreateFollowUp:I,onOpenReports:G,onOpenComments:ye,onClose:()=>k(null),loading:N}):null,r.jsx(E2,{open:!!$,meeting:$==null?void 0:$.meeting,agendaItem:$==null?void 0:$.agendaItem,loading:N,onClose:()=>Z(null),onSubmit:se}),r.jsx(T2,{open:!!S,data:S,onClose:ne,onView:Ls,onDownload:Ms,onPrint:Fs,onPrintSummary:$s}),r.jsx(P2,{open:!!T,data:T,loading:z,onClose:Ci,onCreate:Rs,onUpdate:Os,onDelete:Is}),r.jsx(R2,{meeting:pe,loading:le,onAnswer:L=>E(pe.id,L),onClose:()=>{le||ee(null)}}),r.jsx(A2,{open:J,selected:o,form:c,setForm:u,committees:n,committeeUsers:q,handleCommitteeChange:Xe,setLookup:y,onClose:Ne,onSubmit:Ke,error:w,lookupOpen:!!v}),v?r.jsx("div",{style:{position:"fixed",inset:0,zIndex:1100},children:r.jsx(nx,{title:"Benutzer auswählen",rows:q,columns:[{key:"id",label:"ID"},{key:"full_name",label:"Name"},{key:"email",label:"E-Mail"},{key:"role",label:"Rolle"}],onPick:L=>Hs(v,L),onClose:()=>y(null)})}):null]})}function I2(e){return{offen:"Offen",in_sitzung:"In Sitzung",rueckfrage:"Rückfrage",klaerung:"Klärung",erledigt:"Erledigt"}[e]||e||"Offen"}function L2(e){return e==="klaerung"?"Klärung":e==="bemerkung"?"Bemerkung / Wiedervorlage":"Rückfrage"}function Jl(){return{title:"",description:"",duration_minutes:"",case_id:""}}function M2({form:e,setForm:t,cases:n}){return r.jsxs(r.Fragment,{children:[r.jsxs("label",{children:[r.jsx("span",{children:"Titel"}),r.jsx("input",{className:"input",required:!0,value:e.title,onChange:i=>t({...e,title:i.target.value})})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Dauer in Minuten"}),r.jsx("input",{className:"input",type:"number",min:"0",max:"600",value:e.duration_minutes,onChange:i=>t({...e,duration_minutes:i.target.value})})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Vorgang"}),r.jsxs("select",{className:"input",value:e.case_id,onChange:i=>t({...e,case_id:i.target.value}),children:[r.jsx("option",{value:"",children:"Kein Vorgang"}),n.map(i=>r.jsxs("option",{value:i.id,children:[i.case_number," – ",i.title]},i.id))]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Beschreibung"}),r.jsx("textarea",{className:"input textarea",value:e.description,onChange:i=>t({...e,description:i.target.value})})]})]})}function F2(){const[e,t]=f.useState([]),[n,i]=f.useState([]),[s,a]=f.useState(null),[o,l]=f.useState(Jl()),[c,u]=f.useState(""),[m,d]=f.useState(""),[h,x]=f.useState(""),[g,p]=f.useState(!1);async function w(){x("");try{const[_,S]=await Promise.all([O.get("/agenda-items"),O.get("/cases")]);t(Array.isArray(_)?_:[]),i(Array.isArray(S)?S:[])}catch(_){x(_.message)}}f.useEffect(()=>{w()},[]),f.useEffect(()=>{if(!g)return;const _=document.body.style.overflow;document.body.style.overflow="hidden";function S(P){P.key==="Escape"&&j()}return window.addEventListener("keydown",S),()=>{document.body.style.overflow=_,window.removeEventListener("keydown",S)}},[g]);const b=f.useMemo(()=>{const _=c.trim().toLowerCase();return _?e.filter(S=>JSON.stringify(S).toLowerCase().includes(_)):e},[e,c]);function v(){a(null),l(Jl()),d(""),x(""),p(!0)}function y(_){a(_),l({title:_.title??"",description:_.description??"",duration_minutes:_.duration_minutes!=null?String(_.duration_minutes):"",case_id:_.case_id?String(_.case_id):""}),d(""),x(""),p(!0)}function j(){p(!1),a(null),l(Jl()),x("")}async function k(_){_.preventDefault(),x(""),d("");const S={title:o.title.trim(),description:o.description.trim()||null,duration_minutes:o.duration_minutes?Number(o.duration_minutes):null,case_id:o.case_id?Number(o.case_id):null};try{s!=null&&s.id?(await O.put(`/agenda-items/${s.id}`,S),d("TOP-Bestandseintrag gespeichert")):(await O.post("/agenda-items",S),d("TOP-Bestandseintrag erstellt")),j(),await w()}catch(P){x(P.message)}}async function N(_){x(""),d("");try{await O.delete(`/agenda-items/${_}`),(s==null?void 0:s.id)===_&&j(),await w(),d("TOP-Bestandseintrag gelöscht")}catch(S){x(S.message)}}return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .agenda-modal-backdrop { + position: fixed; + inset: 0; + z-index: 1000; + display: grid; + place-items: center; + padding: 24px; + background: rgba(15, 23, 42, 0.62); + backdrop-filter: blur(2px); + } + .agenda-modal-panel { + width: min(760px, 96vw); + max-height: min(92vh, 920px); + overflow: hidden; + display: flex; + flex-direction: column; + border-radius: 22px; + background: #ffffff; + color: #0f172a; + border: 1px solid rgba(15, 23, 42, 0.12); + box-shadow: 0 30px 90px rgba(15, 23, 42, 0.34), 0 8px 24px rgba(15, 23, 42, 0.18); + } + .agenda-modal-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 16px; + padding: 22px 24px 18px; + background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%); + border-bottom: 1px solid rgba(148, 164, 184, 0.28); + } + .agenda-modal-header h2 { margin: 0; color: #0f172a; font-size: 1.35rem; } + .agenda-modal-subtitle { margin: 6px 0 0; color: #64748b; line-height: 1.45; } + .agenda-modal-close { + flex: 0 0 auto; + width: 36px; + height: 36px; + border: 1px solid rgba(148, 164, 184, 0.35); + border-radius: 999px; + background: #ffffff; + color: #0f172a; + cursor: pointer; + font-size: 1.3rem; + line-height: 1; + box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08); + } + .agenda-modal-close:hover { background: #f1f5f9; } + .agenda-modal-body { padding: 22px 24px; overflow: auto; background: #ffffff; } + .agenda-modal-footer { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; } + .agenda-followup-note { color: var(--muted); display: block; margin-top: 4px; } + @media (max-width: 800px) { + .agenda-modal-backdrop { padding: 12px; align-items: start; } + .agenda-modal-panel { width: 100%; max-height: calc(100vh - 24px); } + } + `}),r.jsx("div",{className:"page-grid",children:r.jsxs(de,{title:"TOP-Bestand",subtitle:"Hier werden nur TOPs ohne Sitzungszuordnung angezeigt. Aus Vorgängen erzeugte TOPs sind über die Vorgangsnummer erkennbar.",actions:r.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",flexWrap:"wrap"},children:[r.jsx("input",{className:"input search",placeholder:"Suchen...",value:c,onChange:_=>u(_.target.value)}),r.jsx("button",{className:"btn",type:"button",onClick:v,children:"Neuer TOP-Bestandseintrag"})]}),children:[h&&!g?r.jsx("div",{className:"alert error",children:h}):null,m?r.jsx("div",{className:"alert success",children:m}):null,r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"ID"}),r.jsx("th",{children:"Vorgang"}),r.jsx("th",{children:"Titel"}),r.jsx("th",{children:"Beschreibung"}),r.jsx("th",{children:"Status"}),r.jsx("th",{children:"Bemerkung"}),r.jsx("th",{children:"Minuten"}),r.jsx("th",{children:"Aktionen"})]})}),r.jsxs("tbody",{children:[b.map(_=>r.jsxs("tr",{onClick:()=>y(_),children:[r.jsx("td",{children:_.id}),r.jsx("td",{children:_.case_number||_.case_id||""}),r.jsxs("td",{children:[_.title,_.parent_agenda_item_id?r.jsxs(r.Fragment,{children:[r.jsx("br",{}),r.jsxs("small",{className:"agenda-followup-note",children:["Folge von TOP ",_.parent_agenda_number||_.parent_agenda_item_id,_.follow_up_source_meeting_number?` · Sitzung ${_.follow_up_source_meeting_number}`:""]})]}):null]}),r.jsx("td",{children:_.description}),r.jsx("td",{children:I2(_.status)}),r.jsx("td",{children:_.follow_up_note||_.last_return_remark?r.jsxs("small",{children:[L2(_.follow_up_type||_.last_return_type),": ",_.follow_up_note||_.last_return_remark]}):""}),r.jsx("td",{children:_.duration_minutes}),r.jsxs("td",{className:"row-actions",children:[r.jsx("button",{className:"mini-btn",type:"button",onClick:S=>{S.stopPropagation(),y(_)},children:"Bearbeiten"}),r.jsx("button",{className:"mini-btn danger",type:"button",onClick:S=>{S.stopPropagation(),N(_.id)},children:"Löschen"})]})]},_.id)),b.length===0?r.jsx("tr",{children:r.jsx("td",{colSpan:8,children:"Keine TOP-Bestandseinträge gefunden."})}):null]})]})})]})}),g?r.jsx("div",{className:"agenda-modal-backdrop",onMouseDown:j,children:r.jsxs("div",{className:"agenda-modal-panel",role:"dialog","aria-modal":"true","aria-labelledby":"agenda-modal-title",onMouseDown:_=>_.stopPropagation(),children:[r.jsxs("div",{className:"agenda-modal-header",children:[r.jsxs("div",{children:[r.jsx("h2",{id:"agenda-modal-title",children:s?"TOP-Bestand bearbeiten":"Neuen TOP-Bestandseintrag anlegen"}),r.jsx("p",{className:"agenda-modal-subtitle",children:s!=null&&s.parent_agenda_item_id?`Folge-TOP zu TOP ${s.parent_agenda_number||s.parent_agenda_item_id}${s.follow_up_source_meeting_number?` aus Sitzung ${s.follow_up_source_meeting_number}`:""}.`:"Der Eintrag bleibt zunächst ohne Sitzungszuordnung und kann später einer Sitzung hinzugefügt werden."})]}),r.jsx("button",{className:"agenda-modal-close",type:"button",onClick:j,"aria-label":"Schließen",children:"×"})]}),r.jsxs("div",{className:"agenda-modal-body",children:[h?r.jsx("div",{className:"alert error",children:h}):null,r.jsxs("form",{className:"form-grid",onSubmit:k,children:[r.jsx(M2,{form:o,setForm:l,cases:n}),r.jsxs("div",{className:"agenda-modal-footer",children:[r.jsx("button",{className:"btn secondary",type:"button",onClick:j,children:"Abbrechen"}),r.jsx("button",{className:"btn",type:"submit",children:s?"Speichern":"Erstellen"})]})]})]})]})}):null]})}const Nu=[{value:"in_bearbeitung",label:"In Bearbeitung"},{value:"rueckfrage",label:"Rückfrage"},{value:"abgeschlossen",label:"Abgeschlossen"}];function ec(){return{agenda_item_id:"",meeting_id:"",case_id:"",title:"",decision_text:"",status:"in_bearbeitung",votes_yes:"0",votes_no:"0",votes_abstain:"0",responsible_user_id:"",due_date:""}}function $2(e){return Nu.some(t=>t.value===e)?e:"in_bearbeitung"}function fp(e){return{agenda_item_id:e.agenda_item_id?String(e.agenda_item_id):"",meeting_id:e.meeting_id?String(e.meeting_id):"",case_id:e.case_id?String(e.case_id):"",title:e.title??"",decision_text:e.decision_text??"",status:$2(e.status),votes_yes:String(e.votes_yes??0),votes_no:String(e.votes_no??0),votes_abstain:String(e.votes_abstain??0),responsible_user_id:e.responsible_user_id?String(e.responsible_user_id):"",due_date:e.due_date?String(e.due_date).slice(0,16):""}}function q2(e){return{id:e.id,title:e.title||e.file_name||e.original_filename||"Datei",file_name:e.file_name||e.original_filename||e.title||"Datei",size_bytes:e.size_bytes||0,mime_type:e.mime_type||"",uploaded_at:e.uploaded_at||e.created_at||null,uploaded_by_name:e.uploaded_by_name||"",uploaded_by_email:e.uploaded_by_email||""}}function V2(e){const t=String((e==null?void 0:e.mime_type)||"").toLowerCase();return t.startsWith("image/")||t==="application/pdf"||t.startsWith("text/")}function U2(e){const t=Number(e||0);return t?t<1024?`${t} B`:t<1024*1024?`${Math.round(t/1024)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`:"0 KB"}function mp(e){if(!e)return"";const t=new Date(e);return Number.isNaN(t.getTime())?"":t.toLocaleString("de-DE")}function H2(){var G,ne,ye,Pn,Ci,Rs,Os,Is,Ls,Ms,Fs,$s,qs,Vs;const[e,t]=f.useState([]),[n,i]=f.useState({agendaItems:[],users:[]}),[s,a]=f.useState(null),[o,l]=f.useState(ec()),[c,u]=f.useState(""),[m,d]=f.useState(""),[h,x]=f.useState(""),[g,p]=f.useState(!1),[w,b]=f.useState(!1),[v,y]=f.useState(!1),[j,k]=f.useState(""),[N,_]=f.useState(null),[S,P]=f.useState([]),[D,F]=f.useState(!1),[T,M]=f.useState(!1),[z,A]=f.useState(null),[$,Z]=f.useState(!1),[R,K]=f.useState(!1),[X,ae]=f.useState(""),J=Jt();f.useEffect(()=>{const I=new URLSearchParams(J.search).get("open");if(!I||!e.length)return;const se=e.find(ce=>String(ce.id)===String(I));se&&ge(se)},[J.search,e]);async function ue(){x("");try{const[I,se]=await Promise.all([O.get("/decisions"),O.get("/decisions/meta")]);t(Array.isArray(I)?I:[]),i(se||{agendaItems:[],users:[]})}catch(I){x(I.message||"Daten konnten nicht geladen werden.")}}f.useEffect(()=>{ue()},[]);const pe=f.useMemo(()=>{const I=e.filter(ce=>ce.status!=="abgeschlossen"),se=c.trim().toLowerCase();return se?I.filter(ce=>JSON.stringify(ce).toLowerCase().includes(se)):I},[e,c]);async function ee(I){if(!I){_(null),P([]);return}F(!0);try{const[se,ce]=await Promise.all([O.get(`/cases/${I}`),O.get(`/cases/${I}/attachments`)]);_(se||null);const Ke=Array.isArray(ce)?ce:Array.isArray(ce==null?void 0:ce.items)?ce.items:[];P(Ke.map(q2))}catch(se){_(null),P([]),x(se.message||"Vorgangsdateien konnten nicht geladen werden.")}finally{F(!1)}}f.useEffect(()=>{if(g){if(!o.case_id){_(null),P([]);return}ee(o.case_id)}},[g,o.case_id]),f.useEffect(()=>{var ce;if(!T)return;const I=(s==null?void 0:s.id)||((ce=z==null?void 0:z.decision)==null?void 0:ce.id);if(!I)return;const se=window.setInterval(()=>{V(I,{silent:!0})},2500);return()=>window.clearInterval(se)},[T,s==null?void 0:s.id,(G=z==null?void 0:z.decision)==null?void 0:G.id]);function le(){a(null),l(ec()),_(null),P([]),A(null),ae(""),k(""),y(!1),x(""),d(""),p(!0)}function ge(I){a(I),k(""),y(!1),l(fp(I)),_(I.case_id?{id:I.case_id,case_number:I.case_number,title:I.title}:null),P([]),A(null),ae(""),x(""),d(""),p(!0)}function Y(){p(!1),a(null),l(ec()),_(null),P([]),F(!1),M(!1),A(null),ae(""),k(""),y(!1)}async function fe(){if(!j){Y();return}y(!0),x(""),ae("");try{await O.delete("/decisions/"+j),await ue(),Y(),d("Vorläufig angelegter Beschluss wurde verworfen.")}catch(I){x(I.message||"Vorläufig angelegter Beschluss konnte nicht gelöscht werden."),y(!1)}}function Se(I){const se=n.agendaItems.find(ce=>String(ce.id)===String(I));l(ce=>({...ce,agenda_item_id:I,meeting_id:se!=null&&se.meeting_id?String(se.meeting_id):"",case_id:se!=null&&se.case_id?String(se.case_id):"",title:ce.title||(se==null?void 0:se.title)||""}))}async function he(I){try{await _i(`/documents/${I.id}/view`)}catch(se){x(se.message||"Datei konnte nicht angezeigt werden.")}}async function q(I){try{await ji(`/documents/${I.id}/download`,I.file_name||I.title||`datei-${I.id}`)}catch(se){x(se.message||"Datei konnte nicht heruntergeladen werden.")}}function re(){const I={agenda_item_id:o.agenda_item_id?Number(o.agenda_item_id):null,meeting_id:o.meeting_id?Number(o.meeting_id):null,case_id:o.case_id?Number(o.case_id):null,title:o.title.trim(),decision_text:o.decision_text.trim(),status:o.status,votes_yes:Number(o.votes_yes||0),votes_no:Number(o.votes_no||0),votes_abstain:Number(o.votes_abstain||0),responsible_user_id:o.responsible_user_id?Number(o.responsible_user_id):null,due_date:o.due_date||null};if(!I.title)throw new Error("Bitte einen Titel eingeben.");if(!I.decision_text)throw new Error("Bitte einen Beschlusstext eingeben.");return I}function me(I){var Us,Hs,L,Q,oe,ve,Me;if(!I)return;A(I);const se=String(((Us=I.counts)==null?void 0:Us.yes)??((Hs=I.decision)==null?void 0:Hs.votes_yes)??0),ce=String(((L=I.counts)==null?void 0:L.no)??((Q=I.decision)==null?void 0:Q.votes_no)??0),Ke=String(((oe=I.counts)==null?void 0:oe.abstain)??((ve=I.decision)==null?void 0:ve.votes_abstain)??0);l(Ve=>({...Ve,votes_yes:se,votes_no:ce,votes_abstain:Ke})),(Me=I.decision)!=null&&Me.id&&t(Ve=>Ve.map(zr=>String(zr.id)===String(I.decision.id)?{...zr,votes_yes:Number(se),votes_no:Number(ce),votes_abstain:Number(Ke),voting_open:I.decision.voting_open}:zr))}async function V(I,{silent:se=!1}={}){if(!I)return null;se||(Z(!0),ae(""));try{const ce=await O.get(`/decisions/${I}/voting`);return me(ce),ce}catch(ce){return se||ae(ce.message||"Abstimmung konnte nicht geladen werden."),null}finally{se||Z(!1)}}async function te({keepModalOpen:I=!1}={}){x(""),d("");const se=re();b(!0);try{let ce;return s!=null&&s.id?(ce=await O.put(`/decisions/${s.id}`,se),d("Beschluss gespeichert")):(ce=await O.post("/decisions",se),d("Beschluss erstellt")),a(ce),l(fp(ce)),await ue(),I||Y(),ce}catch(ce){throw x(ce.message||"Speichern fehlgeschlagen."),ce}finally{b(!1)}}async function Ne(I){I.preventDefault();try{await te({keepModalOpen:!1})}catch{}}async function Xe(){var I;x(""),ae("");try{let se=s;!(se!=null&&se.id)&&(se=await te({keepModalOpen:!0}),k(String(se.id))),M(!0);let Ke=await V(se.id);Ke!=null&&Ke.can_manage&&!((I=Ke==null?void 0:Ke.decision)!=null&&I.voting_open)&&(Ke=await O.post(`/decisions/${se.id}/voting/start`,{}),me(Ke))}catch(se){ae(se.message||"Abstimmung konnte nicht geöffnet werden.")}}async function E(){var se;const I=(s==null?void 0:s.id)||((se=z==null?void 0:z.decision)==null?void 0:se.id);if(I){K(!0),ae("");try{const ce=await O.post(`/decisions/${I}/voting/start`,{});me(ce)}catch(ce){ae(ce.message||"Abstimmung konnte nicht gestartet werden.")}finally{K(!1)}}}async function B(){var se;const I=(s==null?void 0:s.id)||((se=z==null?void 0:z.decision)==null?void 0:se.id);if(I){K(!0),ae("");try{const ce=await O.post(`/decisions/${I}/voting/close`,{});me(ce)}catch(ce){ae(ce.message||"Abstimmung konnte nicht geschlossen werden.")}finally{K(!1)}}}async function U(I){var ce;const se=(s==null?void 0:s.id)||((ce=z==null?void 0:z.decision)==null?void 0:ce.id);if(se){K(!0),ae("");try{const Ke=await O.put(`/decisions/${se}/vote`,{vote_value:I});me(Ke)}catch(Ke){ae(Ke.message||"Stimme konnte nicht gespeichert werden.")}finally{K(!1)}}}async function C(I){x(""),d("");try{await O.delete(`/decisions/${I}`),(s==null?void 0:s.id)===I&&Y(),await ue(),d("Beschluss gelöscht")}catch(se){x(se.message||"Löschen fehlgeschlagen.")}}return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .decisions-toolbar { + display: flex; + gap: 12px; + align-items: center; + justify-content: space-between; + flex-wrap: wrap; + } + + .row-actions { + display: flex; + gap: 8px; + flex-wrap: wrap; + } + + .modal-backdrop { + position: fixed; + inset: 0; + background: rgba(15, 23, 42, 0.55); + display: flex; + align-items: center; + justify-content: center; + padding: 16px; + z-index: 1000; + } + + .modal-panel { + width: min(1100px, 100%); + max-height: 92vh; + overflow: auto; + border-radius: 18px; + background: rgba(255, 255, 255, 0.74); + backdrop-filter: blur(18px); + -webkit-backdrop-filter: blur(18px); + border: 1px solid rgba(255, 255, 255, 0.24); + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25); + padding: 18px; + } + + .modal-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 16px; + margin-bottom: 16px; + } + + .modal-subtitle { + margin: 6px 0 0; + opacity: 0.75; + font-size: 0.95rem; + } + + .modal-close { + border: 0; + background: transparent; + font-size: 28px; + line-height: 1; + cursor: pointer; + padding: 4px 8px; + } + + .form-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 14px; + } + + .form-grid > label.full, + .form-grid > div.full { + grid-column: 1 / -1; + } + + .helper-text { + margin-top: 6px; + font-size: 0.9rem; + opacity: 0.75; + } + + .attachments-section { + display: grid; + gap: 10px; + margin-top: 6px; + } + + .attachments-title { + font-weight: 600; + } + + .upload-list { + list-style: none; + margin: 0; + padding: 0; + display: grid; + gap: 8px; + } + + .upload-item { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + padding: 10px 12px; + border: 1px solid rgba(148, 163, 184, 0.35); + border-radius: 12px; + background: rgba(148, 163, 184, 0.08); + } + + .upload-item-main { + min-width: 0; + } + + .upload-item-name { + font-weight: 600; + word-break: break-word; + } + + .upload-item-meta { + margin-top: 3px; + font-size: 0.85rem; + opacity: 0.75; + } + + + .vote-summary-card { + grid-column: 1 / -1; + border: 1px solid rgba(44, 107, 237, 0.18); + border-radius: 16px; + padding: 14px; + background: rgba(44, 107, 237, 0.06); + display: grid; + gap: 12px; + } + + .vote-summary-head { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + flex-wrap: wrap; + } + + .vote-summary-grid, + .vote-count-row { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 10px; + } + + .vote-summary-item { + border: 1px solid rgba(148, 163, 184, 0.32); + border-radius: 14px; + background: rgba(255, 255, 255, 0.72); + padding: 10px; + } + + .vote-summary-item span { + display: block; + font-size: 0.82rem; + color: var(--muted); + margin-bottom: 4px; + } + + .vote-summary-item strong { + font-size: 1.2rem; + } + + .vote-modal-backdrop { + position: fixed; + inset: 0; + z-index: 1100; + display: grid; + place-items: center; + padding: 20px; + background: rgba(15, 23, 42, 0.62); + } + + .vote-modal-panel { + width: min(760px, 96vw); + max-height: min(92vh, 920px); + overflow: auto; + border-radius: 22px; + background: #ffffff; + color: #0f172a; + border: 1px solid rgba(15, 23, 42, 0.12); + box-shadow: 0 30px 90px rgba(15, 23, 42, 0.34), 0 8px 24px rgba(15, 23, 42, 0.18); + padding: 22px; + } + + .vote-modal-header { + display: flex; + justify-content: space-between; + align-items: flex-start; + gap: 14px; + margin-bottom: 14px; + } + + .vote-status { + display: inline-block; + border-radius: 999px; + padding: 4px 10px; + font-weight: 700; + font-size: 0.84rem; + background: rgba(148, 163, 184, 0.16); + } + + .vote-status.open { + color: #047857; + background: rgba(16, 185, 129, 0.12); + } + + .vote-status.closed { + color: #b45309; + background: rgba(245, 158, 11, 0.14); + } + + .vote-self-actions { + display: flex; + gap: 10px; + flex-wrap: wrap; + margin: 14px 0; + } + + .vote-choice { + border: 1px solid rgba(148, 163, 184, 0.35); + border-radius: 999px; + background: #ffffff; + cursor: pointer; + padding: 9px 14px; + font-weight: 700; + } + + .vote-choice.active { + border-color: rgba(44, 107, 237, 0.65); + background: rgba(44, 107, 237, 0.12); + color: #1d4ed8; + } + + .vote-list { + display: grid; + gap: 8px; + margin-top: 12px; + } + + .vote-row { + display: flex; + justify-content: space-between; + align-items: center; + gap: 12px; + padding: 10px 12px; + border-radius: 14px; + border: 1px solid rgba(148, 163, 184, 0.28); + background: #f8fafc; + } + + .vote-user-meta { + color: #64748b; + font-size: 0.86rem; + margin-top: 2px; + } + + .vote-pill { + border-radius: 999px; + padding: 4px 9px; + background: rgba(148, 163, 184, 0.16); + font-weight: 700; + white-space: nowrap; + } + + @media (max-width: 860px) { + .form-grid, + .vote-summary-grid, + .vote-count-row { + grid-template-columns: 1fr; + } + + .modal-panel { + padding: 14px; + } + } + `}),r.jsx("div",{className:"page-grid",children:r.jsxs(de,{title:"Beschlüsse",subtitle:"TOPs aus gestarteten Sitzungen stehen als Dropdown zur Verfügung. Sitzung und Vorgang werden daraus automatisch übernommen. Abgeschlossene Beschlüsse sind in dieser Liste ausgeblendet.",actions:r.jsxs("div",{className:"decisions-toolbar",children:[r.jsx("input",{className:"input search",placeholder:"Suchen...",value:c,onChange:I=>u(I.target.value)}),r.jsx("button",{className:"btn",type:"button",onClick:le,children:"Neuer Beschluss"})]}),children:[h?r.jsx("div",{className:"alert error",children:h}):null,m?r.jsx("div",{className:"alert success",children:m}):null,r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"ID"}),r.jsx("th",{children:"Beschluss"}),r.jsx("th",{children:"TOP"}),r.jsx("th",{children:"Sitzung"}),r.jsx("th",{children:"Vorgang"}),r.jsx("th",{children:"Status"}),r.jsx("th",{children:"Aktionen"})]})}),r.jsxs("tbody",{children:[pe.map(I=>{var se;return r.jsxs("tr",{onClick:()=>ge(I),children:[r.jsx("td",{children:I.id}),r.jsx("td",{children:I.decision_number}),r.jsx("td",{children:I.agenda_number?`${I.agenda_number} – ${I.agenda_title||""}`:I.agenda_item_id||""}),r.jsx("td",{children:I.meeting_number||I.meeting_id||""}),r.jsx("td",{children:I.case_number||I.case_id||""}),r.jsx("td",{children:((se=Nu.find(ce=>ce.value===I.status))==null?void 0:se.label)||I.status}),r.jsxs("td",{className:"row-actions",children:[r.jsx("button",{className:"mini-btn",type:"button",onClick:ce=>{ce.stopPropagation(),ge(I)},children:"Bearbeiten"}),r.jsx("button",{className:"mini-btn danger",type:"button",onClick:ce=>{ce.stopPropagation(),C(I.id)},children:"Löschen"})]})]},I.id)}),pe.length===0?r.jsx("tr",{children:r.jsx("td",{colSpan:"7",children:"Keine Beschlüsse gefunden."})}):null]})]})})]})}),g?r.jsx("div",{className:"modal-backdrop",onClick:fe,children:r.jsxs("div",{className:"modal-panel",onClick:I=>I.stopPropagation(),children:[r.jsxs("div",{className:"modal-header",children:[r.jsxs("div",{children:[r.jsx("h2",{style:{margin:0},children:s?"Beschluss bearbeiten":"Neuen Beschluss anlegen"}),r.jsx("p",{className:"modal-subtitle",children:"Beschlussnummer wird automatisch vergeben. Wenn der gewählte TOP zu einem Vorgang gehört, wird dieser automatisch übernommen."})]}),r.jsx("button",{className:"modal-close",type:"button",onClick:fe,"aria-label":"Schließen",disabled:v,children:"×"})]}),h?r.jsx("div",{className:"alert error",children:h}):null,r.jsxs("form",{className:"form-grid",onSubmit:Ne,children:[r.jsxs("label",{children:[r.jsx("span",{children:"Beschlussnummer"}),r.jsx("input",{className:"input",value:(s==null?void 0:s.decision_number)||"wird automatisch vergeben",disabled:!0})]}),r.jsxs("label",{children:[r.jsx("span",{children:"TOP aus gestarteter Sitzung"}),r.jsxs("select",{className:"input",value:o.agenda_item_id,onChange:I=>Se(I.target.value),children:[r.jsx("option",{value:"",children:"Bitte auswählen"}),n.agendaItems.map(I=>r.jsxs("option",{value:I.id,children:[I.meeting_number," · TOP ",I.agenda_number," · ",I.case_number?`${I.case_number} · `:"",I.title]},I.id))]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Sitzungs-ID"}),r.jsx("input",{className:"input",value:o.meeting_id,readOnly:!0})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Vorgangs-ID"}),r.jsx("input",{className:"input",value:o.case_id,readOnly:!0}),r.jsx("div",{className:"helper-text",children:N!=null&&N.case_number?`Verknüpfter Vorgang: ${N.case_number}`:"Kein Vorgang aus dem TOP übernommen."})]}),r.jsxs("label",{className:"full",children:[r.jsx("span",{children:"Titel"}),r.jsx("input",{className:"input",value:o.title,onChange:I=>l({...o,title:I.target.value})})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Status"}),r.jsx("select",{className:"input",value:o.status,onChange:I=>l({...o,status:I.target.value}),children:Nu.map(I=>r.jsx("option",{value:I.value,children:I.label},I.value))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Verantwortliche Person"}),r.jsxs("select",{className:"input",value:o.responsible_user_id,onChange:I=>l({...o,responsible_user_id:I.target.value}),children:[r.jsx("option",{value:"",children:"Bitte auswählen"}),n.users.map(I=>r.jsxs("option",{value:I.id,children:[I.full_name," (",I.email,")"]},I.id))]})]}),r.jsxs("div",{className:"full vote-summary-card",children:[r.jsxs("div",{className:"vote-summary-head",children:[r.jsxs("div",{children:[r.jsx("strong",{children:"Abstimmung"}),r.jsx("div",{className:"helper-text",children:"Mitglieder des Gremiums der ausgewählten Sitzung stimmen selbst ab. Die Summen werden vom Server gezählt und hier automatisch übernommen."})]}),r.jsx("button",{className:"btn secondary",type:"button",onClick:Xe,disabled:w||v,children:s!=null&&s.id?"Abstimmung öffnen":"Speichern & Abstimmung"})]}),r.jsxs("div",{className:"vote-summary-grid",children:[r.jsxs("div",{className:"vote-summary-item",children:[r.jsx("span",{children:"Ja"}),r.jsx("strong",{children:o.votes_yes||0})]}),r.jsxs("div",{className:"vote-summary-item",children:[r.jsx("span",{children:"Nein"}),r.jsx("strong",{children:o.votes_no||0})]}),r.jsxs("div",{className:"vote-summary-item",children:[r.jsx("span",{children:"Enthaltung"}),r.jsx("strong",{children:o.votes_abstain||0})]}),r.jsxs("div",{className:"vote-summary-item",children:[r.jsx("span",{children:"Gesamt"}),r.jsx("strong",{children:Number(o.votes_yes||0)+Number(o.votes_no||0)+Number(o.votes_abstain||0)})]})]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Ja-Stimmen"}),r.jsx("input",{className:"input",type:"number",min:"0",value:o.votes_yes,onChange:I=>l({...o,votes_yes:I.target.value})})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Nein-Stimmen"}),r.jsx("input",{className:"input",type:"number",min:"0",value:o.votes_no,onChange:I=>l({...o,votes_no:I.target.value})})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Enthaltungen"}),r.jsx("input",{className:"input",type:"number",min:"0",value:o.votes_abstain,onChange:I=>l({...o,votes_abstain:I.target.value})})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Umsetzungsfrist"}),r.jsx("input",{className:"input",type:"datetime-local",value:o.due_date,onChange:I=>l({...o,due_date:I.target.value})})]}),r.jsxs("label",{className:"full",children:[r.jsx("span",{children:"Beschlusstext"}),r.jsx("textarea",{className:"input textarea",value:o.decision_text,onChange:I=>l({...o,decision_text:I.target.value})})]}),r.jsxs("div",{className:"full",children:[r.jsx("span",{children:"Vorgangsdateien"}),r.jsxs("div",{className:"attachments-section",children:[o.case_id?null:r.jsx("div",{className:"helper-text",children:"Kein verknüpfter Vorgang vorhanden."}),o.case_id&&D?r.jsx("div",{className:"helper-text",children:"Vorgangsdateien werden geladen..."}):null,o.case_id&&!D&&(N!=null&&N.title)?r.jsxs("div",{className:"helper-text",children:[N.case_number?`${N.case_number} – `:"",N.title]}):null,o.case_id&&!D&&S.length===0?r.jsx("div",{className:"helper-text",children:"Zu diesem Vorgang sind keine Dateien vorhanden."}):null,S.length>0?r.jsx("ul",{className:"upload-list",children:S.map(I=>r.jsxs("li",{className:"upload-item",children:[r.jsxs("div",{className:"upload-item-main",children:[r.jsx("div",{className:"upload-item-name",children:I.file_name}),r.jsx("div",{className:"upload-item-meta",children:U2(I.size_bytes)}),I.uploaded_at?r.jsxs("div",{className:"upload-item-meta",children:["Hochgeladen: ",mp(I.uploaded_at)]}):null,I.uploaded_by_name?r.jsxs("div",{className:"upload-item-meta",children:["Von: ",I.uploaded_by_name]}):null]}),r.jsxs("div",{className:"row-actions",children:[V2(I)?r.jsx("button",{type:"button",className:"mini-btn",onClick:()=>he(I),children:"Anzeigen"}):null,r.jsx("button",{type:"button",className:"mini-btn",onClick:()=>q(I),children:"Download"})]})]},I.id))}):null]})]}),r.jsxs("div",{className:"full",style:{display:"flex",gap:10,flexWrap:"wrap"},children:[r.jsx("button",{className:"btn",type:"submit",disabled:w||v,children:w?"Speichern...":s?"Speichern":"Erstellen"}),r.jsx("button",{className:"btn secondary",type:"button",onClick:fe,disabled:w||v,children:v?"Verwerfe...":"Abbrechen"}),j?r.jsx("div",{className:"helper-text",style:{flexBasis:"100%"},children:"Dieser Beschluss wurde für die Abstimmung vorläufig gespeichert. Beim Abbrechen wird er wieder gelöscht."}):null]})]})]})}):null,T?r.jsx("div",{className:"vote-modal-backdrop",onClick:()=>M(!1),children:r.jsxs("div",{className:"vote-modal-panel",role:"dialog","aria-modal":"true",onClick:I=>I.stopPropagation(),children:[r.jsxs("div",{className:"vote-modal-header",children:[r.jsxs("div",{children:[r.jsx("h2",{style:{margin:0},children:"Abstimmung"}),r.jsxs("p",{className:"modal-subtitle",children:[(ne=z==null?void 0:z.decision)!=null&&ne.decision_number?`${z.decision.decision_number} – `:"",((ye=z==null?void 0:z.decision)==null?void 0:ye.title)||o.title]}),r.jsxs("p",{className:"modal-subtitle",children:[(Pn=z==null?void 0:z.decision)!=null&&Pn.committee_name?`Gremium: ${z.decision.committee_name}`:"Kein Gremium zugeordnet",(Ci=z==null?void 0:z.decision)!=null&&Ci.meeting_number?` · Sitzung: ${z.decision.meeting_number}`:""]})]}),r.jsx("button",{className:"modal-close",type:"button",onClick:()=>M(!1),"aria-label":"Schließen",children:"×"})]}),X?r.jsx("div",{className:"alert error",children:X}):null,$?r.jsx("div",{className:"helper-text",children:"Abstimmung wird geladen..."}):null,r.jsxs("div",{style:{display:"flex",justifyContent:"space-between",gap:12,flexWrap:"wrap",marginBottom:14},children:[r.jsx("span",{className:`vote-status ${(Rs=z==null?void 0:z.decision)!=null&&Rs.voting_open?"open":"closed"}`,children:(Os=z==null?void 0:z.decision)!=null&&Os.voting_open?"Abstimmung geöffnet":"Abstimmung geschlossen"}),r.jsxs("span",{className:"helper-text",children:["Stimmberechtigte: ",(z==null?void 0:z.eligible_voter_count)??0," · Abgegeben: ",(z==null?void 0:z.total_votes)??0]})]}),r.jsxs("div",{className:"vote-count-row",children:[r.jsxs("div",{className:"vote-summary-item",children:[r.jsx("span",{children:"Ja"}),r.jsx("strong",{children:((Is=z==null?void 0:z.counts)==null?void 0:Is.yes)??o.votes_yes??0})]}),r.jsxs("div",{className:"vote-summary-item",children:[r.jsx("span",{children:"Nein"}),r.jsx("strong",{children:((Ls=z==null?void 0:z.counts)==null?void 0:Ls.no)??o.votes_no??0})]}),r.jsxs("div",{className:"vote-summary-item",children:[r.jsx("span",{children:"Enthaltung"}),r.jsx("strong",{children:((Ms=z==null?void 0:z.counts)==null?void 0:Ms.abstain)??o.votes_abstain??0})]}),r.jsxs("div",{className:"vote-summary-item",children:[r.jsx("span",{children:"Gesamt"}),r.jsx("strong",{children:(z==null?void 0:z.total_votes)??0})]})]}),r.jsxs("div",{className:"vote-self-actions",children:[r.jsx("button",{className:`vote-choice ${(z==null?void 0:z.current_user_vote)==="yes"?"active":""}`,type:"button",disabled:R||!((Fs=z==null?void 0:z.decision)!=null&&Fs.voting_open)||!(z!=null&&z.current_user_can_vote),onClick:()=>U("yes"),children:"Ja"}),r.jsx("button",{className:`vote-choice ${(z==null?void 0:z.current_user_vote)==="no"?"active":""}`,type:"button",disabled:R||!(($s=z==null?void 0:z.decision)!=null&&$s.voting_open)||!(z!=null&&z.current_user_can_vote),onClick:()=>U("no"),children:"Nein"}),r.jsx("button",{className:`vote-choice ${(z==null?void 0:z.current_user_vote)==="abstain"?"active":""}`,type:"button",disabled:R||!((qs=z==null?void 0:z.decision)!=null&&qs.voting_open)||!(z!=null&&z.current_user_can_vote),onClick:()=>U("abstain"),children:"Enthaltung"})]}),z!=null&&z.current_user_can_vote?null:r.jsx("div",{className:"helper-text",children:"Du bist für dieses Gremium nicht stimmberechtigt oder die Sitzung ist nicht gestartet."}),z!=null&&z.can_manage?r.jsxs("div",{className:"row-actions",style:{margin:"14px 0"},children:[(Vs=z==null?void 0:z.decision)!=null&&Vs.voting_open?r.jsx("button",{className:"btn secondary",type:"button",onClick:B,disabled:R,children:"Abstimmung schließen"}):r.jsx("button",{className:"btn",type:"button",onClick:E,disabled:R,children:"Abstimmung starten"}),r.jsx("button",{className:"btn secondary",type:"button",onClick:()=>{var I;return V((s==null?void 0:s.id)||((I=z==null?void 0:z.decision)==null?void 0:I.id))},disabled:$||R,children:"Aktualisieren"})]}):null,r.jsxs("div",{className:"vote-list",children:[((z==null?void 0:z.eligible_voters)||[]).map(I=>r.jsxs("div",{className:"vote-row",children:[r.jsxs("div",{children:[r.jsx("strong",{children:I.full_name||I.email||`Benutzer ${I.id}`}),r.jsxs("div",{className:"vote-user-meta",children:[I.email||"ohne E-Mail",I.voted_at?` · ${mp(I.voted_at)}`:""]})]}),r.jsx("span",{className:"vote-pill",children:I.vote_value==="yes"?"Ja":I.vote_value==="no"?"Nein":I.vote_value==="abstain"?"Enthaltung":"offen"})]},I.id)),z&&!(z.eligible_voters||[]).length?r.jsx("div",{className:"helper-text",children:"Keine stimmberechtigten Mitglieder für dieses Gremium gefunden."}):null]})]})}):null]})}const Fv=[{value:"offen",label:"Offen"},{value:"in_bearbeitung",label:"In Bearbeitung"},{value:"wartet",label:"Wartet"},{value:"erledigt",label:"Erledigt"},{value:"abgebrochen",label:"Abgebrochen"}],$v=[{value:"sehr_hoch",label:"Sehr hoch"},{value:"hoch",label:"Hoch"},{value:"mittel",label:"Mittel"},{value:"niedrig",label:"Niedrig"}],qv=[{value:"intern",label:"Intern"},{value:"vertraulich",label:"Vertraulich"},{value:"streng_vertraulich",label:"Streng vertraulich"}];function tc(){return{title:"",description:"",status:"offen",priority:"mittel",assigned_user_id:"",backup_user_id:"",committee_id:"",case_id:"",meeting_id:"",agenda_item_id:"",decision_id:"",due_date:"",confidentiality_level:"intern"}}function K2(e){if(!e)return"";const t=new Date(e);return Number.isNaN(t.getTime())?String(e):t.toLocaleString("de-DE")}function W2(e){return{title:e.title??"",description:e.description??"",status:e.status??"offen",priority:e.priority??"mittel",assigned_user_id:e.assigned_user_id?String(e.assigned_user_id):"",backup_user_id:e.backup_user_id?String(e.backup_user_id):"",committee_id:e.committee_id?String(e.committee_id):"",case_id:e.case_id?String(e.case_id):"",meeting_id:e.meeting_id?String(e.meeting_id):"",agenda_item_id:e.agenda_item_id?String(e.agenda_item_id):"",decision_id:e.decision_id?String(e.decision_id):"",due_date:e.due_date?String(e.due_date).slice(0,16):"",confidentiality_level:e.confidentiality_level??"intern"}}function G2({open:e,selected:t,form:n,setForm:i,users:s,committees:a,meetings:o,agendaItems:l,decisions:c,cases:u,startedMeeting:m,onClose:d,onSubmit:h,loading:x,error:g}){if(!e)return null;const p=m?l.filter(_=>String(_.meeting_id||"")===String(m.id)):[],w=n.meeting_id?l.filter(_=>String(_.meeting_id||"")===String(n.meeting_id)):[],b=c.filter(_=>n.meeting_id&&String(_.meeting_id||"")===String(n.meeting_id)||n.case_id&&String(_.case_id||"")===String(n.case_id)||n.decision_id&&String(_.id)===String(n.decision_id)?!0:!n.meeting_id&&!n.case_id);function v(){if(!m)return;const _=p[0]||null;i(S=>({...S,meeting_id:String(m.id),agenda_item_id:_!=null&&_.id?String(_.id):S.agenda_item_id,case_id:_!=null&&_.case_id?String(_.case_id):S.case_id,decision_id:_!=null&&_.decision_id?String(_.decision_id):S.decision_id}))}function y(_){const S=l.find(P=>String(P.meeting_id||"")===String(_))||null;i(P=>({...P,meeting_id:_,agenda_item_id:S!=null&&S.id?String(S.id):"",case_id:S!=null&&S.case_id?String(S.case_id):P.case_id,decision_id:S!=null&&S.decision_id?String(S.decision_id):P.decision_id}))}function j(_){const S=l.find(P=>String(P.id)===String(_));if(!S){i(P=>({...P,agenda_item_id:""}));return}i(P=>({...P,agenda_item_id:String(S.id),meeting_id:S.meeting_id?String(S.meeting_id):P.meeting_id,case_id:S.case_id?String(S.case_id):P.case_id,decision_id:S.decision_id?String(S.decision_id):P.decision_id}))}function k(_){const S=c.find(P=>String(P.id)===String(_));i(P=>({...P,decision_id:_,case_id:S!=null&&S.case_id?String(S.case_id):P.case_id,meeting_id:S!=null&&S.meeting_id?String(S.meeting_id):P.meeting_id}))}function N(_){const S=u.find(P=>String(P.id)===String(_));return S?`${S.case_number||S.id} – ${S.title||""}`:_||"Wird automatisch übernommen"}return r.jsx("div",{className:"modal-backdrop",onClick:d,children:r.jsxs("div",{className:"modal-panel",onClick:_=>_.stopPropagation(),children:[r.jsxs("div",{className:"modal-header",children:[r.jsxs("div",{children:[r.jsx("h2",{style:{margin:0},children:t?"Aufgabe bearbeiten":"Neue Aufgabe anlegen"}),r.jsx("p",{className:"modal-subtitle",children:"Status, Priorität, Vertraulichkeit und Zuordnungen werden vollständig im Modal gepflegt."})]}),r.jsx("button",{className:"modal-close",type:"button",onClick:d,"aria-label":"Schließen",children:"×"})]}),g?r.jsx("div",{className:"alert error",children:g}):null,r.jsxs("form",{className:"form-grid",onSubmit:h,children:[r.jsxs("div",{className:"row-actions",style:{gridColumn:"1 / -1",marginBottom:4},children:[r.jsx("button",{className:"btn secondary",type:"button",onClick:v,disabled:!m,children:"Gestartete Sitzung übernehmen"}),m?r.jsxs("span",{className:"field-hint",children:["Aktiv: ",m.meeting_number||m.id,m.title?` – ${m.title}`:""]}):r.jsx("span",{className:"field-hint",children:"Keine gestartete Sitzung gefunden."})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Titel"}),r.jsx("input",{className:"input",value:n.title,onChange:_=>i(S=>({...S,title:_.target.value}))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Status"}),r.jsx("select",{className:"input",value:n.status,onChange:_=>i(S=>({...S,status:_.target.value})),children:Fv.map(_=>r.jsx("option",{value:_.value,children:_.label},_.value))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Priorität"}),r.jsx("select",{className:"input",value:n.priority,onChange:_=>i(S=>({...S,priority:_.target.value})),children:$v.map(_=>r.jsx("option",{value:_.value,children:_.label},_.value))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Vertraulichkeit"}),r.jsx("select",{className:"input",value:n.confidentiality_level,onChange:_=>i(S=>({...S,confidentiality_level:_.target.value})),children:qv.map(_=>r.jsx("option",{value:_.value,children:_.label},_.value))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Sitzung"}),r.jsxs("select",{className:"input",value:n.meeting_id,onChange:_=>y(_.target.value),children:[r.jsx("option",{value:"",children:"Keine Sitzung"}),o.map(_=>r.jsxs("option",{value:_.id,children:[_.meeting_number||_.id,_.title?` – ${_.title}`:"",_.status?` (${_.status})`:""]},_.id))]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"TOP aus aktiver/gewählter Sitzung"}),r.jsxs("select",{className:"input",value:n.agenda_item_id,onChange:_=>j(_.target.value),children:[r.jsx("option",{value:"",children:"Kein TOP"}),w.map(_=>r.jsxs("option",{value:_.id,children:[_.title,_.case_number?` – ${_.case_number}`:_.case_id?` – Vorgang ${_.case_id}`:""]},_.id))]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Beschluss"}),r.jsxs("select",{className:"input",value:n.decision_id,onChange:_=>k(_.target.value),children:[r.jsx("option",{value:"",children:"Kein Beschluss"}),b.map(_=>r.jsx("option",{value:_.id,children:_.title||`Beschluss ${_.id}`},_.id))]}),r.jsx("div",{className:"field-hint",children:"Beim Speichern wird die Aufgabe mit dem gewählten TOP und optionalem Beschluss verknüpft."})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Vorgang"}),r.jsx("input",{className:"input",value:N(n.case_id),readOnly:!0}),r.jsx("div",{className:"field-hint",children:"Wird aus TOP, Beschluss oder gestarteter Sitzung übernommen."})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Fällig am"}),r.jsx("input",{className:"input",type:"datetime-local",value:n.due_date,onChange:_=>i(S=>({...S,due_date:_.target.value}))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Primär zugewiesen an"}),r.jsxs("select",{className:"input",value:n.assigned_user_id,onChange:_=>i(S=>({...S,assigned_user_id:_.target.value})),children:[r.jsx("option",{value:"",children:"Kein Benutzer"}),s.map(_=>r.jsx("option",{value:_.id,children:_.full_name},_.id))]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Stellvertretung"}),r.jsxs("select",{className:"input",value:n.backup_user_id,onChange:_=>i(S=>({...S,backup_user_id:_.target.value})),children:[r.jsx("option",{value:"",children:"Keine Stellvertretung"}),s.map(_=>r.jsx("option",{value:_.id,children:_.full_name},_.id))]}),r.jsx("div",{className:"field-hint",children:"Mehrfachzuweisung ist hier über primäre Zuweisung, Stellvertretung und optionales Gremium abgebildet."})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Gremium"}),r.jsxs("select",{className:"input",value:n.committee_id,onChange:_=>i(S=>({...S,committee_id:_.target.value})),children:[r.jsx("option",{value:"",children:"Kein Gremium"}),a.map(_=>r.jsx("option",{value:_.id,children:_.name},_.id))]})]}),r.jsxs("label",{style:{gridColumn:"1 / -1"},children:[r.jsx("span",{children:"Beschreibung"}),r.jsx("textarea",{className:"input textarea",style:{minHeight:200},value:n.description,onChange:_=>i(S=>({...S,description:_.target.value}))})]}),r.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:10,gridColumn:"1 / -1"},children:[r.jsx("button",{className:"btn secondary",type:"button",onClick:d,children:"Abbrechen"}),r.jsx("button",{className:"btn",type:"submit",disabled:x,children:x?"Speichern...":t?"Speichern":"Erstellen"})]})]})]})})}function X2(){const[e,t]=f.useState([]),[n,i]=f.useState([]),[s,a]=f.useState([]),[o,l]=f.useState([]),[c,u]=f.useState([]),[m,d]=f.useState([]),[h,x]=f.useState([]),[g,p]=f.useState(null),[w,b]=f.useState(tc()),[v,y]=f.useState(""),[j,k]=f.useState(""),[N,_]=f.useState(""),[S,P]=f.useState(""),[D,F]=f.useState(!1),[T,M]=f.useState(null),[z,A]=f.useState(!1),$=f.useMemo(()=>o.find(Y=>String(Y.status||"").toLowerCase()==="gestartet")||null,[o]),Z=f.useMemo(()=>Object.fromEntries(n.map(Y=>[String(Y.id),Y])),[n]),R=f.useMemo(()=>Object.fromEntries(s.map(Y=>[String(Y.id),Y])),[s]),K=f.useMemo(()=>Object.fromEntries(o.map(Y=>[String(Y.id),Y])),[o]),X=f.useMemo(()=>Object.fromEntries(h.map(Y=>[String(Y.id),Y])),[h]),ae=f.useMemo(()=>{const Y=v.trim().toLowerCase();return Y?e.filter(fe=>JSON.stringify(fe).toLowerCase().includes(Y)):e},[e,v]);async function J(){var V;_("");const[Y,fe,Se,he,q,re,me]=await Promise.allSettled([O.get("/tasks"),O.get("/users"),O.get("/committees"),O.get("/meetings"),O.get("/agenda-items?include_assigned=true"),O.get("/decisions"),O.get("/cases")]);Y.status==="fulfilled"?t(Array.isArray(Y.value)?Y.value:[]):_(((V=Y.reason)==null?void 0:V.message)||"Aufgaben konnten nicht geladen werden."),i(fe.status==="fulfilled"&&Array.isArray(fe.value)?fe.value.filter(te=>te.is_active!==!1):[]),a(Se.status==="fulfilled"&&Array.isArray(Se.value)?Se.value:[]),l(he.status==="fulfilled"&&Array.isArray(he.value)?he.value:[]),u(q.status==="fulfilled"&&Array.isArray(q.value)?q.value:[]),d(re.status==="fulfilled"&&Array.isArray(re.value)?re.value:[]),x(me.status==="fulfilled"&&Array.isArray(me.value)?me.value:[])}f.useEffect(()=>{J()},[]);function ue(){const Y=tc();if($){Y.meeting_id=String($.id);const fe=c.find(Se=>String(Se.meeting_id||"")===String($.id))||null;fe&&(Y.agenda_item_id=fe.id?String(fe.id):"",Y.case_id=fe.case_id?String(fe.case_id):"",Y.decision_id=fe.decision_id?String(fe.decision_id):"")}p(null),b(Y),P(""),k(""),_(""),A(!0)}function pe(Y){p(Y),b(W2(Y)),P(""),k(""),_(""),A(!0)}function ee(){p(null),b(tc()),P(""),A(!1)}async function le(Y){if(Y.preventDefault(),P(""),k(""),!w.title.trim()){P("Bitte einen Titel eingeben.");return}F(!0);try{const fe={title:w.title.trim(),description:w.description.trim()||null,status:w.status,priority:w.priority,assigned_user_id:w.assigned_user_id?Number(w.assigned_user_id):null,backup_user_id:w.backup_user_id?Number(w.backup_user_id):null,case_id:w.case_id?Number(w.case_id):null,meeting_id:w.meeting_id?Number(w.meeting_id):null,agenda_item_id:w.agenda_item_id?Number(w.agenda_item_id):null,decision_id:w.decision_id?Number(w.decision_id):null,due_date:w.due_date||null,confidentiality_level:w.confidentiality_level,committee_id:w.committee_id?Number(w.committee_id):null};g!=null&&g.id?(await O.put(`/tasks/${g.id}`,fe),k("Aufgabe gespeichert")):(await O.post("/tasks",fe),k("Aufgabe erstellt")),await J(),ee()}catch(fe){P(fe.message||"Aufgabe konnte nicht gespeichert werden.")}finally{F(!1)}}async function ge(Y){_(""),k(""),M(Y.id);try{await O.delete(`/tasks/${Y.id}`),(g==null?void 0:g.id)===Y.id&&ee(),await J(),k("Aufgabe gelöscht")}catch(fe){_(fe.message||"Aufgabe konnte nicht gelöscht werden.")}finally{M(null)}}return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .modal-backdrop { + position: fixed; + inset: 0; + background: rgba(15, 23, 42, 0.55); + display: flex; + align-items: center; + justify-content: center; + padding: 16px; + z-index: 1000; + } + + .modal-panel { + width: min(1040px, 100%); + max-height: 92vh; + overflow: auto; + border-radius: 18px; + background: rgba(255, 255, 255, 0.74); + backdrop-filter: blur(18px); + -webkit-backdrop-filter: blur(18px); + border: 1px solid rgba(255, 255, 255, 0.24); + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25); + padding: 18px; + } + + .modal-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 16px; + margin-bottom: 16px; + } + + .modal-subtitle { + margin: 6px 0 0; + opacity: 0.75; + font-size: 0.95rem; + } + + .modal-close { + border: 0; + background: transparent; + font-size: 28px; + line-height: 1; + cursor: pointer; + padding: 4px 8px; + } + `}),r.jsxs(de,{title:"Aufgaben",subtitle:"Aufgaben werden im Modal angelegt und können direkt mit gestarteter Sitzung, TOP, Beschluss, Benutzern und Gremium verknüpft werden.",actions:r.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",flexWrap:"wrap"},children:[r.jsx("input",{className:"input search",placeholder:"Suchen...",value:v,onChange:Y=>y(Y.target.value)}),r.jsx("button",{className:"btn",type:"button",onClick:ue,children:"Neue Aufgabe"})]}),children:[N?r.jsx("div",{className:"alert error",children:N}):null,j?r.jsx("div",{className:"alert success",children:j}):null,D&&!e.length?r.jsx("div",{className:"field-hint",children:"Aufgaben werden geladen…"}):null,r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"ID"}),r.jsx("th",{children:"Titel"}),r.jsx("th",{children:"Status"}),r.jsx("th",{children:"Priorität"}),r.jsx("th",{children:"Fällig"}),r.jsx("th",{children:"Sitzung"}),r.jsx("th",{children:"Vorgang"}),r.jsx("th",{children:"Benutzer/Gremium"}),r.jsx("th",{children:"Vertraulichkeit"}),r.jsx("th",{children:"Aktionen"})]})}),r.jsxs("tbody",{children:[ae.map(Y=>{var me,V,te;const fe=Z[String(Y.assigned_user_id||"")],Se=Z[String(Y.backup_user_id||"")],he=R[String(Y.committee_id||"")],q=K[String(Y.meeting_id||"")],re=X[String(Y.case_id||"")];return r.jsxs("tr",{children:[r.jsx("td",{children:Y.id}),r.jsx("td",{children:Y.title}),r.jsx("td",{children:((me=Fv.find(Ne=>Ne.value===Y.status))==null?void 0:me.label)||Y.status}),r.jsx("td",{children:((V=$v.find(Ne=>Ne.value===Y.priority))==null?void 0:V.label)||Y.priority}),r.jsx("td",{children:K2(Y.due_date)}),r.jsx("td",{children:q?`${q.meeting_number||q.id}${q.title?` – ${q.title}`:""}`:Y.meeting_id||""}),r.jsx("td",{children:re?`${re.case_number||re.id}${re.title?` – ${re.title}`:""}`:Y.case_number||Y.case_id||""}),r.jsxs("td",{children:[(fe==null?void 0:fe.full_name)||"",Se!=null&&Se.full_name?` / Stv. ${Se.full_name}`:"",he!=null&&he.name?` / ${he.name}`:""]}),r.jsx("td",{children:((te=qv.find(Ne=>Ne.value===Y.confidentiality_level))==null?void 0:te.label)||Y.confidentiality_level}),r.jsxs("td",{className:"row-actions",children:[r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>pe(Y),children:"Bearbeiten"}),r.jsx("button",{className:"mini-btn danger",type:"button",disabled:T===Y.id,onClick:()=>ge(Y),children:"Löschen"})]})]},Y.id)}),ae.length===0?r.jsx("tr",{children:r.jsx("td",{colSpan:10,children:"Keine Aufgaben gefunden."})}):null]})]})})]}),r.jsx(G2,{open:z,selected:g,form:w,setForm:b,users:n,committees:s,meetings:o,agendaItems:c,decisions:m,cases:h,startedMeeting:$,onClose:ee,onSubmit:le,loading:D,error:S})]})}const Q2=[{value:"oeffentlich",label:"Öffentlich"},{value:"intern",label:"Intern"},{value:"vertraulich",label:"Vertraulich"},{value:"streng_vertraulich",label:"Streng vertraulich"}];function ya(e=""){return{file:null,document_number:"",title:"",document_type:"intern",description:"",confidentiality_level:"intern",document_category_id:"",meeting_id:e?String(e):"",enable_versioning:!1,version_of_id:"",team_role_ids:[]}}function Z2(e){return{file:null,document_number:e.document_number??"",title:e.title??"",document_type:e.document_type??"intern",description:e.description??"",confidentiality_level:e.confidentiality_level??"intern",document_category_id:e.document_category_id?String(e.document_category_id):"",meeting_id:e.meeting_id?String(e.meeting_id):"",enable_versioning:!1,version_of_id:"",team_role_ids:Array.isArray(e.team_role_ids)?e.team_role_ids.map(String):[]}}function Vv(e){if(!e)return"";const t=new Date(e);return Number.isNaN(t.getTime())?"":t.toLocaleString("de-DE")}function Y2({open:e,selected:t,form:n,setForm:i,loading:s,activeMeeting:a,error:o,versionTargets:l,teamRoles:c,categories:u,onClose:m,onSubmit:d}){if(!e)return null;const h=l.find(g=>String(g.id)===String(n.version_of_id)),x=t?t.document_number||"":n.enable_versioning?(h==null?void 0:h.document_number)||"Bitte Basisdokument wählen":"wird automatisch vergeben";return r.jsx("div",{className:"modal-backdrop",onClick:m,children:r.jsxs("div",{className:"modal-panel",onClick:g=>g.stopPropagation(),children:[r.jsxs("div",{className:"modal-header",children:[r.jsxs("div",{children:[r.jsx("h2",{style:{margin:0},children:t?"Dokument bearbeiten":"Dokument anlegen"}),r.jsx("p",{className:"modal-subtitle",children:t?"Titel, Beschreibung und Vertraulichkeit der ausgewählten Version bearbeiten.":"Dokumentennummer wird automatisch vergeben. Auf Wunsch kann eine neue Version zu einem bestehenden Dokument angelegt werden."})]}),r.jsx("button",{className:"modal-close",type:"button",onClick:m,"aria-label":"Schließen",children:"×"})]}),o?r.jsx("div",{className:"alert error",children:o}):null,r.jsxs("form",{className:"form-grid documents-form-grid",onSubmit:d,children:[r.jsxs("label",{children:[r.jsx("span",{children:"Dokumentennummer"}),r.jsx("input",{className:"input",value:x,disabled:!0}),!t&&n.enable_versioning&&h?r.jsxs("div",{className:"helper-text",children:["Neue Version für ",h.title]}):null]}),r.jsxs("label",{children:[r.jsx("span",{children:"Titel"}),r.jsx("input",{className:"input",value:n.title,onChange:g=>i(p=>({...p,title:g.target.value}))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Kategorie"}),r.jsxs("select",{className:"input",value:n.document_category_id,onChange:g=>i(p=>({...p,document_category_id:g.target.value})),children:[r.jsx("option",{value:"",children:"Keine Kategorie"}),(u||[]).map(g=>r.jsx("option",{value:g.id,children:g.label},g.id))]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Vertraulichkeit"}),r.jsx("select",{className:"input",value:n.confidentiality_level,onChange:g=>i(p=>({...p,confidentiality_level:g.target.value})),children:Q2.map(g=>r.jsx("option",{value:g.value,children:g.label},g.value))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Sitzungs-ID"}),r.jsx("input",{className:"input",value:n.meeting_id,onChange:g=>i(p=>({...p,meeting_id:g.target.value.replace(/[^\d]/g,"")})),placeholder:a?String(a.id):"leer"}),r.jsx("div",{className:"helper-text",children:a?`Aktive Sitzung: ${a.meeting_number||a.id} – ${a.title||""}`:"Keine aktive Sitzung vorhanden."})]}),t?null:r.jsxs("label",{className:"full checkbox-card",children:[r.jsxs("span",{className:"checkbox-row",children:[r.jsx("input",{type:"checkbox",checked:n.enable_versioning,onChange:g=>i(p=>({...p,enable_versioning:g.target.checked,version_of_id:g.target.checked?p.version_of_id:""}))}),r.jsx("span",{children:"Versionierung einschalten"})]}),r.jsx("div",{className:"helper-text",children:"Wenn aktiviert, wird eine neue Version zu einem vorhandenen Dokument angelegt."})]}),!t&&n.enable_versioning?r.jsxs("label",{className:"full",children:[r.jsx("span",{children:"Basisdokument"}),r.jsxs("select",{className:"input",value:n.version_of_id,onChange:g=>i(p=>({...p,version_of_id:g.target.value})),children:[r.jsx("option",{value:"",children:"Bitte auswählen"}),l.map(g=>r.jsxs("option",{value:g.id,children:[g.document_number," · ",g.title," · aktuell v",g.version_number]},g.id))]})]}):null,r.jsxs("label",{children:[r.jsx("span",{children:t?"Neue Datei als neue Version":"Datei auswählen"}),r.jsx("input",{className:"input",type:"file",onChange:g=>i(p=>{var w,b,v;return{...p,file:((w=g.target.files)==null?void 0:w[0])||null,title:!t&&!p.title?((v=(b=g.target.files)==null?void 0:b[0])==null?void 0:v.name)||"":p.title}})}),t?r.jsx("div",{className:"helper-text",children:"Wenn hier eine Datei gewählt wird, wird beim Speichern automatisch eine neue Version angelegt."}):null]}),t?r.jsxs("div",{className:"full file-info-block",children:[r.jsx("span",{children:"Aktuelle Datei"}),r.jsx("div",{className:"helper-text",children:t.file_name||t.title||"Datei"}),r.jsxs("div",{className:"helper-text",children:["Version: v",t.version_number||1]}),t.uploaded_at?r.jsxs("div",{className:"helper-text",children:["Hochgeladen: ",Vv(t.uploaded_at)]}):null,t.uploaded_by_name?r.jsxs("div",{className:"helper-text",children:["Von: ",t.uploaded_by_name]}):null,n.file?r.jsxs("div",{className:"helper-text",children:["Neue Datei gewählt: ",n.file.name]}):null]}):null,r.jsxs("label",{children:[r.jsx("span",{children:"Dokumentart"}),r.jsx("input",{className:"input",value:n.document_type,onChange:g=>i(p=>({...p,document_type:g.target.value}))})]}),r.jsxs("div",{className:"full",children:[r.jsx("span",{children:"Teamrollen mit Dokument-Zugriff"}),r.jsx("div",{className:"permission-list",children:(c||[]).map(g=>{const p=String(g.id),w=n.team_role_ids.includes(p);return r.jsxs("label",{className:"permission-check",children:[r.jsx("input",{type:"checkbox",checked:w,onChange:()=>{const b=new Set(n.team_role_ids);b.has(p)?b.delete(p):b.add(p),i(v=>({...v,team_role_ids:Array.from(b)}))}}),r.jsx("span",{children:g.name})]},g.id)})}),r.jsx("div",{className:"helper-text",children:"Diese Teamrollen erhalten Lesezugriff auf dieses Dokument. Chair und Upload-Benutzer sehen das Dokument immer."})]}),r.jsxs("label",{className:"full",children:[r.jsx("span",{children:"Beschreibung"}),r.jsx("textarea",{className:"input textarea",value:n.description,onChange:g=>i(p=>({...p,description:g.target.value}))})]}),r.jsxs("div",{className:"full documents-modal-actions",children:[r.jsx("button",{className:"btn secondary",type:"button",onClick:m,children:"Abbrechen"}),r.jsx("button",{className:"btn",type:"submit",disabled:s,children:t?n.file?"Neue Version hochladen":"Speichern":n.enable_versioning?"Neue Version erstellen":"Erstellen"})]})]})]})})}function J2({open:e,row:t,items:n,loading:i,error:s,onClose:a,onView:o,onDownload:l}){return e?r.jsx("div",{className:"modal-backdrop",onClick:a,children:r.jsxs("div",{className:"modal-panel",onClick:c=>c.stopPropagation(),children:[r.jsxs("div",{className:"modal-header",children:[r.jsxs("div",{children:[r.jsx("h2",{style:{margin:0},children:"Versionen anzeigen"}),r.jsx("p",{className:"modal-subtitle",children:t?`${t.document_number} · ${t.title}`:"Dokumentversionen"})]}),r.jsx("button",{className:"modal-close",type:"button",onClick:a,"aria-label":"Schließen",children:"×"})]}),s?r.jsx("div",{className:"alert error",children:s}):null,i?r.jsx("div",{className:"helper-text",children:"Versionen werden geladen …"}):null,i?null:r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"Version"}),r.jsx("th",{children:"Datei"}),r.jsx("th",{children:"Hochgeladen"}),r.jsx("th",{children:"Von"}),r.jsx("th",{children:"Aktionen"})]})}),r.jsxs("tbody",{children:[n.map(c=>r.jsxs("tr",{children:[r.jsxs("td",{children:["v",c.version_number||1]}),r.jsx("td",{children:c.file_name||c.title||""}),r.jsx("td",{children:Vv(c.uploaded_at)}),r.jsx("td",{children:c.uploaded_by_name||""}),r.jsxs("td",{className:"row-actions",children:[r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>o(c),children:"Anzeigen"}),r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>l(c),children:"Download"})]})]},c.id)),n.length?null:r.jsx("tr",{children:r.jsx("td",{colSpan:5,children:"Keine Versionen gefunden"})})]})]})})]})}):null}function eC(){const[e,t]=f.useState([]),[n,i]=f.useState(null),[s,a]=f.useState(null),[o,l]=f.useState(ya()),[c,u]=f.useState(""),[m,d]=f.useState(""),[h,x]=f.useState(""),[g,p]=f.useState(""),[w,b]=f.useState(!1),[v,y]=f.useState(null),[j,k]=f.useState(!1),[N,_]=f.useState(!1),[S,P]=f.useState(null),[D,F]=f.useState([]),[T,M]=f.useState(!1),[z,A]=f.useState(""),[$,Z]=f.useState([]),[R,K]=f.useState([]),[X,ae]=f.useState("");async function J(){x("");try{const[V,te]=await Promise.all([O.get("/documents"),O.get("/documents/meta")]);t(Array.isArray(V)?V:[]);const Ne=(te==null?void 0:te.activeMeeting)||null;i(Ne),Z(Array.isArray(te==null?void 0:te.teamRoles)?te.teamRoles:[]),K(Array.isArray(te==null?void 0:te.categories)?te.categories:[]),l(Xe=>s!=null&&s.id||j?Xe:{...Xe,meeting_id:Ne!=null&&Ne.id?String(Ne.id):""})}catch(V){x(V.message||"Dokumente konnten nicht geladen werden.")}}f.useEffect(()=>{J()},[]);const ue=f.useMemo(()=>{const V=c.trim().toLowerCase();return e.filter(te=>X&&String(te.document_category_id||"")!==String(X)?!1:V?JSON.stringify(te).toLowerCase().includes(V):!0)},[e,c,X]),pe=f.useMemo(()=>[...e].sort((V,te)=>{const Ne=`${V.document_number||""} ${V.title||""}`.toLowerCase(),Xe=`${te.document_number||""} ${te.title||""}`.toLowerCase();return Ne.localeCompare(Xe,"de")}),[e]);function ee(){a(null),l(ya(n!=null&&n.id?String(n.id):"")),p(""),x(""),d(""),k(!0)}function le(V){a(V),l(Z2(V)),p(""),x(""),d(""),k(!0)}function ge(V){a(null),l({...ya(V.meeting_id?String(V.meeting_id):n!=null&&n.id?String(n.id):""),title:V.title??"",document_type:V.document_type??"intern",description:V.description??"",confidentiality_level:V.confidentiality_level??"intern",document_category_id:V.document_category_id?String(V.document_category_id):"",enable_versioning:!0,version_of_id:String(V.id),team_role_ids:Array.isArray(V.team_role_ids)?V.team_role_ids.map(String):[]}),p(""),x(""),d(""),k(!0)}function Y(){k(!1),a(null),l(ya(n!=null&&n.id?String(n.id):"")),p("")}async function fe(V){P(V),F([]),A(""),M(!0),_(!0);try{const te=await O.get(`/documents/${V.id}/versions`);F(Array.isArray(te==null?void 0:te.items)?te.items:[])}catch(te){A(te.message||"Versionen konnten nicht geladen werden.")}finally{M(!1)}}function Se(){_(!1),P(null),F([]),A("")}async function he(V){if(V.preventDefault(),p(""),d(""),!o.title.trim()){p("Bitte einen Titel eingeben.");return}if(!s&&o.enable_versioning&&!o.version_of_id){p("Bitte ein Basisdokument für die Versionierung auswählen.");return}b(!0);try{if(s!=null&&s.id&&o.file){const te=new FormData;te.append("file",o.file),te.append("title",o.title.trim()),te.append("document_type",o.document_type||"intern"),te.append("description",o.description.trim()),te.append("confidentiality_level",o.confidentiality_level),o.document_category_id&&te.append("document_category_id",o.document_category_id),o.meeting_id&&te.append("meeting_id",o.meeting_id),te.append("version_of_id",String(s.id)),te.append("team_role_ids",JSON.stringify(o.team_role_ids.map(Number))),await O.post("/documents/upload",te),d("Neue Dokumentversion erstellt")}else if(s!=null&&s.id){const te={title:o.title.trim(),document_type:o.document_type||"intern",description:o.description.trim()||null,confidentiality_level:o.confidentiality_level,document_category_id:o.document_category_id?Number(o.document_category_id):null,meeting_id:o.meeting_id?Number(o.meeting_id):null,team_role_ids:o.team_role_ids.map(Number)};await O.put(`/documents/${s.id}`,te),d("Dokument gespeichert")}else{if(!o.file){p("Bitte eine Datei auswählen."),b(!1);return}const te=new FormData;te.append("file",o.file),te.append("title",o.title.trim()),te.append("document_type",o.document_type||"intern"),te.append("description",o.description.trim()),te.append("confidentiality_level",o.confidentiality_level),o.document_category_id&&te.append("document_category_id",o.document_category_id),o.meeting_id&&te.append("meeting_id",o.meeting_id),o.enable_versioning&&o.version_of_id&&te.append("version_of_id",o.version_of_id),te.append("team_role_ids",JSON.stringify(o.team_role_ids.map(Number))),await O.post("/documents/upload",te),d(o.enable_versioning?"Neue Dokumentversion erstellt":"Dokument erstellt")}await J(),Y()}catch(te){p(te.message||"Dokument konnte nicht gespeichert werden.")}finally{b(!1)}}async function q(V){x(""),d(""),y(V.id);try{await O.delete(`/documents/${V.id}`),(s==null?void 0:s.id)===V.id&&Y(),await J(),d("Dokument gelöscht")}catch(te){x(te.message||"Dokument konnte nicht gelöscht werden.")}finally{y(null)}}async function re(V){x("");try{await _i(`/documents/${V.id}/view`)}catch(te){x(te.message||"Dokument konnte nicht angezeigt werden.")}}async function me(V){x("");try{await ji(`/documents/${V.id}/download`,V.file_name||V.title||`dokument-${V.id}`)}catch(te){x(te.message||"Dokument konnte nicht heruntergeladen werden.")}}return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .documents-toolbar { + display: flex; + gap: 12px; + align-items: center; + justify-content: space-between; + flex-wrap: wrap; + } + + .modal-backdrop { + position: fixed; + inset: 0; + background: rgba(15, 23, 42, 0.55); + display: flex; + align-items: center; + justify-content: center; + padding: 16px; + z-index: 1000; + } + + .modal-panel { + width: min(920px, 100%); + max-height: 92vh; + overflow: auto; + border-radius: 18px; + background: rgba(255, 255, 255, 0.74); + backdrop-filter: blur(18px); + -webkit-backdrop-filter: blur(18px); + border: 1px solid rgba(255, 255, 255, 0.24); + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25); + padding: 18px; + } + + .modal-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 16px; + margin-bottom: 16px; + } + + .modal-subtitle { + margin: 6px 0 0; + opacity: 0.75; + font-size: 0.95rem; + } + + .modal-close { + border: 0; + background: transparent; + font-size: 28px; + line-height: 1; + cursor: pointer; + padding: 4px 8px; + } + + .documents-form-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 14px; + } + + .documents-form-grid > label.full, + .documents-form-grid > div.full { + grid-column: 1 / -1; + } + + .helper-text { + margin-top: 6px; + font-size: 0.9rem; + opacity: 0.75; + } + + .documents-modal-actions { + display: flex; + gap: 10px; + justify-content: flex-end; + margin-top: 4px; + } + + .permission-list { + display: grid; + gap: 8px; + } + + .permission-check { + display: flex; + gap: 8px; + align-items: center; + padding: 8px 10px; + border: 1px solid rgba(148, 163, 184, 0.35); + border-radius: 12px; + } + + .checkbox-card { + padding: 10px 12px; + border: 1px solid rgba(148, 163, 184, 0.35); + border-radius: 12px; + } + + .checkbox-row { + display: flex; + gap: 10px; + align-items: center; + } + + .file-info-block { + padding: 10px 12px; + border: 1px solid rgba(148, 163, 184, 0.35); + border-radius: 12px; + } + + .version-button { + border: 0; + background: transparent; + color: inherit; + font: inherit; + cursor: pointer; + padding: 0; + text-decoration: underline; + } + + .version-meta { + display: block; + font-size: 0.85rem; + opacity: 0.7; + } + + @media (max-width: 860px) { + .documents-form-grid { + grid-template-columns: 1fr; + } + + .modal-panel { + padding: 14px; + } + } + `}),r.jsxs(de,{title:"Dokumente",subtitle:"Hier werden alle Dokumente angezeigt. Berichte sind zusätzlich auf der separaten Seite /reports gebündelt.",actions:r.jsxs("div",{className:"documents-toolbar",children:[r.jsx("input",{className:"input search",placeholder:"Suchen...",value:c,onChange:V=>u(V.target.value)}),r.jsxs("select",{className:"input",value:X,onChange:V=>ae(V.target.value),children:[r.jsx("option",{value:"",children:"Alle Kategorien"}),R.map(V=>r.jsx("option",{value:V.id,children:V.label},V.id))]}),r.jsx("button",{className:"btn",type:"button",onClick:ee,children:"Dokument anlegen"})]}),children:[h?r.jsx("div",{className:"alert error",children:h}):null,m?r.jsx("div",{className:"alert success",children:m}):null,r.jsxs("div",{style:{marginBottom:12,opacity:.8},children:["Aktive Sitzung: ",n?`${n.meeting_number||n.id} – ${n.title||""}`:"keine aktive Sitzung"]}),r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"ID"}),r.jsx("th",{children:"Dokument-Nr."}),r.jsx("th",{children:"Version"}),r.jsx("th",{children:"Titel"}),r.jsx("th",{children:"Kategorie"}),r.jsx("th",{children:"Vertraulichkeit"}),r.jsx("th",{children:"Sitzung"}),r.jsx("th",{children:"Datei"}),r.jsx("th",{children:"Scan"}),r.jsx("th",{children:"Hochgeladen"}),r.jsx("th",{children:"Aktionen"})]})}),r.jsxs("tbody",{children:[ue.map(V=>r.jsxs("tr",{children:[r.jsx("td",{children:V.id}),r.jsx("td",{children:V.document_number}),r.jsxs("td",{children:[V.version_count>1?r.jsxs("button",{className:"version-button",type:"button",onClick:()=>fe(V),children:["v",V.version_number||1]}):r.jsxs("span",{children:["v",V.version_number||1]}),V.version_count>1?r.jsxs("span",{className:"version-meta",children:[V.version_count," Versionen"]}):null]}),r.jsx("td",{children:V.title}),r.jsx("td",{children:V.category_label||"—"}),r.jsx("td",{children:V.confidentiality_level}),r.jsx("td",{children:V.meeting_number||V.meeting_id||""}),r.jsx("td",{children:V.file_name||""}),r.jsx("td",{children:V.scan_status}),r.jsx("td",{children:V.uploaded_at?new Date(V.uploaded_at).toLocaleString("de-DE"):""}),r.jsxs("td",{className:"row-actions",children:[r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>le(V),children:"Bearbeiten"}),r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>ge(V),children:"Neue Version"}),r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>re(V),children:"Anzeigen"}),r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>me(V),children:"Download"}),r.jsx("button",{className:"mini-btn danger",type:"button",disabled:v===V.id,onClick:()=>q(V),children:"Löschen"})]})]},V.id)),ue.length?null:r.jsx("tr",{children:r.jsx("td",{colSpan:11,children:"Keine Dokumente vorhanden"})})]})]})})]}),r.jsx(Y2,{open:j,selected:s,form:o,setForm:l,loading:w,activeMeeting:n,error:g,versionTargets:pe,teamRoles:$,categories:R,onClose:Y,onSubmit:he}),r.jsx(J2,{open:N,row:S,items:D,loading:T,error:z,onClose:Se,onView:re,onDownload:me})]})}function nc(){return{entity_type:"agenda_item",entity_id:"",comment_text:"",visibility:"intern"}}function tC(e){return e?new Intl.DateTimeFormat("de-DE",{dateStyle:"short",timeStyle:"short"}).format(new Date(e)):""}function nC(e){return e?new Intl.DateTimeFormat("de-DE",{dateStyle:"medium"}).format(new Date(e)):""}function rC(e){return e==="vertraulich"?"Vertraulich":"Intern"}function iC(e){return{geplant:"Geplant",ungeplant:"Ungeplant",gestartet:"Gestartet",beendet:"Beendet",in_bearbeitung:"In Bearbeitung",rueckfrage:"Rückfrage",klaerung:"Klärung",abgeschlossen:"Abgeschlossen"}[e]||e||"Offen"}function pp(e){if(!e)return"";const t=[];return e.meeting_number&&t.push(`Sitzung ${e.meeting_number}`),e.agenda_number&&t.push(`TOP ${e.agenda_number}`),e.case_number&&t.push(e.case_number),`${t.length?`${t.join(" · ")} · `:""}${e.title||"Ohne Titel"}`}function sC(){const[e,t]=f.useState([]),[n,i]=f.useState([]),[s,a]=f.useState(nc()),[o,l]=f.useState(null),[c,u]=f.useState(!1),[m,d]=f.useState(""),[h,x]=f.useState(""),[g,p]=f.useState(""),[w,b]=f.useState(""),[v,y]=f.useState(!1);async function j(){y(!0),b("");try{const[M,z]=await Promise.all([O.get("/comments"),O.get("/comments/open-agenda-items")]);t(Array.isArray(M)?M:[]),i(Array.isArray(z)?z:[])}catch(M){b(M.message||"Kommentare konnten nicht geladen werden.")}finally{y(!1)}}f.useEffect(()=>{j()},[]),f.useEffect(()=>{if(!c)return;const M=document.body.style.overflow;document.body.style.overflow="hidden";function z(A){A.key==="Escape"&&D()}return window.addEventListener("keydown",z),()=>{document.body.style.overflow=M,window.removeEventListener("keydown",z)}},[c]);const k=f.useMemo(()=>{const M=[...n];return(o==null?void 0:o.entity_type)==="agenda_item"&&o.entity_id&&!M.some(z=>String(z.id)===String(o.entity_id))&&M.unshift({id:o.entity_id,title:o.agenda_item_title||`TOP ${o.entity_id}`,agenda_number:o.agenda_number,meeting_number:o.meeting_number,meeting_date:o.meeting_date,meeting_status:o.meeting_status,case_number:o.case_number,decision_number:o.decision_number,decision_status:o.decision_status}),M},[n,o]),N=f.useMemo(()=>{const M=m.trim().toLowerCase();return e.filter(z=>h&&String(z.entity_id)!==String(h)?!1:M?JSON.stringify(z).toLowerCase().includes(M):!0)},[e,m,h]);function _(M,z){a(A=>({...A,[M]:z}))}function S(){l(null),a({...nc(),entity_id:h||""}),p(""),b(""),u(!0)}function P(M){l(M),a({entity_type:M.entity_type||"agenda_item",entity_id:M.entity_id?String(M.entity_id):"",comment_text:M.comment_text||"",visibility:M.visibility||"intern"}),p(""),b(""),u(!0)}function D(){u(!1),l(null),a(nc()),b("")}async function F(M){if(M.preventDefault(),p(""),b(""),!s.entity_id){b("Bitte einen offenen TOP auswählen.");return}const z={entity_type:"agenda_item",entity_id:Number(s.entity_id),comment_text:s.comment_text,visibility:s.visibility||"intern"};try{o!=null&&o.id?(await O.put(`/comments/${o.id}`,z),p("Kommentar gespeichert.")):(await O.post("/comments",z),p("Kommentar angelegt.")),D(),await j()}catch(A){b(A.message||"Kommentar konnte nicht gespeichert werden.")}}async function T(M){if(window.confirm("Kommentar löschen?")){p(""),b("");try{await O.delete(`/comments/${M.id}`),p("Kommentar gelöscht."),(o==null?void 0:o.id)===M.id&&D(),await j()}catch(z){b(z.message||"Kommentar konnte nicht gelöscht werden.")}}}return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .comments-grid { display: grid; gap: 18px; } + .comments-toolbar { display: flex; gap: 10px; flex-wrap: wrap; align-items: end; margin-bottom: 14px; } + .comments-toolbar label { min-width: 220px; } + .comments-badge { display: inline-flex; align-items: center; border-radius: 999px; padding: 4px 9px; font-size: .82rem; font-weight: 800; background: rgba(37,99,235,.1); color: #1d4ed8; } + .comments-badge.confidential { background: #fff7ed; color: #9a3412; } + .comments-muted { color: var(--muted); } + .comments-text { white-space: pre-wrap; line-height: 1.5; } + .comments-form-note { margin: 0; color: var(--muted); line-height: 1.45; } + .comments-modal-backdrop { + position: fixed; + inset: 0; + z-index: 1000; + display: grid; + place-items: center; + padding: 24px; + background: rgba(15, 23, 42, 0.62); + backdrop-filter: blur(2px); + } + .comments-modal-panel { + width: min(760px, 96vw); + max-height: min(92vh, 920px); + overflow: hidden; + display: flex; + flex-direction: column; + border-radius: 22px; + background: #ffffff; + color: #0f172a; + border: 1px solid rgba(15, 23, 42, 0.12); + box-shadow: 0 30px 90px rgba(15, 23, 42, 0.34), 0 8px 24px rgba(15, 23, 42, 0.18); + } + .comments-modal-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 16px; + padding: 22px 24px 18px; + background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%); + border-bottom: 1px solid rgba(148, 164, 184, 0.28); + } + .comments-modal-header h2 { margin: 0; color: #0f172a; font-size: 1.35rem; } + .comments-modal-subtitle { margin: 6px 0 0; color: #64748b; line-height: 1.45; } + .comments-modal-close { + flex: 0 0 auto; + width: 36px; + height: 36px; + border: 1px solid rgba(148, 164, 184, 0.35); + border-radius: 999px; + background: #ffffff; + color: #0f172a; + cursor: pointer; + font-size: 1.3rem; + line-height: 1; + box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08); + } + .comments-modal-close:hover { background: #f1f5f9; } + .comments-modal-body { padding: 22px 24px; overflow: auto; background: #ffffff; } + .comments-modal-footer { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; } + @media (max-width: 800px) { + .comments-modal-backdrop { padding: 12px; align-items: start; } + .comments-modal-panel { width: 100%; max-height: calc(100vh - 24px); } + } + `}),r.jsxs("div",{className:"comments-grid",children:[w&&!c?r.jsx("div",{className:"alert error",children:w}):null,g?r.jsx("div",{className:"alert success",children:g}):null,r.jsx(de,{title:"Kommentare",subtitle:"Kommentare können mit offenen TOPs aus dem TOP-Bestand verknüpft werden. Bereits einer Sitzung zugeordnete oder abgeschlossene TOPs werden in der Auswahl nicht angeboten.",actions:r.jsxs("div",{className:"row-actions",children:[r.jsx("button",{className:"btn",type:"button",onClick:S,children:"Kommentar anlegen"}),r.jsx("button",{className:"btn secondary",type:"button",onClick:j,disabled:v,children:v?"Lade…":"Aktualisieren"})]}),children:r.jsxs("div",{className:"comments-toolbar",children:[r.jsxs("label",{children:[r.jsx("span",{children:"Suchen"}),r.jsx("input",{className:"input",value:m,onChange:M=>d(M.target.value),placeholder:"Kommentar, TOP, Sitzung …"})]}),r.jsxs("label",{children:[r.jsx("span",{children:"TOP filtern"}),r.jsxs("select",{className:"input",value:h,onChange:M=>x(M.target.value),children:[r.jsx("option",{value:"",children:"Alle offenen TOPs im TOP-Bestand"}),n.map(M=>r.jsx("option",{value:M.id,children:pp(M)},M.id))]})]})]})}),r.jsx(de,{title:"Kommentarliste",subtitle:"Anzeige der vorhandenen Kommentare mit TOP-Bezug.",children:r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"TOP"}),r.jsx("th",{children:"Kommentar"}),r.jsx("th",{children:"Sichtbarkeit"}),r.jsx("th",{children:"Kommentar von"}),r.jsx("th",{children:"Aktionen"})]})}),r.jsxs("tbody",{children:[N.map(M=>r.jsxs("tr",{onClick:()=>P(M),children:[r.jsxs("td",{children:[r.jsx("strong",{children:M.agenda_item_title||`${M.entity_type} #${M.entity_id}`}),r.jsx("br",{}),r.jsxs("small",{className:"comments-muted",children:[M.meeting_number?`Sitzung ${M.meeting_number}`:"TOP-Bestand",M.agenda_number?` · TOP ${M.agenda_number}`:"",M.meeting_date?` · ${nC(M.meeting_date)}`:"",M.decision_status?` · ${iC(M.decision_status)}`:""]})]}),r.jsx("td",{className:"comments-text",children:M.comment_text}),r.jsx("td",{children:r.jsx("span",{className:`comments-badge ${M.visibility==="vertraulich"?"confidential":""}`,children:rC(M.visibility)})}),r.jsxs("td",{children:[r.jsxs("strong",{children:["Kommentar von: ",M.author_name||"—"]}),r.jsx("br",{}),r.jsx("small",{children:tC(M.created_at)})]}),r.jsx("td",{children:r.jsxs("div",{className:"row-actions",children:[r.jsx("button",{className:"mini-btn",type:"button",onClick:z=>{z.stopPropagation(),P(M)},children:"Bearbeiten"}),r.jsx("button",{className:"mini-btn danger",type:"button",onClick:z=>{z.stopPropagation(),T(M)},children:"Löschen"})]})})]},M.id)),N.length?null:r.jsx("tr",{children:r.jsx("td",{colSpan:"5",children:"Noch keine Kommentare vorhanden."})})]})]})})})]}),c?r.jsx("div",{className:"comments-modal-backdrop",onMouseDown:D,children:r.jsxs("div",{className:"comments-modal-panel",role:"dialog","aria-modal":"true","aria-labelledby":"comments-modal-title",onMouseDown:M=>M.stopPropagation(),children:[r.jsxs("div",{className:"comments-modal-header",children:[r.jsxs("div",{children:[r.jsx("h2",{id:"comments-modal-title",children:o?"Kommentar bearbeiten":"Kommentar anlegen"}),r.jsx("p",{className:"comments-modal-subtitle",children:"Wähle einen offenen TOP aus dem TOP-Bestand aus und erfasse die Bemerkung als Kommentar."})]}),r.jsx("button",{className:"comments-modal-close",type:"button",onClick:D,"aria-label":"Schließen",children:"×"})]}),r.jsxs("div",{className:"comments-modal-body",children:[w?r.jsx("div",{className:"alert error",children:w}):null,r.jsxs("form",{className:"form-grid",onSubmit:F,children:[r.jsxs("label",{children:[r.jsx("span",{children:"TOP"}),r.jsxs("select",{className:"input",required:!0,value:s.entity_id,onChange:M=>_("entity_id",M.target.value),children:[r.jsx("option",{value:"",children:"Offenen TOP aus TOP-Bestand auswählen"}),k.map(M=>r.jsx("option",{value:M.id,children:pp(M)},M.id))]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Sichtbarkeit"}),r.jsxs("select",{className:"input",value:s.visibility,onChange:M=>_("visibility",M.target.value),children:[r.jsx("option",{value:"intern",children:"Intern"}),r.jsx("option",{value:"vertraulich",children:"Vertraulich"})]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Kommentar"}),r.jsx("textarea",{className:"input textarea",required:!0,value:s.comment_text,onChange:M=>_("comment_text",M.target.value)})]}),r.jsx("p",{className:"comments-form-note",children:"Hinweis: Die Auswahl entspricht dem TOP-Bestand aus „TOPs“ und enthält nur nicht erledigte TOPs, die noch keiner Sitzung zugeordnet sind. Bereits vorhandene Kommentare bleiben sichtbar, sofern deine Rolle darauf zugreifen darf."}),r.jsxs("div",{className:"comments-modal-footer",children:[r.jsx("button",{className:"btn secondary",type:"button",onClick:D,children:"Abbrechen"}),r.jsx("button",{className:"btn",type:"submit",children:o?"Kommentar speichern":"Kommentar anlegen"})]})]})]})]})}):null]})}const Cu={title:"",category:"meeting_protocol",description:"",content_format:"html",content:`

    Betriebsrat {{committee_name}}

    +

    {{template_logo}}

    +

    Protokoll der BR-Sitzung am {{meeting_date}}

    +

    {{meeting_title_block}}

    +

    Organisatorisches und Feststellungen

    +

    Sitzungsnummer: {{meeting_number}}
    Sitzungsart: {{meeting_type}}
    Sitzungsbeginn: {{start_time}}
    Sitzungsort: {{location}}
    Sitzungsleitung: {{chair_name}}
    Schriftführung: {{secretary_name}}

    +

    {{quorum_statement}}

    +

    {{attendees_block}}

    +

    Protokollnotizen

    +

    {{protocol_notes}}

    +

    Tagesordnung und Beratung

    +

    {{agenda_sections}}

    +

    Sitzungsende

    +

    Schließung der Sitzung um {{end_time}} Uhr.

    +

    {{signature_place}}

    `,version_label:"v1",is_active:!0,logo_asset_id:""},aC={committee_name:"Betriebsrat Beispiel GmbH",meeting_number:"BR-2026-04",meeting_date:"12.05.2026",meeting_title_block:"Titel: Ordentliche BR-Sitzung",meeting_type:"Ordentlich",start_time:"09:00",end_time:"11:30",location:"Besprechungsraum 1",chair_name:"Max Mustermann",secretary_name:"Erika Beispiel",quorum_statement:"Die Sitzung ist Beschlussfähig.",attendees_block:`Anwesende Betriebsratsmitglieder +- Max Mustermann (Vorsitz) +- Erika Beispiel (Schriftführung)`,protocol_notes:"Keine zusätzlichen Protokollnotizen hinterlegt.",agenda_sections:`TOP 1: Beispiel-TOP +Beschreibung und Beratung. +Beschluss: Beispielbeschluss.`,signature_place:"Musterstadt, den 12.05.2026"};function hp(e){return{...Cu,...e,description:(e==null?void 0:e.description)||"",content_format:(e==null?void 0:e.content_format)||"markdown",logo_asset_id:e!=null&&e.logo_asset_id?String(e.logo_asset_id):"",is_active:(e==null?void 0:e.is_active)!==!1}}function oC(e){return String(e||"").replace(/<\s*script[^>]*>[\s\S]*?<\s*\/\s*script\s*>/gi,"").replace(/<\s*style[^>]*>[\s\S]*?<\s*\/\s*style\s*>/gi,"").replace(/\son[a-z]+\s*=\s*"[^"]*"/gi,"").replace(/\son[a-z]+\s*=\s*'[^']*'/gi,"").replace(/javascript:/gi,"")}function Er(e){return String(e??"").replace(/&/g,"&").replace(//g,">").replace(/"/g,""")}function lC(e){return String(e||"").replace(/\r\n/g,` +`).split(` +`).map(n=>{const i=n.trim();return i?i.startsWith("### ")?`

    ${Er(i.slice(4))}

    `:i.startsWith("## ")?`

    ${Er(i.slice(3))}

    `:i.startsWith("# ")?`

    ${Er(i.slice(2))}

    `:i.startsWith("- ")?`

    • ${Er(i.slice(2))}

    `:`

    ${Er(n)}

    `:"
    "}).join(` +`)}function cC(e,t,n){const i=n?``:'{{template_logo}}';let s=t==="html"?oC(e):lC(e);return s=s.replace(/\{\{\s*template_logo\s*\}\}/g,i),Object.entries(aC).forEach(([a,o])=>{const l=Er(o).replace(/\n/g,"
    ");s=s.replace(new RegExp(`\\{\\{\\s*${a}\\s*\\}\\}`,"g"),l)}),s.replace(/\{\{\s*([a-zA-Z0-9_]+)\s*\}\}/g,'{{$1}}')}function uC(){const[e,t]=f.useState([]),[n,i]=f.useState([]),[s,a]=f.useState([]),[o,l]=f.useState(""),[c,u]=f.useState(Cu),[m,d]=f.useState("editor"),[h,x]=f.useState(null),[g,p]=f.useState(""),[w,b]=f.useState(""),[v,y]=f.useState(""),[j,k]=f.useState(""),[N,_]=f.useState(!1),S=f.useRef(null),P=f.useRef(null),D=f.useRef(null);async function F(){const q=await O.get("/templates");t(q||[])}async function T(){const q=await O.get("/templates/assets");i(q||[])}async function M(){const q=await O.get("/templates/placeholders");a(q||[])}async function z(){_(!0),k("");try{await Promise.all([F(),T(),M()])}catch(q){k(q.message||"Vorlagen konnten nicht geladen werden.")}finally{_(!1)}}f.useEffect(()=>{z()},[]),f.useEffect(()=>{c.content_format==="html"&&m==="editor"&&S.current&&S.current.innerHTML!==c.content&&(S.current.innerHTML=c.content||"")},[c.content_format,c.content,m,o]),f.useEffect(()=>{let q=!1,re="";async function me(){if(!c.logo_asset_id){b("");return}try{const te=await(await Uo(`/templates/assets/${c.logo_asset_id}/view`)).blob();re=URL.createObjectURL(te),q||b(re)}catch{q||b("")}}return me(),()=>{q=!0,re&&URL.revokeObjectURL(re)}},[c.logo_asset_id]);const A=f.useMemo(()=>n.find(q=>String(q.id)===String(c.logo_asset_id)),[n,c.logo_asset_id]),$=f.useMemo(()=>cC(c.content,c.content_format,w),[c.content,c.content_format,w]);function Z(q,re){u(me=>({...me,[q]:re}))}function R(){D.current=null,l(""),u(Cu),d("editor"),y(""),k("")}async function K(q){D.current=null,y(""),k(""),l(String(q));try{const re=await O.get(`/templates/${q}`);u(hp(re)),d((re==null?void 0:re.content_format)==="html"?"editor":"source")}catch(re){k(re.message||"Vorlage konnte nicht geladen werden.")}}function X(q){q.preventDefault()}function ae(q){return!q||!S.current?!1:S.current.contains(q.commonAncestorContainer)}function J(){var me;if(c.content_format!=="html"||m!=="editor")return;const q=(me=window.getSelection)==null?void 0:me.call(window);if(!(q!=null&&q.rangeCount))return;const re=q.getRangeAt(0);ae(re)&&(D.current=re.cloneRange())}function ue(){var me;const q=(me=window.getSelection)==null?void 0:me.call(window),re=D.current;!q||!ae(re)||(q.removeAllRanges(),q.addRange(re))}function pe(){c.content_format==="html"&&m==="editor"&&S.current&&Z("content",S.current.innerHTML)}function ee(q,re=null){var me;c.content_format==="html"&&((me=S.current)==null||me.focus(),ue(),document.execCommand(q,!1,re),pe(),J())}function le(q){var Xe;if(c.content_format==="html"&&m==="editor"){(Xe=S.current)==null||Xe.focus(),ue(),document.execCommand("insertHTML",!1,q),pe(),J();return}const re=P.current,me=q.replace(/<[^>]+>/g,"");if(!re){Z("content",`${c.content||""}${me}`);return}const V=re.selectionStart??c.content.length,te=re.selectionEnd??c.content.length,Ne=`${c.content.slice(0,V)}${me}${c.content.slice(te)}`;Z("content",Ne),window.requestAnimationFrame(()=>{re.focus(),re.setSelectionRange(V+me.length,V+me.length)})}function ge(q){le(`${q}`)}function Y(){ge("{{template_logo}}")}async function fe(q){q.preventDefault(),y(""),k("");let re=c.content;c.content_format==="html"&&m==="editor"&&S.current&&(re=S.current.innerHTML);const me={title:c.title,category:c.category,description:c.description||null,content:re,content_format:c.content_format,logo_asset_id:c.logo_asset_id?Number(c.logo_asset_id):null,version_label:c.version_label||"v1",is_active:!!c.is_active};try{let V;o?(V=await O.put(`/templates/${o}`,me),y("Vorlage gespeichert.")):(V=await O.post("/templates",me),l(String(V.id)),y("Vorlage angelegt.")),u(hp(V)),await F()}catch(V){k(V.message||"Vorlage konnte nicht gespeichert werden.")}}async function Se(q){if(window.confirm(`Vorlage „${q.title}“ wirklich löschen?`)){y(""),k("");try{await O.delete(`/templates/${q.id}`),y("Vorlage gelöscht."),String(o)===String(q.id)&&R(),await F()}catch(re){k(re.message||"Vorlage konnte nicht gelöscht werden.")}}}async function he(q){if(q.preventDefault(),y(""),k(""),!h){k("Bitte zuerst eine PNG- oder JPEG-Datei auswählen.");return}try{const re=new FormData;re.append("file",h),re.append("title",g||h.name);const me=await O.post("/templates/assets/upload",re);x(null),p(""),Z("logo_asset_id",String(me.id)),await T(),y("Logo/Bild wurde hochgeladen und der Vorlage zugeordnet.")}catch(re){k(re.message||"Logo/Bild konnte nicht hochgeladen werden.")}}return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .templates-layout { display: grid; grid-template-columns: 1fr; gap: 18px; align-items: start; } + .templates-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 10px; } + .template-list-item { width: 100%; text-align: left; border: 1px solid rgba(148,164,184,.28); background: #fff; border-radius: 16px; padding: 12px; cursor: pointer; display: grid; gap: 4px; } + .template-list-item.active { border-color: rgba(37,99,235,.6); background: rgba(37,99,235,.06); } + .template-list-item strong { color: #0f172a; } + .template-list-item small { color: var(--muted); } + .template-editor-shell { display: grid; gap: 16px; } + .template-editor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } + .template-toolbar { display: flex; gap: 6px; flex-wrap: wrap; padding: 10px; border: 1px solid rgba(148,164,184,.28); border-radius: 16px; background: #f8fafc; } + .template-toolbar button, .template-mode-btn { border: 1px solid rgba(148,164,184,.36); background: #fff; color: #0f172a; border-radius: 10px; min-height: 34px; padding: 6px 10px; cursor: pointer; font-weight: 700; } + .template-toolbar button:hover, .template-mode-btn:hover { background: #f1f5f9; } + .template-mode-btn.active { color: #1d4ed8; border-color: rgba(37,99,235,.55); background: rgba(37,99,235,.08); } + .template-editor { min-height: 520px; border: 1px solid rgba(148,164,184,.36); border-radius: 18px; padding: 18px; background: #fff; color: #0f172a; line-height: 1.55; overflow: auto; } + .template-editor:focus { outline: 3px solid rgba(37,99,235,.16); border-color: rgba(37,99,235,.5); } + .template-editor h1, .template-preview h1 { font-size: 1.7rem; margin: .3rem 0 .8rem; } + .template-editor h2, .template-preview h2 { font-size: 1.25rem; margin: 1.2rem 0 .5rem; } + .template-editor h3, .template-preview h3 { font-size: 1.05rem; margin: 1rem 0 .4rem; } + .template-source { min-height: 520px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: pre; } + .template-preview { min-height: 520px; border: 1px solid rgba(148,164,184,.28); border-radius: 18px; padding: 22px; background: #fff; color: #0f172a; line-height: 1.55; } + .template-preview-logo { text-align: center; margin: 0 0 18px; } + .template-preview-logo img { max-width: 260px; max-height: 96px; object-fit: contain; } + .template-token { display: inline-block; padding: 1px 6px; border-radius: 999px; background: rgba(37,99,235,.10); color: #1d4ed8; font-weight: 700; } + .template-placeholder-missing { display: inline-block; padding: 4px 8px; border-radius: 10px; background: #fff7ed; color: #c2410c; font-weight: 700; } + .template-placeholder-panel { border: 1px solid rgba(148,164,184,.28); background: #fff; border-radius: 16px; padding: 12px; display: grid; gap: 8px; max-height: 240px; overflow: auto; } + .template-placeholder-panel-top { margin-top: 12px; } + .template-placeholder-grid { display: flex; gap: 6px; flex-wrap: wrap; } + .template-placeholder-grid button { border: 1px solid rgba(37,99,235,.26); background: rgba(37,99,235,.06); color: #1d4ed8; border-radius: 999px; padding: 5px 9px; cursor: pointer; font-weight: 700; } + .template-logo-card { border: 1px solid rgba(148,164,184,.28); background: #fff; border-radius: 16px; padding: 14px; display: grid; gap: 12px; } + .template-logo-preview { min-height: 104px; border: 1px dashed rgba(148,164,184,.55); border-radius: 14px; display: grid; place-items: center; background: #f8fafc; padding: 12px; } + .template-logo-preview img { max-width: 260px; max-height: 90px; object-fit: contain; } + .template-mode-tabs { display: flex; gap: 8px; flex-wrap: wrap; } + .template-delete-btn { margin-left: auto; } + @media (max-width: 1150px) { .template-editor-grid { grid-template-columns: 1fr; } } + `}),j?r.jsx("div",{className:"alert error",children:j}):null,v?r.jsx("div",{className:"alert success",children:v}):null,r.jsxs("div",{className:"templates-layout",children:[r.jsxs(de,{title:"Vorlagen",subtitle:"HTML5/WYSIWYG-Editor für Protokoll- und Berichtsvorlagen. Platzhalter bleiben als {{platzhalter}} erhalten.",actions:r.jsx("button",{className:"btn",type:"button",onClick:R,children:"Neue Vorlage"}),children:[r.jsxs("div",{className:"templates-list",children:[e.map(q=>r.jsxs("button",{className:`template-list-item ${String(o)===String(q.id)?"active":""}`,type:"button",onClick:()=>K(q.id),children:[r.jsx("strong",{children:q.title}),r.jsxs("small",{children:[q.category," · ",q.version_label||"v1"," · ",q.content_format||"markdown"]}),r.jsxs("small",{children:[q.is_active?"Aktiv":"Inaktiv",q.logo_title?` · Logo: ${q.logo_title}`:""]})]},q.id)),e.length?null:r.jsx("p",{children:"Noch keine Vorlagen vorhanden."})]}),r.jsxs("div",{className:"template-placeholder-panel template-placeholder-panel-top",children:[r.jsx("strong",{children:"Platzhalter einfügen"}),r.jsx("small",{children:"Per Klick an der aktuellen Cursorposition in „Vorlage bearbeiten“ einfügen."}),r.jsx("div",{className:"template-placeholder-grid",children:s.map(q=>r.jsx("button",{type:"button",onMouseDown:X,onClick:()=>ge(q.token),title:q.label,children:q.token},q.token))})]})]}),r.jsxs("form",{onSubmit:fe,className:"template-editor-shell",children:[r.jsx(de,{title:o?"Vorlage bearbeiten":"Vorlage anlegen",subtitle:"Für Sitzungsprotokolle wird die aktive Vorlage mit Kategorie meeting_protocol verwendet. Bilder werden über {{template_logo}} eingefügt.",actions:r.jsxs("div",{className:"row-actions",children:[r.jsx("button",{className:"btn secondary",type:"button",onClick:z,disabled:N,children:N?"Lade…":"Aktualisieren"}),r.jsx("button",{className:"btn",type:"submit",children:o?"Speichern":"Anlegen"})]}),children:r.jsxs("div",{className:"form-grid",children:[r.jsxs("div",{className:"template-editor-grid",children:[r.jsxs("label",{children:[r.jsx("span",{children:"Titel"}),r.jsx("input",{className:"input",required:!0,value:c.title,onChange:q=>Z("title",q.target.value)})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Kategorie"}),r.jsx("input",{className:"input",required:!0,value:c.category,onChange:q=>Z("category",q.target.value),placeholder:"meeting_protocol"})]})]}),r.jsxs("div",{className:"template-editor-grid",children:[r.jsxs("label",{children:[r.jsx("span",{children:"Format"}),r.jsxs("select",{className:"input",value:c.content_format,onChange:q=>{Z("content_format",q.target.value),d(q.target.value==="html"?"editor":"source")},children:[r.jsx("option",{value:"html",children:"HTML5/WYSIWYG"}),r.jsx("option",{value:"markdown",children:"Text/Markdown-kompatibel"})]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Version"}),r.jsx("input",{className:"input",required:!0,value:c.version_label,onChange:q=>Z("version_label",q.target.value)})]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Beschreibung"}),r.jsx("textarea",{className:"textarea",value:c.description,onChange:q=>Z("description",q.target.value)})]}),r.jsxs("label",{className:"check-row",children:[r.jsx("input",{type:"checkbox",checked:c.is_active,onChange:q=>Z("is_active",q.target.checked)}),r.jsx("span",{children:"Vorlage aktiv"})]})]})}),r.jsx(de,{title:"Logo / Bild",subtitle:"PNG oder JPEG hochladen, auswählen und über {{template_logo}} in die Vorlage einfügen.",children:r.jsxs("div",{className:"template-logo-card",children:[r.jsxs("label",{children:[r.jsx("span",{children:"Vorhandenes Logo/Bild"}),r.jsxs("select",{className:"input",value:c.logo_asset_id,onChange:q=>Z("logo_asset_id",q.target.value),children:[r.jsx("option",{value:"",children:"Kein Logo/Bild"}),n.map(q=>r.jsxs("option",{value:q.id,children:[q.title," · ",q.file_name]},q.id))]})]}),r.jsx("div",{className:"template-logo-preview",children:w?r.jsx("img",{src:w,alt:"Template-Logo"}):r.jsx("span",{children:"Kein Logo/Bild ausgewählt"})}),A?r.jsxs("small",{children:["Ausgewählt: ",A.title," · ",A.mime_type]}):null,r.jsxs("button",{className:"btn secondary",type:"button",onMouseDown:X,onClick:Y,children:["{{template_logo}}"," einfügen"]}),r.jsxs("div",{className:"form-grid",children:[r.jsxs("label",{children:[r.jsx("span",{children:"Neues Logo/Bild hochladen"}),r.jsx("input",{className:"input",type:"file",accept:"image/png,image/jpeg",onChange:q=>{var re;return x(((re=q.target.files)==null?void 0:re[0])||null)}})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Titel des Bildes"}),r.jsx("input",{className:"input",value:g,onChange:q=>p(q.target.value),placeholder:"z. B. BR-Logo"})]}),r.jsx("button",{className:"btn secondary",type:"button",onClick:he,children:"Logo/Bild hochladen"})]})]})}),r.jsxs(de,{title:"Inhalt",subtitle:"Editor, Quelltext und Vorschau können jederzeit gewechselt werden. Gespeichert wird der HTML-/Textinhalt mit unveränderten Platzhaltern.",actions:r.jsxs("div",{className:"template-mode-tabs",children:[c.content_format==="html"?r.jsx("button",{className:`template-mode-btn ${m==="editor"?"active":""}`,type:"button",onClick:()=>d("editor"),children:"Editor"}):null,r.jsx("button",{className:`template-mode-btn ${m==="source"?"active":""}`,type:"button",onClick:()=>{pe(),d("source")},children:"HTML/Text"}),r.jsx("button",{className:`template-mode-btn ${m==="preview"?"active":""}`,type:"button",onClick:()=>{pe(),d("preview")},children:"Vorschau"})]}),children:[c.content_format==="html"&&m==="editor"?r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"template-toolbar",children:[r.jsx("button",{type:"button",onMouseDown:X,onClick:()=>ee("formatBlock","H1"),children:"H1"}),r.jsx("button",{type:"button",onMouseDown:X,onClick:()=>ee("formatBlock","H2"),children:"H2"}),r.jsx("button",{type:"button",onMouseDown:X,onClick:()=>ee("formatBlock","H3"),children:"H3"}),r.jsx("button",{type:"button",onMouseDown:X,onClick:()=>ee("bold"),children:"Fett"}),r.jsx("button",{type:"button",onMouseDown:X,onClick:()=>ee("italic"),children:"Kursiv"}),r.jsx("button",{type:"button",onMouseDown:X,onClick:()=>ee("insertUnorderedList"),children:"Liste"}),r.jsx("button",{type:"button",onMouseDown:X,onClick:()=>ee("insertOrderedList"),children:"Nummernliste"}),r.jsx("button",{type:"button",onMouseDown:X,onClick:()=>ee("insertHorizontalRule"),children:"Trennlinie"}),r.jsx("button",{type:"button",onMouseDown:X,onClick:()=>le('
    Spalte 1Spalte 2
    '),children:"Tabelle"}),r.jsx("button",{type:"button",onMouseDown:X,onClick:()=>ee("removeFormat"),children:"Format löschen"})]}),r.jsx("div",{ref:S,className:"template-editor",contentEditable:!0,suppressContentEditableWarning:!0,onInput:()=>{var q;Z("content",((q=S.current)==null?void 0:q.innerHTML)||""),J()},onKeyUp:J,onMouseUp:J,onFocus:J})]}):null,m==="source"?r.jsx("textarea",{ref:P,className:"textarea template-source",value:c.content,onChange:q=>Z("content",q.target.value)}):null,m==="preview"?r.jsx("div",{className:"template-preview",dangerouslySetInnerHTML:{__html:$}}):null,r.jsxs("div",{className:"row-actions",style:{marginTop:14},children:[r.jsx("button",{className:"btn",type:"submit",children:o?"Vorlage speichern":"Vorlage anlegen"}),o?r.jsx("button",{className:"btn danger template-delete-btn",type:"button",onClick:()=>Se({id:o,title:c.title}),children:"Vorlage löschen"}):null]})]})]})]})]})}function dC(e){if(!e)return"";const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString("de-DE")}function gp(e){const t=String(e.entity_type||"").toLowerCase(),n=e.entity_id;switch(t){case"case":case"br_case":case"vorgang":return{label:n?`Vorgang ${n}`:"Vorgang",path:n?`/cases?open=${n}`:"/cases"};case"decision":case"beschluss":return{label:n?`Beschluss ${n}`:"Beschluss",path:n?`/decisions?open=${n}`:"/decisions"};case"meeting":case"sitzung":return{label:n?`Sitzung ${n}`:"Sitzung",path:n?`/meetings?open=${n}`:"/meetings"};case"document":case"dokument":return{label:n?`Dokument ${n}`:"Dokument",path:n?`/documents?open=${n}`:"/documents"};default:return{label:e.entity_type&&n?`${e.entity_type} ${n}`:"—",path:null}}}function fC(){const e=$o(),[t,n]=f.useState([]),[i,s]=f.useState(""),[a,o]=f.useState(!0),[l,c]=f.useState(!0),[u,m]=f.useState(!1),[d,h]=f.useState(null),[x,g]=f.useState(""),[p,w]=f.useState("");async function b({nextQuery:N=i,nextOnlyMine:_=a,nextUnreadFirst:S=l}={}){w(""),m(!0);try{const P=new URLSearchParams({only_mine:_?"true":"false",unread_first:S?"true":"false"});String(N||"").trim()&&P.set("q",N.trim());const D=await O.get(`/notifications?${P.toString()}`);n(Array.isArray(D)?D:[])}catch(P){w(P.message||"Benachrichtigungen konnten nicht geladen werden.")}finally{m(!1)}}f.useEffect(()=>{b()},[a,l]),f.useEffect(()=>{const N=window.setTimeout(()=>{b({nextQuery:i})},250);return()=>window.clearTimeout(N)},[i]);async function v(N){h(N),w(""),g("");try{await O.post(`/notifications/${N}/read`,{}),await b(),g("Benachrichtigung als gelesen markiert")}catch(_){w(_.message||"Benachrichtigung konnte nicht aktualisiert werden.")}finally{h(null)}}async function y(){h("all"),w(""),g("");try{const N=await O.post("/notifications/mark-all-read",{});await b(),g(`${(N==null?void 0:N.count)??0} Benachrichtigungen als gelesen markiert`)}catch(N){w(N.message||"Benachrichtigungen konnten nicht aktualisiert werden.")}finally{h(null)}}async function j(N){const _=gp(N);if(!N.is_read)try{await O.post(`/notifications/${N.id}/read`,{})}catch{}await b(),_.path&&e(_.path)}async function k(N){h(N),w(""),g("");try{await O.delete(`/notifications/${N}`),await b(),g("Benachrichtigung gelöscht")}catch(_){w(_.message||"Benachrichtigung konnte nicht gelöscht werden.")}finally{h(null)}}return r.jsxs(de,{title:"Benachrichtigungen",subtitle:"Filterbar nach eigenen Benachrichtigungen. Ungelesene können bevorzugt oben angezeigt und direkt geöffnet werden.",actions:r.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",flexWrap:"wrap"},children:[r.jsxs("label",{style:{display:"flex",gap:8,alignItems:"center"},children:[r.jsx("input",{type:"checkbox",checked:a,onChange:N=>o(N.target.checked)}),r.jsx("span",{children:"Nur meine Benachrichtigungen"})]}),r.jsxs("label",{style:{display:"flex",gap:8,alignItems:"center"},children:[r.jsx("input",{type:"checkbox",checked:l,onChange:N=>c(N.target.checked)}),r.jsx("span",{children:"Ungelesen zuerst"})]}),r.jsx("input",{className:"input search",placeholder:"Suchen...",value:i,onChange:N=>s(N.target.value)}),r.jsx("button",{className:"btn secondary",type:"button",onClick:y,disabled:d==="all",children:"Alle als gelesen"})]}),children:[p?r.jsx("div",{className:"alert error",children:p}):null,x?r.jsx("div",{className:"alert success",children:x}):null,r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"ID"}),r.jsx("th",{children:"Titel"}),r.jsx("th",{children:"Typ"}),r.jsx("th",{children:"Ziel"}),r.jsx("th",{children:"Benutzer"}),r.jsx("th",{children:"Status"}),r.jsx("th",{children:"Zeit"}),r.jsx("th",{children:"Aktionen"})]})}),r.jsxs("tbody",{children:[t.map(N=>{const _=gp(N);return r.jsxs("tr",{style:{fontWeight:N.is_read?"normal":600,opacity:N.is_read?.8:1},children:[r.jsx("td",{children:N.id}),r.jsx("td",{children:N.title}),r.jsx("td",{children:N.notification_type}),r.jsx("td",{children:_.path?r.jsx("button",{type:"button",className:"mini-btn",onClick:()=>j(N),children:_.label}):_.label}),r.jsx("td",{children:N.user_name||N.user_id||""}),r.jsx("td",{children:N.is_read?"gelesen":"ungelesen"}),r.jsx("td",{children:dC(N.created_at)}),r.jsxs("td",{className:"row-actions",children:[N.is_read?null:r.jsx("button",{className:"mini-btn",type:"button",disabled:d===N.id,onClick:()=>v(N.id),children:"Als gelesen"}),_.path?r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>j(N),children:"Öffnen"}):null,r.jsx("button",{className:"mini-btn danger",type:"button",disabled:d===N.id,onClick:()=>k(N.id),children:"Löschen"})]})]},N.id)}),!u&&!t.length?r.jsx("tr",{children:r.jsx("td",{colSpan:8,children:"Keine Benachrichtigungen gefunden"})}):null]})]})})]})}function Mi(e){const t=new Uint8Array(e);let n="";for(const s of t)n+=String.fromCharCode(s);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function zu(e){const t=e.replace(/-/g,"+").replace(/_/g,"/"),n=(4-t.length%4)%4,i=t.padEnd(t.length+n,"="),s=atob(i),a=new ArrayBuffer(s.length),o=new Uint8Array(a);for(let l=0;le};function hC(e){const{id:t}=e;return{...e,id:zu(t),transports:e.transports}}function gC(e){return e==="localhost"||/^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(e)}class Bt extends Error{constructor({message:t,code:n,cause:i,name:s}){super(t,{cause:i}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=s??i.name,this.code=n}}function xC({error:e,options:t}){var i,s,a;const{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new Bt({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else if(e.name==="ConstraintError"){if(((i=n.authenticatorSelection)==null?void 0:i.requireResidentKey)===!0)return new Bt({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:e});if(t.mediation==="conditional"&&((s=n.authenticatorSelection)==null?void 0:s.userVerification)==="required")return new Bt({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:e});if(((a=n.authenticatorSelection)==null?void 0:a.userVerification)==="required")return new Bt({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:e})}else{if(e.name==="InvalidStateError")return new Bt({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new Bt({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="NotSupportedError")return n.pubKeyCredParams.filter(l=>l.type==="public-key").length===0?new Bt({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new Bt({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:e});if(e.name==="SecurityError"){const o=globalThis.location.hostname;if(gC(o)){if(n.rp.id!==o)return new Bt({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new Bt({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="TypeError"){if(n.user.id.byteLength<1||n.user.id.byteLength>64)return new Bt({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:e})}else if(e.name==="UnknownError")return new Bt({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}class vC{constructor(){Object.defineProperty(this,"controller",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}createNewAbortSignal(){if(this.controller){const n=new Error("Cancelling existing WebAuthn API call for new one");n.name="AbortError",this.controller.abort(n)}const t=new AbortController;return this.controller=t,t.signal}cancelCeremony(){if(this.controller){const t=new Error("Manually cancelling existing WebAuthn API call");t.name="AbortError",this.controller.abort(t),this.controller=void 0}}}const bC=new vC,yC=["cross-platform","platform"];function jC(e){if(e&&!(yC.indexOf(e)<0))return e}async function _C(e){var g;!e.optionsJSON&&e.challenge&&(console.warn("startRegistration() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});const{optionsJSON:t,useAutoRegister:n=!1}=e;if(!mC())throw new Error("WebAuthn is not supported in this browser");const i={...t,challenge:zu(t.challenge),user:{...t.user,id:zu(t.user.id)},excludeCredentials:(g=t.excludeCredentials)==null?void 0:g.map(hC)},s={};n&&(s.mediation="conditional"),s.publicKey=i,s.signal=bC.createNewAbortSignal();let a;try{a=await navigator.credentials.create(s)}catch(p){throw xC({error:p,options:s})}if(!a)throw new Error("Registration was not completed");const{id:o,rawId:l,response:c,type:u}=a;let m;typeof c.getTransports=="function"&&(m=c.getTransports());let d;if(typeof c.getPublicKeyAlgorithm=="function")try{d=c.getPublicKeyAlgorithm()}catch(p){rc("getPublicKeyAlgorithm()",p)}let h;if(typeof c.getPublicKey=="function")try{const p=c.getPublicKey();p!==null&&(h=Mi(p))}catch(p){rc("getPublicKey()",p)}let x;if(typeof c.getAuthenticatorData=="function")try{x=Mi(c.getAuthenticatorData())}catch(p){rc("getAuthenticatorData()",p)}return{id:o,rawId:Mi(l),response:{attestationObject:Mi(c.attestationObject),clientDataJSON:Mi(c.clientDataJSON),transports:m,publicKeyAlgorithm:d,publicKey:h,authenticatorData:x},type:u,clientExtensionResults:a.getClientExtensionResults(),authenticatorAttachment:jC(a.authenticatorAttachment)}}function rc(e,t){console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${e}. You should report this error to them. +`,t)}async function wC(){return O.post("/auth/mfa/totp/setup",{})}async function kC(e){return O.post("/auth/mfa/totp/verify",{token:e})}async function SC(){const e=await O.post("/auth/mfa/webauthn/register/options",{}),t=await _C(e);return O.post("/auth/mfa/webauthn/register/verify",{credential:t})}function NC(){Vo(""),localStorage.removeItem("br_user"),localStorage.removeItem("br_access_token"),window.__br_access_token=""}function CC(){const[e,t]=f.useState(""),[n,i]=f.useState(""),[s,a]=f.useState(""),[o,l]=f.useState(""),[c,u]=f.useState("");async function m(){u(""),l("");try{const x=await wC();t(x.qrCodeDataUrl),i(x.secretBase32),l("TOTP-Enrollment gestartet")}catch(x){u(x.message)}}async function d(x){x.preventDefault(),u(""),l("");try{await kC(s),l("TOTP erfolgreich aktiviert")}catch(g){u(g.message)}}async function h(){u(""),l("");try{await SC(),l("Passkey erfolgreich registriert")}catch(x){u(x.message)}}return r.jsx("div",{className:"stack",children:r.jsxs(de,{title:"MFA & Passkeys",subtitle:"WebAuthn/Passkey und TOTP vollständig am Backend verdrahtet",children:[c?r.jsx("div",{className:"alert error",children:c}):null,o?r.jsx("div",{className:"alert success",children:o}):null,r.jsxs("div",{className:"security-grid",children:[r.jsxs("div",{className:"glass pane",children:[r.jsx("h3",{children:"TOTP einrichten"}),r.jsx("p",{children:"QR-Code mit Authenticator-App scannen und Einmalcode verifizieren."}),r.jsx("button",{className:"btn",onClick:m,children:"TOTP-Setup starten"}),e?r.jsx("img",{src:e,alt:"TOTP QR",className:"qr"}):null,n?r.jsx("code",{children:n}):null,r.jsxs("form",{className:"form-grid",onSubmit:d,children:[r.jsxs("label",{children:[r.jsx("span",{children:"Code"}),r.jsx("input",{className:"input",value:s,onChange:x=>a(x.target.value)})]}),r.jsx("button",{className:"btn",type:"submit",children:"TOTP bestätigen"})]})]}),r.jsxs("div",{className:"glass pane",children:[r.jsx("h3",{children:"Passkey registrieren"}),r.jsx("p",{children:"Plattform-Passkey oder Sicherheitsschlüssel als starken zweiten Faktor hinzufügen."}),r.jsx("button",{className:"btn",onClick:h,children:"Passkey registrieren"}),r.jsxs("ul",{className:"bullet-list",children:[r.jsx("li",{children:"Login über WebAuthn-Challenge"}),r.jsx("li",{children:"Zählerprüfung gegen geklonte Authenticatoren"}),r.jsx("li",{children:"Serverseitige Challenge-Ablaufsteuerung"})]})]})]})]})})}function zC(){const[e,t]=f.useState([]);return f.useEffect(()=>{O.get("/audit").then(t).catch(()=>t([]))},[]),r.jsx(de,{title:"Audit",subtitle:"Unveränderbarer Prüfpfad für sicherheitsrelevante Aktionen",children:r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"ID"}),r.jsx("th",{children:"Aktion"}),r.jsx("th",{children:"Objekt"}),r.jsx("th",{children:"Objekt-ID"}),r.jsx("th",{children:"Zeitpunkt"})]})}),r.jsx("tbody",{children:e.map(n=>r.jsxs("tr",{children:[r.jsx("td",{children:String(n.id??"")}),r.jsx("td",{children:String(n.action??"")}),r.jsx("td",{children:String(n.entity_type??"")}),r.jsx("td",{children:String(n.entity_id??"")}),r.jsx("td",{children:String(n.created_at??"")})]},n.id))})]})})})}const BC="http://localhost:8080/api",TC=[{value:"sehr_hoch",label:"Sehr hoch"},{value:"hoch",label:"Hoch"},{value:"mittel",label:"Mittel"},{value:"niedrig",label:"Niedrig"}],Uv=[{value:"intern",label:"Intern"},{value:"vertraulich",label:"Vertraulich"},{value:"streng_vertraulich",label:"Streng vertraulich"}];function dr(e,t){const n=new Date(e);return n.setDate(n.getDate()+t),n}function Kr(e){const t=new Date(e),n=(t.getDay()+6)%7;return t.setDate(t.getDate()-n),t.setHours(0,0,0,0),t}function Bu(e){const t=dr(Kr(e),6);return t.setHours(23,59,59,999),t}function xp(e){return new Date(e.getFullYear(),e.getMonth(),1,0,0,0,0)}function PC(e){return new Date(e.getFullYear(),e.getMonth()+1,0,23,59,59,999)}function Tu(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function EC(e){return e.toISOString().slice(0,10)}function Dn(e){return EC(e)}function _o(e){if(!e)return"";const t=new Date(e);return Number.isNaN(t.getTime())?String(e).slice(0,16):new Date(t.getTime()-t.getTimezoneOffset()*6e4).toISOString().slice(0,16)}function vp(e,t,n=""){const i=new Date(e);i.setHours(9,0,0,0);const s=new Date(e);return s.setHours(10,0,0,0),{title:"",description:"",starts_at:_o(i.toISOString()),ends_at:_o(s.toISOString()),all_day:!1,location:"",status:"geplant",priority:"mittel",visibility:"intern",owner_user_id:t!=null&&t.id?String(t.id):"",committee_id:n?String(n):"",source_name:""}}function bp(e){return`calendar-badge ${e}`}function Pu(e){if(e.all_day)return"Ganztägig";const t=new Date(e.starts_at);return Number.isNaN(t.getTime())?"":t.toLocaleTimeString("de-DE",{hour:"2-digit",minute:"2-digit"})}function ic(e,t){return e.filter(n=>Tu(new Date(n.starts_at),t))}function DC(e,t,n){if(e==="month")return t.toLocaleDateString("de-DE",{month:"long",year:"numeric"});if(e==="week"){const i=Kr(t),s=Bu(t);return`${i.toLocaleDateString("de-DE")} – ${s.toLocaleDateString("de-DE")}`}return`${n.from||""} – ${n.to||""}`}function AC({open:e,selectedEvent:t,eventForm:n,setEventForm:i,meta:s,currentCommitteeUsers:a,error:o,onClose:l,onSubmit:c,onDelete:u}){if(!e)return null;const m=(t==null?void 0:t.event_type)==="calendar";return r.jsx("div",{className:"modal-backdrop",onClick:l,children:r.jsxs("div",{className:"modal-panel",onClick:d=>d.stopPropagation(),children:[r.jsxs("div",{className:"modal-header",children:[r.jsxs("div",{children:[r.jsx("h2",{style:{margin:0},children:m?"Termin bearbeiten":"Neuen Termin anlegen"}),r.jsx("p",{className:"modal-subtitle",children:"Eigene Termine werden in den globalen Kalender übernommen und können nach Benutzer oder Ausschuss gefiltert werden."})]}),r.jsx("button",{className:"modal-close",type:"button",onClick:l,"aria-label":"Schließen",children:"×"})]}),o?r.jsx("div",{className:"alert error",children:o}):null,r.jsxs("form",{className:"form-grid",onSubmit:c,children:[r.jsxs("label",{children:[r.jsx("span",{children:"Titel"}),r.jsx("input",{className:"input",value:n.title,onChange:d=>i(h=>({...h,title:d.target.value}))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Beschreibung"}),r.jsx("textarea",{className:"input textarea",value:n.description,onChange:d=>i(h=>({...h,description:d.target.value}))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Beginn"}),r.jsx("input",{className:"input",type:"datetime-local",value:n.starts_at,onChange:d=>i(h=>({...h,starts_at:d.target.value}))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Ende"}),r.jsx("input",{className:"input",type:"datetime-local",value:n.ends_at,disabled:n.all_day,onChange:d=>i(h=>({...h,ends_at:d.target.value}))})]}),r.jsxs("label",{style:{display:"flex",gap:10,alignItems:"center",marginTop:26},children:[r.jsx("input",{type:"checkbox",checked:!!n.all_day,onChange:d=>i(h=>({...h,all_day:d.target.checked}))}),r.jsx("span",{children:"Ganztägig"})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Ort"}),r.jsx("input",{className:"input",value:n.location,onChange:d=>i(h=>({...h,location:d.target.value}))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Benutzer"}),r.jsxs("select",{className:"input",value:n.owner_user_id,onChange:d=>i(h=>({...h,owner_user_id:d.target.value})),children:[r.jsx("option",{value:"",children:"Bitte auswählen"}),a.map(d=>r.jsx("option",{value:d.id,children:d.full_name},d.id))]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Ausschuss"}),r.jsxs("select",{className:"input",value:n.committee_id,onChange:d=>i(h=>({...h,committee_id:d.target.value,owner_user_id:h.owner_user_id})),children:[r.jsx("option",{value:"",children:"Kein Ausschuss"}),s.committees.map(d=>r.jsx("option",{value:d.id,children:d.name},d.id))]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Priorität"}),r.jsx("select",{className:"input",value:n.priority,onChange:d=>i(h=>({...h,priority:d.target.value})),children:TC.map(d=>r.jsx("option",{value:d.value,children:d.label},d.value))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Sichtbarkeit"}),r.jsx("select",{className:"input",value:n.visibility,onChange:d=>i(h=>({...h,visibility:d.target.value})),children:Uv.map(d=>r.jsx("option",{value:d.value,children:d.label},d.value))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Quelle/Label"}),r.jsx("input",{className:"input",value:n.source_name,onChange:d=>i(h=>({...h,source_name:d.target.value})),placeholder:"z. B. Persönlich, Schulung, Betriebsrat"})]}),r.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:10,gridColumn:"1 / -1"},children:[m?r.jsx("button",{className:"btn secondary",type:"button",onClick:u,children:"Löschen"}):null,r.jsx("button",{className:"btn secondary",type:"button",onClick:l,children:"Abbrechen"}),r.jsx("button",{className:"btn",type:"submit",children:m?"Speichern":"Termin anlegen"})]})]})]})})}function RC({open:e,selectedDate:t,selectedEvent:n,selectedDateEvents:i,onClose:s,onPickEvent:a,onNewEvent:o,onEditEvent:l,onDeleteEvent:c}){if(!e)return null;const u=(n==null?void 0:n.event_type)==="calendar"?n:i.find(m=>m.event_type==="calendar")||null;return r.jsx("div",{className:"modal-backdrop",onClick:s,children:r.jsxs("div",{className:"modal-panel",onClick:m=>m.stopPropagation(),children:[r.jsxs("div",{className:"modal-header",children:[r.jsxs("div",{children:[r.jsx("h2",{style:{margin:0},children:"Tagesdetails"}),r.jsx("p",{className:"modal-subtitle",children:t.toLocaleDateString("de-DE",{weekday:"long",day:"2-digit",month:"2-digit",year:"numeric"})})]}),r.jsx("button",{className:"modal-close",type:"button",onClick:s,"aria-label":"Schließen",children:"×"})]}),r.jsxs("div",{style:{display:"flex",justifyContent:"space-between",gap:10,marginBottom:12,flexWrap:"wrap"},children:[r.jsx("button",{className:"btn",type:"button",onClick:o,children:"Neuer Termin"}),r.jsxs("div",{style:{display:"flex",gap:10,flexWrap:"wrap"},children:[r.jsx("button",{className:"btn secondary",type:"button",disabled:!u,onClick:()=>u&&l(u),children:"Bearbeiten"}),r.jsx("button",{className:"btn secondary",type:"button",disabled:!u,onClick:()=>u&&c(u),children:"Löschen"})]})]}),r.jsx("div",{className:"calendar-detail-list",children:i.length?i.map(m=>r.jsxs("button",{type:"button",className:`calendar-detail-item ${(n==null?void 0:n.id)===m.id&&(n==null?void 0:n.event_type)===m.event_type?"selected":""}`,onClick:()=>a(m),children:[r.jsxs("div",{children:[r.jsx("strong",{children:m.title}),r.jsxs("div",{className:"field-hint",children:[m.event_type," · ",Pu(m)||"Ohne Uhrzeit"]})]}),r.jsx("span",{children:m.committee_name||m.reference||""})]},`${m.event_type}-${m.id}`)):r.jsx("div",{className:"field-hint",children:"Für diesen Tag sind keine Einträge vorhanden."})}),n?r.jsxs("div",{className:"pane glass",style:{marginTop:14},children:[r.jsx("h3",{style:{marginTop:0},children:n.title}),r.jsxs("p",{className:"field-hint",children:[n.event_type," ·"," ",n.all_day?"Ganztägig":new Date(n.starts_at).toLocaleString("de-DE",{day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit"})]}),r.jsx("p",{children:n.description||"Kein weiterer Beschreibungstext."})]}):null]})})}function OC({open:e,syncForm:t,setSyncForm:n,onClose:i,onExportIcs:s,onImportIcs:a,onSyncProvider:o}){return e?r.jsx("div",{className:"modal-backdrop",onClick:i,children:r.jsxs("div",{className:"modal-panel",onClick:l=>l.stopPropagation(),children:[r.jsxs("div",{className:"modal-header",children:[r.jsxs("div",{children:[r.jsx("h2",{style:{margin:0},children:"Externe Verbindung"}),r.jsx("p",{className:"modal-subtitle",children:"iCal-Dateien exportieren oder importieren. Outlook- und Google-Sync laufen über öffentliche ICS-Links."})]}),r.jsx("button",{className:"modal-close",type:"button",onClick:i,"aria-label":"Schließen",children:"×"})]}),r.jsxs("div",{className:"form-grid",children:[r.jsxs("label",{children:[r.jsx("span",{children:"Import-/Sync-Name"}),r.jsx("input",{className:"input",value:t.source_name,onChange:l=>n(c=>({...c,source_name:l.target.value})),placeholder:"z. B. Teamkalender"})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Sichtbarkeit"}),r.jsx("select",{className:"input",value:t.visibility,onChange:l=>n(c=>({...c,visibility:l.target.value})),children:Uv.map(l=>r.jsx("option",{value:l.value,children:l.label},l.value))})]}),r.jsx("div",{className:"row-actions",style:{gridColumn:"1 / -1"},children:r.jsx("button",{className:"btn",type:"button",onClick:s,children:"iCal exportieren"})}),r.jsxs("label",{children:[r.jsx("span",{children:"iCal-Datei importieren"}),r.jsx("input",{className:"input",type:"file",accept:".ics,text/calendar",onChange:l=>n(c=>{var u;return{...c,file:((u=l.target.files)==null?void 0:u[0])||null}})})]}),r.jsx("button",{className:"btn secondary",type:"button",onClick:a,children:"iCal importieren"}),r.jsxs("label",{children:[r.jsx("span",{children:"Outlook ICS-URL"}),r.jsx("input",{className:"input",value:t.outlookUrl,onChange:l=>n(c=>({...c,outlookUrl:l.target.value})),placeholder:"https://outlook.live.com/.../calendar.ics"})]}),r.jsx("button",{className:"btn secondary",type:"button",onClick:()=>o("outlook"),children:"Outlook synchronisieren"}),r.jsxs("label",{children:[r.jsx("span",{children:"Google ICS-URL"}),r.jsx("input",{className:"input",value:t.googleUrl,onChange:l=>n(c=>({...c,googleUrl:l.target.value})),placeholder:"https://calendar.google.com/calendar/ical/.../basic.ics"})]}),r.jsx("button",{className:"btn secondary",type:"button",onClick:()=>o("google"),children:"Google synchronisieren"})]})]})}):null}function IC(){const[e,t]=f.useState({users:[],committees:[],currentUser:null}),[n,i]=f.useState({user_id:"",committee_id:""}),[s,a]=f.useState("month"),[o,l]=f.useState(new Date),[c,u]=f.useState({from:Dn(new Date),to:Dn(dr(new Date,31))}),[m,d]=f.useState(new Date),[h,x]=f.useState([]),[g,p]=f.useState(null),[w,b]=f.useState(vp(new Date,null)),[v,y]=f.useState({source_name:"",visibility:"intern",file:null,outlookUrl:"",googleUrl:""}),[j,k]=f.useState(""),[N,_]=f.useState(""),[S,P]=f.useState(""),[D,F]=f.useState(!1),[T,M]=f.useState(!1),[z,A]=f.useState(!1),[$,Z]=f.useState(!1),R=f.useMemo(()=>{if(s==="month"){const B=xp(o),U=PC(o);return{from:Dn(Kr(B)),to:Dn(Bu(U))}}return s==="week"?{from:Dn(Kr(o)),to:Dn(Bu(o))}:c},[s,o,c]),K=f.useMemo(()=>DC(s,o,c),[s,o,c]),X=f.useMemo(()=>{const B=Kr(xp(o));return Array.from({length:42},(U,C)=>dr(B,C))},[o]),ae=f.useMemo(()=>{const B=Kr(o);return Array.from({length:7},(U,C)=>dr(B,C))},[o]),J=f.useMemo(()=>ic(h,m),[h,m]);async function ue(){const B=await O.get("/calendar/meta");t(B||{users:[],committees:[],currentUser:null}),b(U=>{var C;return{...U,owner_user_id:U.owner_user_id||String(((C=B==null?void 0:B.currentUser)==null?void 0:C.id)||"")}})}async function pe(B=R,U=n){F(!0),_("");try{const C=new URLSearchParams;B.from&&C.set("from",B.from),B.to&&C.set("to",B.to),U.user_id&&C.set("user_id",U.user_id),U.committee_id&&C.set("committee_id",U.committee_id);const G=await O.get(`/calendar/events?${C.toString()}`);x(Array.isArray(G)?G:[])}catch(C){_(C.message)}finally{F(!1)}}f.useEffect(()=>{ue()},[]),f.useEffect(()=>{pe(R,n)},[R.from,R.to,n.user_id,n.committee_id]);function ee(B=m){p(null),b(vp(B,e.currentUser,n.committee_id))}function le(){M(!1),ee(m),P("")}function ge(B){d(B),(!g||g.event_type!=="calendar")&&ee(B)}function Y(B){var U;p(B),d(new Date(B.starts_at)),b({title:B.title||"",description:B.description||"",starts_at:_o(B.starts_at),ends_at:_o(B.ends_at),all_day:!!B.all_day,location:B.location||"",status:B.status||"geplant",priority:B.priority||"mittel",visibility:B.visibility||"intern",owner_user_id:B.owner_user_id?String(B.owner_user_id):String(((U=e.currentUser)==null?void 0:U.id)||""),committee_id:B.committee_id?String(B.committee_id):"",source_name:B.source_name||""})}function fe(B){p(B),d(new Date(B.starts_at))}function Se(B=m){ee(B),P(""),M(!0)}function he(B){!B||B.event_type!=="calendar"||(Y(B),P(""),M(!0))}async function q(B){var U;B.preventDefault(),P(""),k("");try{const C={title:w.title.trim(),description:w.description.trim()||null,starts_at:w.starts_at,ends_at:w.all_day?null:w.ends_at||null,all_day:!!w.all_day,location:w.location.trim()||null,status:w.status.trim()||"geplant",priority:w.priority,visibility:w.visibility,owner_user_id:w.owner_user_id?Number(w.owner_user_id):(U=e.currentUser)==null?void 0:U.id,committee_id:w.committee_id?Number(w.committee_id):null,source_name:w.source_name.trim()||null};(g==null?void 0:g.event_type)==="calendar"?(await O.put(`/calendar/events/${g.id}`,C),k("Termin gespeichert")):(await O.post("/calendar/events",C),k("Termin angelegt")),await pe(),le()}catch(C){P(C.message)}}async function re(B){if(!(!B||B.event_type!=="calendar")){P(""),_(""),k("");try{await O.delete(`/calendar/events/${B.id}`),await pe(),(g==null?void 0:g.id)===B.id&&(g==null?void 0:g.event_type)==="calendar"&&p(null),k("Termin gelöscht")}catch(U){P(U.message),_(U.message)}}}async function me(){!g||g.event_type!=="calendar"||(await re(g),le())}async function V(){_(""),k("");try{const B=new URLSearchParams;R.from&&B.set("from",R.from),R.to&&B.set("to",R.to),n.user_id&&B.set("user_id",n.user_id),n.committee_id&&B.set("committee_id",n.committee_id);const U=window.__br_access_token||localStorage.getItem("br_access_token")||"",C=await fetch(`${BC}/calendar/export.ics?${B.toString()}`,{headers:U?{Authorization:`Bearer ${U}`}:{},credentials:"include"});if(!C.ok){const Pn=await C.json().catch(()=>({}));throw new Error(Pn.error||"Export fehlgeschlagen")}const G=await C.blob(),ne=URL.createObjectURL(G),ye=document.createElement("a");ye.href=ne,ye.download="br-office-calendar.ics",document.body.appendChild(ye),ye.click(),ye.remove(),URL.revokeObjectURL(ne),k("iCal-Export heruntergeladen")}catch(B){_(B.message)}}async function te(){var B;_(""),k("");try{const U=new FormData;v.file&&U.append("file",v.file),U.append("owner_user_id",w.owner_user_id||String(((B=e.currentUser)==null?void 0:B.id)||"")),U.append("committee_id",w.committee_id||n.committee_id||""),U.append("source_name",v.source_name||"ICS-Import"),U.append("visibility",v.visibility);const C=await O.post("/calendar/import/ics",U);await pe(),k(`ICS importiert: ${C.imported} neu, ${C.updated} aktualisiert, ${C.skipped} übersprungen`),y(G=>({...G,file:null}))}catch(U){_(U.message)}}async function Ne(B){var U;_(""),k("");try{const C=B==="outlook"?v.outlookUrl:v.googleUrl,G=await O.post(`/calendar/sync/${B}`,{url:C,owner_user_id:w.owner_user_id?Number(w.owner_user_id):(U=e.currentUser)==null?void 0:U.id,committee_id:w.committee_id?Number(w.committee_id):n.committee_id?Number(n.committee_id):null,source_name:v.source_name||B,visibility:v.visibility});await pe(),k(`${B==="outlook"?"Outlook":"Google"}-Sync: ${G.imported} neu, ${G.updated} aktualisiert`)}catch(C){_(C.message)}}function Xe(B){s==="month"?l(U=>new Date(U.getFullYear(),U.getMonth()+B,1)):s==="week"?l(U=>dr(U,B*7)):u(U=>({from:Dn(dr(new Date(U.from),B*31)),to:Dn(dr(new Date(U.to),B*31))}))}const E=f.useMemo(()=>w.committee_id?e.users.filter(B=>String(B.committee_id||"")===String(w.committee_id)):e.users,[e.users,w.committee_id]);return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .calendar-page-single { + display: grid; + gap: 16px; + } + + .calendar-head-actions { + display: flex; + gap: 10px; + align-items: center; + flex-wrap: wrap; + justify-content: flex-end; + } + + .calendar-range-label { + font-weight: 700; + font-size: 1rem; + margin-right: 8px; + } + + .modal-backdrop { + position: fixed; + inset: 0; + background: rgba(15, 23, 42, 0.55); + display: flex; + align-items: center; + justify-content: center; + padding: 16px; + z-index: 1000; + } + + .modal-panel { + width: min(960px, 100%); + max-height: 92vh; + overflow: auto; + border-radius: 18px; + background: rgba(255, 255, 255, 0.74); + backdrop-filter: blur(18px); + -webkit-backdrop-filter: blur(18px); + border: 1px solid rgba(255, 255, 255, 0.24); + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25); + padding: 18px; + } + + .modal-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 16px; + margin-bottom: 16px; + } + + .modal-subtitle { + margin: 6px 0 0; + opacity: 0.75; + font-size: 0.95rem; + } + + .modal-close { + border: 0; + background: transparent; + font-size: 28px; + line-height: 1; + cursor: pointer; + padding: 4px 8px; + } + `}),r.jsx("div",{className:"calendar-page-single",children:r.jsxs(de,{title:"Kalender",subtitle:"Monats-, Wochen- und Agendaansicht wie in Outlook. Eigene Termine können direkt erfasst und zusammen mit Sitzungen, Fristen und Aufgaben angezeigt werden.",actions:r.jsxs("div",{className:"calendar-head-actions",children:[r.jsx("span",{className:"calendar-range-label",children:K}),r.jsx("button",{className:"btn secondary",type:"button",onClick:()=>Xe(-1),children:"Zurück"}),r.jsx("button",{className:"btn secondary",type:"button",onClick:()=>l(new Date),children:"Heute"}),r.jsx("button",{className:"btn secondary",type:"button",onClick:()=>Xe(1),children:"Weiter"}),[["month","Monat"],["week","Woche"],["agenda","Agenda"]].map(([B,U])=>r.jsx("button",{type:"button",className:`mini-btn ${s===B?"active":""}`,onClick:()=>a(B),children:U},B)),r.jsx("button",{className:"btn",type:"button",onClick:()=>Se(m),children:"Neuer Termin"}),r.jsx("button",{className:"btn secondary",type:"button",onClick:()=>A(!0),children:"Tagesdetails"}),r.jsx("button",{className:"btn secondary",type:"button",onClick:()=>Z(!0),children:"Externe Verbindung"})]}),children:[N?r.jsx("div",{className:"alert error",children:N}):null,j?r.jsx("div",{className:"alert success",children:j}):null,r.jsx("div",{className:"calendar-toolbar",children:r.jsxs("div",{className:"calendar-filter-grid",children:[r.jsxs("label",{children:[r.jsx("span",{children:"Benutzer"}),r.jsxs("select",{className:"input",value:n.user_id,onChange:B=>i(U=>({...U,user_id:B.target.value})),children:[r.jsx("option",{value:"",children:"Alle"}),e.users.map(B=>r.jsx("option",{value:B.id,children:B.full_name},B.id))]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Ausschuss"}),r.jsxs("select",{className:"input",value:n.committee_id,onChange:B=>i(U=>({...U,committee_id:B.target.value})),children:[r.jsx("option",{value:"",children:"Alle"}),e.committees.map(B=>r.jsx("option",{value:B.id,children:B.name},B.id))]})]}),s==="agenda"?r.jsxs(r.Fragment,{children:[r.jsxs("label",{children:[r.jsx("span",{children:"Von"}),r.jsx("input",{className:"input",type:"date",value:c.from,onChange:B=>u(U=>({...U,from:B.target.value}))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Bis"}),r.jsx("input",{className:"input",type:"date",value:c.to,onChange:B=>u(U=>({...U,to:B.target.value}))})]})]}):null]})}),D?r.jsx("div",{className:"field-hint",children:"Kalender wird geladen…"}):null,s==="month"?r.jsxs("div",{className:"calendar-grid month",children:[["Mo","Di","Mi","Do","Fr","Sa","So"].map(B=>r.jsx("div",{className:"calendar-grid-head",children:B},B)),X.map(B=>{const U=ic(h,B),C=B.getMonth()===o.getMonth();return r.jsxs("button",{type:"button",className:`calendar-day-cell ${C?"":"muted"} ${Tu(B,m)?"selected":""}`,onClick:()=>ge(B),children:[r.jsxs("div",{className:"calendar-day-header",children:[r.jsx("strong",{children:B.getDate()}),r.jsx("span",{children:U.length||""})]}),r.jsxs("div",{className:"calendar-event-stack",children:[U.slice(0,4).map(G=>r.jsxs("span",{className:bp(G.event_type),onClick:ne=>{ne.stopPropagation(),fe(G),A(!0)},children:[Pu(G)," ",G.title]},`${G.event_type}-${G.id}`)),U.length>4?r.jsxs("span",{className:"calendar-more",children:["+",U.length-4," weitere"]}):null]})]},B.toISOString())})]}):null,s==="week"?r.jsx("div",{className:"calendar-grid week",children:ae.map(B=>{const U=ic(h,B);return r.jsxs("button",{type:"button",className:`calendar-week-column ${Tu(B,m)?"selected":""}`,onClick:()=>ge(B),children:[r.jsxs("div",{className:"calendar-day-header large",children:[r.jsx("strong",{children:B.toLocaleDateString("de-DE",{weekday:"short",day:"2-digit",month:"2-digit"})}),r.jsxs("span",{children:[U.length," Einträge"]})]}),r.jsx("div",{className:"calendar-event-stack",children:U.map(C=>r.jsxs("span",{className:bp(C.event_type),onClick:G=>{G.stopPropagation(),fe(C),A(!0)},children:[Pu(C)," ",C.title]},`${C.event_type}-${C.id}`))})]},B.toISOString())})}):null,s==="agenda"?r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"Datum"}),r.jsx("th",{children:"Typ"}),r.jsx("th",{children:"Titel"}),r.jsx("th",{children:"Zeit"}),r.jsx("th",{children:"Ausschuss"}),r.jsx("th",{children:"Verantwortlich"}),r.jsx("th",{children:"Status"})]})}),r.jsx("tbody",{children:h.map(B=>r.jsxs("tr",{onClick:()=>{fe(B),A(!0)},children:[r.jsx("td",{children:new Date(B.starts_at).toLocaleDateString("de-DE")}),r.jsx("td",{children:B.event_type}),r.jsx("td",{children:B.title}),r.jsx("td",{children:B.all_day?"Ganztägig":new Date(B.starts_at).toLocaleString("de-DE",{hour:"2-digit",minute:"2-digit",day:"2-digit",month:"2-digit"})}),r.jsx("td",{children:B.committee_name||""}),r.jsx("td",{children:B.primary_user_name||B.owner_name||""}),r.jsx("td",{children:B.status||""})]},`${B.event_type}-${B.id}`))})]})}):null]})}),r.jsx(AC,{open:T,selectedEvent:g,eventForm:w,setEventForm:b,meta:e,currentCommitteeUsers:E,error:S,onClose:le,onSubmit:q,onDelete:me}),r.jsx(RC,{open:z,selectedDate:m,selectedEvent:g,selectedDateEvents:J,onClose:()=>A(!1),onPickEvent:fe,onNewEvent:()=>{A(!1),Se(m)},onEditEvent:B=>{A(!1),he(B)},onDeleteEvent:async B=>{await re(B),A(!1)}}),r.jsx(OC,{open:$,syncForm:v,setSyncForm:y,onClose:()=>Z(!1),onExportIcs:V,onImportIcs:te,onSyncProvider:Ne})]})}function LC(e){if(!e)return"";const t=new Date(e);return Number.isNaN(t.getTime())?String(e):t.toLocaleString("de-DE")}function MC(){const[e,t]=f.useState([]),[n,i]=f.useState(""),[s,a]=f.useState(""),[o,l]=f.useState("");async function c(){a("");try{const d=await O.get("/documents"),h=(Array.isArray(d)?d:[]).filter(x=>{const g=String(x.document_type||"").toLowerCase();return g.includes("bericht")||g.includes("report")||g.includes("protokoll")});t(h)}catch(d){a(d.message||"Reports konnten nicht geladen werden.")}}f.useEffect(()=>{c()},[]);const u=f.useMemo(()=>{const d=n.trim().toLowerCase();return d?e.filter(h=>JSON.stringify(h).toLowerCase().includes(d)):e},[e,n]);async function m(d){a(""),l("");try{await O.delete(`/documents/${d}`),await c(),l("Report gelöscht")}catch(h){a(h.message||"Report konnte nicht gelöscht werden.")}}return r.jsxs(de,{title:"Reports",subtitle:"Berichte, Protokolle und reportbezogene Dokumente im Überblick.",actions:r.jsx("input",{className:"input search",placeholder:"Reports durchsuchen...",value:n,onChange:d=>i(d.target.value)}),children:[s?r.jsx("div",{className:"alert error",children:s}):null,o?r.jsx("div",{className:"alert success",children:o}):null,r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"ID"}),r.jsx("th",{children:"Dokument-Nr."}),r.jsx("th",{children:"Titel"}),r.jsx("th",{children:"Art"}),r.jsx("th",{children:"Vertraulichkeit"}),r.jsx("th",{children:"Sitzung"}),r.jsx("th",{children:"Hochgeladen"}),r.jsx("th",{children:"Aktionen"})]})}),r.jsx("tbody",{children:u.length?u.map(d=>r.jsxs("tr",{children:[r.jsx("td",{children:d.id}),r.jsx("td",{children:d.document_number||""}),r.jsx("td",{children:d.title||""}),r.jsx("td",{children:d.document_type||""}),r.jsx("td",{children:d.confidentiality_level||""}),r.jsx("td",{children:d.meeting_id||""}),r.jsx("td",{children:LC(d.uploaded_at)}),r.jsx("td",{className:"row-actions",children:r.jsx("button",{className:"mini-btn danger",type:"button",onClick:()=>m(d.id),children:"Löschen"})})]},d.id)):r.jsx("tr",{children:r.jsx("td",{colSpan:8,children:"Keine Reports gefunden"})})})]})})]})}const Wr=new Date().getFullYear();function sc(e=Wr){return{project_code:"",name:"",description:"",status:"aktiv",calculation_mode:"sum_only",committee_id:"",project_budget_amount:"0.00",annual_budget_amount:"0.00",annual_budget_year:String(e)}}function Eu(){return{description:"",tax_code_id:"",tax_code_key:"",tax_rate_percent:"0",net_amount:"0.00"}}function yp(e=""){return{project_id:e,expense_date:new Date().toISOString().slice(0,10),title:"",vendor:"",currency:"EUR",payment_status:"offen",notes:"",lines:[Eu()]}}function Pt(e){const t=Number(e||0);return Number.isFinite(t)?t:0}function Ye(e,t="EUR"){return new Intl.NumberFormat("de-DE",{style:"currency",currency:t}).format(Pt(e))}function ac(e){return`${new Intl.NumberFormat("de-DE",{maximumFractionDigits:3}).format(Pt(e))} %`}function Hv(e){return e?String(e).slice(0,10):""}function FC(e){return e==="project_budget"?"Projektbudget":e==="annual_budget"?"Jahresbudget":"Nur Summe"}function jp(e){return{aktiv:"Aktiv",pausiert:"Pausiert",abgeschlossen:"Abgeschlossen",archiviert:"Archiviert",geplant:"Geplant",offen:"Offen",bezahlt:"Bezahlt",storniert:"Storniert"}[e]||e}function $C(e){return new RegExp("^FIN-\\d{4}-\\d+$").test(String(e||"").trim())}function qC(e,t){return{project_code:e.project_code||"",name:e.name||"",description:e.description||"",status:e.status||"aktiv",calculation_mode:e.calculation_mode||"sum_only",committee_id:e.committee_id||"",project_budget_amount:String(e.project_budget_amount||"0.00"),annual_budget_amount:String(e.annual_budget_amount||"0.00"),annual_budget_year:String(e.annual_budget_year||t||Wr)}}function VC(e){return{description:e.cost_category||e.title||"Rechnungsposition",tax_code_id:"",tax_code_key:e.cost_category||"",tax_rate_percent:String(e.tax_rate_percent||"0"),net_amount:String(e.net_amount||"0.00")}}function UC(e){const t=Array.isArray(e.lines)&&e.lines.length?e.lines.map(n=>({id:n.id||void 0,description:n.description||"",tax_code_id:n.tax_code_id||"",tax_code_key:n.tax_code_key||"",tax_rate_percent:String(n.tax_rate_percent||"0"),net_amount:String(n.net_amount||"0.00")})):[VC(e)];return{project_id:e.project_id||"",expense_date:Hv(e.expense_date),title:e.title||"",vendor:e.vendor||"",currency:e.currency||"EUR",payment_status:e.payment_status||"offen",notes:e.notes||"",lines:t}}function HC(e,t){return(t||[]).find(n=>String(n.id)===String(e.tax_code_id))}function Kv(e,t){const n=HC(e,t),i=Pt((n==null?void 0:n.tax_rate_percent)??e.tax_rate_percent),s=Pt(e.net_amount),a=Math.round(s*i/100*100)/100,o=Math.round((s+a)*100)/100;return{net:s,rate:i,tax:a,gross:o}}function KC(e,t){return(e||[]).reduce((n,i)=>{const s=Kv(i,t);return n.net+=s.net,n.tax+=s.tax,n.gross+=s.gross,n},{net:0,tax:0,gross:0})}function WC(){const[e,t]=f.useState({tax_rates:[0,7,19],tax_codes:[],payment_statuses:[],calculation_modes:[],committees:[],years:[]}),[n,i]=f.useState([]),[s,a]=f.useState([]),[o,l]=f.useState(Wr),[c,u]=f.useState(""),[m,d]=f.useState(()=>sc(Wr)),[h,x]=f.useState(()=>yp("")),[g,p]=f.useState(""),[w,b]=f.useState(!1),[v,y]=f.useState(!1),[j,k]=f.useState(""),[N,_]=f.useState(null),[S,P]=f.useState(""),[D,F]=f.useState(""),[T,M]=f.useState(!1),z=e.tax_codes||[];async function A(){try{const E=await O.get("/finance/meta");t(E||{tax_rates:[0,7,19],tax_codes:[],payment_statuses:[],calculation_modes:[],committees:[],years:[]})}catch(E){F(E.message||"Finanz-Stammdaten konnten nicht geladen werden.")}}async function $(){M(!0),F("");try{const E=await O.get(`/finance/projects?year=${encodeURIComponent(o)}`),B=new URLSearchParams;o&&B.set("year",String(o)),c&&B.set("project_id",String(c));const U=await O.get(`/finance/expenses?${B.toString()}`);i(E||[]),a(U||[])}catch(E){F(E.message||"Finanzdaten konnten nicht geladen werden.")}finally{M(!1)}}f.useEffect(()=>{A()},[]),f.useEffect(()=>{$()},[o,c]);const Z=f.useMemo(()=>{const E=new Set([Wr,Number(o),...(e.years||[]).map(Number)]);return Array.from(E).filter(Boolean).sort((B,U)=>U-B)},[e.years,o]),R=f.useMemo(()=>n.find(E=>String(E.id)===String(c)),[n,c]),K=f.useMemo(()=>s.reduce((E,B)=>(B.payment_status==="storniert"||(E.net+=Pt(B.net_amount),E.tax+=Pt(B.tax_amount),E.gross+=Pt(B.gross_amount)),E),{net:0,tax:0,gross:0}),[s]),X=f.useMemo(()=>n.reduce((E,B)=>(B.calculation_mode==="sum_only"||(E.budget+=Pt(B.active_budget_amount),E.spent+=Pt(B.active_spent_amount),E.remaining+=Pt(B.active_remaining_amount)),E),{budget:0,spent:0,remaining:0}),[n]),ae=f.useMemo(()=>KC(h.lines,z),[h.lines,z]);function J(E,B){d(U=>({...U,[E]:B}))}function ue(E,B){x(U=>({...U,[E]:B}))}function pe(E,B,U){x(C=>{const G=[...C.lines||[]];if(G[E]={...G[E],[B]:U},B==="tax_code_id"){const ne=z.find(ye=>String(ye.id)===String(U));G[E].tax_code_key=(ne==null?void 0:ne.code)||"",G[E].tax_rate_percent=String((ne==null?void 0:ne.tax_rate_percent)||0),!G[E].description&&(ne!=null&&ne.label)&&(G[E].description=ne.label)}return{...C,lines:G}})}function ee(){x(E=>({...E,lines:[...E.lines||[],Eu()]}))}function le(E){x(B=>{const U=(B.lines||[]).filter((C,G)=>G!==E);return{...B,lines:U.length?U:[Eu()]}})}async function ge(){g||m.project_code&&!$C(m.project_code)||await Y(m.annual_budget_year||o)}async function Y(E=o){y(!0);try{const B=await O.get(`/finance/projects/next-code?year=${encodeURIComponent(E||Wr)}`),U=(B==null?void 0:B.project_code)||"";return U&&d(C=>({...C,project_code:U})),U}catch(B){return F(B.message||"Projekt-Nr. konnte nicht automatisch erzeugt werden."),""}finally{y(!1)}}async function fe(){p(""),d(sc(o)),b(!0),P(""),F(""),await Y(o)}function Se(E){p(String(E.id)),d(qC(E,o)),b(!0),P(""),F("")}function he(){b(!1),p(""),d(sc(o))}function q(E){k(String(E.id)),x(UC(E)),_(null),P(""),F("")}function re(){var E;k(""),x(yp(c||((E=n[0])==null?void 0:E.id)||"")),_(null)}async function me(E){E.preventDefault(),P(""),F("");try{const B={...m,committee_id:m.committee_id||null,project_budget_amount:m.project_budget_amount||0,annual_budget_amount:m.annual_budget_amount||0,annual_budget_year:Number(m.annual_budget_year||o)};g?(await O.put(`/finance/projects/${g}`,B),P("Finanzprojekt gespeichert.")):(await O.post("/finance/projects",B),P("Finanzprojekt angelegt.")),he(),await $(),await A()}catch(B){F(B.message||"Finanzprojekt konnte nicht gespeichert werden.")}}async function V(E){if(window.confirm(`Finanzprojekt „${E.name}“ archivieren?`)){P(""),F("");try{await O.delete(`/finance/projects/${E.id}`),P("Finanzprojekt archiviert."),String(c)===String(E.id)&&u(""),await $()}catch(B){F(B.message||"Finanzprojekt konnte nicht archiviert werden.")}}}async function te(E){if(!N)return;const B=new FormData;B.append("file",N),B.append("title",`Beleg: ${h.title}`),await O.post(`/finance/expenses/${E}/documents/upload`,B)}async function Ne(E){E.preventDefault(),P(""),F("");const B=(h.lines||[]).filter(U=>Pt(U.net_amount)>0||U.tax_code_id||U.description);if(!B.length||B.some(U=>!U.tax_code_id)){F("Bitte für jede Rechnungsposition eine MwSt.-/Kostenart auswählen.");return}try{const U={project_id:Number(h.project_id),expense_date:h.expense_date,title:h.title,vendor:h.vendor,currency:(h.currency||"EUR").toUpperCase(),payment_status:h.payment_status,notes:h.notes,lines:B.map(G=>({description:G.description,tax_code_id:Number(G.tax_code_id),tax_code_key:G.tax_code_key,net_amount:Number(G.net_amount||0)}))};let C;j?(C=await O.put(`/finance/expenses/${j}`,U),P(N?"Rechnung und Beleg gespeichert.":"Rechnung gespeichert.")):(C=await O.post("/finance/expenses",U),P(N?"Rechnung mit Beleg angelegt.":"Rechnung angelegt.")),await te(C.id||j),re(),await $(),await A()}catch(U){F(U.message||"Rechnung konnte nicht gespeichert werden.")}}async function Xe(E){if(window.confirm(`Rechnung „${E.title}“ löschen?`)){P(""),F("");try{await O.delete(`/finance/expenses/${E.id}`),P("Rechnung gelöscht."),await $()}catch(B){F(B.message||"Rechnung konnte nicht gelöscht werden.")}}}return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .finance-grid { display: grid; gap: 18px; } + .finance-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; } + .finance-kpi { padding: 16px; border-radius: 20px; background: rgba(255,255,255,.78); border: 1px solid rgba(148,164,186,.22); } + .finance-kpi span { color: var(--muted); display: block; margin-bottom: 6px; } + .finance-kpi strong { font-size: 1.35rem; } + .finance-toolbar { display: flex; gap: 10px; align-items: end; flex-wrap: wrap; margin-bottom: 14px; } + .finance-toolbar label { min-width: 180px; } + .finance-inline { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } + .finance-mode { display: inline-block; padding: 4px 9px; border-radius: 999px; background: rgba(44,107,237,.10); color: #1d4ed8; font-size: .84rem; font-weight: 700; } + .finance-danger { color: var(--danger); font-weight: 700; } + .finance-ok { color: var(--success); font-weight: 700; } + .receipt-list { display: grid; gap: 6px; } + .receipt-actions { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 4px; } + .finance-code-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; } + .finance-budget-box { border: 1px solid rgba(44,107,237,.18); background: #f8fbff; border-radius: 18px; padding: 14px; display: grid; gap: 12px; } + .finance-budget-box h3 { margin: 0; font-size: 1rem; color: #0f172a; } + .finance-help { margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.45; } + .invoice-lines { display: grid; gap: 12px; } + .invoice-line { border: 1px solid rgba(148,164,186,.26); background: #fff; border-radius: 18px; padding: 14px; display: grid; gap: 12px; } + .invoice-line-header { display: flex; justify-content: space-between; gap: 12px; align-items: center; } + .invoice-line-grid { display: grid; grid-template-columns: 1.2fr 1.4fr .7fr; gap: 12px; } + .invoice-line-sums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; } + .invoice-total-box { padding: 14px; border-radius: 18px; background: #f8fafc; border: 1px solid rgba(148,164,186,.28); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; } + .invoice-total-box span, .invoice-line-sums span { color: var(--muted); display: block; font-size: .86rem; } + .invoice-total-box strong { font-size: 1.15rem; } + .expense-lines-list { margin: 6px 0 0; padding-left: 18px; color: var(--muted); } + .finance-modal-backdrop { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 24px; background: rgba(15, 23, 42, 0.62); backdrop-filter: blur(2px); } + .finance-modal-panel { width: min(820px, 96vw); max-height: min(92vh, 920px); overflow: hidden; display: flex; flex-direction: column; border-radius: 22px; background: #ffffff; color: #0f172a; border: 1px solid rgba(15, 23, 42, 0.12); box-shadow: 0 30px 90px rgba(15, 23, 42, 0.34), 0 8px 24px rgba(15, 23, 42, 0.18); } + .finance-modal-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 22px 24px 18px; background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%); border-bottom: 1px solid rgba(148, 164, 184, 0.28); } + .finance-modal-header h2 { margin: 0; color: #0f172a; font-size: 1.35rem; } + .finance-modal-subtitle { margin: 6px 0 0; color: #64748b; line-height: 1.45; } + .finance-modal-close { flex: 0 0 auto; width: 36px; height: 36px; border: 1px solid rgba(148, 164, 184, 0.35); border-radius: 999px; background: #ffffff; color: #0f172a; cursor: pointer; font-size: 1.3rem; line-height: 1; box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08); } + .finance-modal-close:hover { background: #f1f5f9; } + .finance-modal-body { padding: 22px 24px; overflow: auto; background: #ffffff; } + .finance-modal-footer { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; padding-top: 4px; } + @media (max-width: 1100px) { .finance-kpis, .finance-inline, .invoice-line-grid, .invoice-line-sums, .invoice-total-box { grid-template-columns: 1fr; } .finance-modal-backdrop { padding: 12px; align-items: start; } .finance-modal-panel { width: 100%; max-height: calc(100vh - 24px); } } + `}),r.jsxs("div",{className:"finance-grid",children:[D?r.jsx("div",{className:"alert error",children:D}):null,S?r.jsx("div",{className:"alert success",children:S}):null,r.jsxs(de,{title:"Finanzen",subtitle:"Rechnungen mit mehreren Positionen erfassen, unterschiedliche MwSt.-Sätze verwenden und Kosten auf Projektebene überwachen.",actions:r.jsxs("div",{className:"row-actions",children:[r.jsx("button",{className:"btn",type:"button",onClick:fe,children:"Finanzprojekt anlegen"}),r.jsx("button",{className:"btn secondary",type:"button",onClick:$,disabled:T,children:T?"Lade…":"Aktualisieren"})]}),children:[r.jsxs("div",{className:"finance-toolbar",children:[r.jsxs("label",{children:[r.jsx("span",{children:"Auswertungsjahr"}),r.jsx("select",{className:"input",value:o,onChange:E=>l(Number(E.target.value)),children:Z.map(E=>r.jsx("option",{value:E,children:E},E))})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Projektfilter"}),r.jsxs("select",{className:"input",value:c,onChange:E=>u(E.target.value),children:[r.jsx("option",{value:"",children:"Alle Projekte"}),n.map(E=>r.jsxs("option",{value:E.id,children:[E.project_code?`${E.project_code} · `:"",E.name]},E.id))]})]})]}),r.jsxs("div",{className:"finance-kpis",children:[r.jsxs("div",{className:"finance-kpi",children:[r.jsx("span",{children:"Rechnungen netto"}),r.jsx("strong",{children:Ye(K.net)})]}),r.jsxs("div",{className:"finance-kpi",children:[r.jsx("span",{children:"Steueranteil"}),r.jsx("strong",{children:Ye(K.tax)})]}),r.jsxs("div",{className:"finance-kpi",children:[r.jsx("span",{children:"Rechnungen brutto"}),r.jsx("strong",{children:Ye(K.gross)})]}),r.jsxs("div",{className:"finance-kpi",children:[r.jsx("span",{children:"Budget Rest"}),r.jsx("strong",{className:X.remaining<0?"finance-danger":"finance-ok",children:Ye(X.remaining)})]})]})]}),r.jsx(de,{title:j?"Rechnung bearbeiten":"Rechnung erfassen",subtitle:"Eine Rechnung kann mehrere Positionen mit unterschiedlichen MwSt.-Sätzen enthalten. Die Sätze werden im Adminbereich gepflegt.",children:r.jsxs("form",{className:"form-grid",onSubmit:Ne,children:[r.jsxs("label",{children:[r.jsx("span",{children:"Projekt"}),r.jsxs("select",{required:!0,className:"input",value:h.project_id,onChange:E=>ue("project_id",E.target.value),children:[r.jsx("option",{value:"",children:"Projekt wählen"}),n.map(E=>r.jsx("option",{value:E.id,children:E.name},E.id))]})]}),r.jsxs("div",{className:"finance-inline",children:[r.jsxs("label",{children:[r.jsx("span",{children:"Rechnungsdatum"}),r.jsx("input",{className:"input",type:"date",required:!0,value:h.expense_date,onChange:E=>ue("expense_date",E.target.value)})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Status"}),r.jsxs("select",{className:"input",value:h.payment_status,onChange:E=>ue("payment_status",E.target.value),children:[r.jsx("option",{value:"geplant",children:"Geplant"}),r.jsx("option",{value:"offen",children:"Offen"}),r.jsx("option",{value:"bezahlt",children:"Bezahlt"}),r.jsx("option",{value:"storniert",children:"Storniert"})]})]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Rechnungstitel"}),r.jsx("input",{className:"input",required:!0,value:h.title,onChange:E=>ue("title",E.target.value)})]}),r.jsxs("div",{className:"finance-inline",children:[r.jsxs("label",{children:[r.jsx("span",{children:"Lieferant / Empfänger"}),r.jsx("input",{className:"input",value:h.vendor,onChange:E=>ue("vendor",E.target.value)})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Währung"}),r.jsx("input",{className:"input",maxLength:"3",value:h.currency,onChange:E=>ue("currency",E.target.value.toUpperCase())})]})]}),r.jsxs("div",{className:"invoice-lines",children:[r.jsxs("div",{className:"invoice-line-header",children:[r.jsx("strong",{children:"Rechnungspositionen"}),r.jsx("button",{className:"mini-btn",type:"button",onClick:ee,children:"Position hinzufügen"})]}),(h.lines||[]).map((E,B)=>{const U=Kv(E,z);return r.jsxs("div",{className:"invoice-line",children:[r.jsxs("div",{className:"invoice-line-header",children:[r.jsxs("strong",{children:["Position ",B+1]}),r.jsx("button",{className:"mini-btn danger",type:"button",onClick:()=>le(B),disabled:(h.lines||[]).length<=1,children:"Entfernen"})]}),r.jsxs("div",{className:"invoice-line-grid",children:[r.jsxs("label",{children:[r.jsx("span",{children:"Bezeichnung"}),r.jsx("input",{className:"input",value:E.description,onChange:C=>pe(B,"description",C.target.value),placeholder:"z. B. Bürobedarf"})]}),r.jsxs("label",{children:[r.jsx("span",{children:"MwSt.-/Kostenart"}),r.jsxs("select",{className:"input",required:!0,value:E.tax_code_id,onChange:C=>pe(B,"tax_code_id",C.target.value),children:[r.jsx("option",{value:"",children:"Auswählen"}),z.map(C=>r.jsxs("option",{value:C.id,children:[C.label," · ",ac(C.tax_rate_percent)]},C.id))]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Netto"}),r.jsx("input",{className:"input",type:"number",min:"0",step:"0.01",required:!0,value:E.net_amount,onChange:C=>pe(B,"net_amount",C.target.value)})]})]}),r.jsxs("div",{className:"invoice-line-sums",children:[r.jsxs("div",{children:[r.jsx("span",{children:"MwSt."}),r.jsx("strong",{children:ac(U.rate)})]}),r.jsxs("div",{children:[r.jsx("span",{children:"Steuer"}),r.jsx("strong",{children:Ye(U.tax,h.currency||"EUR")})]}),r.jsxs("div",{children:[r.jsx("span",{children:"Brutto"}),r.jsx("strong",{children:Ye(U.gross,h.currency||"EUR")})]})]})]},B)})]}),r.jsxs("div",{className:"invoice-total-box",children:[r.jsxs("div",{children:[r.jsx("span",{children:"Netto gesamt"}),r.jsx("strong",{children:Ye(ae.net,h.currency||"EUR")})]}),r.jsxs("div",{children:[r.jsx("span",{children:"Steuer gesamt"}),r.jsx("strong",{children:Ye(ae.tax,h.currency||"EUR")})]}),r.jsxs("div",{children:[r.jsx("span",{children:"Brutto gesamt"}),r.jsx("strong",{children:Ye(ae.gross,h.currency||"EUR")})]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Beleg hochladen"}),r.jsx("input",{className:"input",type:"file",onChange:E=>{var B;return _(((B=E.target.files)==null?void 0:B[0])||null)}})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Notizen"}),r.jsx("textarea",{className:"textarea",value:h.notes,onChange:E=>ue("notes",E.target.value)})]}),r.jsxs("div",{className:"row-actions",children:[r.jsx("button",{className:"btn",type:"submit",children:j?"Rechnung speichern":"Rechnung anlegen"}),j?r.jsx("button",{className:"btn secondary",type:"button",onClick:re,children:"Abbrechen"}):null]})]})}),r.jsx(de,{title:"Projektübersicht",subtitle:`Budgetbetrachtung für ${o}. Bei Projektbudget wird gegen alle Rechnungen gerechnet, bei Jahresbudget nur gegen das ausgewählte Jahr.`,children:r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"Projekt"}),r.jsx("th",{children:"Berechnung"}),r.jsx("th",{children:"Budget"}),r.jsx("th",{children:"Rechnungen"}),r.jsx("th",{children:"Rest"}),r.jsx("th",{children:"Aktionen"})]})}),r.jsxs("tbody",{children:[n.map(E=>{const B=E.active_remaining_amount;return r.jsxs("tr",{children:[r.jsxs("td",{children:[r.jsx("strong",{children:E.name}),r.jsx("br",{}),r.jsxs("small",{children:[E.project_code||"ohne Nummer"," · ",jp(E.status),E.committee_name?` · ${E.committee_name}`:""]})]}),r.jsxs("td",{children:[r.jsx("span",{className:"finance-mode",children:FC(E.calculation_mode)}),r.jsx("br",{}),r.jsxs("small",{children:[E.expense_count," Rechnungen"]})]}),r.jsxs("td",{children:[E.active_budget_amount===null?"—":Ye(E.active_budget_amount),E.calculation_mode==="annual_budget"?r.jsxs(r.Fragment,{children:[r.jsx("br",{}),r.jsxs("small",{children:["Jahr: ",E.annual_budget_year]})]}):null]}),r.jsxs("td",{children:[Ye(E.active_spent_amount),r.jsx("br",{}),r.jsxs("small",{children:["gesamt: ",Ye(E.gross_total)]})]}),r.jsx("td",{children:B===null?"—":r.jsx("span",{className:Pt(B)<0?"finance-danger":"finance-ok",children:Ye(B)})}),r.jsx("td",{children:r.jsxs("div",{className:"row-actions",children:[r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>{u(String(E.id)),x(U=>({...U,project_id:String(E.id)}))},children:"Filtern"}),r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>Se(E),children:"Bearbeiten"}),r.jsx("button",{className:"mini-btn danger",type:"button",onClick:()=>V(E),children:"Archivieren"})]})})]},E.id)}),n.length?null:r.jsx("tr",{children:r.jsx("td",{colSpan:"6",children:"Noch keine Finanzprojekte vorhanden."})})]})]})})}),r.jsx(de,{title:"Rechnungen",subtitle:R?`Gefiltert auf ${R.name}`:"Alle Rechnungen im ausgewählten Jahr",children:r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"Datum"}),r.jsx("th",{children:"Rechnung"}),r.jsx("th",{children:"Projekt"}),r.jsx("th",{children:"Summen"}),r.jsx("th",{children:"Status"}),r.jsx("th",{children:"Belege"}),r.jsx("th",{children:"Aktionen"})]})}),r.jsxs("tbody",{children:[s.map(E=>r.jsxs("tr",{children:[r.jsx("td",{children:Hv(E.expense_date)}),r.jsxs("td",{children:[r.jsx("strong",{children:E.title}),r.jsx("br",{}),r.jsx("small",{children:E.vendor||"kein Lieferant"}),Array.isArray(E.lines)&&E.lines.length?r.jsx("ul",{className:"expense-lines-list",children:E.lines.map(B=>r.jsxs("li",{children:[B.description," · ",ac(B.tax_rate_percent)," · ",Ye(B.gross_amount,E.currency)]},B.id||B.line_no))}):null]}),r.jsx("td",{children:E.project_name}),r.jsxs("td",{children:[Ye(E.net_amount,E.currency)," netto",r.jsx("br",{}),r.jsxs("small",{children:["Steuer ",Ye(E.tax_amount,E.currency),r.jsx("br",{}),"brutto ",Ye(E.gross_amount,E.currency)]})]}),r.jsx("td",{children:jp(E.payment_status)}),r.jsx("td",{children:r.jsxs("div",{className:"receipt-list",children:[(E.documents||[]).map(B=>r.jsxs("div",{children:[r.jsx("strong",{children:B.title}),r.jsx("br",{}),r.jsxs("small",{children:[B.file_name," · ",B.scan_status]}),r.jsxs("div",{className:"receipt-actions",children:[r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>_i(`/finance/documents/${B.id}/view`),children:"Öffnen"}),r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>ji(`/finance/documents/${B.id}/download`,B.file_name||"beleg"),children:"Download"})]})]},B.id)),(E.documents||[]).length?null:r.jsx("small",{children:"Kein Beleg"})]})}),r.jsx("td",{children:r.jsxs("div",{className:"row-actions",children:[r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>q(E),children:"Bearbeiten"}),r.jsx("button",{className:"mini-btn danger",type:"button",onClick:()=>Xe(E),children:"Löschen"})]})})]},E.id)),s.length?null:r.jsx("tr",{children:r.jsx("td",{colSpan:"7",children:"Keine Rechnungen für die aktuelle Auswahl vorhanden."})})]})]})})})]}),w?r.jsx("div",{className:"finance-modal-backdrop",onMouseDown:he,children:r.jsxs("div",{className:"finance-modal-panel",role:"dialog","aria-modal":"true","aria-labelledby":"finance-project-modal-title",onMouseDown:E=>E.stopPropagation(),children:[r.jsxs("div",{className:"finance-modal-header",children:[r.jsxs("div",{children:[r.jsx("h2",{id:"finance-project-modal-title",children:g?"Finanzprojekt bearbeiten":"Finanzprojekt anlegen"}),r.jsx("p",{className:"finance-modal-subtitle",children:"Hier werden Projektbudget und Jahresbudget gepflegt. Das Jahresbudget gilt genau für das unten angegebene Jahr."})]}),r.jsx("button",{className:"finance-modal-close",type:"button",onClick:he,"aria-label":"Schließen",children:"×"})]}),r.jsx("div",{className:"finance-modal-body",children:r.jsxs("form",{className:"form-grid",onSubmit:me,children:[r.jsxs("div",{className:"finance-inline",children:[r.jsxs("label",{children:[r.jsx("span",{children:"Projekt-Nr."}),r.jsxs("div",{className:"finance-code-row",children:[r.jsx("input",{className:"input",value:m.project_code,onChange:E=>J("project_code",E.target.value),placeholder:"wird automatisch generiert"}),g?null:r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>Y(m.annual_budget_year||o),disabled:v,children:v?"…":"Neu"})]}),r.jsxs("small",{children:["Format: FIN-",m.annual_budget_year||o,"-0001. Die Nummer kann bei Bedarf überschrieben werden."]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Status"}),r.jsxs("select",{className:"input",value:m.status,onChange:E=>J("status",E.target.value),children:[r.jsx("option",{value:"aktiv",children:"Aktiv"}),r.jsx("option",{value:"pausiert",children:"Pausiert"}),r.jsx("option",{value:"abgeschlossen",children:"Abgeschlossen"}),r.jsx("option",{value:"archiviert",children:"Archiviert"})]})]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Name"}),r.jsx("input",{className:"input",required:!0,value:m.name,onChange:E=>J("name",E.target.value)})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Berechnungsart"}),r.jsx("select",{className:"input",value:m.calculation_mode,onChange:E=>J("calculation_mode",E.target.value),children:(e.calculation_modes||[]).map(E=>r.jsx("option",{value:E.value,children:E.label},E.value))})]}),r.jsxs("div",{className:"finance-budget-box",children:[r.jsx("h3",{children:"Budgetsteuerung"}),r.jsx("p",{className:"finance-help",children:"Das Projektbudget ist ein Gesamtbudget für das ganze Projekt. Das Jahresbudget wird separat mit Jahr gespeichert und in der Projektübersicht für das ausgewählte Auswertungsjahr verwendet."}),r.jsxs("div",{className:"finance-inline",children:[r.jsxs("label",{children:[r.jsx("span",{children:"Projektbudget gesamt"}),r.jsx("input",{className:"input",type:"number",step:"0.01",min:"0",value:m.project_budget_amount,onChange:E=>J("project_budget_amount",E.target.value)})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Jahr für Jahresbudget"}),r.jsx("input",{className:"input",type:"number",min:"2000",max:"2100",value:m.annual_budget_year,onChange:E=>J("annual_budget_year",E.target.value),onBlur:ge})]})]}),r.jsxs("label",{children:[r.jsxs("span",{children:["Jahresbudget für ",m.annual_budget_year]}),r.jsx("input",{className:"input",type:"number",step:"0.01",min:"0",value:m.annual_budget_amount,onChange:E=>J("annual_budget_amount",E.target.value)})]})]}),r.jsx("div",{className:"finance-inline",children:r.jsxs("label",{children:[r.jsx("span",{children:"Ausschuss"}),r.jsxs("select",{className:"input",value:m.committee_id,onChange:E=>J("committee_id",E.target.value),children:[r.jsx("option",{value:"",children:"Kein Ausschuss"}),(e.committees||[]).map(E=>r.jsx("option",{value:E.id,children:E.name},E.id))]})]})}),r.jsxs("label",{children:[r.jsx("span",{children:"Beschreibung"}),r.jsx("textarea",{className:"textarea",value:m.description,onChange:E=>J("description",E.target.value)})]}),r.jsxs("div",{className:"finance-modal-footer",children:[r.jsx("button",{className:"btn secondary",type:"button",onClick:he,children:"Abbrechen"}),r.jsx("button",{className:"btn",type:"submit",children:g?"Projekt speichern":"Projekt anlegen"})]})]})})]})}):null]})}function _p(){return{code:"",label:"",tax_rate_percent:"19",is_active:!0,sort_order:"1000"}}function GC(e){const t=Number(e||0);return Number.isFinite(t)?t:0}function XC(e){return`${new Intl.NumberFormat("de-DE",{maximumFractionDigits:3}).format(GC(e))} %`}function wp(e){return String(e||"").trim().replace(/\s+/g,"_").replace(/[^a-zA-Z0-9_()%./%-]/g,"_")}function QC(){const[e,t]=f.useState([]),[n,i]=f.useState(()=>_p()),[s,a]=f.useState(""),[o,l]=f.useState(!0),[c,u]=f.useState(""),[m,d]=f.useState(""),[h,x]=f.useState(!1);async function g(){x(!0),d("");try{const k=await O.get(`/finance/tax-codes${o?"":"?active=true"}`);t(k||[])}catch(k){d(k.message||"MwSt.-Sätze konnten nicht geladen werden.")}finally{x(!1)}}f.useEffect(()=>{g()},[o]);const p=f.useMemo(()=>e.filter(k=>k.is_active).length,[e]);function w(k,N){i(_=>({..._,[k]:N}))}function b(){a(""),i(_p())}function v(k){a(String(k.id)),i({code:k.code||"",label:k.label||"",tax_rate_percent:String(k.tax_rate_percent??"0"),is_active:!!k.is_active,sort_order:String(k.sort_order??"1000")}),u(""),d("")}async function y(k){k.preventDefault(),u(""),d("");const N={...n,code:wp(n.code),label:n.label.trim(),tax_rate_percent:Number(n.tax_rate_percent||0),sort_order:Number(n.sort_order||1e3),is_active:!!n.is_active};if(!N.code||!N.label){d("Code und Bezeichnung sind Pflichtfelder.");return}try{s?(await O.put(`/finance/tax-codes/${s}`,N),u("MwSt.-/Kostenart gespeichert.")):(await O.post("/finance/tax-codes",N),u("MwSt.-/Kostenart angelegt.")),b(),await g()}catch(_){d(_.message||"MwSt.-/Kostenart konnte nicht gespeichert werden.")}}async function j(k){if(window.confirm(`MwSt.-/Kostenart „${k.label}“ deaktivieren?`)){u(""),d("");try{await O.delete(`/finance/tax-codes/${k.id}`),u("MwSt.-/Kostenart deaktiviert."),await g()}catch(N){d(N.message||"MwSt.-/Kostenart konnte nicht deaktiviert werden.")}}}return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .tax-code-grid { display: grid; gap: 18px; } + .tax-code-form { display: grid; gap: 12px; } + .tax-code-inline { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; } + .tax-code-badge { display: inline-block; padding: 4px 9px; border-radius: 999px; font-weight: 700; font-size: .84rem; } + .tax-code-badge.active { background: rgba(22, 163, 74, .12); color: #15803d; } + .tax-code-badge.inactive { background: rgba(100, 116, 139, .14); color: #475569; } + @media (max-width: 900px) { .tax-code-inline { grid-template-columns: 1fr; } } + `}),r.jsxs("div",{className:"tax-code-grid",children:[m?r.jsx("div",{className:"alert error",children:m}):null,c?r.jsx("div",{className:"alert success",children:c}):null,r.jsx(de,{title:"MwSt.-Sätze Finanzen",subtitle:"Hier werden die Kostenarten und MwSt.-Sätze gepflegt, die bei Rechnungspositionen im Finanzmodul als Dropdown angeboten werden.",actions:r.jsxs("div",{className:"row-actions",children:[r.jsxs("label",{className:"checkbox-row",children:[r.jsx("input",{type:"checkbox",checked:o,onChange:k=>l(k.target.checked)}),r.jsx("span",{children:"Inaktive anzeigen"})]}),r.jsx("button",{className:"btn secondary",type:"button",onClick:g,disabled:h,children:h?"Lade…":"Aktualisieren"})]}),children:r.jsxs("p",{className:"muted",children:["Aktive Einträge: ",p,". Der Satz wird in Prozent gepflegt, also z. B. ",r.jsx("strong",{children:"19"})," für 19 % oder ",r.jsx("strong",{children:"7"})," für 7 %."]})}),r.jsx(de,{title:s?"MwSt.-/Kostenart bearbeiten":"MwSt.-/Kostenart anlegen",children:r.jsxs("form",{className:"tax-code-form",onSubmit:y,children:[r.jsxs("div",{className:"tax-code-inline",children:[r.jsxs("label",{children:[r.jsx("span",{children:"Code"}),r.jsx("input",{className:"input",required:!0,value:n.code,onChange:k=>w("code",k.target.value),onBlur:k=>w("code",wp(k.target.value)),placeholder:"z. B. Buerobedarf_19%"})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Bezeichnung"}),r.jsx("input",{className:"input",required:!0,value:n.label,onChange:k=>w("label",k.target.value),placeholder:"z. B. Bürobedarf 19%"})]})]}),r.jsxs("div",{className:"tax-code-inline",children:[r.jsxs("label",{children:[r.jsx("span",{children:"MwSt.-Satz in %"}),r.jsx("input",{className:"input",type:"number",min:"0",max:"100",step:"0.001",required:!0,value:n.tax_rate_percent,onChange:k=>w("tax_rate_percent",k.target.value)})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Sortierung"}),r.jsx("input",{className:"input",type:"number",min:"0",step:"1",value:n.sort_order,onChange:k=>w("sort_order",k.target.value)})]})]}),r.jsxs("label",{className:"checkbox-row",children:[r.jsx("input",{type:"checkbox",checked:n.is_active,onChange:k=>w("is_active",k.target.checked)}),r.jsx("span",{children:"Aktiv und in Rechnungen auswählbar"})]}),r.jsxs("div",{className:"row-actions",children:[r.jsx("button",{className:"btn",type:"submit",children:s?"Speichern":"Anlegen"}),s?r.jsx("button",{className:"btn secondary",type:"button",onClick:b,children:"Abbrechen"}):null]})]})}),r.jsx(de,{title:"Vorhandene MwSt.-/Kostenarten",children:r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"Sort."}),r.jsx("th",{children:"Code"}),r.jsx("th",{children:"Bezeichnung"}),r.jsx("th",{children:"MwSt."}),r.jsx("th",{children:"Status"}),r.jsx("th",{children:"Aktionen"})]})}),r.jsxs("tbody",{children:[e.map(k=>r.jsxs("tr",{children:[r.jsx("td",{children:k.sort_order}),r.jsx("td",{children:r.jsx("code",{children:k.code})}),r.jsx("td",{children:r.jsx("strong",{children:k.label})}),r.jsx("td",{children:XC(k.tax_rate_percent)}),r.jsx("td",{children:r.jsx("span",{className:`tax-code-badge ${k.is_active?"active":"inactive"}`,children:k.is_active?"Aktiv":"Inaktiv"})}),r.jsx("td",{children:r.jsxs("div",{className:"row-actions",children:[r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>v(k),children:"Bearbeiten"}),k.is_active?r.jsx("button",{className:"mini-btn danger",type:"button",onClick:()=>j(k),children:"Deaktivieren"}):null]})})]},k.id)),e.length?null:r.jsx("tr",{children:r.jsx("td",{colSpan:"6",children:"Keine MwSt.-/Kostenarten vorhanden."})})]})]})})})]})]})}function oc(){return{code:"",label:"",description:"",sort_order:"1000",is_active:!0}}function lc(e){return String(e||"").trim().toLowerCase().replace(/ä/g,"ae").replace(/ö/g,"oe").replace(/ü/g,"ue").replace(/ß/g,"ss").replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"").slice(0,80)}function ZC(e){return{code:e.code||"",label:e.label||"",description:e.description||"",sort_order:String(e.sort_order??1e3),is_active:!!e.is_active}}function YC(){const[e,t]=f.useState([]),[n,i]=f.useState(()=>oc()),[s,a]=f.useState(""),[o,l]=f.useState(!1),[c,u]=f.useState(!0),[m,d]=f.useState(""),[h,x]=f.useState(""),[g,p]=f.useState(!1);async function w(){p(!0),x("");try{const S=await O.get(`/departments${c?"":"?active=true"}`);t(Array.isArray(S)?S:[])}catch(S){x(S.message||"Abteilungen konnten nicht geladen werden.")}finally{p(!1)}}f.useEffect(()=>{w()},[c]),f.useEffect(()=>{if(!o)return;const S=document.body.style.overflow;document.body.style.overflow="hidden";function P(D){D.key==="Escape"&&k()}return window.addEventListener("keydown",P),()=>{document.body.style.overflow=S,window.removeEventListener("keydown",P)}},[o]);const b=f.useMemo(()=>e.filter(S=>S.is_active).length,[e]);function v(S,P){i(D=>({...D,[S]:P}))}function y(){a(""),i(oc()),d(""),x(""),l(!0)}function j(S){a(String(S.id)),i(ZC(S)),d(""),x(""),l(!0)}function k(){l(!1),a(""),i(oc())}async function N(S){S.preventDefault(),d(""),x("");const P=n.label.trim(),D=lc(n.code||P);if(!P){x("Bitte eine Bezeichnung eingeben.");return}if(!D){x("Bitte einen gültigen Code eingeben.");return}const F={code:D,label:P,description:n.description.trim()||null,sort_order:Number(n.sort_order||1e3),is_active:!!n.is_active};try{s?(await O.put(`/departments/${s}`,F),d("Abteilung gespeichert.")):(await O.post("/departments",F),d("Abteilung angelegt.")),k(),await w()}catch(T){x(T.message||"Abteilung konnte nicht gespeichert werden.")}}async function _(S){const P=Number(S.usage_count||0)>0,D=P?`Abteilung „${S.label}“ wird in ${S.usage_count} Vorgang/Vorgängen verwendet und deshalb deaktiviert. Fortfahren?`:`Abteilung „${S.label}“ löschen?`;if(window.confirm(D)){d(""),x("");try{await O.delete(`/departments/${S.id}`),d(P?"Abteilung deaktiviert.":"Abteilung gelöscht."),await w()}catch(F){x(F.message||"Abteilung konnte nicht gelöscht werden.")}}}return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .department-grid { display: grid; gap: 18px; } + .department-badge { display: inline-block; padding: 4px 9px; border-radius: 999px; font-weight: 700; font-size: .84rem; } + .department-badge.active { background: rgba(22, 163, 74, .12); color: #15803d; } + .department-badge.inactive { background: rgba(100, 116, 139, .14); color: #475569; } + .department-modal-backdrop { + position: fixed; + inset: 0; + z-index: 1000; + display: grid; + place-items: center; + padding: 24px; + background: rgba(15, 23, 42, 0.62); + backdrop-filter: blur(2px); + } + .department-modal-panel { + width: min(760px, 96vw); + max-height: min(92vh, 920px); + overflow: hidden; + display: flex; + flex-direction: column; + border-radius: 22px; + background: #ffffff; + color: #0f172a; + border: 1px solid rgba(15, 23, 42, 0.12); + box-shadow: 0 30px 90px rgba(15, 23, 42, 0.34), 0 8px 24px rgba(15, 23, 42, 0.18); + } + .department-modal-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 16px; + padding: 22px 24px 18px; + background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%); + border-bottom: 1px solid rgba(148, 164, 184, 0.28); + } + .department-modal-header h2 { margin: 0; color: #0f172a; font-size: 1.35rem; } + .department-modal-subtitle { margin: 6px 0 0; color: #64748b; line-height: 1.45; } + .department-modal-close { + flex: 0 0 auto; + width: 36px; + height: 36px; + border: 1px solid rgba(148, 164, 184, 0.35); + border-radius: 999px; + background: #ffffff; + color: #0f172a; + cursor: pointer; + font-size: 1.3rem; + line-height: 1; + box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08); + } + .department-modal-close:hover { background: #f1f5f9; } + .department-modal-body { padding: 22px 24px; overflow: auto; background: #ffffff; } + .department-inline { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } + .department-modal-footer { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; padding-top: 4px; } + @media (max-width: 900px) { + .department-inline { grid-template-columns: 1fr; } + .department-modal-backdrop { padding: 12px; align-items: start; } + .department-modal-panel { width: 100%; max-height: calc(100vh - 24px); } + } + `}),r.jsxs("div",{className:"department-grid",children:[h?r.jsx("div",{className:"alert error",children:h}):null,m?r.jsx("div",{className:"alert success",children:m}):null,r.jsx(de,{title:"Abteilungen",subtitle:"Hier werden die Abteilungen gepflegt, die im Vorgangs-Dialog unter Abteilung auswählbar sind.",actions:r.jsxs("div",{className:"row-actions",children:[r.jsxs("label",{className:"checkbox-row",children:[r.jsx("input",{type:"checkbox",checked:c,onChange:S=>u(S.target.checked)}),r.jsx("span",{children:"Inaktive anzeigen"})]}),r.jsx("button",{className:"btn",type:"button",onClick:y,children:"Abteilung hinzufügen"}),r.jsx("button",{className:"btn secondary",type:"button",onClick:w,disabled:g,children:g?"Lade…":"Aktualisieren"})]}),children:r.jsxs("p",{className:"muted",children:["Aktive Abteilungen: ",b,". Abteilungen, die bereits in Vorgängen verwendet werden, werden beim Löschen deaktiviert, damit ältere Vorgänge lesbar bleiben."]})}),r.jsx(de,{title:"Vorhandene Abteilungen",children:r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"Sort."}),r.jsx("th",{children:"Code"}),r.jsx("th",{children:"Bezeichnung"}),r.jsx("th",{children:"Verwendung"}),r.jsx("th",{children:"Status"}),r.jsx("th",{children:"Aktionen"})]})}),r.jsxs("tbody",{children:[e.map(S=>r.jsxs("tr",{children:[r.jsx("td",{children:S.sort_order}),r.jsx("td",{children:r.jsx("code",{children:S.code})}),r.jsxs("td",{children:[r.jsx("strong",{children:S.label}),S.description?r.jsxs(r.Fragment,{children:[r.jsx("br",{}),r.jsx("small",{children:S.description})]}):null]}),r.jsxs("td",{children:[S.usage_count||0," Vorgänge"]}),r.jsx("td",{children:r.jsx("span",{className:`department-badge ${S.is_active?"active":"inactive"}`,children:S.is_active?"Aktiv":"Inaktiv"})}),r.jsx("td",{children:r.jsxs("div",{className:"row-actions",children:[r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>j(S),children:"Bearbeiten"}),r.jsx("button",{className:"mini-btn danger",type:"button",onClick:()=>_(S),children:Number(S.usage_count||0)>0?"Deaktivieren":"Löschen"})]})})]},S.id)),e.length?null:r.jsx("tr",{children:r.jsx("td",{colSpan:"6",children:"Keine Abteilungen vorhanden."})})]})]})})})]}),o?r.jsx("div",{className:"department-modal-backdrop",onMouseDown:k,children:r.jsxs("div",{className:"department-modal-panel",role:"dialog","aria-modal":"true","aria-labelledby":"department-modal-title",onMouseDown:S=>S.stopPropagation(),children:[r.jsxs("div",{className:"department-modal-header",children:[r.jsxs("div",{children:[r.jsx("h2",{id:"department-modal-title",children:s?"Abteilung bearbeiten":"Abteilung hinzufügen"}),r.jsx("p",{className:"department-modal-subtitle",children:"Der Code wird im Vorgang gespeichert. Beim Ändern des Codes werden vorhandene Vorgänge automatisch mit umgestellt."})]}),r.jsx("button",{className:"department-modal-close",type:"button",onClick:k,"aria-label":"Schließen",children:"×"})]}),r.jsx("div",{className:"department-modal-body",children:r.jsxs("form",{className:"form-grid",onSubmit:N,children:[r.jsxs("div",{className:"department-inline",children:[r.jsxs("label",{children:[r.jsx("span",{children:"Code"}),r.jsx("input",{className:"input",required:!0,value:n.code,onChange:S=>v("code",S.target.value),onBlur:S=>v("code",lc(S.target.value||n.label)),placeholder:"z. B. personal"})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Bezeichnung"}),r.jsx("input",{className:"input",required:!0,value:n.label,onChange:S=>v("label",S.target.value),onBlur:()=>{n.code||v("code",lc(n.label))},placeholder:"z. B. Personal"})]})]}),r.jsxs("div",{className:"department-inline",children:[r.jsxs("label",{children:[r.jsx("span",{children:"Sortierung"}),r.jsx("input",{className:"input",type:"number",min:"0",step:"1",value:n.sort_order,onChange:S=>v("sort_order",S.target.value)})]}),r.jsxs("label",{className:"checkbox-row",style:{alignSelf:"end",minHeight:42},children:[r.jsx("input",{type:"checkbox",checked:n.is_active,onChange:S=>v("is_active",S.target.checked)}),r.jsx("span",{children:"Aktiv und im Vorgang auswählbar"})]})]}),r.jsxs("label",{className:"full",children:[r.jsx("span",{children:"Beschreibung"}),r.jsx("textarea",{className:"textarea",value:n.description,onChange:S=>v("description",S.target.value)})]}),r.jsxs("div",{className:"department-modal-footer full",children:[r.jsx("button",{className:"btn secondary",type:"button",onClick:k,children:"Abbrechen"}),r.jsx("button",{className:"btn",type:"submit",children:s?"Speichern":"Anlegen"})]})]})})]})}):null]})}function cc(){return{code:"",label:"",description:"",sort_order:"1000",is_active:!0}}function uc(e){return String(e||"").trim().toLowerCase().replace(/ä/g,"ae").replace(/ö/g,"oe").replace(/ü/g,"ue").replace(/ß/g,"ss").replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"").slice(0,80)}function JC(e){return{code:e.code||"",label:e.label||"",description:e.description||"",sort_order:String(e.sort_order??1e3),is_active:!!e.is_active}}function e5(){const[e,t]=f.useState([]),[n,i]=f.useState(()=>cc()),[s,a]=f.useState(""),[o,l]=f.useState(!1),[c,u]=f.useState(!0),[m,d]=f.useState(""),[h,x]=f.useState(""),[g,p]=f.useState(!1),w=f.useMemo(()=>e.filter(S=>S.is_active).length,[e]);async function b(){p(!0),x("");try{const S=await O.get(`/document-categories${c?"":"?active=true"}`);t(Array.isArray(S)?S:[])}catch(S){x(S.message||"Dokumentenkategorien konnten nicht geladen werden.")}finally{p(!1)}}f.useEffect(()=>{b()},[c]),f.useEffect(()=>{if(!o)return;const S=document.body.style.overflow;document.body.style.overflow="hidden";function P(D){D.key==="Escape"&&k()}return window.addEventListener("keydown",P),()=>{document.body.style.overflow=S,window.removeEventListener("keydown",P)}},[o]);function v(S,P){i(D=>({...D,[S]:P}))}function y(){a(""),i(cc()),d(""),x(""),l(!0)}function j(S){a(String(S.id)),i(JC(S)),d(""),x(""),l(!0)}function k(){l(!1),a(""),i(cc())}async function N(S){S.preventDefault(),d(""),x("");const P={...n,code:uc(n.code||n.label),label:n.label.trim(),description:n.description.trim()||null,sort_order:Number(n.sort_order||1e3),is_active:!!n.is_active};if(!P.code||!P.label){x("Code und Bezeichnung sind erforderlich.");return}try{s?(await O.put(`/document-categories/${s}`,P),d("Dokumentenkategorie gespeichert.")):(await O.post("/document-categories",P),d("Dokumentenkategorie angelegt.")),k(),await b()}catch(D){x(D.message||"Dokumentenkategorie konnte nicht gespeichert werden.")}}async function _(S){const P=Number(S.usage_count||0)>0,D=P?`Dokumentenkategorie „${S.label}“ wird in ${S.usage_count} Dokument(en) verwendet und deshalb deaktiviert. Fortfahren?`:`Dokumentenkategorie „${S.label}“ löschen?`;if(window.confirm(D)){d(""),x("");try{await O.delete(`/document-categories/${S.id}`),d(P?"Dokumentenkategorie deaktiviert.":"Dokumentenkategorie gelöscht."),await b()}catch(F){x(F.message||"Dokumentenkategorie konnte nicht gelöscht werden.")}}}return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .document-category-grid { display: grid; gap: 18px; } + .document-category-badge { display: inline-block; padding: 4px 9px; border-radius: 999px; font-weight: 700; font-size: .84rem; } + .document-category-badge.active { background: rgba(22, 163, 74, .12); color: #15803d; } + .document-category-badge.inactive { background: rgba(100, 116, 139, .14); color: #475569; } + .document-category-modal-backdrop { + position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 24px; + background: rgba(15, 23, 42, 0.62); backdrop-filter: blur(2px); + } + .document-category-modal-panel { + width: min(760px, 96vw); max-height: min(92vh, 920px); overflow: hidden; display: flex; flex-direction: column; + border-radius: 22px; background: #ffffff; color: #0f172a; border: 1px solid rgba(15, 23, 42, 0.12); + box-shadow: 0 30px 90px rgba(15, 23, 42, 0.34), 0 8px 24px rgba(15, 23, 42, 0.18); + } + .document-category-modal-header { + display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 22px 24px 18px; + background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%); border-bottom: 1px solid rgba(148, 164, 184, 0.28); + } + .document-category-modal-header h2 { margin: 0; color: #0f172a; font-size: 1.35rem; } + .document-category-modal-subtitle { margin: 6px 0 0; color: #64748b; line-height: 1.45; } + .document-category-modal-close { + flex: 0 0 auto; width: 36px; height: 36px; border: 1px solid rgba(148, 164, 184, 0.35); border-radius: 999px; + background: #ffffff; color: #0f172a; cursor: pointer; font-size: 1.3rem; line-height: 1; box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08); + } + .document-category-modal-close:hover { background: #f1f5f9; } + .document-category-modal-body { padding: 22px 24px; overflow: auto; background: #ffffff; } + .document-category-inline { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } + .document-category-modal-footer { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; padding-top: 4px; } + @media (max-width: 900px) { + .document-category-inline { grid-template-columns: 1fr; } + .document-category-modal-backdrop { padding: 12px; align-items: start; } + .document-category-modal-panel { width: 100%; max-height: calc(100vh - 24px); } + } + `}),r.jsxs("div",{className:"document-category-grid",children:[h?r.jsx("div",{className:"alert error",children:h}):null,m?r.jsx("div",{className:"alert success",children:m}):null,r.jsx(de,{title:"Dokumentenkategorien",subtitle:"Hier werden die Kategorien gepflegt, die im Dokument-Dialog auswählbar und als Filter nutzbar sind.",actions:r.jsxs("div",{className:"row-actions",children:[r.jsxs("label",{className:"checkbox-row",children:[r.jsx("input",{type:"checkbox",checked:c,onChange:S=>u(S.target.checked)}),r.jsx("span",{children:"Inaktive anzeigen"})]}),r.jsx("button",{className:"btn",type:"button",onClick:y,children:"Kategorie hinzufügen"}),r.jsx("button",{className:"btn secondary",type:"button",onClick:b,disabled:g,children:g?"Lade…":"Aktualisieren"})]}),children:r.jsxs("p",{className:"muted",children:["Aktive Kategorien: ",w,". Kategorien, die bereits in Dokumenten verwendet werden, werden beim Löschen deaktiviert."]})}),r.jsx(de,{title:"Vorhandene Kategorien",children:r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"Sort."}),r.jsx("th",{children:"Code"}),r.jsx("th",{children:"Bezeichnung"}),r.jsx("th",{children:"Verwendung"}),r.jsx("th",{children:"Status"}),r.jsx("th",{children:"Aktionen"})]})}),r.jsxs("tbody",{children:[e.map(S=>r.jsxs("tr",{children:[r.jsx("td",{children:S.sort_order}),r.jsx("td",{children:r.jsx("code",{children:S.code})}),r.jsxs("td",{children:[r.jsx("strong",{children:S.label}),S.description?r.jsxs(r.Fragment,{children:[r.jsx("br",{}),r.jsx("small",{children:S.description})]}):null]}),r.jsxs("td",{children:[S.usage_count||0," Dokumente"]}),r.jsx("td",{children:r.jsx("span",{className:`document-category-badge ${S.is_active?"active":"inactive"}`,children:S.is_active?"Aktiv":"Inaktiv"})}),r.jsx("td",{children:r.jsxs("div",{className:"row-actions",children:[r.jsx("button",{className:"mini-btn",type:"button",onClick:()=>j(S),children:"Bearbeiten"}),r.jsx("button",{className:"mini-btn danger",type:"button",onClick:()=>_(S),children:Number(S.usage_count||0)>0?"Deaktivieren":"Löschen"})]})})]},S.id)),e.length?null:r.jsx("tr",{children:r.jsx("td",{colSpan:"6",children:"Keine Dokumentenkategorien vorhanden."})})]})]})})})]}),o?r.jsx("div",{className:"document-category-modal-backdrop",onMouseDown:k,children:r.jsxs("div",{className:"document-category-modal-panel",role:"dialog","aria-modal":"true","aria-labelledby":"document-category-modal-title",onMouseDown:S=>S.stopPropagation(),children:[r.jsxs("div",{className:"document-category-modal-header",children:[r.jsxs("div",{children:[r.jsx("h2",{id:"document-category-modal-title",children:s?"Dokumentenkategorie bearbeiten":"Dokumentenkategorie hinzufügen"}),r.jsx("p",{className:"document-category-modal-subtitle",children:"Der Code dient als technischer Schlüssel, die Bezeichnung wird im Dokument-Dialog angezeigt."})]}),r.jsx("button",{className:"document-category-modal-close",type:"button",onClick:k,"aria-label":"Schließen",children:"×"})]}),r.jsx("div",{className:"document-category-modal-body",children:r.jsxs("form",{className:"form-grid",onSubmit:N,children:[r.jsxs("div",{className:"document-category-inline",children:[r.jsxs("label",{children:[r.jsx("span",{children:"Code"}),r.jsx("input",{className:"input",required:!0,value:n.code,onChange:S=>v("code",S.target.value),onBlur:S=>v("code",uc(S.target.value||n.label)),placeholder:"z. B. protokoll"})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Bezeichnung"}),r.jsx("input",{className:"input",required:!0,value:n.label,onChange:S=>v("label",S.target.value),onBlur:()=>{n.code||v("code",uc(n.label))},placeholder:"z. B. Protokoll"})]})]}),r.jsxs("div",{className:"document-category-inline",children:[r.jsxs("label",{children:[r.jsx("span",{children:"Sortierung"}),r.jsx("input",{className:"input",type:"number",min:"0",step:"1",value:n.sort_order,onChange:S=>v("sort_order",S.target.value)})]}),r.jsxs("label",{className:"checkbox-row",style:{alignSelf:"end",minHeight:42},children:[r.jsx("input",{type:"checkbox",checked:n.is_active,onChange:S=>v("is_active",S.target.checked)}),r.jsx("span",{children:"Aktiv und im Dokument auswählbar"})]})]}),r.jsxs("label",{className:"full",children:[r.jsx("span",{children:"Beschreibung"}),r.jsx("textarea",{className:"textarea",value:n.description,onChange:S=>v("description",S.target.value)})]}),r.jsxs("div",{className:"document-category-modal-footer full",children:[r.jsx("button",{className:"btn secondary",type:"button",onClick:k,children:"Abbrechen"}),r.jsx("button",{className:"btn",type:"submit",children:s?"Speichern":"Anlegen"})]})]})})]})}):null]})}const Wv="http://localhost:8080/api",ja="br_public_documents_access_token";async function kp(e,t={}){const n=await fetch(`${Wv}${e}`,{credentials:"include",headers:{...t.body?{"Content-Type":"application/json"}:{},...t.headers||{}},...t}),i=await n.json().catch(()=>({}));if(!n.ok){const s=new Error(i.error||"Anfrage konnte nicht verarbeitet werden.");throw s.status=n.status,s}return i}function t5(e){return e?new Intl.DateTimeFormat("de-DE",{dateStyle:"medium"}).format(new Date(e)):""}function Sp(e,t="view",n=""){const i=n?`?access_token=${encodeURIComponent(n)}`:"";return`${Wv}/public/documents/${e}/${t}${i}`}function n5(){const[e,t]=f.useState({enabled:!1,authenticated:!1,intro_text:"",documents:[]}),[n,i]=f.useState(()=>sessionStorage.getItem(ja)||""),[s,a]=f.useState(""),[o,l]=f.useState(""),[c,u]=f.useState(""),[m,d]=f.useState(!0),[h,x]=f.useState(!1);async function g(v=n){d(!0),l("");try{const y=v?`?access_token=${encodeURIComponent(v)}`:"",j=await kp(`/public/documents/status${y}`);t(j||{}),v&&(j!=null&&j.enabled)&&!(j!=null&&j.authenticated)&&(sessionStorage.removeItem(ja),i(""))}catch(y){l(y.message||"Die öffentliche Dokumentenseite konnte nicht geladen werden.")}finally{d(!1)}}f.useEffect(()=>{g(n)},[]);async function p(v){v.preventDefault(),l(""),u("");const y=s.trim();if(y.length<4){l("Das Kennwort muss mindestens 4 Zeichen lang sein.");return}x(!0);try{const k=(await kp("/public/documents/access",{method:"POST",body:JSON.stringify({password:y})})).accessToken||"";sessionStorage.setItem(ja,k),i(k),a(""),u("Zugriff freigeschaltet."),await g(k)}catch(j){l(j.message||"Kennwort konnte nicht geprüft werden.")}finally{x(!1)}}function w(){sessionStorage.removeItem(ja),i(""),a(""),u("Zugriff wurde gesperrt."),g("")}const b=!!(e.enabled&&e.authenticated&&n);return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .public-doc-page { min-height: 100vh; background: radial-gradient(circle at top left, rgba(37, 99, 235, 0.16), transparent 32%), #f6f8fb; padding: 32px 16px; color: #0f172a; } + .public-doc-shell { width: min(980px, 100%); margin: 0 auto; display: grid; gap: 18px; } + .public-doc-card { background: #ffffff; border: 1px solid rgba(148, 164, 184, 0.24); border-radius: 24px; box-shadow: 0 24px 80px rgba(15, 23, 42, 0.12); overflow: hidden; } + .public-doc-header { padding: 28px 30px 22px; border-bottom: 1px solid rgba(148, 164, 184, 0.22); background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%); } + .public-doc-header h1 { margin: 0; font-size: clamp(1.6rem, 3vw, 2.35rem); } + .public-doc-header p { margin: 10px 0 0; color: #64748b; line-height: 1.55; white-space: pre-wrap; } + .public-doc-body { padding: 26px 30px 30px; display: grid; gap: 14px; } + .public-doc-item { border: 1px solid rgba(148, 164, 184, 0.28); border-radius: 18px; padding: 16px; display: grid; gap: 10px; background: #ffffff; } + .public-doc-item h2 { margin: 0; font-size: 1.1rem; } + .public-doc-meta { color: #64748b; font-size: .92rem; display: flex; gap: 8px; flex-wrap: wrap; } + .public-doc-description { color: #334155; line-height: 1.5; white-space: pre-wrap; margin: 0; } + .public-doc-actions { display: flex; gap: 8px; flex-wrap: wrap; } + .public-doc-btn { display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 999px; padding: 10px 14px; font-weight: 800; text-decoration: none; background: #2563eb; color: #ffffff; cursor: pointer; } + .public-doc-btn.secondary { background: #e2e8f0; color: #0f172a; } + .public-doc-alert { border-radius: 16px; padding: 12px 14px; font-weight: 700; } + .public-doc-alert.error { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; } + .public-doc-alert.success { background: #ecfdf5; color: #065f46; border: 1px solid #bbf7d0; } + .public-doc-note { color: #64748b; line-height: 1.5; } + .public-doc-access { border: 1px solid rgba(37, 99, 235, .18); background: #f8fbff; border-radius: 18px; padding: 18px; display: grid; gap: 12px; } + .public-doc-access h2 { margin: 0; font-size: 1.15rem; } + .public-doc-form { display: grid; gap: 10px; max-width: 420px; } + .public-doc-form label { display: grid; gap: 6px; font-weight: 700; } + .public-doc-input { width: 100%; border: 1px solid rgba(148, 164, 184, .5); border-radius: 14px; padding: 11px 12px; font: inherit; } + `}),r.jsx("div",{className:"public-doc-page",children:r.jsx("div",{className:"public-doc-shell",children:r.jsxs("div",{className:"public-doc-card",children:[r.jsxs("div",{className:"public-doc-header",children:[r.jsx("h1",{children:"Öffentliche Dokumente"}),r.jsx("p",{children:e.intro_text||"Vom Betriebsrat freigegebene Dokumente"})]}),r.jsxs("div",{className:"public-doc-body",children:[o?r.jsx("div",{className:"public-doc-alert error",children:o}):null,c?r.jsx("div",{className:"public-doc-alert success",children:c}):null,m?r.jsx("p",{className:"public-doc-note",children:"Dokumente werden geladen …"}):null,!m&&!e.enabled?r.jsx("p",{className:"public-doc-note",children:"Die öffentliche Dokumentenseite ist derzeit nicht freigeschaltet."}):null,!m&&e.enabled&&!b?r.jsxs("div",{className:"public-doc-access",children:[r.jsx("h2",{children:"Kennwort erforderlich"}),r.jsx("p",{className:"public-doc-note",children:"Diese Seite ist nicht frei öffentlich. Bitte geben Sie das bekannte Kennwort ein, um die freigegebenen Dokumente anzuzeigen."}),r.jsxs("form",{className:"public-doc-form",onSubmit:p,children:[r.jsxs("label",{children:[r.jsx("span",{children:"Kennwort"}),r.jsx("input",{className:"public-doc-input",type:"password",minLength:"4",value:s,onChange:v=>a(v.target.value),autoComplete:"current-password"})]}),r.jsx("button",{className:"public-doc-btn",type:"submit",disabled:h,children:h?"Prüfe…":"Dokumente anzeigen"})]})]}):null,!m&&b&&!(e.documents||[]).length?r.jsx("p",{className:"public-doc-note",children:"Derzeit sind keine öffentlichen Dokumente verfügbar."}):null,b?r.jsx("div",{className:"public-doc-actions",children:r.jsx("button",{className:"public-doc-btn secondary",type:"button",onClick:w,children:"Zugriff sperren"})}):null,b?(e.documents||[]).map(v=>r.jsxs("article",{className:"public-doc-item",children:[r.jsxs("div",{children:[r.jsx("h2",{children:v.title}),r.jsxs("div",{className:"public-doc-meta",children:[r.jsx("span",{children:v.document_number}),v.category_label?r.jsxs("span",{children:["· ",v.category_label]}):null,v.file_name?r.jsxs("span",{children:["· ",v.file_name]}):null,v.uploaded_at?r.jsxs("span",{children:["· ",t5(v.uploaded_at)]}):null]})]}),v.description?r.jsx("p",{className:"public-doc-description",children:v.description}):null,r.jsxs("div",{className:"public-doc-actions",children:[r.jsx("a",{className:"public-doc-btn",href:Sp(v.id,"view",n),target:"_blank",rel:"noreferrer",children:"Dokument öffnen"}),r.jsx("a",{className:"public-doc-btn secondary",href:Sp(v.id,"download",n),children:"Download"})]})]},v.id)):null]})]})})})]})}function dc(){return{enabled:!1,password_set:!1,access_password:"",clear_password:!1,intro_text:"Vom Betriebsrat freigegebene Dokumente"}}function r5(e){return e?new Intl.DateTimeFormat("de-DE",{dateStyle:"short",timeStyle:"short"}).format(new Date(e)):""}function i5(){const[e,t]=f.useState(dc()),[n,i]=f.useState([]),[s,a]=f.useState("/public-documents"),[o,l]=f.useState(!1),[c,u]=f.useState(""),[m,d]=f.useState(""),h=f.useMemo(()=>typeof window>"u"?s:`${window.location.origin}${s}`,[s]);async function x(){l(!0),d("");try{const b=await O.get("/documents/public-settings");t({...dc(),...b.settings||{},access_password:"",clear_password:!1}),i(Array.isArray(b.documents)?b.documents:[]),a(b.public_path||"/public-documents")}catch(b){d(b.message||"Einstellungen für öffentliche Dokumente konnten nicht geladen werden.")}finally{l(!1)}}f.useEffect(()=>{x()},[]);function g(b,v){t(y=>{const j={...y,[b]:v};return b==="access_password"&&v&&(j.clear_password=!1),b==="clear_password"&&v&&(j.access_password=""),j})}async function p(b){b.preventDefault(),d(""),u("");const v=String(e.access_password||"").trim(),y=!!v||!!e.password_set&&!e.clear_password;if(v&&v.length<4){d("Das globale Kennwort muss mindestens 4 Zeichen lang sein.");return}if(e.enabled&&!y){d("Zum Einschalten der öffentlichen Dokumentenseite muss ein Kennwort mit mindestens 4 Zeichen gesetzt sein.");return}const j={enabled:!!e.enabled,intro_text:e.intro_text||"",access_password:v,clear_password:!!e.clear_password};try{const k=await O.put("/documents/public-settings",j);u("Einstellungen für öffentliche Dokumente gespeichert."),t({...dc(),...k.settings||{},access_password:"",clear_password:!1}),await x()}catch(k){d(k.message||"Einstellungen konnten nicht gespeichert werden.")}}async function w(){try{await navigator.clipboard.writeText(h),u("Öffentliche URL kopiert.")}catch{d("URL konnte nicht in die Zwischenablage kopiert werden.")}}return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .public-doc-admin-grid { display: grid; gap: 18px; } + .public-doc-admin-two { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; } + .public-doc-admin-form { display: grid; gap: 14px; } + .public-doc-admin-status-row { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; } + .public-doc-admin-status { display: inline-flex; align-items: center; gap: 8px; border-radius: 999px; padding: 6px 10px; font-weight: 800; } + .public-doc-admin-status.on { background: #ecfdf5; color: #065f46; } + .public-doc-admin-status.off { background: #fef2f2; color: #991b1b; } + .public-doc-admin-status.neutral { background: #eff6ff; color: #1d4ed8; } + .public-doc-admin-url { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; } + .public-doc-admin-url code { background: rgba(15, 23, 42, .06); padding: 9px 11px; border-radius: 12px; word-break: break-all; } + .public-doc-admin-note { color: var(--muted); line-height: 1.45; margin: 0; } + .public-doc-admin-form .check-row { display: flex; align-items: center; gap: 10px; font-weight: 700; } + .public-doc-admin-password-box { border: 1px solid rgba(37, 99, 235, .18); background: #f8fbff; border-radius: 18px; padding: 14px; display: grid; gap: 12px; } + .public-doc-admin-password-box h3 { margin: 0; font-size: 1rem; color: #0f172a; } + @media (max-width: 980px) { .public-doc-admin-two { grid-template-columns: 1fr; } } + `}),r.jsxs("div",{className:"public-doc-admin-grid",children:[m?r.jsx("div",{className:"alert error",children:m}):null,c?r.jsx("div",{className:"alert success",children:c}):null,r.jsxs(de,{title:"Öffentliche Dokumente",subtitle:"Fast öffentliche Seite für Dokumente mit Vertraulichkeit „Öffentlich“. Der Zugriff ist nur mit globalem Kennwort möglich.",actions:r.jsx("button",{className:"btn secondary",type:"button",onClick:x,disabled:o,children:o?"Lade…":"Aktualisieren"}),children:[r.jsxs("div",{className:"public-doc-admin-status-row",children:[r.jsx("span",{className:`public-doc-admin-status ${e.enabled?"on":"off"}`,children:e.enabled?"Eingeschaltet":"Ausgeschaltet"}),r.jsx("span",{className:`public-doc-admin-status ${e.password_set?"neutral":"off"}`,children:e.password_set?"Kennwort gesetzt":"Kein Kennwort gesetzt"})]}),r.jsxs("div",{className:"public-doc-admin-url",style:{marginTop:12},children:[r.jsx("code",{children:h}),r.jsx("button",{className:"mini-btn",type:"button",onClick:w,children:"URL kopieren"})]})]}),r.jsxs("div",{className:"public-doc-admin-two",children:[r.jsx(de,{title:"Einstellungen",subtitle:"Auf der öffentlichen Seite erscheinen nur Dokumente mit Vertraulichkeit „Öffentlich“ und erfolgreichem Virenscan — nach Kennworteingabe.",children:r.jsxs("form",{className:"public-doc-admin-form",onSubmit:p,children:[r.jsxs("label",{className:"check-row",children:[r.jsx("input",{type:"checkbox",checked:!!e.enabled,onChange:b=>g("enabled",b.target.checked)}),r.jsx("span",{children:"Öffentliche Dokumentenseite einschalten"})]}),r.jsxs("div",{className:"public-doc-admin-password-box",children:[r.jsx("h3",{children:"Kennwortschutz"}),r.jsx("p",{className:"public-doc-admin-note",children:"Passwortregel: Das globale Kennwort muss mindestens 4 Zeichen lang sein. Ohne Kennwort kann die öffentliche Dokumentenseite nicht eingeschaltet werden."}),r.jsxs("label",{children:[r.jsx("span",{children:"Globales Kennwort setzen/ändern"}),r.jsx("input",{className:"input",type:"password",minLength:"4",value:e.access_password||"",onChange:b=>g("access_password",b.target.value),placeholder:e.password_set?"Neues Kennwort eingeben, um es zu ändern":"Kennwort mindestens 4 Zeichen",autoComplete:"new-password"})]}),e.password_set?r.jsxs("label",{className:"check-row",children:[r.jsx("input",{type:"checkbox",checked:!!e.clear_password,onChange:b=>g("clear_password",b.target.checked)}),r.jsx("span",{children:"Kennwort entfernen"})]}):null]}),r.jsxs("label",{children:[r.jsx("span",{children:"Beschreibung der öffentlichen Seite"}),r.jsx("textarea",{className:"input textarea",value:e.intro_text||"",onChange:b=>g("intro_text",b.target.value)})]}),r.jsx("p",{className:"public-doc-admin-note",children:"Dokumente werden auf der öffentlichen Seite bereitgestellt, wenn sie im Dokument-Dialog die Vertraulichkeit „Öffentlich“ erhalten. Sichtbar sind sie erst nach Eingabe des globalen Kennworts."}),r.jsx("button",{className:"btn",type:"submit",children:"Einstellungen speichern"})]})}),r.jsx(de,{title:"Öffentlich freigegebene Dokumente",subtitle:"Diese Dokumente werden nach Kennworteingabe auf der öffentlichen Seite gelistet.",children:r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"Dokument"}),r.jsx("th",{children:"Kategorie"}),r.jsx("th",{children:"Scan"}),r.jsx("th",{children:"Hochgeladen"})]})}),r.jsxs("tbody",{children:[n.map(b=>r.jsxs("tr",{children:[r.jsxs("td",{children:[r.jsx("strong",{children:b.title}),r.jsx("br",{}),r.jsxs("small",{children:[b.document_number," · ",b.file_name]})]}),r.jsx("td",{children:b.category_label||"—"}),r.jsx("td",{children:b.scan_status}),r.jsx("td",{children:r5(b.uploaded_at)})]},b.id)),n.length?null:r.jsx("tr",{children:r.jsx("td",{colSpan:"4",children:"Noch keine öffentlich freigegebenen Dokumente vorhanden."})})]})]})})})]})]})]})}function Np(){return{code:"",name:"",description:"",is_active:!0}}function fc(){return{code:"",name:"",description:"",can_view_cases:!1,can_write_cases:!1,can_view_documents:!1,can_write_documents:!1,is_active:!0}}function _a(e,t){const n=new Set(e||[]);return n.has(t)?n.delete(t):n.add(t),Array.from(n)}function s5(){const[e,t]=f.useState({pages:[],permissions:[],role_profiles:[],team_roles:[],users:[]}),[n,i]=f.useState(""),[s,a]=f.useState({page_keys:[],permission_keys:[]}),[o,l]=f.useState(Np()),[c,u]=f.useState(fc()),[m,d]=f.useState(""),[h,x]=f.useState(""),[g,p]=f.useState({role_profile_ids:[],team_role_ids:[]}),[w,b]=f.useState(""),[v,y]=f.useState("");async function j(){var A;y("");try{const $=await O.get("/permissions/matrix");t($||{pages:[],permissions:[],role_profiles:[],team_roles:[],users:[]});const Z=(A=$==null?void 0:$.role_profiles)==null?void 0:A[0];!n&&Z&&(i(String(Z.id)),a({page_keys:Z.page_keys||[],permission_keys:Z.permission_keys||[]}))}catch($){y($.message||"Rechtematrix konnte nicht geladen werden.")}}f.useEffect(()=>{j()},[]);const k=f.useMemo(()=>e.role_profiles.find(A=>String(A.id)===String(n)),[e.role_profiles,n]),N=f.useMemo(()=>e.users.find(A=>String(A.id)===String(h)),[e.users,h]),_=f.useMemo(()=>{const A=new Map;for(const $ of e.permissions||[]){const Z=$.category||"Sonstige";A.has(Z)||A.set(Z,[]),A.get(Z).push($)}return Array.from(A.entries())},[e.permissions]);function S(A){const $=e.role_profiles.find(Z=>String(Z.id)===String(A));i(A),a({page_keys:($==null?void 0:$.page_keys)||[],permission_keys:($==null?void 0:$.permission_keys)||[]}),b(""),y("")}function P(A){const $=e.team_roles.find(Z=>String(Z.id)===String(A));d(A),u($?{...$}:fc())}function D(A){const $=e.users.find(Z=>String(Z.id)===String(A));x(A),p({role_profile_ids:(($==null?void 0:$.role_profile_ids)||[]).map(Number),team_role_ids:(($==null?void 0:$.team_role_ids)||[]).map(Number)}),b(""),y("")}async function F(){if(n){y(""),b("");try{const A=await O.put(`/permissions/roles/${n}/matrix`,s);t(A),b("Rechtematrix gespeichert. Betroffene Benutzer sehen die Änderung spätestens nach Aktualisierung der Seite oder erneutem Login.")}catch(A){y(A.message||"Rechtematrix konnte nicht gespeichert werden.")}}}async function T(A){A.preventDefault(),y(""),b("");try{await O.post("/permissions/roles",o),l(Np()),await j(),b("Neue Rolle erstellt.")}catch($){y($.message||"Rolle konnte nicht erstellt werden.")}}async function M(A){A.preventDefault(),y(""),b("");try{m?(await O.put(`/permissions/team-roles/${m}`,c),b("Teamrolle gespeichert.")):(await O.post("/permissions/team-roles",c),b("Teamrolle erstellt.")),d(""),u(fc()),await j()}catch($){y($.message||"Teamrolle konnte nicht gespeichert werden.")}}async function z(){if(h){y(""),b("");try{const A=await O.put(`/permissions/users/${h}/assignments`,g);t(A),b("Benutzer-Zuweisungen gespeichert.")}catch(A){y(A.message||"Zuweisungen konnten nicht gespeichert werden.")}}}return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .permissions-grid { display: grid; gap: 16px; } + .permissions-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; } + .permission-list { display: grid; gap: 8px; } + .permission-check { display: flex; gap: 8px; align-items: flex-start; padding: 8px 10px; border: 1px solid rgba(148,163,184,.35); border-radius: 12px; } + .permission-check small { display: block; opacity: .7; margin-top: 2px; } + .role-list { display: flex; gap: 8px; flex-wrap: wrap; } + .role-pill { border: 1px solid rgba(148,163,184,.45); background: rgba(255,255,255,.55); border-radius: 999px; padding: 8px 12px; cursor: pointer; } + .role-pill.active { font-weight: 700; background: rgba(37,99,235,.12); color: #1d4ed8; } + .mini-form { display: grid; gap: 10px; } + @media (max-width: 980px) { .permissions-two-col { grid-template-columns: 1fr; } } + `}),r.jsxs("div",{className:"permissions-grid",children:[v?r.jsx("div",{className:"alert error",children:v}):null,w?r.jsx("div",{className:"alert success",children:w}):null,r.jsxs(de,{title:"Rechtematrix",subtitle:"Seiten werden im Menü ausgeblendet, wenn keine zugewiesene Rolle die Seite freigibt. Custom-Rollen können zusätzliche Seiten und Rechte bekommen.",actions:r.jsx("button",{className:"btn",type:"button",disabled:!n,onClick:F,children:"Matrix speichern"}),children:[r.jsx("div",{className:"role-list",style:{marginBottom:14},children:e.role_profiles.map(A=>r.jsxs("button",{type:"button",className:`role-pill ${String(A.id)===String(n)?"active":""}`,onClick:()=>S(String(A.id)),children:[A.name,A.is_system?" · System":""]},A.id))}),k?r.jsxs("div",{className:"permissions-two-col",children:[r.jsxs("div",{children:[r.jsx("h3",{children:"Webseiten"}),r.jsx("div",{className:"permission-list",children:e.pages.map(A=>r.jsxs("label",{className:"permission-check",children:[r.jsx("input",{type:"checkbox",checked:s.page_keys.includes(A.page_key),onChange:()=>a($=>({...$,page_keys:_a($.page_keys,A.page_key)}))}),r.jsxs("span",{children:[r.jsx("strong",{children:A.label}),r.jsxs("small",{children:[A.path," · ",A.description]})]})]},A.page_key))})]}),r.jsxs("div",{children:[r.jsx("h3",{children:"Funktionsrechte"}),_.map(([A,$])=>r.jsxs("div",{style:{marginBottom:14},children:[r.jsx("strong",{children:A}),r.jsx("div",{className:"permission-list",style:{marginTop:8},children:$.map(Z=>r.jsxs("label",{className:"permission-check",children:[r.jsx("input",{type:"checkbox",checked:s.permission_keys.includes(Z.permission_key),onChange:()=>a(R=>({...R,permission_keys:_a(R.permission_keys,Z.permission_key)}))}),r.jsxs("span",{children:[r.jsx("strong",{children:Z.label}),r.jsxs("small",{children:[Z.permission_key," · ",Z.description]})]})]},Z.permission_key))})]},A))]})]}):r.jsx("div",{children:"Keine Rolle ausgewählt."})]}),r.jsxs("div",{className:"permissions-two-col",children:[r.jsx(de,{title:"Neue Custom-Rolle",subtitle:"Die Basisrolle am Benutzer bleibt bestehen; Custom-Rollen erweitern Seiten und Rechte.",children:r.jsxs("form",{className:"mini-form",onSubmit:T,children:[r.jsxs("label",{children:[r.jsx("span",{children:"Code"}),r.jsx("input",{className:"input",value:o.code,onChange:A=>l({...o,code:A.target.value}),placeholder:"z.B. datenschutz_team"})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Name"}),r.jsx("input",{className:"input",value:o.name,onChange:A=>l({...o,name:A.target.value})})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Beschreibung"}),r.jsx("textarea",{className:"input textarea",value:o.description,onChange:A=>l({...o,description:A.target.value})})]}),r.jsx("button",{className:"btn",type:"submit",children:"Custom-Rolle erstellen"})]})}),r.jsx(de,{title:"Teamrollen",subtitle:"Teamrollen können Vorgänge und Dokumente sichtbar machen, ohne globale Systemrechte zu vergeben.",children:r.jsxs("form",{className:"mini-form",onSubmit:M,children:[r.jsxs("label",{children:[r.jsx("span",{children:"Vorhandene Teamrolle bearbeiten"}),r.jsxs("select",{className:"input",value:m,onChange:A=>P(A.target.value),children:[r.jsx("option",{value:"",children:"Neue Teamrolle"}),e.team_roles.map(A=>r.jsx("option",{value:A.id,children:A.name},A.id))]})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Code"}),r.jsx("input",{className:"input",value:c.code,onChange:A=>u({...c,code:A.target.value})})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Name"}),r.jsx("input",{className:"input",value:c.name,onChange:A=>u({...c,name:A.target.value})})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Beschreibung"}),r.jsx("textarea",{className:"input textarea",value:c.description||"",onChange:A=>u({...c,description:A.target.value})})]}),r.jsxs("label",{className:"permission-check",children:[r.jsx("input",{type:"checkbox",checked:c.can_view_cases,onChange:A=>u({...c,can_view_cases:A.target.checked})})," Vorgänge lesen"]}),r.jsxs("label",{className:"permission-check",children:[r.jsx("input",{type:"checkbox",checked:c.can_write_cases,onChange:A=>u({...c,can_write_cases:A.target.checked})})," Vorgänge bearbeiten"]}),r.jsxs("label",{className:"permission-check",children:[r.jsx("input",{type:"checkbox",checked:c.can_view_documents,onChange:A=>u({...c,can_view_documents:A.target.checked})})," Dokumente lesen"]}),r.jsxs("label",{className:"permission-check",children:[r.jsx("input",{type:"checkbox",checked:c.can_write_documents,onChange:A=>u({...c,can_write_documents:A.target.checked})})," Dokumente bearbeiten"]}),r.jsx("button",{className:"btn",type:"submit",children:m?"Teamrolle speichern":"Teamrolle erstellen"})]})})]}),r.jsxs(de,{title:"Benutzer-Zuweisungen",subtitle:"Hier weist du Benutzern zusätzliche Custom-Rollen und Teamrollen zu.",children:[r.jsxs("div",{className:"permissions-two-col",children:[r.jsxs("label",{children:[r.jsx("span",{children:"Benutzer"}),r.jsxs("select",{className:"input",value:h,onChange:A=>D(A.target.value),children:[r.jsx("option",{value:"",children:"Bitte auswählen"}),e.users.map(A=>r.jsxs("option",{value:A.id,children:[A.full_name," · ",A.email," · Basisrolle: ",A.role]},A.id))]})]}),r.jsx("div",{style:{display:"flex",alignItems:"end"},children:r.jsx("button",{className:"btn",type:"button",disabled:!h,onClick:z,children:"Zuweisungen speichern"})})]}),N?r.jsxs("div",{className:"permissions-two-col",style:{marginTop:16},children:[r.jsxs("div",{children:[r.jsx("h3",{children:"Custom-Rollen"}),r.jsxs("div",{className:"permission-list",children:[e.role_profiles.filter(A=>!A.is_system).map(A=>r.jsxs("label",{className:"permission-check",children:[r.jsx("input",{type:"checkbox",checked:g.role_profile_ids.includes(Number(A.id)),onChange:()=>p($=>({...$,role_profile_ids:_a($.role_profile_ids.map(Number),Number(A.id))}))}),r.jsxs("span",{children:[r.jsx("strong",{children:A.name}),r.jsx("small",{children:A.description})]})]},A.id)),e.role_profiles.filter(A=>!A.is_system).length===0?r.jsx("div",{className:"helper-text",children:"Noch keine Custom-Rollen vorhanden."}):null]})]}),r.jsxs("div",{children:[r.jsx("h3",{children:"Teamrollen"}),r.jsxs("div",{className:"permission-list",children:[e.team_roles.map(A=>r.jsxs("label",{className:"permission-check",children:[r.jsx("input",{type:"checkbox",checked:g.team_role_ids.includes(Number(A.id)),onChange:()=>p($=>({...$,team_role_ids:_a($.team_role_ids.map(Number),Number(A.id))}))}),r.jsxs("span",{children:[r.jsx("strong",{children:A.name}),r.jsx("small",{children:A.description})]})]},A.id)),e.team_roles.length===0?r.jsx("div",{className:"helper-text",children:"Noch keine Teamrollen vorhanden."}):null]})]})]}):null]})]})]})}const a5="http://localhost:8080/api",mc="br_kummerkasten_access_token";function Cp(){return{title:"",submitter_name:"",submitter_contact:"",description:""}}async function pc(e,t={}){const n=await fetch(`${a5}${e}`,{...t,headers:{...t.body?{"Content-Type":"application/json"}:{},...t.headers||{}},credentials:"include"}),i=await n.json().catch(()=>({}));if(!n.ok){const s=new Error(i.error||"Anfrage konnte nicht verarbeitet werden.");throw s.status=n.status,s}return i}function o5(){const[e,t]=f.useState({enabled:!1,password_required:!0,intro_text:""}),[n,i]=f.useState(()=>sessionStorage.getItem(mc)||""),[s,a]=f.useState(""),[o,l]=f.useState(()=>Cp()),[c,u]=f.useState(""),[m,d]=f.useState(""),[h,x]=f.useState(!0),[g,p]=f.useState(!1);async function w(){x(!0),d("");try{const k=await pc("/public/kummerkasten/status");t(k||{})}catch(k){d(k.message||"Der Kummerkasten-Status konnte nicht geladen werden.")}finally{x(!1)}}f.useEffect(()=>{w()},[]);const b=f.useMemo(()=>!!n,[n]);function v(k,N){l(_=>({..._,[k]:N}))}async function y(k){if(k.preventDefault(),d(""),u(""),String(s||"").trim().length<4){d("Das Kennwort muss mindestens 4 Zeichen lang sein.");return}try{const _=(await pc("/public/kummerkasten/access",{method:"POST",body:JSON.stringify({password:s})})).accessToken||"";sessionStorage.setItem(mc,_),i(_),a(""),u("Kummerkasten freigeschaltet. Sie können jetzt einen TOP-Vorschlag einreichen.")}catch(N){d(N.message||"Kennwort konnte nicht geprüft werden.")}}async function j(k){k.preventDefault(),d(""),u(""),p(!0);try{const N={public_access_token:n,title:o.title.trim(),description:o.description.trim(),submitter_name:o.submitter_name.trim()||null,submitter_contact:o.submitter_contact.trim()||null},_=await pc("/public/kummerkasten/submit",{method:"POST",body:JSON.stringify(N)});u(`Vielen Dank. Ihr Anliegen wurde als TOP-Bestandseintrag #${_.agenda_item_id} angelegt.`),l(Cp())}catch(N){N.status===401&&(sessionStorage.removeItem(mc),i("")),d(N.message||"Einreichung konnte nicht gespeichert werden.")}finally{p(!1)}}return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .public-kummer-page { + min-height: 100vh; + background: radial-gradient(circle at top left, rgba(37, 99, 235, 0.16), transparent 32%), #f6f8fb; + padding: 32px 16px; + color: #0f172a; + } + + .public-kummer-shell { + width: min(900px, 100%); + margin: 0 auto; + display: grid; + gap: 18px; + } + + .public-kummer-card { + background: #ffffff; + border: 1px solid rgba(148, 164, 184, 0.24); + border-radius: 24px; + box-shadow: 0 24px 80px rgba(15, 23, 42, 0.12); + overflow: hidden; + } + + .public-kummer-header { + padding: 28px 30px 22px; + border-bottom: 1px solid rgba(148, 164, 184, 0.22); + background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%); + } + + .public-kummer-header h1 { + margin: 0; + font-size: clamp(1.6rem, 3vw, 2.35rem); + } + + .public-kummer-header p { + margin: 10px 0 0; + color: #64748b; + line-height: 1.55; + } + + .public-kummer-body { + padding: 26px 30px 30px; + display: grid; + gap: 16px; + } + + .public-kummer-form { + display: grid; + gap: 14px; + } + + .public-kummer-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 12px; + } + + .public-kummer-label { + display: grid; + gap: 6px; + font-weight: 700; + } + + .public-kummer-label span small { + color: #64748b; + font-weight: 500; + } + + .public-kummer-input, + .public-kummer-textarea { + width: 100%; + box-sizing: border-box; + border: 1px solid rgba(148, 164, 184, 0.55); + border-radius: 14px; + padding: 12px 13px; + font: inherit; + background: #ffffff; + color: #0f172a; + } + + .public-kummer-textarea { + min-height: 180px; + resize: vertical; + } + + .public-kummer-actions { + display: flex; + justify-content: flex-end; + gap: 10px; + flex-wrap: wrap; + } + + .public-kummer-btn { + border: 0; + border-radius: 999px; + padding: 12px 18px; + font-weight: 800; + cursor: pointer; + background: #2563eb; + color: #ffffff; + box-shadow: 0 10px 24px rgba(37, 99, 235, 0.22); + } + + .public-kummer-btn:disabled { + opacity: 0.65; + cursor: wait; + } + + .public-kummer-alert { + border-radius: 16px; + padding: 12px 14px; + font-weight: 700; + } + + .public-kummer-alert.error { + background: #fef2f2; + color: #991b1b; + border: 1px solid #fecaca; + } + + .public-kummer-alert.success { + background: #ecfdf5; + color: #065f46; + border: 1px solid #bbf7d0; + } + + .public-kummer-note { + color: #64748b; + line-height: 1.5; + font-size: 0.95rem; + } + + @media (max-width: 720px) { + .public-kummer-page { padding: 16px 10px; } + .public-kummer-header, .public-kummer-body { padding-left: 18px; padding-right: 18px; } + .public-kummer-grid { grid-template-columns: 1fr; } + .public-kummer-actions { justify-content: stretch; } + .public-kummer-btn { width: 100%; } + } + `}),r.jsx("main",{className:"public-kummer-page",children:r.jsx("div",{className:"public-kummer-shell",children:r.jsxs("section",{className:"public-kummer-card",children:[r.jsxs("div",{className:"public-kummer-header",children:[r.jsx("h1",{children:"Kummerkasten"}),r.jsxs("p",{children:[e.intro_text||"Reichen Sie hier einen Vorschlag oder ein Anliegen für die Tagesordnung ein.",e.target_committee_name?` Ziel-Gremium: ${e.target_committee_name}.`:""]})]}),r.jsxs("div",{className:"public-kummer-body",children:[h?r.jsx("div",{className:"public-kummer-note",children:"Lade Kummerkasten…"}):null,m?r.jsx("div",{className:"public-kummer-alert error",children:m}):null,c?r.jsx("div",{className:"public-kummer-alert success",children:c}):null,!h&&!e.enabled?r.jsx("div",{className:"public-kummer-alert error",children:"Der Kummerkasten ist derzeit nicht freigeschaltet."}):null,!h&&e.enabled&&!b?r.jsxs("form",{className:"public-kummer-form",onSubmit:y,children:[r.jsxs("label",{className:"public-kummer-label",children:[r.jsx("span",{children:"Globales Kennwort"}),r.jsx("input",{className:"public-kummer-input",type:"password",autoComplete:"current-password",value:s,onChange:k=>a(k.target.value),required:!0,minLength:4})]}),r.jsx("p",{className:"public-kummer-note",children:"Das Kennwort muss mindestens 4 Zeichen lang sein."}),r.jsx("div",{className:"public-kummer-actions",children:r.jsx("button",{className:"public-kummer-btn",type:"submit",children:"Kummerkasten öffnen"})})]}):null,!h&&e.enabled&&b?r.jsxs("form",{className:"public-kummer-form",onSubmit:j,children:[r.jsxs("label",{className:"public-kummer-label",children:[r.jsx("span",{children:"Titel"}),r.jsx("input",{className:"public-kummer-input",value:o.title,onChange:k=>v("title",k.target.value),required:!0,minLength:3,maxLength:220,placeholder:"Kurzer Titel für den TOP"})]}),r.jsxs("label",{className:"public-kummer-label",children:[r.jsxs("span",{children:["Name ",r.jsx("small",{children:"(optional)"})]}),r.jsx("input",{className:"public-kummer-input",value:o.submitter_name,onChange:k=>v("submitter_name",k.target.value),maxLength:255,placeholder:"Ihr Name oder anonym lassen"})]}),r.jsxs("label",{className:"public-kummer-label",children:[r.jsxs("span",{children:["Kontaktmöglichkeit ",r.jsx("small",{children:"(optional)"})]}),r.jsx("input",{className:"public-kummer-input",value:o.submitter_contact,onChange:k=>v("submitter_contact",k.target.value),maxLength:255,placeholder:"E-Mail, Telefon oder leer lassen"})]}),r.jsxs("label",{className:"public-kummer-label",children:[r.jsx("span",{children:"Beschreibung"}),r.jsx("textarea",{className:"public-kummer-textarea",value:o.description,onChange:k=>v("description",k.target.value),required:!0,minLength:3,maxLength:8e3,placeholder:"Beschreiben Sie das Anliegen möglichst konkret. Daraus wird ein TOP-Bestandseintrag erzeugt."})]}),r.jsx("p",{className:"public-kummer-note",children:"Nach dem Absenden wird automatisch ein neuer Eintrag im TOP-Bestand angelegt. Die spätere Zuordnung zu einer Sitzung erfolgt intern."}),r.jsx("div",{className:"public-kummer-actions",children:r.jsx("button",{className:"public-kummer-btn",type:"submit",disabled:g,children:g?"Wird eingereicht…":"Als TOP einreichen"})})]}):null]})]})})})]})}function hc(){return{enabled:!1,password_set:!1,access_password:"",clear_password:!1,intro_text:"Reichen Sie hier vertraulich einen Vorschlag oder ein Anliegen für die Tagesordnung ein.",target_committee_id:""}}function l5(e){return e?new Intl.DateTimeFormat("de-DE",{dateStyle:"short",timeStyle:"short"}).format(new Date(e)):""}function c5(e){const t=String(e||"").trim();return t?t.length>=4:!0}function u5(){const[e,t]=f.useState(hc()),[n,i]=f.useState([]),[s,a]=f.useState([]),[o,l]=f.useState("/kummerkasten"),[c,u]=f.useState(!1),[m,d]=f.useState(""),[h,x]=f.useState(""),g=f.useMemo(()=>typeof window>"u"?o:`${window.location.origin}${o}`,[o]);async function p(){u(!0),x("");try{const y=await O.get("/kummerkasten/settings");t({...hc(),...y.settings||{}}),i(Array.isArray(y.committees)?y.committees:[]),a(Array.isArray(y.submissions)?y.submissions:[]),l(y.public_path||"/kummerkasten")}catch(y){x(y.message||"Kummerkasten-Einstellungen konnten nicht geladen werden.")}finally{u(!1)}}f.useEffect(()=>{p()},[]);function w(y,j){t(k=>({...k,[y]:j}))}async function b(y){y.preventDefault(),x(""),d("");const j=String(e.access_password||"").trim();if(!c5(j)){x("Das globale Kennwort muss mindestens 4 Zeichen lang sein.");return}if(e.enabled&&!e.password_set&&!j){x("Zum Einschalten des Kummerkastens muss zuerst ein Kennwort eingegeben werden.");return}if(e.enabled&&e.clear_password&&!j){x("Der Kummerkasten kann nicht eingeschaltet bleiben, wenn das gespeicherte Kennwort entfernt wird.");return}const k={enabled:!!e.enabled,access_password:j,clear_password:!!e.clear_password,intro_text:e.intro_text||"",target_committee_id:e.target_committee_id||null};try{const N=await O.put("/kummerkasten/settings",k);d("Kummerkasten-Einstellungen gespeichert."),t({...hc(),...N.settings||{},access_password:"",clear_password:!1}),await p()}catch(N){x(N.message||"Kummerkasten-Einstellungen konnten nicht gespeichert werden.")}}async function v(){try{await navigator.clipboard.writeText(g),d("Öffentliche URL kopiert.")}catch{x("URL konnte nicht in die Zwischenablage kopiert werden.")}}return r.jsxs(r.Fragment,{children:[r.jsx("style",{children:` + .kummer-admin-grid { display: grid; gap: 18px; } + .kummer-admin-two { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; } + .kummer-admin-form { display: grid; gap: 14px; } + .kummer-admin-inline { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } + .kummer-admin-status { display: inline-flex; align-items: center; gap: 8px; border-radius: 999px; padding: 6px 10px; font-weight: 800; } + .kummer-admin-status.on { background: #ecfdf5; color: #065f46; } + .kummer-admin-status.off { background: #fef2f2; color: #991b1b; } + .kummer-admin-url { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; } + .kummer-admin-url code { background: rgba(15, 23, 42, .06); padding: 9px 11px; border-radius: 12px; word-break: break-all; } + .kummer-admin-note { color: var(--muted); line-height: 1.45; margin: 0; } + .kummer-admin-form .check-row { display: flex; align-items: center; gap: 10px; font-weight: 700; } + @media (max-width: 980px) { .kummer-admin-two, .kummer-admin-inline { grid-template-columns: 1fr; } } + `}),r.jsxs("div",{className:"kummer-admin-grid",children:[h?r.jsx("div",{className:"alert error",children:h}):null,m?r.jsx("div",{className:"alert success",children:m}):null,r.jsx(de,{title:"Kummerkasten",subtitle:"Fast öffentliche Seite mit globalem Kennwort. Eingereichte Anliegen werden automatisch als TOP-Bestandseinträge erzeugt.",actions:r.jsx("button",{className:"btn secondary",type:"button",onClick:p,disabled:c,children:c?"Lade…":"Aktualisieren"}),children:r.jsxs("div",{className:"kummer-admin-url",children:[r.jsx("span",{className:`kummer-admin-status ${e.enabled?"on":"off"}`,children:e.enabled?"Eingeschaltet":"Ausgeschaltet"}),r.jsx("code",{children:g}),r.jsx("button",{className:"mini-btn",type:"button",onClick:v,children:"URL kopieren"})]})}),r.jsxs("div",{className:"kummer-admin-two",children:[r.jsx(de,{title:"Einstellungen",subtitle:"Zum Einschalten muss ein Kennwort gesetzt sein. Das Kennwort wird nur als Hash gespeichert.",children:r.jsxs("form",{className:"kummer-admin-form",onSubmit:b,children:[r.jsxs("label",{className:"check-row",children:[r.jsx("input",{type:"checkbox",checked:!!e.enabled,onChange:y=>w("enabled",y.target.checked)}),r.jsx("span",{children:"Kummerkasten-Seite einschalten"})]}),r.jsxs("label",{children:[r.jsxs("span",{children:["Globales Kennwort ",e.password_set?"(bereits gesetzt)":""]}),r.jsx("input",{className:"input",type:"password",value:e.access_password||"",onChange:y=>w("access_password",y.target.value),placeholder:e.password_set?"Leer lassen, um Kennwort beizubehalten":"Kennwort setzen",autoComplete:"new-password",minLength:4,maxLength:200})]}),r.jsx("p",{className:"kummer-admin-note",children:"Passwortregel: Das globale Kennwort muss mindestens 4 Zeichen lang sein. Zum Einschalten muss ein Kennwort gespeichert sein. Wenn Sie ein neues Kennwort eintragen, wird es beim Speichern direkt übernommen."}),e.password_set?r.jsxs("label",{className:"check-row",children:[r.jsx("input",{type:"checkbox",checked:!!e.clear_password,onChange:y=>w("clear_password",y.target.checked)}),r.jsx("span",{children:"Gespeichertes Kennwort entfernen"})]}):null,r.jsxs("label",{children:[r.jsx("span",{children:"Einleitungstext der öffentlichen Seite"}),r.jsx("textarea",{className:"input textarea",value:e.intro_text||"",onChange:y=>w("intro_text",y.target.value)})]}),r.jsxs("label",{children:[r.jsx("span",{children:"Ziel-Gremium / Ausschuss"}),r.jsxs("select",{className:"input",value:e.target_committee_id||"",onChange:y=>w("target_committee_id",y.target.value),children:[r.jsx("option",{value:"",children:"Kein Ziel-Gremium"}),n.map(y=>r.jsx("option",{value:y.id,children:y.name},y.id))]})]}),r.jsx("p",{className:"kummer-admin-note",children:"Einreichungen landen im TOP-Bestand ohne Sitzungszuordnung. Die spätere Zuordnung zu einer Sitzung erfolgt wie bei normalen TOP-Bestandseinträgen."}),r.jsx("button",{className:"btn",type:"submit",children:"Einstellungen speichern"})]})}),r.jsx(de,{title:"Letzte Einreichungen",subtitle:"Die erzeugten TOPs sind zusätzlich im TOP-Bestand sichtbar.",children:r.jsx("div",{className:"table-wrap",children:r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[r.jsx("th",{children:"Zeitpunkt"}),r.jsx("th",{children:"Einreichung"}),r.jsx("th",{children:"TOP"})]})}),r.jsxs("tbody",{children:[s.map(y=>r.jsxs("tr",{children:[r.jsx("td",{children:l5(y.created_at)}),r.jsxs("td",{children:[r.jsx("strong",{children:y.title}),r.jsx("br",{}),r.jsxs("small",{children:[y.submitter_name||"anonym",y.target_committee_name?` · ${y.target_committee_name}`:""]})]}),r.jsxs("td",{children:["#",y.agenda_item_id,r.jsx("br",{}),r.jsx("small",{children:y.agenda_title})]})]},y.id)),s.length?null:r.jsx("tr",{children:r.jsx("td",{colSpan:"3",children:"Noch keine Einreichungen vorhanden."})})]})]})})})]})]})]})}function d5(){return r.jsx("div",{className:"alert error",children:"Keine Berechtigung für diese Seite."})}function f5({user:e,path:t,children:n}){return Jg(e,t)?n:r.jsx(d5,{})}function Ee(e,t,n){return r.jsx(f5,{user:e,path:t,children:n})}function m5(){const[e,t]=f.useState(()=>{const a=localStorage.getItem("br_user");return a?JSON.parse(a):null}),n=$o(),i=Jt();if(f.useEffect(()=>{if(!e)return;let a=!1;return O.get("/permissions/access").then(o=>{if(a)return;const l={...e,...o};t(l),localStorage.setItem("br_user",JSON.stringify(l))}).catch(()=>{}),()=>{a=!0}},[e==null?void 0:e.id]),i.pathname==="/kummerkasten"||i.pathname==="/public-documents")return r.jsxs(cm,{children:[r.jsx(je,{path:"/kummerkasten",element:r.jsx(o5,{})}),r.jsx(je,{path:"/public-documents",element:r.jsx(n5,{})}),r.jsx(je,{path:"*",element:r.jsx(ca,{to:i.pathname==="/public-documents"?"/public-documents":"/kummerkasten",replace:!0})})]});if(!e)return r.jsx(A1,{onLogin:a=>{t(a),n("/")}});Vo(localStorage.getItem("br_access_token")||window.__br_access_token||"");function s(){NC(),t(null),n("/")}return r.jsx(N1,{user:e,onLogout:s,children:r.jsxs(cm,{children:[r.jsx(je,{path:"/",element:Ee(e,"/",r.jsx(I1,{}))}),r.jsx(je,{path:"/committees",element:Ee(e,"/committees",r.jsx(M1,{}))}),r.jsx(je,{path:"/users",element:Ee(e,"/users",r.jsx(q1,{}))}),r.jsx(je,{path:"/cases",element:Ee(e,"/cases",r.jsx(Y1,{}))}),r.jsx(je,{path:"/deadlines",element:Ee(e,"/deadlines",r.jsx(S2,{}))}),r.jsx(je,{path:"/meetings",element:Ee(e,"/meetings",r.jsx(O2,{}))}),r.jsx(je,{path:"/agenda-items",element:Ee(e,"/agenda-items",r.jsx(F2,{}))}),r.jsx(je,{path:"/decisions",element:Ee(e,"/decisions",r.jsx(H2,{}))}),r.jsx(je,{path:"/tasks",element:Ee(e,"/tasks",r.jsx(X2,{}))}),r.jsx(je,{path:"/calendar",element:Ee(e,"/calendar",r.jsx(IC,{}))}),r.jsx(je,{path:"/documents",element:Ee(e,"/documents",r.jsx(eC,{}))}),r.jsx(je,{path:"/comments",element:Ee(e,"/comments",r.jsx(sC,{}))}),r.jsx(je,{path:"/reports",element:Ee(e,"/reports",r.jsx(MC,{}))}),r.jsx(je,{path:"/finance",element:Ee(e,"/finance",r.jsx(WC,{}))}),r.jsx(je,{path:"/finance-tax-codes",element:Ee(e,"/finance-tax-codes",r.jsx(QC,{}))}),r.jsx(je,{path:"/departments",element:Ee(e,"/departments",r.jsx(YC,{}))}),r.jsx(je,{path:"/document-categories",element:Ee(e,"/document-categories",r.jsx(e5,{}))}),r.jsx(je,{path:"/public-documents-admin",element:Ee(e,"/public-documents-admin",r.jsx(i5,{}))}),r.jsx(je,{path:"/templates",element:Ee(e,"/templates",r.jsx(uC,{}))}),r.jsx(je,{path:"/formular-editor",element:r.jsx(ca,{to:"/templates",replace:!0})}),r.jsx(je,{path:"/form-editor",element:r.jsx(ca,{to:"/templates",replace:!0})}),r.jsx(je,{path:"/notifications",element:Ee(e,"/notifications",r.jsx(fC,{}))}),r.jsx(je,{path:"/permissions",element:Ee(e,"/permissions",r.jsx(s5,{}))}),r.jsx(je,{path:"/kummerkasten-admin",element:Ee(e,"/kummerkasten-admin",r.jsx(u5,{}))}),r.jsx(je,{path:"/security",element:Ee(e,"/security",r.jsx(CC,{}))}),r.jsx(je,{path:"/audit",element:Ee(e,"/audit",r.jsx(zC,{}))}),r.jsx(je,{path:"*",element:r.jsx(ca,{to:"/",replace:!0})})]})})}gc.createRoot(document.getElementById("root")).render(r.jsx(Fp.StrictMode,{children:r.jsx(x1,{children:r.jsx(m5,{})})})); diff --git a/frontend/dist/index.html b/frontend/dist/index.html new file mode 100644 index 0000000..168c9cb --- /dev/null +++ b/frontend/dist/index.html @@ -0,0 +1,13 @@ + + + + + + BR-Office Secure + + + + +
    + + diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000..0a86549 --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,12 @@ + + + + + + BR-Office Secure + + +
    + + + diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000..f1db993 --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,3489 @@ +{ + "name": "br-office-frontend", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "br-office-frontend", + "version": "1.0.0", + "dependencies": { + "@fluentui/react-components": "^9.73.8", + "@fluentui/react-icons": "^2.0.295", + "@simplewebauthn/browser": "^13.3.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-router-dom": "^6.28.0" + }, + "devDependencies": { + "@vitejs/plugin-react": "^4.3.2", + "vite": "^5.4.8" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", + "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz", + "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz", + "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/devtools": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@floating-ui/devtools/-/devtools-0.2.3.tgz", + "integrity": "sha512-ZTcxTvgo9CRlP7vJV62yCxdqmahHTGpSTi5QaTDgGoyQq0OyjaVZhUhXv/qdkQFOI3Sxlfmz0XGG4HaZMsDf8Q==", + "license": "MIT", + "peerDependencies": { + "@floating-ui/dom": "^1.0.0" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz", + "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.5", + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz", + "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==", + "license": "MIT" + }, + "node_modules/@fluentui/keyboard-keys": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@fluentui/keyboard-keys/-/keyboard-keys-9.0.8.tgz", + "integrity": "sha512-iUSJUUHAyTosnXK8O2Ilbfxma+ZyZPMua5vB028Ys96z80v+LFwntoehlFsdH3rMuPsA8GaC1RE7LMezwPBPdw==", + "license": "MIT", + "dependencies": { + "@swc/helpers": "^0.5.1" + } + }, + "node_modules/@fluentui/priority-overflow": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@fluentui/priority-overflow/-/priority-overflow-9.3.0.tgz", + "integrity": "sha512-yaBC0R4e+4ZlCWDulB5S+xBrlnLwfzdg68GaarCqQO8OHjLg7Ah05xTj7PsAYcoHeEg/9vYeBwGXBpRO8+Tjqw==", + "license": "MIT", + "dependencies": { + "@swc/helpers": "^0.5.1" + } + }, + "node_modules/@fluentui/react-accordion": { + "version": "9.11.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-accordion/-/react-accordion-9.11.0.tgz", + "integrity": "sha512-mEy73hbJM53tMj3MWqm3ajbBxj48uubnJjumVKI8Z/eXHS8L3GzUy5rf/gUH26xSR2Tl+edpFhYB8PFbJDIKKw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-aria": "^9.17.11", + "@fluentui/react-context-selector": "^9.2.16", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-motion": "^9.15.0", + "@fluentui/react-motion-components-preview": "^0.15.4", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-alert": { + "version": "9.0.0-beta.139", + "resolved": "https://registry.npmjs.org/@fluentui/react-alert/-/react-alert-9.0.0-beta.139.tgz", + "integrity": "sha512-R9r4dwwpWpgFmB8wVeWqipjUh/e6lyacnerX39HtVdgcG/PE+kpdHjKGiy8MAD+BGYCzrUxKNhXTQDlpXasJ1Q==", + "license": "MIT", + "dependencies": { + "@fluentui/react-avatar": "^9.11.1", + "@fluentui/react-button": "^9.9.1", + "@fluentui/react-icons": "^2.0.239", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-aria": { + "version": "9.17.11", + "resolved": "https://registry.npmjs.org/@fluentui/react-aria/-/react-aria-9.17.11.tgz", + "integrity": "sha512-K9nz+Wn5JliCpG6bIYYPXvKmpOql+w9uyzmYNYkYQ6QHgoCpph7XUFx1HCtsJm2PPNi8WO8g0ZV9jojdGKl1Tg==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-utilities": "^9.26.3", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-avatar": { + "version": "9.11.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-avatar/-/react-avatar-9.11.1.tgz", + "integrity": "sha512-y1T67rVQQ/D4FAod8F4crXo9funaptscRIiW81LAsbN82fFVexMPQ9GmXooQQvn6ILvjJtf9IyvSJ195qDsyag==", + "license": "MIT", + "dependencies": { + "@fluentui/react-badge": "^9.5.2", + "@fluentui/react-context-selector": "^9.2.16", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-popover": "^9.14.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-tooltip": "^9.10.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-badge": { + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-badge/-/react-badge-9.5.2.tgz", + "integrity": "sha512-+UPAK9dCD6Gx+LWr6vqKMIbYOPf7oXX+GXRtCJ5fekCTHD0VgIWuIMuEtxVrHpJQdb2VNaZadY8/dMomk2JaXw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-breadcrumb": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-breadcrumb/-/react-breadcrumb-9.4.1.tgz", + "integrity": "sha512-XgUB1yv04GdcL/6kUo6kh+BaN4df1A/Ds/fL1QxNrm5E26Vmvvlc0LN0WV/qb5qhKx0NwhtIXgOZHjfzyt7iCA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-aria": "^9.17.11", + "@fluentui/react-button": "^9.9.1", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-link": "^9.8.1", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-button": { + "version": "9.9.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-button/-/react-button-9.9.1.tgz", + "integrity": "sha512-WNzpseiVbqEKKevTkAnyHNoK/8ktYPE6rvf31gGvSDnBBclqfrn4PSYG2ppi+Z7abmClnaNFxpp1OHuOoVQ8Bg==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.17.11", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-card": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-card/-/react-card-9.6.1.tgz", + "integrity": "sha512-KBijjAxi0mBDSgnA1OCglqAVWc+Q0L7A2wCokszX/53oqfJPSvWxWFma7esz9b5MF/kdRrAR0vmy7MiosepNLQ==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-text": "^9.6.16", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-carousel": { + "version": "9.9.7", + "resolved": "https://registry.npmjs.org/@fluentui/react-carousel/-/react-carousel-9.9.7.tgz", + "integrity": "sha512-lummYk+tASL/rM/SXWruoqhUAyJjTiOMgiCz55ncE3q2pSZe/EbsV5WfRw5B3y7pHX8xLusN831TBgUthj/sUw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-aria": "^9.17.11", + "@fluentui/react-button": "^9.9.1", + "@fluentui/react-context-selector": "^9.2.16", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-tooltip": "^9.10.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1", + "embla-carousel": "^8.5.1", + "embla-carousel-autoplay": "^8.5.1", + "embla-carousel-fade": "^8.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-checkbox": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-checkbox/-/react-checkbox-9.6.1.tgz", + "integrity": "sha512-Rsf3TmcNrzLuHan9lyUFUmMZnNyvS7DV8C4Vc9lZnZTFRBo94GRMGzu0BcWKFbr3cCDT/r5RmIyQYz0kc7Jd2w==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.5.1", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-label": "^9.4.1", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-color-picker": { + "version": "9.2.16", + "resolved": "https://registry.npmjs.org/@fluentui/react-color-picker/-/react-color-picker-9.2.16.tgz", + "integrity": "sha512-+H8Ea8dwoSeUCTLRpUiGLrRsNvBnlHplnwJPU0isp8jdAfrIM/savZTLj6o4rqNFpNHQqAXxGwNuUV9YfHoJuQ==", + "license": "MIT", + "dependencies": { + "@ctrl/tinycolor": "^3.3.4", + "@fluentui/react-context-selector": "^9.2.16", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-combobox": { + "version": "9.17.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-combobox/-/react-combobox-9.17.1.tgz", + "integrity": "sha512-ezgt6tfOKd3wlG6IHvWl0TPNPpfHRtnEwC2kuqHYH/r1nMNp9edFi8Ya3+1eM7oxai19XW0swt69GPwRu51FVQ==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.17.11", + "@fluentui/react-context-selector": "^9.2.16", + "@fluentui/react-field": "^9.5.1", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-portal": "^9.8.12", + "@fluentui/react-positioning": "^9.22.1", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-components": { + "version": "9.73.8", + "resolved": "https://registry.npmjs.org/@fluentui/react-components/-/react-components-9.73.8.tgz", + "integrity": "sha512-JG4KQjEvRRfPlh4yt6Rv1/k87ydM2y49r5XPNCnuYHahA7kEM+dY8JdOI7n7FW8bdcvZ7qt4smDrQ2XcPfmxlA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-accordion": "^9.11.0", + "@fluentui/react-alert": "9.0.0-beta.139", + "@fluentui/react-aria": "^9.17.11", + "@fluentui/react-avatar": "^9.11.1", + "@fluentui/react-badge": "^9.5.2", + "@fluentui/react-breadcrumb": "^9.4.1", + "@fluentui/react-button": "^9.9.1", + "@fluentui/react-card": "^9.6.1", + "@fluentui/react-carousel": "^9.9.7", + "@fluentui/react-checkbox": "^9.6.1", + "@fluentui/react-color-picker": "^9.2.16", + "@fluentui/react-combobox": "^9.17.1", + "@fluentui/react-dialog": "^9.18.0", + "@fluentui/react-divider": "^9.7.1", + "@fluentui/react-drawer": "^9.12.0", + "@fluentui/react-field": "^9.5.1", + "@fluentui/react-image": "^9.4.1", + "@fluentui/react-infobutton": "9.0.0-beta.115", + "@fluentui/react-infolabel": "^9.4.20", + "@fluentui/react-input": "^9.8.2", + "@fluentui/react-label": "^9.4.1", + "@fluentui/react-link": "^9.8.1", + "@fluentui/react-list": "^9.6.14", + "@fluentui/react-menu": "^9.24.1", + "@fluentui/react-message-bar": "^9.7.0", + "@fluentui/react-motion": "^9.15.0", + "@fluentui/react-nav": "^9.3.24", + "@fluentui/react-overflow": "^9.7.2", + "@fluentui/react-persona": "^9.7.3", + "@fluentui/react-popover": "^9.14.2", + "@fluentui/react-portal": "^9.8.12", + "@fluentui/react-positioning": "^9.22.1", + "@fluentui/react-progress": "^9.5.1", + "@fluentui/react-provider": "^9.22.16", + "@fluentui/react-radio": "^9.6.2", + "@fluentui/react-rating": "^9.4.1", + "@fluentui/react-search": "^9.4.2", + "@fluentui/react-select": "^9.5.1", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-skeleton": "^9.7.2", + "@fluentui/react-slider": "^9.6.2", + "@fluentui/react-spinbutton": "^9.6.2", + "@fluentui/react-spinner": "^9.8.2", + "@fluentui/react-swatch-picker": "^9.5.2", + "@fluentui/react-switch": "^9.7.2", + "@fluentui/react-table": "^9.19.15", + "@fluentui/react-tabs": "^9.12.1", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-tag-picker": "^9.8.6", + "@fluentui/react-tags": "^9.8.1", + "@fluentui/react-teaching-popover": "^9.6.21", + "@fluentui/react-text": "^9.6.16", + "@fluentui/react-textarea": "^9.7.2", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-toast": "^9.7.17", + "@fluentui/react-toolbar": "^9.8.0", + "@fluentui/react-tooltip": "^9.10.1", + "@fluentui/react-tree": "^9.16.0", + "@fluentui/react-utilities": "^9.26.3", + "@fluentui/react-virtualizer": "9.0.0-alpha.112", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-context-selector": { + "version": "9.2.16", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.16.tgz", + "integrity": "sha512-D+/X2liT+eZe0rzXbwddPH333ml2SXz71biR13aeyGJQr8+W+icMAIsYhpwk0CC3KtJ3f1/CLTm7vcIrvqsJ4g==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.26.3", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0", + "scheduler": ">=0.19.0" + } + }, + "node_modules/@fluentui/react-dialog": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-dialog/-/react-dialog-9.18.0.tgz", + "integrity": "sha512-i+V2o0NJ1itjVADJFov5AR/JetpD2hCMiLye0vfi3/XsFMgEPZnGzILVxPCO/ovULTiCyThcL1UvY0d/PYrZfA==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.17.11", + "@fluentui/react-context-selector": "^9.2.16", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-motion": "^9.15.0", + "@fluentui/react-motion-components-preview": "^0.15.4", + "@fluentui/react-portal": "^9.8.12", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-divider": { + "version": "9.7.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-divider/-/react-divider-9.7.1.tgz", + "integrity": "sha512-ptymE6iADb/ugezulaMeoAfGxKSwOjHEHBh8N1ydOR3AoOxsSUPkvoPC0mReO/yV5Nas7pz5s5VuJTspmFz0hA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-drawer": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-drawer/-/react-drawer-9.12.0.tgz", + "integrity": "sha512-PUXeXUH6JqwpjqYphHesHl75UAFSvxQJQqrevMFHE78ZF0Cqn59Xpa+8hGwRSuoRcYa90jjfHzJOOjN0iNM2iA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-dialog": "^9.18.0", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-motion": "^9.15.0", + "@fluentui/react-motion-components-preview": "^0.15.4", + "@fluentui/react-portal": "^9.8.12", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-field": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-field/-/react-field-9.5.1.tgz", + "integrity": "sha512-u8J2d3AWb4yZXvy/mQd95y2lTon890RfybBTCbeBUzApGMI/77WqT5pRJ+zTM3lOMToPHVKylchNFusMpJaX9w==", + "license": "MIT", + "dependencies": { + "@fluentui/react-context-selector": "^9.2.16", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-label": "^9.4.1", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-icons": { + "version": "2.0.325", + "resolved": "https://registry.npmjs.org/@fluentui/react-icons/-/react-icons-2.0.325.tgz", + "integrity": "sha512-dbmpGMwyCFfkFdMSTEFnbNMXKDomPpqbzXVKRKM0EEQrcwOoQvm08d+SV+WWH11kni26SrgEtB9ycldD+fr92w==", + "license": "MIT", + "dependencies": { + "@griffel/react": "^1.6.1", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "react": ">=16.8.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-image": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-image/-/react-image-9.4.1.tgz", + "integrity": "sha512-yNd2Wq2xq952UUEVBkWeEmM7bTKdWx6BnsHPYRf0kdTADox2PquApYXsI1xw2pnAh3GSjARrGi9Eto0qxouLqA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-infobutton": { + "version": "9.0.0-beta.115", + "resolved": "https://registry.npmjs.org/@fluentui/react-infobutton/-/react-infobutton-9.0.0-beta.115.tgz", + "integrity": "sha512-b+4B0ODzPEb4jNaW9HdT6VVt3CL5FgPL2yuKzALBsYVl3udJdFpyxHsZEPf3JrVTBL/rgF2fRI1iAioX6Fl7DA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.237", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-label": "^9.4.1", + "@fluentui/react-popover": "^9.14.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-infolabel": { + "version": "9.4.20", + "resolved": "https://registry.npmjs.org/@fluentui/react-infolabel/-/react-infolabel-9.4.20.tgz", + "integrity": "sha512-w4FOnNP+CtbVdKBEO6wXAcmOuPZWvmB/BJj+7J/8cLAQm7+4kQgitFHncU6rtFhPdGbikVoBf707/0R1mA4aIg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-label": "^9.4.1", + "@fluentui/react-popover": "^9.14.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <20.0.0", + "@types/react-dom": ">=16.8.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.8.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-input": { + "version": "9.8.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-input/-/react-input-9.8.2.tgz", + "integrity": "sha512-t9zmqZR4bqeRjpWuCGfI4yrtPoCXFiK2XO4BoV5nNwAesglgz4+Vtso4YXst9QYEAazHtKI73YFJf1mn55hCuA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.5.1", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-jsx-runtime": { + "version": "9.4.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-jsx-runtime/-/react-jsx-runtime-9.4.2.tgz", + "integrity": "sha512-y3o0PBg2qzSdvgxDm7rH9BWq7E1h/eUWS+IhjQhd9dRpme6Py01+OLOglHojM5Tc9QjIp2Rjy2mFWBHXOR+8mw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.26.3", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "react": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-label": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-label/-/react-label-9.4.1.tgz", + "integrity": "sha512-4O3cPX6dSJVBKlIEbznjJ08utEc98lKbZz/6MZTTQfFgYl0TxAhxEDsIIIyNjj0Xy9eJpqubJsaswucWXTG/qg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-link": { + "version": "9.8.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-link/-/react-link-9.8.1.tgz", + "integrity": "sha512-ZxrCeX4pMWHujdmYV8b0QW0ztLtu0rHHvRNx67Y3WqSijVyij8QtNNiZ/nab+UDNlz9t8QIXKdWQgYj1uKDpMg==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-list": { + "version": "9.6.14", + "resolved": "https://registry.npmjs.org/@fluentui/react-list/-/react-list-9.6.14.tgz", + "integrity": "sha512-B1mUQFvJOUlZysSduVnATNZggrGpgEWnW9ZSJAZ17LM0+9nWEQRi40jpUGI/d3PGKHt5O2df78s+1nEPAk0L6A==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-checkbox": "^9.6.1", + "@fluentui/react-context-selector": "^9.2.16", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <20.0.0", + "@types/react-dom": ">=16.8.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.8.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-menu": { + "version": "9.24.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-menu/-/react-menu-9.24.1.tgz", + "integrity": "sha512-NLB5EhzKFiwax3O5JTRTtsqdEFDGEXzEuP/suyxNAaaQsIuXygo//Rmdq6dSn7GybTpEOZHKxYDyyG7dj+a4YA==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.17.11", + "@fluentui/react-context-selector": "^9.2.16", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-motion": "^9.15.0", + "@fluentui/react-motion-components-preview": "^0.15.4", + "@fluentui/react-portal": "^9.8.12", + "@fluentui/react-positioning": "^9.22.1", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-message-bar": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-message-bar/-/react-message-bar-9.7.0.tgz", + "integrity": "sha512-ICFDxZ62r5OG97/FcfK1EfJPxGlyDNyFixLD/a3gOREvEcT/hyZgnlUM9Y30u92HjxChx2SwGWnv3iaQPsvToQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-button": "^9.9.1", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-link": "^9.8.1", + "@fluentui/react-motion": "^9.15.0", + "@fluentui/react-motion-components-preview": "^0.15.4", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <20.0.0", + "@types/react-dom": ">=16.8.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.8.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-motion": { + "version": "9.15.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-motion/-/react-motion-9.15.0.tgz", + "integrity": "sha512-ZNQHYzE6MRbLQFT08/mrcqQ9k7F5niktRP93X1v/kmwKfPjvdDofySfbhQXQs3zQw600690C9rfJTKUd3h+zlg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-utilities": "^9.26.3", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <20.0.0", + "@types/react-dom": ">=16.8.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.8.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-motion-components-preview": { + "version": "0.15.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-motion-components-preview/-/react-motion-components-preview-0.15.4.tgz", + "integrity": "sha512-gAHPlyEYylZzUSGwc68VaB+vO8CTX6tgIA3d2+jFrpcwvXZjsdCpF1w1zK1+hTuiipmEaZLZyBz0e0CKH2+3XQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-motion": "*", + "@fluentui/react-utilities": "*", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-nav": { + "version": "9.3.24", + "resolved": "https://registry.npmjs.org/@fluentui/react-nav/-/react-nav-9.3.24.tgz", + "integrity": "sha512-OlB5k5Zev5VNjSRfJvJLO09Hjcv2UHAjLpSVa6gKHx+1NqqSJWZeDLSF7r+/nyZ4CWP5jWZYq7whEu3WvzdVZw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-aria": "^9.17.11", + "@fluentui/react-button": "^9.9.1", + "@fluentui/react-context-selector": "^9.2.16", + "@fluentui/react-divider": "^9.7.1", + "@fluentui/react-drawer": "^9.12.0", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-motion": "^9.15.0", + "@fluentui/react-motion-components-preview": "^0.15.4", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-tooltip": "^9.10.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-overflow": { + "version": "9.7.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-overflow/-/react-overflow-9.7.2.tgz", + "integrity": "sha512-5PA67LgnVmbbOzBN2H5gH3OvSVy1373VJfsHq2+6TLCfm+LXAkWBoFwvBuFI7HsMYae9A0FVlgX7gTsKVfMddw==", + "license": "MIT", + "dependencies": { + "@fluentui/priority-overflow": "^9.3.0", + "@fluentui/react-context-selector": "^9.2.16", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-persona": { + "version": "9.7.3", + "resolved": "https://registry.npmjs.org/@fluentui/react-persona/-/react-persona-9.7.3.tgz", + "integrity": "sha512-OY3xpSD6l4NDdeKihriC+H0q6P1CA2xyZ+pe/WwfKPnatxs2BALoRFtDQduMO7AK/j0w7UAxnaZrvEeftLen2g==", + "license": "MIT", + "dependencies": { + "@fluentui/react-avatar": "^9.11.1", + "@fluentui/react-badge": "^9.5.2", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-popover": { + "version": "9.14.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-popover/-/react-popover-9.14.2.tgz", + "integrity": "sha512-EDvzLkT98/vcCSGrcZWUACGsvLjrHin0Xf9eowMQKiiHFWbu8HNRmr7W2XB9Eja1W5HSIK6+mV8ro9zrLibG4w==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.17.11", + "@fluentui/react-context-selector": "^9.2.16", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-motion": "^9.15.0", + "@fluentui/react-motion-components-preview": "^0.15.4", + "@fluentui/react-portal": "^9.8.12", + "@fluentui/react-positioning": "^9.22.1", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-portal": { + "version": "9.8.12", + "resolved": "https://registry.npmjs.org/@fluentui/react-portal/-/react-portal-9.8.12.tgz", + "integrity": "sha512-+WH0wH/5lsodGP6Mam1alHXpkMCYA5uMcnF98RVOs7/GR69KiFcza1mCnvPJUaJ55AfwLuz/xLxuWdWgQnUdMQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-positioning": { + "version": "9.22.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-positioning/-/react-positioning-9.22.1.tgz", + "integrity": "sha512-/r1BHQKr/WCjEM8UGloiq7bWWBSYB/Uqt7D1sAF9EHd968VH07cAN3RMVKmWWjeJO31rstOZHdgcz0WHhFF+2Q==", + "license": "MIT", + "dependencies": { + "@floating-ui/devtools": "^0.2.3", + "@floating-ui/dom": "^1.6.12", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1", + "use-sync-external-store": "^1.2.0" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-progress": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-progress/-/react-progress-9.5.1.tgz", + "integrity": "sha512-EXJ/Bp67d5+bXPNpPabxdtXUgCMTtvYrBoKtIS6wE5KeUzaek/rgQ3v5wnGfbuLnJ4J/kj+n7XQEc9fhoFPy9w==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.5.1", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-motion": "^9.15.0", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-provider": { + "version": "9.22.16", + "resolved": "https://registry.npmjs.org/@fluentui/react-provider/-/react-provider-9.22.16.tgz", + "integrity": "sha512-S77n5ASUWE/V1I6lX09CrHm4TAKSGENhIrKz9qMKDv2Vrq44/j3eGBLz12k8IW4TJVu9nwGwst9kBpCT+3WHpA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/core": "^1.16.0", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-radio": { + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-radio/-/react-radio-9.6.2.tgz", + "integrity": "sha512-Sp2us4eWRopUKOMCQw5/iks7euPKY6FeesBCCUIVGBg5VKZf2/CfEtbCa9hMjn4D4PCHGivnUTf23t238mvvnw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.5.1", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-label": "^9.4.1", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-rating": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-rating/-/react-rating-9.4.1.tgz", + "integrity": "sha512-DfWipzrT44j+yaShtfHz96/vHEa5ut5IR1kobrO0bSqAcpetOn327gFeY+sG/W6xzork/STcy/T836yK8A2+DQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <20.0.0", + "@types/react-dom": ">=16.8.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.8.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-search": { + "version": "9.4.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-search/-/react-search-9.4.2.tgz", + "integrity": "sha512-PIb50euHoMsKWLqFymf8wo/+z1jrx1MB7uNuhjNT5DvwTP4VYAy5EtRCSwVRyxWNSaWSL6iy6dDy517EQE96mA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-input": "^9.8.2", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-select": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-select/-/react-select-9.5.1.tgz", + "integrity": "sha512-8GocQKiUHEUlAks6zA0HbGGSF2lpjuSZuxPzIBqTyuWof8vFiK6eFAcSXb0hTYIVH3RsTihhfc6G3NRnHoBrzg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.5.1", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-shared-contexts": { + "version": "9.26.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-shared-contexts/-/react-shared-contexts-9.26.2.tgz", + "integrity": "sha512-upKXkwlIp5oIhELr4clAZXQkuCd4GDXM6GZEz8BOmRO+PnxyqmycCXvxDxsmi6XN+0vkGM4joiIgkB14o/FctQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-theme": "^9.2.1", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "react": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-skeleton": { + "version": "9.7.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-skeleton/-/react-skeleton-9.7.2.tgz", + "integrity": "sha512-PrUgdSGDAZw9FIP5NyvPoPfHDe2N9VxMyBfyTwWfZVg03dzRfnE3vEqr7N5xyfv4JsRs6u1xSqVn/0jdS0IEMQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.5.1", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-slider": { + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-slider/-/react-slider-9.6.2.tgz", + "integrity": "sha512-lVavtTg8eqovfRokeYDk4popwCi8nuicacJ/HZdF3ni5e3y/2WT/bVP0eErS/GvC7+90ACQQ8uxdr4sjjY/HWA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.5.1", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-spinbutton": { + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-spinbutton/-/react-spinbutton-9.6.2.tgz", + "integrity": "sha512-P4vvJH7P5yHPFAv6aSo3dZxtErN62DiRJN+nEKS+/XBoRGsOGQdqyyx5Q/PQKOmyQrtwuZdXNHUjcyv8b50T2w==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-field": "^9.5.1", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-spinner": { + "version": "9.8.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-spinner/-/react-spinner-9.8.2.tgz", + "integrity": "sha512-0LxykLJGUD/I3XEeIXAWznwdg9XRe0piaByR0nLFOOV3UPwkVc2w5UdPhy2Y0NZDvtPHbNaMCuQAq82+bxg/0w==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-label": "^9.4.1", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-swatch-picker": { + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-swatch-picker/-/react-swatch-picker-9.5.2.tgz", + "integrity": "sha512-DK6UU9OJY9XaGBPU2ROx+B5/7XdwVtHBdVthOAptyKSsYGOdQt5AQqg3ZOXH6r5WYbMRQDuP2OZ2iKtwidFCVQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-context-selector": "^9.2.16", + "@fluentui/react-field": "^9.5.1", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <20.0.0", + "@types/react-dom": ">=16.8.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.8.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-switch": { + "version": "9.7.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-switch/-/react-switch-9.7.2.tgz", + "integrity": "sha512-j3e5se+3d+befV9MytkxxvJ9nHZOeZ7thKDTF4YVSYf6kcNx9eOlLvPgDjhGO08gzngO4B7aaprhDN7DJc3W1g==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.5.1", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-label": "^9.4.1", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-table": { + "version": "9.19.15", + "resolved": "https://registry.npmjs.org/@fluentui/react-table/-/react-table-9.19.15.tgz", + "integrity": "sha512-OdQ2Nwx2nAlPMlJeyAFrKa3Zy5Ya/H87OU8MvtFJhabM/FkHiZoli/DO1mavVI+jqavOlJuQWmJ55D6jjuGa7g==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.17.11", + "@fluentui/react-avatar": "^9.11.1", + "@fluentui/react-checkbox": "^9.6.1", + "@fluentui/react-context-selector": "^9.2.16", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-radio": "^9.6.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-tabs": { + "version": "9.12.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-tabs/-/react-tabs-9.12.1.tgz", + "integrity": "sha512-WvzOtpC6C/7Mo5X+xmE+3stpCbx2iH9BqrEN5KuGrsHJ78DjMDeabYeL90vlrHBdP4VlTpwdORBui/jtWkxnmQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-context-selector": "^9.2.16", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-tabster": { + "version": "9.26.14", + "resolved": "https://registry.npmjs.org/@fluentui/react-tabster/-/react-tabster-9.26.14.tgz", + "integrity": "sha512-WibgoF67hl6BXfmsY6RSIWSHadeMP/6EDG9gAacfHlwKvK0+FiHp5ernwuXTPAmu2kiHicn2qUZ8EteCFiFryg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1", + "keyborg": "^2.6.0", + "tabster": "^8.5.5" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-tag-picker": { + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-tag-picker/-/react-tag-picker-9.8.6.tgz", + "integrity": "sha512-sOZ+wBA3hgGhKrOP7wbjB2yRvAxjcRXtcj1jDTrtSkaDPXb3K0nGmjiqp2mve995ps3wvCGnNKK4EurX842ZbA==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.17.11", + "@fluentui/react-combobox": "^9.17.1", + "@fluentui/react-context-selector": "^9.2.16", + "@fluentui/react-field": "^9.5.1", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-portal": "^9.8.12", + "@fluentui/react-positioning": "^9.22.1", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-tags": "^9.8.1", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-tags": { + "version": "9.8.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-tags/-/react-tags-9.8.1.tgz", + "integrity": "sha512-6ZTW78fu5eWByKHIM3i+raDrX3hwfZ67ONfZ8wEUXfZHowskxqpMHI8Gw7IAMWkC1scgLqEnht8TnHvZgjo7Ug==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.17.11", + "@fluentui/react-avatar": "^9.11.1", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-teaching-popover": { + "version": "9.6.21", + "resolved": "https://registry.npmjs.org/@fluentui/react-teaching-popover/-/react-teaching-popover-9.6.21.tgz", + "integrity": "sha512-V86zLB1B8xu3U/02FvvMdsJP+ZC9l3vT9bQ2Gr7hZHxJ4/0NLpVcrYSBFHpON9e/WK3p+A5b5V96p86b5Pavlg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-aria": "^9.17.11", + "@fluentui/react-button": "^9.9.1", + "@fluentui/react-context-selector": "^9.2.16", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-popover": "^9.14.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1", + "use-sync-external-store": "^1.2.0" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <20.0.0", + "@types/react-dom": ">=16.8.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.8.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-text": { + "version": "9.6.16", + "resolved": "https://registry.npmjs.org/@fluentui/react-text/-/react-text-9.6.16.tgz", + "integrity": "sha512-ZzCSJWQ6LrVuPqA6sqNEZaXbLvhi2NxBOtlMudWlqYzidLQp038d7mMGSzNnhyeblg+gj+bOVE2eOgWFuVHGYw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-textarea": { + "version": "9.7.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-textarea/-/react-textarea-9.7.2.tgz", + "integrity": "sha512-awlkZoW81WaOqSoXTT9rZs3mTAzCCHnC9eAm6J8ZxI5+ASX07BTolBfZ82it5wxOHI5GMDfbFOl+xIy8uAMdzA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.5.1", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-theme": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-theme/-/react-theme-9.2.1.tgz", + "integrity": "sha512-lJxfz7LmmglFz+c9C41qmMqaRRZZUPtPPl9DWQ79vH+JwZd4dkN7eA78OTRwcGCOTPEKoLTX72R+EFaWEDlX+w==", + "license": "MIT", + "dependencies": { + "@fluentui/tokens": "1.0.0-alpha.23", + "@swc/helpers": "^0.5.1" + } + }, + "node_modules/@fluentui/react-toast": { + "version": "9.7.17", + "resolved": "https://registry.npmjs.org/@fluentui/react-toast/-/react-toast-9.7.17.tgz", + "integrity": "sha512-DWA5EARWSo1k19iWAulLpKrcUHT+Dq/Bw9zfdpoQEWWybrAZwyN7WiYFkBjKCQRxSp10OjLASSQK91CXfb1wJA==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.17.11", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-motion": "^9.15.0", + "@fluentui/react-motion-components-preview": "^0.15.4", + "@fluentui/react-portal": "^9.8.12", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-toolbar": { + "version": "9.8.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-toolbar/-/react-toolbar-9.8.0.tgz", + "integrity": "sha512-EIe+QWOaFR1pZzENefsFTmjxGa2yJb4A/by3kGuGqSjx7isqPUllPq0/kFQzfoUYgPDJbJtQ+KyuRDekTL0QpQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-button": "^9.9.1", + "@fluentui/react-context-selector": "^9.2.16", + "@fluentui/react-divider": "^9.7.1", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-radio": "^9.6.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-tooltip": { + "version": "9.10.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-tooltip/-/react-tooltip-9.10.1.tgz", + "integrity": "sha512-IPHBFjqGhaaMDhLt5NSNOE9LEpDOpT7qgEqNz+Mlflo0A4qI2LW/EnkNop7IRmX/bC88A+wUtEONTjjR87dNBw==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-portal": "^9.8.12", + "@fluentui/react-positioning": "^9.22.1", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-tree": { + "version": "9.16.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-tree/-/react-tree-9.16.0.tgz", + "integrity": "sha512-c+Q4AVaYk9U69aGDgmJVNne+CtWKS75YIfGoxs6+9+wE2Wqz4T0E+gE1ng7ARCQQgI7E2NEJlot6DuI6nYYrRw==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.17.11", + "@fluentui/react-avatar": "^9.11.1", + "@fluentui/react-button": "^9.9.1", + "@fluentui/react-checkbox": "^9.6.1", + "@fluentui/react-context-selector": "^9.2.16", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-motion": "^9.15.0", + "@fluentui/react-motion-components-preview": "^0.15.4", + "@fluentui/react-radio": "^9.6.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-tabster": "^9.26.14", + "@fluentui/react-theme": "^9.2.1", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-utilities": { + "version": "9.26.3", + "resolved": "https://registry.npmjs.org/@fluentui/react-utilities/-/react-utilities-9.26.3.tgz", + "integrity": "sha512-bXB3jMm/RroT8c5eGZkijkPbLd4MqMI6biBHjavo0e7OkZHv9IPfH2nDkGhSn5Sh8e6kRcX0IjYhbM10WUK2iQ==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-shared-contexts": "^9.26.2", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "react": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/react-virtualizer": { + "version": "9.0.0-alpha.112", + "resolved": "https://registry.npmjs.org/@fluentui/react-virtualizer/-/react-virtualizer-9.0.0-alpha.112.tgz", + "integrity": "sha512-dao/mQssaPFxCXMx7K+G/DrRoZg28kXcE1NGbJ1RPtbkVCzJgwrEEeDhM5/wyOXO/Z5EZ31FIerDDVOyr6FAaw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.4.2", + "@fluentui/react-shared-contexts": "^9.26.2", + "@fluentui/react-utilities": "^9.26.3", + "@griffel/react": "^1.5.32", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <20.0.0", + "@types/react-dom": ">=16.9.0 <20.0.0", + "react": ">=16.14.0 <20.0.0", + "react-dom": ">=16.14.0 <20.0.0" + } + }, + "node_modules/@fluentui/tokens": { + "version": "1.0.0-alpha.23", + "resolved": "https://registry.npmjs.org/@fluentui/tokens/-/tokens-1.0.0-alpha.23.tgz", + "integrity": "sha512-uxrzF9Z+J10naP0pGS7zPmzSkspSS+3OJDmYIK3o1nkntQrgBXq3dBob4xSlTDm5aOQ0kw6EvB9wQgtlyy4eKQ==", + "license": "MIT", + "dependencies": { + "@swc/helpers": "^0.5.1" + } + }, + "node_modules/@griffel/core": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/@griffel/core/-/core-1.20.1.tgz", + "integrity": "sha512-ld1mX04zpmeHn8agx4slSEh8kJ+8or3Y0x9gsJNKSKn6GdCkZBSiGUh+oBXCBn8RKzz8l60TA9IhVSStnyKekA==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.0", + "@griffel/style-types": "^1.4.0", + "csstype": "^3.1.3", + "rtl-css-js": "^1.16.1", + "stylis": "^4.2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@griffel/react": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@griffel/react/-/react-1.6.1.tgz", + "integrity": "sha512-mNM4/+dIXzqeHboWpVZ1/jiwTAYNc5/8y/V/HasnQ2QXnV6gSUYpeUk/0n6IFU3NJmVJly9JrLSfNo0hM/IFeA==", + "license": "MIT", + "dependencies": { + "@griffel/core": "^1.20.1", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "react": ">=16.8.0 <20.0.0" + } + }, + "node_modules/@griffel/style-types": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@griffel/style-types/-/style-types-1.4.0.tgz", + "integrity": "sha512-vNDfOGV7RN/XkA7vxgf7Z5HgW8eiBm5cHT9wQPhsKB4pxWom5u6eQ9CkYE5mCCTSPl9H6Nd1NBai04d4P6BD7Q==", + "license": "MIT", + "dependencies": { + "csstype": "^3.1.3" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@remix-run/router": { + "version": "1.23.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.2.tgz", + "integrity": "sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.1.tgz", + "integrity": "sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.1.tgz", + "integrity": "sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.1.tgz", + "integrity": "sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.1.tgz", + "integrity": "sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.1.tgz", + "integrity": "sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.1.tgz", + "integrity": "sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.1.tgz", + "integrity": "sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.1.tgz", + "integrity": "sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.1.tgz", + "integrity": "sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.1.tgz", + "integrity": "sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.1.tgz", + "integrity": "sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.1.tgz", + "integrity": "sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.1.tgz", + "integrity": "sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.1.tgz", + "integrity": "sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.1.tgz", + "integrity": "sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.1.tgz", + "integrity": "sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.1.tgz", + "integrity": "sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.1.tgz", + "integrity": "sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.1.tgz", + "integrity": "sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.1.tgz", + "integrity": "sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.1.tgz", + "integrity": "sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.1.tgz", + "integrity": "sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.1.tgz", + "integrity": "sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.1.tgz", + "integrity": "sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.1.tgz", + "integrity": "sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@simplewebauthn/browser": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@simplewebauthn/browser/-/browser-13.3.0.tgz", + "integrity": "sha512-BE/UWv6FOToAdVk0EokzkqQQDOWtNydYlY6+OrmiZ5SCNmb41VehttboTetUM3T/fr6EAFYVXjz4My2wg230rQ==", + "license": "MIT" + }, + "node_modules/@swc/helpers": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.21.tgz", + "integrity": "sha512-jI/VAmtdjB/RnI8GTnokyX7Ug8c+g+ffD6QRLa6XQewtnGyukKkKSk3wLTM3b5cjt1jNh9x0jfVlagdN2gDKQg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", + "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", + "license": "MIT", + "peer": true, + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", + "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.28.0", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.27", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.18", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.18.tgz", + "integrity": "sha512-VSnGQAOLtP5mib/DPyg2/t+Tlv65NTBz83BJBJvmLVHHuKJVaDOBvJJykiT5TR++em5nfAySPccDZDa4oSrn8A==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/browserslist": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001787", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001787.tgz", + "integrity": "sha512-mNcrMN9KeI68u7muanUpEejSLghOKlVhRqS/Za2IeyGllJ9I9otGpR9g3nsw7n4W378TE/LyIteA0+/FOZm4Kg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.335", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.335.tgz", + "integrity": "sha512-q9n5T4BR4Xwa2cwbrwcsDJtHD/enpQ5S1xF1IAtdqf5AAgqDFmR/aakqH3ChFdqd/QXJhS3rnnXFtexU7rax6Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/embla-carousel": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel/-/embla-carousel-8.6.0.tgz", + "integrity": "sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==", + "license": "MIT" + }, + "node_modules/embla-carousel-autoplay": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel-autoplay/-/embla-carousel-autoplay-8.6.0.tgz", + "integrity": "sha512-OBu5G3nwaSXkZCo1A6LTaFMZ8EpkYbwIaH+bPqdBnDGQ2fh4+NbzjXjs2SktoPNKCtflfVMc75njaDHOYXcrsA==", + "license": "MIT", + "peerDependencies": { + "embla-carousel": "8.6.0" + } + }, + "node_modules/embla-carousel-fade": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel-fade/-/embla-carousel-fade-8.6.0.tgz", + "integrity": "sha512-qaYsx5mwCz72ZrjlsXgs1nKejSrW+UhkbOMwLgfRT7w2LtdEB03nPRI06GHuHv5ac2USvbEiX2/nAHctcDwvpg==", + "license": "MIT", + "peerDependencies": { + "embla-carousel": "8.6.0" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyborg": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/keyborg/-/keyborg-2.6.0.tgz", + "integrity": "sha512-o5kvLbuTF+o326CMVYpjlaykxqYP9DphFQZ2ZpgrvBouyvOxyEB7oqe8nOLFpiV5VCtz0D3pt8gXQYWpLpBnmA==", + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.37", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.37.tgz", + "integrity": "sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/postcss": { + "version": "8.5.9", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.9.tgz", + "integrity": "sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.30.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.3.tgz", + "integrity": "sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.30.3", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.3.tgz", + "integrity": "sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.2", + "react-router": "6.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/rollup": { + "version": "4.60.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.1.tgz", + "integrity": "sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.1", + "@rollup/rollup-android-arm64": "4.60.1", + "@rollup/rollup-darwin-arm64": "4.60.1", + "@rollup/rollup-darwin-x64": "4.60.1", + "@rollup/rollup-freebsd-arm64": "4.60.1", + "@rollup/rollup-freebsd-x64": "4.60.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.1", + "@rollup/rollup-linux-arm-musleabihf": "4.60.1", + "@rollup/rollup-linux-arm64-gnu": "4.60.1", + "@rollup/rollup-linux-arm64-musl": "4.60.1", + "@rollup/rollup-linux-loong64-gnu": "4.60.1", + "@rollup/rollup-linux-loong64-musl": "4.60.1", + "@rollup/rollup-linux-ppc64-gnu": "4.60.1", + "@rollup/rollup-linux-ppc64-musl": "4.60.1", + "@rollup/rollup-linux-riscv64-gnu": "4.60.1", + "@rollup/rollup-linux-riscv64-musl": "4.60.1", + "@rollup/rollup-linux-s390x-gnu": "4.60.1", + "@rollup/rollup-linux-x64-gnu": "4.60.1", + "@rollup/rollup-linux-x64-musl": "4.60.1", + "@rollup/rollup-openbsd-x64": "4.60.1", + "@rollup/rollup-openharmony-arm64": "4.60.1", + "@rollup/rollup-win32-arm64-msvc": "4.60.1", + "@rollup/rollup-win32-ia32-msvc": "4.60.1", + "@rollup/rollup-win32-x64-gnu": "4.60.1", + "@rollup/rollup-win32-x64-msvc": "4.60.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/rtl-css-js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.16.1.tgz", + "integrity": "sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.1.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stylis": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.4.0.tgz", + "integrity": "sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==", + "license": "MIT" + }, + "node_modules/tabster": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/tabster/-/tabster-8.7.0.tgz", + "integrity": "sha512-AKYquti8AdWzuqJdQo4LUMQDZrHoYQy6V+8yUq2PmgLZV10EaB+8BD0nWOfC/3TBp4mPNg4fbHkz6SFtkr0PpA==", + "license": "MIT", + "dependencies": { + "keyborg": "2.6.0", + "tslib": "^2.8.1" + }, + "optionalDependencies": { + "@rollup/rollup-linux-x64-gnu": "4.53.3" + } + }, + "node_modules/tabster/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz", + "integrity": "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/vite": { + "version": "5.4.21", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", + "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..c0d3a92 --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,22 @@ +{ + "name": "br-office-frontend", + "version": "1.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build" + }, + "dependencies": { + "@simplewebauthn/browser": "^13.3.0", + "@fluentui/react-components": "^9.73.8", + "@fluentui/react-icons": "^2.0.295", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-router-dom": "^6.28.0" + }, + "devDependencies": { + "@vitejs/plugin-react": "^4.3.2", + "vite": "^5.4.8" + } +} diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx new file mode 100644 index 0000000..8895ba3 --- /dev/null +++ b/frontend/src/App.jsx @@ -0,0 +1,124 @@ +import { Routes, Route, Navigate, useNavigate, useLocation } from "react-router-dom"; +import { useEffect, useState } from "react"; +import Layout from "./components/Layout"; +import LoginPage from "./pages/LoginPage"; +import DashboardPage from "./pages/DashboardPage"; +import CommitteesPage from "./pages/CommitteesPage"; +import UsersPage from "./pages/UsersPage"; +import CasesPage from "./pages/CasesPage"; +import DeadlinesPage from "./pages/DeadlinesPage"; +import MeetingsPage from "./pages/MeetingsPage"; +import AgendaItemsPage from "./pages/AgendaItemsPage"; +import DecisionsPage from "./pages/DecisionsPage"; +import TasksPage from "./pages/TasksPage"; +import DocumentsPage from "./pages/DocumentsPage"; +import CommentsPage from "./pages/CommentsPage"; +import TemplatesPage from "./pages/TemplatesPage"; +import NotificationsPage from "./pages/NotificationsPage"; +import SecurityPage from "./pages/SecurityPage"; +import AuditPage from "./pages/AuditPage"; +import CalendarPage from "./pages/CalendarPage"; +import ReportsPage from "./pages/ReportsPage"; +import FinancePage from "./pages/FinancePage"; +import FinanceTaxCodesPage from "./pages/FinanceTaxCodesPage"; +import DepartmentsPage from "./pages/DepartmentsPage"; +import DocumentCategoriesPage from "./pages/DocumentCategoriesPage"; +import PublicDocumentsPage from "./pages/PublicDocumentsPage"; +import PublicDocumentsAdminPage from "./pages/PublicDocumentsAdminPage"; +import PermissionsPage from "./pages/PermissionsPage"; +import KummerkastenPage from "./pages/KummerkastenPage"; +import KummerkastenAdminPage from "./pages/KummerkastenAdminPage"; +import { logoutLocal } from "./lib/auth"; +import { api, setAccessToken } from "./lib/api"; +import { canViewPath } from "./lib/access"; + +function ForbiddenPage() { + return
    Keine Berechtigung für diese Seite.
    ; +} + +function RequirePage({ user, path, children }) { + return canViewPath(user, path) ? children : ; +} + +function page(user, path, component) { + return {component}; +} + +export default function App() { + const [user, setUser] = useState(() => { + const raw = localStorage.getItem("br_user"); + return raw ? JSON.parse(raw) : null; + }); + const navigate = useNavigate(); + const location = useLocation(); + + useEffect(() => { + if (!user) return; + let cancelled = false; + api.get("/permissions/access") + .then((access) => { + if (cancelled) return; + const updatedUser = { ...user, ...access }; + setUser(updatedUser); + localStorage.setItem("br_user", JSON.stringify(updatedUser)); + }) + .catch(() => undefined); + return () => { cancelled = true; }; + }, [user?.id]); + + if (location.pathname === "/kummerkasten" || location.pathname === "/public-documents") { + return ( + + } /> + } /> + } /> + + ); + } + + if (!user) { + return { setUser(u); navigate("/"); }} />; + } + + setAccessToken(localStorage.getItem("br_access_token") || window.__br_access_token || ""); + + function handleLogout() { + logoutLocal(); + setUser(null); + navigate("/"); + } + + return ( + + + )} /> + )} /> + )} /> + )} /> + )} /> + )} /> + )} /> + )} /> + )} /> + )} /> + )} /> + )} /> + )} /> + )} /> + )} /> + )} /> + )} /> + )} /> + )} /> + } /> + } /> + )} /> + )} /> + )} /> + )} /> + )} /> + } /> + + + ); +} diff --git a/frontend/src/assets/br-office-logo.png b/frontend/src/assets/br-office-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b69dc8f77c628a02e7c92586cff74424e9c32a3e GIT binary patch literal 798090 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

    M`S-q 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 %Q~yP{*T!8CR^xtStXfF|%Sd#4@lHadtCnGVvS` zJx6GLWGVtDo*Wm8k(R<$=qZVc#E)XnNBZ*2r202H8lEhxs&wduJbD;}<>T?Kvf1(f zI72fH&kP}-t4>*n=aaQ~^96_iYULm5RKV>MSDbMA8~}hjUyNNO%ZMp4-j+*G_&6|v zLo(H1bj@|Qe&MS(Ui`Et*|tT)*BF&JD9FgQ6XV~)${b#by5<^bBLMP%3-5r`KA)0` zMUnnWiBH_<^^I#Y^T57kz=n=%-X3Z+W1TN(01&xfUrjust zrtLRef7?I3|1&@HgRfc`4XkYeFz)$rrYno2^2Q{CBF&)KW5=vpp{b(Oey?4$<80l7 z5E(~~ws7+~lF~d#RuEuz<^%KN8SH-z+#Y%&7_4Q6`eGLXea# zfQj&p0?mmA@5v>FA%%_wJ1j^9fEEdm{FtZVfC8D{xb=~FxgLAH&WCl!>1L<+Bv4A3i$Z-Keeo8*CD7Y$ZgF+ohP#F^z zCs;r*h+p{1b=O>f>!#(UwrRvEMnJ{V5&@ZUF0`A7#6C<8@Z>2jLHjU(PKx6eV=7}1 z5D}}Yif*0Ko@gQ>YujmK5rM#xwf>+N@BGlVZEKqockQYxTwiMkLnB>)M|-n}lUawR zwMyjY9Er1y2ocBA_MiUsW0k=Q{Hf*;r{d+jIYyYH83w@zFoyS-dEqNO7d*2(oWh`$ z-hPloFZAO9^D52jmk;qF-`hK@AFM?LSz^+S6*V13Y+A_L%=!3s~>U% zHCI`*?_dqk#jEn~=MvRIE7cIO zAMM1EMX?)5eY&eIr1K7|n|Il~an}`(Q40Aq#9~WuR0wC|3fMDt>IuC{;MbiF!A~b= zYS~Q>v8u7(HOkpV4Lf3@43lHLtIJE6C~JuStIU5tzcVfcXP4={`bj*!qg=L#_%AuT z$VY9IZpWHBNS2N*s4nsKf~+CF++G6)iKB5{Uq`CKqlmp@+ql@P4`N-PG635RfPKmt za6N>@`j)6A0;>T>S7QqnIuXHt%YI8GLzgJUWL;jM&^M`9dRSh(TS73>z>9UqrC~r6 zx!5HX-X2AvG$IU&ZgT5Uuy|1pA`?nRr+}DxMYE6NiUF8uKBH#V#nyPMP9gp@-Ylz| zbBSs`uV8We08HpSRQ(lokRS#QO2&f?kjf5I!VteGxtM^PkrHQPH$=dP3D~I0vFubl zpeqhJd`GB}e~u=YA?41--%UklvkWXl8ike<6LdIYq!Osfk^hy~=PLkl( z4Av!|6MqQXD-Chvi5uGy#Uw$Y-S^Ne)?D|5X|%K>8Ky|YvlbY{^=b3=_kHep7oKa~ zOT)u+9rg88su|AilRUXRgn2ZMgg0;r@j!4pcEes)rPi_r%Ir*Tu-Ok(K$LNl`z=`k zH?-WT7its}1O>cP^8S3biF%EzVpQgc^w2#R3YHMVoxoCl`XFa*YC;yrXDsBVL752= zYRLsVRUck58EtqtIkMEUbcAv+r>sl8vc>I1ym|6M(W7kU0pqcg#*8Q9-6wASop-$d z*%vR!3znMLqnNBDG5()$;KZ6HrUIf?`kO(} zd6j~$jwcXU8=LO6A^dQbF%>V414zwH^G(tDWo-7zr4UHlM@3Vdlicx}vx{Hc?1AVD zgn)cfLRqA+;{*g2$O2ZCsj$BF&TstKFa59I{)Hbs=LwIqwna34(Mo>sCwgqSt^FfwnORZ6)6X!hyhX|@4%WWg}FWhi7As`quRb9E)GBiyyULPBS)210u8dD)4 zk|i{V1Ypp%76BI)hQr~I$PR`B1OUQm(-2u}Edr6jIBV#p?VMFf=tmCLLcjBl?dbvT zyD3g7000qHb$!`YH{NpFH%5a601EG^0u1&DBbVK3S?>IqB~Ml}))w)uoDFr)a-{)3 zoW?koFlg$!a>1DCq(OvfGd_51t#JoV5DpM2Bp15NRB3f(fs&Z{L1`rIOUz+G?v0i2@7)GV*pdpzG4b?-_j*ahV26f7v zAU6NY&WROdYkNVlD{&2ppl$7zty`XQ{yBb6fZWumeEr5wYGjT(nAOm!J<6V}dr2o1 zB*+u=$Z*e`S#ge*Jr3h;Hj?a`U&wqra_Q}v*)5`iu8L*?s+pK@enxTTY>45CtNnR5 zB3g5JoX(5cB3Es1^8W+#zOGhIPxK<)7^$NmWjNJC*@+?TY}hQZc$asSB=BNXfjPDh zPYJ}XKMbLyBAtD$Q;%l%8b_DBiULqUk)ZrYza&UKmbK)QtU(IWDk0EIlcc2fx3Ev7 zmF<;Z`}8XBkKB&WUc7+rm<|d0L`y;5=sFm=>(Ym2ATN+qZ=%x+*#?%7<6fZ~tkj}- zbUKm(hqKlfe^Ze7BvipuqD-nVX_w8&p9UGkJiX>ZB8w@zU`~9URF_B~l;)juCB$&k ze4%RAPss24@tr{Ag`SVx^gx#wKILidNe$Wp4zx)!+&k$>WmewE5xazx!dRF1VJRV!d_@<;mU(&Y(f=*89Re}T?qutEnbi=3tA zpXJu6`!RFL%!Rf}q^y^Nruz92X0ZmZMv_;UQ6$W;m~CZe&8KpEW05{%Icg`sIuScs zOTjs54#C46sXOI@;a@kK*0Y>->dG5JVdbn`R+$DOrxJusA61@VILGeX>|uw*xPPImnh~amr_0$;f$Q zK?sOd{i)A?^{%@gIBD;$wzb9>t=wIvlM6`q7EI`NTb`fZtoT4ev;QGu3R;e4Ui2gWGfexwjOqd0#D|=0?$3p zC^E{Gn~ZWGu;4bCWFR8qWmjE)^^Lb~T3K$}))$nSi_U4{QisR|`#GlT-b3P>0aa~G zUD?(iId*(Ho(?Lry1IJO-aTu_4)5K)=UEq>Z;TyOwL#MYwAMDZnNAu4{Q6yYedWp< zu&URNuQjc$4337Q!Ej^{sI}|k$(CK4FL}X5*4nzReIEtbl7q4w2lN|KH_*-pOaxFF z^N~+|$r7SLORe*u9$`gBvB60E0}+S`%7j}c(G8NhX}H9VF%nq-sOq{N)J@Yqdgy3t zo2G%STUMbNudb{-`zhyc+p;pK2ZOFh+RDzDr0aju~BZ2rkMv9i+{?E;Zq^LZ$fp?oSE!h{M#JY*j9rPAQM$46;0C_B83 z_i5e>#VO=s7%;zjcEqZp^2KL)Mf247&0RU#Vn5^#NHxW)4{yXCdF~G0hDtk}V4)zc zRoU|%fRzJd*<4D0!$$Km+tp3=vq!L9fko*m79~n6qoJ6w;9dbWMwDf-l-*A^I5Edc z(<_B%4<4_cTz(5+1J2@RK6Pg7dP2?EiWv?=@2nl zv20`>q3t{NO3ny%N{C={^vz**rbM3&5S~hWQWiudnsEh+gIRRn{TqlRq+(6Lh>^)> zV}Q$}FHCQyA;1vPW2F1hmeYoC*XN`VMAnTHMCrXNARc8tNhRSZi_447HtXPp9+#xU zggl#XT^v33&H&3@UqU@GoQNKbG0J#{OHPth$+(a~8O<3XsYFC(4szX`+dM{rQI$c6 zHl+0Nd$cK}G72jeDT}{I(mOR-b%H*uL6+Z_k-#ec@-PQD(kxl$fh*|{s20uFm8#r(lYL( zlYOA9PlU4srhdqO1UEymLJE%=i_x8M#+GfPu##z`Ev7$lg@ZbYjuTjB43|xAG)p@` z001hOWd()5B?1I%iQ2ZM5X5Atmbh}UrT0;w!^}x|9Q|}>C_zyG01@d#$1l(ql@qd} zDUp_FS95w)Sbpfu0}$1}8;TE=EwdIyyb+C=pxL%Iv@@PH6^_Vu$y1;qS{5ckY&zN{ z5o9q#l^Kp8br{@mU|TeIvV}p~WiJy%&2>!>#Azr%!demm8nZqgpSW}9hcCVCi&sAX zTVHsgL1-=ca4&#~2Y#kLz|_#>6VsQljh)-OXlVjNIt-kUdXhe>;8%2Jxzja|?JCA~ zJ(CZ!(5f^aCHxS+a#_!&rDt7InOV)S?f>|JsvayYj%?dnveBso?*#0#yi5hPoJBoIhLo91QAjrE z({@76fk|S4AM+8XwSAEXhp^wJ zRX5&#=K}{0KYIO5w;w)oXni_e7}NlR-8;5D{*>Kq+YSbmC9veT6CfhEH-Cmng$M(Q z1Yi}gEdmr~Z_vN()Hlu&8H3;0|Ip=EU0V-_5RfDkuB5T3MIMs3<}b?iEY&I&QpRvG zi8BQWYE#vNdVM^3_`t!{E!&=U!ISsy+;aMifePy2NYXl4RF>=CVeN}-Qj zMbX@q<`re(<&ez(=D0={td^k(@2FEMml^{O+)(DqoD(dLknK%bc&Mj!GpxYLM;=mE zIXARXe(n%)=~DG{mXxo2c)TY zMO4ynfB+DWEPvSqOY=kdeVK6$1;NI!2aO)GTOK zUV+FwCyThm@hcUJ;`udBo&Qp8R*^GAWXA zPMKm9pA21*{OvTALn|n-A`C46fH2WTY#j*&66Q8#MKDxGNF7gM9>(j&h#vxN%NmQ- z@p@I%JH)J&d5dln3uNJ&Z*1`eQaO zB!N?*)bJdU$PTK(!qTX&jkQ2Twy^}*l5LunDJBN9K(fGKL6|A@9TCBWMurR!0Rf<4 zuR|#8&GrvTG{N&<;25S4sY-$5h_M9&yNN0Ti16Nzed*2LeMx1EwQRyn`jyg}s!SUd z@JjxXw;-_b>y+pOcE4Q+f~< zcf?4#WOzF;9G>a<<;vMeR?^7+eRQCO-g+?TGLTaNj*yXQP9`r#-S z$Px&nnJG<7qR$dd6f*fBNMavMJM$AsGTq#oBZ{cCc4=|pxBu+#-uDO1sBxf4ZiKr4Z)O-x zMvb+-J_2lSz1{pYh3_IP0(iB z-${IBs~Y03V4Di2E=);AFB701kujzo)W_D>4;?&w>b^a%d&Nth|C|d?J!!|Vsz#&X zaKPf*q;{hK5RHZd_jT*$GsyxVUUKnM*2d%e?tl2|8*aPmhMTXs;p=-(+*MVkZChi| z5*P~rXpBQ+1X3~pm_Ub+m$d)@tEZhFhq}7$h$z)npl_ih)mAwo(N}jjJ-4~OU3e1sBUr{2ZWO)~;=*|t9 z5o5n>NRbh*5m)-Blk$Zlz00!aA(fRWtI8%RU9wJs`>&bpoilsKyeX7b<*}sv|L@wk zc&A5EsWEwu3`ZGmW_2>w@IKjSPpie!e7{bwt<4(Wv4J`fnJST=5rOEGA>f(@2C4$37*6b@ z6fnH3F}I{Ave1Ve!3}yiYcGIcv^!fy2%m z`-mDS3I(GhpF!c(iOG>-2Y0kV>4QpKFpmY7V8Jc^_s1|6Yjv^axaW+K%KC~*i(@dK z2^5zSFNoG%3>*-WYGT~WNx;M<5nq_8;4|K$*Rt7v)LCN_Q@+rCX@_(oVTH1wXSb`J z3z}2$>l_!V&skTw^azkxVKZD%FPWh?Az_R%)Cd*ouy(?==uT9Q>&@r9dbS!BRx5V6 z>a^a->3mp0?~C!RB=_ACZQHud7_6!h0=jo%Vo2)JA^@U61cPYYQCjYDx7p~L;(wk_ zw`u|ng>A3o?GO?9eLq0f5+Hf~cg6S!4>Oz?g;#Let@T6jk+-I4k?8o^@q6~)e|&8n zO;sDSv^WGXgL=5MJR-o>QfsYkt@T^-!aOf9ydc&+NL|)4l+007uXI3yzG630(CKb` zoS}Y^RK#iGbzx%v1Pixx-(GZs+0toT#{uN6dKfn`&`NOC?Geke; z&Z8WeGo_e5c|R$4?t5ZGR%Qy3xW3}yb+_XrP4=hx=%_3~8i_2m09&_gU0oQqEkRYs zIYaAKDg{|`+rwSi#-IU%ekZD70bh)fM&&AHtUT(ku;JbzCGD20@?u&!AOl1+XwVo_ zIZY!=fVjTCcIUnKkH=%giU?LlgTb(}go8n~Fj@e>mdG}?wQZOc!La-&x?LS1!ql75 zXE8gSV)~d{ztllmpZIsRYez4SV9qr99l~siDUcZfm#xjd9d zrHlyzfHQo+oPElb+%$r)R9IYM=YFySO8qGefCScBS{x3>(Eh>O{_*JX^*4U!E8Dh3 z44wlSr)8NPYmd-DKec~9mNH{nrPH!eh)hVg!k8oLQ$8yz4FG{`a=6~o5q_u(>(O>qi39U z+V_0hOP+rInY*@aURYc(NNv*+5w*>Sp<0}*0eiZ?8`irivo9;;jlOru3Y0E>nQKJ(?PMhhcj3|RsL zNT#cth$GaEyn7uW=4ukQOeHmS>Q903qtR&EH2WWX_>@yl{h{x9;Y*%#{_dSy7DgjP zveuHNY1_sV`vad71SIfpQMEuw{=K#vBXoz)#cGB=?sU>yzOAUpwYEF2+FTA9kue{;S$0X=3&MkaIo$>>ixHPMnJJcS4eMrCUR6aA#3Up{eKo6v zIo+$e%T+5fSYk?a=v#q_Uj2*XhnNF$5$5_TFkYH~L4aDdybD+>3i9s?(<>5LVr}(0 zO3m{2YL0r=_sYyT&w+u4{~(nt)}p{g*VqJoIG&}IQo@Rm=012GQJUy`DXCO8?-cM| zU`f6kRvHNAJaY3bMl|RT6bm=IHLYt{UQC;P=|PrZn@9m}qWn3t+CU;>I;CFV1^In_ zpv5?Y!NCOSlxa0FdP%;mS1Zkr5p})$d=y-;ruFoaPBBhdJ5!4239c7`U z#L{?e5c_teM)^GVK8gonMTGPjv6ODAi0PnadR|RNM!DQXH3C4436|6)^|lO%?8+l=vm$L2591_ba6F#w-L>;Ce(UFU@7yw-TJWK~us4;}@BVmsK|jr4 zkcBx^3jF^^s;LXuT75}AK!7u-PTS=!+K?9dAKk{G)+V8bPDMJe#fP_YtkFjU=)H*C^3we zcA{Ymkdmy_!@``Yo{l?niqeQlicoUa(^ps3@nc6n{)KDLKkGENlNG`g9E2`I_9dA= zT}zKYm4ciHZ_0K{R{_y_i+iAiptztUJtcy8pt^q=_8cZ2MgB8*B#PqV=)TzKod~El zW;&TJEG+)Q554YH&%NN$Bgaiu#exkO7aE4B_9-?FVaWw?tzmmVbmK+KeW7I2Iv(!W zq|mAC1p#yNE)KdtW7gK!ufFMy0|$?+EGQ$1FCh~>V|8NvXKfKs{ouwXK4m#B%o2&09E1nfqz*y-= zQfnPg>>_ENE2n`EhvkBgzSteJ#sad<;AXmnXogx#{+*lQWI{waM38o0x<5!{t+k5_ zqhI{3KmYKhmn|x z;t{e$U<0_psxqcBV2o|srft!fN!vD)^|oyQv9;7RE!Z|832zSlG?trOAp$ghAy;K8 zL@<>xXhws2Fc`Q=6EH|X)`FXT493=x0I9WhII3U@fBMe%R$zYcyI;{XEqFwh&^ZTQ#jUj9+uJ)HE)E8RnbLry zD`S=n0hB26^wM7Y?_?>88Uk4Z2GCkN7}WPZ_{f#l++-UV4C={xo3=6sb!DC-*@5^? zif#BVO)oPa(H$cKxUGO~YthhXFgSeVXjKh<=ndcgnwLI%*Y?$=(XefswwbhuZqCmb zFW8KqlwJ;kX#4`7vCoW=?~5C?B_zH1poobAP^V; zOLkCIcYNc4o4@{z!C>IP0HC*O(*BfdA@vDN4H7HjqcGq_0_!`D$O0j?&EoR%!Gn)3 zEH3}lo4)r|FS=;&3EPK*8i3li4TCB)Zq=u1xEuBaTt!3`_@z`t7Fyrz%HXEel})QF z0MNEJ2?C}?a5F9kxd;HEwRYd$6VE(l-{oJqe#@54WXY}jEbE898Q=rvkJ59NH4qv` zy?%6VOxxNWCu~0diDx!#i+;5qv$a~|n09jrDBV&49%QYW5pA0}$;WEfk9((i^0FeV znt@eV`7;!UWWQ`Ad|fCrHmAswxe=82Vqzf7u6$l5j`(I(p~@*(doDtAlADtxCpc9t zIXaxb9#_J~($7;xdHT(1OPAgjx;vX$EEEb5w0ffr=S3yBqn@zi%ph=k{))6i=XGGA zC{~dkrOaQcVq@7RNE}eQbU!hyfb336*)K@JSk?R%|4?lpPoPgx)YwR3Vk*f1O4nHL zo4iU(TlM!S#4;_(;82LXluhx>tF&sYXP_cu^{Bd7EmL44W2JebQdF8Ke=wBDfl!(X z=%6%iHjKz56;R+2>+eF(xIjaM=yAN*b(BPxAY<=Sk3TL4d-m&%)A1Mpzuv^(HK$=K(AJXbmYDq`kkI~I@X%IDb%V41c_!lqn<)rfvlNmBq8nueGv55518l|EzorfCxgSbf-v~;$HMIA{TE`iBjJDCSWi%4Kk+p}Z$ zuI-b_G#n#`i2fAdVlRh1XB^~^;zsW!`LF@QQ>;P4a0Fw_-V?T*dHNo*R9DrcX@2ZG zUqS>AK63c-t8ahk@X@QTz3B^Ix$fbI580+!-L$y0v_xR0)2X#KH6~#fUxQ#fZ!V@& zOk?xBaq!+gEuj$Z2!PFh^Je+d)9J)e;4a_u#4tmoj0_?Us?T3@(|^Hla|fW2$Oyq0 zFbnB}fpc{ThWesM7I7RwtfIYCSkdeY^BH?Vuq^aZ9Oj9BBEi!DI{4iz1`zJ1m9SAK z36RjVgj0(D?LTLE&7&X9=8ZCJb?&8%)EJA{* z0O&SoBH)(O_U>vexwn+P`UOutd~^*ebMFI>eCQKjIePr~7r%D%fkz&>@9zDJ3$(Pf zytuN|wx(&?wrRsuD@K&WTNcGMS|_npyhLmPH3e!DFpbQdu{t`In+?;WDPzKerkXaB zm91MYz4Gd>-thIk&wEO3!XeZ`AXz0$GIP}FsxC(~^tiRxzV|%KH?uMK>R41>-j~Ye zz13Y68|Ed7%ZN)-0yCP|GvV4%PHy+ujr5}vJ-DLy2sypH&Ha*6rI;2@WQb=lK-dy* zEz!cl=vRLKZ6Eu>6)Vdt!$EDWMPsC#P=O)2NsuF&j$l#%iem7P`(s4h&^%RNiX)fPLr9S`Fz zjRuujUV7`h-@mlF^j+Wbf~IZa{HiyvVc8j*WGVu6A|@0FLWy{r$`h{Q>WgFcTw0mK0{M4JipV6 z@m>bB62=4Vw4%p%8)V%gFpB{2@y}hpHkm9fE^cjj6Iyb&>;Yr$N{~ zL12l%wgho9Jh7|jbTDIZh&K`%Y^Kdj!CZ++-Qe9;Wd-`5H%v%LN9RaF%PqgY6(F3+-v*SIhQNG*!(=6~-M zz-;nQvZYc4`ncVDWS>+&1fqg=t8MS1bb%o`)FNf=sFPrl9j6oM;drmO_Vpd}OnLg= z>HOTEc3o+bHRN%Bv~`7^-!p(X^4rQ=2;14ksVv6YnWlJU)PD!*VCvC4e$eqi8{ z80iy@C6gki2~ND+_Rv{fvYst=#!Rez<%no}wV4qXN&V!S;UVdc>XG-kQ~?HsVs8YP z7w%`%oGgzoG2Q9Yb}_-jL{5ldL@^vk5#HtC5NziNTaBJ@$9B+3g_! z3)QAa;+F<-nGfO=YkgB>#;~iq$^04Sr*?E%8#w?9SR=@k+h0L}));)I0*!t0k<3BC z#!}HH%NF$Vzf_yPp*^uL7v^+ga%(8czfrEWM|S)|)jGBPmspQxWn`qXB6-eFld~LVq?uPw1tmdL{USFUa%zeFP4{DBb*4V18d-ZFp(k%?y>oGQ zyiOqWIdRJ8)f0-_fQ*$oic6B99=gwcqCl16^W*wc*u}J~A1cAlpan`XA%g8Q}cy zr?7aX=!X26Zgts;#JnJufm7D{pkjq+t*tAwYujc3*tKo-%u{#UmX57GcmIJy*WY^o z=dZct)0chqmYZ)|9GWfLwhR{*oAq(i`XdizV6v|f=_@ivh5?1KMn$8Lj8}+0F-sGc z*>C}7aEO^0CX^vFgI`n+23KEy$6fb6wD-iVw)NFVJq|8xR`WRhGExu)Bv*-UY3M;T zG((CAG&>cV&T3#f<;6P8EQ4$~*Z*KqU3lIhHcJ+gZ$V>PYl*0}WGn%I1Dej(xh*Kg z_*toWk414}i;6|C09y(l%11IK0<@7vGyv|P&P^+$t(%qr;pAOg&N*$5B|3C;{r-m! zU;5=6uDkt?Pks5Cd+&d6gs{44Wl#^TrPj7?Y!G&da^IGi?gg;dw8 zMeYJi9*YrHfNfj>`kk8CxSW2v{z%rQz<6~_2N3(Op7>XH-o6>uJSRb1_YKl;7V~zQ z_HcMD?;n-0+&?ye9OIP-N5jD{|K4AJ>~ohbEiTseplw>8JB-u`(qxO8G6p6>O1bk{ zUy(?fb3Lt3yxB<(ne$BQMbQn#q5!ZmRaF5RqISGK9*-xDwQbYXRsEzVKH=28JB}Pa zdhQd?I{)0q8-kVPrOlg`>be?Frh|I0d37m9C32G&#++!WeaZ7K9FM044IoiV=E-yUz@FVx`KY$2>fffihGzn_jL-~0NP zHq(Y2oVJAEm&JI7%8+ha$IPowJ((JY4sGNr>F@^go&HxrVbjb$=O7=k2Adp^i_8u2 z*cW1NvLqsas;bDsH89 zV+?^k{P5A|Kj+!M@MGV(W6QEJIGIe1LBuS$9Lb3%(i8E04%+`_t~(A4@_}9|-usn; ziB7W)9*ctP7G_lV*$aq>c-4)!)&_yXOm;LUtU7Wwr4+fAc=bwAl`RAVfvCmwwclWNf^>t(XLFhct88!ublO!iKh3VFIn~5o7Av$Yq zDjbiSJv%mk%gdgN09av|;B(PlS6oCQs;W?bfV_}jB_JC)Rn#8`=MjT^~@+T zm6!Avd0wtDpN_%afk1EELqMC}+IuR{UnMab{Q+uIpuoATw5Q|B8(U-dBl`<-n4X!q z?n-o(`i|^~LXT@Rlul9dHT$EZI!Z2G(Jgfn**~D@4}}T#%al?hx|lep?QwXxo}DnG zMH}B7i_R=!Lszbu8;iQe5}=cU1QQ<{iFtwS`#eRWRAaT$bna>?{)t(cxRd0h?nE)G zNoq+;WFZj{@z^!i&8zskfPMY zcr(R)DNUOB?u%)7BP0pMj^U160*bs$0&Cm0_1@i*s1W^puq%>G zW$HT6CWkI@CAtrZB&-npi85@wKcyD47%k?=s6509d82&DE(%-`m(YaNlPM`>$wY0X za`Y~Ztbh^>;j-4V8nDlrYrXJ)v=`@$1q@?{_`kM897reeOLLCI)+FYDK@Dmn;GpL^P%{RaI36jd7=8qAw5GKF3s22=oA%AWZRmEpDz=Kj@nx5X5Ge!#+F7 zDpN+leu5+s5F?JBztMuWZ3_SvsIJgd)#AeHj;*WbJnp1dKL5%0Kk}k0ulf3WKk~&- zeDR8AGTyd*>%!vVWYV~~7pM7vfN?2lh}uF#4O#E<-zAc zY@EW;n^Y)5mmC9NOmpI6N`c0ZJUZnd=)REf6jCwacmV#C|M ztLwTnk0;|ZpmQw15rCoZ}8DH)5+E?oBsWCmwoNV z7ryj4=egJ=pBrQDUxo(s6onk15T&J2Gh+(iChiiC^wY;Qu#I9z{CCOExgUBYQH-h0 zdCiLC&d6A<6!UKFDn(2+3W%9`pLjEoz*RM#`weNhMPv~wg#Y{-Z@KicuPrYvRaIr1 z)|YD|fpRb$=X(M%;c;+f-Ppw=MgosXS=!t)#W^acZhQ=g+&VhRbh{uC>S|Ec6#z}A z)AhCWwY70QsCMt#v1`Z9C!T%A6Cb~C^Xl>`dv~v{EKH}<(Qvr9ILg>hZQFzpK%8St zUdX=>5vd~Fy1W1@%M2dFzCF8|)*8g;UUcr-+PJQ(!$*$YeA_*Tj~%`4hTE>b?$%@D zEnQwryJX+V$9C9`vBp<;c0lX5%teJ02=Ej1b(Ps1>YSEH9K3 z-hCa|&;B_h87Xxu;#zBKgGm|==n#Pq*;k^%98$9fh2r!3Z(GWW$ zJcsgSIA1JPO@=}=n_G=Uge1pn}84Ox#zuO1&^GNhKEGI;ZCcYpnk`v!wSg=neZ zXE^j_70PZ6y@yQ6A&6U~0h37h9UDY;adF}P2OfIOOE3AEH@$Y}ww0!73CNfV!yG*V zntarn4fnHY?3`R=Fj+W4&VPy%_LT0#f{aHvSXbDz?bb~zFMjStmwokyY152G3r%Y= zY)|&qo1pTrfZ{}T5Ot1W5m2r0D1Uc!RK_&6t?TN!&w0k_dv{Ey)4HmOC{3WJ;8OhQ z8zcGXyFpjviIXOR&&p(zdD7$bSe9HF1h?fS%gNKEK}xm)K+UA9rvPAWUXH*B-B;mp zF-HbkL|5idnHVGVvoQdGj-o(#puTc)M=|r_V5so8YgX?uU;UG~JuDTEplpauc&Z0k zfq!|RRne#w`*dbAwO`bLRJa;3teH8J(K9VxLQYw5-8am`s z*4BBOSU+#<;^IOAZ_!Na!!Z@a75BmGfF(-=2C;H4LYa@8wryKWM3w-n%7o=%iBtjU zW)#-laXO`M!aNivS`-Z@NtCM5eU2VJ zLMTjImV|kO)y=(ynzwSdIPlk$_b^rkK-CpvW@T8?nOFNj;0H2>#!@+X&WlKld&(Kx z=QN4qP{@v3$%j>WT`YBhJ_wkbJrJ4WZYS1vc}=~&Q%D^duNt2lEzM`0DSn^Jp0Jf2 zArEV5G$<5K#4Q3-DN)JhQ5f{e~%S-N4#)LdcFBFaqg<`&MygqXLn%Aa{uj77q_f znw>?UYU(Puth3@dvWEpD*-=&pKumLKf~1r+h*yymbs@h`q4acAm?%3J?s#@EN_u<* zzsn)=f>MOBa$=9IK~teI{vmlzU<~@XhUL?aK_$UFM0NPH{X8WyFT#Q_kQHk^@9)X z+_e+1noK4L#_vXmzy={0AjnLLY;6d<0_K9qTBV#B!*yY23$je{Qr(*N0>(aIXV1f=5II{xnduM4fN;3V|twZAd1FU_|SKe@|NyeVrgE zU`NG))ncMmIRf^*3RSpCAqxPlMMEo#gH6k$U0YYqId#vsyy&7k_aAuQN51slkALot zZ|vW>W9w*XshzggS{Cpn00`5agt}h=1Y8BtbJ5G`&ISO!<1Aqpx$KToFg?n3l(!6u zaf;fe87?nR)(*Vyn}d}`71ZCE+b;wG!$noI8uxP&oKe3sL%#3w?Y0>!=q11 zH)60o)b6ZHoE&Bq@cR6&T*TpEfW}NG<3o=enYQhwmDMv&J@u?J_FZ`1IZt}RDGS5F z!op}_G%!J>5f%VkOn`^q9f=iSq*okk=gmYoZrlMP2fh&Umu)4gsy1WPg+qSHp zv}dQa_L7UAc6@De@bJ;guDIdm+rM$kop;@R_q~&5vM?GgFE5XVb!(|<8VUz`fCE#) zC3Dl0{2~Xj7<(j`7%pOIMgx2Wxn1^;mA(f%p*1=z>S`KW*A)yGe)BEw+P-P^;%A=M zG);UTWnp|!(sABYM?td5A`x%2Yge}>h$6FZnA8Y$YMwE&6bURF)FA-1)&jtRgNGhE z^k`jIWGz`s1`AZDdLkl8?toRC0A^CeRG6QcO|TS=ML2xq*t4E?{(t}J?^;?MuCI@c z@oy1E=gKggo0P09Z)o2#sltFuNL8m51I63?(%3C9E%rGv5MWy{gL@x*aBY2kG#pxM znPj9Wp<*3+Nl)HT7!UveweTguFA@+4$u)-UaLD)hlBh!=Cr_3%-2ujUV{vXZM|a(y?R5{o4~9 zBn9#ZE%1?AT%8qbXKNOdNQo~T5rF|P71*iWchc@RzW$}w+Nv^$V8a4Yh)%z2x=RKe znXk>njTtrc5myL;+Ex%#HU1#Wm4!T_Vxb*q+EL5dhX~lqs|48H&$xzV%086@Bwx zB!4i#GOOfZ`v}w+eS?+8^7|6yKB2oT2D){^BnG)oWW~gEUPWS7!KADV5kd>I0Me-Y zRh0x}j2TpZ-}BM6wHv;E_xcnN?2WhIb98NOI+*|v*%k>A>Ezufp1Nn(Bac41@8rFw z@7cL98difLS(r2p+1B{w{K?*sm(^gSIm9TjLo`UXat5sA7y8`MHE8z89~3`1ON%w7 zHSA@1>y*Oyplk$#7mh%b;_nR#w)CRx8y1lVOY2c@Cg*Z-C1}LeOJ5IEz@9L#f86nq z7*Vl|qLnM$)aH-!_LVQ0SuSVR4C}NO(WEjHue^@%_DtwC^b<$sbkNJ{jaBJK~Ewo7cucjTVzUZBn?&pIvX~dZVCvcz<-i|0$CDiux+h*02B+r$P?>A07wLb zK~;NmYS)fEbm_;B+;z`r*Ph93Hy^zEIy)KLNka(GG&rhvKK&WXC+%H-^w8#~KWp<7 zp8z-j0BbEZ4Ye&+l`vsWuDS;^jBTO$$PW@DCd3*UZ}94ya_vc8u;FqD)L&Y8Q{7{` zW}$FlEVD1NsO%0Uzak1xJ03EtnbOFWZn3wyh45p^GGNUZ7?C*pgMi`HXeRXl_ki$L@;0g04w7bb2Kd=wFY7P=9On%aORWF-1kGT zf6-sO`;-6h!Otu&)|S$RK|Fb5|Zb^zAE4qt^1=rKJIdD~WDzy(;y51;_SqoZ>>5s-#G4 zU|ob^TwTfoPCb_&zDXHnXEc+uG+~~XVrQZEQ()X-jR0APP}rXe0V@ITY%MT+$ECDwzhjXkk};-fS~r12$w06`1r~V6xmb=OD*f~Zg7~k*_wEMEl*~FHwrxA8 zDqGk8?RVe$d;j$(pLx+at+jsPPpHRrGoN#1%X|xJ-|5YZQ~OTRG8o6hGm#BNE8>nu zkz=p)!)v4EQ%qznIVt-5W!HY=-ut&~-qbXW;bII4l8M?2){->wfpkhw3yYJmGDnZD zopbh?|KmTsans7e`ue1*Dj+|oMFd1+GQn_`L9;N8`_rAGL?tc~s9}P1fXQ)0tWyLJ z7&7|xA<6YSoahL)pZoIF2$ra&TnhN^_i!h!reqz7DFd%5dF5~lc_7*;^uofz{RbYo z_!$@d)DOOT*S6Kkv@t1$s29y;F<>Q=ecq=3Y2Uz8A;utw?u-dz&=M^S2jBCWOK!RI zp4;!d=fqt*jvYIW#xL#+8dQo)aD(5qx>2J8-=B3=txsDE_~tjfZe?kqZQH6cj?D)A zN|NL_GRqr92SQJ9R%8|;_ccDx%rEFFx(LX^GTc)2Ee&xS;Z^JOOk~m! z!LZChWRln|KOKUHGLe}0$!D))mbv+cD(KslF27XY&6-cvxR=A)-pONK(EK4O)wHgR zY!;AJDz#3QD=@L%iqLCbbj`WDRH<_U`kRlzTP9RWy}5Lq(HRsI_cOl`SBk~v-KaHG zeb<1er&?8MVXl{$kxa__A8=vTH6)(7vj-(L@`^q)8RE>m7qXR!Vd|8Dt%8Y}Eft|j z^ZLbvFK4CfAgM1o8_~?$c@%V^Tc~4Qsg^DrpAWla7IkO_fj%V*1X!}xqQSbZ0Kigv z;~n>2e*Nv=xbMJ`uNk{ELo2kiO55B`)rfHg{L87V(K`4juQ1?!l2F}mD1p>ZJa2CHa#m4|ExleXrl8v)@ zE&>QEjkC&nJCEy!Y6t05=}S+8IQsPUhe36GSb$+6GjWPgzLMKRLVd-M*q-J=`6dG7Nv@183ljUu^J_S6pL>e3Bfx--{iF7cF*JayE8@N+L!ZSa`>kWA%Xr8No;+C>*LdFh8 zrB6dd=-=52lW7akRuwKS3{F33*H3=m%fIEtPy6fleC8eR|JZbTZ1eW5lS$LI7SV*a zJiE;t@knc8M~8MPjFyTBxP|a|(3^^g%C2I++)c2Vm0)L`Qh16?(@d9^mhQUyzAs*R z{n@AQHi&I&0pjkRP_)`vtmDf9jDPskWCD^xBVV}5aYXD~O9_KIMj*npX%-h2 z{`P$zd)IqEw6M5X8ETp-U@;U>n=C7Rb-xCH@FpR=CQeXAawx(++G+=0q7XN){kD1>C+h zZ95v)$JfXI<^TP&KmOI9fASMg_gnhhSilBMQ(RMyg>T#zsz!eE_M&j{S!d7Xq;ydg zFnvcNsw$jLr+4pv;Mm%9*Y?45+5~CUWg}RU6+xjlAl0J>PBIrF0MvDTbZxwOWz(DA z@amo0R>tG$U@!o1hYfkU5h21T2qM~rdHD2d52GZIQTmQdS~%dTZ_DPucww-}i05@yG9Y^w6PA ztE=m4>xjn0w+w)vM+?pqv#yiWi!N2$I&58;skKLs9{JHXy!P2oJ-eBq|AGx86B2>)kC4ls^$_H*bicniFM${eVv%zSCcBZ;EIHk^j_H z*5X%}U@=!+AgnZu=^{;qX8K!@wUCjJMj_zG4H*sW7XuLey*_KQU8mQhGRbsJHUzf? zm?;Q@j)l$=i<=Zi%={T2vxIS5HjW9%UyS_SVJJklwTNagr~&Av+wZyV>vvvr(>Lxv zc<9*ibpjxw%9sYgT3Z>Y(Eve!q?U-7qmIT$vi z5=)nZnhN3Tz7*Fm-X(X+CFVsCk~?Lr0wo&U2D?pVX|lRVPpNIGME_nMkrfN_;aDAp z3}Osx$*sz8hmYcDp&C?h{NTfvetQ3>zxc@YHype79@Dn%qy=N#`!4PJ`qUU0ja*q2 z$Y|RJnl%J-^uGN^@7-^Rj$V8Ht?zip%AUP@pZm<6FS^9+Ji!9k=@h|YZ7|T3s7KB$ zITPw<`6xca&{hh0i*_ntC@}=;fs9?CUuraCtyBk|3<0PgW z?qfT^PN@m;me{vc*kK zur2FiZ~Z_cA?QaMnx@q0D)!=c>g0q49Y+9T00}F%Wz7ItLW6^WIb+`m|Ibgp_FG>3 z)ZhNA4}9v&S8Uz9IvOoZCKC+nqdd!z8CBO=I$9vvi)mRxQaeau2aG*_A~z<^y-lzg zvf&!dAp%)Mz=cu$@yoAy%}bxLbKB;obteWx5Lkoy6}*LAmB?s!%oP$Yru37c)J7pk z=K8n3F)I$(t!GJ(3o}nW3)N>|0?^`8|EKLgtodM5;KzBERI=`%VNv z#7WaEFE0M`M?U*UfA#LcU@$ZWh`m2D=qV|wcF+1J_oDqN^(6(_kI>HNVTN54#qMJ? zCIACdSA(i)CkGxrh-l6|>x}0<{rq#EaK=e{cJ0`@sjdwGG)+65Hf}&)*Ht)@fdXR^ zt*YXjZV}#3%yYs2%pY_P0BRAf1 z*QdYm)h~Ya>W3dXxV*Huw7h5u+omBP_fGeOpHxqzAX`~tJFeL8$YKhal$LNVqO|V5 z+o`qf%F^P|q3)uQ(dTg?8+%a^XM{a_bI6+<;Ft#EfP`fZ39zL@E^FR7+ zPd@V$_x>?I7I2L*-akz+F8tiyl;s%*0I{wdSBpV2rGK#Q_lJE z?|tnby!G#=)A8cs;_Q!w)@)yNI;*L#~ka-S&iZ#ZH_BLseF%4 z8EXs9B-bS=#H{EZ8u*(lN>5e6oEUWzFgs&h{74)3^)++rSnrHnU$-X3r}Vd!m!x8r z%Td!DUG)}!7U}PuB;qyu#G+?6hF%}@wSi?KSyDBpAb3~`#0kj6%PqJ+{?NPA+zD-< zFL;8|m1!%$hWenZ(pj*qfV31L+H$GfigyHnb^2bcLp)4`#_AOa^FCAz{7Un-Mdk_s zuBgq;bcxVZ=NvYoM3QpMvw^bMilu+pM?O^wq>n~u+7CUG89OW6{H#!N3$X# z5`+}pd$=-fjdP~G>sA=A{kIMKczLm|Of5qF(6a>P%?JfmY0PO!Nm0Uug>NA-fA?S5 z)7x_*Z$Tn6Vs!!tV-E2*^-2?dnF#s3v$6n(6cnlJj}0;?`AO zEb)}U`c${2caF&uoe@{cNUpLnD8am*R4j2qJ&~B?xVRpo0~Ml!pD_iopo7j4X9acq zI{7fNUPqJh18*}r3@t06WTT7gQd4yR7@`Rh4gy)isy2hcpb(mUrW6Ltbv zUvG!vdt)a9Au1e=rJklVu3|5jNvE%7jGzqyL}~i^J%nehcvl)%H8xAGM$t@Lg{Z36 ztU<8d$>$+U&b_CvsetbZtnnDZ5|agmON5O`9g9jF07~)16opIE-NkUS9Pq~}ih@Q9 z+nFGM=Zrr{HqyY~T~YwT=(feU7*42cI&Bc~)VAhyo^-El2|GMMM^LDlX8Y^ZKtyf%+v_!1qdfE z$D2gtMSyG&@feImbgyVLIg{0-0%wvkckyXtIPZuY1nDh!`OvZ0BXVtKVNlPrdjX8B zCS>;C@uDGX8*fQQb@ik(sSAGjkN$4`=p)Npwl?c);AR1QoRCjbd)^Ao zln#J^^AF>nL?3G^aW@g%U9g${z)}gqATm8@QP8ETYOUS6Wz**_zy8)c_V3!Z84)en zv`Gzvohu4{w5hB<2Z;cnEatK=`n+)dGs`Y1>39W1Vzod<{6!kMAJ=8`N3&yI${BOp z*L5k|6_*+n%xW%Bflv%HK#qF0R8Fn@12rU3+jBb> z{>ApOyW|a^1JDFyjB%E^X^Gm#Ag(NpHmxk4ynE-eZDM0&JU>{HrxhU@s{};S;P-xI*uce)otKnr1ZnVh6vdDRWK+B=BjBF63UGut?9<8mgB5vXg8^xGhazO~_J@F| zs;Vzvb;I$s=>RJt3h!5rM|_87DN@m<;5_0VZBH~5fk4p+nJ)mbAU=YhF@zmf@d8)^YYD8i1PEk|XmU11vY#_ALn+id7e=@s;LFhk-xsZx)IVPh`Qw0BEt)&jfGtKx;pG zRLP1(bzR8X&`V)vHc8amQ>lA84^_Gx2|4sC0{uhA0Q(|c{ny;F<&5F^NVS-LR*m`d z{z|>Y=)lW){tc`u5HNIOS7E^cpFHZ0=Zh5{G8c3pxgwDqvT_@Ud?#zURWrMMMwX6g zj*{6eOd6NJLjeoTd1a`sD5<^62LQv^JW#@|s2Uk)qFKs5bF302`|H`p*03O?sRT70 zMgRcrJl+J;6FNYOV<|uavesI%gL+_zzVx+QKl;V5-F(M4+O{=SRT(oF3=EP>78~nF zWN8}Ee}*-qJ~D|=RmQDkht}Fhj~{#FrrW;$jr%@z`E}p&ybI4gYabC!CevW5TI1GR zvH(q)RoTpw=n0<}0{kz`+eEL+aAkkj1Eky``V@HPtdQ=B*Oxo1gqWr|)$kK}LEQtc-PIrcVLvf2m>SFlE0JNpvOL0-wDXFwv z#b>c9ZWff;Ihc))*%NL92mrxacRr%?DFgtB^=M>|9J>9F{^Z_|eQN!o{WLaJWpHs3 zOhrIotp$SCn;go z2*mlD9wWDk34=Q9P+bc2ovXc=N8}WDw(oc*S*0J=Q% z%7H*x-{f$O^eUomkk{!QLu(nc0n%}dkOYgo(x4Al_Ff_ZpVVaB1&~t0s4S~fcCP~n zsp1L>ipdwuARZAkllioR6Mc5t|Fmr_(Fr>?{mAQIaNe0G{a?TR_G@msb;k+Y*Von~ zy&;y%TfyA0ZoJw|op>26oij+H05844-Njki80=*%;=N2kmArDatzBLm-FeUbmtA|y zQ=j~}fkE4l+-hb_h{ePS55Xb`FJ_}iQfxw0vS2AU7SqA_huu@CCbA??s!P(>tW3om z8%VBY7dxL7q&$v}iOx6M#Pe1`vqIdP8t$Htc1a4lS*ux;NyvQI>!T*PmAsf*m0r^+>5LqBHRW%$A zjvPPs=z$}ro_x}4UUKnsE;{$LQ+99Nv{F~qv}xSY4hGSpAAjX%zo#}P&OU~PFHr(I+=6r%e9u%^?jZZ3Y>v|}jiL0)pgPZ7j56N3PhDL))JX8#&*HN zt~O$@uz6#nSUCH@`b2Er$Z(BsueilgoS48zAY+iw)Ir7&p|!R$=5;T>cxiFr&;I)F zA3E^ht`l}1Keje)CjfwG$RkaPRZ%z#M?yae@@)YCEVR~ERXrFD9yxRn34iL1-}ODO zevzq6Gi{79k%BZU#281}!niVDncEXqqL7sHh$o%H`R9{=@n_exA7tIaKR1M!dgw_t zGCt(VW7;{3=fERWm&=_9Bl5YfOia}^dmUa^ptUDs?2FzYZD-ytV)_$zrSH0OpxZH> zESw(Y%~8Rixn=mV&cEsl#R~Pg(!)l0)iulhO}*AQ(49LP(>C{=J(;K5W&@O&antQXbjU^B6S z3$HS%w^ZIVhn4xA z%~E;4Q{)W!vzRH1I*TH}FDxPAUW`-&I00eKv8(NJhLz9nV*Ee@U|a**wy8%82=Ks% z-go2QymRvPTPlKjIKZUfJ9`&YH=bMPnx>2FTePL#f3Njr(gfe+wQu5=k6VA z$BwxzFVSwK#SO925KV&M(tS@d(vq4dhi`pNd*EdO=pzKeG_!acg70S(F5)^@( z$RF57N%RohOYwqdBkLoGoJgVCk&0l~`mGBW8^sZkk=u54r9pOYO_5x#g|f@zu@2H$ zRTUysl?@V2Fr79PnrEK>_;>!!&;G*izVkyL`~0pGceXU8)@h{;o{#-WGOL{%zBxC5HT*Nf;(sP!9FKom^s zw{8_@U^xzwLAY=z2*u}Ft>Sy;sXGs^VS-4CqEb1$o-AY~Z}cHyCT96?Q*^POipwUE zvRXO;YsX@oM1HzQl8%_(FA*S1fN044<{$sfz4tw^d36(!<*QvpCiZI1uCb5uensC+ zS!21V2N1&CrYp_EYp}Kjz~N}HzP`Tyfd}{O-SZ=Fc@7d>n<(gYQ@X<@Jx#8B)aJag8|gk90z((;_WcGqiZeDv}uM_jX)MGvn*cBk?}f~$ssoi z_gXZ*=?q0jwJ~t?*zr^M?s>%vo&^Bb5~2+)6h}HS9wc>(;u4A%mP%tSF|jPnLMV*b zZ*d9t5~%Nr{^yeFXFLHbQ#EAW!VDCVP?sSZE=;Z=v?WMP!6sp-BgmDX=JUd8?Qk?Y zaNv>WUUb2e&pO?+!Y2rDAgp=O(!$imH+p-t4&VtFHqt*qHAe*1-Mn{q`UvD=k%7_%-`5UvC!ggSSj)sRz*^u%B0LTwCmSD0R zCg7n|c}L{sIcCm!&IqTJE=g+VrDU?3GrDlzKhouCi3$O`Lgg`~>r#mVd*b-2K+5lD zbH<%l0WVUqn{o^)P)d;&{#7ZRoK-Ic%UII71UI-F> zs_h#JT5&4l@hG7XBIlIJdvO9pwAKy>b!+XveEdtFyzJUXj~r{_A(|f9bO?c)>Hy1psTUL#aNB z=>(E>46^FQ6^CasS@>1pAuq~?Z!vD78yZ{742LEo;r0T7tXA0?PF><%NA}smAd5iN z9I0}|GKk#%hmN6iSDr>(?q_DQNv7l%@3LOS&d>6b{kAJxD&Tos%paR z2pf3wDFil&vp@mM+{9p%O^)N!^-efY%R3L;KI_PZJYJ`?z`?!|K#4!T>8ZS{PW9C zeoEW6(6#{NCRxLwNmU`_DJoF*s8dik;+8r}C=DCLxI$c*K6^lk$0N+N@p+S(+QW4^ z2O$|%(Z7nHVy1>ACa;~&$-7+zOkL${g&@z28)+M8L<->M zfZYadReAg;WXbhsP&;KDby%4fH*ejve*8EZ6Jdp(O$jwJ$WpSzA)d(js7-sq zD-lL^dpcctEz@J59UVL=UY`ON7O zPm_U^Ffa4_IpTD;blkfyLWE(3jJzEmrsFu0MK<7OG=M^^ecD=R+sExY;g5gmhfh0U z`&<6*gWGrQurvlA+_auE7`K^b0xmFCYL|$mu;voP^u1t{ae+A=uCy521&B@4tS&EI z^YuILd-(9lC+>)wV|K!mjZIPk0DvJNOLohaO@HzC?>lARt`|M~sevfJ{-*@qxRTE&jajeEbp;@& z3ll^r{F_=CnoYK);c#%^kwc&V%JplLX4B?T+qUS>=?yR9C}~#|yioR>Dwj|*8k{z5 zRaF4u=KNnRMgNR-bx)D7XX#8BAfttd}U7N}ngvoUB(18aR z78bwzHLrO6t6uQ<(@r8wP1_oS!8^)L!&%dMc!g@UO4R)hS?vQMYTZB&Aj#&#`mGJg z8aHg3asrCQsyO6hm<}vg+|B;d>{{kJP$~P2S~?~I%f_TQds3_=tSu;)P;6sY;`y(x zO6R#`jQg>a5OdEXa=|YZ6+|o((8cK=Nr`5mYwCa6KRese7fBA8Dub|@PH&{-bc<*= zyh}H`ft^DBGx||@-Z=%JM}R|uqR(MFSwjmpDrMh- z^|rDO9--+fmRnmOey7JJ=tJ4m4}OF1oAL>IbwXT}(?A4%=G0HO4u^yLA3F5b_kR55 zJMT6X)b(&UK(b`XI>bY4W2$Ivpf?8VkfUS*9?UHjl0Ul83s9BN?;YGl?iP8nY*u6{)j!%y9X{+z4iKZ;}fe z5P_@%5~=;ASgrwVKN-7_jjnWY$-(t(bImV4PGG?WXU#CAa923J(2X~&n|-p* zPopu`09rDG!M%U?_M89eZQ}VasQgkpnih!)z1~ zx`i^<5@3tQ)XR&_bo%h+U-`_Ne(1?R`4cC<@kcC?ZKei8OrM<=7H_1nv0wu_VWFHJ zb_@B}z_(QL{8t`0?9WarSy7?8^A;0?`v~Zl(P!ZdJ=W^K3O&hxrZbyzauUK}C1lg8 zPIwt&_l@ulK`8=@)l+^G#6thjcGs(xz=q=+isnj#lF)>1A>bX}!^hNu6v=U_kmD|X z^1Z^%<%+oOiv*ET&e$@=K)-9J1rTAoR6w2&b=VOmS|8778XXo{ilC- z%I=+yJAI$Em;MBbnT5Qes-nm9Nc<9hW4<8y1D)+vyZ~%}u8?1IM z>X3^~pfZ~di!Jrja8+F&IkvWM&k1Lqb}}Ni)|&7_VtJxOkuMvvox~?rI~kqx6BF)Rx?nBw2vu&bCEQ zA&3_V3O6|!y=Jyxs{<4IvPHAdouFKcd#IA-Vd^Y|JJ;2fC7<^ycC@|%&(*hTg>K@nPJ!=NHG*8TP_qktP4nrDwwjNdLxg)9Z%~Nwp zeVU$r%#eKSppYLIoIW~cG>a|I%m}LcX`nLWQm9HVSkCE>fK%Qr%ESztU!*5=iS9zF zY;#{ZjFOMLcvO1LSO-J-Km~veLnTUfV}2q6!m6%rzT@7vyyp`K4jdc|szGh6n>8?4 zxt(KiMlrdba08NW4x@^=-idf71OUU}5uyb^#MTl54hPkAGQRev+kf-!``-AP7hZJU z*^_C5=mULuh z2Zi<*vKJdu_D^N8b5pOZO0r?uh;-`9^m3nK?nC5aE2G5;O?8n>A#%)}Ac zyyJsXIwq$SVrKp@C@Sczw=QwUJ5r#Gaw3~4m>a-#E=XWa?e3S}<|dEnewEME@&>8H z%gkxpOAD;ky#mZ9_0TgU+ztXiU%wT8n5ah4qVf=~#qw!*B9u|5Q_7OL7DA5SUnG7MvZ z+-zoeORP*!I~2UV^r4-CjoBzLkDL)MI78L}mUbND7UpZ?om@{s3srtzncL_q-4%g9 z*Tr=cVLTy4`KizlabhDdu5%47upy7x$~KA;3zvjDx`d9an5Ns*vOdOQqX^P)0dYK; zY~8f{Uw-)2j~qPwcklb?))RJ4#$$}L{b|=#>>C2Miqkc>a}yhebp=7Y#l{jgj);9C z1xw5-6w9|{(F{xlmtS+!cfaa6JGQJ^0%M90F&2si{spz;EX}=XN0FMU%!UZF z(`ry9dsa_ibbe1#n`Y-j&r3qM=PIpF-5KI8#Njx?)tSq+^*FN=Ei9T4Sa9&_>g=3&Y`&qeuVWKmYqb_?4eo zT3U27tU*c<0ZhsHWn*RJRm^Y|bC{+wvLx=-NS=W$F_}*c05BNUi_1eGvev!dm%@_- zb<)oOkyOPHpDDbDytxT*0MWE*cJJDH?%8LwO@k=9Ux6FO-)sqEtWpLpBv-UfajN5p zGMRPWSCAGXa?h*$s8-{65>2>401HbCgN3S{SOo8N8EjE5f}3s>&Gy@0Ikbwb0id{_ z0sw$4naUhHe*A)Sp1yh0GNghCN>Uh{SPpGwVw=9PX<|DsSi2M^T@g{n>@JOQNsz(> zparVY5K+_GmBob%&pY$X)AzmlWfxz5)h(a@%GbVe_dSn3`sjEv8C2EM(#X^`l6$ec z135IF+O@TH1lYE1%ehZD^Q<#YdHypmIO~j)H?1rJ0FgDdF@!|c+mwzK71Grr?-1=y zg)h|LNIUeo=hB4tnuSC&L!cgp+`1G`qBxVJTQE?`L_|j$yz&f;e-w@uD_=8Lu+4k* zyB^h31@X{%XO=$~86*cW8wv9!{SR2HP>zfS7gFX0%b%z;!?6uRX_{yA(!Y^jEIX?3 zLm%v{$KayY?rIB`H0#h_33=?73gRVvJ~u;E##nF}QZrXh!A8qtsC1Az8_^`QC}SF! zC5{*0$x2yp0FV}w1#1rCH}R}}7LDYq%OM~no{xNWglJ5Kpa0q|?|Ao)h>5^ZseOJ$Juy6;EN|x}d|4)kDxnkrPDYm->#~Nz4k}62 zs?$X}M7=5GQd#p8nvhu6qvUCRnzv-rW51~5dm^GU6Y_8VAUpxsN}%5T(}JjyFz>EI zqw=TfJED?r3v3k=Qqras<~uZyRy39+tze(U40AA2C4!|1$_qmF4~U}v2B)dsd(2Hz z*t@0TH_Uxm^0agTL~RNn!+bfL5@*PFfH7!HFm4trW2WOPe)1>o`Ors3OUtyhWNm9F z)3i3-$QA8`;h=SHXQfgRA%nn(NUdKi@0e#Bv|dl_>3-fv{o%{lJt0^|b<1WL6*_Zy3#YsL{Q3|g_g`qq&cp|^AuB2@W=aAF`$04O^J(y5ICQ%i$)>2aP zoEy8ilb#{ITs)m+RSr26pk>*mXLHU`ilhjZz_h!pwSai!$npRA`|oJUEDh?mZG(RB znIC2e(~>u5s|nJX16-q`RdXWfkxCqAQ51A<>nI+_nVA3tB1R@}TOT8VsSKiV+ov26VYLE$+Ya zyR*%~O+7jDU~Tff#fw;niqTv|IjN_dEI7d{LntRC=mo~Zc?6hD##=V6TygdF@A#(= z|M(BQ8V%SsEClc)5cX23(4DG|xMMk`VQxVgM`lN&Llmv)>s0RZurnV*qUZXX@3{TW z`xX|4wzbmFcpZ&Lj8pR6976GZJn?I(_339dv358bp7(?^w{BipUth1PO2oGd?LtsN z%fj~IRB>_APt3M5!@*4ulc+4aWMxT)0*Ybdc=GNJuf6&9^>H&W28qDx0AH7?5`=f? zhAOclZ(6lWy&8Fqyxo7Ts+$p-X4~C{~p{{G&PO7Rp`^?8Z{)|1N;o!N?IDgmHm6fH%<)sAxm^M=YW5Q`E zh*f|y(Hm#jSD0bJJ8@G)Dwvps7d~g%c}bGp9O@`AQw)m%!ybBM-a(-nipmC+RX`?| zTu}~f{wwgPT+ci>2+IXXAg2lIpBU?T+TV|P@AS>5bawhP~Df_U3Kv;KTfOYm_>zGr!eDp+z{;lb$nY`4=ZNjlKnLB8+S8!%d0$!mY4!kBN@L zXA~Dw%29|r%jhFt_}c&ex6f9Hqq?#-%}e;wiMU*)g3yDn#1=INo2m~jkDd+Ufl5Hu zpP)hE{SZqdb9~(X)q6i&56p9)cJ6pOtKEfmsIX}KI>n0r)PznYJ~ByNTg?r&ATs#g3`g`_b* zr~rDmG+^jlsqO`{#(9!NE-8thYbIGv$rvfeQ>JSsX6@}+Oyzd~QhkG>r|Gors5mZ4 z=Dv+|32Z9bDJKWnYVB-io7{|`JE_b@6Xc;xv_LM#O)SPe2cAP=L8L)J^p2Z=fUNZv z7~Q&0v_x1}^zeh9`|&p)xcu_r^5%9}HIoUq=l}q17*e`2E%_Jo3A=$z0NFyDV12+1 zCNUUbXHgwPeT2mVfNk1paX751{h$2w7vA*!7yiLp79aPxc05jfgosrIh)`7!T@V0u zuaCnpUZ#LRIp!$Zoq2JzW3G(e2nXMvHSwU7ATttjBU@(ArA)^M{gR|vF@tW(+ZS6Q z$i@T>06@HvCs-S&=s`b1?z~EYI}y_EL&~1}8-Q-917!m^CohPZbt3@1w^HXTT?MdL zaI3s0Nr{SZRQ@i>OvNgTPr1an^S%&D)|!X_T7Ym;Bv3P5UL5||_q_be*WPmXJ@;+e zym>NN2L!ZXdkc!aQ^}cd+S5;YD6FhI@}YPIhEm|jSU4ddnrYiyear36re$7> zRIa{LfHDKZb;qx$XASGK64BN`l=W~wd?^e7HNTRpCY8>MxgbK%!}tVW0#+V?>4S$wa~Vrw`%0(8=wQ4@ZNe!O2dW4{ zc3HnWU)DHL^B)XMmi(aDi$lP~o%_3P zMeG5hEYtih(wEwce%0}?qy>;zLQJVL#TUP`Gl;OnbST|oKr8@ceQXq>feMVDxMXf*HxL(V5?G?~v_XW$#o==5cmLZ*zwl2V{KWC~L%VkE zICgwJL|OpA&9HKD)J?+lDFhTCa8We0lOu`^u}X@%jxe5#w{G3?&i8!iyeFLg%nQ%+ z(h;IYYN84YTB3cunucU`vZf*XBYbP2ElGn)J};LE9;UnZ{sRv`a%gdBWT`E%o5=(} z2!ZttKY>|Tc4-(x%!$a<#;#9|wYzt0bB_&TD+j#sf7TfFws*aei>F6E<)%M&Nh z`EgP@Z>F*Cs9E^ZmDf|#nBl;?x@=-qtPn!oj|>fjS;jP05i^zEyb@q#jvrg!wSDWp zy(b`I+qRWF79wu$c0V|*R-A`S@PsohIyg>DYKLxhLACYVMt9QC?Fe8Dk|k@&w#`Ci z_U_ucch}alPdn-Ocs#ZC(MOL?rqil2)RL);wXHE`d3j~arX_>8FdDehthGdBOcmJ4 zz=>!@GH^&Bni}j@qB*Q~*IY`vqI$UFdTdj1ptodjCl>1Ez)e6V%rgc`X$~1+I7wL9 zj0T-c7{go^1+|@g)5E9?loWn*1C!}sSK$SfSLwQJkwXP6=;xtD$JIwte~g&lQ4y*% zpAeGe^s}_0G>KxAvJ#3>od9ME{`iiKC&I|1pg<&y+StJ+F%HpgP)zD&PK0TE>DYsu zVBXsFRrz z%=a2^b>NaJdH;k~7EYzhInHD|TF0*X!k|TtLMW6t|S3W%F3!N1srscw*<3 zyHz)3)d~H%`-%M&I7WhUWrmQM7sx@C_76w=7+Dj?((1giD$m;ox>A%`*~LIv(*qLesYr{NbqE& zJ|G{RSJ+d0Rn6)P9E5o+IY>%h^1bf`0*jZzpwI_z`-+Klb{4Ku&MuRpoHCz@BZ@o}Ed-An>m z%-exl6A{^?j*=3-O1CYMwbl|igoS`>>yr!4-uGkQ_41$jXoz9N00VtdE;3ri3;jSu1|1@hEq^Wg`P_tMhJ*tKwsGg18rJ)dpa>^Xo4!+d!uLq znMf3=?75hPs^~`94|x5I5)W)?M%oe{`j-G~(>`wBj<@~VPrddhf6X=)y+ijlM~)#- z5UppUSZ7Hf80<&5o2*C4mWr@x@Rt#LK=Oh_V4yNpb@N^OUp$^J46D|%a)a4UJ|fYG z!dCLsIY-&Vo@$$)JAqsRSP{e;OsP|389EbV1y=zztzA;zVma#arabmzF7>=CePU$4 zV!{rOLjVH$GDDh?5i-bzXFyD@QF4`|@nyGdyRb0)n}7W9r@wsF=1nU=)??oI&YVym za|Yd>$fw|ga6WY&H&AkEiB?3u%Q{YF8DrbFuIqX@c<7;rPuhLr&;9TlUV8CUH?J-M zKx=Jfs>sVQF&mj5{$vakdXL)MM9YJI`)%*E59fq(#q14=DjoU6+zZM}A}qe5DXTT% z8$Z>I&@{HL@Z{Y)e&~B%dC`SWdi%RS@VU=_<-|R^8*7{K1dP!;0X_Lqon!U!S^7?b zpkky@-0`pVL$-~N%K#Apl5I_0*8}tGZ~5PE`|baF(%xNd+d^F!pFdOjUHw$?UH1&e7JuULM>s!Jrrcc3^Hx{;jG9G0cTvt9^b z+S(JgZ9V;zy#Qd)P=pMAyoY>T95U-hh@U!K-Up)MdK_WG*<((AjOkHeT#<~Z-$-d& zc!+8v03JJj94rx~nISe=pc}_+kuuP6^jTm6qo0Tn&3HUrS{T-*0suCR3f$|aTznzi zh7MQNYY60y9Vvyq1?#SeOV-&EDsGn&CIVtFMj%Vmh7haTY#J;9;`Ys}oi)0-RVNRa zFOFnj!I@35=nHe2)innrOPZd^bN@K2kAR-l26-d}=s*~`5I_@`2pVjU1ooGL(r zMVsC@#k8xOze{oWg$Q_nb*PR{*oSVEGe!^7cqk&!bXlB(unG z3ZO|@N{AX$z2s_9puc2^~s@;z44(`oV+F1#b%$HM!A&fHb z*&+`K2r~jOyI)E>>yl|HdUZYok(YK#ZjzO$?nca67fm5-G*>C}Y8@&osY}m;3Y`y; zN6CnE$VS$x)`DhWB7G}iT=jGVexDEjH*hJoJM8W7qzNeuU{zH&eEsgX{maLOgW+f} zm^9M}*9pMK{u5lzJrro74ROToqu)5E3(4#1 zAuOkpm)Tp6jQeC~xeBL2YI0KQmF5Z@vXF)>`IoS|#-cGuhVV;2{pLr$_O(qrcC<*%w5gpuc+?{n$cSc& z4@GGF$_!rubK-K=)6a`hM2kdi+ZtNldBQ{2Tzlhh{`$GU{X1rHncCK$`4;9`#ms?_ z0Ws1jHzN$S3s*PHDO}`j8qXxmsPwRL+bf3VqAIP>9>^2Ukn=1gp-g>Jekih{*j3pb z9qDkTi4Q3JVuL&`NpiY~J;VZA)K-S*d{V!QCi*rDBdf5Mnk($=e=IPAQ7)qQ@)2_< z-rMFolmyY9GET5s*^|>&s9P<<yt9T2dkwyw-eFFya`XP$f2*KXW?!mjo8b*v1= zz!S;|HY)r})sj%q0=4{<8|k&YwNNVu0eL5;29ia@g~f#ciMtp>p5aWgc%}VrqsJJi zZjQ?3>XVW;r%i#F1@+Bz%0`i7RH@^4jBQW5%7L31Uz@HJ<8i^Al%g}Sd~gC?-JrBq z>ZlSWIx4fQzBG>iIt>#!AHaB<=yAoP!G*f|@TaeM z-6hXHb?^o){TTDjk^N`&iQeJXfAD3`f7TCv=PRG^xRU{( zZ5sgNf(8U=^8QT+xngR8;()JqX4Ee>*{yXhnKekdqxl!VQJ*c!>O@weRQ!yO6?(}b zGNDam35e`)P(AgWGfw*1ANa?8yWjbbAK1EM=V&xsUtb4AFaVa&zdq6HIirc&YacHQ z?MrKz5Clh<{pM{6nM#ny9dbfYO`B$AY3acS9{kgHz5jpw{2LdB1F}&~h;t)xsCSkx zc&j91^Ir1>--Ui zu_j_C=k#sAsv+qt?^B*5AhO~NqB|17=`L9!w=_H2jMSe2MJ|e< zzNrYZ^?7?E6!I|;)xcD9&$W>tWam`~x##*oiEr}u1_u6l7pW*kvQO6g^`}uW}xlVVCsGfWA42 z2~4X|LD~)$JuIg~68`A>77?RHou%vSjuqq@jqxPihbL0Q{~oY|GjO#0Tb2S1NuluPO= zH~wHbHo!OOYdTQ z6DuH;lFGxfd7ST}I7mY#u1Uqwji(Hf84j=e#b4Zi>E~BZIMG7ewl;1Zh#7_G19zz9 zQ#oU3hQOI-lr5cAkesONgh?cCN$wgK(dwi{Y(?y3 zW;|>nO1`AW_XQ?eStH5@E7LBQIGY8|sLuSBlGpgXuMtWA8FojYXGnq`!*t_F3QM8Pb z^n@b^SXx#N>wi+228b zVu`;J+>~3!x)OOPm8U==Ti4Z{_w7G=>?pu?q9|Eua=7FxTz;qSQBRXjA<3w59`H&} zgoKvUsBiLlkNhRz5dU%rh&_l)S)BYpGf8q6!H|v*!A!IPpnN{GZg9EMu3qtfxQ#{h zC!2)-keQmcq2Z|h(|7#ycsyQRUb1Z)vX#UyF(y?IW>AucqMT)gA+;wnQH(NeKnX zJ9^}(ai#f#^d2|IG#)(#fg+(y6$1kSN}84^_j00FkGJ^#sPZCYLS z!)mXROddN%(m|GZ&C*#FVjbxr=|{;;@_%{FyxFco&4x5ThbnXmiIKtVyY2H`HY)y0 z1DV8)kPJb27&(0?7H1%La}=3YzGi~IqC=09AKfKu*WaZ$h5BWm#{=v`Nug+Wih?u= z3R3r07xgw22Js*N7TvI_-jS7jU7X%yS)rFjeKQgB-PcySd!8>5Icwf@!?8-}=}KLZ z_*E>Vkjtq=(m0)u<((>tqcgjhF5fDff z)k7$L0vFPNrivQjcB!K=4<0!9r~mMwLr0ITEH5|HCYgBY5`vI03Ob-5MtMrC2+EP| z@=go~003iBj;N9dI3-$M93EL4|M|QB{nvi_dsdbfqqz*5S0%6V^A92VTxV-3+Y5{6 zEC7an)W#yUJb`-h0IuuGp9qx;&DSMx+*Uvps)xjJJ&+ftrVQsjH_xx)pvpIVXNIEUygRn_hdFfpyUKO*fL; zsUF7$qU)m`LSHyuz}$R-0kYPLUm+~-LU?(%tT0$|CHkr5+P;eH>PF2}sA@g9r z979Pn;}4jsDlk>lL>$z2z4cFSe&;(^cbrH>4H1Azb;d&)Qx(kD_;1N>QNn~2{}DhO zAaZStgM@gt6SLPrk`chY4iaGVt`n~Rvp?H>=9xQR@hWnpg#(aN{R}X5=opSD$nf_dVCF7ej%kb$hM(!vWxlJ_y?g0gSycuG-n z?oxzLbdj@UHWG>xKMUotMFEg8iP1;wY4Q=p)}$mcHM2d#Why^eZ zenz-5C#K9^Q6k!d;jvp~kBErI+IDEnGcS0;1?Qi2``r(0-nw-%9`l_eg1QV}VLay^ zqnqcfMP7)Wd*L{NGYMQDBgjDyV>;D!b=^(39eCvMmQBlUrb(n>E{AX8gbpSvnq=a_ z$(_Zbc$zK~l3z&@m>f`iCeIU%h|K*6P%DTthPy%RE|(~& z3!>$62$0vqe#BSRAVhH@o2FRG6-&>8ZE{C|VmK9HVPW{lqmQmEEdK0|yy074@=Rl(nYM0)kZ%YA`hjuk zBVeMhGbN;wgOV+=v z9%wvi7KVe@zv_iMwr~B7-~a3T@4N4W6HZv4Oo=QDUW?gG7m8s{N@x+vP8W@nz32Yg5~-E)`n>#S64=o{{s;cVM)7@mE-dw5W2Kcnj>tIS`NUOS-3KO z=I+F^Hm8k3cGR^nwdAB^d?~R<-wL)OPk@StrRMSH$fS^eR}2fkq9t)UO^K|$N0Hn( z%=ZI}s(TBG0fsOO#j!F1LNbbx)d+}a5RD;YOl6LK@zSgR=Wi{qte6^GvH={q|1E?f z9EE{P-ZVz@8QS8`gjuv0KJHc?)A8mRRIQ&rp;h98jeO+|Jtt~z41na z2;hw;wJo(RgqTINN~}+vGKeEaVyzf3O};vhpd=0IPGkz`|CKCh(GvZlYE>=J*E|ON zo4kn8C^SD%g@BIz$)}aw7@r*iaG5E3sMOL-eWEZ$nG}vQl^Bj`NJ7KRNB-)_;uS)& znBb50DKRN4o-~g*`;WBkC@+m^qCnTKtSWLn{j$)44KNbZF|;f zyT9XQ&pCAP5CWh8O$7-{N?N=d1%-5Kp1vsPMLSC=u|PNlgUyTbNTVB-k(6i# zOPD!=_>o%=gHA) zev|mWuWL#r&wur#MPaiuRgGyjP+M6l&9JHJy=|a<8sln98lLXSUOo9*r4OUpym8mOJnX0ahB@09^c;*Fv`0GFa%!{6S z*WLGxhLu4h%#&^ZU48wI zd%kwVt!PYz=`2kQ?jJCD6fx8bQ01c=r8csi_yXPvPR0LW4jD%XD+LMKLX z2UGk$`wFR*-&AQtd&w(E@sh1fqk=Sv3jhcQ4m|qcfk#7ZD!uF}`ac2Tg;fh9>69$s z$l&!7uL0seBmyMcw(ILtqIi0oHpTMiMy}AM{#(Q^h$3E4$`(5op#aBK>JIZAWj?91 z^wCA9(=!SHVoefGrEIx_^6JegxxGV?$$jvmyWEi&M`o9`{{Pf~(tt5p!)UpwyUMJ6 zx+p%NR8M;wuF56ZOWm~S*6{5aLG+?TgeYQ&@RUTMui1Riof1Wuv5~77hb%IrD-QD? zclD9(7>GqTIlR1OC z%HcTIPqBn1E6RhaXgUZ8tc#N(8bnKU#kIG7;ro|j*IK0-Vf2H3`xu=oHo zS}^s2)ZMHtC}B$+S7x4=J3c;6B9#uY@N}RO#tY>dG>?I-`>A$nQ{NhkAqq zCW~^KWg?KJcBMoIg~Gg)U%g7al#C99WP%do73Xq#<})82nj!BzshpYc7rQk}MsYog zlspJVvM?Xeak*q&0ksWX8D3P5K5#m+gVG0y8VeOulu`oOO`rv>zkibcLYUwbR7tsv zLx=#2@?}~~9w|UC7W_?aj|fPtCHF+I`YELi0olM8M}skj4jsJWSAH4D3|E%MO$&%N zagZNTA>IZ<{HRXkT=b(hZ~K^0jO-%7xa>Xd1a>3i;F6Qo^;+ocqru5!ZDGsiBX{3> z*IWMhtl#{tYSR|7ZBSAmYY_{Z{e#xTes(T9H9??9*&!GP*pOdExlnR05r~#yCTb!Z z2F_vWsa9d-ZF|#p5F82XcK2Sch;(iKn0$NG9Wyy@)c+@_4V>JDeDk}{~qY7tGEW7I)@#su}P?80O% z5CDt``buaJEZN~;aN)UU?%1()I$bxWZkxs-yFcTjsa_&-qZAwi@b(Bwq>{)0Jf6lps@)of|r716-f-A|Gefg#d zgI}>1pqe}K$hT- z|K^{Lu1}Vi7p=89;&8NeqlH)mRpoSJO1^O_MFU5lomD4oo5MJKT-T6sfpMhqsAThIEo2y5->q!_9tp6|Ha)C!x9# z|44t7TV8*oAR-j}1Oyv~kPdneyusF5L^${CGyeO}z444wPkQ@5{OgIkcVTOrrZGk= zREuGVc;c?CF`>HH2TBYD!V)qmbp*)moh0&$^Z{`^8SmV_?Gu-N;f2q+;N{Q12n~|8 zHsU`EWWpIa1?wFN+Ccag)tBz9ndeC^Hz$R_BG!)_eDwZ@9yX?`tID=kd%aMI0;Ng{ zDG61EU9!fI0RXIPv$8ny_r&YsSfGr-ilFrKI#6+Wz*6?0xtSH~#*$6&bi}U1pc%|S zvN8fAh^Rty*FF31y8po9XoLu0qLi{BSX5I`%w}je(!|n6f+@7qV-q9*GJdu-78_20 z4Kv6B7>h<^hp>y*r3zi;oV_CEn}ubxcyODO#p@7|kf95Y+Zf9!{bVtalr(P`1*n4r z#o%2IOu{;W!o`4wOR51vp1O3ud|PBJA)Jmoy^11TZ~=kvr*jWIX3S~vt#WaR-yDP4 zTv&)>Ig01Qxj*dO1VZMIq?6?|i@W_y>p1*54fM31DHNI|R##tMPem7ztSe`n>7v-d z5123b)E;Mr$Xlc+7TFMVxy1f<6`wwt0!ppQGg9e*p-144Pl*}#Q+^))5b0? zj{fPxpL^07C!f4~D-aPFO2{!B{NlP#*}`E|yvs@}yCud{ARe|V z2t$m33;Ki8%ze##x+Y@8eFK}UM+DbYnJDGC0HkH|0G?4G5;utBNfih!&?m~}k7oFi z!UzJP)VspOWu~B0^H_+gtUPhGBgR?6E}Z&J7$1Hm;MIYL_!3tM;~aLM|H@6cY~F0> zt&%Z8AWYv``Egc|P4;zlj<_;+&OXx>U#@ajo>d)`{ z>NO{xvTwa@D4w9{M=6+sD4l(dA&N$tiHfWFWGinu2Mq#iQ2I^)2FGh_t9y3e@xc#m zf7vTfeB~?2RM0jO;aMV+K$X@>WQ{=p&;T*NN=LW(UR2#)#+CYthLO5--;Yx|sLG63 zA+xBh*St{P5qXK>g8+OS)=#vdug`}KqRhy=80Jqs@^tE4bpkMqdvFDx`!&Kqin&COgU$2Rz$RUtkf1 zYTOS$U)W{QyzV6MkQGb9944BT4rBzoL|94|OAt3GIsHgID-g4nr7_`=#wwfGlSAg2 zSE3pb!}&9Ytlhn1(|3K_3;y7*-@CfH>K6uC(XdFCu-DF-uti6zHl7SMD zxfqYtOx* zipk7&_Wh;BM?I6ZjLVpWBM~5PNY{X|(k`zlVswZ=wjGT|ANb^#ue|owO{*)GEKw`U z&jBs)zRoHl7MI9z@5YiD)lgf{L@zEr5vlz3JxFIZOnU>&2V}8tQ6>bQ!Ryz#p4h#bz zqK4W%ySBdh`@U`a=FPwRmw&ta#2o`OXqpDm2oEBydnn%5LFy)^EDUNw!~wF6xpU+v z^dex@5^UbQ>CfKrFXun;^pp1NvbOb8alHyj1Tm5^w@HsV%l8R1zkADJLgoWk&{zwW zj4^=5R0a^h1}W{1yfLj0rXa~xVd<_=Ujj5RZKg-o)#aG)SWtwQM?6wGyXVex+7F>69y6yB%5oxe)u>Pe6s z)3KZwpY^UIk!sg7>Fyn7@qQ`qeCVZ~orIO;8_W2f>medDeESG5U$Dq!|c?#p+ApyLt35ayD;8SN5V1=TL!Xs4BBQo_zB1YwvvE zz}_7@)+TFiH6}#}9wDy^ofJp=P+T@!qMRtj9s}h}UP=5W03Y;mT}%LIp&1SahYlb4 z*Uwz>15CYjojZTVqzE+^x7{A;0^PW&jl#oS1S=NvBAs zMAlW&ETPKI$Y8s;a~gEDvo7JNJD@;*Jtl+hRe0X9D+;%tJu48EQKI;kZZj(&lj#>K z8Rt0azka@PtvlD zE!vgJokFkY0uVb^nN=eG8NQ{pTH*~+F2!uBQBP1uTimtIw+Kj`UT8iHql=Y8%g*CSXo zm^@#;q%K-7SEs&}>jn|dPIW;2nZd+`BG^T8j%3L@7rGZ&VTyI#JwCu zm6Ob>)CA3J<&WpYJ0WdJ3Nk{xxHOGj-Mswe%dfrduKg!$+XN0yIvl~{!#M(k!~(7GFz z2+bo0554Vg-#1(sS+ZoUFO@CmOHvrToT!u8xU|f$!+wV4o8@ONvjGG|+ctyY2+$rr zy!ON2`?@!N=POp0Ms3p==aRx|1b5(lp(tV$cMub-R!KEfNTEO`ge8fcB0;3&KNg0J zwggvw$NXRA?)1|qsS$Xe)NC=h``9FNC4w{6|FWfi~&{akXlJH*KH zB|A%9!H!eY4VV4VJE=Wu&WRbxF00*v2!s8BvfP5^WcRb)O9>AVaXQr0VIOL9dd3Rk zb?C$@Tr41pcq=w!UZ6xnhtHdd>H3DBT^xQ@1@$l=qjI>d~8w2c`j8{PhS-M1S@E+^25!Z22g+ng40=vbL&>Aida@a7X-lHOyJH% zPgM#W)EmoElQk0divfaIz0RoW0+t)&9_pC-RYVr;UTobweY2s->AWbI^8kxDFm6e`FP2ve&~HWur056k)!%b9nzg&$4`f;S*gx!dcR zZ{S(-$zAGL)+C&6&$|H%!vS#;NWgyX{CH!`J^K%Q_|mJkZ{9R*rZpM>jHkj;p->E~ zE!e4);W2|r+6qO@Mt_#7U;Y?s$ru=BHqvT(hIkxaoHWzb)#cA#am@>!cGeRgw~zdc zKyo%|0Ku8Z85BJgyAj7$?nKZy=bN$<|KZ^u_yhl9`!OFOaW}}UsgPJkl&mGyr5nHj z#+*VcPgjEsz~nXZ%o^K-V2b%t?WY@CggNxZIPvCTgUPQqS9FgkcS~4`g~Hm5xHOKx4MN&5dhiYI1IW+ ztq7bIcrNgJj#(gX;!1QPd5eRHXuxzXX?0u-6>_|V#> z-8;ukTR|0GEkaCeJKPM5>F^eXRyp;KYAZbl<4`^nQQnr1bkH{##^d#c9ortb;;Rq- z%Ris|Lq7tek>9wMCZeOyVnqi!x(<8@mQ)+z0QB-73I{P3|y@DW_qzT8%6KH=?AeNhgf@x<(VXQ5@nqCBRhJ*UVZCh;H zBB6nbsFhxyLZki47)%keP*pSpiHNA-QgFSViq$E(Q>PTY$CxReOhp8i2;*Ktmr^V^ zO5s4MRLtbhH7y;|It%i&%i+FQ0{JTv=p+Jn>K!u>7KXgK)8zx>yG?tf@y z(+ah2QJxc);FH5}F=ELI{i2XCoJvXVFARrrIwdA^B7n!WE;_#SwtmAw(SXsIsF2PV|(P z&p1xzMjiuI!S@3oG;Leg_=eZLcxh?)zyADPi_0qu!{Kz=pfSP%NB_&~%k?~HZI{qT zItzOkQdZU$gOkZ*$BwP<`M@V${HzO}boOa=Sf5&$U5<U;(-suJVORdZz4r5rK3) z43qFXF=O6b0D#G)nKX?7<3cjYDm%>sn{tOhQ||Og)#19NfMNXc|I?=3wSDs$`}VlT z#n);frE&|I0|BBDN;62ST9?Bp?5E^jNH1gN8M_Ebej(4=+Lj`U3J#mq%j3GD-_$c1 zk#XG;-^$6;xeKg6%$gFksgLMXJPn4JVFGn+J&jc*CE#xmyS3W=RR1N!Mq4AEj274Hff>oa0dUlUOpFKqyRn+?0}}(53Cc1ghqovK&(6@eg%T$CBEP zX_~^_m@=)`ME|!dEF+Lu{KSR=d}jWC*3~@>n}08Y zI0hZEsIZ#r%F5|(PDn2%0J;sN)MIuw8tdc$GYVAXu_;7As4N0PW$@VA`lr8g?V)4G zPT0O>Je?Z1-p}`Fud>hxqlK{bGeWPf(7``{UkJrtz5g?&K;sL%GS);J9Bw*VD0o=R=Mj?P3rtxqDw^<2t6IO-} zf9;Ap-}|qdw{C0Owz3FF;yAEqcQ_&-#d+55SU6_{1dEZMs~aDx!qD3@kJ`dXkV3$T zn(4UOyy?F8{KK}FT(WZ3|Hs>Z#>Ga&aBF!ywKWo1T2hWTeiX4VzH_kb>XgPKf{BC;BJs9!lQF&T8;SIz^L z@MU^DGwPICp=|lWaC`_*>o1{3Xaj!V486Wn;IpCLqZ+yG!efIMb3i?hirBcR0Y$dr znnDTWrdL%+4XhnHqDE$GU*0^b|68&$KojY(8zETo*=fzqktt-r&yX#u9GT3YOE-~A z4!2!(cA1=#`4*{CU9Ss(@K2sWMDm0P=N{OzZ}-Y%GIg%;afgL@E*QFW(n30Tm=Reh zsd=Eo*0MR)NOYM0lNP?AaHLH6NWtup z`WS_#Fa|NBA<-5#w}bi%g=bU>PU{9(eoAnQcv>KDF-tDZ%q+tRzj{?si@WrD#|7!DL<$Ut1)h^fL?+W*|MDZ7iF!0vJa(AAO!O0=x2ZQ zLtne$HsAL|KD{|C7bTg^u~r3Vm@m2k)dzrhAVazVnM2`y7}-qUd`ade$cT4KqlKjr z=v_EFxoYyDYp!0|jmkjean<2EwGI|Xff)*mC`o3Th6xUKexBOCl1nKTQKjPTpJ%-@ zcFcGKt@!0Uo;(Jbtd*#Mek${=-Yr}{0-buiNq^yZ5EHZjbp?XMwXX>P_oG)X)KH}kjZ|_5KReIOR7ne!uvY`1+XDHPafLQtUvQ>|Lu?e z>EHgjrG*7jQJ|8!80SXyLBPx`S}oeq&Oa`j`7{7<0ABxu5!3_*bY0)~9*}^%cu^Q8Jc#cw|bE+oAWJ ztIM@LvcvUfI46fx1El3?bSZ$QXc|TWfDBdEqj_u|ZIe3LrE@ZB;aTTQ=-3aAW0${YnMk~Nlp^2V%@ z!piR@N!bj8WOZ?>Xz1I#YrC_ZjFBnI#%0DLW++c;J8qYMW?E2-t1uQ(UWBsZ1I9no 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

    &!{8z+LJJKJOb8sO(!WNz0 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

    ^UU5M+D?Mzp}FYegEe5zxq4xSYBFM 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 { load(); }, [endpoint]); + + const filtered = useMemo(() => { + const q = query.toLowerCase(); + return rows.filter((row) => JSON.stringify(row).toLowerCase().includes(q)); + }, [rows, query]); + + function choose(row) { + setSelected(row); + setForm(row); + setMessage(""); + setError(""); + } + + function reset() { + setSelected(null); + setForm({}); + } + + async function submit(e) { + e.preventDefault(); + setError(""); + setMessage(""); + try { + if (fileUpload) { + const fd = new FormData(); + Object.entries(form).forEach(([key, value]) => { + if (value !== undefined && value !== null) fd.append(key, value); + }); + await api.post(`${endpoint}/upload`, fd); + } else if (selected?.id) { + await api.post(`${endpoint.replace(/\/$/, "")}/${selected.id}`, form); // fallback for old backends + } + setMessage(selected?.id ? "Gespeichert" : "Erstellt"); + if (!fileUpload && selected?.id) { + await fetchUpdate(); + } else if (!fileUpload && !selected?.id) { + await api.post(endpoint, form); + } + await load(); + if (!fileUpload) reset(); + } catch (err) { + // old backends may not support POST on /:id, so use PUT + try { + if (!fileUpload && selected?.id) { + await fetch(`${(import.meta.env.VITE_API_BASE_URL || "http://localhost:8080/api")}${endpoint}/${selected.id}`, { + method: "PUT", + credentials: "include", + headers: { + "Content-Type": "application/json", + Authorization: `Bearer ${window.__br_access_token || ""}`, + }, + body: JSON.stringify(form), + }).then(async (r) => { + const j = await r.json().catch(() => ({})); + if (!r.ok) throw new Error(j.error || "API-Fehler"); + }); + setMessage("Gespeichert"); + await load(); + reset(); + return; + } + if (!fileUpload && !selected?.id) { + await api.post(endpoint, form); + setMessage("Erstellt"); + await load(); + reset(); + return; + } + } catch (secondErr) { + setError(secondErr.message); + return; + } + setError(err.message); + } + } + + async function fetchUpdate() { + await fetch(`${(import.meta.env.VITE_API_BASE_URL || "http://localhost:8080/api")}${endpoint}/${selected.id}`, { + method: "PUT", + credentials: "include", + headers: { + "Content-Type": "application/json", + Authorization: `Bearer ${window.__br_access_token || ""}`, + }, + body: JSON.stringify(form), + }).then(async (r) => { + const j = await r.json().catch(() => ({})); + if (!r.ok) throw new Error(j.error || "API-Fehler"); + }); + } + + async function remove(id) { + setError(""); + try { + await fetch(`${(import.meta.env.VITE_API_BASE_URL || "http://localhost:8080/api")}${endpoint}/${id}`, { + method: "DELETE", + credentials: "include", + headers: { + Authorization: `Bearer ${window.__br_access_token || ""}`, + } + }).then(async (r) => { + const j = await r.json().catch(() => ({})); + if (!r.ok) throw new Error(j.error || "API-Fehler"); + }); + await load(); + if (selected?.id === id) reset(); + } catch (err) { + setError(err.message); + } + } + + return ( +
      + setQuery(e.target.value)} />}> + {error ?
      {error}
      : null} + {message ?
      {message}
      : null} +
      + + + + {columns.map((col) => )} + + + + + {filtered.map((row) => ( + choose(row)}> + {columns.map((col) => )} + + + ))} + +
      {col.label}Aktionen
      {String(row[col.key] ?? "")} + + +
      +
      +
      + Zurücksetzen}> +
      + {fields.map((field) => ( +

    B!Z-Mo%-&%*io{lj#}1 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≺J{v*O3muLomzNVXII=?Zm0-L<9*|F&IHchxD@#J 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