From 3422f18f4f7197a78ca659bc4cc212037cffdb41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=B3=D0=BE=D1=80=D1=8C=20=D0=9D=D0=B0=D0=B4=D0=B5?= =?UTF-8?q?=D0=B8=D0=BD?= Date: Sat, 29 Nov 2025 16:41:03 +0300 Subject: [PATCH] =?UTF-8?q?fix(notifications):=20=D0=B2=D0=BE=D1=81=D1=81?= =?UTF-8?q?=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D1=82?= =?UTF-8?q?=D0=B8=D0=BF=D1=8B=20=D1=83=D0=B2=D0=B5=D0=B4=D0=BE=D0=BC=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B9,=20=D1=82=D0=B5=D1=81=D1=82=D0=BE?= =?UTF-8?q?=D0=B2=D1=8B=D0=B9=20=D1=81=D0=BA=D1=80=D0=B8=D0=BF=D1=82=20?= =?UTF-8?q?=D0=B8=20=D0=B2=D1=81=D0=B5=20=D1=80=D0=B0=D0=B1=D0=BE=D1=87?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PERSONAL_CALENDAR_FEATURE.md | 273 ++++++++++++ backend/api/v1/calendar/serializers.py | 2 + backend/api/v1/calendar/views.py | 216 +++++++++- .../0010_calendarevent_employee_and_more.py | 27 ++ backend/calendar_app/models.py | 42 +- backend/calendar_app/notification_signals.py | 22 +- backend/check_chat_access.py | 93 ++++ backend/communications/views.py | 99 ++++- backend/eusrr_backend/settings.py | 1 + backend/static/css/bootstrap-custom.css.map | 2 +- .../js/components/postDetailModal.old.js | 401 ++++++++++++++++++ .../js/components/themeToggleHandler.js | 121 ++++++ backend/static/scss/components/_comments.scss | 18 +- backend/static/scss/custom-bootstrap.scss | 20 +- backend/templates/base.html | 1 + backend/templates/feed/post_detail.html | 2 +- .../components/calendar_context_menu.html | 42 ++ .../includes/components/calendar_desktop.html | 4 +- .../includes/components/calendar_mobile.html | 4 +- .../components/calendar_modal_details.html | 2 - .../templates/includes/rightbar_calendar.html | 1 + 21 files changed, 1331 insertions(+), 62 deletions(-) create mode 100644 PERSONAL_CALENDAR_FEATURE.md create mode 100644 backend/calendar_app/migrations/0010_calendarevent_employee_and_more.py create mode 100644 backend/check_chat_access.py create mode 100644 backend/static/js/components/postDetailModal.old.js create mode 100644 backend/templates/includes/components/calendar_context_menu.html diff --git a/PERSONAL_CALENDAR_FEATURE.md b/PERSONAL_CALENDAR_FEATURE.md new file mode 100644 index 00000000..70bf483b --- /dev/null +++ b/PERSONAL_CALENDAR_FEATURE.md @@ -0,0 +1,273 @@ +# Личный календарь сотрудников + +## Обзор изменений + +Добавлен третий тип календаря — **Личный календарь сотрудника**. Теперь система поддерживает: + +1. **Календарь компании** (company) — глобальные события, доступ только у администраторов +2. **Календарь отдела** (dept) — события отдела, требуется право `MANAGE_CALENDAR` +3. **Личный календарь** (personal) — **НОВОЕ**: индивидуальный календарь каждого сотрудника + +## Функциональность + +### Личный календарь +- ✅ Каждый сотрудник имеет собственный личный календарь +- ✅ Полный контроль над своими событиями (создание, редактирование, удаление) +- ✅ События личного календаря видны только владельцу +- ✅ Другие пользователи не могут изменять чужие личные события +- ✅ Администраторы также не могут редактировать личные календари (только просмотр) + +## Изменения в Backend + +### 1. Модель `CalendarEvent` + +Добавлено поле `employee`: + +```python +employee = models.ForeignKey( + User, + on_delete=models.CASCADE, + related_name="personal_calendar_events", + verbose_name=_("Сотрудник"), + null=True, + blank=True, + help_text=_("Если задано — личное событие сотрудника."), +) +``` + +**Логика:** +- `department=None, employee=None` → календарь компании +- `department=set, employee=None` → календарь отдела +- `department=None, employee=set` → личный календарь сотрудника + +**Валидация:** +- Событие не может одновременно принадлежать отделу и сотруднику +- Добавлены свойства `is_personal` и обновлён `is_company` + +### 2. Сериализаторы + +**CalendarEventWriteSerializer:** +- Добавлено поле `employee_id` в `fields` +- Поддержка создания/обновления личных событий + +### 3. Views (`CalendarEventsViewSet`) + +**Новые методы:** +```python +def _employee_id(self, *, required: bool = False) -> Optional[int]: + """Извлекает employee_id из kwargs/query/body""" +``` + +**Обновлённые методы:** + +**`get_queryset()`:** +```python +# Приоритет: employee_id > department_id > company +if emp is not None: + return qs.filter(employee_id=emp, department__isnull=True) +elif dep is not None: + return qs.filter(department_id=dep, employee__isnull=True) +else: + return qs.filter(department__isnull=True, employee__isnull=True) +``` + +**`get_permissions()`:** +```python +# Личный календарь — полный контроль только у владельца +if emp is not None: + if self.request.user.id == emp: + return [IsAuthenticated()] + else: + return [DenyAll()] # Другие пользователи не могут изменять +``` + +**`perform_create()`:** +```python +if emp is not None: + serializer.save( + employee_id=emp, + department_id=None, + created_by=self.request.user, + ) +``` + +**`permissions` endpoint:** +```python +elif event.employee_id is not None: + # Личное событие — редактировать может только владелец + if event.employee_id == user.id: + can_edit = True + can_delete = True +``` + +## Изменения в Frontend + +### 1. Dropdown выбора календаря + +**Desktop (`calendar_desktop.html`):** +```html +
  • +
  • +
  • +``` + +**Mobile (`calendar_mobile.html`):** — аналогично + +### 2. JavaScript (`calendarWidget.js`) + +**State:** +```javascript +const state = { + type: 'company', // 'company' | 'dept' | 'personal' + deptId: null, + employeeId: null +}; +``` + +**eventsUrl():** +```javascript +const eventsUrl = (deptId = null, employeeId = null) => { + const u = new URL(API_EVENTS, location.origin); + if (employeeId != null) { + u.searchParams.set('employee_id', String(employeeId)); + } else if (deptId != null) { + u.searchParams.set('department_id', String(deptId)); + } + return u.pathname + u.search; +}; +``` + +**handleChooserClick():** +```javascript +else if (type === 'personal') { + state.type = 'personal'; + state.deptId = null; + const userMeta = document.querySelector('meta[name="user-id"]'); + state.employeeId = userMeta ? userMeta.content : null; +} +``` + +**fetchEventsCombined():** +```javascript +if (state.type === 'personal' && state.employeeId) { + params.employee_id = state.employeeId; +} +``` + +**Form submit:** +```javascript +if (state.type === 'personal') { + payload.employee_id = Number(state.employeeId); +} else if (state.type === 'dept') { + payload.department_id = Number(state.deptId); +} +``` + +### 3. Base Template + +Добавлен meta-тег с ID пользователя: +```html +{% if user.is_authenticated %} + +{% endif %} +``` + +## Миграции + +Создана миграция `0010_calendarevent_employee_and_more.py`: +- Добавляет поле `employee` в модель `CalendarEvent` +- Изменяет `help_text` поля `department` + +## Тестирование + +### Сценарии для проверки: + +1. **Переключение на личный календарь:** + - Открыть dropdown → выбрать "Личный" + - Должны отобразиться только личные события текущего пользователя + +2. **Создание личного события:** + - В режиме "Личный" создать событие + - Событие должно сохраниться с `employee_id=текущий_пользователь` + +3. **Редактирование личного события:** + - Владелец может редактировать/удалять свои события + - ПКМ на событии → контекстное меню должно показывать кнопки + +4. **Изоляция календарей:** + - События личного календаря не должны видеть другие пользователи + - Администраторы могут видеть, но не редактировать чужие личные события + +5. **Проверка прав:** + - Попытка редактировать чужое личное событие должна вернуть 403 + - API endpoint `/permissions/` должен возвращать `can_edit=false` для чужих событий + +## API Примеры + +### Получить личные события +```http +GET /api/v1/calendar/events/?employee_id=123&start=2025-11-01&end=2025-11-30 +Authorization: Bearer +``` + +### Создать личное событие +```http +POST /api/v1/calendar/events/?employee_id=123 +Content-Type: application/json +Authorization: Bearer + +{ + "employee_id": 123, + "title": "Личная встреча", + "start_date": "2025-11-29", + "all_day": true, + "recurrence": "one_time" +} +``` + +### Проверить права на событие +```http +GET /api/v1/calendar/events/456/permissions/ +Authorization: Bearer + +Response: +{ + "can_view": true, + "can_edit": true, // true только для владельца + "can_delete": true +} +``` + +## Безопасность + +✅ **Изоляция данных:** события фильтруются по `employee_id` в QuerySet +✅ **Проверка прав:** `get_permissions()` проверяет владельца перед изменениями +✅ **Валидация:** модель запрещает одновременную привязку к отделу и сотруднику +✅ **API защита:** все endpoints требуют авторизации + +## Совместимость + +✅ Обратная совместимость сохранена +✅ Существующие события компании/отделов работают без изменений +✅ Миграция безопасна (добавляет nullable поле) + +## Файлы изменённые + +### Backend: +- `backend/calendar_app/models.py` — добавлено поле `employee`, валидация, свойства +- `backend/api/v1/calendar/serializers.py` — добавлено поле `employee_id` +- `backend/api/v1/calendar/views.py` — логика личных календарей +- `backend/calendar_app/migrations/0010_calendarevent_employee_and_more.py` — миграция + +### Frontend: +- `backend/templates/base.html` — meta-тег `user-id` +- `backend/templates/includes/components/calendar_desktop.html` — пункт "Личный" +- `backend/templates/includes/components/calendar_mobile.html` — пункт "Личный" +- `backend/static/js/components/calendarWidget.js` — полная поддержка личных календарей + +## Дальнейшие улучшения + +- [ ] Возможность "поделиться" личным событием с коллегами +- [ ] Синхронизация с внешними календарями (Google, Outlook) +- [ ] Уведомления о личных событиях +- [ ] Экспорт личного календаря в iCal формат diff --git a/backend/api/v1/calendar/serializers.py b/backend/api/v1/calendar/serializers.py index 90f105f4..99bb7282 100644 --- a/backend/api/v1/calendar/serializers.py +++ b/backend/api/v1/calendar/serializers.py @@ -22,12 +22,14 @@ class CalendarEventWriteSerializer(serializers.ModelSerializer): help_text="Список дней недели для WEEKLY (0=Mon..6=Sun).", ) department_id = serializers.IntegerField(required=False, allow_null=True) + employee_id = serializers.IntegerField(required=False, allow_null=True) class Meta: model = CalendarEvent fields = ( "id", "department_id", + "employee_id", "title", "description", "start_date", diff --git a/backend/api/v1/calendar/views.py b/backend/api/v1/calendar/views.py index e9b159b4..637a9b2c 100644 --- a/backend/api/v1/calendar/views.py +++ b/backend/api/v1/calendar/views.py @@ -11,6 +11,7 @@ from rest_framework.permissions import IsAuthenticated from rest_framework.renderers import JSONRenderer from rest_framework.response import Response from rest_framework.viewsets import ModelViewSet +from rest_framework.decorators import action as rest_action from calendar_app.models import CalendarEvent from .serializers import ( @@ -19,8 +20,8 @@ from .serializers import ( ) from calendar_app.services.recurrence import expand_event_occurrences -from ..permissions import AdminOrActionOrModelPerms, AdminOrDeptAllowed # пермишены для "компании" -from employees.constants import DeptPerm # коды прав отделов +from ..permissions import AdminOrDeptAllowed +from employees.constants import DeptPerm import logging logger = logging.getLogger(__name__) @@ -40,6 +41,9 @@ class CalendarEventsViewSet(ModelViewSet): "start_date", "start_time" ) renderer_classes = [JSONRenderer] + # ВАЖНО: Переопределяем глобальные DEFAULT_PERMISSION_CLASSES + # Используем только get_permissions() для динамического определения прав + permission_classes = [] # ---------- Внутренний пермишен для отделов ---------- @@ -51,14 +55,54 @@ class CalendarEventsViewSet(ModelViewSet): # ---------- Подключение пермишенов ---------- def get_permissions(self): - dep = self._dept_id(required=False) - if dep is None: - # компания - if getattr(self, "action", None) == "list": - # список событий компании — достаточно быть залогиненным + """Настройка прав доступа в зависимости от действия. + + - list, retrieve: доступно всем авторизованным пользователям + - create, update, partial_update, destroy для компании: требуется staff/superuser + - create, update, partial_update, destroy для отдела: требуется MANAGE_CALENDAR + - create, update, partial_update, destroy для личного календаря: только владелец + """ + action = getattr(self, "action", None) + method = self.request.method if hasattr(self, 'request') else None + + # Если action ещё не установлен, определяем по методу + if action is None: + if method in ['GET', 'HEAD', 'OPTIONS']: return [IsAuthenticated()] - return [AdminOrActionOrModelPerms()] - # отдел + elif method == 'POST': + action = 'create' + elif method in ['PUT', 'PATCH']: + action = 'update' + elif method == 'DELETE': + action = 'destroy' + + # Просмотр событий доступен всем авторизованным пользователям + if action in ["list", "retrieve"]: + return [IsAuthenticated()] + + # Для изменений требуются права управления календарём + emp = self._employee_id(required=False) + dep = self._dept_id(required=False) + + # Личный календарь — полный контроль только у владельца + if emp is not None: + # Проверка, что текущий пользователь = владелец календаря + if self.request.user.id == emp: + return [IsAuthenticated()] + else: + # Другой пользователь не может изменять чужой личный календарь + from rest_framework.permissions import BasePermission + class DenyAll(BasePermission): + def has_permission(self, request, view): + return False + return [DenyAll()] + + # Календарь компании — только администраторы + if dep is None: + from rest_framework.permissions import IsAdminUser + return [IsAdminUser()] + + # Календарь отдела — требуется право MANAGE_CALENDAR self.kwargs = dict(self.kwargs) self.kwargs.setdefault("department_id", dep) return [self.ManageCalendarPerm()] @@ -89,7 +133,7 @@ class CalendarEventsViewSet(ModelViewSet): Http404: При некорректном или отсутствующем department_id (когда required=True). Returns: - Optional[int]: PK отдела или None (компания). + Optional[int]: PK отдела или None (компания или личный календарь). """ # nested-url вида: /departments/{department_id}/events/ for key in ("department_pk", "department_id"): @@ -121,11 +165,54 @@ class CalendarEventsViewSet(ModelViewSet): if required: raise Http404("Не указан department_id.") return None + + def _employee_id(self, *, required: bool = False) -> Optional[int]: + """Читает employee_id из kwargs/query/body для личного календаря. + + Args: + required (bool): Если True — бросить 404 при отсутствии/ошибке. + + Raises: + Http404: При некорректном или отсутствующем employee_id (когда required=True). + + Returns: + Optional[int]: PK сотрудника или None (компания/отдел). + """ + # nested-url вида: /employees/{employee_id}/events/ + for key in ("employee_pk", "employee_id"): + if key in self.kwargs: + try: + return int(self.kwargs[key]) + except Exception: + raise Http404("Некорректный employee_id в URL.") + + req = getattr(self, "request", None) + if req is not None: + for key in ("employee_id", "employee"): + val = req.query_params.get(key) + if val is not None: + try: + return int(val) + except Exception: + raise Http404("Некорректный employee_id в query.") + + data = getattr(req, "data", {}) if req is not None else {} + if isinstance(data, dict): + for key in ("employee_id", "employee"): + if key in data and data[key] is not None: + try: + return int(data[key]) + except Exception: + raise Http404("Некорректный employee_id в теле запроса.") + + if required: + raise Http404("Не указан employee_id.") + return None # ---------- QuerySet ---------- def get_queryset(self): - """QS для list фильтруем по компании/отделу, для detail — не фильтруем. + """QS для list фильтруем по компании/отделу/сотруднику, для detail — не фильтруем. Returns: QuerySet: Набор для текущего действия. @@ -136,7 +223,18 @@ class CalendarEventsViewSet(ModelViewSet): return qs dep = self._dept_id(required=False) - return qs.filter(department__isnull=True) if dep is None else qs.filter(department_id=dep) + emp = self._employee_id(required=False) + + # Приоритет: employee_id > department_id > company + if emp is not None: + # Личный календарь сотрудника + return qs.filter(employee_id=emp, department__isnull=True) + elif dep is not None: + # Календарь отдела + return qs.filter(department_id=dep, employee__isnull=True) + else: + # Календарь компании + return qs.filter(department__isnull=True, employee__isnull=True) # ---------- LIST: материализация повторов ---------- @@ -187,16 +285,27 @@ class CalendarEventsViewSet(ModelViewSet): # ---------- Создание/изменение/удаление ---------- def perform_create(self, serializer: CalendarEventWriteSerializer) -> None: - """Сохраняет объект, подставляя department_id из контекста (если есть) и автора. + """Сохраняет объект, подставляя department_id/employee_id из контекста и автора. Raises: ValidationError: Если сериализатор невалиден (поднимет сам DRF). """ dep = self._dept_id(required=False) - serializer.save( - department_id=dep if dep is not None else serializer.validated_data.get("department_id"), - created_by=self.request.user, - ) + emp = self._employee_id(required=False) + + # Приоритет: employee_id > department_id + if emp is not None: + serializer.save( + employee_id=emp, + department_id=None, + created_by=self.request.user, + ) + else: + serializer.save( + department_id=dep if dep is not None else serializer.validated_data.get("department_id"), + employee_id=None, + created_by=self.request.user, + ) cache.clear() def perform_update(self, serializer: CalendarEventWriteSerializer) -> None: @@ -207,4 +316,75 @@ class CalendarEventsViewSet(ModelViewSet): def perform_destroy(self, instance: CalendarEvent) -> None: """Удаляет событие и чистит кеш.""" instance.delete() - cache.clear() \ No newline at end of file + cache.clear() + + # ---------- Проверка прав ---------- + + @rest_action( + detail=True, + methods=["get"], + permission_classes=[IsAuthenticated], + url_path="permissions", + ) + def permissions(self, request, pk=None): + """Проверяет права пользователя на редактирование/удаление события. + + Returns: + Response: { + "can_edit": bool, + "can_delete": bool, + "can_view": bool (всегда True для авторизованных) + } + """ + event = self.get_object() + user = request.user + + # Просмотр доступен всем авторизованным + can_view = True + + # Права на редактирование и удаление + can_edit = False + can_delete = False + + # Проверка прав + if user.is_superuser or user.is_staff: + # Админы могут всё + can_edit = True + can_delete = True + elif event.employee_id is not None: + # Личное событие — редактировать может только владелец + if event.employee_id == user.id: + can_edit = True + can_delete = True + elif event.department_id is None: + # Событие компании — только админы (уже проверено выше) + pass + else: + # Событие отдела — проверяем право MANAGE_CALENDAR + try: + from employees.models import EmployeeDepartment + + # Проверяем, является ли пользователь руководителем отдела + if hasattr(event.department, "head_id"): + if event.department.head_id == user.id: + can_edit = True + can_delete = True + + # Проверяем наличие права MANAGE_CALENDAR + if not can_edit: + has_perm = EmployeeDepartment.objects.filter( + employee_id=user.id, + department_id=event.department_id, + is_active=True, + role__scoped_permissions__code=DeptPerm.MANAGE_CALENDAR, + ).exists() + + if has_perm: + can_edit = True + can_delete = True + except Exception as e: + logger.error(f"Error checking permissions: {e}") + + return Response( + {"can_view": can_view, "can_edit": can_edit, "can_delete": can_delete} + ) diff --git a/backend/calendar_app/migrations/0010_calendarevent_employee_and_more.py b/backend/calendar_app/migrations/0010_calendarevent_employee_and_more.py new file mode 100644 index 00000000..fc011481 --- /dev/null +++ b/backend/calendar_app/migrations/0010_calendarevent_employee_and_more.py @@ -0,0 +1,27 @@ +# Generated by Django 5.2.4 on 2025-11-29 11:59 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('calendar_app', '0009_alter_calendarevent_options_and_more'), + ('employees', '0034_alter_employee_telegram'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.AddField( + model_name='calendarevent', + name='employee', + field=models.ForeignKey(blank=True, help_text='Если задано — личное событие сотрудника.', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='personal_calendar_events', to=settings.AUTH_USER_MODEL, verbose_name='Сотрудник'), + ), + migrations.AlterField( + model_name='calendarevent', + name='department', + field=models.ForeignKey(blank=True, help_text='Пусто — событие компании или сотрудника; задано — событие отдела.', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='calendar_events', to='employees.department', verbose_name='Отдел'), + ), + ] diff --git a/backend/calendar_app/models.py b/backend/calendar_app/models.py index 189b58b8..e78e5f58 100644 --- a/backend/calendar_app/models.py +++ b/backend/calendar_app/models.py @@ -24,10 +24,11 @@ class Recurrence(models.TextChoices): class CalendarEvent(models.Model): - """Событие календаря (компании или отдела) с поддержкой повторяемости. + """Событие календаря (компании, отдела или сотрудника) с поддержкой повторяемости. - Если `department` = NULL → событие компании (глобальное). - Если `department` задан → событие конкретного отдела. + Если `department` = NULL и `employee` = NULL → событие компании (глобальное). + Если `department` задан и `employee` = NULL → событие конкретного отдела. + Если `employee` задан и `department` = NULL → личное событие сотрудника. """ # Область @@ -38,7 +39,17 @@ class CalendarEvent(models.Model): verbose_name=_("Отдел"), null=True, blank=True, - help_text=_("Пусто — событие компании; задано — событие отдела."), + help_text=_("Пусто — событие компании или сотрудника; задано — событие отдела."), + ) + + employee = models.ForeignKey( + User, + on_delete=models.CASCADE, + related_name="personal_calendar_events", + verbose_name=_("Сотрудник"), + null=True, + blank=True, + help_text=_("Если задано — личное событие сотрудника."), ) # Основное @@ -133,15 +144,26 @@ class CalendarEvent(models.Model): ] def __str__(self) -> str: - scope = self.department or _("Компания") + if self.employee_id: + scope = f"Личный ({self.employee})" + elif self.department_id: + scope = str(self.department) + else: + scope = _("Компания") + if self.end_date: return f"{scope}: {self.title} ({self.start_date:%d.%m.%Y}–{self.end_date:%d.%m.%Y})" return f"{scope}: {self.title} ({self.start_date:%d.%m.%Y})" @property def is_company(self) -> bool: - """True если событие глобальное (без отдела).""" - return self.department_id is None + """True если событие глобальное (без отдела и сотрудника).""" + return self.department_id is None and self.employee_id is None + + @property + def is_personal(self) -> bool: + """True если событие личное (принадлежит конкретному сотруднику).""" + return self.employee_id is not None @property def has_time(self) -> bool: @@ -155,6 +177,12 @@ class CalendarEvent(models.Model): Raises: ValidationError: При некорректных датах/времени или настройках повторения. """ + # Проверка взаимоисключающих полей: department и employee + if self.department_id and self.employee_id: + raise ValidationError( + _("Событие не может одновременно принадлежать отделу и сотруднику.") + ) + # База дат if self.end_date and self.start_date and self.end_date < self.start_date: raise ValidationError( diff --git a/backend/calendar_app/notification_signals.py b/backend/calendar_app/notification_signals.py index 75c731ef..8e5ac88e 100644 --- a/backend/calendar_app/notification_signals.py +++ b/backend/calendar_app/notification_signals.py @@ -194,13 +194,22 @@ def get_event_recipients(event): - Для события компании - все активные сотрудники - Для события отдела - сотрудники этого отдела + - Для личного события - только владелец """ - if event.is_company: + if event.is_personal: + # Личное событие - только владелец + return [event.employee] if event.employee else [] + elif event.is_company: # Событие компании - все активные сотрудники return list(Employee.objects.filter(is_active=True)) elif event.department: - # Событие отдела - сотрудники отдела - return list(event.department.employees.filter(is_active=True)) + # Событие отдела - сотрудники через EmployeeDepartment + from employees.models import EmployeeDepartment + employee_ids = EmployeeDepartment.objects.filter( + department=event.department, + is_active=True + ).values_list('employee_id', flat=True) + return list(Employee.objects.filter(id__in=employee_ids, is_active=True)) return [] @@ -208,7 +217,8 @@ def get_event_recipients(event): def get_calendar_url(event): """ Возвращает URL календаря в зависимости от типа события. + Для всех типов событий используем параметр event_id для прямого открытия. """ - if event.department: - return f'/calendar/department/{event.department.id}/' - return '/calendar/company/' + # Возвращаем главную страницу календаря с параметром event_id + # Это позволит открыть модал события автоматически + return f'/?event_id={event.id}' diff --git a/backend/check_chat_access.py b/backend/check_chat_access.py new file mode 100644 index 00000000..8c2540ac --- /dev/null +++ b/backend/check_chat_access.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python +""" +Скрипт для проверки доступа к чатам +""" +import os +import sys +import django + +# Настройка Django +sys.path.insert(0, os.path.dirname(__file__)) +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'eusrr_backend.settings') +django.setup() + +from django.contrib.auth import get_user_model +from communications.models import Chat, ChatMembership +from django.db.models import Q + +User = get_user_model() + +def check_chat_access(): + print("=" * 60) + print("ПРОВЕРКА ДОСТУПА К ЧАТАМ") + print("=" * 60) + + # Получаем текущего пользователя (первого активного) + users = User.objects.filter(is_active=True) + if not users.exists(): + print("❌ Нет активных пользователей!") + return + + print(f"\n📋 Всего активных пользователей: {users.count()}") + for user in users[:5]: + print(f" - {user.username} (ID: {user.id})") + + # Проверяем чаты + print(f"\n📨 Всего чатов в системе: {Chat.objects.count()}") + + for chat in Chat.objects.all()[:10]: + print(f"\n{'='*60}") + print(f"📌 Чат ID: {chat.id}") + print(f" Тип: {chat.type}") + print(f" Название: {chat.name or '(без названия)'}") + print(f" Создан: {chat.created_at}") + + if chat.type == "private": + participants = chat.participants.all() + print(f" Участники (через participants): {[u.username for u in participants]}") + + if chat.type == "department": + print(f" Отдел: {chat.department}") + if chat.department: + # Используем get_participants для department чатов + dept_users = chat.get_participants + print(f" Сотрудники отдела: {[u.username or u.id for u in dept_users[:5]]}") + + # Проверяем membership + memberships = ChatMembership.objects.filter(chat=chat) + if memberships.exists(): + print(f" Участники (через ChatMembership): {[m.user.username for m in memberships]}") + + # Проверяем доступ для каждого пользователя + print(f"\n Доступ пользователей к этому чату:") + for user in users[:3]: + departments = user.departments + membership_chat_ids = ChatMembership.objects.filter( + user=user + ).values_list('chat_id', flat=True) + + has_access = Chat.objects.filter( + Q(type="global") + | Q(type="department", department__in=departments) + | Q(type="private", participants=user) + | Q(id__in=membership_chat_ids) + ).filter(id=chat.id).exists() + + status = "✅" if has_access else "❌" + print(f" {status} {user.username}: {'Доступ есть' if has_access else 'Доступа нет'}") + + if not has_access: + # Детальная проверка + is_global = chat.type == "global" + is_dept = chat.type == "department" and departments.filter(id=chat.department_id).exists() + is_private = chat.type == "private" and chat.participants.filter(id=user.id).exists() + is_member = chat.id in membership_chat_ids + + print(f" - Глобальный: {is_global}") + print(f" - Отдел: {is_dept}") + print(f" - Личный участник: {is_private}") + print(f" - Через membership: {is_member}") + print(f" - Отделы пользователя: {[d.name for d in departments]}") + +if __name__ == "__main__": + check_chat_access() diff --git a/backend/communications/views.py b/backend/communications/views.py index daed0485..7910d148 100644 --- a/backend/communications/views.py +++ b/backend/communications/views.py @@ -1,6 +1,7 @@ from __future__ import annotations import datetime +import logging from datetime import datetime as dt from datetime import timezone as dt_tz @@ -8,6 +9,8 @@ from django.conf import settings from django.contrib.auth.decorators import login_required from django.contrib.auth.mixins import LoginRequiredMixin from django.db import IntegrityError, models + +logger = logging.getLogger(__name__) from django.db.models import Count, F, Prefetch, Q, Subquery, Value from django.db.models.functions import Coalesce from django.http import JsonResponse @@ -53,21 +56,43 @@ def _coerce_ts(val: str | None) -> datetime.datetime: def user_can_access_chat(chat: Chat, user) -> bool: if not chat or not user: return False + + print(f"[CHAT DEBUG] user_can_access_chat: chat={chat.id}, type={chat.type}, user={user.id}") + if chat.type == "global": return True - if chat.type in ("private", "group"): # Личные и групповые чаты через participants - return chat.participants.filter(pk=user.pk).exists() + + if chat.type == "private": + # Личные чаты только через participants + result = chat.participants.filter(pk=user.pk).exists() + print(f"[CHAT DEBUG] Private chat, participants check: {result}") + return result + + if chat.type == "group": + # Групповые чаты через participants ИЛИ ChatMembership + in_participants = chat.participants.filter(pk=user.pk).exists() + in_membership = ChatMembership.objects.filter(chat=chat, user=user).exists() + result = in_participants or in_membership + print(f"[CHAT DEBUG] Group chat, participants={in_participants}, membership={in_membership}, result={result}") + return result + if chat.type == "department" and chat.department_id: - return chat.get_participants.filter(pk=user.pk).exists() + result = chat.get_participants.filter(pk=user.pk).exists() + print(f"[CHAT DEBUG] Department chat, result={result}") + return result + if chat.type in ("channel", "announcement"): # Для каналов и объявлений может быть include_all или membership if chat.include_all_employees: return user.is_active # Проверяем и participants и membership для гибкости - return ( + result = ( chat.participants.filter(pk=user.pk).exists() or ChatMembership.objects.filter(chat=chat, user=user).exists() ) + print(f"[CHAT DEBUG] Channel/announcement chat, result={result}") + return result + return False @@ -151,6 +176,63 @@ class ChatDetailView(LoginRequiredMixin, DetailView, FormView): context_object_name = "chat" form_class = MessageForm + def get_queryset(self): + """Возвращает только чаты, к которым пользователь имеет доступ""" + user = self.request.user + departments = user.departments + + print(f"=" * 80) + print(f"[CHAT DEBUG] ChatDetailView.get_queryset called") + print(f"[CHAT DEBUG] User: {user.id} ({user.username or 'NO USERNAME'})") + print(f"[CHAT DEBUG] Requested chat PK: {self.kwargs.get('pk')}") + + logger.info( + f"ChatDetailView.get_queryset: user={user.id} ({user.username}), " + f"pk={self.kwargs.get('pk')}" + ) + + # Получаем ID чатов через membership + from communications.models import ChatMembership + membership_chat_ids = list( + ChatMembership.objects.filter(user=user).values_list('chat_id', flat=True) + ) + + dept_ids = list(departments.values_list('id', flat=True)) + print(f"[CHAT DEBUG] User departments IDs: {dept_ids}") + print(f"[CHAT DEBUG] User membership_chat_ids: {membership_chat_ids}") + + logger.info( + f"User departments: {list(departments.values_list('id', flat=True))}, " + f"membership_chat_ids: {membership_chat_ids}" + ) + + qs = Chat.objects.filter( + Q(type="global") + | Q(type="department", department__in=departments) + | Q(type="private", participants=user) + | Q(id__in=membership_chat_ids) + ).distinct() + + available_ids = list(qs.values_list('id', flat=True)) + print(f"[CHAT DEBUG] Available chats for user: {available_ids}") + print(f"[CHAT DEBUG] Access to requested chat: {self.kwargs.get('pk') in available_ids}") + print(f"=" * 80) + + logger.info(f"Available chats for user: {list(qs.values_list('id', flat=True))}") + + return qs + + def get_object(self, queryset=None): + """Получаем объект чата с дополнительным логированием""" + print(f"[CHAT DEBUG] get_object called") + try: + obj = super().get_object(queryset) + print(f"[CHAT DEBUG] Object found: Chat {obj.id}, type={obj.type}") + return obj + except Exception as e: + print(f"[CHAT DEBUG] Exception in get_object: {type(e).__name__}: {e}") + raise + def get_success_url(self): return reverse( "communications:chat_detail", kwargs={"pk": self.object.pk} @@ -164,10 +246,15 @@ class ChatDetailView(LoginRequiredMixin, DetailView, FormView): chat: Chat = self.object user = self.request.user + print(f"[CHAT DEBUG] get_context_data called for chat {chat.id}") + # защита доступа - if not self._user_has_access(chat, user): + has_access = self._user_has_access(chat, user) + print(f"[CHAT DEBUG] _user_has_access returned: {has_access}") + + if not has_access: from django.http import Http404 - + print(f"[CHAT DEBUG] Raising Http404 because user has no access") raise Http404("Chat not found") # сообщения + участники diff --git a/backend/eusrr_backend/settings.py b/backend/eusrr_backend/settings.py index 62eedae6..58993fe9 100644 --- a/backend/eusrr_backend/settings.py +++ b/backend/eusrr_backend/settings.py @@ -178,6 +178,7 @@ LOGGING = { "loggers": { "documents": {"handlers": ["console"], "level": "DEBUG", "propagate": False}, "bots": {"handlers": ["console"], "level": "DEBUG", "propagate": False}, + "communications": {"handlers": ["console"], "level": "DEBUG", "propagate": False}, "django": {"handlers": ["console"], "level": "INFO", "propagate": False}, "aiogram": {"handlers": ["console"], "level": "INFO", "propagate": False}, # полезно видеть ошибки и отладку ldap3 diff --git a/backend/static/css/bootstrap-custom.css.map b/backend/static/css/bootstrap-custom.css.map index 1086b473..c411e51f 100644 --- a/backend/static/css/bootstrap-custom.css.map +++ b/backend/static/css/bootstrap-custom.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../node_modules/bootstrap/scss/mixins/_banner.scss","../node_modules/bootstrap/scss/_root.scss","../node_modules/bootstrap/scss/vendor/_rfs.scss","../node_modules/bootstrap/scss/mixins/_color-mode.scss","../node_modules/bootstrap/scss/_reboot.scss","../node_modules/bootstrap/scss/_variables.scss","../node_modules/bootstrap/scss/mixins/_border-radius.scss","../node_modules/bootstrap/scss/_type.scss","../node_modules/bootstrap/scss/mixins/_lists.scss","../scss/custom-bootstrap.scss","../node_modules/bootstrap/scss/_images.scss","../node_modules/bootstrap/scss/mixins/_image.scss","../node_modules/bootstrap/scss/_containers.scss","../node_modules/bootstrap/scss/mixins/_container.scss","../node_modules/bootstrap/scss/mixins/_breakpoints.scss","../node_modules/bootstrap/scss/_grid.scss","../node_modules/bootstrap/scss/mixins/_grid.scss","../node_modules/bootstrap/scss/_tables.scss","../node_modules/bootstrap/scss/mixins/_table-variants.scss","../node_modules/bootstrap/scss/forms/_labels.scss","../node_modules/bootstrap/scss/forms/_form-text.scss","../node_modules/bootstrap/scss/forms/_form-control.scss","../node_modules/bootstrap/scss/mixins/_transition.scss","../node_modules/bootstrap/scss/mixins/_gradients.scss","../node_modules/bootstrap/scss/forms/_form-select.scss","../node_modules/bootstrap/scss/forms/_form-check.scss","../node_modules/bootstrap/scss/forms/_form-range.scss","../node_modules/bootstrap/scss/forms/_floating-labels.scss","../node_modules/bootstrap/scss/forms/_input-group.scss","../node_modules/bootstrap/scss/mixins/_forms.scss","../node_modules/bootstrap/scss/_buttons.scss","../node_modules/bootstrap/scss/mixins/_buttons.scss","../node_modules/bootstrap/scss/_transitions.scss","../node_modules/bootstrap/scss/_dropdown.scss","../node_modules/bootstrap/scss/mixins/_caret.scss","../node_modules/bootstrap/scss/_button-group.scss","../node_modules/bootstrap/scss/_nav.scss","../node_modules/bootstrap/scss/_navbar.scss","../node_modules/bootstrap/scss/_card.scss","../node_modules/bootstrap/scss/_accordion.scss","../node_modules/bootstrap/scss/_breadcrumb.scss","../node_modules/bootstrap/scss/_pagination.scss","../node_modules/bootstrap/scss/mixins/_pagination.scss","../node_modules/bootstrap/scss/_badge.scss","../node_modules/bootstrap/scss/_alert.scss","../node_modules/bootstrap/scss/_progress.scss","../node_modules/bootstrap/scss/_list-group.scss","../node_modules/bootstrap/scss/_close.scss","../node_modules/bootstrap/scss/_toasts.scss","../node_modules/bootstrap/scss/_modal.scss","../node_modules/bootstrap/scss/mixins/_backdrop.scss","../node_modules/bootstrap/scss/_tooltip.scss","../node_modules/bootstrap/scss/mixins/_reset-text.scss","../node_modules/bootstrap/scss/_popover.scss","../node_modules/bootstrap/scss/_carousel.scss","../node_modules/bootstrap/scss/mixins/_clearfix.scss","../node_modules/bootstrap/scss/_spinners.scss","../node_modules/bootstrap/scss/_offcanvas.scss","../node_modules/bootstrap/scss/_placeholders.scss","../node_modules/bootstrap/scss/helpers/_color-bg.scss","../node_modules/bootstrap/scss/helpers/_colored-links.scss","../node_modules/bootstrap/scss/helpers/_focus-ring.scss","../node_modules/bootstrap/scss/helpers/_icon-link.scss","../node_modules/bootstrap/scss/helpers/_ratio.scss","../node_modules/bootstrap/scss/helpers/_position.scss","../node_modules/bootstrap/scss/helpers/_stacks.scss","../node_modules/bootstrap/scss/helpers/_visually-hidden.scss","../node_modules/bootstrap/scss/mixins/_visually-hidden.scss","../node_modules/bootstrap/scss/helpers/_stretched-link.scss","../node_modules/bootstrap/scss/helpers/_text-truncation.scss","../node_modules/bootstrap/scss/mixins/_text-truncate.scss","../node_modules/bootstrap/scss/helpers/_vr.scss","../node_modules/bootstrap/scss/mixins/_utilities.scss","../node_modules/bootstrap/scss/utilities/_api.scss","../scss/components/_message-inputs.scss","../scss/components/_chat-detail.scss","../scss/components/_comments.scss","../scss/components/_modals.scss"],"names":[],"mappings":"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BACE,oBAEA,qFACA,oCACA,oBZ+sB0B,uBY9sB1B,2GAGF,aACE,uBAGF,aACE,sBAIJ,qBACE,6DAOF,aACE,iBAUA,4BACE,sBAeF,gCACE,sCAGA,kCACE,sCAOJ,oCACE,sBAGF,qCACE,mBAUF,2CACE,qDACA,+CAMF,yDACE,qDACA,+CAQJ,cACE,qDACA,+CAQA,8BACE,oDACA,8CC5IF,eAOE,uBACA,sCACA,oDACA,kDACA,+BACA,iDACA,8BACA,mDACA,6BAEA,4BACA,0CAlBF,iBAOE,uBACA,sCACA,oDACA,mDACA,+BACA,iDACA,8BACA,mDACA,6BAEA,4BACA,0CAlBF,eAOE,uBACA,oCACA,mDACA,mDACA,+BACA,gDACA,8BACA,mDACA,6BAEA,4BACA,0CAlBF,YAOE,uBACA,sCACA,oDACA,kDACA,+BACA,iDACA,8BACA,iDACA,6BAEA,4BACA,0CAlBF,eAOE,uBACA,sCACA,kDACA,mDACA,+BACA,iDACA,8BACA,oDACA,6BAEA,4BACA,0CAlBF,cAOE,uBACA,sCACA,oDACA,kDACA,+BACA,iDACA,8BACA,kDACA,6BAEA,4BACA,0CAlBF,aAOE,uBACA,uBACA,gDACA,iDACA,+BACA,6CACA,8BACA,iDACA,6BAEA,4BACA,0CAlBF,YAOE,uBACA,uBACA,+CACA,6CACA,+BACA,4CACA,8BACA,8CACA,6BAEA,4BACA,0CDiJA,kBACE,gBACA,iCH3FF,4BGyFA,qBACE,gBACA,kCH3FF,4BGyFA,qBACE,gBACA,kCH3FF,4BGyFA,qBACE,gBACA,kCH3FF,6BGyFA,qBACE,gBACA,kCH3FF,6BGyFA,sBACE,gBACA,kCEnKN,YACE,cdu2BsC,Mc91BxC,gBACE,kDACA,qDACA,gBjB8QI,UALI,QiBrQR,Yd+lB4B,Ic3lB9B,mBACE,gDACA,mDjBoQI,UALI,QiB3PV,mBACE,kDACA,qDjB8PI,UALI,SkBtRV,WACE,Wf+1BsC,OHrkBlC,UALI,QkBjRR,Mf+1BsC,0BgBp2BxC,cACE,cACA,WACA,mBnBwRI,UALI,KmBhRR,YhBkmB4B,IgBjmB5B,YhBymB4B,IgBxmB5B,MhB43BsC,qBgB33BtC,gBACA,iBhBq3BsC,kBgBp3BtC,4BACA,2DfGE,sCgBHE,WDMJ,0DCFI,uCDhBN,cCiBQ,iBDGN,yBACE,gBAEA,wDACE,eAKJ,oBACE,MhBs2BoC,qBgBr2BpC,iBhBg2BoC,kBgB/1BpC,ahB82BoC,mBgB72BpC,UAKE,WhBkhBkB,kCgB9gBtB,2CAME,eAMA,aAKA,SAKF,qCACE,cACA,UAIF,2BACE,MhB40BoC,0BgB10BpC,UAQF,uBAEE,iBhB8yBoC,uBgB3yBpC,UAIF,oCACE,mBACA,qBACA,kBZjCc,KYkCd,MhBsyBoC,qBkBp4BtC,iBlBqiCgC,sBgBr8B9B,oBACA,qBACA,mBACA,eACA,wBhBgsB0B,uBgB/rB1B,gBCzFE,WD0FF,mHCtFE,uCD0EJ,oCCzEM,iBDwFN,yEACE,iBhB47B8B,uBgBn7BlC,wBACE,cACA,WACA,gBACA,gBACA,YhBwf4B,IgBvf5B,MhB2xBsC,qBgB1xBtC,+BACA,2BACA,sCAEA,8BACE,UAGF,gFAEE,gBACA,eAWJ,iBACE,WhB4wBsC,sDgB3wBtC,oBnByII,UALI,SIvQN,yCeuIF,uCACE,oBACA,uBACA,kBZ1FiB,MY8FrB,iBACE,WhBgwBsC,sDgB/vBtC,oBnB4HI,UALI,QIvQN,yCeoJF,uCACE,oBACA,qBACA,kBZpGiB,OY4GnB,sBACE,WhB6uBoC,sDgB1uBtC,yBACE,WhB0uBoC,sDgBvuBtC,yBACE,WhBuuBoC,sDgBluBxC,oBACE,MhBquBsC,KgBpuBtC,OhB8tBsC,sDgB7tBtC,QZpIgB,MYsIhB,mDACE,eAGF,uCACE,oBfvLA,sCe2LF,0CACE,oBf5LA,sCegMF,2ChB8sBsC,sDgB7sBtC,2ChB8sBsC,sDmB75BxC,aACE,yPAEA,cACA,WACA,8BtBqRI,UALI,KsB7QR,YnB+lB4B,ImB9lB5B,YnBsmB4B,ImBrmB5B,MnBy3BsC,qBmBx3BtC,gBACA,iBnBk3BsC,kBmBj3BtC,kFACA,4BACA,oBnB+9BkC,kBmB99BlC,gBnB+9BkC,UmB99BlC,2DlBHE,sCgBHE,WESJ,0DFLI,uCEfN,aFgBQ,iBEMN,mBACE,anBs3BoC,mBmBr3BpC,UAKE,WnBi+B4B,kCmB79BhC,0DAEE,cfwBc,KevBd,sBAGF,sBAEE,iBnBu1BoC,uBmBl1BtC,4BACE,oBACA,uCAIJ,gBACE,YfQmB,MePnB,efOmB,MeNnB,afOmB,MP4Nf,UALI,SIvQN,yCkB8CJ,gBACE,YfGmB,KeFnB,efEmB,KeDnB,afEmB,OPyNf,UALI,QIvQN,yCkBwDA,kCACE,yPCxEN,YACE,cACA,WpBq6BwC,OoBp6BxC,apBq6BwC,MoBp6BxC,cpBq6BwC,QoBn6BxC,8BACE,WACA,mBAIJ,oBACE,cpB25BwC,MoB15BxC,eACA,iBAEA,sCACE,YACA,oBACA,cAIJ,kBACE,sCAEA,cACA,MpB04BwC,IoBz4BxC,OpBy4BwC,IoBx4BxC,iBACA,mBACA,gBACA,yCACA,+CACA,4BACA,2BACA,wBACA,OpB24BwC,oDoB14BxC,yBAGA,iCnB3BE,oBmB+BF,8BAEE,cpBm4BsC,IoBh4BxC,yBACE,OpB03BsC,gBoBv3BxC,wBACE,apBs1BoC,mBoBr1BpC,UACA,WpB8foB,kCoB3ftB,0BACE,iBpB5BM,QoB6BN,apB7BM,QoB+BN,yCAII,wPAIJ,sCAII,gKAKN,+CACE,iBpBjDM,QoBkDN,apBlDM,QoBuDJ,kPAIJ,2BACE,oBACA,YACA,QpBk2BuC,GoB31BvC,2FACE,eACA,QpBy1BqC,GoB30B3C,aACE,apBo1BgC,MoBl1BhC,+BACE,4KAEA,MpB80B8B,IoB70B9B,mBACA,0CACA,gCnBjHA,kBgBHE,WGsHF,qCHlHE,uCG0GJ,+BHzGM,iBGmHJ,qCACE,6KAGF,uCACE,oBpB60B4B,aoBx0B1B,2JAKN,gCACE,cpBwzB8B,MoBvzB9B,eAEA,kDACE,oBACA,cAKN,mBACE,qBACA,apBsyBgC,KoBnyBlC,WACE,kBACA,sBACA,oBAIE,mDACE,oBACA,YACA,QpBspBwB,IoB/oB1B,8EACE,kLCnLN,YACE,WACA,cACA,UACA,gBACA,+BAEA,kBACE,UAIA,mDrB8gCuC,iDqB7gCvC,+CrB6gCuC,iDqB1gCzC,8BACE,SAGF,kCACE,MrB+/BuC,KqB9/BvC,OrB8/BuC,KqB7/BvC,oBACA,gBH1BF,iBlBkCQ,QqBNN,OrB6/BuC,EC1gCvC,mBgBHE,WImBF,4FJfE,uCIMJ,kCJLM,iBIgBJ,yCHjCF,iBlB8hCyC,uBqBx/BzC,2CACE,MrBw+B8B,KqBv+B9B,OrBw+B8B,MqBv+B9B,oBACA,OrBu+B8B,QqBt+B9B,iBrBu+B8B,uBqBt+B9B,2BpB7BA,mBoBkCF,8BACE,MrBo+BuC,KqBn+BvC,OrBm+BuC,KqBl+BvC,gBHpDF,iBlBkCQ,QqBoBN,OrBm+BuC,EC1gCvC,mBgBHE,WI6CF,4FJzCE,uCIiCJ,8BJhCM,iBI0CJ,qCH3DF,iBlB8hCyC,uBqB99BzC,8BACE,MrB88B8B,KqB78B9B,OrB88B8B,MqB78B9B,oBACA,OrB68B8B,QqB58B9B,iBrB68B8B,uBqB58B9B,2BpBvDA,mBoB4DF,qBACE,oBAEA,2CACE,iBrBg9BqC,0BqB78BvC,uCACE,iBrB48BqC,0BsBniC3C,eACE,kBAEA,gGAGE,OtBwiCoC,gDsBviCpC,WtBuiCoC,gDsBtiCpC,YtBuiCoC,KsBpiCtC,qBACE,kBACA,MACA,OACA,UACA,YACA,kBACA,gBACA,iBACA,uBACA,mBACA,oBACA,kDACA,qBLRE,WKSF,kDLLE,uCKTJ,qBLUM,iBKON,oEAEE,kBAEA,8FACE,oBAGF,oMAEE,YtB4gCkC,SsB3gClC,etB4gCkC,QsBzgCpC,sGACE,YtBugCkC,SsBtgClC,etBugCkC,QsBngCtC,4BACE,YtBigCoC,SsBhgCpC,etBigCoC,QsB1/BpC,mLACE,2CACA,UtB2/BkC,oDsBz/BlC,+MACE,kBACA,iBACA,WACA,OtBm/BgC,MsBl/BhC,WACA,iBtBg0BgC,kBCh3BpC,sCqBuDA,oDACE,2CACA,UtB0+BkC,oDsBr+BpC,6CACE,sCAIJ,2EAEE,MtB1EO,QsB4EP,yFACE,iBtB0yBkC,uBuBj4BxC,aACE,kBACA,aACA,eACA,oBACA,WAEA,iFAGE,kBACA,cACA,SACA,YAIF,0GAGE,UAMF,kBACE,kBACA,UAEA,wBACE,UAWN,kBACE,aACA,mBACA,mB1B8OI,UALI,K0BvOR,YvByjB4B,IuBxjB5B,YvBgkB4B,IuB/jB5B,MvBm1BsC,qBuBl1BtC,kBACA,mBACA,iBvB06BsC,sBuBz6BtC,2DtBtCE,sCsBgDJ,kHAIE,oB1BwNI,UALI,QIvQN,yCsByDJ,kHAIE,oB1B+MI,UALI,SIvQN,yCsBkEJ,0DAEE,mBAaE,wVtBjEA,0BACA,6BsByEA,yUtB1EA,0BACA,6BsBsFF,0IACE,4CtB1EA,yBACA,4BsB6EF,uHtB9EE,yBACA,4BuBxBF,gBACE,aACA,WACA,WxBu0BoC,OHrkBlC,UALI,Q2B1PN,MxBkjCqB,2BwB/iCvB,eACE,kBACA,SACA,UACA,aACA,eACA,qBACA,iB3BqPE,UALI,S2B7ON,MxBqiCqB,KwBpiCrB,iBxBoiCqB,kBC/jCrB,sCuBgCA,8HAEE,cA/CF,0DAqDE,axBuhCmB,kCwBphCjB,cxB81BgC,mBwB71BhC,2PACA,4BACA,yDACA,4DAGF,sEACE,axB4gCiB,kCwBvgCf,WxBugCe,+CwB5kCrB,0EA+EI,cxBu0BgC,mBwBt0BhC,8EAhFJ,wDAuFE,axBq/BmB,kCwBl/BjB,4NAEE,oQACA,cxBq5B8B,OwBp5B9B,wDACA,sEAIJ,oEACE,axBw+BiB,kCwBn+Bf,WxBm+Be,+CwB5kCrB,sEAkHI,sCAlHJ,kEAyHE,axBm9BmB,kCwBj9BnB,kFACE,iBxBg9BiB,2BwB78BnB,8EACE,WxB48BiB,+CwBz8BnB,sGACE,MxBw8BiB,2BwBn8BrB,qDACE,iBA1IF,kVAoJM,UAhIR,kBACE,aACA,WACA,WxBu0BoC,OHrkBlC,UALI,Q2B1PN,MxBkjCqB,6BwB/iCvB,iBACE,kBACA,SACA,UACA,aACA,eACA,qBACA,iB3BqPE,UALI,S2B7ON,MxBqiCqB,KwBpiCrB,iBxBoiCqB,iBC/jCrB,sCuBgCA,8IAEE,cA/CF,8DAqDE,axBuhCmB,oCwBphCjB,cxB81BgC,mBwB71BhC,4UACA,4BACA,yDACA,4DAGF,0EACE,axB4gCiB,oCwBvgCf,WxBugCe,8CwB5kCrB,8EA+EI,cxBu0BgC,mBwBt0BhC,8EAhFJ,4DAuFE,axBq/BmB,oCwBl/BjB,oOAEE,qVACA,cxBq5B8B,OwBp5B9B,wDACA,sEAIJ,wEACE,axBw+BiB,oCwBn+Bf,WxBm+Be,8CwB5kCrB,0EAkHI,sCAlHJ,sEAyHE,axBm9BmB,oCwBj9BnB,sFACE,iBxBg9BiB,6BwB78BnB,kFACE,WxB48BiB,8CwBz8BnB,0GACE,MxBw8BiB,6BwBn8BrB,uDACE,iBA1IF,8VAsJM,UCxJV,KAEE,yBACA,2BACA,uB5BuRI,mBALI,K4BhRR,0BACA,0BACA,qCACA,yBACA,8CACA,mCACA,gDACA,yCACA,6FACA,gCACA,kFAGA,qBACA,wDACA,sC5BsQI,UALI,wB4B/PR,sCACA,sCACA,0BACA,kBACA,qBAEA,sBACA,eACA,iBACA,mExBjBE,0CiBfF,iBOkCqB,iBRtBjB,WQwBJ,mHRpBI,uCQhBN,KRiBQ,iBQqBN,WACE,gCAEA,wCACA,8CAGF,sBAEE,0BACA,kCACA,wCAGF,mBACE,gCPrDF,iBOsDuB,uBACrB,8CACA,UAKE,0CAIJ,8BACE,8CACA,UAKE,0CAIJ,mGAKE,iCACA,yCAGA,+CAGA,yKAKI,0CAKN,sCAKI,0CAIJ,mDAGE,mCACA,oBACA,2CAEA,iDACA,uCAYF,aC/GA,qBACA,qBACA,+BACA,2BACA,4CACA,kDACA,wCACA,4BACA,yCACA,sDACA,6DACA,8BACA,8BACA,wCDkGA,eC/GA,qBACA,qBACA,+BACA,2BACA,4CACA,kDACA,yCACA,4BACA,yCACA,oDACA,6DACA,8BACA,8BACA,wCDkGA,aC/GA,qBACA,qBACA,+BACA,2BACA,4CACA,gDACA,wCACA,4BACA,uCACA,qDACA,6DACA,8BACA,8BACA,wCDkGA,UC/GA,qBACA,qBACA,+BACA,2BACA,6CACA,qDACA,wCACA,4BACA,0CACA,sDACA,6DACA,8BACA,8BACA,wCDkGA,aC/GA,qBACA,qBACA,+BACA,2BACA,yCACA,mDACA,uCACA,4BACA,0CACA,oDACA,6DACA,8BACA,8BACA,wCDkGA,YC/GA,qBACA,qBACA,+BACA,2BACA,0CACA,kDACA,uCACA,4BACA,yCACA,qDACA,6DACA,8BACA,8BACA,wCDkGA,WC/GA,qBACA,qBACA,+BACA,2BACA,6CACA,oDACA,yCACA,4BACA,2CACA,sDACA,6DACA,8BACA,8BACA,wCDkGA,UC/GA,qBACA,qBACA,+BACA,2BACA,yCACA,mDACA,sCACA,4BACA,0CACA,oDACA,6DACA,8BACA,8BACA,wCD4HA,qBChHA,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6DACA,iCACA,kCACA,wCACA,oBDmGA,uBChHA,wBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6DACA,iCACA,kCACA,wCACA,oBDmGA,qBChHA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6DACA,iCACA,kCACA,wCACA,oBDmGA,kBChHA,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6DACA,iCACA,kCACA,wCACA,oBDmGA,qBChHA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6DACA,iCACA,kCACA,wCACA,oBDmGA,oBChHA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6DACA,iCACA,kCACA,wCACA,oBDmGA,mBChHA,wBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6DACA,iCACA,kCACA,wCACA,oBDmGA,kBChHA,wBACA,+BACA,2BACA,2BACA,qCACA,sCACA,4BACA,4BACA,sCACA,6DACA,iCACA,kCACA,wCACA,oBD+GF,UACE,0BACA,qCACA,yBACA,mCACA,iDACA,yCACA,kDACA,0CACA,iCACA,4CACA,gCACA,wCAEA,gBzB8QwC,UyBpQxC,wBACE,0BAGF,gBACE,gCAWJ,2BCjJE,yBACA,2B7B8NI,mBALI,Q6BvNR,mDDkJF,2BCrJE,2BACA,2B7B8NI,mBALI,S6BvNR,mDCnEF,MVgBM,WUfJ,oBVmBI,uCUpBN,MVqBQ,iBUlBN,iBACE,UAMF,qBACE,aAIJ,YACE,SACA,gBVDI,WUEJ,iBVEI,uCULN,YVMQ,iBUDN,gCACE,QACA,YVNE,WUOF,gBVHE,uEACE,iBWpBR,sEAME,kBAGF,iBACE,mBCwBE,wBACE,qBACA,Y7B6hBwB,O6B5hBxB,e7B2hBwB,O6B1hBxB,WArCJ,sBACA,sCACA,gBACA,qCA0DE,8BACE,cD9CN,eAEE,2BACA,+BACA,2BACA,gCACA,+B/BuQI,wBALI,K+BhQR,0CACA,oCACA,+DACA,qDACA,mDACA,0FACA,6DACA,uCACA,+CACA,+CACA,qDACA,mDACA,sCACA,sCACA,4DACA,mCACA,qCACA,oCACA,qCACA,uCAGA,kBACA,kCACA,aACA,uCACA,kEACA,S/B0OI,UALI,6B+BnOR,+BACA,gBACA,gBACA,uCACA,4BACA,6E3BzCE,+C2B6CF,+BACE,SACA,OACA,qCAwBA,qBACE,qBAEA,qCACE,WACA,OAIJ,mBACE,mBAEA,mCACE,QACA,UnB1CJ,yBmB4BA,wBACE,qBAEA,wCACE,WACA,OAIJ,sBACE,mBAEA,sCACE,QACA,WnB1CJ,yBmB4BA,wBACE,qBAEA,wCACE,WACA,OAIJ,sBACE,mBAEA,sCACE,QACA,WnB1CJ,yBmB4BA,wBACE,qBAEA,wCACE,WACA,OAIJ,sBACE,mBAEA,sCACE,QACA,WnB1CJ,0BmB4BA,wBACE,qBAEA,wCACE,WACA,OAIJ,sBACE,mBAEA,sCACE,QACA,WnB1CJ,0BmB4BA,yBACE,qBAEA,yCACE,WACA,OAIJ,uBACE,mBAEA,uCACE,QACA,WAUN,uCACE,SACA,YACA,aACA,wCCpFA,gCACE,qBACA,Y7B6hBwB,O6B5hBxB,e7B2hBwB,O6B1hBxB,WA9BJ,aACA,sCACA,yBACA,qCAmDE,sCACE,cDgEJ,wCACE,MACA,WACA,UACA,aACA,sCClGA,iCACE,qBACA,Y7B6hBwB,O6B5hBxB,e7B2hBwB,O6B1hBxB,WAvBJ,oCACA,eACA,uCACA,uBA4CE,uCACE,cD0EF,iCACE,iBAMJ,0CACE,MACA,WACA,UACA,aACA,uCCnHA,mCACE,qBACA,Y7B6hBwB,O6B5hBxB,e7B2hBwB,O6B1hBxB,WAWA,mCACE,aAGF,oCACE,qBACA,a7B0gBsB,O6BzgBtB,e7BwgBsB,O6BvgBtB,WAnCN,oCACA,wBACA,uCAsCE,yCACE,cD2FF,oCACE,iBAON,kBACE,SACA,6CACA,gBACA,mDACA,UAMF,eACE,cACA,WACA,4EACA,WACA,Y5Byb4B,I4Bxb5B,oCACA,mBACA,qBACA,mBACA,+BACA,S3BtKE,uD2ByKF,0CAEE,0CV1LF,iBU4LuB,iCAGvB,4CAEE,2CACA,qBVlMF,iBUmMuB,kCAGvB,gDAEE,6CACA,oBACA,+BAMJ,oBACE,cAIF,iBACE,cACA,gFACA,gB/BmEI,UALI,S+B5DR,sCACA,mBAIF,oBACE,cACA,4EACA,oCAIF,oBAEE,6BACA,0BACA,+DACA,2BACA,kCACA,qCACA,6DACA,uDACA,sCACA,sCACA,2CACA,oCEtPF,+BAEE,kBACA,oBACA,sBAEA,yCACE,kBACA,cAKF,kXAME,UAKJ,aACE,aACA,eACA,2BAEA,0BACE,WAIJ,W7BhBI,sC6BoBF,qFAEE,4CAIF,qJ7BVE,0BACA,6B6BmBF,6G7BNE,yBACA,4B6BwBJ,uBACE,qBACA,oBAEA,2GAGE,cAGF,0CACE,eAIJ,yEACE,sBACA,qBAGF,yEACE,uBACA,sBAoBF,oBACE,sBACA,uBACA,uBAEA,wDAEE,WAGF,4FAEE,2CAIF,qH7B1FE,6BACA,4B6B8FF,oF7B7GE,yBACA,0B8BxBJ,KAEE,8BACA,gCAEA,4BACA,0CACA,sDACA,wDAGA,aACA,eACA,eACA,gBACA,gBAGF,UACE,cACA,kElCsQI,UALI,6BkC/PR,2CACA,+BACA,qBACA,gBACA,SdfI,WcgBJ,uFdZI,uCcGN,UdFQ,iBcaN,gCAEE,qCAIF,wBACE,UACA,W/BkhBoB,kC+B9gBtB,sCAEE,wCACA,oBACA,eAQJ,UAEE,mDACA,mDACA,qDACA,4GACA,0DACA,gDACA,wGAGA,oFAEA,oBACE,uDACA,2D9B7CA,wDACA,yD8B+CA,oDAGE,kBACA,wDAIJ,8DAEE,2CACA,mDACA,yDAGF,yBAEE,oD9BjEA,yBACA,0B8B2EJ,WAEE,sDACA,uCACA,uCAGA,qB9B5FE,gD8BgGF,uDAEE,4CbjHF,iBakHuB,mCASzB,eAEE,6BACA,0CACA,+DAGA,gCAEA,yBACE,gBACA,eACA,uEAEA,8DAEE,iCAIJ,+DAEE,Y/B0d0B,I+Bzd1B,gDACA,iCAUF,wCAEE,cACA,kBAKF,kDAEE,aACA,YACA,kBAMF,iEACE,WAUF,uBACE,aAEF,qBACE,cC7LJ,QAEE,4BACA,8BACA,4DACA,iEACA,oEACA,gEACA,uCACA,mCACA,qCACA,+DACA,qEACA,uCACA,uCACA,uCACA,uCACA,4QACA,2EACA,2DACA,yCACA,6DAGA,kBACA,aACA,eACA,mBACA,8BACA,8DAMA,2JACE,aACA,kBACA,mBACA,8BAoBJ,cACE,6CACA,gDACA,+CnC4NI,UALI,iCmCrNR,mCACA,qBACA,mBAEA,wCAEE,yCAUJ,YAEE,2BACA,gCAEA,4BACA,4CACA,wDACA,8DAGA,aACA,sBACA,eACA,gBACA,gBAGE,wDAEE,oCAIJ,2BACE,gBASJ,aACE,Y5BpCmB,M4BqCnB,e5BrCmB,M4BsCnB,6BAEA,yDAGE,oCAaJ,iBACE,gBACA,YAGA,mBAIF,gBACE,8EnCyII,UALI,mCmClIR,cACA,6BACA,+BACA,0E/BxIE,qDgBHE,We6IJ,oCfzII,uCeiIN,gBfhIQ,iBe0IN,sBACE,qBAGF,sBACE,qBACA,UACA,sDAMJ,qBACE,qBACA,YACA,aACA,sBACA,kDACA,4BACA,2BACA,qBAGF,mBACE,yCACA,gBvB1HE,yBuBsIA,kBAEI,iBACA,2BAEA,8BACE,mBAEA,6CACE,kBAGF,wCACE,kDACA,iDAIJ,qCACE,iBAGF,mCACE,wBACA,gBAGF,kCACE,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0Bf9NJ,WegOI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oBvB5LR,yBuBsIA,kBAEI,iBACA,2BAEA,8BACE,mBAEA,6CACE,kBAGF,wCACE,kDACA,iDAIJ,qCACE,iBAGF,mCACE,wBACA,gBAGF,kCACE,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0Bf9NJ,WegOI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oBvB5LR,yBuBsIA,kBAEI,iBACA,2BAEA,8BACE,mBAEA,6CACE,kBAGF,wCACE,kDACA,iDAIJ,qCACE,iBAGF,mCACE,wBACA,gBAGF,kCACE,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0Bf9NJ,WegOI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oBvB5LR,0BuBsIA,kBAEI,iBACA,2BAEA,8BACE,mBAEA,6CACE,kBAGF,wCACE,kDACA,iDAIJ,qCACE,iBAGF,mCACE,wBACA,gBAGF,kCACE,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0Bf9NJ,WegOI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oBvB5LR,0BuBsIA,mBAEI,iBACA,2BAEA,+BACE,mBAEA,8CACE,kBAGF,yCACE,kDACA,iDAIJ,sCACE,iBAGF,oCACE,wBACA,gBAGF,mCACE,aAGF,8BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0Bf9NJ,WegOI,KAGA,gDACE,aAGF,8CACE,aACA,YACA,UACA,oBAtDR,eAEI,iBACA,2BAEA,2BACE,mBAEA,0CACE,kBAGF,qCACE,kDACA,iDAIJ,kCACE,iBAGF,gCACE,wBACA,gBAGF,+BACE,aAGF,0BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0Bf9NJ,WegOI,KAGA,4CACE,aAGF,0CACE,aACA,YACA,UACA,mBAiBZ,yCAGE,6CACA,mDACA,sDACA,+BACA,8BACA,oCACA,2DACA,+QAME,0CACE,+QCzRN,MAEE,yBACA,yBACA,iCACA,wBACA,2BACA,4BACA,iDACA,8BACA,uDACA,oCACA,8BACA,8BACA,8BACA,sBACA,mBACA,kBACA,wCACA,oCACA,gCAGA,kBACA,aACA,sBACA,YACA,6BACA,2BACA,qBACA,mCACA,2BACA,qEhCjBE,2CgCqBF,SACE,eACA,cAGF,kBACE,mBACA,sBAEA,8BACE,mBhCtBF,0DACA,2DgCyBA,6BACE,sBhCbF,8DACA,6DgCmBF,8DAEE,aAIJ,WAGE,cACA,wDACA,2BAGF,YACE,4CACA,iCAGF,eACE,oDACA,gBACA,oCAGF,sBACE,gBAQA,sBACE,oCAQJ,aACE,kEACA,gBACA,+BACA,uCACA,4EAEA,yBhC7FE,wFgCkGJ,aACE,kEACA,+BACA,uCACA,yEAEA,wBhCxGE,wFgCkHJ,kBACE,qDACA,oDACA,oDACA,gBAEA,mCACE,mCACA,sCAIJ,mBACE,qDACA,oDAIF,kBACE,kBACA,MACA,QACA,SACA,OACA,2ChC1IE,iDgC8IJ,yCAGE,WAGF,wBhC3II,0DACA,2DgC+IJ,2BhClII,8DACA,6DgC8IF,kBACE,0CxB3HA,yBwBuHJ,YAQI,aACA,mBAGA,kBAEE,YACA,gBAEA,wBACE,cACA,cAKA,mChC3KJ,0BACA,6BgC6KM,iGAGE,0BAEF,oGAGE,6BAIJ,oChC5KJ,yBACA,4BgC8KM,mGAGE,yBAEF,sGAGE,6BCpOZ,WAEE,2CACA,qCACA,+KACA,oDACA,oDACA,sDACA,6FACA,sCACA,mCACA,+CACA,8CACA,0OACA,uCACA,mDACA,+DACA,+PACA,4EACA,uCACA,oCACA,6DACA,sDAIF,kBACE,kBACA,aACA,mBACA,WACA,4ErC4PI,UALI,KqCrPR,oCACA,gBACA,4CACA,SjCrBE,gBiCuBF,qBjB1BI,WiB2BJ,+BjBvBI,uCiBUN,kBjBTQ,iBiBwBN,kCACE,uCACA,+CACA,gGAEA,yCACE,qDACA,iDAKJ,yBACE,cACA,yCACA,0CACA,iBACA,WACA,8CACA,4BACA,mDjBjDE,WiBkDF,wCjB9CE,uCiBqCJ,yBjBpCM,iBiBgDN,wBACE,UAGF,wBACE,UACA,UACA,oDAIJ,kBACE,gBAGF,gBACE,gCACA,wCACA,+EAEA,8BjC7DE,yDACA,0DiC+DA,kEjChEA,+DACA,gEiCoEF,oCACE,aAIF,6BjC5DE,6DACA,4DiC+DE,2EjChEF,mEACA,kEiCoEA,iDjCrEA,6DACA,4DiC0EJ,gBACE,8EASA,iCACE,eACA,cjC9GA,gBiCiHA,0DACA,4DAIE,oJjCtHF,gBiC6HA,qDjC7HA,gBiCqIA,8CACE,0TACA,iUC1JN,YAEE,gCACA,kCACA,oCAEA,qBACA,gCACA,yDACA,uCACA,6DAGA,aACA,eACA,sEACA,iDtC+QI,UALI,+BsCxQR,gBACA,0FAMA,kCACE,iDAEA,0CACE,WACA,kDACA,yCACA,uFAIJ,wBACE,6CCrCJ,YAEE,gCACA,kCvC4RI,0BALI,KuCrRR,4CACA,sCACA,qDACA,qDACA,uDACA,wDACA,gDACA,2DACA,wDACA,iDACA,yEACA,mCACA,mCACA,6CACA,0DACA,oDACA,8DAGA,ajCpBA,eACA,gBiCuBF,WACE,kBACA,cACA,sEvCgQI,UALI,+BuCzPR,iCACA,qBACA,yCACA,iFnBpBI,WmBqBJ,mHnBjBI,uCmBQN,WnBPQ,iBmBkBN,iBACE,UACA,uCAEA,+CACA,qDAGF,iBACE,UACA,uCACA,+CACA,QpC2uCgC,EoC1uChC,iDAGF,qCAEE,UACA,wClBtDF,iBkBuDuB,+BACrB,sDAGF,yCAEE,0CACA,oBACA,kDACA,wDAKF,wCACE,YpC8sCgC,gCoCzsC9B,kCnC9BF,0DACA,6DmCmCE,iCnClDF,2DACA,8DmCkEJ,eClGE,kCACA,gCxC0RI,0BALI,QwCnRR,0DDmGF,eCtGE,kCACA,kCxC0RI,0BALI,SwCnRR,0DCFF,OAEE,6BACA,6BzCuRI,qBALI,OyChRR,4BACA,uBACA,kDAGA,qBACA,4DzC+QI,UALI,0ByCxQR,wCACA,cACA,4BACA,kBACA,mBACA,wBrCJE,4CqCSF,aACE,aAKJ,YACE,kBACA,SChCF,OAEE,2BACA,2BACA,2BACA,+BACA,0BACA,qCACA,6EACA,kDACA,+BAGA,kBACA,4DACA,4CACA,4BACA,oCACA,8BtCHE,4CsCQJ,eAEE,cAIF,YACE,YvC6kB4B,IuC5kB5B,iCAQF,mBACE,cvCs+C8B,KuCn+C9B,8BACE,kBACA,MACA,QACA,UACA,qBAQF,eACE,kDACA,2CACA,yDACA,uDAJF,iBACE,oDACA,6CACA,2DACA,yDAJF,eACE,kDACA,2CACA,yDACA,uDAJF,YACE,+CACA,wCACA,sDACA,oDAJF,eACE,kDACA,2CACA,yDACA,uDAJF,cACE,iDACA,0CACA,wDACA,sDAJF,aACE,gDACA,yCACA,uDACA,qDAJF,YACE,+CACA,wCACA,sDACA,oDC5DF,gCACE,yBxCyhDgC,MwCphDpC,4BAGE,2B3CkRI,wBALI,Q2C3QR,yCACA,qDACA,qDACA,8BACA,8BACA,8CAGA,aACA,iCACA,gB3CsQI,UALI,6B2C/PR,uCvCRE,+CuCaJ,cACE,aACA,sBACA,uBACA,gBACA,mCACA,kBACA,mBACA,2CvBxBI,WuByBJ,kCvBrBI,uCuBYN,cvBXQ,iBuBuBR,2NAEE,oEAGF,4BACE,iBAGF,0CACE,WAIA,uBACE,kDAGE,uCAJJ,uBAKM,gBC3DR,YAEE,4CACA,sCACA,qDACA,qDACA,uDACA,qCACA,qCACA,wDACA,6DACA,uDACA,0DACA,yDACA,0DACA,+CACA,mCACA,mCACA,6CAGA,aACA,sBAGA,eACA,gBxCXE,iDwCeJ,qBACE,qBACA,sBAEA,8CAEE,oCACA,0BASJ,wBACE,WACA,wCACA,mBAGA,4DAEE,UACA,8CACA,qBACA,sDAGF,+BACE,+CACA,uDAQJ,iBACE,kBACA,cACA,gFACA,iCACA,qBACA,yCACA,iFAEA,6BxCvDE,+BACA,gCwC0DF,4BxC7CE,mCACA,kCwCgDF,oDAEE,0CACA,oBACA,kDAIF,wBACE,UACA,wCACA,gDACA,sDAIF,kCACE,mBAEA,yCACE,sDACA,mDAaF,uBACE,mBAGE,qExCvDJ,6DAZA,0BwCwEI,qExCxEJ,2DAYA,4BwCiEI,+CACE,aAGF,yDACE,mDACA,oBAEA,gEACE,uDACA,oDhCtFR,yBgC8DA,0BACE,mBAGE,wExCvDJ,6DAZA,0BwCwEI,wExCxEJ,2DAYA,4BwCiEI,kDACE,aAGF,4DACE,mDACA,oBAEA,mEACE,uDACA,qDhCtFR,yBgC8DA,0BACE,mBAGE,wExCvDJ,6DAZA,0BwCwEI,wExCxEJ,2DAYA,4BwCiEI,kDACE,aAGF,4DACE,mDACA,oBAEA,mEACE,uDACA,qDhCtFR,yBgC8DA,0BACE,mBAGE,wExCvDJ,6DAZA,0BwCwEI,wExCxEJ,2DAYA,4BwCiEI,kDACE,aAGF,4DACE,mDACA,oBAEA,mEACE,uDACA,qDhCtFR,0BgC8DA,0BACE,mBAGE,wExCvDJ,6DAZA,0BwCwEI,wExCxEJ,2DAYA,4BwCiEI,kDACE,aAGF,4DACE,mDACA,oBAEA,mEACE,uDACA,qDhCtFR,0BgC8DA,2BACE,mBAGE,yExCvDJ,6DAZA,0BwCwEI,yExCxEJ,2DAYA,4BwCiEI,mDACE,aAGF,6DACE,mDACA,oBAEA,oEACE,uDACA,qDAcZ,kBxChJI,gBwCmJF,mCACE,mDAEA,8CACE,sBAaJ,yBACE,uDACA,gDACA,8DACA,6DACA,iEACA,8DACA,kEACA,0DACA,2DACA,qEAVF,2BACE,yDACA,kDACA,gEACA,6DACA,mEACA,8DACA,oEACA,4DACA,6DACA,uEAVF,yBACE,uDACA,gDACA,8DACA,6DACA,iEACA,8DACA,kEACA,0DACA,2DACA,qEAVF,sBACE,oDACA,6CACA,2DACA,6DACA,8DACA,8DACA,+DACA,uDACA,wDACA,kEAVF,yBACE,uDACA,gDACA,8DACA,6DACA,iEACA,8DACA,kEACA,0DACA,2DACA,qEAVF,wBACE,sDACA,+CACA,6DACA,6DACA,gEACA,8DACA,iEACA,yDACA,0DACA,oEAVF,uBACE,qDACA,8CACA,4DACA,6DACA,+DACA,8DACA,gEACA,wDACA,yDACA,mEAVF,sBACE,oDACA,6CACA,2DACA,6DACA,8DACA,8DACA,+DACA,uDACA,wDACA,kEC5LJ,WAEE,2BACA,qVACA,4BACA,mCACA,oEACA,gCACA,sCACA,wEAGA,uBACA,M1CqpD2B,I0CppD3B,O1CopD2B,I0CnpD3B,oBACA,gCACA,0EACA,SzCJE,sByCMF,oCAGA,iBACE,gCACA,qBACA,0CAGF,iBACE,UACA,4CACA,0CAGF,wCAEE,oBACA,iBACA,6CAQJ,iBAHE,wCASE,gCATF,wCCjDF,OAEE,wBACA,2BACA,6BACA,2BACA,4B9CyRI,qBALI,S8ClRR,mBACA,iDACA,gDACA,4DACA,kDACA,4CACA,mDACA,wDACA,mEAGA,gCACA,e9C2QI,UALI,0B8CpQR,4BACA,oBACA,oCACA,4BACA,uEACA,sC1CRE,4C0CWF,eACE,UAGF,kBACE,aAIJ,iBACE,wBAEA,kBACA,+BACA,kBACA,eACA,oBAEA,mCACE,sCAIJ,cACE,aACA,mBACA,4DACA,mCACA,2CACA,4BACA,qF1ChCE,0FACA,2F0CkCF,yBACE,kDACA,sCAIJ,YACE,kCACA,qBC9DF,OAEE,wBACA,wBACA,yBACA,0BACA,mBACA,iCACA,4DACA,gDACA,qDACA,+CACA,4FACA,kCACA,kCACA,qCACA,uDACA,uDACA,kCACA,8BACA,uBACA,uDACA,uDAGA,eACA,MACA,OACA,+BACA,aACA,WACA,YACA,kBACA,gBAGA,UAOF,cACE,kBACA,WACA,8BAEA,oBAGA,0B3B5CI,W2B6CF,uB3BzCE,uC2BwCJ,0B3BvCM,iB2BuCN,0BAEE,U5Ck8CgC,oB4Ch8ClC,0BACE,U5Cg8CgC,K4C57ClC,kCACE,U5C67CgC,Y4Cz7CpC,yBACE,6CAEA,wCACE,gBACA,gBAGF,qCACE,gBAIJ,uBACE,aACA,mBACA,iDAIF,eACE,kBACA,aACA,sBACA,WAEA,4BACA,oBACA,oCACA,4BACA,uE3CrFE,4C2CyFF,UAIF,gBAEE,2BACA,uBACA,2BClHA,eACA,MACA,OACA,QDkH0B,0BCjH1B,YACA,aACA,iBD+G4D,sBC5G5D,+BACA,6BD2G0F,2BAK5F,cACE,aACA,cACA,mBACA,uCACA,4F3CrGE,2DACA,4D2CuGF,yBACE,4FACA,gJAKJ,aACE,gBACA,8CAKF,YACE,kBAGA,cACA,gCAIF,cACE,aACA,cACA,eACA,mBACA,yBACA,sEACA,2CACA,yF3CzHE,+DACA,8D2C8HF,gBACE,2CnC3GA,yBmCiHF,OACE,2BACA,4CAIF,cACE,gCACA,kBACA,iBAGF,UACE,yBnC9HA,yBmCmIF,oBAEE,yBnCrIA,0BmC0IF,UACE,0BAUA,kBACE,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,yB2C/BF,cAiEM,4BACA,+BACA,0CAEA,gCACE,aAGF,8BACE,aACA,YACA,UACA,mBAEA,2C3CnCN,4B2C5CF,cAEI,eACA,SACA,mCACA,aACA,sBACA,eACA,gCACA,kBACA,wCACA,4BACA,UnC5BA,WmC8BA,gCnC1BA,gEmCYJ,cnCXM,iBRuDJ,4B2C5BE,8BACE,MACA,OACA,gCACA,qFACA,4BAGF,4BACE,MACA,QACA,gCACA,oFACA,2BAGF,4BACE,MACA,QACA,OACA,kCACA,gBACA,sFACA,4BAGF,+BACE,QACA,OACA,kCACA,gBACA,mFACA,2BAGF,sDAEE,eAGF,8DAGE,oB3C5BJ,yB2C/BF,cAiEM,4BACA,+BACA,0CAEA,gCACE,aAGF,8BACE,aACA,YACA,UACA,mBAEA,2C3CnCN,4B2C5CF,cAEI,eACA,SACA,mCACA,aACA,sBACA,eACA,gCACA,kBACA,wCACA,4BACA,UnC5BA,WmC8BA,gCnC1BA,gEmCYJ,cnCXM,iBRuDJ,4B2C5BE,8BACE,MACA,OACA,gCACA,qFACA,4BAGF,4BACE,MACA,QACA,gCACA,oFACA,2BAGF,4BACE,MACA,QACA,OACA,kCACA,gBACA,sFACA,4BAGF,+BACE,QACA,OACA,kCACA,gBACA,mFACA,2BAGF,sDAEE,eAGF,8DAGE,oB3C5BJ,yB2C/BF,cAiEM,4BACA,+BACA,0CAEA,gCACE,aAGF,8BACE,aACA,YACA,UACA,mBAEA,2C3CnCN,6B2C5CF,cAEI,eACA,SACA,mCACA,aACA,sBACA,eACA,gCACA,kBACA,wCACA,4BACA,UnC5BA,WmC8BA,gCnC1BA,iEmCYJ,cnCXM,iBRuDJ,6B2C5BE,8BACE,MACA,OACA,gCACA,qFACA,4BAGF,4BACE,MACA,QACA,gCACA,oFACA,2BAGF,4BACE,MACA,QACA,OACA,kCACA,gBACA,sFACA,4BAGF,+BACE,QACA,OACA,kCACA,gBACA,mFACA,2BAGF,sDAEE,eAGF,8DAGE,oB3C5BJ,0B2C/BF,cAiEM,4BACA,+BACA,0CAEA,gCACE,aAGF,8BACE,aACA,YACA,UACA,mBAEA,2C3CnCN,6B2C5CF,eAEI,eACA,SACA,mCACA,aACA,sBACA,eACA,gCACA,kBACA,wCACA,4BACA,UnC5BA,WmC8BA,gCnC1BA,iEmCYJ,enCXM,iBRuDJ,6B2C5BE,+BACE,MACA,OACA,gCACA,qFACA,4BAGF,6BACE,MACA,QACA,gCACA,oFACA,2BAGF,6BACE,MACA,QACA,OACA,kCACA,gBACA,sFACA,4BAGF,gCACE,QACA,OACA,kCACA,gBACA,mFACA,2BAGF,wDAEE,eAGF,iEAGE,oB3C5BJ,0B2C/BF,eAiEM,4BACA,+BACA,0CAEA,iCACE,aAGF,+BACE,aACA,YACA,UACA,mBAEA,2CA/ER,WAEI,eACA,SACA,mCACA,aACA,sBACA,eACA,gCACA,kBACA,wCACA,4BACA,UnC5BA,WmC8BA,+BnC1BA,uCmCYJ,WnCXM,iBmC2BF,2BACE,MACA,OACA,gCACA,qFACA,4BAGF,yBACE,MACA,QACA,gCACA,oFACA,2BAGF,yBACE,MACA,QACA,OACA,kCACA,gBACA,sFACA,4BAGF,4BACE,QACA,OACA,kCACA,gBACA,mFACA,2BAGF,gDAEE,eAGF,qDAGE,mBA2BR,oBPpHE,eACA,MACA,OACA,Q7C0mCkC,K6CzmClC,YACA,aACA,iB7CUS,K6CPT,mCACA,iC7Cm+CkC,GoDr3CpC,kBACE,aACA,mBACA,oEAEA,6BACE,sFACA,uIAIJ,iBACE,gBACA,kDAGF,gBACE,YACA,oEACA,gBC7IF,aACE,qBACA,eACA,sBACA,YACA,8BACA,QrDgzCkC,GqD9yClC,yBACE,qBACA,WAKJ,gBACE,gBAGF,gBACE,gBAGF,gBACE,iBAKA,+BACE,mDAIJ,4BACE,IACE,QrDmxCgC,IqD/wCpC,kBACE,+EACA,oBACA,8CAGF,4BACE,KACE,wBH9CF,iBACE,cACA,WACA,WIHF,iBACE,sBACA,iFAFF,mBACE,sBACA,mFAFF,iBACE,sBACA,iFAFF,cACE,sBACA,8EAFF,iBACE,sBACA,iFAFF,gBACE,sBACA,gFAFF,eACE,sBACA,+EAFF,cACE,sBACA,8ECFF,cACE,wEACA,kGAGE,wCAGE,8DACA,wFATN,gBACE,0EACA,oGAGE,4CAGE,8DACA,wFATN,cACE,wEACA,kGAGE,wCAGE,8DACA,wFATN,WACE,qEACA,+FAGE,kCAGE,+DACA,yFATN,cACE,wEACA,kGAGE,wCAGE,+DACA,yFATN,aACE,uEACA,iGAGE,sCAGE,8DACA,wFATN,YACE,sEACA,gGAGE,oCAGE,gEACA,0FATN,WACE,qEACA,+FAGE,kCAGE,6DACA,uFAOR,oBACE,+EACA,yGAGE,oDAEE,kFACA,4GC1BN,kBACE,UAEA,kJCHF,WACE,oBACA,IzD6c4B,QyD5c5B,mBACA,kFACA,sBzD2c4B,MyD1c5B,2BAEA,eACE,cACA,MzDuc0B,IyDtc1B,OzDsc0B,IyDrc1B,kBxCIE,WwCHF,0BxCOE,uCwCZJ,exCaM,iBwCDJ,8DACE,mECnBN,OACE,kBACA,WAEA,eACE,cACA,mCACA,WAGF,SACE,kBACA,MACA,OACA,WACA,YAKF,WACE,wBADF,WACE,uBADF,YACE,0BADF,YACE,kCCrBJ,WACE,eACA,MACA,QACA,OACA,Q3DumCkC,K2DpmCpC,cACE,eACA,QACA,SACA,OACA,Q3D+lCkC,K2DvlChC,YACE,gBACA,MACA,Q3DmlC8B,K2DhlChC,eACE,gBACA,SACA,Q3D6kC8B,KS9iChC,yBkDxCA,eACE,gBACA,MACA,Q3DmlC8B,K2DhlChC,kBACE,gBACA,SACA,Q3D6kC8B,MS9iChC,yBkDxCA,eACE,gBACA,MACA,Q3DmlC8B,K2DhlChC,kBACE,gBACA,SACA,Q3D6kC8B,MS9iChC,yBkDxCA,eACE,gBACA,MACA,Q3DmlC8B,K2DhlChC,kBACE,gBACA,SACA,Q3D6kC8B,MS9iChC,0BkDxCA,eACE,gBACA,MACA,Q3DmlC8B,K2DhlChC,kBACE,gBACA,SACA,Q3D6kC8B,MS9iChC,0BkDxCA,gBACE,gBACA,MACA,Q3DmlC8B,K2DhlChC,mBACE,gBACA,SACA,Q3D6kC8B,M4D5mCpC,QACE,aACA,mBACA,mBACA,mBAGF,QACE,aACA,cACA,sBACA,mBCRF,2ECIE,qBACA,sBACA,qBACA,uB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,2EAGF,iEACE,2EAGF,sCACE,aACE,qBAGF,gCACE,cAOJ,eACE,gBACA,SACA,gBACA,gDACA,kCACA,mCACA,4BACA,kEACA,wGACA,0BACA,UAGF,eACE,aACA,sBACA,mBAGF,8BACE,kEACA,6EAGF,8BACE,iBAIF,yBACE,wDAGF,6CACE,6BAIF,oBACE,yBACA,iBACA,gBAGF,iBACE,kCACA,sCAGF,uBACE,iCAIF,qBACE,eAGF,sCACE,oCACA,UACA,kBAGF,uBACE,2BACA,YACA,wBACA,cAGF,kCACE,+BACA,cAGF,6BACE,2BAGF,wCACE,+BAGF,+EAGE,eACA,WACA,kBAGF,YACE,qBACA,sBACA,0BACA,iBACA,uBACA,mBACA,2BACA,wBAGF,8HAGE,oBACA,eAGF,mBACE,gBACA,mBAGF,mBACE,iBAGF,6BACE,eACA,gBAGF,yBACE,kBACA,WAGF,iCACE,yBAGF,8BACE,qBAGF,qCACE,cACA,WAGF,gDACE,oCACA,UAGF,6CACE,qCAGF,kCACE,oCAGF,gBACE,aACA,mBACA,uBACA,UACA,iBACA,gCAGF,gCACE,WACA,YAIF,eACE,gBACA,mBACA,sCACA,YAGF,eACE,kBACA,kBACA,sCAGF,qBACE,kCAGF,iBACE,WAGF,gBACE,aACA,mBACA,mBAMF,kBACE,kBACA,qBACA,eACA,UACA,aACA,WACA,YACA,6BACA,qBACA,uBACA,wCACA,sBACA,mEACA,kDACA,oBACA,mBACA,uBACA,UACA,oBAEA,oBACE,kBAGF,wBACE,sBACA,mEAGF,yBACE,sBAIJ,uBACE,oBACA,UACA,oBACA,4BAGF,oBACE,KACE,UACA,2BAEF,GACE,UACA,yBAOJ,QACE,mBACA,sCACA,sBACA,qCAGF,WACE,8DACA,WAGF,cACE,kCACA,2BAGF,UACE,WACA,YACA,qBACA,gBACA,aACA,mBAGF,cACE,WACA,YACA,iBACA,cAMF,6BAEE,aACA,mBACA,uBACA,mBACA,uCACA,iBACA,cACA,gBACA,oBACA,iBAGF,wFAIE,WACA,cACA,WACA,uEAGF,uCAEE,cACA,yBACA,yBAGF,aACE,gCAGF,gBACE,uBCxbF,cACE,gBAEA,8BACE,kBACA,qBAEA,8CACE,gBACA,qBACA,cAEA,oDACE,0BAIJ,iDACE,0BACA,gBAGF,4CACE,0BAIJ,4BACE,kBACA,gBACA,qBACA,qBAKJ,eACE,mBAIF,yBACE,aACA,mBACA,oBAEA,wCACE,iBACA,wBACA,mBAGF,yCACE,gBAGF,yCACE,kBACA,0BACA,kBAKJ,0BACE,kBACA,aACA,sBACA,gBACA,gBAIF,qBACE,gBACA,kBACA,gBACA,oBAGA,qBACA,8CAGA,wCACE,UAGF,8CACE,yBAGF,8CACE,2BACA,kBAEA,oDACE,2BAMN,qBACE,gBACA,SACA,OACA,QACA,WACA,6BACA,gBCjHF,eACE,8BAKA,6BACE,gBAMF,+BACE,2BACA,WACA,oBAGF,6BACE,gBACA,gBACA,UACA,wCAGA,qBACA,wBAGA,gDACE,apEmIN,MAEE,2BACA,mCAGA,4CAGA,wBACA,gBAGA,YACE,+BACA,wCACA,yCACA,2BAMF,2BAEE,0BACA,iDACA,oCACA,2CAEA,iCACE,0CACA,4CAYN,KACE,oCACA,uBACA,gCACA,gBACA,0BAEA,0BACE,2BAGF,2BACE,2BAGF,cACE,WACA,mBAKJ,aACE,sBACA,0CAEA,kCACE,2CACA,0CAGF,mCACE,2CAKJ,sEAIE,oCACA,gCAEA,0JACE,oCACA,2BAGF,8JACE,oCAKJ,qBACE,wBAEA,0CACE,wBACA,oCAOA,+CACE,oCAGF,gDACE,oCAIJ,kCACE,0CAEA,uDACE,2CAGF,wDACE,2CAQF,8OACE,oCAGF,kPACE,oCAMN,WACE,aACA,sBACA,MAIF,gBACE,aACA,mBACA,+BACA,sCAEA,uBACE,gBACA,oBACA,SAKJ,aACE,aACA,mBACA,+BACA,kCACA,uCACA,yBACA,mBAIF,WACE,WACA,YACA,qBACA,gBACA,6EACA,iCACA,aACA,mBACA,cAEA,eACE,WACA,YACA,iBACA,cAKJ,WACE,gBACA,OACA,YAIF,YACE,gBACA,2BACA,cACA,gBACA,uBACA,mBACA,gBAIF,eACE,iBACA,gCACA,cACA,gBACA,uBACA,mBACA,gBAIF,WACE,0DACA,uCACA,kBAIF,cACE,aACA,mBACA,4BACA,kCACA,mCACA,4CACA,kBACA,UAKE,gHAEE,mCACA,gBAOJ,2BACE,+DAGF,yBACE,+DAGF,yBACE,WACA,YAIJ,iBACE,YACA,gBACA,gBACA,+CAEA,uBACE,eACA,gBACA,iCAIJ,kBACE,wCACA,kEAIF,yBACE,gBACE,2BACA,eAGF,aACE,+BACA,uCAGF,WACE,WACA,YAGF,cACE,gCASJ,WACE,kCACA","file":"bootstrap-custom.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../node_modules/bootstrap/scss/mixins/_banner.scss","../node_modules/bootstrap/scss/_root.scss","../node_modules/bootstrap/scss/vendor/_rfs.scss","../node_modules/bootstrap/scss/mixins/_color-mode.scss","../node_modules/bootstrap/scss/_reboot.scss","../node_modules/bootstrap/scss/_variables.scss","../node_modules/bootstrap/scss/mixins/_border-radius.scss","../node_modules/bootstrap/scss/_type.scss","../node_modules/bootstrap/scss/mixins/_lists.scss","../scss/custom-bootstrap.scss","../node_modules/bootstrap/scss/_images.scss","../node_modules/bootstrap/scss/mixins/_image.scss","../node_modules/bootstrap/scss/_containers.scss","../node_modules/bootstrap/scss/mixins/_container.scss","../node_modules/bootstrap/scss/mixins/_breakpoints.scss","../node_modules/bootstrap/scss/_grid.scss","../node_modules/bootstrap/scss/mixins/_grid.scss","../node_modules/bootstrap/scss/_tables.scss","../node_modules/bootstrap/scss/mixins/_table-variants.scss","../node_modules/bootstrap/scss/forms/_labels.scss","../node_modules/bootstrap/scss/forms/_form-text.scss","../node_modules/bootstrap/scss/forms/_form-control.scss","../node_modules/bootstrap/scss/mixins/_transition.scss","../node_modules/bootstrap/scss/mixins/_gradients.scss","../node_modules/bootstrap/scss/forms/_form-select.scss","../node_modules/bootstrap/scss/forms/_form-check.scss","../node_modules/bootstrap/scss/forms/_form-range.scss","../node_modules/bootstrap/scss/forms/_floating-labels.scss","../node_modules/bootstrap/scss/forms/_input-group.scss","../node_modules/bootstrap/scss/mixins/_forms.scss","../node_modules/bootstrap/scss/_buttons.scss","../node_modules/bootstrap/scss/mixins/_buttons.scss","../node_modules/bootstrap/scss/_transitions.scss","../node_modules/bootstrap/scss/_dropdown.scss","../node_modules/bootstrap/scss/mixins/_caret.scss","../node_modules/bootstrap/scss/_button-group.scss","../node_modules/bootstrap/scss/_nav.scss","../node_modules/bootstrap/scss/_navbar.scss","../node_modules/bootstrap/scss/_card.scss","../node_modules/bootstrap/scss/_accordion.scss","../node_modules/bootstrap/scss/_breadcrumb.scss","../node_modules/bootstrap/scss/_pagination.scss","../node_modules/bootstrap/scss/mixins/_pagination.scss","../node_modules/bootstrap/scss/_badge.scss","../node_modules/bootstrap/scss/_alert.scss","../node_modules/bootstrap/scss/_progress.scss","../node_modules/bootstrap/scss/_list-group.scss","../node_modules/bootstrap/scss/_close.scss","../node_modules/bootstrap/scss/_toasts.scss","../node_modules/bootstrap/scss/_modal.scss","../node_modules/bootstrap/scss/mixins/_backdrop.scss","../node_modules/bootstrap/scss/_tooltip.scss","../node_modules/bootstrap/scss/mixins/_reset-text.scss","../node_modules/bootstrap/scss/_popover.scss","../node_modules/bootstrap/scss/_carousel.scss","../node_modules/bootstrap/scss/mixins/_clearfix.scss","../node_modules/bootstrap/scss/_spinners.scss","../node_modules/bootstrap/scss/_offcanvas.scss","../node_modules/bootstrap/scss/_placeholders.scss","../node_modules/bootstrap/scss/helpers/_color-bg.scss","../node_modules/bootstrap/scss/helpers/_colored-links.scss","../node_modules/bootstrap/scss/helpers/_focus-ring.scss","../node_modules/bootstrap/scss/helpers/_icon-link.scss","../node_modules/bootstrap/scss/helpers/_ratio.scss","../node_modules/bootstrap/scss/helpers/_position.scss","../node_modules/bootstrap/scss/helpers/_stacks.scss","../node_modules/bootstrap/scss/helpers/_visually-hidden.scss","../node_modules/bootstrap/scss/mixins/_visually-hidden.scss","../node_modules/bootstrap/scss/helpers/_stretched-link.scss","../node_modules/bootstrap/scss/helpers/_text-truncation.scss","../node_modules/bootstrap/scss/mixins/_text-truncate.scss","../node_modules/bootstrap/scss/helpers/_vr.scss","../node_modules/bootstrap/scss/mixins/_utilities.scss","../node_modules/bootstrap/scss/utilities/_api.scss","../scss/components/_message-inputs.scss","../scss/components/_chat-detail.scss","../scss/components/_comments.scss","../scss/components/_modals.scss"],"names":[],"mappings":"CACE;AAAA;AAAA;AAAA;AAAA,GCDF,4BASI,mRAIA,+MAIA,yKAIA,8OAIA,8VAIA,gWAIA,iXAGF,8BACA,wBAMA,sNACA,0GACA,0FAOA,iDC2OI,oBALI,KDpOR,2BACA,2BAKA,yBACA,gCACA,mBACA,gCAEA,0BACA,iCAEA,6CACA,qCACA,2BACA,qCAEA,2CACA,oCACA,0BACA,oCAGA,4BAEA,yBACA,kCACA,gCAEA,4CACA,uCAMA,yBACA,8BACA,0CAGA,uBACA,yBACA,2BACA,oDAEA,6BACA,+BACA,8BACA,4BACA,6BACA,oDACA,+BAGA,mDACA,4DACA,qDACA,4DAIA,+BACA,8BACA,gDAIA,+BACA,sCACA,iCACA,wCEhHE,qBFsHA,kBAGA,yBACA,mCACA,sBACA,6BAEA,0BACA,uCAEA,gDACA,wCACA,2BACA,kCAEA,8CACA,uCACA,wCACA,iCAGE,iXAIA,2TAIA,kWAGF,4BAEA,wCACA,kDACA,mCACA,yCAEA,0CACA,8BACA,uCAEA,2BACA,yDAEA,4CACA,mDACA,gDACA,uDGxKJ,qBAGE,sBAeE,8CANJ,MAOM,wBAcN,KACE,SACA,uCF6OI,UALI,yBEtOR,uCACA,uCACA,2BACA,qCACA,mCACA,8BACA,0CASF,GACE,cACA,MCmnB4B,QDlnB5B,SACA,wCACA,QCynB4B,ID/mB9B,0CACE,aACA,cCwjB4B,MDrjB5B,YCwjB4B,IDvjB5B,YCwjB4B,IDvjB5B,8BAGF,OFuMQ,iCA5JJ,0BE3CJ,OF8MQ,kBEzMR,OFkMQ,iCA5JJ,0BEtCJ,OFyMQ,gBEpMR,OF6LQ,+BA5JJ,0BEjCJ,OFoMQ,mBE/LR,OFwLQ,iCA5JJ,0BE5BJ,OF+LQ,kBE1LR,OF+KM,UALI,QErKV,OF0KM,UALI,KE1JV,EACE,aACA,cCwV0B,KD9U5B,YACE,iCACA,YACA,8BAMF,QACE,mBACA,kBACA,oBAMF,MAEE,kBAGF,SAGE,aACA,mBAGF,wBAIE,gBAGF,GACE,YC6b4B,IDxb9B,GACE,oBACA,cAMF,WACE,gBAQF,SAEE,YCsa4B,OD9Z9B,aF6EM,UALI,QEjEV,WACE,QCqf4B,QDpf5B,gCACA,wCASF,QAEE,kBFwDI,UALI,OEjDR,cACA,wBAGF,mBACA,eAKA,EACE,gEACA,gBCgNwC,UD9MxC,QACE,oDAWF,4DAEE,cACA,qBAOJ,kBAIE,YCgV4B,yBHlUxB,UALI,IEDV,IACE,cACA,aACA,mBACA,cFEI,UALI,QEQR,SFHI,UALI,QEUN,cACA,kBAIJ,KFVM,UALI,QEiBR,2BACA,qBAGA,OACE,cAIJ,IACE,yBFtBI,UALI,QE6BR,MCy5CkC,kBDx5ClC,iBCy5CkC,qBC9rDhC,qBFwSF,QACE,UF7BE,UALI,IE6CV,OACE,gBAMF,QAEE,sBAQF,MACE,oBACA,yBAGF,QACE,YC4X4B,MD3X5B,eC2X4B,MD1X5B,MC4Z4B,0BD3Z5B,gBAOF,GAEE,mBACA,gCAGF,2BAME,qBACA,mBACA,eAQF,MACE,qBAMF,OAEE,gBAQF,iCACE,UAKF,sCAKE,SACA,oBF5HI,UALI,QEmIR,oBAIF,cAEE,oBAKF,cACE,eAGF,OAGE,iBAGA,gBACE,UAOJ,0IACE,wBAQF,gDAIE,0BAGE,4GACE,eAON,mBACE,UACA,kBAKF,SACE,gBAUF,SACE,YACA,UACA,SACA,SAQF,OACE,WACA,WACA,UACA,cCmN4B,MHpatB,iCA5JJ,0BEyWJ,OFtMQ,kBEsMR,OAOE,oBAEA,SACE,WAOJ,+OAOE,UAGF,4BACE,YASF,cACE,6BACA,oBAmBF,4BACE,wBAKF,+BACE,UAOF,uBACE,aACA,0BAKF,OACE,qBAKF,OACE,SAOF,QACE,kBACA,eAQF,SACE,wBAQF,SACE,wBGrkBF,MLmQM,UALI,QK5PR,YFwoB4B,IEnoB5B,WLgQM,iCA5JJ,0BKpGF,WLuQM,gBKvQN,WAIE,YFynBkB,IExnBlB,YFwmB0B,IE7mB5B,WLgQM,iCA5JJ,0BKpGF,WLuQM,kBKvQN,WAIE,YFynBkB,IExnBlB,YFwmB0B,IE7mB5B,WLgQM,iCA5JJ,0BKpGF,WLuQM,gBKvQN,WAIE,YFynBkB,IExnBlB,YFwmB0B,IE7mB5B,WLgQM,iCA5JJ,0BKpGF,WLuQM,kBKvQN,WAIE,YFynBkB,IExnBlB,YFwmB0B,IE7mB5B,WLgQM,iCA5JJ,0BKpGF,WLuQM,gBKvQN,WAIE,YFynBkB,IExnBlB,YFwmB0B,IE7mB5B,WLgQM,iCA5JJ,0BKpGF,WLuQM,kBKvQN,WAIE,YFynBkB,IExnBlB,YFwmB0B,IErlB9B,eCvDE,eACA,gBD2DF,aC5DE,eACA,gBD8DF,kBACE,qBAEA,mCACE,aFsoB0B,ME5nB9B,YL8MM,UALI,QKvMR,yBAIF,YACE,cElEO,KPyQH,UALI,QK/LR,wBACE,gBAIJ,mBACE,iBACA,cE5EO,KPyQH,UALI,QKtLR,MFtFS,QEwFT,2BACE,aGhGJ,WCIE,eAGA,YDDF,eACE,QL+jDkC,OK9jDlC,iBL+jDkC,kBK9jDlC,2DJGE,sCKRF,eAGA,YDcF,QAEE,qBAGF,YACE,oBACA,cAGF,gBRyPM,UALI,QQlPR,MLkjDkC,0BOplDlC,mGCHA,sBACA,iBACA,WACA,0CACA,yCACA,kBACA,iBCsDE,yBF5CE,yBACE,UPkee,OSvbnB,yBF5CE,uCACE,UPkee,OSvbnB,yBF5CE,qDACE,UPkee,OSvbnB,0BF5CE,mEACE,UPkee,QSvbnB,0BF5CE,kFACE,UPkee,QUlfvB,MAEI,2JAKF,KCNA,sBACA,iBACA,aACA,eAEA,uCACA,2CACA,0CDEE,OCOF,cACA,WACA,eACA,0CACA,yCACA,8BA+CI,KACE,YAGF,iBApCJ,cACA,WAcA,cACE,cACA,WAFF,cACE,cACA,UAFF,cACE,cACA,mBAFF,cACE,cACA,UAFF,cACE,cACA,UAFF,cACE,cACA,mBA+BE,UAhDJ,cACA,WAqDQ,OAhEN,cACA,kBA+DM,OAhEN,cACA,mBA+DM,OAhEN,cACA,UA+DM,OAhEN,cACA,mBA+DM,OAhEN,cACA,mBA+DM,OAhEN,cACA,UA+DM,OAhEN,cACA,mBA+DM,OAhEN,cACA,mBA+DM,OAhEN,cACA,UA+DM,QAhEN,cACA,mBA+DM,QAhEN,cACA,mBA+DM,QAhEN,cACA,WAuEQ,UAxDV,wBAwDU,UAxDV,yBAwDU,UAxDV,gBAwDU,UAxDV,yBAwDU,UAxDV,yBAwDU,UAxDV,gBAwDU,UAxDV,yBAwDU,UAxDV,yBAwDU,UAxDV,gBAwDU,WAxDV,yBAwDU,WAxDV,yBAmEM,WAEE,iBAGF,WAEE,iBAPF,WAEE,uBAGF,WAEE,uBAPF,WAEE,sBAGF,WAEE,sBAPF,WAEE,uBAGF,WAEE,uBAPF,WAEE,oBAGF,WAEE,oBAPF,WAEE,sBAGF,WAEE,sBF1DN,yBEUE,QACE,YAGF,oBApCJ,cACA,WAcA,iBACE,cACA,WAFF,iBACE,cACA,UAFF,iBACE,cACA,mBAFF,iBACE,cACA,UAFF,iBACE,cACA,UAFF,iBACE,cACA,mBA+BE,aAhDJ,cACA,WAqDQ,UAhEN,cACA,kBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,WAuEQ,aAxDV,cAwDU,aAxDV,wBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,cAxDV,yBAwDU,cAxDV,yBAmEM,iBAEE,iBAGF,iBAEE,iBAPF,iBAEE,uBAGF,iBAEE,uBAPF,iBAEE,sBAGF,iBAEE,sBAPF,iBAEE,uBAGF,iBAEE,uBAPF,iBAEE,oBAGF,iBAEE,oBAPF,iBAEE,sBAGF,iBAEE,uBF1DN,yBEUE,QACE,YAGF,oBApCJ,cACA,WAcA,iBACE,cACA,WAFF,iBACE,cACA,UAFF,iBACE,cACA,mBAFF,iBACE,cACA,UAFF,iBACE,cACA,UAFF,iBACE,cACA,mBA+BE,aAhDJ,cACA,WAqDQ,UAhEN,cACA,kBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,WAuEQ,aAxDV,cAwDU,aAxDV,wBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,cAxDV,yBAwDU,cAxDV,yBAmEM,iBAEE,iBAGF,iBAEE,iBAPF,iBAEE,uBAGF,iBAEE,uBAPF,iBAEE,sBAGF,iBAEE,sBAPF,iBAEE,uBAGF,iBAEE,uBAPF,iBAEE,oBAGF,iBAEE,oBAPF,iBAEE,sBAGF,iBAEE,uBF1DN,yBEUE,QACE,YAGF,oBApCJ,cACA,WAcA,iBACE,cACA,WAFF,iBACE,cACA,UAFF,iBACE,cACA,mBAFF,iBACE,cACA,UAFF,iBACE,cACA,UAFF,iBACE,cACA,mBA+BE,aAhDJ,cACA,WAqDQ,UAhEN,cACA,kBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,WAuEQ,aAxDV,cAwDU,aAxDV,wBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,cAxDV,yBAwDU,cAxDV,yBAmEM,iBAEE,iBAGF,iBAEE,iBAPF,iBAEE,uBAGF,iBAEE,uBAPF,iBAEE,sBAGF,iBAEE,sBAPF,iBAEE,uBAGF,iBAEE,uBAPF,iBAEE,oBAGF,iBAEE,oBAPF,iBAEE,sBAGF,iBAEE,uBF1DN,0BEUE,QACE,YAGF,oBApCJ,cACA,WAcA,iBACE,cACA,WAFF,iBACE,cACA,UAFF,iBACE,cACA,mBAFF,iBACE,cACA,UAFF,iBACE,cACA,UAFF,iBACE,cACA,mBA+BE,aAhDJ,cACA,WAqDQ,UAhEN,cACA,kBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,mBA+DM,UAhEN,cACA,UA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,WAuEQ,aAxDV,cAwDU,aAxDV,wBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,aAxDV,yBAwDU,aAxDV,yBAwDU,aAxDV,gBAwDU,cAxDV,yBAwDU,cAxDV,yBAmEM,iBAEE,iBAGF,iBAEE,iBAPF,iBAEE,uBAGF,iBAEE,uBAPF,iBAEE,sBAGF,iBAEE,sBAPF,iBAEE,uBAGF,iBAEE,uBAPF,iBAEE,oBAGF,iBAEE,oBAPF,iBAEE,sBAGF,iBAEE,uBF1DN,0BEUE,SACE,YAGF,qBApCJ,cACA,WAcA,kBACE,cACA,WAFF,kBACE,cACA,UAFF,kBACE,cACA,mBAFF,kBACE,cACA,UAFF,kBACE,cACA,UAFF,kBACE,cACA,mBA+BE,cAhDJ,cACA,WAqDQ,WAhEN,cACA,kBA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,UA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,UA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,mBA+DM,WAhEN,cACA,UA+DM,YAhEN,cACA,mBA+DM,YAhEN,cACA,mBA+DM,YAhEN,cACA,WAuEQ,cAxDV,cAwDU,cAxDV,wBAwDU,cAxDV,yBAwDU,cAxDV,gBAwDU,cAxDV,yBAwDU,cAxDV,yBAwDU,cAxDV,gBAwDU,cAxDV,yBAwDU,cAxDV,yBAwDU,cAxDV,gBAwDU,eAxDV,yBAwDU,eAxDV,yBAmEM,mBAEE,iBAGF,mBAEE,iBAPF,mBAEE,uBAGF,mBAEE,uBAPF,mBAEE,sBAGF,mBAEE,sBAPF,mBAEE,uBAGF,mBAEE,uBAPF,mBAEE,oBAGF,mBAEE,oBAPF,mBAEE,sBAGF,mBAEE,uBCrHV,OAEE,+BACA,4BACA,gCACA,6BAEA,2CACA,iCACA,gDACA,kCACA,mDACA,gEACA,kDACA,8DACA,iDACA,+DAEA,WACA,cRDO,KQEP,eZusB4B,IYtsB5B,0CAOA,yBACE,oBAEA,qFACA,oCACA,oBZ+sB0B,uBY9sB1B,2GAGF,aACE,uBAGF,aACE,sBAIJ,qBACE,6DAOF,aACE,iBAUA,4BACE,sBAeF,gCACE,sCAGA,kCACE,sCAOJ,oCACE,sBAGF,qCACE,mBAUF,2CACE,qDACA,+CAMF,yDACE,qDACA,+CAQJ,cACE,qDACA,+CAQA,8BACE,oDACA,8CC5IF,eAOE,uBACA,sCACA,oDACA,kDACA,+BACA,iDACA,8BACA,mDACA,6BAEA,4BACA,0CAlBF,iBAOE,uBACA,sCACA,oDACA,mDACA,+BACA,iDACA,8BACA,mDACA,6BAEA,4BACA,0CAlBF,eAOE,uBACA,oCACA,mDACA,mDACA,+BACA,gDACA,8BACA,mDACA,6BAEA,4BACA,0CAlBF,YAOE,uBACA,sCACA,oDACA,kDACA,+BACA,iDACA,8BACA,iDACA,6BAEA,4BACA,0CAlBF,eAOE,uBACA,sCACA,kDACA,mDACA,+BACA,iDACA,8BACA,oDACA,6BAEA,4BACA,0CAlBF,cAOE,uBACA,sCACA,oDACA,kDACA,+BACA,iDACA,8BACA,kDACA,6BAEA,4BACA,0CAlBF,aAOE,uBACA,uBACA,gDACA,iDACA,+BACA,6CACA,8BACA,iDACA,6BAEA,4BACA,0CAlBF,YAOE,uBACA,uBACA,+CACA,6CACA,+BACA,4CACA,8BACA,8CACA,6BAEA,4BACA,0CDiJA,kBACE,gBACA,iCH3FF,4BGyFA,qBACE,gBACA,kCH3FF,4BGyFA,qBACE,gBACA,kCH3FF,4BGyFA,qBACE,gBACA,kCH3FF,6BGyFA,qBACE,gBACA,kCH3FF,6BGyFA,sBACE,gBACA,kCEnKN,YACE,cdu2BsC,Mc91BxC,gBACE,kDACA,qDACA,gBjB8QI,UALI,QiBrQR,Yd+lB4B,Ic3lB9B,mBACE,gDACA,mDjBoQI,UALI,QiB3PV,mBACE,kDACA,qDjB8PI,UALI,SkBtRV,WACE,Wf+1BsC,OHrkBlC,UALI,QkBjRR,Mf+1BsC,0BgBp2BxC,cACE,cACA,WACA,mBnBwRI,UALI,KmBhRR,YhBkmB4B,IgBjmB5B,YhBymB4B,IgBxmB5B,MhB43BsC,qBgB33BtC,gBACA,iBhBq3BsC,kBgBp3BtC,4BACA,2DfGE,sCgBHE,WDMJ,0DCFI,uCDhBN,cCiBQ,iBDGN,yBACE,gBAEA,wDACE,eAKJ,oBACE,MhBs2BoC,qBgBr2BpC,iBhBg2BoC,kBgB/1BpC,ahB82BoC,mBgB72BpC,UAKE,WhBkhBkB,kCgB9gBtB,2CAME,eAMA,aAKA,SAKF,qCACE,cACA,UAIF,2BACE,MhB40BoC,0BgB10BpC,UAQF,uBAEE,iBhB8yBoC,uBgB3yBpC,UAIF,oCACE,mBACA,qBACA,kBZjCc,KYkCd,MhBsyBoC,qBkBp4BtC,iBlBqiCgC,sBgBr8B9B,oBACA,qBACA,mBACA,eACA,wBhBgsB0B,uBgB/rB1B,gBCzFE,WD0FF,mHCtFE,uCD0EJ,oCCzEM,iBDwFN,yEACE,iBhB47B8B,uBgBn7BlC,wBACE,cACA,WACA,gBACA,gBACA,YhBwf4B,IgBvf5B,MhB2xBsC,qBgB1xBtC,+BACA,2BACA,sCAEA,8BACE,UAGF,gFAEE,gBACA,eAWJ,iBACE,WhB4wBsC,sDgB3wBtC,oBnByII,UALI,SIvQN,yCeuIF,uCACE,oBACA,uBACA,kBZ1FiB,MY8FrB,iBACE,WhBgwBsC,sDgB/vBtC,oBnB4HI,UALI,QIvQN,yCeoJF,uCACE,oBACA,qBACA,kBZpGiB,OY4GnB,sBACE,WhB6uBoC,sDgB1uBtC,yBACE,WhB0uBoC,sDgBvuBtC,yBACE,WhBuuBoC,sDgBluBxC,oBACE,MhBquBsC,KgBpuBtC,OhB8tBsC,sDgB7tBtC,QZpIgB,MYsIhB,mDACE,eAGF,uCACE,oBfvLA,sCe2LF,0CACE,oBf5LA,sCegMF,2ChB8sBsC,sDgB7sBtC,2ChB8sBsC,sDmB75BxC,aACE,yPAEA,cACA,WACA,8BtBqRI,UALI,KsB7QR,YnB+lB4B,ImB9lB5B,YnBsmB4B,ImBrmB5B,MnBy3BsC,qBmBx3BtC,gBACA,iBnBk3BsC,kBmBj3BtC,kFACA,4BACA,oBnB+9BkC,kBmB99BlC,gBnB+9BkC,UmB99BlC,2DlBHE,sCgBHE,WESJ,0DFLI,uCEfN,aFgBQ,iBEMN,mBACE,anBs3BoC,mBmBr3BpC,UAKE,WnBi+B4B,kCmB79BhC,0DAEE,cfwBc,KevBd,sBAGF,sBAEE,iBnBu1BoC,uBmBl1BtC,4BACE,oBACA,uCAIJ,gBACE,YfQmB,MePnB,efOmB,MeNnB,afOmB,MP4Nf,UALI,SIvQN,yCkB8CJ,gBACE,YfGmB,KeFnB,efEmB,KeDnB,afEmB,OPyNf,UALI,QIvQN,yCkBwDA,kCACE,yPCxEN,YACE,cACA,WpBq6BwC,OoBp6BxC,apBq6BwC,MoBp6BxC,cpBq6BwC,QoBn6BxC,8BACE,WACA,mBAIJ,oBACE,cpB25BwC,MoB15BxC,eACA,iBAEA,sCACE,YACA,oBACA,cAIJ,kBACE,sCAEA,cACA,MpB04BwC,IoBz4BxC,OpBy4BwC,IoBx4BxC,iBACA,mBACA,gBACA,yCACA,+CACA,4BACA,2BACA,wBACA,OpB24BwC,oDoB14BxC,yBAGA,iCnB3BE,oBmB+BF,8BAEE,cpBm4BsC,IoBh4BxC,yBACE,OpB03BsC,gBoBv3BxC,wBACE,apBs1BoC,mBoBr1BpC,UACA,WpB8foB,kCoB3ftB,0BACE,iBpB5BM,QoB6BN,apB7BM,QoB+BN,yCAII,wPAIJ,sCAII,gKAKN,+CACE,iBpBjDM,QoBkDN,apBlDM,QoBuDJ,kPAIJ,2BACE,oBACA,YACA,QpBk2BuC,GoB31BvC,2FACE,eACA,QpBy1BqC,GoB30B3C,aACE,apBo1BgC,MoBl1BhC,+BACE,4KAEA,MpB80B8B,IoB70B9B,mBACA,0CACA,gCnBjHA,kBgBHE,WGsHF,qCHlHE,uCG0GJ,+BHzGM,iBGmHJ,qCACE,6KAGF,uCACE,oBpB60B4B,aoBx0B1B,2JAKN,gCACE,cpBwzB8B,MoBvzB9B,eAEA,kDACE,oBACA,cAKN,mBACE,qBACA,apBsyBgC,KoBnyBlC,WACE,kBACA,sBACA,oBAIE,mDACE,oBACA,YACA,QpBspBwB,IoB/oB1B,8EACE,kLCnLN,YACE,WACA,cACA,UACA,gBACA,+BAEA,kBACE,UAIA,mDrB8gCuC,iDqB7gCvC,+CrB6gCuC,iDqB1gCzC,8BACE,SAGF,kCACE,MrB+/BuC,KqB9/BvC,OrB8/BuC,KqB7/BvC,oBACA,gBH1BF,iBlBkCQ,QqBNN,OrB6/BuC,EC1gCvC,mBgBHE,WImBF,4FJfE,uCIMJ,kCJLM,iBIgBJ,yCHjCF,iBlB8hCyC,uBqBx/BzC,2CACE,MrBw+B8B,KqBv+B9B,OrBw+B8B,MqBv+B9B,oBACA,OrBu+B8B,QqBt+B9B,iBrBu+B8B,uBqBt+B9B,2BpB7BA,mBoBkCF,8BACE,MrBo+BuC,KqBn+BvC,OrBm+BuC,KqBl+BvC,gBHpDF,iBlBkCQ,QqBoBN,OrBm+BuC,EC1gCvC,mBgBHE,WI6CF,4FJzCE,uCIiCJ,8BJhCM,iBI0CJ,qCH3DF,iBlB8hCyC,uBqB99BzC,8BACE,MrB88B8B,KqB78B9B,OrB88B8B,MqB78B9B,oBACA,OrB68B8B,QqB58B9B,iBrB68B8B,uBqB58B9B,2BpBvDA,mBoB4DF,qBACE,oBAEA,2CACE,iBrBg9BqC,0BqB78BvC,uCACE,iBrB48BqC,0BsBniC3C,eACE,kBAEA,gGAGE,OtBwiCoC,gDsBviCpC,WtBuiCoC,gDsBtiCpC,YtBuiCoC,KsBpiCtC,qBACE,kBACA,MACA,OACA,UACA,YACA,kBACA,gBACA,iBACA,uBACA,mBACA,oBACA,kDACA,qBLRE,WKSF,kDLLE,uCKTJ,qBLUM,iBKON,oEAEE,kBAEA,8FACE,oBAGF,oMAEE,YtB4gCkC,SsB3gClC,etB4gCkC,QsBzgCpC,sGACE,YtBugCkC,SsBtgClC,etBugCkC,QsBngCtC,4BACE,YtBigCoC,SsBhgCpC,etBigCoC,QsB1/BpC,mLACE,2CACA,UtB2/BkC,oDsBz/BlC,+MACE,kBACA,iBACA,WACA,OtBm/BgC,MsBl/BhC,WACA,iBtBg0BgC,kBCh3BpC,sCqBuDA,oDACE,2CACA,UtB0+BkC,oDsBr+BpC,6CACE,sCAIJ,2EAEE,MtB1EO,QsB4EP,yFACE,iBtB0yBkC,uBuBj4BxC,aACE,kBACA,aACA,eACA,oBACA,WAEA,iFAGE,kBACA,cACA,SACA,YAIF,0GAGE,UAMF,kBACE,kBACA,UAEA,wBACE,UAWN,kBACE,aACA,mBACA,mB1B8OI,UALI,K0BvOR,YvByjB4B,IuBxjB5B,YvBgkB4B,IuB/jB5B,MvBm1BsC,qBuBl1BtC,kBACA,mBACA,iBvB06BsC,sBuBz6BtC,2DtBtCE,sCsBgDJ,kHAIE,oB1BwNI,UALI,QIvQN,yCsByDJ,kHAIE,oB1B+MI,UALI,SIvQN,yCsBkEJ,0DAEE,mBAaE,wVtBjEA,0BACA,6BsByEA,yUtB1EA,0BACA,6BsBsFF,0IACE,4CtB1EA,yBACA,4BsB6EF,uHtB9EE,yBACA,4BuBxBF,gBACE,aACA,WACA,WxBu0BoC,OHrkBlC,UALI,Q2B1PN,MxBkjCqB,2BwB/iCvB,eACE,kBACA,SACA,UACA,aACA,eACA,qBACA,iB3BqPE,UALI,S2B7ON,MxBqiCqB,KwBpiCrB,iBxBoiCqB,kBC/jCrB,sCuBgCA,8HAEE,cA/CF,0DAqDE,axBuhCmB,kCwBphCjB,cxB81BgC,mBwB71BhC,2PACA,4BACA,yDACA,4DAGF,sEACE,axB4gCiB,kCwBvgCf,WxBugCe,+CwB5kCrB,0EA+EI,cxBu0BgC,mBwBt0BhC,8EAhFJ,wDAuFE,axBq/BmB,kCwBl/BjB,4NAEE,oQACA,cxBq5B8B,OwBp5B9B,wDACA,sEAIJ,oEACE,axBw+BiB,kCwBn+Bf,WxBm+Be,+CwB5kCrB,sEAkHI,sCAlHJ,kEAyHE,axBm9BmB,kCwBj9BnB,kFACE,iBxBg9BiB,2BwB78BnB,8EACE,WxB48BiB,+CwBz8BnB,sGACE,MxBw8BiB,2BwBn8BrB,qDACE,iBA1IF,kVAoJM,UAhIR,kBACE,aACA,WACA,WxBu0BoC,OHrkBlC,UALI,Q2B1PN,MxBkjCqB,6BwB/iCvB,iBACE,kBACA,SACA,UACA,aACA,eACA,qBACA,iB3BqPE,UALI,S2B7ON,MxBqiCqB,KwBpiCrB,iBxBoiCqB,iBC/jCrB,sCuBgCA,8IAEE,cA/CF,8DAqDE,axBuhCmB,oCwBphCjB,cxB81BgC,mBwB71BhC,4UACA,4BACA,yDACA,4DAGF,0EACE,axB4gCiB,oCwBvgCf,WxBugCe,8CwB5kCrB,8EA+EI,cxBu0BgC,mBwBt0BhC,8EAhFJ,4DAuFE,axBq/BmB,oCwBl/BjB,oOAEE,qVACA,cxBq5B8B,OwBp5B9B,wDACA,sEAIJ,wEACE,axBw+BiB,oCwBn+Bf,WxBm+Be,8CwB5kCrB,0EAkHI,sCAlHJ,sEAyHE,axBm9BmB,oCwBj9BnB,sFACE,iBxBg9BiB,6BwB78BnB,kFACE,WxB48BiB,8CwBz8BnB,0GACE,MxBw8BiB,6BwBn8BrB,uDACE,iBA1IF,8VAsJM,UCxJV,KAEE,yBACA,2BACA,uB5BuRI,mBALI,K4BhRR,0BACA,0BACA,qCACA,yBACA,8CACA,mCACA,gDACA,yCACA,6FACA,gCACA,kFAGA,qBACA,wDACA,sC5BsQI,UALI,wB4B/PR,sCACA,sCACA,0BACA,kBACA,qBAEA,sBACA,eACA,iBACA,mExBjBE,0CiBfF,iBOkCqB,iBRtBjB,WQwBJ,mHRpBI,uCQhBN,KRiBQ,iBQqBN,WACE,gCAEA,wCACA,8CAGF,sBAEE,0BACA,kCACA,wCAGF,mBACE,gCPrDF,iBOsDuB,uBACrB,8CACA,UAKE,0CAIJ,8BACE,8CACA,UAKE,0CAIJ,mGAKE,iCACA,yCAGA,+CAGA,yKAKI,0CAKN,sCAKI,0CAIJ,mDAGE,mCACA,oBACA,2CAEA,iDACA,uCAYF,aC/GA,qBACA,qBACA,+BACA,2BACA,4CACA,kDACA,wCACA,4BACA,yCACA,sDACA,6DACA,8BACA,8BACA,wCDkGA,eC/GA,qBACA,qBACA,+BACA,2BACA,4CACA,kDACA,yCACA,4BACA,yCACA,oDACA,6DACA,8BACA,8BACA,wCDkGA,aC/GA,qBACA,qBACA,+BACA,2BACA,4CACA,gDACA,wCACA,4BACA,uCACA,qDACA,6DACA,8BACA,8BACA,wCDkGA,UC/GA,qBACA,qBACA,+BACA,2BACA,6CACA,qDACA,wCACA,4BACA,0CACA,sDACA,6DACA,8BACA,8BACA,wCDkGA,aC/GA,qBACA,qBACA,+BACA,2BACA,yCACA,mDACA,uCACA,4BACA,0CACA,oDACA,6DACA,8BACA,8BACA,wCDkGA,YC/GA,qBACA,qBACA,+BACA,2BACA,0CACA,kDACA,uCACA,4BACA,yCACA,qDACA,6DACA,8BACA,8BACA,wCDkGA,WC/GA,qBACA,qBACA,+BACA,2BACA,6CACA,oDACA,yCACA,4BACA,2CACA,sDACA,6DACA,8BACA,8BACA,wCDkGA,UC/GA,qBACA,qBACA,+BACA,2BACA,yCACA,mDACA,sCACA,4BACA,0CACA,oDACA,6DACA,8BACA,8BACA,wCD4HA,qBChHA,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6DACA,iCACA,kCACA,wCACA,oBDmGA,uBChHA,wBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6DACA,iCACA,kCACA,wCACA,oBDmGA,qBChHA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6DACA,iCACA,kCACA,wCACA,oBDmGA,kBChHA,wBACA,+BACA,2BACA,2BACA,qCACA,wCACA,4BACA,4BACA,sCACA,6DACA,iCACA,kCACA,wCACA,oBDmGA,qBChHA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6DACA,iCACA,kCACA,wCACA,oBDmGA,oBChHA,wBACA,+BACA,2BACA,2BACA,qCACA,uCACA,4BACA,4BACA,sCACA,6DACA,iCACA,kCACA,wCACA,oBDmGA,mBChHA,wBACA,+BACA,2BACA,2BACA,qCACA,yCACA,4BACA,4BACA,sCACA,6DACA,iCACA,kCACA,wCACA,oBDmGA,kBChHA,wBACA,+BACA,2BACA,2BACA,qCACA,sCACA,4BACA,4BACA,sCACA,6DACA,iCACA,kCACA,wCACA,oBD+GF,UACE,0BACA,qCACA,yBACA,mCACA,iDACA,yCACA,kDACA,0CACA,iCACA,4CACA,gCACA,wCAEA,gBzB8QwC,UyBpQxC,wBACE,0BAGF,gBACE,gCAWJ,2BCjJE,yBACA,2B7B8NI,mBALI,Q6BvNR,mDDkJF,2BCrJE,2BACA,2B7B8NI,mBALI,S6BvNR,mDCnEF,MVgBM,WUfJ,oBVmBI,uCUpBN,MVqBQ,iBUlBN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E,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0Bf9NJ,WegOI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oBvB5LR,yBuBsIA,kBAEI,iBACA,2BAEA,8BACE,mBAEA,6CACE,kBAGF,wCACE,kDACA,iDAIJ,qCACE,iBAGF,mCACE,wBACA,gBAGF,kCACE,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0Bf9NJ,WegOI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oBvB5LR,0BuBsIA,kBAEI,iBACA,2BAEA,8BACE,mBAEA,6CACE,kBAGF,wCACE,kDACA,iDAIJ,qCACE,iBAGF,mCACE,wBACA,gBAGF,kCACE,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0Bf9NJ,WegOI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oBvB5LR,0BuBsIA,mBAEI,iBACA,2BAEA,+BACE,mBAEA,8CACE,kBAGF,yCACE,kDACA,iDAIJ,sCACE,iBAGF,oCACE,wBACA,gBAGF,mCACE,aAGF,8BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0Bf9NJ,WegOI,KAGA,gDACE,aAGF,8CACE,aACA,YACA,UACA,oBAtDR,eAEI,iBACA,2BAEA,2BACE,mBAEA,0CACE,kBAGF,qCACE,kDACA,iDAIJ,kCACE,iBAGF,gCACE,wBACA,gBAGF,+BACE,aAGF,0BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0Bf9NJ,WegOI,KAGA,4CACE,aAGF,0CACE,aACA,YACA,UACA,mBAiBZ,yCAGE,6CACA,mDACA,sDACA,+BACA,8BACA,oCACA,2DACA,+QAME,0CACE,+QCzRN,MAEE,yBACA,yBACA,iCACA,wBACA,2BACA,4BACA,iDACA,8BACA,uDACA,oCACA,8BACA,8BACA,8BACA,sBACA,mBACA,kBACA,wCACA,oCACA,gCAGA,kBACA,aACA,sBACA,YACA,6BACA,2BAC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wCiEI,kDACE,aAGF,4DACE,mDACA,oBAEA,mEACE,uDACA,qDhCtFR,yBgC8DA,0BACE,mBAGE,wExCvDJ,6DAZA,0BwCwEI,wExCxEJ,2DAYA,4BwCiEI,kDACE,aAGF,4DACE,mDACA,oBAEA,mEACE,uDACA,qDhCtFR,0BgC8DA,0BACE,mBAGE,wExCvDJ,6DAZA,0BwCwEI,wExCxEJ,2DAYA,4BwCiEI,kDACE,aAGF,4DACE,mDACA,oBAEA,mEACE,uDACA,qDhCtFR,0BgC8DA,2BACE,mBAGE,yExCvDJ,6DAZA,0BwCwEI,yExCxEJ,2DAYA,4BwCiEI,mDACE,aAGF,6DACE,mDACA,oBAEA,oEACE,uDACA,qDAcZ,kBxChJI,gBwCmJF,mCACE,mDAEA,8CACE,sBAaJ,yBACE,uDACA,gDACA,8DACA,6DACA,iEACA,8DACA,kEACA,0DACA,2DACA,qEAVF,2BACE,yDACA,kDACA,gEACA,6DACA,mEACA,8DACA,oEACA,4DACA,6DACA,uEAVF,yBACE,uDACA,gDACA,8DACA,6DACA,iEACA,8DACA,kEACA,0DACA,2DACA,qEAVF,sBACE,oDACA,6CACA,2DACA,6DACA,8DACA,8DACA,+DACA,uDACA,wDACA,kEAVF,yBACE,uDACA,gDACA,8DACA,6DACA,iEACA,8DACA,kEACA,0DACA,2DACA,qEAVF,wBACE,sDACA,+CACA,6DACA,6DACA,gEACA,8DACA,iEACA,yDACA,0DACA,oEAVF,uBACE,qDACA,8CACA,4DACA,6DACA,+DACA,8DACA,gEACA,wDACA,yDACA,mEAVF,sBACE,oDACA,6CACA,2DACA,6DACA,8DACA,8DACA,+DACA,uDACA,wDACA,kEC5LJ,WAEE,2BACA,qVACA,4BACA,mCACA,oEACA,gCACA,sCACA,wEAGA,uBACA,M1CqpD2B,I0CppD3B,O1CopD2B,I0CnpD3B,oBACA,gCACA,0EACA,SzCJE,sByCMF,oCAGA,iBACE,gCACA,qBACA,0CAGF,iBACE,UACA,4CACA,0CAGF,wCAEE,oBACA,iBACA,6CAQJ,iBAHE,wCASE,gCATF,wCCjDF,OAEE,wBACA,2BACA,6BACA,2BACA,4B9CyRI,qBALI,S8ClRR,mBACA,iDACA,gDACA,4DACA,kDACA,4CACA,mDACA,wDACA,mEAGA,gCACA,e9C2QI,UALI,0B8CpQR,4BACA,oBACA,oCACA,4BACA,uEACA,sC1CRE,4C0CWF,eACE,UAGF,kBACE,aAIJ,iBACE,wBAEA,kBACA,+BACA,kBACA,eACA,oBAEA,mCACE,sCAIJ,cACE,aACA,mBACA,4DACA,mCACA,2CACA,4BACA,qF1ChCE,0FACA,2F0CkCF,yBACE,kDACA,sCAIJ,YACE,kCACA,qBC9DF,OAEE,wBACA,wBACA,yBACA,0BACA,mBACA,iCACA,4DACA,gDACA,qDACA,+CACA,4FACA,kCACA,kCACA,qCACA,uDACA,uDACA,kCACA,8BACA,uBACA,uDACA,uDAGA,eACA,MACA,OACA,+BACA,aACA,WACA,YACA,kBACA,gBAGA,UAOF,cACE,kBACA,WACA,8BAEA,oBAGA,0B3B5CI,W2B6CF,uB3BzCE,uC2BwCJ,0B3BvCM,iB2BuCN,0BAEE,U5Ck8CgC,oB4Ch8ClC,0BACE,U5Cg8CgC,K4C57ClC,kCACE,U5C67CgC,Y4Cz7CpC,yBACE,6CAEA,wCACE,gBACA,gBAGF,qCACE,gBAIJ,uBACE,aACA,mBACA,iDAIF,eACE,kBACA,aACA,sBACA,WAEA,4BACA,oBACA,oCACA,4BACA,uE3CrFE,4C2CyFF,UAIF,gBAEE,2BACA,uBACA,2BClHA,eACA,MACA,OACA,QDkH0B,0BCjH1B,YACA,aACA,iBD+G4D,sBC5G5D,+BACA,6BD2G0F,2BAK5F,cACE,aACA,cACA,mBACA,uCACA,4F3CrGE,2DACA,4D2CuGF,yBACE,4FACA,gJAKJ,aACE,gBACA,8CAKF,YACE,kBAGA,cACA,gCAIF,cACE,aACA,cACA,eACA,mBACA,yBACA,sEACA,2CACA,yF3CzHE,+DACA,8D2C8HF,gBACE,2CnC3GA,yBmCiHF,OACE,2BACA,4CAIF,cACE,gCACA,kBACA,iBAGF,UACE,yBnC9HA,yBmCmIF,oBAEE,yBnCrIA,0BmC0IF,UACE,0BAUA,kBACE,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,yB2C/BF,cAiEM,4BACA,+BACA,0CAEA,gCACE,aAGF,8BACE,aACA,YACA,UACA,mBAEA,2C3CnCN,4B2C5CF,cAEI,eACA,SACA,mCACA,aACA,sBACA,eACA,gCACA,kBACA,wCACA,4BACA,UnC5BA,WmC8BA,gCnC1BA,gEmCYJ,cnCXM,iBRuDJ,4B2C5BE,8BACE,MACA,OACA,gCACA,qFACA,4BAGF,4BACE,MACA,QACA,gCACA,oFACA,2BAGF,4BACE,MACA,QACA,OACA,kCACA,gBACA,sFACA,4BAGF,+BACE,QACA,OACA,kCACA,gBACA,mFACA,2BAGF,sDAEE,eAGF,8DAGE,oB3C5BJ,yB2C/BF,cAiEM,4BACA,+BACA,0CAEA,gCACE,aAGF,8BACE,aACA,YACA,UACA,mBAEA,2C3CnCN,4B2C5CF,cAEI,eACA,SACA,mCACA,aACA,sBACA,eACA,gCACA,kBACA,wCACA,4BACA,UnC5BA,WmC8BA,gCnC1BA,gEmCYJ,cnCXM,iBRuDJ,4B2C5BE,8BACE,MACA,OACA,gCACA,qFACA,4BAGF,4BACE,MACA,QACA,gCACA,oFACA,2BAGF,4BACE,MACA,QACA,OACA,kCACA,gBACA,sFACA,4BAGF,+BACE,QACA,OACA,kCACA,gBACA,mFACA,2BAGF,sDAEE,eAGF,8DAGE,oB3C5BJ,yB2C/BF,cAiEM,4BACA,+BACA,0CAEA,gCACE,aAGF,8BACE,aACA,YACA,UACA,mBAEA,2C3CnCN,6B2C5CF,cAEI,eACA,SACA,mCACA,aACA,sBACA,eACA,gCACA,kBACA,wCACA,4BACA,UnC5BA,WmC8BA,gCnC1BA,iEmCYJ,cnCXM,iBRuDJ,6B2C5BE,8BACE,MACA,OACA,gCACA,qFACA,4BAGF,4BACE,MACA,QACA,gCACA,oFACA,2BAGF,4BACE,MACA,QACA,OACA,kCACA,gBACA,sFACA,4BAGF,+BACE,QACA,OACA,kCACA,gBACA,mFACA,2BAGF,sDAEE,eAGF,8DAGE,oB3C5BJ,0B2C/BF,cAiEM,4BACA,+BACA,0CAEA,gCACE,aAGF,8BACE,aACA,YACA,UACA,mBAEA,2C3CnCN,6B2C5CF,eAEI,eACA,SACA,mCACA,aACA,sBACA,eACA,gCACA,kBACA,wCACA,4BACA,UnC5BA,WmC8BA,gCnC1BA,iEmCYJ,enCXM,iBRuDJ,6B2C5BE,+BACE,MACA,OACA,gCACA,qFACA,4BAGF,6BACE,MACA,QACA,gCACA,oFACA,2BAGF,6BACE,MACA,QACA,OACA,kCACA,gBACA,sFACA,4BAGF,gCACE,QACA,OACA,kCACA,gBACA,mFACA,2BAGF,wDAEE,eAGF,iEAGE,oB3C5BJ,0B2C/BF,eAiEM,4BACA,+BACA,0CAEA,iCACE,aAGF,+BACE,aACA,YACA,UACA,mBAEA,2CA/ER,WAEI,eACA,SACA,mCACA,aACA,sBACA,eACA,gCACA,kBACA,wCACA,4BACA,UnC5BA,WmC8BA,+BnC1BA,uCmCYJ,WnCXM,iBmC2BF,2BACE,MACA,OACA,gCACA,qFACA,4BAGF,yBACE,MACA,QACA,gCACA,oFACA,2BAGF,yBACE,MACA,QACA,OACA,kCACA,gBACA,sFACA,4BAGF,4BACE,QACA,OACA,kCACA,gBACA,mFACA,2BAGF,gDAEE,eAGF,qDAGE,mBA2BR,oBPpHE,eACA,MACA,OACA,Q7C0mCkC,K6CzmClC,YACA,aACA,iB7CUS,K6CPT,mCACA,iC7Cm+CkC,GoDr3CpC,kBACE,aACA,mBACA,oEAEA,6BACE,sFACA,uIAIJ,iBACE,gBACA,kDAGF,gBACE,YACA,oEACA,gBC7IF,aACE,qBACA,eACA,sBACA,YACA,8BACA,QrDgzCkC,GqD9yClC,yBACE,qBACA,WAKJ,gBACE,gBAGF,gBACE,gBAGF,gBACE,iBAKA,+BACE,mDAIJ,4BACE,IACE,QrDmxCgC,IqD/wCpC,kBACE,+EACA,oBACA,8CAGF,4BACE,KACE,wBH9CF,iBACE,cACA,WACA,WIHF,iBACE,sBACA,iFAFF,mBACE,sBACA,mFAFF,iBACE,sBACA,iFAFF,cACE,sBACA,8EAFF,iBACE,sBACA,iFAFF,gBACE,sBACA,gFAFF,eACE,sBACA,+EAFF,cACE,sBACA,8ECFF,cACE,wEACA,kGAGE,wCAGE,8DACA,wFATN,gBACE,0EACA,oGAGE,4CAGE,8DACA,wFATN,cACE,wEACA,kGAGE,wCAGE,8DACA,wFATN,WACE,qEACA,+FAGE,kCAGE,+DACA,yFATN,cACE,wEACA,kGAGE,wCAGE,+DACA,yFATN,aACE,uEACA,iGAGE,sCAGE,8DACA,wFATN,YACE,sEACA,gGAGE,oCAGE,gEACA,0FATN,WACE,qEACA,+FAGE,kCAGE,6DACA,uFAOR,oBACE,+EACA,yGAGE,oDAEE,kFACA,4GC1BN,kBACE,UAEA,kJCHF,WACE,oBACA,IzD6c4B,QyD5c5B,mBACA,kFACA,sBzD2c4B,MyD1c5B,2BAEA,eACE,cACA,MzDuc0B,IyDtc1B,OzDsc0B,IyDrc1B,kBxCIE,WwCHF,0BxCOE,uCwCZJ,exCaM,iBwCDJ,8DACE,mECnBN,OACE,kBACA,WAEA,eACE,cACA,mCACA,WAGF,SACE,kBACA,MACA,OACA,WACA,YAKF,WACE,wBADF,WACE,uBADF,YACE,0BADF,YACE,kCCrBJ,WACE,eACA,MACA,QACA,OACA,Q3DumCkC,K2DpmCpC,cACE,eACA,QACA,SACA,OACA,Q3D+lCkC,K2DvlChC,YACE,gBACA,MACA,Q3DmlC8B,K2DhlChC,eACE,gBACA,SACA,Q3D6kC8B,KS9iChC,yBkDxCA,eACE,gBACA,MACA,Q3DmlC8B,K2DhlChC,kBACE,gBACA,SACA,Q3D6kC8B,MS9iChC,yBkDxCA,eACE,gBACA,MACA,Q3DmlC8B,K2DhlChC,kBACE,gBACA,SACA,Q3D6kC8B,MS9iChC,yBkDxCA,eACE,gBACA,MACA,Q3DmlC8B,K2DhlChC,kBACE,gBACA,SACA,Q3D6kC8B,MS9iChC,0BkDxCA,eACE,gBACA,MACA,Q3DmlC8B,K2DhlChC,kBACE,gBACA,SACA,Q3D6kC8B,MS9iChC,0BkDxCA,gBACE,gBACA,MACA,Q3DmlC8B,K2DhlChC,mBACE,gBACA,SACA,Q3D6kC8B,M4D5mCpC,QACE,aACA,mBACA,mBACA,mBAGF,QACE,aACA,cACA,sBACA,mBCRF,2ECIE,qBACA,sBACA,qBACA,uB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BAMF,aACE,gBACA,uBACA,aACA,uBACA,iCACA,qBACA,mCACA,4BACA,wFAGF,mBACE,wFAGF,gCACE,WACA,YAGF,sCACE,yBACA,eAGF,sCACE,2EACA,oBACA,+BACA,4BAGF,4CACE,2EAGF,kCACE,wFAGF,wCACE,wFAGF,2DACE,2EAGF,iEACE,2EAGF,sCACE,aACE,qBAGF,gCACE,cAOJ,eACE,gBACA,SACA,gBACA,gDACA,kCACA,mCACA,4BACA,kEACA,wGACA,0BACA,UAGF,eACE,aACA,sBACA,mBAGF,8BACE,kEACA,6EAGF,8BACE,iBAIF,yBACE,wDAGF,6CACE,6BAIF,oBACE,yBACA,iBACA,gBAGF,iBACE,kCACA,sCAGF,uBACE,iCAIF,qBACE,eAGF,sCACE,oCACA,UACA,kBAGF,uBACE,2BACA,YACA,wBACA,cAGF,kCACE,+BACA,cAGF,6BACE,2BAGF,wCACE,+BAGF,+EAGE,eACA,WACA,kBAGF,YACE,qBACA,sBACA,0BACA,iBACA,uBACA,mBACA,2BACA,wBAGF,8HAGE,oBACA,eAGF,mBACE,gBACA,mBAGF,mBACE,iBAGF,6BACE,eACA,gBAGF,yBACE,kBACA,WAGF,iCACE,yBAGF,8BACE,qBAGF,qCACE,cACA,WAGF,gDACE,oCACA,UAGF,6CACE,qCAGF,kCACE,oCAGF,gBACE,aACA,mBACA,uBACA,UACA,iBACA,gCAGF,gCACE,WACA,YAIF,eACE,gBACA,mBACA,sCACA,YAGF,eACE,kBACA,kBACA,sCAGF,qBACE,kCAGF,iBACE,WAGF,gBACE,aACA,mBACA,mBAMF,kBACE,kBACA,qBACA,eACA,UACA,aACA,WACA,YACA,6BACA,qBACA,uBACA,wCACA,sBACA,mEACA,kDACA,oBACA,mBACA,uBACA,UACA,oBAEA,oBACE,kBAGF,wBACE,sBACA,mEAGF,yBACE,sBAIJ,uBACE,oBACA,UACA,oBACA,4BAGF,oBACE,KACE,UACA,2BAEF,GACE,UACA,yBAOJ,QACE,mBACA,sCACA,sBACA,qCAGF,WACE,8DACA,WAGF,cACE,kCACA,2BAGF,UACE,WACA,YACA,qBACA,gBACA,aACA,mBAGF,cACE,WACA,YACA,iBACA,cAMF,6BAEE,aACA,mBACA,uBACA,mBACA,uCACA,iBACA,cACA,gBACA,oBACA,iBAGF,wFAIE,WACA,cACA,WACA,uEAGF,uCAEE,cACA,yBACA,yBAGF,aACE,gCAGF,gBACE,uBCxbF,cACE,gBACA,aACA,sBACA,uBAEA,8BACE,kBACA,qBACA,aACA,mBACA,eAEA,8CACE,gBACA,qBACA,cAEA,oDACE,0BAIJ,iDACE,0BACA,gBAGF,4CACE,0BAGF,qCACE,gBACA,qBAIJ,4BACE,kBACA,gBACA,qBACA,qBACA,iCACA,qBACA,mBACA,cAIF,mCACE,qBAEA,mDACE,2BAEA,sEACE,QAGF,iEACE,SAIJ,iDACE,gEACA,0EAMN,eACE,mBAIF,yBACE,aACA,mBACA,oBAEA,wCACE,iBACA,wBACA,mBAGF,yCACE,gBAGF,yCACE,kBACA,0BACA,kBAKJ,0BACE,kBAIF,qBACE,iBACA,gBACA,kBACA,oBAGA,qBACA,8CAGA,wCACE,UAGF,8CACE,yBAGF,8CACE,2BACA,kBAEA,oDACE,2BAMN,qBACE,gBACA,SACA,6BACA,WACA,4CACA,iBCjJF,eACE,8BAKA,6BACE,gBAMF,+BACE,2BACA,WACA,oBAGF,6BACE,gBACA,gBACA,UACA,wCAGA,qBACA,wBAGA,gDACE,apEmIN,MAEE,0BACA,yCAGA,0CACA,kDAGA,4CAGA,wBACA,gBAGA,YACE,0CACA,wCACA,0CACA,kDACA,yCACA,2BAMF,2BAEE,0BACA,iDACA,oCACA,2CAEA,iCACE,0CACA,4CAYN,KACE,oCACA,uBACA,gCACA,gBACA,0BAEA,0BACE,2BAGF,2BACE,2BAGF,cACE,WACA,mBAKJ,aACE,sBACA,0CAEA,kCACE,2CACA,0CAGF,mCACE,2CAKJ,sEAIE,oCACA,gCAEA,0JACE,oCACA,2BAGF,8JACE,oCAKJ,qBACE,wBAEA,0CACE,wBACA,oCAOA,+CACE,oCAGF,gDACE,oCAIJ,kCACE,0CAEA,uDACE,2CAGF,wDACE,2CAQF,8OACE,oCAGF,kPACE,oCAMN,WACE,aACA,sBACA,MAIF,gBACE,aACA,mBACA,+BACA,sCAEA,uBACE,gBACA,oBACA,SAKJ,aACE,aACA,mBACA,+BACA,kCACA,uCACA,yBACA,mBAIF,WACE,WACA,YACA,qBACA,gBACA,6EACA,iCACA,aACA,mBACA,cAEA,eACE,WACA,YACA,iBACA,cAKJ,WACE,gBACA,OACA,YAIF,YACE,gBACA,2BACA,cACA,gBACA,uBACA,mBACA,gBAIF,eACE,iBACA,gCACA,cACA,gBACA,uBACA,mBACA,gBAIF,WACE,0DACA,uCACA,kBAIF,cACE,aACA,mBACA,4BACA,kCACA,mCACA,4CACA,kBACA,UAKE,gHAEE,mCACA,gBAOJ,2BACE,+DAGF,yBACE,+DAGF,yBACE,WACA,YAIJ,iBACE,YACA,gBACA,gBACA,+CAEA,uBACE,eACA,gBACA,iCAIJ,kBACE,wCACA,kEAIF,yBACE,gBACE,2BACA,eAGF,aACE,+BACA,uCAGF,WACE,WACA,YAGF,cACE,gCASJ,WACE,kCACA","file":"bootstrap-custom.css"} \ No newline at end of file diff --git a/backend/static/js/components/postDetailModal.old.js b/backend/static/js/components/postDetailModal.old.js new file mode 100644 index 00000000..61186fc7 --- /dev/null +++ b/backend/static/js/components/postDetailModal.old.js @@ -0,0 +1,401 @@ +/** + * postDetailModal.js + * Модуль для открытия деталей поста в модальном окне + * Полностью переработанная версия с правильной логикой определения автора + */ + +(function() { + 'use strict'; + + // Константы + const INITIAL_COMMENTS_COUNT = 10; + const DEBUG = true; // Включаем отладку для диагностики + + // Состояние модуля + let modal = null; + let modalElement = null; + let currentPost = null; // Сохраняем текущий пост + + /** + * Инициализация модального окна + */ + function initPostDetailModal() { + modalElement = document.getElementById('postDetailModal'); + if (!modalElement) { + console.warn('postDetailModal: элемент #postDetailModal не найден'); + return; + } + + modal = new bootstrap.Modal(modalElement); + + // Очистка при закрытии + modalElement.addEventListener('hidden.bs.modal', function() { + const contentDiv = document.getElementById('postDetailContent'); + if (contentDiv) { + contentDiv.innerHTML = ` +
    +
    + Загрузка... +
    +
    + `; + } + currentPost = null; + }); + + // Добавляем обработчики на ссылки постов + attachPostLinkHandlers(); + } + + /** + * Получение CSRF токена из cookie + */ + function getCsrfToken() { + const cookies = document.cookie.split(';'); + for (let cookie of cookies) { + const [name, value] = cookie.trim().split('='); + if (name === 'csrftoken') { + return decodeURIComponent(value); + } + } + return null; + } + + /** + * Получение JWT токена из cookie (для загрузки данных) + */ + function getAccessToken() { + const cookies = document.cookie.split(';'); + for (let cookie of cookies) { + const [name, value] = cookie.trim().split('='); + if (name === 'access_token') { + return decodeURIComponent(value); + } + } + return null; + } + + /** + * Загрузка деталей поста через API + */ + async function loadPostDetail(postId) { + const accessToken = getAccessToken(); + const headers = { + 'Accept': 'application/json' + }; + + if (accessToken) { + headers['Authorization'] = `Bearer ${accessToken}`; + } + + try { + const response = await fetch(`/api/v1/posts/${postId}/`, { + method: 'GET', + headers: headers + }); + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + const post = await response.json(); + + // Отладочная информация + if (DEBUG) { + console.log('=== POST DETAIL DEBUG ==='); + console.log('Post author:', post.author); + console.log('Post author.id:', post.author?.id, 'type:', typeof post.author?.id); + console.log('Post author_id:', post.author_id, 'type:', typeof post.author_id); + if (post.comments && post.comments.length > 0) { + console.log('First comment:', post.comments[0]); + console.log('First comment author:', post.comments[0].author); + console.log('First comment author.id:', post.comments[0].author?.id, 'type:', typeof post.comments[0].author?.id); + console.log('First comment author_id:', post.comments[0].author_id, 'type:', typeof post.comments[0].author_id); + } + console.log('========================'); + } + + currentPost = post; + renderPostDetail(post); + } catch (error) { + console.error('Ошибка загрузки поста:', error); + showError('Не удалось загрузить пост'); + } + } + + /** + * Отображение деталей поста в модальном окне + */ + function renderPostDetail(post) { + const contentDiv = document.getElementById('postDetailContent'); + + // Определяем ID автора поста (пробуем разные поля) + const postAuthorId = getAuthorId(post.author) || post.author_id; + + if (DEBUG) { + console.log('Rendering post with author ID:', postAuthorId); + } + + // Формируем HTML с кнопкой закрытия + let html = ''; + html += '
    '; + + // Заголовок с автором + html += renderPostHeader(post); + + // Изображение + if (post.image) { + html += `
    ${escapeHtml(post.title || 'Публикация')}
    `; + } + + // Тело + html += '
    '; + html += `

    ${escapeHtml(post.title || 'Без названия')}

    `; + if (post.body) { + html += `
    ${formatBody(post.body)}
    `; + } + html += '
    '; + + // Футер с лайками + html += renderPostFooter(post); + + // Секция комментариев + html += renderCommentsSection(post, postAuthorId); + + html += '
    '; + + contentDiv.innerHTML = html; + + // Сохраняем данные для динамической подгрузки + if (post.comments && post.comments.length > 0) { + contentDiv.dataset.allComments = JSON.stringify(post.comments); + contentDiv.dataset.postAuthorId = postAuthorId; + } + + // Прокручиваем к последнему комментарию + scrollToBottom(); + + // Добавляем обработчики + attachLikeHandlers(); + attachLoadMoreCommentsHandler(); + attachCommentFormHandler(); + } + + /** + * Отображение комментария + * @param {Object} comment - Объект комментария + * @param {number} postAuthorId - ID автора поста + */ + function renderComment(comment, postAuthorId) { + // Приводим оба ID к числам для корректного сравнения + const commentAuthorId = comment.author?.id ? parseInt(comment.author.id) : null; + const postAuthorIdNum = postAuthorId ? parseInt(postAuthorId) : null; + const isAuthor = commentAuthorId !== null && postAuthorIdNum !== null && commentAuthorId === postAuthorIdNum; + + const commentClass = isAuthor ? 'comment-item comment-item--author' : 'comment-item'; + + let html = `
    `; + html += '
    '; + + // Автор и дата + const authorName = comment.author?.full_name || 'Аноним'; + const authorId = comment.author?.id; + + if (authorId) { + html += `${authorName}`; + } else { + html += `${authorName}`; + } + + html += '·'; + html += ``; + html += '
    '; + + // Текст комментария + html += `
    ${formatBody(comment.text)}
    `; + html += '
    '; + + return html; + } + + /** + * Форматирование даты + */ + function formatDate(dateString) { + const date = new Date(dateString); + const now = new Date(); + const diff = now - date; + const days = Math.floor(diff / (1000 * 60 * 60 * 24)); + + if (days === 0) { + return 'Сегодня, ' + date.toLocaleTimeString('ru-RU', { hour: '2-digit', minute: '2-digit' }); + } else if (days === 1) { + return 'Вчера, ' + date.toLocaleTimeString('ru-RU', { hour: '2-digit', minute: '2-digit' }); + } else if (days < 7) { + return days + ' дн. назад'; + } else { + return date.toLocaleDateString('ru-RU', { day: 'numeric', month: 'long', year: 'numeric' }); + } + } + + /** + * Форматирование текста (простая обработка переносов строк) + */ + function formatBody(text) { + return text.replace(/\n/g, '
    '); + } + + /** + * Показать ошибку + */ + function showError(message) { + const contentDiv = document.getElementById('postDetailContent'); + contentDiv.innerHTML = ` + + `; + } + + /** + * Открыть модальное окно с постом + */ + function openPostModal(postId) { + if (!modal) { + console.error('Modal не инициализирован'); + return; + } + + modal.show(); + loadPostDetail(postId); + } + + /** + * Добавление обработчиков на ссылки постов + */ + function attachPostLinkHandlers() { + // Обработка кликов по ссылкам на посты + document.addEventListener('click', function(e) { + const link = e.target.closest('a[data-post-link]'); + if (link) { + e.preventDefault(); + const postId = link.dataset.postId; + if (postId) { + openPostModal(postId); + } + } + }); + } + + /** + * Обработчик для кнопки "Показать ещё комментарии" + */ + function attachLoadMoreCommentsHandler() { + const loadMoreBtn = document.querySelector('.load-more-comments'); + if (!loadMoreBtn) return; + + loadMoreBtn.addEventListener('click', function() { + const contentDiv = document.getElementById('postDetailContent'); + const allComments = JSON.parse(contentDiv.dataset.allComments || '[]'); + const postAuthorId = parseInt(contentDiv.dataset.postAuthorId); + const commentsContainer = document.getElementById('commentsListContainer'); + + if (!commentsContainer || allComments.length === 0) return; + + // Сохраняем текущую позицию скролла и высоту + const scrollHeight = commentsContainer.scrollHeight; + const scrollTop = commentsContainer.scrollTop; + + // Показываем все комментарии + let html = ''; + allComments.forEach(comment => { + html += renderComment(comment, postAuthorId); + }); + + commentsContainer.innerHTML = html; + + // Восстанавливаем позицию скролла (с учётом добавленного контента) + const newScrollHeight = commentsContainer.scrollHeight; + const heightDiff = newScrollHeight - scrollHeight; + commentsContainer.scrollTop = scrollTop + heightDiff; + + // Удаляем кнопку после загрузки + this.remove(); + }); + } + + /** + * Обработчики лайков в модальном окне + */ + function attachLikeHandlers() { + const likeButtons = document.querySelectorAll('#postDetailContent .like-btn'); + likeButtons.forEach(btn => { + btn.addEventListener('click', async function(e) { + e.preventDefault(); + const postId = this.dataset.postId; + await toggleLike(postId, this); + }); + }); + } + + /** + * Переключение лайка + */ + async function toggleLike(postId, button) { + const csrfToken = getCsrfToken(); + if (!csrfToken) { + alert('Необходимо авторизоваться'); + return; + } + + const icon = button.querySelector('i'); + const isLiked = icon.classList.contains('bi-heart-fill'); + const endpoint = isLiked ? 'unlike' : 'like'; + + try { + const response = await fetch(`/api/v1/posts/${postId}/${endpoint}/`, { + method: 'POST', + headers: { + 'X-CSRFToken': csrfToken, + 'Content-Type': 'application/json', + 'X-Requested-With': 'XMLHttpRequest' + } + }); + + if (response.ok) { + const data = await response.json(); + + // Обновляем иконку и счетчик + if (isLiked) { + icon.classList.remove('bi-heart-fill', 'text-danger'); + icon.classList.add('bi-heart'); + } else { + icon.classList.remove('bi-heart'); + icon.classList.add('bi-heart-fill', 'text-danger'); + } + + // Обновляем счетчик + const countText = button.childNodes[1]; + if (countText) { + countText.textContent = ' ' + (data.likes_count || 0); + } + } else { + alert('Ошибка при обработке лайка'); + } + } catch (error) { + console.error('Ошибка:', error); + alert('Ошибка сети'); + } + } + + // Инициализация при загрузке DOM + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', initPostDetailModal); + } else { + initPostDetailModal(); + } + + // Экспорт для использования извне + window.openPostModal = openPostModal; + +})(); diff --git a/backend/static/js/components/themeToggleHandler.js b/backend/static/js/components/themeToggleHandler.js index a6513f88..63aeae01 100644 --- a/backend/static/js/components/themeToggleHandler.js +++ b/backend/static/js/components/themeToggleHandler.js @@ -118,6 +118,113 @@ export function initThemeToggle(options = {}) { }); } + /** + * Обновляет тему для всех emoji picker на странице. + * @param {string} theme - 'light' или 'dark' + */ + function updateEmojiPickerTheme(theme) { + const isDark = theme === 'dark'; + + // Получаем все emoji picker элементы + const pickers = document.querySelectorAll('emoji-picker'); + + pickers.forEach(picker => { + // Устанавливаем CSS-переменные для emoji-picker-element + if (isDark) { + // Темная тема + picker.style.setProperty('--background', '#212529'); + picker.style.setProperty('--rgb-background', '33, 37, 41'); + picker.style.setProperty('--color', '#dee2e6'); + picker.style.setProperty('--rgb-color', '222, 226, 230'); + picker.style.setProperty('--secondary-color', '#adb5bd'); + picker.style.setProperty('--rgb-accent', '13, 110, 253'); + picker.style.setProperty('--border-color', 'rgba(255, 255, 255, 0.1)'); + picker.style.setProperty('--input-border-color', 'rgba(255, 255, 255, 0.15)'); + picker.style.setProperty('--input-background', '#343a40'); + picker.style.setProperty('--hover-background', '#343a40'); + } else { + // Светлая тема + picker.style.setProperty('--background', '#ffffff'); + picker.style.setProperty('--rgb-background', '255, 255, 255'); + picker.style.setProperty('--color', '#212529'); + picker.style.setProperty('--rgb-color', '33, 37, 41'); + picker.style.setProperty('--secondary-color', '#6c757d'); + picker.style.setProperty('--rgb-accent', '13, 110, 253'); + picker.style.setProperty('--border-color', 'rgba(0, 0, 0, 0.08)'); + picker.style.setProperty('--input-border-color', 'rgba(0, 0, 0, 0.1)'); + picker.style.setProperty('--input-background', '#f8f9fa'); + picker.style.setProperty('--hover-background', '#f8f9fa'); + } + + // Инжектим стили скроллбара в Shadow DOM + if (picker.shadowRoot) { + // Проверяем, не добавлены ли уже стили + let styleEl = picker.shadowRoot.querySelector('#custom-scrollbar-styles'); + if (!styleEl) { + styleEl = document.createElement('style'); + styleEl.id = 'custom-scrollbar-styles'; + picker.shadowRoot.appendChild(styleEl); + } + + // Устанавливаем стили скроллбара в зависимости от темы + const scrollbarColor = isDark ? 'rgba(255, 255, 255, 0.3)' : 'rgba(0, 0, 0, 0.3)'; + const scrollbarBg = isDark ? 'rgba(255, 255, 255, 0.05)' : 'rgba(0, 0, 0, 0.05)'; + + styleEl.textContent = ` + .tabpanel { + scrollbar-width: thin; + scrollbar-color: ${scrollbarColor} ${scrollbarBg}; + } + .tabpanel::-webkit-scrollbar { + width: 8px; + } + .tabpanel::-webkit-scrollbar-track { + background: ${scrollbarBg}; + } + .tabpanel::-webkit-scrollbar-thumb { + background: ${scrollbarColor}; + border-radius: 4px; + } + .tabpanel::-webkit-scrollbar-thumb:hover { + background: ${isDark ? 'rgba(255, 255, 255, 0.4)' : 'rgba(0, 0, 0, 0.4)'}; + } + `; + } + }); + } + + /** + * Создаёт наблюдатель за добавлением новых emoji picker на страницу. + */ + function setupEmojiPickerObserver() { + const observer = new MutationObserver((mutations) => { + mutations.forEach((mutation) => { + mutation.addedNodes.forEach((node) => { + if (node.nodeType === 1) { // Element node + // Проверяем сам элемент + if (node.tagName === 'EMOJI-PICKER') { + const currentTheme = getEffectiveTheme(getSavedMode(), mediaQuery); + updateEmojiPickerTheme(currentTheme); + } + // Проверяем дочерние элементы + const emojiPickers = node.querySelectorAll?.('emoji-picker'); + if (emojiPickers?.length > 0) { + const currentTheme = getEffectiveTheme(getSavedMode(), mediaQuery); + updateEmojiPickerTheme(currentTheme); + } + } + }); + }); + }); + + observer.observe(document.body, { + childList: true, + subtree: true + }); + + return observer; + } + /** * Применяет режим темы к документу. * @param {string} mode - Режим темы @@ -132,6 +239,9 @@ export function initThemeToggle(options = {}) { } updateButtons(mode); + + // Обновляем тему для emoji picker + updateEmojiPickerTheme(effectiveTheme); } /** @@ -165,6 +275,9 @@ export function initThemeToggle(options = {}) { function handleDOMContentLoaded() { const savedMode = getSavedMode(); applyMode(savedMode, false); + + // Инициализируем наблюдатель за новыми emoji picker + setupEmojiPickerObserver(); } // Установка обработчиков @@ -177,6 +290,9 @@ export function initThemeToggle(options = {}) { handleDOMContentLoaded(); } + // Создаём переменную для хранения observer + let emojiObserver = null; + /** * Функция для удаления всех обработчиков. */ @@ -184,6 +300,11 @@ export function initThemeToggle(options = {}) { document.removeEventListener('DOMContentLoaded', handleDOMContentLoaded); document.body.removeEventListener('click', handleButtonClick); mediaQuery.removeEventListener('change', handleMediaQueryChange); + + // Отключаем наблюдатель + if (emojiObserver) { + emojiObserver.disconnect(); + } } return { diff --git a/backend/static/scss/components/_comments.scss b/backend/static/scss/components/_comments.scss index bc1704ba..8e418d55 100644 --- a/backend/static/scss/components/_comments.scss +++ b/backend/static/scss/components/_comments.scss @@ -109,20 +109,14 @@ // Обёртка для комментариев с sticky формой .comments-section-wrapper { position: relative; - display: flex; - flex-direction: column; - min-height: 300px; - max-height: 65vh; // Максимальная высота всей секции } // Скроллируемая область с комментариями .comments-scrollable { - flex: 1 1 auto; + max-height: 400px; overflow-y: auto; overflow-x: hidden; - min-height: 0; // Важно для правильной работы flex - display: flex; - flex-direction: column; + padding-bottom: 1rem; // Firefox скроллбар scrollbar-width: thin; @@ -149,10 +143,10 @@ // Sticky форма для комментариев .comment-form-sticky { - flex: 0 0 auto; - position: relative; // Изменено с sticky на relative - z-index: 10; + position: sticky; + bottom: 0; background: var(--bs-body-bg); + z-index: 10; border-top: 1px solid var(--bs-border-color); - box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.05); + padding-top: 1rem; } diff --git a/backend/static/scss/custom-bootstrap.scss b/backend/static/scss/custom-bootstrap.scss index 1ceb9bd9..6ebefb58 100644 --- a/backend/static/scss/custom-bootstrap.scss +++ b/backend/static/scss/custom-bootstrap.scss @@ -166,22 +166,28 @@ $card-cap-color: null !default; // Базовые стили карточки - применяем эффект жидкого стекла .card { - // Размытие фона (glassmorphism) - backdrop-filter: blur(10px); - -webkit-backdrop-filter: blur(10px); + // Прозрачный фон с лёгким оттенком для светлой темы (как в тёмной) + --bs-card-bg: transparent; + background: rgba(255, 255, 255, 0.1) !important; - // Рамка для светлой темы + // Размытие фона (glassmorphism) - основа эффекта жидкого стекла + backdrop-filter: blur(10px) saturate(180%); + -webkit-backdrop-filter: blur(10px) saturate(180%); + + // Тонкая рамка для светлой темы border: 1px solid rgba(0, 0, 0, 0.08) !important; // Плавные переходы transition: all 0.3s ease; overflow: hidden; - // Hover эффект + // Hover эффект - усиливаем эффект &:hover { - background: rgba(255, 255, 255, 0.08); + background: rgba(255, 255, 255, 0.15) !important; border-color: rgba(0, 0, 0, 0.12) !important; - box-shadow: 0 12px 48px 0 rgba(0, 0, 0, 0.45); + backdrop-filter: blur(12px) saturate(200%); + -webkit-backdrop-filter: blur(12px) saturate(200%); + box-shadow: 0 12px 48px 0 rgba(0, 0, 0, 0.15); transform: translateY(-2px); } } diff --git a/backend/templates/base.html b/backend/templates/base.html index 69177597..c67d2c9e 100644 --- a/backend/templates/base.html +++ b/backend/templates/base.html @@ -9,6 +9,7 @@ {% if user.is_authenticated %} + {% endif %} {# КРИТИЧНО: Применяем тему ДО загрузки CSS для предотвращения FOUC #} diff --git a/backend/templates/feed/post_detail.html b/backend/templates/feed/post_detail.html index d4111a97..b6571db9 100644 --- a/backend/templates/feed/post_detail.html +++ b/backend/templates/feed/post_detail.html @@ -170,7 +170,7 @@ {% for c in comments %} {% firstof c.id c.pk as cid %} {% firstof c.author.id c.author.pk c.author_id as c_author_id %} -
    +
    {% if c_author_id %} diff --git a/backend/templates/includes/components/calendar_context_menu.html b/backend/templates/includes/components/calendar_context_menu.html new file mode 100644 index 00000000..ade972f0 --- /dev/null +++ b/backend/templates/includes/components/calendar_context_menu.html @@ -0,0 +1,42 @@ +{# Контекстное меню для действий с событиями календаря #} + + + diff --git a/backend/templates/includes/components/calendar_desktop.html b/backend/templates/includes/components/calendar_desktop.html index 33746b8e..95626f25 100644 --- a/backend/templates/includes/components/calendar_desktop.html +++ b/backend/templates/includes/components/calendar_desktop.html @@ -6,7 +6,7 @@
    Календарь
    - {# Выпадающий выбор: Компания / Отделы #} + {# Выпадающий выбор: Компания / Отделы / Личный #}