О проекте
Команда: MUA
Кейс HackAlem.ai: Спецтрек — Казахтелеком
Стадия: Доведённый продукт
Задача кейса: Агент, сравнивающий документы оргструктуры до и после реорганизации
Суть
Веб-сервис, который сравнивает Word-документы оргструктуры до и после реорганизации. Он выделяет изменения подразделений и функций, возможные потери функций, дубли и конфликты интересов, у каждой находки указывает пункт-источник с цитатой и формирует заключение с экспортом в Markdown.
Как устроено
Конвейер из шести шагов: разбор .docx на пункты и таблицы, извлечение подразделений, извлечение атомарных функций, сопоставление, поиск конфликтов, заключение. Код разбирает документ, нормализует данные, отбирает кандидатов по лексической и векторной близости и применяет правила несовместимых ролей. LLM (OpenAI Responses API со строгими JSON-схемами Structured Outputs) извлекает сущности и проверяет смысл сопоставлений. Номера пунктов и цитаты, которых нет в документе, код отбрасывает. В режиме mock вместо сетевых вызовов читаются сохранённые ответы модели, поэтому тестовый комплект воспроизводится без ключа.
Ключевые решения
- OpenAI Responses API Structured Outputs
- строгие JSON-схемы
- векторный и лексический отбор кандидатов
- text-embedding-3-small
- правила несовместимых ролей исполнения и контроля
- проверка пунктов и цитат кодом
- mock-режим на сохранённых ответах LLM
- фоновый пайплайн с опросом статуса
Особенности
Жёсткое разделение ролей: LLM только извлекает и оценивает смысл, а существование пункта и совпадение цитаты проверяет код. Mock-режим с сохранёнными ответами модели (более 1500 JSON-фикстур) даёт жюри детерминированную проверку без ключа. Команда открыто указала, что каркас подготовлен заранее. Работу вели параллельными сессиями ИИ-агентов (промпты S01–S20, матрица владения файлами).
Стек
Python 3.12 · FastAPI · Pydantic · Uvicorn · NumPy · Next.js 15 · React 19 · TypeScript · Tailwind CSS 4 · Docker Compose · uv · pytest · Ruff · GitHub Actions
Модели
gpt-5.6-luna (OpenAI) · text-embedding-3-small
Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-ec659486-mua.
README
README.md1. Название проекта
ОргДифф — ИИ-агент анализа организационной структуры и функционала.
Кейс 11 HackAlem AI, 23.09.2026. Задание организаторов.
Онлайн-адрес: odl.kz. При проверке 23.09.2026 в 17:48 (+05:00) сервер вернул HTTP 403. Для проверки решения используйте локальный запуск ниже.
Для локальной проверки нужен только Docker с Compose и Git. Ключ OpenAI, файл .env и установка Python/Node.js не требуются. Запуск — три команды из раздела 7, затем кнопка «Тестовый комплект».
2. Краткое описание
ОргДифф помогает сотрудникам организационного развития и внутреннего аудита проверить, как реорганизация меняет подразделения, функции и ответственность. Он сравнивает документы «до» и «после», собирает изменения в отчёт и показывает подтверждающие пункты документов. Это позволяет проверять возможные потери функций, пересечения обязанностей и потенциальные конфликты интересов. Выводы носят рекомендательный характер; решение принимает специалист.
3. Что реализовано
- Изменения подразделений: извлечение и сопоставление со статусами «сохранено», «преобразовано», «создано», «упразднено».
- Сопоставление функций: таблица «до/после», сохранённые, изменённые, перенесённые, новые функции и возможные потери. Кандидаты, требующие проверки, отмечаются отдельно.
- Дубли и конфликты интересов: поиск пересечений между подразделениями и правила несовместимых ролей исполнения и контроля. На тестовом комплекте найдены дубли; конфликтов интересов не найдено.
- Источники: документ, редакция, пункт и цитата у находки. Код проверяет существование пункта и соответствие цитаты; кнопка источника открывает исходный текст.
- Заключение: текст по проверенным находкам, рекомендации и скачивание отчёта в Markdown.
Есть загрузка своих .docx, фоновый анализ, экран прогресса и просмотр отчёта.
Без ключа воспроизводится тестовый комплект организаторов на сохранённых ответах модели.
4. Как работает решение
- Нажмите «Тестовый комплект» либо загрузите документы в зоны «До реорганизации» и «После реорганизации» и нажмите «Проанализировать».
- Дождитесь завершения анализа на странице прогресса.
- Просмотрите вкладки «Подразделения», «Функции», «Дубли и конфликты», «Заключение».
- Откройте пункт-источник у находки и скачайте заключение.
| Шаг | Что выполняет код | Для чего используется LLM |
|---|---|---|
| P1. Разбор | Читает Word, выделяет пункты, таблицы и контекст | Не используется |
| P2. Подразделения | Нормализует названия и проверяет источники | Извлекает подразделения и сопоставляет преобразования |
| P3. Функции | Проверяет источники, вычисляет сигнатуры, отделяет запреты | Извлекает атомарные функции и исполнителей |
| P4. Сопоставление | Сравнивает одинаковые тексты с учётом контекста, отбирает кандидатов по лексической и векторной близости | Проверяет смысл сопоставлений, потерь и дублей |
| P5. Конфликты | Применяет правила несовместимых ролей и проверяет общий объект | Объясняет найденные кандидаты |
| P6. Заключение | Собирает проверенные факты, проверяет ссылки и формирует экспорт | Формулирует заключение и рекомендации |
Языковые вызовы проходят через backend/app/llm.py с OpenAI Responses API и строгими
JSON-схемами Structured Outputs. Номера пунктов, отсутствующие в документе, отбрасываются кодом.
В режиме mock сетевые вызовы заменены чтением сохранённых ответов; документы разбираются,
сопоставления проверяются и итоговый отчёт собирается при каждом запуске.
5. Технологии
| Часть | Технологии |
|---|---|
| Backend | Python 3.12, FastAPI, Pydantic, Uvicorn, python-multipart |
| Анализ | Стандартная библиотека Python для .docx, NumPy, собственные правила и поиск кандидатов |
| AI | OpenAI Python SDK, Responses API, Structured Outputs; модель из OPENAI_MODEL, по умолчанию gpt-5.6-luna; embeddings text-embedding-3-small |
| Frontend | Next.js 15, React 19, TypeScript 5, Tailwind CSS 4 |
| Сборка и проверка | Docker Compose, uv, npm; pytest, Ruff, ESLint, TypeScript |
Точные версии зависимостей зафиксированы в backend/uv.lock и frontend/package-lock.json. В mock ключ и доступ к OpenAI не нужны.
6. Архитектура проекта
flowchart LR
B[Браузер] --> F[Next.js: загрузка, прогресс, отчёт]
B --> A[FastAPI]
F --> A
A --> P[Фоновый анализ P1–P6]
D[Документы до и после] --> P
P --> L[Обёртка LLM]
L --> M[Фикстуры в mock]
L --> O[OpenAI в live]
P --> R[Отчёт, источники, Markdown]
R --> A
| Путь | Назначение |
|---|---|
backend/app/parse/, prebuilt/ | Разбор Word и нормализация |
backend/app/units.py, functions.py, candidates.py, matching.py | Подразделения, функции и сопоставления |
backend/app/duplicates.py, rules/conflicts.py | Дубли и конфликты |
backend/app/conclusion.py, export_md.py | Заключение и экспорт |
backend/app/llm.py, llm_schemas.py, prompts/, mocks/ | Вызовы модели, схемы, промпты и сохранённые ответы |
backend/app/pipeline.py, routers/runs.py, store.py | Фоновый анализ, API и состояние запусков |
frontend/app/, frontend/components/ | Интерфейс и панель источника |
data/case11/ | Тестовые документы организаторов |
Frontend опрашивает состояние каждые 2 секунды. API: POST /api/runs/demo — тестовый комплект,
POST /api/runs — загрузка, GET /api/runs/{id} — статус, /report — отчёт,
/clauses/{doc_id}/{clause_number} — источник, /report.md — скачивание.
Состояние хранится в памяти; JSON-дампы записываются в backend/runtime/runs/,
в Docker — в том backend_runs. Автоматического восстановления запусков после перезапуска нет.
7. Установка и запуск
Основной способ — Docker, без ключа
Установите Git и запустите Docker Desktop с Linux-контейнерами (Windows/macOS)
либо Docker Engine с плагином Compose v2 (Linux). Требуется Compose 2.24.0+:
используется необязательный env_file. Порты 3000 и 8000 должны быть свободны.
Интернет нужен для первоначального скачивания образов и зависимостей.
Откройте терминал или PowerShell и выполните:
git clone https://github.com/BAITC-Hacks/hack-ec659486-mua.git
cd hack-ec659486-mua
docker compose up --build
Создавать .env и вводить ключ не нужно. На чистом клоне включён LLM_MODE=mock.
Дождитесь Application startup complete у backend и Ready у frontend. Оставьте терминал открытым.
- Приложение: http://localhost:3000.
- Проверка API: http://localhost:8000/health —
status: ok,llm_mode: mock. - Описание API: http://localhost:8000/docs.
Для остановки нажмите Ctrl+C, затем выполните docker compose down из той же папки.
Повторный запуск: docker compose up.
Проверенное окружение: Ubuntu, Docker 29.1.3, Compose 2.40.3. Windows/macOS используют те же команды; Docker должен работать в режиме Linux-контейнеров. Минимальное потребление ОЗУ и диска не измерялось; проверочная машина имеет 16 ГБ ОЗУ. Место требуется для Docker-образов, зависимостей и документов. Чистый клон проверен без ключа; оба сервиса стали готовы за 171,3 секунды при наличии кэша базовых образов и зависимостей. Время холодной сборки без кэша отдельно не измерялось.
Запасной способ — без Docker
Нужны uv (проверено с 0.12.17), Python 3.12 (uv может скачать его сам), Node.js 20+ и npm. Откройте два терминала в папке клонированного репозитория.
Терминал 1 — API:
cd backend
uv sync --locked
uv run uvicorn app.main:app --host 127.0.0.1 --port 8000
Терминал 2 — интерфейс:
cd frontend
npm ci
npm run dev
Дождитесь Ready и откройте http://localhost:3000.
Отдельная production-сборка для этого способа не нужна. Остановка — Ctrl+C в обоих терминалах.
Настройки и live-режим
Для тестового комплекта этот шаг пропустите. При необходимости создайте файл .env
в корне проекта, скопировав содержимое .env.example в текстовом редакторе.
| Переменная | По умолчанию | Назначение |
|---|---|---|
LLM_MODE | mock | Сохранённые ответы; live включает обращения к OpenAI |
OPENAI_API_KEY | пусто | Ключ, нужен только в live |
OPENAI_MODEL | gpt-5.6-luna | Модель Responses API |
DATA_DIR | ../data | Путь к документам относительно backend; Docker задаёт /app/data |
RUNTIME_DIR | ./runtime | Файлы запусков; Docker задаёт /app/runtime |
CORS_ORIGINS | http://localhost:3000 | Разрешённые адреса интерфейса |
APP_VERSION | 0.1.0 | Версия в /health |
NEXT_PUBLIC_API_URL | http://localhost:8000 | Адрес API для браузера, задаётся при сборке |
NEXT_PUBLIC_APP_NAME | ОргДифф | Название приложения |
DOMAIN | пусто | Для серверного развёртывания; локально не нужен |
NVIDIA_API_KEY | пусто | Заготовка настройки; текущий продукт её не использует |
Для своих документов укажите LLM_MODE=live и OPENAI_API_KEY, затем перезапустите приложение.
Доступ к указанной модели должен быть у вашего аккаунта. В live нет скрытого перехода на mock.
Полный live-сценарий через интерфейс пока не подтверждён — ограничения в разделе 10.
Backend читает корневой .env и backend/.env; переменные терминала имеют приоритет.
При запуске без Docker нестандартные настройки frontend задавайте в frontend/.env.local;
Compose берёт их из корневого .env и передаёт при сборке.
Если не запускается
| Симптом | Что сделать |
|---|---|
Cannot connect to the Docker daemon | Запустить Docker Desktop или службу Docker и повторить запуск |
compose не найден или ошибка env_file | Обновить Docker Desktop / плагин до Compose 2.24.0+; проверить docker compose version |
port is already allocated / EADDRINUSE | Освободить порты 3000 и 8000, остановив другое приложение; затем повторить запуск |
LLM_MODE=live, но OPENAI_API_KEY пуст | Для проверки вернуть LLM_MODE=mock в .env и окружении терминала |
| «API недоступен» | Открыть /health по адресу выше; проверить лог backend и дождаться его готовности |
| Ошибка скачивания образов / зависимостей | Проверить доступ в интернет и повторить docker compose up --build |
| «Тестовый комплект не найден» | Проверить, что клонирован весь репозиторий вместе с data/case11/ и запуск выполняется из его корня |
8. Как проверить решение
Сценарий для жюри без ключа OpenAI:
- Выполните основной запуск из раздела 7 и откройте приложение.
- Убедитесь, что в шапке показано
LLM: mock, API доступен. - Нажмите «Тестовый комплект». Файлы выбирать не требуется: редакции 8 и 9 уже в репозитории.
- Дождитесь завершения анализа и автоматического перехода к отчёту. Ожидаемый статус —
done, пропущенных шагов нет. - Во вкладке «Подразделения» проверьте изменения с упоминаниями ДИТААД, ДОА и направления внутреннего аудита.
- Во вкладке «Функции» найдите потери: контроль сроков выполнения графика проверки проектной командой (ред. 8, п. 5.3.4.б) и доведение результатов консультационных услуг до руководителей Общества (ред. 8, п. 5.7.2). Ещё три кандидата требуют проверки.
- Во вкладке «Дубли и конфликты» откройте пример руководства и распределения обязанностей между работниками (ред. 9, пп. 5.4.1 и 5.5.1). Конфликтов интересов на этом комплекте 0.
- Нажмите кнопку с номером пункта у находки. Откроется панель с документом, редакцией и исходным текстом.
- Откройте «Заключение», затем нажмите «Скачать заключение (.md)». Ожидается файл с заключением и источниками.
Контрольные результаты тестового комплекта:
| Показатель | Значение |
|---|---|
| Изменения подразделений | 6: сохранено 3, преобразовано 2, создано 1 |
| Сопоставления функций | 209 |
| Подтверждённые потери / кандидаты на проверку | 2 / 3 |
| Подтверждённые дубли | 12 |
| Конфликты интересов | 0 |
Статус partial означает неполный анализ: приложение сообщает причину и предлагает частичный
отчёт. На комплекте из проверенной версии ожидается done.
Необязательная автоматическая проверка из папки backend/, после uv sync --locked:
uv run pytest -q tests/test_e2e_mock.py
Проверенная версия приложения — тег green-17-final (коммит e575847); последующие
изменения README собраны в main. Backend: Ruff и 206 passed, включая два сквозных
теста. Frontend: ESLint, TypeScript и production-сборка Next.js — PASS.
В чистом Docker-запуске подтверждены done, отсутствие пропущенных шагов,
551 уникальный источник и полные цитаты в 542 пунктах. Markdown, скачанный через
frontend, побайтно совпадает с экспортом API. В браузере проверены кнопка
«Тестовый комплект», вкладки, фильтры, панель источника и фактическое скачивание файла.
Запасной запуск через uv и npm также проверен. Для изоляции использовались отдельные
локальные порты; продуктовый код и данные не менялись.
Это автоматизированная проверка. Независимый ручной прогон вторым участником на его ноутбуке отдельно не заявляется.
Снимки проверенного сценария
Снимки настоящего mock-прогона; происхождение и контрольные суммы — capture-notes.md.

9. Данные и интеграции
Входные документы предоставлены организаторами и обезличены:
- Положение о внутреннем аудите, редакция 8 — «до»;
- Положение о внутреннем аудите, редакция 9 — «после».
В backend/app/mocks/ ответы хранятся по имени вызова и хэшу входа. Итоговое демо использует записанные S15 ответы gpt-5.6-luna из коммита bb7ddd3: извлечение подразделений и функций, сопоставления, проверку потерь и дублей, заключение и кэш embeddings. Происхождение, число вызовов и повторный mock-прогон описаны в S15. При интеграции конфликтующие записи выбраны из этого согласованного набора; дополнительные записи предыдущего прогона сохранены для остальных входов.
Ручные и черновые фикстуры для модульных тестов также остаются в репозитории. В частности, write_conclusion для demo_report.json — ручная фикстура S14, а старые fixtures функций создавались правилами S09. Их наличие не означает, что все JSON-файлы репозитория получены от модели.
backend/app/mocks/demo_report.json и frontend/lib/fixtures/report.ts — отдельно подготовленная демонстрационная фикстура с цитатами, а не результат текущего API-прогона. В ней, например, изменён состав ДККМ, есть кандидаты по контролю устранения нарушений и пересечению анализа непрерывного аудита. Кнопка «Тестовый комплект» запускает реальный pipeline с mock-ответами и выдаёт результат раздела 8. Подменять эти два отчёта при демонстрации нельзя.
Внешняя интеграция продукта — OpenAI Responses API в live; имя модели берётся из окружения. В mock обращения к OpenAI не нужны. Других подключённых источников нормативных данных и корпоративных систем нет.
10. Ограничения
- Поддерживается только
.docx: до 10 файлов суммарно, до 10 МБ каждый, минимум один документ в каждой версии. PDF и Excel отклоняются. - Mock рассчитан на сохранённые входы тестового комплекта. Для произвольных документов нужны live-режим и ключ.
- В демо остаются три кандидата на проверку, а конфликтов интересов не найдено. Это не доказывает отсутствие всех возможных проблем.
- Проверка пункта и цитаты подтверждает источник, но не гарантирует правильность смысловой интерпретации. Качество на других комплектах не измерялось.
- Нет сравнения с НПА, стандартами и другими операторами, авторизации и редактирования отчётов. После перезапуска API старые запуски автоматически не восстанавливаются.
- API ограничивает анализ 180 секундами. Служебная запись live-фикстур заняла 824 секунды с увеличенными таймаутами; полный live-прогон через интерфейс не подтверждён.
Дальнейшее развитие
Планируем развивать ОргДифф в систему поддержки комплексного организационно-функционального аудита: добавить PDF/Excel и реестр редакций; сверку положений подразделений с ДИ сотрудников; связь функций с процессами и матрицами ответственности; проверку предоставленных нормативных требований; сравнение вариантов целевой структуры; повторные проверки и учёт устранения замечаний.
Масштабирование предполагает пилот на одном подразделении, затем охват организации, настройку справочников и правил под её документы, разграничение доступа и интеграции с кадровыми системами и документооборотом. Это план будущих версий.
11. Ссылка на deployed-версию
Онлайн-адрес ОргДифф: odl.kz. При проверке 23.09.2026 в 17:48 (+05:00) сервер вернул HTTP 403; работоспособность публичного экземпляра не подтверждена.
Для воспроизводимой проверки на своей машине используйте локальный запуск из раздела 7.
12. Заранее подготовленные компоненты и AI-инструменты
Раскрытие подготовленных компонентов:
| Компонент | Где | Происхождение и назначение |
|---|---|---|
| Каркас FastAPI + Next.js + Docker Compose, CI, mock-режим LLM, служебные команды | backend/app/main.py, config.py, llm.py, первая версия frontend/app/layout.tsx, docker-compose.yml, scripts/, .github/ | Подготовлен командой 22.09.2026; импортирован коммитом d7aa4d3 23.09 в 13:58 (+05:00). Инфраструктура без готового решения кейса |
| Утилиты разбора Word и нормализации | lib_docx.py, lib_normalize.py | Внутренние утилиты команды, написаны ранее для других задач; происхождение и область — NOTICE.md |
| Тестовый комплект | data/case11/ | Документы организаторов кейса 11 |
| Спецификация, правила и промпты сессий | спецификация, AGENTS.md, prompts/, промпты LLM | Подготовлены и дорабатывались 23.09 для выбранного кейса; это раскрываемые материалы разработки |
В соревновательной части 23.09 разрабатывались обёртка разбора с контекстом, логика P2–P6, схемы ответов, API запусков, интерфейс отчёта и тесты. Итоговый проверенный сценарий и его ограничения приведены в разделах 8–10.
| AI-инструмент | Подтверждённые области работы | Основание |
|---|---|---|
| OpenAI Codex | Фикстуры S02, интерфейс S03/S06/S07/S12, схемы S13, заключение S14, интеграционные исправления, S17–S20 | Отчёты status/agents/ и трейлеры Co-authored-by: Codex в истории Git |
| Claude Code | Контракт S01, разбор S04, подразделения S05, pipeline/API S08, функции S09, сопоставление S10, дубли и конфликты S11, запись фикстур S15 | Инструмент указан в соответствующих отчётах status/agents/ |
Реестр «сессия → инструмент → файлы → проверка»: docs/ai-usage.md. Журнал сверен с итоговой интеграцией; атрибуция опирается на отчёты и историю коммитов. Происхождение записанных ответов и ручных тестовых данных отдельно раскрыто в разделе 9.
13. Команда
В рабочих материалах участники обозначены A и B:
| Участник | Ответственность |
|---|---|
| A | Архитектура и контракт, backend, документы, анализ и фикстуры |
| B | Frontend, интеграция, проверки, документация и демонстрация |
Владение файлами — матрица сессий; фактические изменения — история Git и отчёты.
Авторы коммитов
История коммитов
- 2026-09-23 17:49merge: s/final-integration Co-authored-by: Codex <[email скрыт]>awolwe
- 2026-09-23 17:49merge: reconcile release README with verified integrationawolwe
- 2026-09-23 17:44docs: add odl.kz online demo linkawolwe
- 2026-09-23 17:41merge: s/final-integration Co-authored-by: Codex <[email скрыт]>awolwe
- 2026-09-23 17:41status: checkin A 17:41awolwe
- 2026-09-23 17:37docs(S19): finalize disclosure and pin reproducible release tagawolwe
- 2026-09-23 17:37merge: s/final-integration Co-authored-by: Codex <[email скрыт]>awolwe
- 2026-09-23 17:36merge: sync final integration with documentation train Co-authored-by: Codex <[email скрыт]>awolwe
Все коммиты (154)
- 2026-09-23 17:36docs(S18,S20): publish verified demo screenshots and clean-clone resultsawolwe
- 2026-09-23 17:36docs: simplify jury startup and verify README against releaseawolwe
- 2026-09-23 17:33status: checkin B 17:33jandosom
- 2026-09-23 17:32merge: latest s/disclosure with verified final integration factsawolwe
- 2026-09-23 17:32docs: reconcile latest documentation with recorded fixture provenanceawolwe
- 2026-09-23 17:32docs: align release instructions and disclosure with verified resultsawolwe
- 2026-09-23 17:32merge: latest s/readme screenshots Co-authored-by: Codex <[email скрыт]>awolwe
- 2026-09-23 17:30merge: s/readmeawolwe
- 2026-09-23 17:29merge: s/imgawolwe
- 2026-09-23 17:28merge: s/disclosureawolwe
- 2026-09-23 17:28fix(S07): expand conclusion evidence on demand and link clause suffixesawolwe
- 2026-09-23 17:27docs(S18): link S20 screenshots and architecture in READMEawolwe
- 2026-09-23 17:26fix(S17): start service timeout after Docker buildawolwe
- 2026-09-23 17:25docs(S19): journal covers S15-S17 and codex/* branches accepted into mainawolwe
- 2026-09-23 17:23docs(S17): record final integrated checks and strict done requirementawolwe
- 2026-09-23 17:23fix(S07): keep long source lists expandable in report tablesawolwe
- 2026-09-23 17:19fix(S17): accept source case endings and require completed demoawolwe
- 2026-09-23 17:19merge: s/img Co-authored-by: Codex <[email скрыт]>awolwe
- 2026-09-23 17:19merge: s/readme Co-authored-by: Codex <[email скрыт]>awolwe
- 2026-09-23 17:19merge: s/disclosure Co-authored-by: Codex <[email скрыт]>awolwe
- 2026-09-23 17:19fix: compile Docker export proxy against backend serviceawolwe
- 2026-09-23 17:19merge: integrate recorded S15 fixture set with current mainawolwe
- 2026-09-23 17:16status: checkin A 17:16awolwe
- 2026-09-23 17:15docs(S17): record completed mock demo after S15jandosom
- 2026-09-23 17:14Merge remote-tracking branch 'origin/main' into codex/s17-mergejandosom
- 2026-09-23 17:13status: checkin B 17:13jandosom
- 2026-09-23 17:13merge: S15 test compatibilityjandosom
- 2026-09-23 17:12test(S15): align legacy assertions with recorded demo fixturesCodex
- 2026-09-23 17:11merge: codex/live-fixturesjandosom
- 2026-09-23 17:07Merge remote-tracking branch 'origin/main' into codex/live-fixturesjandosom
- 2026-09-23 17:07feat(S15): record fixtures for integrated pipelinejandosom
- 2026-09-23 17:07docs(S18): document reproducible setup and verified demo limitationsjandosom
- 2026-09-23 17:07merge: s/e2e PDF smoke contractjandosom
- 2026-09-23 17:06fix(S17): check PDF rejection against API contractjandosom
- 2026-09-23 17:04Merge remote-tracking branch 'origin/main' into codex/s17-mergejandosom
- 2026-09-23 17:00feat(S15): live fixtures for the case11 kitawolwe
- 2026-09-23 16:55docs(S20): capture mock screens and sourced architectureawolwe
- 2026-09-23 16:54merge: s/e2ejandosom
- 2026-09-23 16:54status: checkin B 16:54jandosom
- 2026-09-23 16:53status: checkin A 16:53awolwe
- 2026-09-23 16:45merge: codex/wave3-fixesjandosom
- 2026-09-23 16:42docs(S19): record AI usage and disclosureawolwe
- 2026-09-23 16:41fix(S17): apply PDF smoke cut and record resultjandosom
- 2026-09-23 16:40Merge remote-tracking branch 'origin/main' into codex/live-fixturesjandosom
- 2026-09-23 16:40feat(S15): record live demo analysis fixturesjandosom
- 2026-09-23 16:40docs(S17): record mock e2e verificationjandosom
- 2026-09-23 16:37Merge remote-tracking branch 'origin/main' into s/e2ejandosom
- 2026-09-23 16:36feat(S17): cover mock demo and deployment smokejandosom
- 2026-09-23 16:36status: checkin B 16:36jandosom
- 2026-09-23 16:32merge: sync checkin A 16:31jandosom
- 2026-09-23 16:32merge: s/conclusionjandosom
- 2026-09-23 16:31status: checkin A 16:31awolwe
- 2026-09-23 16:31merge: origin/s/conclusion into s/live-fixtures (S15 records with S14)awolwe
- 2026-09-23 16:24docs(S15): record wait for conclusion mergeawolwe
- 2026-09-23 16:23Merge remote-tracking branch 'origin/main' into s/live-fixtures Co-authored-by: Codex <[email скрыт]>awolwe
- 2026-09-23 16:22docs(S14): record green verification and publication blockersawolwe
- 2026-09-23 16:22feat(S14): build sourced conclusions and Markdown exportawolwe
- 2026-09-23 16:13status: checkin B 16:13jandosom
- 2026-09-23 16:10status: checkin A 16:10awolwe
- 2026-09-23 16:08Merge remote-tracking branch 'origin/main' into codex/wave3-fixesjandosom
- 2026-09-23 16:07merge: s/runs (Wave 3 fixes)jandosom
- 2026-09-23 16:07merge: s/ui-wirejandosom
- 2026-09-23 16:06merge: s/conflictsjandosom
- 2026-09-23 16:05prompts(S15): live fixtures session and a direct demo run scriptawolwe
- 2026-09-23 16:05merge: s/matchingjandosom
- 2026-09-23 16:04merge: s/functionsjandosom
- 2026-09-23 16:03docs: use integrator S16 guidancejandosom
- 2026-09-23 16:03Merge remote-tracking branch 'origin/main' into codex/wave3-fixesjandosom
- 2026-09-23 16:02merge: s/schemasjandosom
- 2026-09-23 16:01Merge remote-tracking branches 'origin/s/schemas', 'origin/s/functions', 'origin/s/matching' and 'origin/s/conflicts' into codex/live-fixturesjandosom
- 2026-09-23 15:59fix: preserve upload errors and partial conclusion reportjandosom
- 2026-09-23 15:57prompts: integrator notes for S14, S16, S17 before wave 4awolwe
- 2026-09-23 15:53status: checkin B 15:53jandosom
- 2026-09-23 15:52fix(S08): conclusion LLM failure keeps the report as partial; upload tests ready for S16awolwe
- 2026-09-23 15:49status: checkin A 15:49awolwe
- 2026-09-23 15:42fix(S11): own VerifyDuplicatesOut so contradictory answers reach the S11 checkawolwe
- 2026-09-23 15:41feat(S08): pass clause context, unit map and unit names to S10/S11awolwe
- 2026-09-23 15:33status: checkin B 15:33jandosom
- 2026-09-23 15:29Merge remote-tracking branch 'origin/main'jandosom
- 2026-09-23 15:28status: checkin A 15:28awolwe
- 2026-09-23 15:26docs(S11): status reportawolwe
- 2026-09-23 15:25merge: s/runsjandosom
- 2026-09-23 15:25feat(S11): verified duplicates and narrow conflict-of-interest rulesawolwe
- 2026-09-23 15:21docs(S10): status reportawolwe
- 2026-09-23 15:20feat(S10): hybrid candidates and verified one-to-many matchingawolwe
- 2026-09-23 15:20docs(S09): status reportawolwe
- 2026-09-23 15:19feat(S09): functions and constraints with inherited contextawolwe
- 2026-09-23 15:18merge: sync origin/main into s/runs (S04 parse, S05 units)awolwe
- 2026-09-23 15:18test(S01): contract smoke tests follow async runs of S08awolwe
- 2026-09-23 15:18fix(S08): verify source quote and clause_id on both sides; several documents per versionawolwe
- 2026-09-23 15:17docs(S12): record green build and limitsjandosom
- 2026-09-23 15:17feat(S12): connect progress and report to run APIjandosom
- 2026-09-23 15:15docs(S13): record green schema checks and contract limitsjandosom
- 2026-09-23 15:14feat(S13): add strict LLM output schemas and source validatorsjandosom
- 2026-09-23 15:10status: checkin B 15:10jandosom
- 2026-09-23 15:09status: checkin B 15:09jandosom
- 2026-09-23 15:08Merge remote-tracking branch 'origin/main'jandosom
- 2026-09-23 15:06merge: s/ui-reportjandosom
- 2026-09-23 15:06status: checkin A 15:06awolwe
- 2026-09-23 15:05merge: s/ui-uploadjandosom
- 2026-09-23 15:04docs(S07): record green build and report verificationjandosom
- 2026-09-23 15:03prompts: check-in session that walks this laptop's sessions and writes hourly check-insawolwe
- 2026-09-23 15:03feat(S07): add sourced fixture report with four tabsjandosom
- 2026-09-23 15:00merge: s/unitsjandosom
- 2026-09-23 15:00docs(S08): status report — ЗЕЛЕНО (Done-when), S01 stub tests need owner patchawolwe
- 2026-09-23 14:59Merge remote-tracking branch 'origin/main'jandosom
- 2026-09-23 14:59docs(S05): status reportawolwe
- 2026-09-23 14:58status: checkin A 14:58awolwe
- 2026-09-23 14:58feat(S08): run pipeline orchestrator and runs APIawolwe
- 2026-09-23 14:58test(S05): fixtures for S04 parser payloads, kit test on real parserawolwe
- 2026-09-23 14:57merge: s/parsejandosom
- 2026-09-23 14:57fix(S06): enforce total upload limit before submissionjandosom
- 2026-09-23 14:57feat(S05): unit changes before/afterawolwe
- 2026-09-23 14:57docs: add referenced ops docs (tasks, disclosure text, launch, regulations digest, runbook, mix); drop leftover i18n keyawolwe
- 2026-09-23 14:56docs(S04): status reportawolwe
- 2026-09-23 14:55feat(S04): docx parsing into clauses with contextawolwe
- 2026-09-23 14:55Merge remote-tracking branch 'origin/main' into s/parseawolwe
- 2026-09-23 14:54docs(S06): record successful production buildjandosom
- 2026-09-23 14:54feat(S06): add validated document upload and demo launchjandosom
- 2026-09-23 14:49merge: s/fixturesjandosom
- 2026-09-23 14:49merge: sync origin/main after fixtures revertjandosom
- 2026-09-23 14:47docs(S02): record audited contract integrationjandosom
- 2026-09-23 14:46feat(S02): align report fixtures with audited contractjandosom
- 2026-09-23 14:45Revert "merge: s/fixtures"jandosom
- 2026-09-23 14:43merge: sync origin/mainjandosom
- 2026-09-23 14:43merge: s/ui-shelljandosom
- 2026-09-23 14:43merge: s/fixturesjandosom
- 2026-09-23 14:43chore: ignore .claude/ session worktreesawolwe
- 2026-09-23 14:42merge: s/contractjandosom
- 2026-09-23 14:41feat(S03): label verification and unverified findingsjandosom
- 2026-09-23 14:41docs(S01): status report — ЗЕЛЕНО, contract branch s/contractawolwe
- 2026-09-23 14:40feat(S01): contract — schemas, types, runs router stubsawolwe
- 2026-09-23 14:39docs: empty-value rule between LLM schemas and domain modelsawolwe
- 2026-09-23 14:39docs: apply audit — clause context, candidates+verification, one-to-many matches, narrow conflict rules, honest run statuses, source checks, reference diff in testsawolwe
- 2026-09-23 14:29docs(S02): record green fixture validationjandosom
- 2026-09-23 14:28infra: mount test documents and runtime volume into backend, DATA_DIR/RUNTIME_DIR settings, Next.js API rewrites; data: deterministic clause diff 8→9 as referenceawolwe
- 2026-09-23 14:28feat(S02): add source-verified case11 report fixturesjandosom
- 2026-09-23 14:14docs(S03): record UI shell validationjandosom
- 2026-09-23 14:14feat(S03): add OrgDiff UI shell and report navigationjandosom
- 2026-09-23 14:07docs: session prompts S04-S20, file ownership matrix, launch sheet by wavesawolwe
- 2026-09-23 13:59chore: ruff excludes prebuilt utilitiesawolwe
- 2026-09-23 13:59style: ruff autofix after renameawolwe
- 2026-09-23 13:58chore: remove leftover references from the skeleton, runtime dir ignoreawolwe
- 2026-09-23 13:58docs: case 11 statement, spec, agent rules, session prompts S01-S03, organizers' test documentsawolwe
- 2026-09-23 13:58chore: import project skeleton prepared before the event (FastAPI + Next.js + compose, no domain logic); disclosed in README and backend/app/prebuilt/NOTICE.mdawolwe
- 2026-09-23 12:33chore: verify push from laptop Bjandosom
Структура репозитория (1712 файлов)
.editorconfig .env.example .github/workflows/ci.yml .gitignore AGENTS.md LICENSE Makefile README.md backend/.dockerignore backend/.python-version backend/Dockerfile backend/app/__init__.py backend/app/candidates.py backend/app/conclusion.py backend/app/config.py backend/app/duplicates.py backend/app/export_md.py backend/app/functions.py backend/app/llm.py backend/app/llm_schemas.py backend/app/main.py backend/app/matching.py backend/app/mocks/README.md backend/app/mocks/confirm_loss/0f1c93bfb79f7244.json backend/app/mocks/confirm_loss/113872c22b5ad439.json backend/app/mocks/confirm_loss/18cfdf0dc960d07e.json backend/app/mocks/confirm_loss/1d8fdc09877f5aaa.json backend/app/mocks/confirm_loss/1f80a4167484b722.json backend/app/mocks/confirm_loss/2375fb9f0b804c17.json backend/app/mocks/confirm_loss/25338e64d9465b07.json backend/app/mocks/confirm_loss/29c9ebc60f853455.json backend/app/mocks/confirm_loss/2fc666cb6478b17a.json backend/app/mocks/confirm_loss/35a7637f985ec267.json backend/app/mocks/confirm_loss/37532f63c569dc50.json backend/app/mocks/confirm_loss/3819cb6eee622fa1.json backend/app/mocks/confirm_loss/3add35bbb97c7bb3.json backend/app/mocks/confirm_loss/4adae2666084e676.json backend/app/mocks/confirm_loss/510e7d46fe66960c.json backend/app/mocks/confirm_loss/57dd6094a45ec94c.json backend/app/mocks/confirm_loss/606673c803265b0e.json backend/app/mocks/confirm_loss/61676fe170dc6a72.json backend/app/mocks/confirm_loss/6307b2ccd5964919.json backend/app/mocks/confirm_loss/652b9631ebc05cbd.json backend/app/mocks/confirm_loss/6d4d3d0ac99227dd.json backend/app/mocks/confirm_loss/71dbba4d4cc6fec0.json backend/app/mocks/confirm_loss/751b34d0afdfb3c8.json backend/app/mocks/confirm_loss/75819cd9a911189f.json backend/app/mocks/confirm_loss/759c9a14f0f90cf8.json backend/app/mocks/confirm_loss/780432afdff602d2.json backend/app/mocks/confirm_loss/7b8d8cb1d6d715e2.json backend/app/mocks/confirm_loss/7e735dad0ef26a0e.json backend/app/mocks/confirm_loss/833070c2e550a57b.json backend/app/mocks/confirm_loss/8899621d474e4f9c.json backend/app/mocks/confirm_loss/8a2e7b0affc21c88.json backend/app/mocks/confirm_loss/8fa5ba69b35060ac.json backend/app/mocks/confirm_loss/9a0330780949222a.json backend/app/mocks/confirm_loss/a44ee8b895bc728d.json backend/app/mocks/confirm_loss/a4dead2392c3f690.json backend/app/mocks/confirm_loss/a62c23154ded6aa6.json backend/app/mocks/confirm_loss/adefdff4a233c82e.json backend/app/mocks/confirm_loss/aee22cb5d6d4899f.json backend/app/mocks/confirm_loss/b3aa9d4e6dd15a06.json backend/app/mocks/confirm_loss/b880c8a086db5497.json backend/app/mocks/confirm_loss/ba377a3bc6c42495.json backend/app/mocks/confirm_loss/c0b77a50133955c5.json backend/app/mocks/confirm_loss/c44c5fe9e5c2ec6c.json backend/app/mocks/confirm_loss/d1834e20927fb60b.json backend/app/mocks/confirm_loss/d7e560bab1af4e42.json backend/app/mocks/confirm_loss/d87bac88a167d360.json backend/app/mocks/confirm_loss/e0144cdde26ebb5d.json backend/app/mocks/confirm_loss/ea48fb42f960e7e3.json backend/app/mocks/confirm_loss/ec11a0c9e4dbc42a.json backend/app/mocks/confirm_loss/f4260e0e7817d209.json backend/app/mocks/confirm_loss/fc2cdec8c6f9c1d0.json backend/app/mocks/confirm_loss/ffe6b6a07a4c084e.json backend/app/mocks/demo_report.json backend/app/mocks/embeddings/007a347bcfef68edbb5b4aeda7147b37c0f86aa1ddbafa9e5aca60abe6263acd.json backend/app/mocks/embeddings/0132866cc144f4e8e750b1586be70d55490611abff81da01d8d4d3229db205ed.json backend/app/mocks/embeddings/017d1c51000bacb023d27b914902bb7e20610363cd494074796a04c880089ea3.json backend/app/mocks/embeddings/02380beb2a7669315e23d344122e0ec335e282aed5f8f3759e87e957f9d162f5.json backend/app/mocks/embeddings/02f6592c8befd198a09a4928952261f3990ef80211ec930eac4f0ede7d59aa91.json backend/app/mocks/embeddings/032c0b0b63abe22fce06e05d703a7a4600773598c9b37c1418dba91b5dfc9e7e.json backend/app/mocks/embeddings/0359fce3d4951fbf5586adbfcab455bad6f89f31916fbdfe4c2ce4b2e5a4e63f.json backend/app/mocks/embeddings/03ea463c721991c309fa41883ad64ff15cd12a70cf12a868b72e97eb73a83bd7.json backend/app/mocks/embeddings/03f0457a0569bf5810746c1ce18da257ecbda12d147bcbfb35ea648b3109c4d9.json backend/app/mocks/embeddings/0461e1696ded3731d9babd569d72416c3510063c6fa75a899c7461e6e48e7cdc.json backend/app/mocks/embeddings/04ddc40bc279e7841ddddec3048cc2118125ec4c97c55e21e03b8cc956849b08.json backend/app/mocks/embeddings/04eb4ea474f4b10498d485767c25e9ea9f8f952fc46698cfe25b67f148d2af6c.json backend/app/mocks/embeddings/050e512527a96f14a3ea5f5c6d92f62260482e9924f111cef88df5425211c82c.json backend/app/mocks/embeddings/056b38bf6129fefb279f2b24e017ce5eee2b2b1c6dfa49cea70955307c43e01c.json backend/app/mocks/embeddings/0586c7f7e785278beba880dfffa75eea33fe4e1f544d84d32b87a95a3bb57bf6.json backend/app/mocks/embeddings/060d462c09e46e6d01df59f31cbf9deff8a8266108b7a5c02e93401941b8a0fb.json backend/app/mocks/embeddings/06732dd49b9038b92131c9f99b8772be05c17bb4e0c04707ed9a0f5e9f61de77.json backend/app/mocks/embeddings/074448a63e8c21ef266968342cde2cb49ba5740d0ab129271c8c07784392b6e1.json backend/app/mocks/embeddings/0744818bc2deb7ed73a0163e12432261d60abe1d0bce2deeb8da8ca61161bed1.json backend/app/mocks/embeddings/075b1dcf7775b1c28819f6a9f201bd858d2db78ecd7d206ec2847c6116671fe4.json backend/app/mocks/embeddings/075caff09c34b6440180160ac7fa53e05ebc75f38784fa0173b7d4e1a5f64b1a.json backend/app/mocks/embeddings/0990a32e02944984d86a8e2373ef32a19ec83e2845a718d796078793df7f33e8.json backend/app/mocks/embeddings/0a9aab0db166eaf123fadfb6d1bb12c26ac43784c93cbc5e5cd3785fb4fc1e97.json backend/app/mocks/embeddings/0b407b9d27fc2b41c44774d2ea10ca6b15b82e31c5ebceafde28745d32f3cea4.json backend/app/mocks/embeddings/0b9397ad411c8161c4178621e403ba7fa5fd6db6fe7188c4d29acaa2d9b12d3c.json backend/app/mocks/embeddings/0c1ab4aa988a22f1d779435d14fbba86112ca2496ce80b9031a1304627c3586f.json backend/app/mocks/embeddings/0ca456f8293130dfbfb840e7f5a3f9ed8bf1d6c79ff8546b3960ec1c02440c08.json backend/app/mocks/embeddings/0d2132cbaa7b286e94d1575339fa628b945d5835acf95544d5aef72bcb6f8a92.json backend/app/mocks/embeddings/0ea3a402f20937b3e0535abbdb30d86c96fb0e2978e8b33930a9b4aeca55abc5.json backend/app/mocks/embeddings/0f8942abd0a3c6de9541be25b9a589f57df26cdf60ac78de6f8cb7aa82dcdeee.json backend/app/mocks/embeddings/0fa3519342f57243d6ea72d8c2b6138664f5d5fa9f079c08a715dade0900ee9b.json backend/app/mocks/embeddings/1045a70dc9b82d88ed4c66f335d094e7eaf183b3e6f5d614dfae969a595efc4f.json backend/app/mocks/embeddings/128771e44b55652251bd00c1265ff832373aa970d3beafa6a638e85435ec4e14.json backend/app/mocks/embeddings/134d143e445057f81b143dc85d8941d32b005c95c4b1cc068eee625c9c228dbb.json backend/app/mocks/embeddings/13d2392c57d86a26fbd5541e347cb94e2187b9b640a0becd365d499fd6f4d770.json backend/app/mocks/embeddings/14eb0031b286f3726c67f786cd5202e15fdbabc2e1ab7c598e27699987a19a34.json backend/app/mocks/embeddings/14ee898684f83a0a83330d6239a138c987ce297d9d132b6b193e0cb6145b9901.json backend/app/mocks/embeddings/15f9163fe179e291a92700a91ad345167b9a87661b0f0c62d23267d1f851e6de.json backend/app/mocks/embeddings/1844ddc39bdbdc9b0c9a69c04dbad7d2e553a23e87aaf9c7c313bd1cc0ddeaf5.json backend/app/mocks/embeddings/18d449a2f6c0d968b4d9eb592da0f44c6734959c40cc1f56f48381ee3a123d43.json backend/app/mocks/embeddings/18e32966c35a648de1c342b40178ea53c40563117d3226664d032834195b5331.json backend/app/mocks/embeddings/1ab077bd549f141ebc8b61de7ae13ba36ec327e8b8baf4f8f4ad91374ef3d163.json backend/app/mocks/embeddings/1bf4795fc998a8852fb42b40f2fc6028ace0e4a10b0c741020cb77e6a3845229.json backend/app/mocks/embeddings/1c1ffb78d7f70bbf2ce08d3e601e3e72dbd9fd6521bd4ddc063110fa00211296.json backend/app/mocks/embeddings/1c6429e8c5ae5da631dfc3c0290fe2a5d12ff3dc854ed41a57ee3c4011eb5820.json backend/app/mocks/embeddings/1c9492329559d0ea2ac953756eeda0dc55147a3e510a8239a06c096335669b5d.json backend/app/mocks/embeddings/1caa62749d70824953be372f32a22a1f39001dfdb3458c6d20e3f3ec1be6ff24.json backend/app/mocks/embeddings/1ccbbd4aeb31edcea019cbd3caa948e74fb2d44c6b1fbe6d8b4bd3a648e4023a.json backend/app/mocks/embeddings/1d074372ef155b283f59db1e0630aaaaf989fa995632c964d26741997e4f15d0.json backend/app/mocks/embeddings/1e6c501a73deebd47b15a3fcaf2b6a84b0f0a08012c78b3c9f1acb602541f79d.json backend/app/mocks/embeddings/1eaf6b3269009d4f4d5dd813f6227c0ec9ca08052ce26ecf8824fb3b3636b48c.json backend/app/mocks/embeddings/2056e134e1ff0870f8d83aa221819c6465b555e9afaf20d410c3ab72218d1f76.json backend/app/mocks/embeddings/21a8cd889a4421f53c66e6f8c23a10560fbe9573fd6d6f739e0d2540a699f66c.json backend/app/mocks/embeddings/21dcf5f4c8598f385987628591962b8184299478ce3f07eb87cb2f01fcefe0a8.json backend/app/mocks/embeddings/2210a1c76744db9a40326a1e0cb310d64f8c6c282e185b934024bd70e72c2922.json backend/app/mocks/embeddings/22825c8a0c6e7c1677eae994ab0988d8c127626c99f11752a8be347e2c5a6dd6.json backend/app/mocks/embeddings/22b6e7e79ae8c550e14ec3f4d97387110688d91d391115c8ebb05848664ad885.json backend/app/mocks/embeddings/22da06c419a26fc3fa160e5e877e075f2b7e1c69086ebee44065cef1d433f01e.json backend/app/mocks/embeddings/238d32c76b4fedc78ef152e2d2ee8ea3d8f79a25533c98ac87ecb9f1cc1b30f9.json backend/app/mocks/embeddings/2421bb287c8c7b7c32efbc99f18be2bc36ef9021323a2efcf0e28f029dfa2538.json backend/app/mocks/embeddings/246e3ab684887b70d4e4ab0b0635a4f2c4bba174798d9c2e99783a649de9f281.json backend/app/mocks/embeddings/2631b248ffbca4ad4b07c30ad01961412d4f85458855b53751f87e47abb1eada.json backend/app/mocks/embeddings/26c992436fc60bd0615c226ead3bc78bdb609df2dab0f487f92ec32678078117.json backend/app/mocks/embeddings/27398a8e80eb90919eeae36c1c9a32bc0b7679db8e8c43855fd1008b181f2885.json backend/app/mocks/embeddings/2874336a351352f99107ad56d437aa704c376ad5525907d8b1e2eca8a10d5154.json backend/app/mocks/embeddings/288f51a3f24d9d2a809ee9e95e63ac60ea96a1ff4a52b50250dc1f1284fab5de.json backend/app/mocks/embeddings/289c51f4ad16de0d61484a4ba39b410710171b740a42f120ee76e1c9428cb2df.json backend/app/mocks/embeddings/2a0fabb83a7aecab574139d6c0fa03483e0d5d5840194b7c4fdcb08086457a3c.json backend/app/mocks/embeddings/2a9ce1799cf0c131a65acac9bf56f7f404939ac2b081441c28b588abe014c50b.json backend/app/mocks/embeddings/2b61475ffdc2f9a7e5d64c0a68482524f3bec5e22142cf80385973dfbe86909c.json backend/app/mocks/embeddings/2e2bb4030aea2798ec7439680ef19a55122368e54ebf41096097fcf6c5c050e9.json backend/app/mocks/embeddings/2f374df08c6e93628d802b24648108b40506d95152afdc25c0f406caa40a1603.json backend/app/mocks/embeddings/316cac5313f05484eb11b609f42f7887f8d46af1875742e5b31b86193207fba2.json backend/app/mocks/embeddings/3232f69076cbb2f7b82646d7ba5d149a5f1957cab4a31a862e04df2c65cb045e.json backend/app/mocks/embeddings/3292bdb7db643f81f9c9405e610242ba7c67d1379298d2f594b1fd8070bfee09.json backend/app/mocks/embeddings/32aa6b0481422a251c79af28c208281ebf1e22fdb09bc9958210c193955fb4bf.json backend/app/mocks/embeddings/32c1ca9e0db877f046ee89d2c22e2325cb229ec8fd325733809699cec5d4777a.json backend/app/mocks/embeddings/333951ed288741233e2820b2a6ffe1a0076448066ed55d0a76a4ae4b354b52e1.json backend/app/mocks/embeddings/3366aff9641d2e8ce3adbdb3c12a2746b36b10b3a560e0c931c4432e47283614.json backend/app/mocks/embeddings/337d65c523c402f16e6c9a4e9e067c86e25e74316cbee672a5fbde7712143120.json backend/app/mocks/embeddings/33f32340eb767693ef6e7548612eb617f9ba9883986f94a56b2c5aee262eef0e.json backend/app/mocks/embeddings/33fbb70a07bc5990761a5f7d3308d941ed0a6176ed0ec7c5a0a302eb7a060458.json backend/app/mocks/embeddings/3541c20cb936727fb9d94b0dbf7cb0f1ab2caa7b7256a41af113ed63273c5ec2.json backend/app/mocks/embeddings/35e5ae62933c13a5f77d4dc3dd149b4e8070478826e5bd38935f2d88faf6b186.json backend/app/mocks/embeddings/36318a07b7abc8d535be3252d3f38b74b6aa78493cd7ae920545a6c658257370.json backend/app/mocks/embeddings/369108d73476dd4bc98a59422b7c975b224fce8a96b826bc67e57ed6bccc7db4.json backend/app/mocks/embeddings/36c917ced2b74bd72d428916466d5582fd0fd162bb636ca7126e475b64bc0fd8.json backend/app/mocks/embeddings/3713738e1ed13410216b23827cbd82f12038595ed6bee67169af6979700185e7.json backend/app/mocks/embeddings/397c16f60f59b634811d585507da876fdcb8b3523aba3d783cbd1df095c525c4.json backend/app/mocks/embeddings/398b0e71db2f87ca5740bce0782a954264e1d47e47d7fb656486ffb10bb9ea87.json backend/app/mocks/embeddings/39d24797dd1c51ae42306e1b3d4f5e3818fc49919d02e4d96b23bbc01bae9837.json backend/app/mocks/embeddings/3a259a32913d136fc82fa29c4fa9561d7aeed90f9a23a639f5202727af4fcfde.json backend/app/mocks/embeddings/3a37c5ec59f932475836db5a96c890bf70492c3a95cf1eeed90564bf60435956.json backend/app/mocks/embeddings/3af5f6bcb5821e8b82e03835a94be7cf97530e924fa36d13d678412016ba0947.json backend/app/mocks/embeddings/3b23f3b92eaa66e8cd4eb65e1643494bea9fa167c73478a5c675e7ab74bbf0df.json backend/app/mocks/embeddings/3b4abc818c5bf386bdc4ced131111cd3e71c9e5c41070e4f312bd54dd481894e.json backend/app/mocks/embeddings/3ca1b34b34b0e3bd1d8322290df4f1c6d1bcc3579b29e789a551e808e2528da0.json backend/app/mocks/embeddings/3df9f6bb2d2f532a364b8ffb7a7491a4d2fd9efb1d5e20c1db7575842dc937e9.json backend/app/mocks/embeddings/3e1755f35fb26f2b24e719f4b7bc711b88cd371b6f09eadb6450c6f57d8ec2c5.json backend/app/mocks/embeddings/3e4d1a287b0bf40d580a3887c7f48b927f3281c60c62373fd66e58434c995c8a.json backend/app/mocks/embeddings/3e82aed02366a4e47fe7afc7137e5a8941266a466704bec377a7bf1212ce7ff8.json backend/app/mocks/embeddings/3e8ba073ba4d166f494e52e14cbcc4d4af1b5c71028fccf948bcb609286dc617.json backend/app/mocks/embeddings/3f65340a057adbd3c09bdb8dfe9e06c6ac20386afd72bbc8c01b8835df1b2d9e.json backend/app/mocks/embeddings/3fdac92ff51215e43650044e65702ec4fee3a591a07579a89f1906c3d50c5b0a.json backend/app/mocks/embeddings/3fe6ac0c3ad2f5acf2d52f16e5b21aee3f511dbab6fdbb422de6d2a92c5a9ba8.json backend/app/mocks/embeddings/406a5252a6857cf9c63a9c0f14d97a6eb82db92d5834cf6a9968244afbb1344b.json backend/app/mocks/embeddings/4120fb3dd65eb3f8bc7ea2832b582216888183b99d89c7af9700ba959fad5eac.json backend/app/mocks/embeddings/4123080006f9c196218b673b4a1127b5b4485e95de93829ac4eaaffd73dbb68e.json backend/app/mocks/embeddings/41bde2ab1f790c0f6617a6da2a4cebe728b183ad5ae6bcfae82c890f98154288.json backend/app/mocks/embeddings/425f9e519115ad02ca4915caf8777f0a58890340ae3ed5d0d412914b2a0eee03.json backend/app/mocks/embeddings/45351e64d3a65fb9317e3afbad42fce294f87dafdfda074def5bfe149885697a.json backend/app/mocks/embeddings/4565483fa52a29c35228b300b6784736ebbdfa3d32e6f33cc7618680cda06177.json backend/app/mocks/embeddings/4574b2cc1a4ebb49f14e0fdcfee6443698862e49d4266997512afdfb16c079ac.json backend/app/mocks/embeddings/45a6d0ed8c6b1f4d2e641a0b723f8b77042be0ad5dbb69a767331f0ba477ae29.json backend/app/mocks/embeddings/465b2c6e829b0825366d9ae4506ec5b0de266df60d369c519280bde98cc66335.json backend/app/mocks/embeddings/46ddd90860001e07912e411abb9948b7906144a58e903af21ac2f93c1219c9ad.json backend/app/mocks/embeddings/477f078f45759c636305b33325666fa72c8d32cba8488fde737462fdf6e52938.json backend/app/mocks/embeddings/47d202516d655f6cd630483d377ab97618c0ab8c726d9878d2ee8e9f91f9529f.json backend/app/mocks/embeddings/495d10eaef23896114909c471289ad254cd13ee0babed7706870a58783ca4480.json backend/app/mocks/embeddings/49e47a0b9c60b4a9d86ea88d3af331e2ae0da7c93606ec42aa3269eea2f5d7fc.json backend/app/mocks/embeddings/4a166ebf09d044b7a8288c00227477418e1e09c25f765c4656e224bc3aef1c91.json backend/app/mocks/embeddings/4afd1412620332e190b8a8a5e169ba9ef9faf510de81f84120a1e5274998504c.json backend/app/mocks/embeddings/4b0c5c1241a5c2edfbcdcc451e7ea4b5878effd6915603006dad2c2c2ba62c74.json backend/app/mocks/embeddings/4b785b8bce6326fde591b7c94355a305f051f155c9d1e53fb0326fe6412b6634.json backend/app/mocks/embeddings/4b8aba418da7f3599b7a78c48273827566a7267c233b8b25a6b72b7aa8a293b9.json backend/app/mocks/embeddings/4d334855ab003e01a60aa41b3d284b3bec1ab32225f88770b5372d1a32385514.json backend/app/mocks/embeddings/4dc531c1db93f3ec64ecb734211657962dafcbcb4726975f22c44ee233226a38.json backend/app/mocks/embeddings/4e34d00c1cfff764fd70cc3c30017b9f6a6a1bade0aab6b502ca55a9c3042e2f.json backend/app/mocks/embeddings/4e712f3363c91aefb9a7716d187847a8aaabf6515ac141ddc682419ba40959ce.json backend/app/mocks/embeddings/4f1808c4ffdf72b34a1703f958b4ccc42aac01cc435b38e3c5057c711fcaf6a2.json backend/app/mocks/embeddings/4f57756295117f50da5c47e164e7abbf6bacc78228628785fd904df98d2a8036.json backend/app/mocks/embeddings/4ff22c0b595cb092ca18d75272aa31e376fc08fc470a7a0304917a348a5dee7d.json backend/app/mocks/embeddings/4ffceda0c4755f1b62ae585c091d540b6844ccc7324fea777d889f4dc5ad82e5.json backend/app/mocks/embeddings/50677ec4339a71568f1a1d068b75297265da36681ea7a51664c11e3352c5a681.json backend/app/mocks/embeddings/5073b5a38199b72d91aee012dba00c999d1032c3ab219324d2fff969d5c792f0.json backend/app/mocks/embeddings/50c05a72d5a6bbb5c4985acb8c674b1e853f6131f9c3bf188e3a19ce05d012fc.json backend/app/mocks/embeddings/519d9cdb823fd736b4cccf382ac443de72901e24bde421d751e7ef7e0f465ebc.json backend/app/mocks/embeddings/54db4df7e9165e615b1206dff4f5d3e5d6f03a064525ae33f8e6c9a4f472dfb9.json backend/app/mocks/embeddings/55d9c3555df832ac0dad65f12232316755de2bfbb84c53b590354d6205ae3cb3.json backend/app/mocks/embeddings/5648557047f09c5be98b71d694ecf4d05e021968bfd5ce84becfde79800e7559.json backend/app/mocks/embeddings/58809200a47518ab73d4ee9bf41956fcbf72824a10b6d265a5c300695f6b3fdf.json backend/app/mocks/embeddings/58819c91d42cd6848f950fef2ca8717c23def66253873648afdd851ac4e0a927.json backend/app/mocks/embeddings/5958f485c085012701990c8fbde47d3e9a620fdf45f3e0586ffc36fc6d84d30d.json backend/app/mocks/embeddings/59ea0558b6c756e928daa51f1a3a00167203ed07109c12fa90b3d420dea989ef.json backend/app/mocks/embeddings/59ef741f812aba6987d22f3b2b17a7d5b999d11d6d665e53fe2a9057b75ac290.json backend/app/mocks/embeddings/5ae2716d8384b5bc41f123147663f80b9e80da745a8b519f9a24f0e396bfd791.json backend/app/mocks/embeddings/5b35af00ccadb8a8e62410b1e78462df7ebc23e4f93b3f887335d4ff31c497d5.json backend/app/mocks/embeddings/5ba14f5ceadbf044f887aaeb8a6ff17c5ad2e2786ebe7cf224aa373f71437974.json backend/app/mocks/embeddings/5d3c810e565e450729b6bd8e6a87604f84f6aed6253d060f7408758f9870a1c1.json backend/app/mocks/embeddings/5e2c6f67247f5bc9e63e5e5fa9e3c7c8b36071ef0a7b57b7b70303cc9340978a.json backend/app/mocks/embeddings/5fe4a24ec6b0b50f66609883c0a4637960aa1ca0cf33139c89f251e18abb5bf2.json backend/app/mocks/embeddings/600c21fd0c1bd58b4440a52fe815742b9d53a7a7cb832efba691833535002a29.json backend/app/mocks/embeddings/60e912ecf7c54804008029c33ef85de61d6d7f7252f8cc8d8713b217c00bb075.json backend/app/mocks/embeddings/612e01f10f5e5f867dd1016703df83a39a031a967a2f72c6097cb6dae8be6584.json backend/app/mocks/embeddings/6268306afd587d8fd1a5ec8630d18ffb9a77e2f1075635b6e09d6627556e1860.json backend/app/mocks/embeddings/62b801f5608849f1a5258dbb9df4b7c9c9cf3405e0a67dfc8aa21f637d6ac250.json backend/app/mocks/embeddings/62f1da7079aa84b5338fbb9f54c6b06dcdc5263b71f26d59d4c0e21671e6b69b.json backend/app/mocks/embeddings/637cf80aacb08696523c827b838a0323e968c4606ae5fb63658e1bb5a4f454b5.json backend/app/mocks/embeddings/638d79b6378ddfd39a5395d2d88ac3938575b90f1cc003b7dc3776bdaa163529.json backend/app/mocks/embeddings/643aa4660860bb4fe47ce02919bf2c771704baa54d8825c19ff39af90eefb813.json backend/app/mocks/embeddings/645aaa9cbc6d351c5c513e3d96beed675d639c7245f3ba60b9357d7bac965c8f.json backend/app/mocks/embeddings/64ba9912e4cb3ccf17f2971138181c93633c6f68bd7f9f08179cbbe8e7971b7a.json backend/app/mocks/embeddings/656f8996855e41a6906a668e0d14b2e937474e97f26b7af50a85ff054cf4fb2b.json backend/app/mocks/embeddings/65c42311ce3fd382b802323115e14954f14c04ef8060a43dfa24232c488ae5b2.json backend/app/mocks/embeddings/65d7b7424b040a7f68130a0e0fc88876526c40b177251cc2894a23cdd2bcadc0.json backend/app/mocks/embeddings/65d96c07d3ba458740768a8162aa033342972e5f989767346724dc80064acb2b.json backend/app/mocks/embeddings/66ca0e3c48679017a4141ba58ec9bc9a9574ab634045b0f9f27538d20b0fde12.json backend/app/mocks/embeddings/685615319435f2627dd520e1d407e63b3bbdf0cd1f6dd47aba613bbbdf47dba2.json backend/app/mocks/embeddings/6929d60f7213ce237b65a9d41f9a41430d4c24b694890e14eb2fb9cfe65e43c5.json backend/app/mocks/embeddings/6ac44658fb3830df2afa93e7420498f22ef765e2d3219a031692c13d21ebc989.json backend/app/mocks/embeddings/6ae42a6b1517e9c1b2eb9883ced0055cf2efd14af59b34a998c68d7d32439484.json backend/app/mocks/embeddings/6b13784106cb93ee80563cdbbd802b409b3988e56e11216ba6e85b19b924334a.json backend/app/mocks/embeddings/6b363a3073d8ee648a650690993ce10997f30d7be0282f177d7b25073566fe72.json backend/app/mocks/embeddings/6c0a0ffd364638b2bc5eff7654a0ce3172a15a13d4397b55b1487ceca43df0dc.json backend/app/mocks/embeddings/6d3adf25ac7c7ea48e7f1a22ef513aecb7966a7e91881c601819a4e9d2a2e585.json backend/app/mocks/embeddings/6e539445ab619883b1276702d46870144881d074e1432bea140e58051b294e54.json backend/app/mocks/embeddings/6eca018b3321eff82b7206e859b55eaafcb132a26df8579afec7cba14fb487d1.json backend/app/mocks/embeddings/6fc370ac0ff3130120d405298d52707948f9f1c02e3d3b093557435c9dd4b199.json backend/app/mocks/embeddings/6fd9a3d1302b1f8c8095000e8fd8751e47e0702e1dab007cc5019e92e7ff2c64.json backend/app/mocks/embeddings/70aeb5e325f82c6962d2b9ab89ae11e8884fcf69f39388b53a396bd743e9130e.json backend/app/mocks/embeddings/70b2e5d73361998aa869965abdcecb514545e3528d37db6dec64523f1f8fefa7.json backend/app/mocks/embeddings/70fe2dfe78edb739d4b56c54b585050a95e67a10faf636dc327a7d80becd27d7.json backend/app/mocks/embeddings/7197b51d75c95c6420a9069b22ac3b390b5c6d695223769ea011970715840cb0.json backend/app/mocks/embeddings/71dd964f7cc5941bdec739eb8ee781c162ac54fcc0d7ac2ecd9453f904c30dec.json backend/app/mocks/embeddings/7217494d70c5350038552a731deb1eb65534c8ebb27a8332d6ea3de560e76fc0.json backend/app/mocks/embeddings/7269bd2b382fd21ccb2a89af1543830fdcfeb460b8adc719a6baab4d617c5934.json backend/app/mocks/embeddings/72cf491e933ef04209294fe29957c05a3bb1e43146d00eb744dac91a1db04ca0.json backend/app/mocks/embeddings/732f44e489bb3e43a23baa236663f2a3a4c4100ed3828bd7dca01e40e63272bf.json backend/app/mocks/embeddings/73d0451036cb0247227fe022d43a803860804b09cf3e7e62c62b2bfde75475c0.json backend/app/mocks/embeddings/749a72fea761c323d3f3173e389a749f6d9cb7e0fe8ecc1ecb403a6f1fefb6f6.json backend/app/mocks/embeddings/74eec729a5b4f82c59f67844f29755d3edd2bd99c826fb30146e3fecb40cbd62.json backend/app/mocks/embeddings/7650c42dd7670e462e9b5b1c732a6cb0d119de0d6587723a923733d20700c41f.json backend/app/mocks/embeddings/765439879fa8ce8b14ed938202d06a3e6da37a2044fcd63dde3a85c5718bc8e7.json backend/app/mocks/embeddings/768561a2b8f0a40546767deb852bac186b1665c43d08d44630ef5eb42b7325fd.json backend/app/mocks/embeddings/771501e0df1ef0ee0518c8926669ed4bff6da925864c84807c8cec9744331f3a.json backend/app/mocks/embeddings/776884524ed7679a1ae430cbce5eedd4f03ebcf4c1fa729022f17b339c55ce64.json backend/app/mocks/embeddings/7814a81ceb0d1213a0b46f01cd90a90b99d387cbe53570254397b72420438ef1.json backend/app/mocks/embeddings/797637f1f2183655b97028659f466f92f8c4e954aa10ba68bd910cbbf30bf30b.json backend/app/mocks/embeddings/7a115f03f122a0f8c65294343ccc296aa010d6438fe36f0c237d41588f4a8f05.json backend/app/mocks/embeddings/7ab6c90313860dec4d20eff3c8831f337e6d015d0673a6f8355ca3ce04ba8f01.json backend/app/mocks/embeddings/7abccf6299c846e77617202ac38d9b4db51adfd4cfc1171f63cad54e470b8221.json backend/app/mocks/embeddings/7b46a94ae09b3fd58ac7199ff93496461e4d327da7b1ce57cf1c9713c430fa4f.json backend/app/mocks/embeddings/7bc512cf0609beefc4af181df3c74f5542fe86da9ff81a58d21aa86c88b5076d.json backend/app/mocks/embeddings/7c0fa2003a4f42cd351e2d75d3cc0167cdf5d1728fa84d689e6784d002f3ba87.json backend/app/mocks/embeddings/7c8c7db21038ddf4c95367606de62b2f625283b23cdbc287060095867a182fd7.json backend/app/mocks/embeddings/7ca79751026c500239541d296f6a68471e0d70c22eff129edc9e4ee983daa8b8.json backend/app/mocks/embeddings/7d2352d185b41d93dddcd871d1dbf5ded1afdebae42ae194bef1a4b2e4326991.json backend/app/mocks/embeddings/7d27b428073d3d1ea30fcaebf86882782201b99a96e6bef8dd78095f186d3387.json backend/app/mocks/embeddings/7df2116c09b4d768adb482edbb71f01eb20bb50a4f9bbf1ea066da95a01c4a83.json backend/app/mocks/embeddings/7edf9bb182de33fef80e044c403eb1dd51318efcc888a7e8493ed7f69f2326c5.json backend/app/mocks/embeddings/7fb30224d299a8099ee7e21e8faba3dedcc465387f8f204fb78f60418da1b88c.json backend/app/mocks/embeddings/7fd8e25594589e4c0b4b11d9f92d004c46a6c91e53d53c4efd5d734ba911eb02.json backend/app/mocks/embeddings/81a692ce782c7971865a1bc305df3e0b81e98aad10fd2887c9b0188ac6b8cc0c.json backend/app/mocks/embeddings/81f3f37a5de5df8f9510e147c97df6b33f283a92caf2b174c5f4ed19f4535dde.json backend/app/mocks/embeddings/8401abd4e9150a005caf8553b86f530831f05fbc7f46b9e4bc11a90fb0ee88a1.json backend/app/mocks/embeddings/841a26045e8505e876439c583a6b97fb4c53a25e4e84000845d91f345920fdcd.json backend/app/mocks/embeddings/846f266d54609aa803f88a1ba4f3f95298d64e1edc1fd82c845ee652df58ef6e.json backend/app/mocks/embeddings/84ed86143678af8f3fd082e915e73cce8eb27dc276347b2c77bf301b0dbdae05.json backend/app/mocks/embeddings/8501f0c57135cca140e3dcd66e8852b8b9dd69e5cf8ab96f43b8dbe01cb5825b.json backend/app/mocks/embeddings/853b5a0765f0def9eb808e58e6aff733e219f7d2ee67ce4418d3f5045e6d3008.json backend/app/mocks/embeddings/856bd6a13e825294c2f09c35169d6cec3479c844563da569857b531d5ba60c83.json backend/app/mocks/embeddings/8698fca8d0f3f03c076a2f5e090280d46dac8cbdb038b8c53fa3046a07164efc.json backend/app/mocks/embeddings/86b9b906a3e71c06f3dad33df66fabd029682fb866ecb13e307d8123eef08692.json backend/app/mocks/embeddings/86f97255d9c56f5561952f947009ec61923437e84949212c023139fe36983516.json backend/app/mocks/embeddings/870e386292e6e944e589eb39cd4effdf51d380ef2603a447e4e4bda715b3b27b.json backend/app/mocks/embeddings/876b9ac8c97e37cf63abe11c67a6a71e644bd04e2fc1c42fd8bd1ed3cfb9b116.json backend/app/mocks/embeddings/8778b49894daadf490cdeb082fe637709d6c74f898a62b9d020f7cd371fed147.json backend/app/mocks/embeddings/878ade5d9e68f5af9ebac68a6150bb6bca0bc84d3e519cb28617800c7a4fb2ac.json backend/app/mocks/embeddings/87a67437d82387a9c2961815a3582f637fcb1d71111fbad247af0984d198e78c.json backend/app/mocks/embeddings/88047ff2733f9c19d6dcfab9f7e489549a30dea3061949ea881452fadd9b21f3.json backend/app/mocks/embeddings/880ddcbecb5c5c7b0e9481254784f3e791da02361c2fc506fcb036e6a68bf6c9.json backend/app/mocks/embeddings/893211a6ef29abcdec29995610e81440a44dcfdcd7d69f056468b8d7c5bb78bf.json backend/app/mocks/embeddings/89fbc3ed00c153cebc6a5d13780fd71daa5ef785f07847e010a251112e390bcd.json backend/app/mocks/embeddings/8a697f0fb431a2503259467469ab9ba71c85d42e074be84f0204a34ccc1eaaa0.json backend/app/mocks/embeddings/8a9552e2daf53334018f7efb121bb0ad160cf3e536bb131e125942a48db6efae.json backend/app/mocks/embeddings/8b2a556f0cb6680ba2b51f1989c08d2ffcbeb2ece82e0cb42ee95daa7040402e.json backend/app/mocks/embeddings/8d0e83ee90c943d26bc46270b647dcb33337f32118617b3d39b461ba4e325310.json backend/app/mocks/embeddings/8db9700daf5190c00cad37d4bb30bb356de15a69897e23199217c35276d3c714.json backend/app/mocks/embeddings/8e3be64c58ebf79bbef68572d33c48dfb85daa646144316339abbc800052eab3.json backend/app/mocks/embeddings/8ea768f9e02f2985262f52e322bbe162a0eaf6fad0fa530aa8aa33e7c43cb3b1.json backend/app/mocks/embeddings/8ebb8907c9ce3d40c57ea497611f460eacf23786a9d808eb5333d8eb37eb1c6e.json backend/app/mocks/embeddings/8fd58991b648b86360c5e8946a678f36aac85d8792c739632b4200b257dada1f.json backend/app/mocks/embeddings/90ee60a468c530e20e49c2cba41ab46d5e580a9f99c841259f247b96aaddb3d3.json backend/app/mocks/embeddings/91452751626d86687520187644d78660946eaf98b64569841322056f020fe577.json backend/app/mocks/embeddings/9265987ca48eb190acdd8fb78f1006fdbf34c14cda82d269d1422897a8045c70.json backend/app/mocks/embeddings/926705d94cb083475809b7475d96ce2f30db1351a2aae8e2c55643d8cf2c759e.json backend/app/mocks/embeddings/931e8b50c3f81423e5646c7661ea408e7637fca74330932cebab731ee8b95f30.json backend/app/mocks/embeddings/933b4bc5279eb5820055e900b95d603fabbf8bbcbd5f8742196ffd45cdda4994.json backend/app/mocks/embeddings/944186adb89816b0b43a49e29c021b2763a08fe3b94ac314cc9678b841cbea3c.json backend/app/mocks/embeddings/952868c65b0a7058a6be355680020710c46bb09b65e6bd7f8efb7d0bf60cd7c2.json backend/app/mocks/embeddings/95b28e13dd330bc9cc78f61c3f54d1ab4cf1a118eb31b079a89342f1b68b575f.json backend/app/mocks/embeddings/95d3da0b356a3aacb9a44536cefc11de9eb74381a1ce1fc6b79fa044daf68ed1.json backend/app/mocks/embeddings/961c49d572ca17f8cf648a6fd371f668200e0daf1cc48ad28d1f592724e83487.json backend/app/mocks/embeddings/987c02cb474d9ba87fef5f873d2df04865851d3803a65b8f25b0a1795960da0c.json backend/app/mocks/embeddings/98a37713c9dd89a3c89a8ba3119fa052e5db605d0275fa30e6e4253d1ddad126.json backend/app/mocks/embeddings/98ef85d8193bf94009d7a16b102bf87286d930efa957896945503517c27cde4d.json backend/app/mocks/embeddings/9a5acad53408fb01b1996892f9528528678913443c28b29a10b239cb76d30d02.json backend/app/mocks/embeddings/9b044829933701a2e3d86d402a228a20a980b7e261eb971480e71cbb7d8ec6dd.json backend/app/mocks/embeddings/9b2188c32d11867771b815554491b884d81bfaa9ae51e1caaebebe47e1ae0cc0.json backend/app/mocks/embeddings/9b245a39519fa509a4db4b05f20c9b65db91de218072eff4a4a08017ec6a5493.json backend/app/mocks/embeddings/9b584ac592b8eefbb04b1237cfda23e3195a21e392dacb986fcde264716ff313.json backend/app/mocks/embeddings/9bb5165c266abd27d5cb7f580e86d8260ba7c66135952dad51a20f38f4874c9e.json backend/app/mocks/embeddings/9bfd4d96465ae1d4701d5bf910a514b068f24cfba6fe5b1e84a37141c04addfa.json backend/app/mocks/embeddings/9c9651bfec273e6a322008c1297f98e6f796631711f9ceb5c08d9cd582795b30.json backend/app/mocks/embeddings/9ce3cfa565a27d5b248fa02e1b4ac4d5935e15a2637b9f932df071f162f37193.json backend/app/mocks/embeddings/9d1d82976ff08b454a794efcc61b8b3655a9801c5e2f57bd30aae1a61c93023d.json backend/app/mocks/embeddings/9d1db227ac3d3751251229e8970e11dbb662b2a8b2296db036f5201b9c792c42.json backend/app/mocks/embeddings/9da8d9ae9db0e57d111c147445dfec8f1ad17b824c18c4760aa852a293a7fde0.json backend/app/mocks/embeddings/9dc105ad29adac69953ad6fa968decdb4ddc5580c08e1e2049df638e7f218d89.json backend/app/mocks/embeddings/9dd76e64cecde0f007874c69b04ea4811004ad2529008d256a926c1300e7b609.json backend/app/mocks/embeddings/9e1c885668a94179fb47f3d2353e188948d843a9d3f1fba07822b088dee5fa2e.json backend/app/mocks/embeddings/9ec481265ba641bf5a498a9ea12b509bb6979ed96952e0832b375ce7695adb91.json backend/app/mocks/embeddings/9ee370a58cba8694116ab81e5625ce6c2fab9877c62bba5e57a01d3346f467ed.json backend/app/mocks/embeddings/9fa94f8552c438c6f2b8bffcb3b0cb05657f511a4bffd1023f6207ecce743822.json backend/app/mocks/embeddings/README.md backend/app/mocks/embeddings/a0160221724bf5466da22e68bcaf945a0882be9058bd72ea3f1b1427878d5bf6.json backend/app/mocks/embeddings/a05a88bca10c0c9f2547cc67c68887c2f3005307fe7b71183c3d098662b105a7.json backend/app/mocks/embeddings/a07e66d46c19bd58f1f25a088fa39ffc637199ccb769821d24c323ea2cb27738.json backend/app/mocks/embeddings/a0be5a2d9f0b71c3dd4240f29177f96d2bc8cd88fb8f1c55f2c9b311dccf5e61.json backend/app/mocks/embeddings/a0dc06052b079b0e6828f632412f7f3bf8b949d4c23af407814f628a53fc3430.json backend/app/mocks/embeddings/a1334ea86bd5e08633966ab0b6e5a81182945955c377a5eb0f7041cbfdd540a0.json backend/app/mocks/embeddings/a1914e5dca9f5fe54bac11dbe51e96ece4a8ae85a01880bf88ccdf3cbf3cd6ed.json backend/app/mocks/embeddings/a1f84978abd01fcb4ca691dc9b141f38bc28376e846d4cff3646290e06bbee64.json backend/app/mocks/embeddings/a22b719a364209595e2983e9f2844ec0572c41707c341887f1956c822a1dc675.json backend/app/mocks/embeddings/a2d987deb99c9f9d3787bd21dcf21f0694f6458c98b940eb27ef19f140f84db2.json backend/app/mocks/embeddings/a2f8bccd518e8493cb96cc950fa187474781cdbf56ac99f02d5f389ab959153a.json backend/app/mocks/embeddings/a31cf75e0387a3be7c580b35e7264c263bcd80a609dc44bbf6696852c5a70915.json backend/app/mocks/embeddings/a405ed90f5f0d63ca704bfc19178d9e8ee327c62f477e23d0c89a1cb0c23634f.json backend/app/mocks/embeddings/a4c7ff8c1ef0e8baac3d30a6fac8f9bafbbf91f192ac52a8b9a1933188c7f9e9.json backend/app/mocks/embeddings/a4d6b3a63b4cbb75e845a7a277566bf726194642deab6e4e889efe7cfad66c4d.json backend/app/mocks/embeddings/a56ada105bb77ea86daa73abaeed141caa326d69551c4c22e0c01d6a59b2b1f7.json backend/app/mocks/embeddings/a72d9a8e9c9de4782aa70ecfd54d58e76ef34b5b0c2e289ed11388db49e4e218.json backend/app/mocks/embeddings/a7ed4d00d8966bb0307fdff5133ea68586c2cef7dac299d16fb6f83ff452f76b.json backend/app/mocks/embeddings/a8ce5397d04e7167bd577102acb152eb609069b85bd624bebe4ac7b31d609ca0.json backend/app/mocks/embeddings/a9f69da5806b113dd2e4f31c8536340d911548c43eaad02eb50dd119a9c75664.json backend/app/mocks/embeddings/aa1eae4184593732d1279140df9cfbc52fbcbc050a28ec11944f908a5beaefd3.json backend/app/mocks/embeddings/aa6b0071872f5bbae50b0b040edef59c309e6730fc0b589ab9b4519ec25dcf9a.json backend/app/mocks/embeddings/aa9fbe35c8077540fb6077ea9e0f87ecc98eda6e195942fd00aa79af22a11d11.json backend/app/mocks/embeddings/aaa2220fc796eb9ff65acf776971a0b19dd22a8349a8ae44268cdd02b5295c0a.json backend/app/mocks/embeddings/aaa95a47b4ed13b736ed79a7ca305d0ab78a4155406d7db75ba8c19ffa8b1d69.json backend/app/mocks/embeddings/aaf9049be939ac17fd34d3e653ab0e842d3cf7d606ffde7aa9990a067a699d40.json backend/app/mocks/embeddings/ab62265c5f25b6cb8d85041b88c1123676c3eace968c0bb8fc74298ed28acc09.json backend/app/mocks/embeddings/ac48e34a2a19a92db2cdd64d1238b53bd6e70da72bcb05bafeb5872ca1b25229.json backend/app/mocks/embeddings/acdac2d5844db52ef774a19285f6ab69269d7d1ff56c2e60942b8c64aaf9e3bd.json backend/app/mocks/embeddings/ad95d2f3ddc5d85e0af2844be692db46f5a4d00f48f73433d53e9ed19acf49f5.json backend/app/mocks/embeddings/ae023c3e7956e4261935dd05ba66c4a0b6b96e9e5d0e5778c8e85b3d5f17ea74.json backend/app/mocks/embeddings/ae3425d67361afdbc63f9fd50ccf086bd8c5e535d52dd3e2df821427e2dc856a.json backend/app/mocks/embeddings/ae39e240a201402cbbb614210de0a5f15d52774f4946ad440dc888d69cf9f2aa.json backend/app/mocks/embeddings/ae6fb88d093a9b375c0489a012df69b7ed2aa182f808df2eaf86ecf056ab4410.json backend/app/mocks/embeddings/aebd52947b21699d53cc1190ff7c9fac5b0d05fee88f2be598d836fd73c0c7d5.json backend/app/mocks/embeddings/af09dd36ec74f33329c3706d152d41e47ec32a320bd379ab78cca6d5b0523b5e.json backend/app/mocks/embeddings/afb7e4b214250bf925b8366c5ff47089b34df5fcb5a71f3851140d2f43a9dd23.json backend/app/mocks/embeddings/afd0b4ab1794d30c05f601c7d783b1a24402627948963cf2cac8cdb99c025e51.json backend/app/mocks/embeddings/b0412d8200ead39fd992de9edd2d8925f5acfd9dcf4cae8247a7cad5f9322b0a.json backend/app/mocks/embeddings/b0567cfe95a40971c983db99e7ccde4e532bb5f5c2aea7223570cc260086f7a5.json backend/app/mocks/embeddings/b0de0b65263bb95eb45cbe998e2e37390cff10fe6a5e6b57e0f3a41ea3e30871.json backend/app/mocks/embeddings/b177574225df5b89c6e72c9a2e5b9bc1036136f9add50f56a7257ab6a32710ea.json backend/app/mocks/embeddings/b1a807c5371d8ff3ae7ee30b2de2ede2d6ea08740ddfd250d1fa5cfcec65b7b0.json backend/app/mocks/embeddings/b1de750ab605f73ac7f913ad5a0f87cc81f80c35434ebf05972faa09b3627b9b.json backend/app/mocks/embeddings/b1e8ce2815a10c0c75e3305e08cb1831ef9f5e745adbd7b40d9637aff958a38b.json backend/app/mocks/embeddings/b30441fbff7804a27c3d49ea8da77c22ece786af1e4e8eba02daa6023013c4a4.json backend/app/mocks/embeddings/b30f97820acf69476becaedcd6b7c4489858272d744f0b86379a9aa120c6ee92.json backend/app/mocks/embeddings/b3aa271c320ecbffdd3d1246bed150977809f1906e2604bc174e07d551410471.json backend/app/mocks/embeddings/b3e60815f9425c76101cf6653ff3df916bf73c58bdc8cdd0fcddd0cfd900edc9.json backend/app/mocks/embeddings/b3fd7acb541336a5a5c82641f6cb8c772fdec31c6aea38ce6a601eb23b881ed8.json backend/app/mocks/embeddings/b46c35bc89ba4d03a43975e7e8c791293749302e36f883d465cf641cf35f55f4.json backend/app/mocks/embeddings/b4e4ebc099029534d5281aa59baeae4580aa55d934f3d3f1044e50babe2a7911.json backend/app/mocks/embeddings/b56061a1cb4a816a31a61999ddf26b954440add4f425c2573c9836cb055586ac.json backend/app/mocks/embeddings/b5a438fb02addbbdff1e7d11adc6492d739535914a30c0409233bcef0e277133.json backend/app/mocks/embeddings/b5d9a49532dcb4ace33fe9b7e6d82793b8eeb0c3fbb395f67f368fcba9e08718.json backend/app/mocks/embeddings/b6294210c03df16c787534b7dff9416e8e032af50776fdfb0b0413a097bb2c8d.json backend/app/mocks/embeddings/b66b255191c83a3f128deecfff541745434dfcc2c2e9f5a119b0ef11a88a01c8.json backend/app/mocks/embeddings/b7646fbd8752859ff5c03d481984dac16a7436b0ff5d2083eb63262bca7b562c.json backend/app/mocks/embeddings/b821b86e19a3895688792caaad32fe4fae83f2cc527952cfcb5d2ff8949ceb7e.json backend/app/mocks/embeddings/b8721e7c4435071fcacd95daf07b177559065b4ef80932632382f242790393f7.json backend/app/mocks/embeddings/b8c0a4869591a65e682d55c9e4deca36ef797f7b67d719f8d43e514e1fe78975.json backend/app/mocks/embeddings/b948bcb11df72f83da593408c6e0fd3b95648ffb0aae979f100d803d8b67099f.json backend/app/mocks/embeddings/b9beb1221a3687a0de5a3a9885c2cf79a64bb0511850cc8f17c2ec133807f26a.json backend/app/mocks/embeddings/b9c6849353699e8a2be67ae43098f52581c2e29d762f47e0df44923fd47174ce.json backend/app/mocks/embeddings/b9fefe767edb2baa532503685985abbc93328a95b1a894592d7bb08b101ba367.json backend/app/mocks/embeddings/ba661076e3496f01d5acab170468330475fcec76bc7cb332c742d16cca854801.json backend/app/mocks/embeddings/bada5d0415096269784050548e2132bb06901c43e8bea9f1b31391af0e8e7538.json backend/app/mocks/embeddings/bbcef5379aff856eedeb5b2fbffea283fdd5fb0d4f136c6bfeaa4f25d6ffdaf2.json backend/app/mocks/embeddings/bca2c9094080b643acdde68ff1fc9a13887697d14ebe8da30e30c3698cdd5817.json backend/app/mocks/embeddings/bd033e70df69ade5caa0e6967e37611b4f7881feb8e77bae7f8b1cf136170483.json backend/app/mocks/embeddings/be7f32539a56d4bad332cc4469a0de5499e60e9739dc1a5e2086f8ea1ad6e39c.json backend/app/mocks/embeddings/beabd60c95b4d159ee352fe2ec6e72f9c36a32da3e90ad4776f298332bf92b84.json backend/app/mocks/embeddings/bed705c2d5573c43154919a9eefb9e0a3729b5bff1aba840728ca38af3fced7c.json backend/app/mocks/embeddings/bf06cd2c39820b00c20aeb621ca45bac8896adb28c486dfa3aa9c4777012ef92.json backend/app/mocks/embeddings/c009f927c1a305579a4e5b05302c0aaf40546892a6013dbb67e92a500ba3c27a.json backend/app/mocks/embeddings/c138f3ce717c7922f730843d26dae6200bb9c916bcd1589e1b18c449030af139.json backend/app/mocks/embeddings/c13978126e71bc4c187c133d598272f098d8a73c49d66b936889d07216a52d1d.json backend/app/mocks/embeddings/c174a5ca8571d528fafcb6a14295389ba5e3d52ac5a90202c7b80c346eb06464.json backend/app/mocks/embeddings/c29aeffc50f1ae9c98300aa532595fc28b3acfd31b5a083e1e03b949a45834ef.json backend/app/mocks/embeddings/c30b1ea66694851ce1538ae88236d62ae3164d1b752867c6b7620134643bfbd3.json backend/app/mocks/embeddings/c392d9343a67b317fe2eaabe07651891138fa1dec9c166edcbca16e73851978b.json backend/app/mocks/embeddings/c3d3cac5aa36c936c66e1f1d5a095b8a01d0e6c0620133e1b5e26a27ab482713.json backend/app/mocks/embeddings/c3eee4f50fca3514760272c5079e8e2ee14ccf31a9024b64ce61c0182dd99541.json backend/app/mocks/embeddings/c58c5815371e8929dfef1d687232c73ccd87fb3fe0f2e50ae03357a93c3cc477.json backend/app/mocks/embeddings/c65b6e1214cc1ac6d91ddd1928b9b1968c045aadd3e70384864f305a5d66efea.json backend/app/mocks/embeddings/c66297a10494a93635c9d36d8fa9f2674fcdfe3b35be48c62d6cd7abffe9d059.json backend/app/mocks/embeddings/c8483b0da6fcb26e5a08a59231ab07ed732160e6ff7c0a486bc7d33101f05fb0.json backend/app/mocks/embeddings/c88ed97e23f255f6d4b6c2157269bfd600606fd19aeb4e622bed0a485a991148.json backend/app/mocks/embeddings/c8ff3bb7900cf3709c4af33f6a4fa0cb59860d52dbf1a725afc64ceae34a0f17.json backend/app/mocks/embeddings/c92a72b42ff98fa5ed1a5b485364ca83ba879aa02c0233d72415348649fb1bc3.json backend/app/mocks/embeddings/c9fb914ecebb548db76ec77437858278a2e770568da3dfeba08e0443dc1e68b4.json backend/app/mocks/embeddings/ca02050f6e0f696b56342eecfa3f7404e5a76ed434c2f7ff140bea85049b5001.json backend/app/mocks/embeddings/ca17a6849dae2c322cc081e5b2e1b4b2bd1dd11032e884a467ece7a5d915a248.json backend/app/mocks/embeddings/ca52a9a2c3a007c9bfd4f3f8fb895847f73970cf5845d05607ec902091bfcb19.json backend/app/mocks/embeddings/cc712313fa2e9ee014ac44a28414c122acd3639df44ef2a0341231449764be85.json backend/app/mocks/embeddings/ccdbc8596d49ed63f49b356d257172574c6ee0b272125138f72275ec5ca0a1a8.json backend/app/mocks/embeddings/ce22ea12963b46587d1af322f1d423beba6a10f3b19890ed4122f68381f7cef9.json backend/app/mocks/embeddings/ce83b8e5d351659427c893498ab952692f89082649951c90589ca64d21b62098.json backend/app/mocks/embeddings/ce9d7405e33c7f1e14fefdc36524e43bc835ba3383941a9e8e20a9991dc9f3a9.json backend/app/mocks/embeddings/cea769944494594a614e55a269ec8ba1091d48dc55311e88a118085b731660e7.json backend/app/mocks/embeddings/ceea46503b48783bde29b2c8e1b5078ba8d376ecaa5f06a0154c18951d0f7825.json backend/app/mocks/embeddings/cf38f1bd69169c8a3b08dac34c28ecdf31fd1223e5d8e474cb72088a9b454dab.json backend/app/mocks/embeddings/cf40dbdf6ae3fcfe5111a3a9eda6ebbd84fe93f55e003b543cf829fbd9452c09.json backend/app/mocks/embeddings/cf6b301a3949f577ac5e37db20be9e16bd39574514e46842c03a274615073ec3.json backend/app/mocks/embeddings/cfc4d104fcc77243298bb639ca5ad98342e3a8a3e577e7449f5cb244b01b3b47.json backend/app/mocks/embeddings/d0c97583c5367079d3dcbed17e49b4caffda24b1c945964baccd14ba163b3b47.json backend/app/mocks/embeddings/d1e9f119ec7e2f5c27eb5daebd8ce5dad2148008aace6ba9b1a4cd98252a6149.json backend/app/mocks/embeddings/d1eaf1e490fd8e2089263da2728db3baa166918634db4b3ad352f4e5a4dbdb3c.json backend/app/mocks/embeddings/d2548353023af4b076ba877b8344d14d4bac57844ca2ebac93136de7d69c7ce1.json backend/app/mocks/embeddings/d3702a386c4a1d11b5634c503ad6b58069fbd964b7090a440df43d668e14807f.json backend/app/mocks/embeddings/d3fc6cb64d8cf88715c75f884ecf6570d45be1d734fdb23afe03639bb21c09a3.json backend/app/mocks/embeddings/d40c0bcaf52fd8116d6e2a5a3bccbb650f01d36ef20952d3918a0dc3cbf03f2e.json backend/app/mocks/embeddings/d4f1959e032b8e10b05b0700410a91673533d4f5e7077f3cae3e9f44ce6136f8.json backend/app/mocks/embeddings/d55fcef52f3d7ef50adfaf9185744c2355d180e3649d3cfd52d416e63edda171.json backend/app/mocks/embeddings/d59a30794e888b574b45ce60cf8fd235bc1d554bace12c9104c532b689640b07.json backend/app/mocks/embeddings/d5dae9123a94de9e6a1d418c08b5cd4b4cae1a171bb7f0ffa6b04aefc3a7c936.json backend/app/mocks/embeddings/d6917122ff9aed63e7ba2f70246417bd48ceeedfe2a07b99ceb6223c2217a9c7.json backend/app/mocks/embeddings/d6ed510ac242e52806af943009d61f1a7f51693458a778c0367489ff31836d2e.json backend/app/mocks/embeddings/d7005bd5b08587149f6ece9142b4badd99c2247a4d5d68977a63f87140593484.json backend/app/mocks/embeddings/d7814454b142e8165fd6069a0f06cd3df0e86fd85b6db868f209641911cd30e7.json backend/app/mocks/embeddings/d8acbb2279a4d9f07868abf0739d81d2c8f0d1e49697189b4cf26d2e0d30d15d.json backend/app/mocks/embeddings/d8da242e6904b54a436c3b2debfcd883cc65aa83a7928615f350e56994017a53.json backend/app/mocks/embeddings/d8dcab90669e2aa14c0942529ad22c08338a664b9e2b9fd7edc51be38f9c526d.json backend/app/mocks/embeddings/d95d107563823bccee7381b5bf1a783f89b9e2c78f4ba9a21ff3c92e969b7e8a.json backend/app/mocks/embeddings/da7e389e9ef4f08e47283d0976d4f53e7c57d69c417805ef9a8106ae295e6a41.json backend/app/mocks/embeddings/db8bce85dfcccc988bc137c4012b9bd4b769abfdba87a21faab561bd693c39e1.json backend/app/mocks/embeddings/db9ca8de47362e894d90519a55217a16c2a384c917d6e2eeb0af3915483c85dc.json backend/app/mocks/embeddings/dc06949280611725774838c732b190f45547baec921826f828e0b5470eba37ca.json backend/app/mocks/embeddings/dc2e9d437ec765e6cd2dcb006c0b984225e303b2af0415e2dad7a4e6455f55f5.json backend/app/mocks/embeddings/dcdc9707c9b818af2721248135d063e7ff1a3e80fb59d1df767b3059e118a569.json backend/app/mocks/embeddings/dd5e266701070f36b52390999bc8359563da310746568921d7794c62d13793bf.json backend/app/mocks/embeddings/ddbcf38724237aeec4e00f5f4e7bc220cc41c332ac80f5327f4d214499cb9c6a.json backend/app/mocks/embeddings/de0aa4781f53efd8530fe0a0b3b298feb63eb08dc7b628ce94e4e607bb40996a.json backend/app/mocks/embeddings/de30a06214fc654e4dc49085b617687adb2072ef581442a1983a99a132652e3d.json backend/app/mocks/embeddings/de34851e33e0e8d4f3dc0a5af5abb30f61f48ecdcc9590685fb658b64d876345.json backend/app/mocks/embeddings/dea8582513fb5eab450a60263ce7f5bdea852255b388dc4e0a638a280a05b8ee.json backend/app/mocks/embeddings/df11176f24412585da6ef444d0b9980777a791636a9acada5c8337a343573278.json backend/app/mocks/embeddings/e037bd753b18ee6a61574a8de5a91ef6d1e6391732d0add26c8d58f45c6515ca.json backend/app/mocks/embeddings/e0be1a1dfc7706dcbd88d8bb1bade39e6e2af2f76e26e73ceb8c7f088b2ab7d8.json backend/app/mocks/embeddings/e0e2091affcfe0973093cca70e4f3e3b8f078f31ed2740b34f55460c55bc7ddc.json backend/app/mocks/embeddings/e13d4d6151b9f05f559ca83d720db1a5890c24c4a8e92112c92958d58eac8737.json backend/app/mocks/embeddings/e2ca48ca7e4242b3b91e0c3e903a8215a3dc31432d857aad97d198246b89dfde.json backend/app/mocks/embeddings/e34102851c2e77cd80fdacf8a844d5f12b90a0931af71976f90bbc845f138bcc.json backend/app/mocks/embeddings/e464cfc55d919562348420fef6656e7df92bbc48bbaf3117b9cdf861ecf97dac.json backend/app/mocks/embeddings/e53bdf8c778e9ca5fd0b269dec22751d5e3bdab812e08167baa00f5e63127e10.json backend/app/mocks/embeddings/e54759720b45c511591772866bf67fd3d0bbfb4eceb090665d1e594c55f303de.json backend/app/mocks/embeddings/e75d67334fc8dd7d449b3cf209bb7ef75ee3ebb39e4c374003b455466d77b558.json backend/app/mocks/embeddings/e809180e306c14ed8794ad6964d6a6a3dcf482afd8431e396baa0ca2bea615f5.json backend/app/mocks/embeddings/e81c206de83c92efc127457f7988e2bf94acb72717582d34b0d39b8f7a18d04a.json backend/app/mocks/embeddings/e847985fe451ba6507a5718cf9f3f3296a8bd2242139e71196f2ba59d20480a8.json backend/app/mocks/embeddings/e86bfe3528da93862cc57aad12d330a89e3d6e2b35b55620a03fef1f161b39f5.json backend/app/mocks/embeddings/e8cf04306a3e6d826b6923ef1a36c1a89fa7a48fe1b2ae721ffd70d809b46611.json backend/app/mocks/embeddings/e9493f2fa9f6b5b3d4ea5f9ff5b170893a9d24e75478b4ceadd350a78651d41d.json backend/app/mocks/embeddings/e9e5516e37722e27d0b90d753609972c51a0c41675fc858334a8d46ce1f57368.json backend/app/mocks/embeddings/ea85ed2efd0093426432855e6cd545e974bcb9a9104eddb4a8083596e79cea84.json backend/app/mocks/embeddings/eae7c678270f67aa54ad5949dac777974afc83f0f14f3110a82f5a469c236fbf.json backend/app/mocks/embeddings/eb3535ee759d6cc1687b40a35193be2e41181bfc4451a777be80a4f716859684.json backend/app/mocks/embeddings/ebbd70a7831ce6fe008798f1d81e9245928d48994f2ac1733569355f22b68773.json backend/app/mocks/embeddings/ec31f5590bac7ed2c8c9ef695c0f49306d6b221300ae974d614d156d37901f72.json backend/app/mocks/embeddings/ecea75ea19906d583404e96cbd2fa252973cb41e30c7cff372924e7798aedc2b.json backend/app/mocks/embeddings/ed442f3866c6b2f2e35e2fd5d310ec1c55e8bd5401a29637561cd090d989b7df.json backend/app/mocks/embeddings/edbaf31663dae694fd537d890b2d272e0eec20ad368d47bfa16ef2699002a12d.json backend/app/mocks/embeddings/ee66f22054b55d94250f66a46c5917fff65d8481e517761e2d7388c4ed8ecedb.json backend/app/mocks/embeddings/ef155a496afd976f245de5db2d681e15bb68c66cf7e0454580c3bb2f55667054.json backend/app/mocks/embeddings/ef1ddbf56ea181f6827cd0758cf5dd2729386f093506e8b9038da231f835f4a7.json backend/app/mocks/embeddings/ef7846366000aa25dcce15a5261f81f0b2a36b5f7e936312b1e09c7953ae48c7.json backend/app/mocks/embeddings/efd9d4d376c8ba9ebf7eb36dba58cfd9b430ef1582d9c3d81a0eca3bed2900b4.json backend/app/mocks/embeddings/f04918adb0497045ce0484af996ce4ab105e2ec3787593fba5913c538efdec26.json backend/app/mocks/embeddings/f14cf461c93cd65fbee1da5dc821d2d397f751a410e68c2577c17388151cdf8a.json backend/app/mocks/embeddings/f162a35ec7f648423686f5a80a038f60d33ebc037acd7f23361b0efb7da80c63.json backend/app/mocks/embeddings/f2d052c5396d73773089206e3785eea7f92f4af36368ef6121ffd7e8c1e79690.json backend/app/mocks/embeddings/f33aca896bda5fdeda72db0141de41bff8e22ade1ac12e60b04076d90715208c.json backend/app/mocks/embeddings/f379b40e96f33135108ad65b3add693b94c4d536bcc0cbfb1f8cb88dc61867e4.json backend/app/mocks/embeddings/f39a066950b1c69f1e7fae0c603dd7057dd51c749bdb7313032fd61455fc273b.json backend/app/mocks/embeddings/f3c7b5f76edd7ee6326cccb5f9ecb58bccd412353d82e081bb7371f71b0bd600.json backend/app/mocks/embeddings/f3e36edcfc48eeec34905ef78109461cfa920cf10f560bc6165e60e70bbb4b27.json backend/app/mocks/embeddings/f52e95500cdace4fd0b0b70d8ea89de1458859c114139ad6925dcbb6191d569a.json backend/app/mocks/embeddings/f5df1dc4ca2bd76ffe10555b1a9e84483d763f1a36ff85e2f01865f4e9477a94.json backend/app/mocks/embeddings/f71ecc65ede8ddd762b9439c94b70ae6bc5092a9ccbcb835d130f7473819bff9.json backend/app/mocks/embeddings/f944285998885a4afb17591d51623d36670fcf4839e4c5c83b88e32b562bf19e.json backend/app/mocks/embeddings/f94f063b8d9e32bac69e4edb936b54aa04069214104c119e813aee366b7ead26.json backend/app/mocks/embeddings/fab57e589960177cb222ed04faccdd95c919f153303132e53927958ab7524343.json backend/app/mocks/embeddings/fbe7eae1d3f8a22ac7e59c62f025901af742cdc5437e78dc7c931b667f18ce68.json backend/app/mocks/embeddings/fc7587755859702f2fd73ba389a9f880f89faa9e852c59b212d421ee927770dc.json backend/app/mocks/embeddings/fc8a6c8813ff85abc7ea336e846312dfc1c06df6ce71807e1f2ae4d61dd424d5.json backend/app/mocks/embeddings/fcce2aa4bee3430a2c69c39e40545bac3a7066a33c417aaba12522a949b33a7b.json backend/app/mocks/embeddings/fe0df45f24438a570650e5948ff41029624ef91b0778340b689087684908e160.json backend/app/mocks/embeddings/fe57777f7a509a552037885d2e3ed44d226ff2e9a07a2c952461c31223ba3e9a.json backend/app/mocks/embeddings/fe89d9e02b686d8b4d5d7c67dfaae7abdc514a052572c72cede2105b67eb8e61.json backend/app/mocks/embeddings/ff42107cb7dad2fa9a9af22e597c577939808e2857b442065fd31c53c57c3eb1.json backend/app/mocks/embeddings/ff4488a1d06702b19a913338d6ddfe2f7200420b6e766b1c4d36e011ec1e5559.json backend/app/mocks/example.json backend/app/mocks/explain_conflict/541ac4c66a6ce3f8.json backend/app/mocks/explain_conflict/5a343a9c033b5f4b.json backend/app/mocks/explain_conflict/c6cf9dec484143e9.json backend/app/mocks/extract_functions/1975735fcdad5b39.json backend/app/mocks/extract_functions/1aa45866a4d4c6e7.json backend/app/mocks/extract_functions/2664e21186ba20d9.json backend/app/mocks/extract_functions/2c890b6fcaabcc1f.json backend/app/mocks/extract_functions/56693cf893150c7b.json backend/app/mocks/extract_functions/62cccad9abd3f1b3.json backend/app/mocks/extract_functions/743f1070fc771081.json backend/app/mocks/extract_functions/9d4cd8a0ac4127dc.json backend/app/mocks/extract_functions/README.md backend/app/mocks/extract_functions/b11d19f77b3c541e.json backend/app/mocks/extract_functions/c3ef5e805595c394.json backend/app/mocks/extract_functions/d21cb8f3744950bf.json backend/app/mocks/extract_functions/draft_fixtures.py backend/app/mocks/extract_functions/e0e768cd399b1c57.json backend/app/mocks/extract_functions/f644bf8d15165b50.json backend/app/mocks/extract_units/8605768c776ca027.json backend/app/mocks/extract_units/87f165ec98b01606.json backend/app/mocks/extract_units/a1d37ce5660d0716.json backend/app/mocks/extract_units/a93cc7bcecfb52ae.json backend/app/mocks/match_units/c444c52e52aee8a6.json backend/app/mocks/match_units/ca0a6367f08a9f38.json backend/app/mocks/match_units/dbc0d50d3cac6d2d.json backend/app/mocks/match_units/f01038dcf5436aa8.json backend/app/mocks/text.txt backend/app/mocks/verify_duplicates/00194ac4c1a0b602.json backend/app/mocks/verify_duplicates/010f27e3d86ec0a6.json backend/app/mocks/verify_duplicates/025c5b160c7d6625.json backend/app/mocks/verify_duplicates/028c66d0cd0eb88a.json backend/app/mocks/verify_duplicates/033903e2f44784ac.json backend/app/mocks/verify_duplicates/03b7c3d82e5a974e.json backend/app/mocks/verify_duplicates/0479e15fa07e18f4.json backend/app/mocks/verify_duplicates/04ab0975f3eee04f.json backend/app/mocks/verify_duplicates/04dddbb16a9ff627.json backend/app/mocks/verify_duplicates/050d4b3df7a386b7.json backend/app/mocks/verify_duplicates/051cb03057e88e51.json backend/app/mocks/verify_duplicates/0520f3218f1521c6.json backend/app/mocks/verify_duplicates/0656d45376afa07a.json backend/app/mocks/verify_duplicates/06b858db4890a427.json backend/app/mocks/verify_duplicates/072db43a99dc574a.json backend/app/mocks/verify_duplicates/078c9e971c8f8f4f.json backend/app/mocks/verify_duplicates/083896d739eca3d2.json backend/app/mocks/verify_duplicates/08b7587ddc81b9ed.json backend/app/mocks/verify_duplicates/0987f7533f0ce5d6.json backend/app/mocks/verify_duplicates/09992c5e5a827210.json backend/app/mocks/verify_duplicates/0a98b629164055d8.json backend/app/mocks/verify_duplicates/0ad4de7cd53460eb.json backend/app/mocks/verify_duplicates/0c3146953facc264.json backend/app/mocks/verify_duplicates/0c6a676fb305512c.json backend/app/mocks/verify_duplicates/0c773e6c0d091196.json backend/app/mocks/verify_duplicates/0c7adc9ad60fe171.json backend/app/mocks/verify_duplicates/0c92795ff7a36c53.json backend/app/mocks/verify_duplicates/0da483a91407201d.json backend/app/mocks/verify_duplicates/0dd2cdee3277ae98.json backend/app/mocks/verify_duplicates/0e4560d7a124d5ca.json backend/app/mocks/verify_duplicates/0ea00bc68c8b1125.json backend/app/mocks/verify_duplicates/0efbc7451fbe8bfc.json backend/app/mocks/verify_duplicates/0f27be479bcd57db.json backend/app/mocks/verify_duplicates/0f5c8cb10ebc5235.json backend/app/mocks/verify_duplicates/0ff2a028b7848c8a.json backend/app/mocks/verify_duplicates/10c96aded1d987e4.json backend/app/mocks/verify_duplicates/1183dc20ddc59801.json backend/app/mocks/verify_duplicates/11adcc6882f9ff15.json backend/app/mocks/verify_duplicates/128a9f10e7777de7.json backend/app/mocks/verify_duplicates/12f26a26517a31bf.json backend/app/mocks/verify_duplicates/135903bd9829a747.json backend/app/mocks/verify_duplicates/13c84f0dc0ff9094.json backend/app/mocks/verify_duplicates/152efb813d8eca47.json backend/app/mocks/verify_duplicates/1558ba29e81b26a8.json backend/app/mocks/verify_duplicates/15dd658ee874efb2.json backend/app/mocks/verify_duplicates/16d1b308db83dbc0.json backend/app/mocks/verify_duplicates/1701955249d67df1.json backend/app/mocks/verify_duplicates/1720cd230c2593d3.json backend/app/mocks/verify_duplicates/172ee25ec50b7391.json backend/app/mocks/verify_duplicates/17940abf41832bb4.json backend/app/mocks/verify_duplicates/17c8cfdab19773bb.json backend/app/mocks/verify_duplicates/18af4550ce67e8b1.json backend/app/mocks/verify_duplicates/18b2f5e28dbf67ef.json backend/app/mocks/verify_duplicates/196002fbd62bfe81.json backend/app/mocks/verify_duplicates/1a1d6b36612df094.json backend/app/mocks/verify_duplicates/1a1f7b87ca195066.json backend/app/mocks/verify_duplicates/1a267203ce52b7ae.json backend/app/mocks/verify_duplicates/1a63b78cb1ea90de.json backend/app/mocks/verify_duplicates/1ad964b0ce23778e.json backend/app/mocks/verify_duplicates/1bbfda7d1304efd5.json backend/app/mocks/verify_duplicates/1c0d48a38953d295.json backend/app/mocks/verify_duplicates/1d1d3ef90df747fd.json backend/app/mocks/verify_duplicates/1d2e4cb310a5156e.json backend/app/mocks/verify_duplicates/1d54b3a11d2790fd.json backend/app/mocks/verify_duplicates/1ede671c9dfa30d9.json backend/app/mocks/verify_duplicates/202f9a64adb217d5.json backend/app/mocks/verify_duplicates/213328214c4042c4.json backend/app/mocks/verify_duplicates/214ebe2e17e18738.json backend/app/mocks/verify_duplicates/22095eb06c7fcfbe.json backend/app/mocks/verify_duplicates/232f76a29a89298f.json backend/app/mocks/verify_duplicates/23cd4c18eb2de5c7.json backend/app/mocks/verify_duplicates/24283e779812b2e6.json backend/app/mocks/verify_duplicates/246ab66d6e8f08e5.json backend/app/mocks/verify_duplicates/24b23f7147d68d48.json backend/app/mocks/verify_duplicates/24df8a20412b380e.json backend/app/mocks/verify_duplicates/24efbbc35d7e592b.json backend/app/mocks/verify_duplicates/24fd5558fbb13ea4.json backend/app/mocks/verify_duplicates/2539862b2738439f.json backend/app/mocks/verify_duplicates/25607f7cfba8acce.json backend/app/mocks/verify_duplicates/25bb3c9f72ad9344.json backend/app/mocks/verify_duplicates/2726096b5d64a485.json backend/app/mocks/verify_duplicates/27a3c5c6b6891df7.json backend/app/mocks/verify_duplicates/27a9fc2d44d28d53.json backend/app/mocks/verify_duplicates/282890e689b6631f.json backend/app/mocks/verify_duplicates/28712cd6629ebe8e.json backend/app/mocks/verify_duplicates/29bbbada3638db58.json backend/app/mocks/verify_duplicates/2a28c63f43a0270a.json backend/app/mocks/verify_duplicates/2ab86ea9ed0d902e.json backend/app/mocks/verify_duplicates/2ad57bb9ce859d89.json backend/app/mocks/verify_duplicates/2af59747b676241a.json backend/app/mocks/verify_duplicates/2b5565e8cbcef417.json backend/app/mocks/verify_duplicates/2dbf8b994b5fe74e.json backend/app/mocks/verify_duplicates/2e8b2eaad54f6010.json backend/app/mocks/verify_duplicates/2ff99cf5d11c7050.json backend/app/mocks/verify_duplicates/302089a0fc02101d.json backend/app/mocks/verify_duplicates/305b507da643704f.json backend/app/mocks/verify_duplicates/3100f49ba54fd6e8.json backend/app/mocks/verify_duplicates/315af694b539a855.json backend/app/mocks/verify_duplicates/32a85eb0767c3323.json backend/app/mocks/verify_duplicates/33bcc1a0b18b1398.json backend/app/mocks/verify_duplicates/34a2b382492f9e35.json backend/app/mocks/verify_duplicates/353ce9619fc632e7.json backend/app/mocks/verify_duplicates/36014449c0742a94.json backend/app/mocks/verify_duplicates/36254b80f4f83891.json backend/app/mocks/verify_duplicates/369a2ab7efd9dbb6.json backend/app/mocks/verify_duplicates/369fc5bdfb989b4e.json backend/app/mocks/verify_duplicates/36dfde8fa159a45a.json backend/app/mocks/verify_duplicates/3731c450f5419881.json backend/app/mocks/verify_duplicates/37791f76d846d651.json backend/app/mocks/verify_duplicates/3808d5ed77518952.json backend/app/mocks/verify_duplicates/380ae27b91169a26.json backend/app/mocks/verify_duplicates/3965604afae9fbe5.json backend/app/mocks/verify_duplicates/39864c4fe0192129.json backend/app/mocks/verify_duplicates/3a7133fbbb257c86.json backend/app/mocks/verify_duplicates/3a894ff6edd8070b.json backend/app/mocks/verify_duplicates/3b951f82e5cc5932.json backend/app/mocks/verify_duplicates/3bfa11e28dc7bd87.json backend/app/mocks/verify_duplicates/3e2f01134d803043.json backend/app/mocks/verify_duplicates/3ec467b964d06163.json backend/app/mocks/verify_duplicates/3ecf51bd38395b5a.json backend/app/mocks/verify_duplicates/3f03958982117dd7.json backend/app/mocks/verify_duplicates/3f735b1f17db3acb.json backend/app/mocks/verify_duplicates/3f9e382453d1bcb7.json backend/app/mocks/verify_duplicates/3fcb58b63921b957.json backend/app/mocks/verify_duplicates/40558709ff43dc5b.json backend/app/mocks/verify_duplicates/407221d7f644707e.json backend/app/mocks/verify_duplicates/408508355920bcd7.json backend/app/mocks/verify_duplicates/40d62e9b9de46e5a.json backend/app/mocks/verify_duplicates/41444005ace71830.json backend/app/mocks/verify_duplicates/4187220681a99d4f.json backend/app/mocks/verify_duplicates/41e357fb3c2da49f.json backend/app/mocks/verify_duplicates/421db6a84d00e53c.json backend/app/mocks/verify_duplicates/42889896084496d7.json backend/app/mocks/verify_duplicates/42917a6bfa46c5da.json backend/app/mocks/verify_duplicates/43586b24cf603bce.json backend/app/mocks/verify_duplicates/438cc71525a4bd1f.json backend/app/mocks/verify_duplicates/43c3d1e37a267a45.json backend/app/mocks/verify_duplicates/44856b07eaa7f56f.json backend/app/mocks/verify_duplicates/448827c9d7a8c3b2.json backend/app/mocks/verify_duplicates/44d828db9c767054.json backend/app/mocks/verify_duplicates/467c72d27c85ab78.json backend/app/mocks/verify_duplicates/4726c0e1257e7a08.json backend/app/mocks/verify_duplicates/4733cbd4b8bcf415.json backend/app/mocks/verify_duplicates/48031b6c0e7504c7.json backend/app/mocks/verify_duplicates/483942673c36b5b9.json backend/app/mocks/verify_duplicates/48cb9b3c2def06db.json backend/app/mocks/verify_duplicates/4aaa6dedb7092bcb.json backend/app/mocks/verify_duplicates/4ab2fdb85f270106.json backend/app/mocks/verify_duplicates/4ba34cf721eafb2e.json backend/app/mocks/verify_duplicates/4bc3d0fa1227e489.json backend/app/mocks/verify_duplicates/4be25f65c3718df0.json backend/app/mocks/verify_duplicates/4cf8e2581fdd06ae.json backend/app/mocks/verify_duplicates/4d49c8d80582d086.json backend/app/mocks/verify_duplicates/4e335e0522455cc1.json backend/app/mocks/verify_duplicates/4ea5d2ba88153cf7.json backend/app/mocks/verify_duplicates/4ed5107c02b4250b.json backend/app/mocks/verify_duplicates/4f0c598106dd583f.json backend/app/mocks/verify_duplicates/4fef54ce067d5956.json backend/app/mocks/verify_duplicates/4ff3e84d3dd2ed56.json backend/app/mocks/verify_duplicates/5273bb9a999f3df4.json backend/app/mocks/verify_duplicates/52df406739d4dd53.json backend/app/mocks/verify_duplicates/541b8810056ec23f.json backend/app/mocks/verify_duplicates/5452a6ba2615113b.json backend/app/mocks/verify_duplicates/548fc2f96427aae9.json backend/app/mocks/verify_duplicates/54ffbafff9ad6219.json backend/app/mocks/verify_duplicates/55580e4aa2e43294.json backend/app/mocks/verify_duplicates/57c63d23b5b2ac02.json backend/app/mocks/verify_duplicates/582ed5237410eee5.json backend/app/mocks/verify_duplicates/59e24032d1b9af31.json backend/app/mocks/verify_duplicates/5a201191f6d4b724.json backend/app/mocks/verify_duplicates/5a5e84475a38d426.json backend/app/mocks/verify_duplicates/5a78754f9909768b.json backend/app/mocks/verify_duplicates/5b7666128f2ac6be.json backend/app/mocks/verify_duplicates/5be4281944c4982d.json backend/app/mocks/verify_duplicates/5c3308b2933bd9a2.json backend/app/mocks/verify_duplicates/5c816408a6f9af10.json backend/app/mocks/verify_duplicates/5c9c45816f66d91a.json backend/app/mocks/verify_duplicates/5d3287c9dea9d024.json backend/app/mocks/verify_duplicates/5dae96963cbaec82.json backend/app/mocks/verify_duplicates/5e243525b3f24079.json backend/app/mocks/verify_duplicates/5ea522b051349f5c.json backend/app/mocks/verify_duplicates/5eba5c5966314acf.json backend/app/mocks/verify_duplicates/5ebf0b90cc9e3310.json backend/app/mocks/verify_duplicates/5f6599ed01d64d57.json backend/app/mocks/verify_duplicates/5fb39eda724dbaac.json backend/app/mocks/verify_duplicates/5fd28e07739f6f54.json backend/app/mocks/verify_duplicates/60473124a1932f70.json backend/app/mocks/verify_duplicates/606a4a48d074a8cc.json backend/app/mocks/verify_duplicates/61b075f764dd81b4.json backend/app/mocks/verify_duplicates/61c1b54e890e6d64.json backend/app/mocks/verify_duplicates/61c888d41257369e.json backend/app/mocks/verify_duplicates/623c255b766db902.json backend/app/mocks/verify_duplicates/62a0a1a65b47ef11.json backend/app/mocks/verify_duplicates/62f667103a884a5a.json backend/app/mocks/verify_duplicates/62fe9ea4f050da72.json backend/app/mocks/verify_duplicates/6301d95e4ce9b459.json backend/app/mocks/verify_duplicates/6308a64a2004936c.json backend/app/mocks/verify_duplicates/630cc100ed179caa.json backend/app/mocks/verify_duplicates/63cd39dfe09d9213.json backend/app/mocks/verify_duplicates/63dc3d04d86aab17.json backend/app/mocks/verify_duplicates/644490b5b09732eb.json backend/app/mocks/verify_duplicates/649bf927c7dcb1ef.json backend/app/mocks/verify_duplicates/64e62a9eca38c5b2.json backend/app/mocks/verify_duplicates/65de4d0e2e453a0b.json backend/app/mocks/verify_duplicates/661ef5fe90c896a1.json backend/app/mocks/verify_duplicates/66a6c92f03ffb421.json backend/app/mocks/verify_duplicates/66eaf125fac77df2.json backend/app/mocks/verify_duplicates/6713ff7e5538e398.json backend/app/mocks/verify_duplicates/672c2e024430946f.json backend/app/mocks/verify_duplicates/673beafeab5970a5.json backend/app/mocks/verify_duplicates/67f676ae798d4ded.json backend/app/mocks/verify_duplicates/68174fd2af46f77e.json backend/app/mocks/verify_duplicates/6b807ff00eee0e55.json backend/app/mocks/verify_duplicates/6c0e78f818950fa5.json backend/app/mocks/verify_duplicates/6cd5d2f55cf385fe.json backend/app/mocks/verify_duplicates/6d1c41f24656492f.json backend/app/mocks/verify_duplicates/6e236e387f859587.json backend/app/mocks/verify_duplicates/6e471a426b3c7d77.json backend/app/mocks/verify_duplicates/6e8d2bf19f227043.json backend/app/mocks/verify_duplicates/6f0e4ee5424899af.json backend/app/mocks/verify_duplicates/6f2eb8434cb65dd4.json backend/app/mocks/verify_duplicates/6f6955eb95fc76f1.json backend/app/mocks/verify_duplicates/6fd051be098be78e.json backend/app/mocks/verify_duplicates/6fdd53ac3e5fc03d.json backend/app/mocks/verify_duplicates/719d32bb9c847557.json backend/app/mocks/verify_duplicates/725cac1e67b05fca.json backend/app/mocks/verify_duplicates/73313b118b27fe84.json backend/app/mocks/verify_duplicates/734eef9d1325860f.json backend/app/mocks/verify_duplicates/736e0438f657cf42.json backend/app/mocks/verify_duplicates/7387771367309f7e.json backend/app/mocks/verify_duplicates/7441b4d8965c89f4.json backend/app/mocks/verify_duplicates/75a42d079b4f0036.json backend/app/mocks/verify_duplicates/75aad13ae07c8a9a.json backend/app/mocks/verify_duplicates/767aec4e8296cccf.json backend/app/mocks/verify_duplicates/77761d0c96c3c071.json backend/app/mocks/verify_duplicates/78d8553598ebe903.json backend/app/mocks/verify_duplicates/7972c59fa158aa57.json backend/app/mocks/verify_duplicates/79ae916a223d5296.json backend/app/mocks/verify_duplicates/7a67fb86473d5265.json backend/app/mocks/verify_duplicates/7adf6aea258bba73.json backend/app/mocks/verify_duplicates/7b672cbad19b3ae2.json backend/app/mocks/verify_duplicates/7b8afb8697972ec5.json backend/app/mocks/verify_duplicates/7ba49cc9022ffa9f.json backend/app/mocks/verify_duplicates/7c14b5602378967e.json backend/app/mocks/verify_duplicates/7c2139e9c956d547.json backend/app/mocks/verify_duplicates/7dabfee0dee16d17.json backend/app/mocks/verify_duplicates/7dc9593c86412463.json backend/app/mocks/verify_duplicates/7f29369fd797f7e1.json backend/app/mocks/verify_duplicates/7f59d9d21b3e18ac.json backend/app/mocks/verify_duplicates/7f9610c03bbe5469.json backend/app/mocks/verify_duplicates/7f962b728f47e519.json backend/app/mocks/verify_duplicates/7fb86e189bd3523c.json backend/app/mocks/verify_duplicates/81576045a4cc2268.json backend/app/mocks/verify_duplicates/8207200314a59b6c.json backend/app/mocks/verify_duplicates/824889258b7727d7.json backend/app/mocks/verify_duplicates/82597d79f48bbb1b.json backend/app/mocks/verify_duplicates/829eb8b2826b4934.json backend/app/mocks/verify_duplicates/82f76016c0945e22.json backend/app/mocks/verify_duplicates/837dbd32a4038c80.json backend/app/mocks/verify_duplicates/83a66916703ff3b2.json backend/app/mocks/verify_duplicates/83e04e9f8d8aa068.json backend/app/mocks/verify_duplicates/846edaed4a3365b2.json backend/app/mocks/verify_duplicates/8595571ab6913784.json backend/app/mocks/verify_duplicates/86206991344bc4b6.json backend/app/mocks/verify_duplicates/870ecda6269922c5.json backend/app/mocks/verify_duplicates/872550b42db2db44.json backend/app/mocks/verify_duplicates/87411c3779d3f11f.json backend/app/mocks/verify_duplicates/876b39f77aae9666.json backend/app/mocks/verify_duplicates/87bc47758892c960.json backend/app/mocks/verify_duplicates/87ff9f4df189820b.json backend/app/mocks/verify_duplicates/886296eb7b1c2027.json backend/app/mocks/verify_duplicates/893ea4c55f3729c9.json backend/app/mocks/verify_duplicates/893eb0eb3504a5c8.json backend/app/mocks/verify_duplicates/8978487502894dae.json backend/app/mocks/verify_duplicates/8a01c06096976018.json backend/app/mocks/verify_duplicates/8a7a27ef12090809.json backend/app/mocks/verify_duplicates/8b816ce6fe9281ae.json backend/app/mocks/verify_duplicates/8bb9c479e675f735.json backend/app/mocks/verify_duplicates/8bcd071e01d1f071.json backend/app/mocks/verify_duplicates/8cbfd633774480f9.json backend/app/mocks/verify_duplicates/8cc3d0d287ab1423.json backend/app/mocks/verify_duplicates/8cee0fa7e9bfe595.json backend/app/mocks/verify_duplicates/8cf6287c9baefa19.json backend/app/mocks/verify_duplicates/8d55cbdc0ce333a2.json backend/app/mocks/verify_duplicates/8e58bbf0719be3a1.json backend/app/mocks/verify_duplicates/8eaf2dbb5bee9683.json backend/app/mocks/verify_duplicates/8f82cd6e9d4310c7.json backend/app/mocks/verify_duplicates/9119a7bb34552eb8.json backend/app/mocks/verify_duplicates/91dd050a88987149.json backend/app/mocks/verify_duplicates/91e980b7bb2092f7.json backend/app/mocks/verify_duplicates/920633a8f3e8787a.json backend/app/mocks/verify_duplicates/929d2eacc5c2cb24.json backend/app/mocks/verify_duplicates/92bb92ebdcee9caf.json backend/app/mocks/verify_duplicates/93534d627598caa8.json backend/app/mocks/verify_duplicates/939c06574e29aac0.json backend/app/mocks/verify_duplicates/9422dd664cd25127.json backend/app/mocks/verify_duplicates/95b6fd13c18693e7.json backend/app/mocks/verify_duplicates/9697e23348481c4c.json backend/app/mocks/verify_duplicates/96984f687d00017a.json backend/app/mocks/verify_duplicates/9744d7468ee8627b.json backend/app/mocks/verify_duplicates/98996b98b25220dc.json backend/app/mocks/verify_duplicates/98b1305576fd1638.json backend/app/mocks/verify_duplicates/990422e032ec1339.json backend/app/mocks/verify_duplicates/99166cc79835ea07.json backend/app/mocks/verify_duplicates/9a146c29952f6000.json backend/app/mocks/verify_duplicates/9a1e8ebb04fe6871.json backend/app/mocks/verify_duplicates/9ace0fe112302e5d.json backend/app/mocks/verify_duplicates/9b669248180201d9.json backend/app/mocks/verify_duplicates/9c3986ec15933c51.json backend/app/mocks/verify_duplicates/9d8506d014df4aa8.json backend/app/mocks/verify_duplicates/9db07fd37d407f20.json backend/app/mocks/verify_duplicates/9e93b57303bd14e6.json backend/app/mocks/verify_duplicates/9ec68a81812effba.json backend/app/mocks/verify_duplicates/9f226c0d77f6bc42.json backend/app/mocks/verify_duplicates/9f6daf39f1498efc.json backend/app/mocks/verify_duplicates/a14130b867f562dc.json backend/app/mocks/verify_duplicates/a328fd4457a8b45d.json backend/app/mocks/verify_duplicates/a3375699a93be433.json backend/app/mocks/verify_duplicates/a346f3397acd1158.json backend/app/mocks/verify_duplicates/a396863ca5cc6bb2.json backend/app/mocks/verify_duplicates/a4a6ba4f78ba18da.json backend/app/mocks/verify_duplicates/a4b92740628d686e.json backend/app/mocks/verify_duplicates/a760e17d5502398a.json backend/app/mocks/verify_duplicates/a8f559bb39d53375.json backend/app/mocks/verify_duplicates/a905522f27bb11dd.json backend/app/mocks/verify_duplicates/a9369c1e7e859daa.json backend/app/mocks/verify_duplicates/a98bfce29decf098.json backend/app/mocks/verify_duplicates/ab87ae8982eee396.json backend/app/mocks/verify_duplicates/abef9224b101e294.json backend/app/mocks/verify_duplicates/ac7881fe67a5f8bd.json backend/app/mocks/verify_duplicates/aca171f669f27825.json backend/app/mocks/verify_duplicates/acec505e7ebab5cc.json backend/app/mocks/verify_duplicates/ade6b994c74a8d26.json backend/app/mocks/verify_duplicates/aece15f9b8b20d67.json backend/app/mocks/verify_duplicates/aface13202661c23.json backend/app/mocks/verify_duplicates/b2164eff9978e7a0.json backend/app/mocks/verify_duplicates/b27388ce6a91c015.json backend/app/mocks/verify_duplicates/b298379f943d277c.json backend/app/mocks/verify_duplicates/b2a30d5b3f126f02.json backend/app/mocks/verify_duplicates/b2f412fe6d019f09.json backend/app/mocks/verify_duplicates/b30dac986606c9e0.json backend/app/mocks/verify_duplicates/b347fe20f4b3c598.json backend/app/mocks/verify_duplicates/b38490566184016c.json backend/app/mocks/verify_duplicates/b3a17169012d8721.json backend/app/mocks/verify_duplicates/b3c7119f9f73d573.json backend/app/mocks/verify_duplicates/b41e55af1df23b98.json backend/app/mocks/verify_duplicates/b5bdcb4fbbef7b2f.json backend/app/mocks/verify_duplicates/b5ebbd292aff0021.json backend/app/mocks/verify_duplicates/b7006e80f1ead32d.json backend/app/mocks/verify_duplicates/b7192aa8ce2b3134.json backend/app/mocks/verify_duplicates/b88538c9305df11f.json backend/app/mocks/verify_duplicates/b8bd54549140af31.json backend/app/mocks/verify_duplicates/baeea8973a6a605c.json backend/app/mocks/verify_duplicates/bb930b3755f0da57.json backend/app/mocks/verify_duplicates/bc41ab4528773b75.json backend/app/mocks/verify_duplicates/bce618cfb4944089.json backend/app/mocks/verify_duplicates/bd32b85c6488687c.json backend/app/mocks/verify_duplicates/bd3fe4caf6948019.json backend/app/mocks/verify_duplicates/bea319a764385178.json backend/app/mocks/verify_duplicates/bf1b2d80af08fb3f.json backend/app/mocks/verify_duplicates/bf6a21e6c12b5ebc.json backend/app/mocks/verify_duplicates/c03ed7ddcaaa17b1.json backend/app/mocks/verify_duplicates/c0a0186a9786f038.json backend/app/mocks/verify_duplicates/c0a82fca1a9d44f8.json backend/app/mocks/verify_duplicates/c0fda13bead2d296.json backend/app/mocks/verify_duplicates/c10c983dcc333aca.json backend/app/mocks/verify_duplicates/c1691cd8a1dfc329.json backend/app/mocks/verify_duplicates/c245c18a1bdb5871.json backend/app/mocks/verify_duplicates/c247df46ca866f04.json backend/app/mocks/verify_duplicates/c2a7bb1e05a287cf.json backend/app/mocks/verify_duplicates/c2e2db399ae7bfb2.json backend/app/mocks/verify_duplicates/c3c7ec06c07704ce.json backend/app/mocks/verify_duplicates/c4b7d04ae7bd7a6c.json backend/app/mocks/verify_duplicates/c536af7ed4a897e7.json backend/app/mocks/verify_duplicates/c55c57f061703170.json backend/app/mocks/verify_duplicates/c5d47d776e124d78.json backend/app/mocks/verify_duplicates/c5d9b2a48bae98a2.json backend/app/mocks/verify_duplicates/c6379c7a53fe306b.json backend/app/mocks/verify_duplicates/c6556413552a4f16.json backend/app/mocks/verify_duplicates/c702daea5fee1587.json backend/app/mocks/verify_duplicates/c87d040bf89dad08.json backend/app/mocks/verify_duplicates/c8ff0b9d56eb4ba6.json backend/app/mocks/verify_duplicates/c9ed1add5afa4fff.json backend/app/mocks/verify_duplicates/ca39447840051b55.json backend/app/mocks/verify_duplicates/ca5a5e3069f8418f.json backend/app/mocks/verify_duplicates/ca6fcd53bd349efb.json backend/app/mocks/verify_duplicates/cb4b7b83a140219e.json backend/app/mocks/verify_duplicates/ccec74b794975fbb.json backend/app/mocks/verify_duplicates/ccf92d53f76ac08b.json backend/app/mocks/verify_duplicates/cdbebff0f122bdc7.json backend/app/mocks/verify_duplicates/ce66d52c9beec3bc.json backend/app/mocks/verify_duplicates/cecb163d2a01c102.json backend/app/mocks/verify_duplicates/cf43380f5dbfedc3.json backend/app/mocks/verify_duplicates/cf6aedc5a315a0c9.json backend/app/mocks/verify_duplicates/cffd4b83c1844327.json backend/app/mocks/verify_duplicates/d07f6071a6d0426b.json backend/app/mocks/verify_duplicates/d0ec79178119ec5a.json backend/app/mocks/verify_duplicates/d1a71e3ec63d5c5b.json backend/app/mocks/verify_duplicates/d1f6224996c10d89.json backend/app/mocks/verify_duplicates/d3c3a5f7221a6735.json backend/app/mocks/verify_duplicates/d40ed79bb556a3fc.json backend/app/mocks/verify_duplicates/d4c34dd8c394761a.json backend/app/mocks/verify_duplicates/d4ce8321e69bd41b.json backend/app/mocks/verify_duplicates/d55ddea2a86a129d.json backend/app/mocks/verify_duplicates/d595fbebe3e9534a.json backend/app/mocks/verify_duplicates/d5d94bb31bc211c1.json backend/app/mocks/verify_duplicates/d5da4d18b4b7e3e6.json backend/app/mocks/verify_duplicates/d6a5f5e26ad73eae.json backend/app/mocks/verify_duplicates/d72631c071e0e12b.json backend/app/mocks/verify_duplicates/d780bd0f3b2974ef.json backend/app/mocks/verify_duplicates/d7846e26b953d751.json backend/app/mocks/verify_duplicates/d85fd300bf50dc2e.json backend/app/mocks/verify_duplicates/d8809cd4ef0a9060.json backend/app/mocks/verify_duplicates/d8cc167911a325c2.json backend/app/mocks/verify_duplicates/d8da74445929b220.json backend/app/mocks/verify_duplicates/d97ccb3895517b06.json backend/app/mocks/verify_duplicates/da4f786731605fd7.json backend/app/mocks/verify_duplicates/da528e5435be494c.json backend/app/mocks/verify_duplicates/daf2319ecc92d8f2.json backend/app/mocks/verify_duplicates/db812d3ba039670c.json backend/app/mocks/verify_duplicates/dcbccc01c7796e5d.json backend/app/mocks/verify_duplicates/de2895cee7b70558.json backend/app/mocks/verify_duplicates/df5c18e286d52974.json backend/app/mocks/verify_duplicates/df7369e833124cec.json backend/app/mocks/verify_duplicates/e00078fdbd55b988.json backend/app/mocks/verify_duplicates/e011d1688a3fe300.json backend/app/mocks/verify_duplicates/e15173c9cb4b49c6.json backend/app/mocks/verify_duplicates/e15cbcab576eb847.json backend/app/mocks/verify_duplicates/e1b82269b2eef6ea.json backend/app/mocks/verify_duplicates/e1d49aae1fe1571f.json backend/app/mocks/verify_duplicates/e1e1ab22ebcb90c7.json backend/app/mocks/verify_duplicates/e215cd0488e32de9.json backend/app/mocks/verify_duplicates/e21baff023029625.json backend/app/mocks/verify_duplicates/e2ddb228327297e8.json backend/app/mocks/verify_duplicates/e43b8cea6b49846c.json backend/app/mocks/verify_duplicates/e47cd5750f537607.json backend/app/mocks/verify_duplicates/e5fe3ecb4da7b148.json backend/app/mocks/verify_duplicates/e656e24956056301.json backend/app/mocks/verify_duplicates/e675a32a8e1233a2.json backend/app/mocks/verify_duplicates/e6d0b4b66ab3e70e.json backend/app/mocks/verify_duplicates/e70fb8bea55d183c.json backend/app/mocks/verify_duplicates/e7c550ba89904e74.json backend/app/mocks/verify_duplicates/e7e1641e8a31de3f.json backend/app/mocks/verify_duplicates/e8330d8053539aac.json backend/app/mocks/verify_duplicates/e8e43cf95119e040.json backend/app/mocks/verify_duplicates/e9ffedd454695d9f.json backend/app/mocks/verify_duplicates/eab2df7df48de47a.json backend/app/mocks/verify_duplicates/eab4015ccf33b2db.json backend/app/mocks/verify_duplicates/eb1db0f34fa6f400.json backend/app/mocks/verify_duplicates/ebe521ee9abd1d3f.json backend/app/mocks/verify_duplicates/ebec87e0b87dc4ca.json backend/app/mocks/verify_duplicates/ed36df84f6e7effd.json backend/app/mocks/verify_duplicates/edeb1dd3c57fa1e3.json backend/app/mocks/verify_duplicates/ef056ef9d027b41a.json backend/app/mocks/verify_duplicates/ef589e8a90723dd2.json backend/app/mocks/verify_duplicates/f09ec43eb14ddb0e.json backend/app/mocks/verify_duplicates/f1dd4c7fbdebe71f.json backend/app/mocks/verify_duplicates/f2dd2c8c9a08819a.json backend/app/mocks/verify_duplicates/f3661e1c566675cb.json backend/app/mocks/verify_duplicates/f3cfd466d02bf26e.json backend/app/mocks/verify_duplicates/f4040a04008ad234.json backend/app/mocks/verify_duplicates/f4540f8ad4fa2d31.json backend/app/mocks/verify_duplicates/f4750447bd159c21.json backend/app/mocks/verify_duplicates/f497667f3d4ddd12.json backend/app/mocks/verify_duplicates/f5a47f404a7118eb.json backend/app/mocks/verify_duplicates/f66ff1224ebf8844.json backend/app/mocks/verify_duplicates/f759e546ccd63b8f.json backend/app/mocks/verify_duplicates/f7fa95cc6358646c.json backend/app/mocks/verify_duplicates/f89bedee17686a3c.json backend/app/mocks/verify_duplicates/f8a1eac9c0be0b5a.json backend/app/mocks/verify_duplicates/f90ddf7804e1fcaa.json backend/app/mocks/verify_duplicates/f94e3ee53835f6ce.json backend/app/mocks/verify_duplicates/f9ddfbb522109ee1.json backend/app/mocks/verify_duplicates/f9e5d439111a2c40.json backend/app/mocks/verify_duplicates/fa263583966b8356.json backend/app/mocks/verify_duplicates/fae7ed5b36464a11.json backend/app/mocks/verify_duplicates/fb6b86e71d7b6716.json backend/app/mocks/verify_duplicates/fbed94a334f1d623.json backend/app/mocks/verify_duplicates/fc351e12bd15270b.json backend/app/mocks/verify_duplicates/fd5577d0f96a8012.json backend/app/mocks/verify_duplicates/fdaf5ce9319568bb.json backend/app/mocks/verify_duplicates/fe775508eb17443c.json backend/app/mocks/verify_duplicates/ffba66d218ee0b17.json backend/app/mocks/verify_matches/00e782a7b2a04afa.json backend/app/mocks/verify_matches/024419903f78e345.json backend/app/mocks/verify_matches/029f4c444a3e25f4.json backend/app/mocks/verify_matches/033779462192479f.json backend/app/mocks/verify_matches/034e900b2fe069f8.json backend/app/mocks/verify_matches/03aea43932b2ab07.json backend/app/mocks/verify_matches/0489a605f3fd1fee.json backend/app/mocks/verify_matches/06686659c35af896.json backend/app/mocks/verify_matches/0685aabd0136ad36.json backend/app/mocks/verify_matches/068a2580f87e0b69.json backend/app/mocks/verify_matches/06a0e28a0093a9a9.json backend/app/mocks/verify_matches/06dd506e6c43d85d.json backend/app/mocks/verify_matches/07c159c96cf505b9.json backend/app/mocks/verify_matches/082032670c42e9d5.json backend/app/mocks/verify_matches/083c07c9b13eac8c.json backend/app/mocks/verify_matches/083cc2ac5c3371fa.json backend/app/mocks/verify_matches/08ab2e855022f8ee.json backend/app/mocks/verify_matches/0a4e3bf9b7389623.json backend/app/mocks/verify_matches/0a4ff2be8f12caed.json backend/app/mocks/verify_matches/0a6bf2a665b484c1.json backend/app/mocks/verify_matches/0a8bcc109e7bd641.json backend/app/mocks/verify_matches/0a903c6b05de73ba.json backend/app/mocks/verify_matches/0c08ad5183ddb821.json backend/app/mocks/verify_matches/0d049ab798234e72.json backend/app/mocks/verify_matches/0d232c4354dfa5f9.json backend/app/mocks/verify_matches/0ec13c2043428969.json backend/app/mocks/verify_matches/0ef9e1762a035c1e.json backend/app/mocks/verify_matches/105c458623089e8c.json backend/app/mocks/verify_matches/109b69c204d1bef1.json backend/app/mocks/verify_matches/10a9000ecfabb11e.json backend/app/mocks/verify_matches/10d1489c3378d621.json backend/app/mocks/verify_matches/110676e39e22094b.json backend/app/mocks/verify_matches/122afa2ba4ddddd1.json backend/app/mocks/verify_matches/123976cd4115daaf.json backend/app/mocks/verify_matches/131cbdca2506a21f.json backend/app/mocks/verify_matches/134ee740a4bec07d.json backend/app/mocks/verify_matches/137aed1f3b818423.json backend/app/mocks/verify_matches/1384361f3594c647.json backend/app/mocks/verify_matches/13c0d0b880ee2438.json backend/app/mocks/verify_matches/144fd6d5b847e14b.json backend/app/mocks/verify_matches/14c306fd3e7e3dd6.json backend/app/mocks/verify_matches/14dbf2df3dc3275b.json backend/app/mocks/verify_matches/153d8e084f91ea76.json backend/app/mocks/verify_matches/15c49fa7ef2e43d3.json backend/app/mocks/verify_matches/15d567db40f28294.json backend/app/mocks/verify_matches/163caa44094d54ad.json backend/app/mocks/verify_matches/16dcbd8bb1920f0b.json backend/app/mocks/verify_matches/1706dd9f98387c28.json backend/app/mocks/verify_matches/17aebaa52cb83b0f.json backend/app/mocks/verify_matches/1914527f3cbc4f20.json backend/app/mocks/verify_matches/192e6be5c19be12c.json backend/app/mocks/verify_matches/198874a098d3b93a.json backend/app/mocks/verify_matches/1bb1150cb7c6fbe4.json backend/app/mocks/verify_matches/1c99ddab2d46f92d.json backend/app/mocks/verify_matches/1ca083ca42e2c58f.json backend/app/mocks/verify_matches/1d7669c3a45af411.json backend/app/mocks/verify_matches/1db49ea3cb430260.json backend/app/mocks/verify_matches/1e674993fa22de78.json backend/app/mocks/verify_matches/1f9a07ea865eeef9.json backend/app/mocks/verify_matches/1f9e3bc94e038bce.json backend/app/mocks/verify_matches/1fcf130c10cf6a01.json backend/app/mocks/verify_matches/20bed8d063d68fb0.json backend/app/mocks/verify_matches/21bc7cdeb1056d7b.json backend/app/mocks/verify_matches/225583ce3882166d.json backend/app/mocks/verify_matches/22decc9feda6a2ea.json backend/app/mocks/verify_matches/234e070b43a60220.json backend/app/mocks/verify_matches/23a2b075c02f0ec7.json backend/app/mocks/verify_matches/243f37d55e4611ab.json backend/app/mocks/verify_matches/245a1ee4a45f0164.json backend/app/mocks/verify_matches/24948c757ea374c8.json backend/app/mocks/verify_matches/25ad5ffb3a1c66c1.json backend/app/mocks/verify_matches/25e2d87dd11f74de.json backend/app/mocks/verify_matches/25e37c69714a501a.json backend/app/mocks/verify_matches/25fabc45165ca744.json backend/app/mocks/verify_matches/26243bac49133b91.json backend/app/mocks/verify_matches/28dea0abcf9ebc77.json backend/app/mocks/verify_matches/28eeb2a40116de02.json backend/app/mocks/verify_matches/29b0a11c531b99fc.json backend/app/mocks/verify_matches/2a15599b1426a658.json backend/app/mocks/verify_matches/2c34986e7314aa82.json backend/app/mocks/verify_matches/2c645fb6a395dfd4.json backend/app/mocks/verify_matches/2cff1d0f04780710.json backend/app/mocks/verify_matches/2d485c47224a940d.json backend/app/mocks/verify_matches/2d84553b46392a43.json backend/app/mocks/verify_matches/2e0c62dffe79f5d3.json backend/app/mocks/verify_matches/2e10364ea6e2918c.json backend/app/mocks/verify_matches/2e5a94181396a554.json backend/app/mocks/verify_matches/2f800cf631a57765.json backend/app/mocks/verify_matches/3044d4cfe9ff1a33.json backend/app/mocks/verify_matches/30bf0b19158d1c55.json backend/app/mocks/verify_matches/30d4a59d79f50c0b.json backend/app/mocks/verify_matches/315e0a290b1f6595.json backend/app/mocks/verify_matches/31f6283ec718325a.json backend/app/mocks/verify_matches/3271dd47a493f437.json backend/app/mocks/verify_matches/333055c200b6b7ce.json backend/app/mocks/verify_matches/35d3c212be606eb2.json backend/app/mocks/verify_matches/366e1086ba04c81e.json backend/app/mocks/verify_matches/3696e4063f4a8157.json backend/app/mocks/verify_matches/370b23bcd0006f28.json backend/app/mocks/verify_matches/371561451accf388.json backend/app/mocks/verify_matches/375378c18fd21cd5.json backend/app/mocks/verify_matches/382803f91c1d17dd.json backend/app/mocks/verify_matches/385318bfa19177b7.json backend/app/mocks/verify_matches/38fd107fc45ac104.json backend/app/mocks/verify_matches/397fdb1c76936505.json backend/app/mocks/verify_matches/3a4f4d806a2f5cce.json backend/app/mocks/verify_matches/3aa773c4f62fffb2.json backend/app/mocks/verify_matches/3ad1ba10ed94185e.json backend/app/mocks/verify_matches/3b7314fa4cd73d4a.json backend/app/mocks/verify_matches/3b8f4d9778fc87f1.json backend/app/mocks/verify_matches/3c0500ca9683cfa9.json backend/app/mocks/verify_matches/3d42de4dca1e0da3.json backend/app/mocks/verify_matches/3d6bd5c5ee20d812.json backend/app/mocks/verify_matches/3e2aae2864d7226d.json backend/app/mocks/verify_matches/3e55adec1d0213ae.json backend/app/mocks/verify_matches/3feea81695b7eab2.json backend/app/mocks/verify_matches/4082ba0b514252c6.json backend/app/mocks/verify_matches/40a3361bdd6fe824.json backend/app/mocks/verify_matches/40f71811c253e5ec.json backend/app/mocks/verify_matches/41099cb25634835d.json backend/app/mocks/verify_matches/4183514b239bf85e.json backend/app/mocks/verify_matches/418d0440d6f7922c.json backend/app/mocks/verify_matches/422644c0b775e278.json backend/app/mocks/verify_matches/42722bd5835836fd.json backend/app/mocks/verify_matches/429a97ac49afe7bf.json backend/app/mocks/verify_matches/42cae011155a8733.json backend/app/mocks/verify_matches/42e20a5431dc70f3.json backend/app/mocks/verify_matches/43143003ebb8733b.json backend/app/mocks/verify_matches/446c932804d564f3.json backend/app/mocks/verify_matches/451723eaedadf79f.json backend/app/mocks/verify_matches/4570187c6e022da6.json backend/app/mocks/verify_matches/4603251b62eeb339.json backend/app/mocks/verify_matches/466d6436640835fd.json backend/app/mocks/verify_matches/467a4818c08e32a5.json backend/app/mocks/verify_matches/469b13637c126b58.json backend/app/mocks/verify_matches/46af2ebd61355b9b.json backend/app/mocks/verify_matches/48272b91fb9339f8.json backend/app/mocks/verify_matches/48fe56bf80bcb071.json backend/app/mocks/verify_matches/491658c8c76666fa.json backend/app/mocks/verify_matches/495d8c95f47e4ec0.json backend/app/mocks/verify_matches/49cd6e38fd650ba1.json backend/app/mocks/verify_matches/49d9058373f1c592.json backend/app/mocks/verify_matches/4a5f8a7ec2dfc27e.json backend/app/mocks/verify_matches/4aad3b6d462fe9e8.json backend/app/mocks/verify_matches/4c25ffe85896e13a.json backend/app/mocks/verify_matches/4d03e1daa968bea0.json backend/app/mocks/verify_matches/4d13e1d5143c7015.json backend/app/mocks/verify_matches/4ea18764e306f1c8.json backend/app/mocks/verify_matches/4f460ff2cefd758d.json backend/app/mocks/verify_matches/4fbb6ac2d5d98597.json backend/app/mocks/verify_matches/50cae41fc0a50c34.json backend/app/mocks/verify_matches/5155ee6404e79a50.json backend/app/mocks/verify_matches/518a530411353fed.json backend/app/mocks/verify_matches/525b07236ac40a5b.json backend/app/mocks/verify_matches/528ed2fe8bd54b76.json backend/app/mocks/verify_matches/534882bc7666b798.json backend/app/mocks/verify_matches/54690f4736f046bd.json backend/app/mocks/verify_matches/5552044be4bbb0e5.json backend/app/mocks/verify_matches/5587387dc3e3e5da.json backend/app/mocks/verify_matches/55f12bd0707186fe.json backend/app/mocks/verify_matches/56dca486a8191ebb.json backend/app/mocks/verify_matches/56de511cd0e7e026.json backend/app/mocks/verify_matches/56fb59adbca9b00e.json backend/app/mocks/verify_matches/58281a1088992560.json backend/app/mocks/verify_matches/58dacf61a08b6e98.json backend/app/mocks/verify_matches/58db8ecf6c7a64df.json backend/app/mocks/verify_matches/59cefd8fd4b2cca2.json backend/app/mocks/verify_matches/5a85bc2377f02cde.json backend/app/mocks/verify_matches/5aa31ba596575c45.json backend/app/mocks/verify_matches/5bf813e85b996a82.json backend/app/mocks/verify_matches/5c58e90d46a8afa5.json backend/app/mocks/verify_matches/5d16459299db1fa9.json backend/app/mocks/verify_matches/5e8ebd815639d4bd.json backend/app/mocks/verify_matches/5eb373aaa5ce0346.json backend/app/mocks/verify_matches/5f90516bcff1435c.json backend/app/mocks/verify_matches/6070ca06215c5335.json backend/app/mocks/verify_matches/62460ba9475e0278.json backend/app/mocks/verify_matches/629d601ca80f81b1.json backend/app/mocks/verify_matches/6301f2da7b3f79c3.json backend/app/mocks/verify_matches/63de95df7a0ad248.json backend/app/mocks/verify_matches/644c32b2ea607e0b.json backend/app/mocks/verify_matches/655e2132a36fb1b4.json backend/app/mocks/verify_matches/6690ed6f3f27b5b1.json backend/app/mocks/verify_matches/66bbbc37661995d6.json backend/app/mocks/verify_matches/66f0d18003ec4078.json backend/app/mocks/verify_matches/6704c234495bffc3.json backend/app/mocks/verify_matches/674fcfa87a5e6c25.json backend/app/mocks/verify_matches/6832f0b43fbc6c5d.json backend/app/mocks/verify_matches/684520474c004cd6.json backend/app/mocks/verify_matches/685e57b669642885.json backend/app/mocks/verify_matches/687036942105ce9c.json backend/app/mocks/verify_matches/688cf8f599570558.json backend/app/mocks/verify_matches/69256d8c10b2d67e.json backend/app/mocks/verify_matches/6941a992ac8427f8.json backend/app/mocks/verify_matches/6942eff44cf53967.json backend/app/mocks/verify_matches/69594f3f485f7b60.json backend/app/mocks/verify_matches/6b1c631eba4b8961.json backend/app/mocks/verify_matches/6b50840ed91b525d.json backend/app/mocks/verify_matches/6d58403cbc95d161.json backend/app/mocks/verify_matches/6dbc87a80fb58ae9.json backend/app/mocks/verify_matches/6dd98ae76344f8fb.json backend/app/mocks/verify_matches/6e4e3053f0a2d761.json backend/app/mocks/verify_matches/6e9469b5af3c4e11.json backend/app/mocks/verify_matches/6f1dca67f8143522.json backend/app/mocks/verify_matches/6f422f2dfe6699c5.json backend/app/mocks/verify_matches/6fe8c07e518339bd.json backend/app/mocks/verify_matches/70bfc14a3817f162.json backend/app/mocks/verify_matches/70ca563ab7a8ef7e.json backend/app/mocks/verify_matches/710863b1a7fbf7d6.json backend/app/mocks/verify_matches/71c269197376ceba.json backend/app/mocks/verify_matches/721c8ee9baccb412.json backend/app/mocks/verify_matches/72dc323739f30334.json backend/app/mocks/verify_matches/7309699cd0491513.json backend/app/mocks/verify_matches/73ba4a138fac8229.json backend/app/mocks/verify_matches/742a99c416e4dec4.json backend/app/mocks/verify_matches/7528e9ec3e7c553a.json backend/app/mocks/verify_matches/758e058b97f1bc48.json backend/app/mocks/verify_matches/75d0b4dc53f141b9.json backend/app/mocks/verify_matches/75f6689a2411ea58.json backend/app/mocks/verify_matches/7632f512a56bd0d4.json backend/app/mocks/verify_matches/779c7ce7b7543f85.json backend/app/mocks/verify_matches/779ef14d0a3f89a6.json backend/app/mocks/verify_matches/77a492178e81c5d6.json backend/app/mocks/verify_matches/783c59605e25f697.json backend/app/mocks/verify_matches/78b768c3bc20779a.json backend/app/mocks/verify_matches/78d29d09780fd5ee.json backend/app/mocks/verify_matches/7a65fa66906f356d.json backend/app/mocks/verify_matches/7aed48a5b5c843d4.json backend/app/mocks/verify_matches/7b87240516d45f00.json backend/app/mocks/verify_matches/7bcca5b64a562165.json backend/app/mocks/verify_matches/7be83be1891f0e88.json backend/app/mocks/verify_matches/7c988c7b53859e5b.json backend/app/mocks/verify_matches/7d87a01c565c91d8.json backend/app/mocks/verify_matches/7dd6cb566362a8e5.json backend/app/mocks/verify_matches/7df92524d2bb9966.json backend/app/mocks/verify_matches/7dfbf26cd53957c1.json backend/app/mocks/verify_matches/7e50d1964b1d89ab.json backend/app/mocks/verify_matches/7eb485d4444ec75c.json backend/app/mocks/verify_matches/7ec2d9cc52c21d82.json backend/app/mocks/verify_matches/7ed1effe89c3d707.json backend/app/mocks/verify_matches/7f33bdd5541f48f8.json backend/app/mocks/verify_matches/8014d24127b6f287.json backend/app/mocks/verify_matches/802a5e29841cea4f.json backend/app/mocks/verify_matches/80a2068ca81bf606.json backend/app/mocks/verify_matches/8226c2a2e6608830.json backend/app/mocks/verify_matches/838749b32f12a14b.json backend/app/mocks/verify_matches/83e11f3a9462fe27.json backend/app/mocks/verify_matches/8404cac2edc94c35.json backend/app/mocks/verify_matches/8479135522c55733.json backend/app/mocks/verify_matches/8513f3c40d2601e1.json backend/app/mocks/verify_matches/85244aff7e5ec0a7.json backend/app/mocks/verify_matches/85625a21d1e319d3.json backend/app/mocks/verify_matches/86166708db28a265.json backend/app/mocks/verify_matches/86282c2f02393294.json backend/app/mocks/verify_matches/8661a15419c2ed9f.json backend/app/mocks/verify_matches/866b02123728ccc2.json backend/app/mocks/verify_matches/868dead57e79dcf2.json backend/app/mocks/verify_matches/880785a6cf0e369f.json backend/app/mocks/verify_matches/888ee456fbc2c958.json backend/app/mocks/verify_matches/88dfef6ee965b727.json backend/app/mocks/verify_matches/891edc4141551d13.json backend/app/mocks/verify_matches/895ec1f6584376e6.json backend/app/mocks/verify_matches/897c879748869595.json backend/app/mocks/verify_matches/89ac7430dbd5fa27.json backend/app/mocks/verify_matches/89baa456769e42a9.json backend/app/mocks/verify_matches/8a7424beb84774a2.json backend/app/mocks/verify_matches/8b7c2f2830f60e4c.json backend/app/mocks/verify_matches/8c12f9432ddc6b69.json backend/app/mocks/verify_matches/8c4b0e8f9c9e4a09.json backend/app/mocks/verify_matches/8caabdc34536bef2.json backend/app/mocks/verify_matches/8cb306bd629209ff.json backend/app/mocks/verify_matches/90bdbd5eb46f04b8.json backend/app/mocks/verify_matches/90cd12f5fbb165e0.json backend/app/mocks/verify_matches/90d61380e3f136ca.json backend/app/mocks/verify_matches/93361ba7bb1c8675.json backend/app/mocks/verify_matches/935c3356a11ecd3b.json backend/app/mocks/verify_matches/939b5f0a345ae838.json backend/app/mocks/verify_matches/93b0a712f8a6da1f.json backend/app/mocks/verify_matches/947f5d263e3557fb.json backend/app/mocks/verify_matches/94c3c7139b2c99ed.json backend/app/mocks/verify_matches/9540359caddadc0c.json backend/app/mocks/verify_matches/957d33cde9611029.json backend/app/mocks/verify_matches/9718befeabaf9d00.json backend/app/mocks/verify_matches/976220e5a09848f6.json backend/app/mocks/verify_matches/9831ef0f98285668.json backend/app/mocks/verify_matches/98c2c6ef88d42f1c.json backend/app/mocks/verify_matches/9b71ca473f59d23c.json backend/app/mocks/verify_matches/9bf8080587d65cd8.json backend/app/mocks/verify_matches/9c187b88da9de029.json backend/app/mocks/verify_matches/9da9c7b258244be2.json backend/app/mocks/verify_matches/9e4e5b60f37b66fb.json backend/app/mocks/verify_matches/9e7db0272c4a0bf6.json backend/app/mocks/verify_matches/9eddd03d33c0cb7b.json backend/app/mocks/verify_matches/9f0051517c9273a7.json backend/app/mocks/verify_matches/9f1f0cc7427f99ad.json backend/app/mocks/verify_matches/a11d1be7df7ad4fb.json backend/app/mocks/verify_matches/a17b8f8a0550f1cd.json backend/app/mocks/verify_matches/a2730f8d118d99ec.json backend/app/mocks/verify_matches/a29d822fc3b0c568.json backend/app/mocks/verify_matches/a3275aefab1f97a1.json backend/app/mocks/verify_matches/a399b037acd8273b.json backend/app/mocks/verify_matches/a39f479dbc0d9b48.json backend/app/mocks/verify_matches/a3f1bb76f5c4ba6a.json backend/app/mocks/verify_matches/a4130bc93ade31c9.json backend/app/mocks/verify_matches/a4f125f0e58f22cc.json backend/app/mocks/verify_matches/a4f8ef6b1ce866bc.json backend/app/mocks/verify_matches/a55336aed1d2a6ac.json backend/app/mocks/verify_matches/a55520d99fc0fda2.json backend/app/mocks/verify_matches/a56a9bc5cc618a0d.json backend/app/mocks/verify_matches/a63eb8041bcc437a.json backend/app/mocks/verify_matches/a6a301e1c3f8a2b8.json backend/app/mocks/verify_matches/a6e809a1310a3b27.json backend/app/mocks/verify_matches/a719ba98e83a66a6.json backend/app/mocks/verify_matches/a7a4953594a27e10.json backend/app/mocks/verify_matches/a86534c118d99364.json backend/app/mocks/verify_matches/a8fe18380b3bc85c.json backend/app/mocks/verify_matches/a958c3ecc0e9edfc.json backend/app/mocks/verify_matches/a9fb813d380d2871.json backend/app/mocks/verify_matches/aa0b17d67476a8b6.json backend/app/mocks/verify_matches/aa5bb61580f094ac.json backend/app/mocks/verify_matches/aa7b30ed61a41ec5.json backend/app/mocks/verify_matches/ab0a5c98c2a41c5d.json backend/app/mocks/verify_matches/ab47f6838f00dad2.json backend/app/mocks/verify_matches/ac2edadafe49a36c.json backend/app/mocks/verify_matches/acdd34607b6d5ace.json backend/app/mocks/verify_matches/adc092d87ab012b5.json backend/app/mocks/verify_matches/aebbd9b82297a7ef.json backend/app/mocks/verify_matches/afd1d38d8423624b.json backend/app/mocks/verify_matches/b173ef941f9f16f8.json backend/app/mocks/verify_matches/b1c5678fe2d928f4.json backend/app/mocks/verify_matches/b1e2f028e1335556.json backend/app/mocks/verify_matches/b241368e9914e685.json backend/app/mocks/verify_matches/b24faf20c919cbfa.json backend/app/mocks/verify_matches/b273e9e838752dfd.json backend/app/mocks/verify_matches/b282b8950a2004cd.json backend/app/mocks/verify_matches/b365c1b93e157a35.json backend/app/mocks/verify_matches/b3fbe6fc67dadfe0.json backend/app/mocks/verify_matches/b49cce41974e0ea4.json backend/app/mocks/verify_matches/b53d2a452ca118db.json backend/app/mocks/verify_matches/b5a2242373b97587.json backend/app/mocks/verify_matches/b5c4b485ff7884c4.json backend/app/mocks/verify_matches/b6102b5556d15640.json backend/app/mocks/verify_matches/b6253cffca90ef36.json backend/app/mocks/verify_matches/b662c818899ec97a.json backend/app/mocks/verify_matches/b69113b412948a28.json backend/app/mocks/verify_matches/b6bf474a251b591a.json backend/app/mocks/verify_matches/b7898b87ff071b62.json backend/app/mocks/verify_matches/b79370c5683a5eea.json backend/app/mocks/verify_matches/b7b5a9cc0d3322dc.json backend/app/mocks/verify_matches/b8094588b691ccff.json backend/app/mocks/verify_matches/b80b7d62247f6455.json backend/app/mocks/verify_matches/b96058fd508167e1.json backend/app/mocks/verify_matches/ba7f08dc8dc0456c.json backend/app/mocks/verify_matches/ba993bc0e5a76a90.json backend/app/mocks/verify_matches/bb55c1d3a4aaddae.json backend/app/mocks/verify_matches/bc28b00908cc0a81.json backend/app/mocks/verify_matches/bde8fbab8a621ad7.json backend/app/mocks/verify_matches/bf02a0fcbeadc93c.json backend/app/mocks/verify_matches/bf9ef6dd8d48d13b.json backend/app/mocks/verify_matches/bfaa05015a589073.json backend/app/mocks/verify_matches/c03295ce117621ff.json backend/app/mocks/verify_matches/c0fea57ff9cc69df.json backend/app/mocks/verify_matches/c158df05d8d2ac25.json backend/app/mocks/verify_matches/c1acd1f90ccb4802.json backend/app/mocks/verify_matches/c2779e5a8f256ef3.json backend/app/mocks/verify_matches/c3314a112ff211b7.json backend/app/mocks/verify_matches/c3e32892f96f1af2.json backend/app/mocks/verify_matches/c41a6564e45fe4b0.json backend/app/mocks/verify_matches/c4ceba926026eb7f.json backend/app/mocks/verify_matches/c5c756d0e1a990e5.json backend/app/mocks/verify_matches/c699a2a6d699d469.json backend/app/mocks/verify_matches/c73138c31699fc76.json backend/app/mocks/verify_matches/c7d0f6cf5f901567.json backend/app/mocks/verify_matches/c809e739e643d84c.json backend/app/mocks/verify_matches/c8dd4268e74540ee.json backend/app/mocks/verify_matches/c976081b57180ac2.json backend/app/mocks/verify_matches/c9caac498bbd6ba9.json backend/app/mocks/verify_matches/c9d64ef148ea2212.json backend/app/mocks/verify_matches/cab886d804a4f45c.json backend/app/mocks/verify_matches/cb42a888cd136e9e.json backend/app/mocks/verify_matches/cbc10b9bb5201e2e.json backend/app/mocks/verify_matches/cd1ef9a82d9b81e9.json backend/app/mocks/verify_matches/cd54b900ef9a29d3.json backend/app/mocks/verify_matches/ce459eb793c588ea.json backend/app/mocks/verify_matches/cea5b38c81a68882.json backend/app/mocks/verify_matches/ceb610d0ffe4fa01.json backend/app/mocks/verify_matches/cf0c3aaf121265e4.json backend/app/mocks/verify_matches/d01c4d28cce0163a.json backend/app/mocks/verify_matches/d0e113e75a12f68c.json backend/app/mocks/verify_matches/d11859b03dbb1897.json backend/app/mocks/verify_matches/d193be8cd06566cf.json backend/app/mocks/verify_matches/d23b67289cbbb54a.json backend/app/mocks/verify_matches/d4cd93d1446607c6.json backend/app/mocks/verify_matches/d50a77243019c5fb.json backend/app/mocks/verify_matches/d51a1c092479993c.json backend/app/mocks/verify_matches/d54973e0e5fa1f4f.json backend/app/mocks/verify_matches/d5af68c9849e12d9.json backend/app/mocks/verify_matches/d77a61dd75eb0d24.json backend/app/mocks/verify_matches/d8ebd32d126a8fda.json backend/app/mocks/verify_matches/d91dfd0795ca1dd8.json backend/app/mocks/verify_matches/d9bbd20b5de89a48.json backend/app/mocks/verify_matches/d9c2583f496bf345.json backend/app/mocks/verify_matches/da2069821c5654a4.json backend/app/mocks/verify_matches/dbf174b609b49625.json backend/app/mocks/verify_matches/dd37ab5f51b513a6.json backend/app/mocks/verify_matches/dde953e818c4c6ba.json backend/app/mocks/verify_matches/de00f06affdca2cd.json backend/app/mocks/verify_matches/de318ff1047fcc16.json backend/app/mocks/verify_matches/de441fdb648e1729.json backend/app/mocks/verify_matches/dee89f0fa1fa5202.json backend/app/mocks/verify_matches/df8a57b632332bf6.json backend/app/mocks/verify_matches/dfa1ff563be83cde.json backend/app/mocks/verify_matches/e05cce336288c7dd.json backend/app/mocks/verify_matches/e13c2b4bdaf3b4e0.json backend/app/mocks/verify_matches/e18c1db5e58be40f.json backend/app/mocks/verify_matches/e18f7af5a03aef7c.json backend/app/mocks/verify_matches/e2c3e63f25346b4e.json backend/app/mocks/verify_matches/e2e4fe3ad91b4b74.json backend/app/mocks/verify_matches/e31f0cb7f6af9dac.json backend/app/mocks/verify_matches/e425d40c8db089a1.json backend/app/mocks/verify_matches/e460a3413fec9a74.json backend/app/mocks/verify_matches/e5348f8ff687eaae.json backend/app/mocks/verify_matches/e5881625ff49d206.json backend/app/mocks/verify_matches/e601412ad80d35c7.json backend/app/mocks/verify_matches/e63d03482bc593cd.json backend/app/mocks/verify_matches/e6949ee0e4a6d317.json backend/app/mocks/verify_matches/e6b559d1aaac3d02.json backend/app/mocks/verify_matches/e75a9cf0eaacdf9f.json backend/app/mocks/verify_matches/e7982fc0d6d15a3a.json backend/app/mocks/verify_matches/e79ffc943be6fd2a.json backend/app/mocks/verify_matches/e85c860964d8ec55.json backend/app/mocks/verify_matches/e9264cea11213349.json backend/app/mocks/verify_matches/ea7526f8adbbecff.json backend/app/mocks/verify_matches/ea9d4666d872703a.json backend/app/mocks/verify_matches/eb176c7cee610fe0.json backend/app/mocks/verify_matches/eb395d7c893e613b.json backend/app/mocks/verify_matches/ec35f41e1d655b61.json backend/app/mocks/verify_matches/ec5ad5eba67f0f6c.json backend/app/mocks/verify_matches/ec61c825194492bd.json backend/app/mocks/verify_matches/ec6b0338a04301ca.json backend/app/mocks/verify_matches/eca5fab4a1008daf.json backend/app/mocks/verify_matches/ed4c44e04476bb48.json backend/app/mocks/verify_matches/ee7570f3dcfefa9b.json backend/app/mocks/verify_matches/ef30f61d247269d7.json backend/app/mocks/verify_matches/ef655a65566929af.json backend/app/mocks/verify_matches/efce27f0e314b5aa.json backend/app/mocks/verify_matches/f089a2435b641f3a.json backend/app/mocks/verify_matches/f11abbed13d2156b.json backend/app/mocks/verify_matches/f1296e1ae0f203d5.json backend/app/mocks/verify_matches/f1fad686d64f1d69.json backend/app/mocks/verify_matches/f26a2a1280c04285.json backend/app/mocks/verify_matches/f294e4db20bd1677.json backend/app/mocks/verify_matches/f4e59cfa9d86c86a.json backend/app/mocks/verify_matches/f51a2ca0ea208b27.json backend/app/mocks/verify_matches/f56ae9fb7960cd69.json backend/app/mocks/verify_matches/f5b7e3b1aaa8eabd.json backend/app/mocks/verify_matches/f5b7fcdde9189610.json backend/app/mocks/verify_matches/f63eefbe30d31dbb.json backend/app/mocks/verify_matches/f693f7070f93e6de.json backend/app/mocks/verify_matches/f6ae6d51db3b18ad.json backend/app/mocks/verify_matches/f6b2feb569d841dc.json backend/app/mocks/verify_matches/f7e49d67bc281d99.json backend/app/mocks/verify_matches/f7f7c3c9d6c6f9dc.json backend/app/mocks/verify_matches/f87bb9106c32154d.json backend/app/mocks/verify_matches/f8b093aa5802ef07.json backend/app/mocks/verify_matches/f925a234896d19f2.json backend/app/mocks/verify_matches/f9372144bbdc5c3b.json backend/app/mocks/verify_matches/f9f198bf44404063.json backend/app/mocks/verify_matches/fa51c8261555202c.json backend/app/mocks/verify_matches/fa83158b2a34d01c.json backend/app/mocks/verify_matches/fa88772e3abd233d.json backend/app/mocks/verify_matches/fade2eaf229502d5.json backend/app/mocks/verify_matches/fbe34b040bda343b.json backend/app/mocks/verify_matches/fc4acb25f429da17.json backend/app/mocks/verify_matches/fc7cd348aa1ddfc2.json backend/app/mocks/verify_matches/fd0aec27efae89c4.json backend/app/mocks/verify_matches/fd4733eee1a28a82.json backend/app/mocks/verify_matches/fd4aaeaa6fd7919d.json backend/app/mocks/verify_matches/fdc94b5fdcb81ae0.json backend/app/mocks/verify_matches/fe2d2711204f2728.json backend/app/mocks/verify_matches/fe68f109e6ad95f3.json backend/app/mocks/verify_matches/fe7c53d6924630eb.json backend/app/mocks/verify_matches/ff765b33b60cafda.json backend/app/mocks/write_conclusion/1c343000a0e174e3.json backend/app/mocks/write_conclusion/e9a45388f0b4ce50.json backend/app/mocks/write_conclusion/f274e1bc39cbac41.json backend/app/parse/__init__.py backend/app/parse/docx.py backend/app/pipeline.py backend/app/prebuilt/NOTICE.md backend/app/prebuilt/__init__.py backend/app/prebuilt/lib_docx.py backend/app/prebuilt/lib_normalize.py backend/app/prompts/confirm_loss.md backend/app/prompts/explain_conflict.md backend/app/prompts/extract_functions.md backend/app/prompts/extract_units.md backend/app/prompts/match_units.md backend/app/prompts/verify_duplicates.md backend/app/prompts/verify_matches.md backend/app/prompts/write_conclusion.md backend/app/routers/__init__.py backend/app/routers/example.py backend/app/routers/runs.py backend/app/rules/__init__.py backend/app/rules/conflicts.py backend/app/schemas.py backend/app/store.py backend/app/units.py backend/app/validation.py backend/pyproject.toml backend/tests/conftest.py backend/tests/test_conclusion.py backend/tests/test_conflicts.py backend/tests/test_contract_smoke.py backend/tests/test_e2e_mock.py backend/tests/test_fixtures_valid.py backend/tests/test_functions.py backend/tests/test_health.py backend/tests/test_llm_schemas.py backend/tests/test_matching.py backend/tests/test_parse.py backend/tests/test_runs.py backend/tests/test_units.py backend/tests/test_validation.py backend/uv.lock data/case11/HackAlem AI_ ИИ-агент «Анализ организационной структуры и функционала».docx data/case11/diff-8-vs-9.md data/case11/Положение_о_внутреннем_аудите_редакция_8_обезличено.docx data/case11/Положение_о_внутреннем_аудите_редакция_9_обезличено.docx deploy/Caddyfile deploy/deploy.sh deploy/smoke.sh deploy/vps-bootstrap.sh docker-compose.prod.yml docker-compose.yml docs/ai-usage.md docs/case.md docs/disclosure-ready-text.md docs/img/.gitignore docs/img/01-upload.png docs/img/02-progress.png docs/img/03-units-overview.png docs/img/03-units.png docs/img/04-functions-new.png docs/img/04-functions.png docs/img/05-conflicts.png docs/img/06-source.png docs/img/07-conclusion.png docs/img/architecture.png docs/img/architecture.svg docs/img/capture-manifest.json docs/img/capture-notes.md docs/img/check_assets.py docs/launch.md docs/mix.md docs/regulations-2026-09-22.md docs/runbook-gui.md docs/sessions.md docs/spec-case11.md docs/tasks.md frontend/.dockerignore frontend/Dockerfile frontend/app/error.tsx frontend/app/example/page.tsx frontend/app/globals.css frontend/app/layout.tsx frontend/app/not-found.tsx frontend/app/page.tsx frontend/app/report/[id]/page.tsx frontend/app/runs/[id]/page.tsx frontend/components/conclusion-view.tsx frontend/components/conflicts-list.tsx frontend/components/duplicates-list.tsx frontend/components/example-form.tsx frontend/components/function-matrix.tsx frontend/components/health-badge.tsx frontend/components/run-progress.tsx frontend/components/source-drawer.tsx frontend/components/status-badge.tsx frontend/components/ui/badge.tsx frontend/components/ui/button.tsx frontend/components/ui/card.tsx frontend/components/ui/empty-state.tsx frontend/components/ui/spinner.tsx frontend/components/ui/tabs.tsx frontend/components/units-table.tsx frontend/components/upload-box.tsx frontend/eslint.config.mjs frontend/lib/api-runs.ts frontend/lib/api.ts frontend/lib/fixtures/report.ts frontend/lib/fixtures/run.ts frontend/lib/i18n.ts frontend/lib/types.ts frontend/lib/utils.ts frontend/next-env.d.ts frontend/next.config.ts frontend/package-lock.json frontend/package.json frontend/postcss.config.mjs frontend/public/.gitkeep frontend/tsconfig.json prompts/checkin_session.md prompts/readme_official.md prompts/sessions/README.md prompts/sessions/S01-contract.md prompts/sessions/S02-fixtures.md prompts/sessions/S03-ui-shell.md prompts/sessions/S04-parse.md prompts/sessions/S05-units.md prompts/sessions/S06-ui-upload.md prompts/sessions/S07-ui-report.md prompts/sessions/S08-runs.md prompts/sessions/S09-functions.md prompts/sessions/S10-matching.md prompts/sessions/S11-conflicts.md prompts/sessions/S12-ui-wire.md prompts/sessions/S13-schemas.md prompts/sessions/S14-conclusion.md prompts/sessions/S15-live-fixtures.md prompts/sessions/S16-validation.md prompts/sessions/S17-e2e.md prompts/sessions/S18-readme.md prompts/sessions/S19-disclosure.md prompts/sessions/S20-img.md prompts/timekeeper.md scripts/check.sh scripts/checkin.sh scripts/hooks/pre-push scripts/hooks/prepare-commit-msg scripts/ops/audit.sh scripts/ops/demo_run.py scripts/ops/init-ops-branch.sh scripts/ops/merge-train.sh scripts/ops/new-session.sh scripts/ops/prompt.sh status/README.md status/agents/S01.md status/agents/S02.md status/agents/S03.md status/agents/S04.md status/agents/S05.md status/agents/S06.md status/agents/S07.md status/agents/S08.md status/agents/S09.md status/agents/S10.md status/agents/S11.md status/agents/S12.md status/agents/S13.md status/agents/S14.md status/agents/S15.md status/agents/S17.md status/agents/S18.md status/agents/S20.md status/log-A.md status/log-B.md status/verdict.md
Обсуждение 0 комментариев
Войдите, чтобы комментироватьПока нет комментариев — будьте первым.