Марк Тьюрин
Цифровой детектив: Как проверять людей, компании и информацию по открытым источникам

Женщина в семи месяцах прошлого

— Я перенаправила сигнал сама.

Голос Лидии Воронцовой прозвучал из колонок так отчётливо, что Вера оторвалась от клавиатуры. На экране женщина смотрела прямо в объектив. За её плечом белела стена — слишком ровная и светлая для зала городских слушаний. На лице лежали знакомые тени, а в конце фразы Лидия едва заметно втянула воздух носом. Точно так же она делала на записи, которую Вера уже видела в открытом архиве.

Ролик длился пятьдесят четыре секунды. Под ним стояла подпись: «Лидия Воронцова. Последнее признание. Записано 19.03.2026, 00:43».

— Я знала, что карта подтопления устарела, — продолжала Лидия. — Я подписала старую схему и направила оповещение в Нижние Сады. Люди должны знать, кто отвечает за то, что случилось.

Вера поставила видео на паузу.

В редакции «Контура» гудел системный блок, из коридора доносился сухой шелест принтера. Осенний свет, пробивавшийся сквозь высокие окна, превращал стекло монитора в мутную воду. У соседнего стола стоял Лев Данилов и придерживал ладонью листы, чтобы сквозняк от вентиляции не разметал их по полу.

Вера снова включила последние десять секунд. Лидия произнесла ту же фразу — не запнулась, не отвела взгляда. Голос не дрожал. В нём слышалась усталость, но не страх; камера держалась неподвижно, словно говорившая заранее знала, где окажется объектив.

Ролик выглядел убедительно. Поэтому Вера не стала включать его целиком ещё раз.

— Ты услышал признание? — спросила она.

— Я услышал, что человек на экране говорит от первого лица, — ответил Лев. — Совет услышит остальное.

Он говорил сухо, без нажима, как обычно, когда торопился и не хотел этого показывать. На столе перед ним лежала закрытая папка с городским гербом. Рядом остывал кофе в бумажном стакане, который Лев принёс с собой: тёмное кольцо уже проступило на картоне.

— Что именно подтверждает ролик?

— Что ролик существует.

— Хорошо. А дата?

Лев глянул на подпись под окном проигрывателя.

— Там написано девятнадцатое марта.

— Там написано, что он записан девятнадцатого марта. Это разные вещи.

Вера вернулась на страницу, где ролик появился в открытом доступе. Не стала открывать файл из пересланного письма: перешла по ссылке, сверила адресную строку, сняла страницу целиком вместе с датой публикации и сохранила копию в редакционную папку. В заметке указала время проверки — 13:47, 18 октября 2026 года. Ссылку скопировала отдельно, не сокращая и не пропуская через сторонний сервис.

Публикация была размещена сегодня в 12:58. Под ней уже набралось несколько десятков откликов; люди цитировали слова Лидии без оговорок. Видео открывалось только внутри платформы. Исходника не было, а сведения о медиаданных относились лишь к перекодированной версии для просмотра.

Вера прижала большим пальцем край блокнота, чтобы тот не закрывался, и вывела на первой свободной странице:

«Публикация: 18 октября, 12:58.

Подпись: запись 19 марта, 00:43.

Исходный файл: отсутствует».

Последняя строка раздражала своей аккуратностью. Она не доказывала, что ролик поддельный, — лишь напоминала, что редакции нечем проверить дату съёмки.

— На странице есть сведения о том, кто загрузил запись? — спросил Лев.

— Название канала и дата регистрации. Владелец не подтверждён. — Вера задержала курсор над ссылкой на профиль и не нажала. — Даже если там фотография и настоящее имя, это не скажет, кто сделал ролик.

— Ты уже решила, что это фальшивка?

Она посмотрела на него.

— Я решила, что подпись утверждает больше, чем подтверждают доступные сведения.

Лев качнул головой. Не спорил — просто убрал ладонь с папки и разложил бумаги веером. За окном проехал грузовик; от низкого гула задребезжал стакан на подоконнике.

Вера открыла новую вкладку и ввела в поиск фразу из ролика, взяв её в кавычки. Первый результат вёл к записи открытых слушаний о карте подтопления Нижних Садов. В архивной карточке значилось: заседание прошло 11 февраля 2026 года. Вера запустила запись и перемотала к выступлению Лидии.

Звук был хуже, чем в новом ролике: глухой, с металлическим эхом. Лидия говорила спокойно, почти без интонации:

«На старую схему нельзя опираться при передаче предупреждений. В Нижних Садах она не совпадает с фактическим направлением воды».

Вера вернулась к ролику. Там Лидия произносила: «Я подписала старую схему и направила оповещение в Нижние Сады».

Одно не отменяло другого. Но от предупреждения до признания было расстояние, которое не преодолеть одним сходством голосов.

Вера сохранила ссылку на запись слушаний, затем сделала снимок нужного фрагмента страницы — с датой и названием архива. В личной заметке добавила: «В открытой записи Лидия предупреждает о неверной карте. Проверить, из какого материала собран ролик. Не сопоставлять по одной фразе».

— Голос тот же, — сказал Лев.

— Похожий.

— И лицо.

— Тоже похоже.

— Если ты начнёшь говорить так о каждом слове, у нас ничего не останется, кроме кавычек.

— Кавычки переживают поспешный вывод.

Лев отпил холодного кофе, поморщился и поставил стакан на стол, будто надеялся согреть его одним взглядом. Вера впервые за последний час отвела глаза от экрана. У клавиатуры лежала открытая с утра пачка крекеров; крошки застряли между клавишами. Она стряхнула одну с пробела и вернулась к поиску.

Официальное сообщение о гибели Лидии Воронцовой Вера нашла на городском сайте. Публикация была размещена 19 марта в 07:12. В тексте сообщалось, что городская инженерка погибла вечером 18 марта. Та же формулировка сохранилась в копии страницы из архива открытых сайтов, сделанной в тот же день: в отличие от самой городской страницы, архивный снимок фиксировал её прежний вид.

Вера сверила адрес, время публикации и дату архивного снимка, потом открыла сообщение в городском канале. Там всё было пересказано почти дословно.

Она не стала увеличивать портрет Лидии на экране, искать семейные фотографии или сопоставлять черты лица с другими изображениями. Тем более не нажала на предложение автоматического распознавания. Перед ней были две вещи: городское сообщение о том, что Лидия погибла вечером 18 марта, и подпись под роликом, утверждавшая, что запись сделана 19 марта в 00:43.

Вера занесла дату в блокнот и приписала рядом: «По сообщению города. Время публикации — 19 марта, 07:12. Точное время гибели не указано».

— Вот и несостыковка, — произнёс Лев.

— Расхождение между подписью и публичной хронологией.

— Если подпись правдива, Лидия была жива после собственной смерти.

— Если подпись правдива.

Лев постучал ногтем по краю стола. Раз, другой. В этом движении угадывалась старая привычка: сперва проверить, выдержит ли поверхность, и лишь потом ставить на неё что-нибудь тяжёлое.

Когда-то он подписал сводное заключение о безопасности городской системы, не заметив, что к материалам не приложили важную часть карты. Лев до сих пор замечал пробелы в документах быстрее, чем большинство людей замечали сами документы, — но та подпись продолжала его преследовать. Вера никогда не напоминала о ней. Ему не требовалось напоминать.

— А если городское сообщение ошибается? — спросил он.

— Тогда нужна другая опора. Сейчас у нас есть официальный текст и его архивная копия: город сообщил, что Лидия погибла вечером восемнадцатого. Точное время не указано. Дату съёмки ролика это тоже не подтверждает.

— А подпись подтверждает?

— Подпись показывает, что кто-то указал эту дату. Не кто именно, не на каком основании и не то, что запись действительно тогда сделана.

Лев достал из папки верхний лист и положил перед ней.

— Тогда посмотри на это.

Повестка городского совета. В шапке стояли дата и время ближайшего заседания: 19 октября 2026 года, 18:00. В приложении значилось срочное обсуждение контракта на замену узлов городской системы экстренного оповещения. На следующей странице было расписание испытания: 20 октября, 04:20.

Вера перечитала строки и подняла на Льва глаза.

— Когда получил?

— В 13:31 страница совета уже была обновлена. Я скачал публичный документ и распечатал. Адрес и дату публикации оставил на первой странице.

Он протянул ей лист с QR-кодом и полным адресом. Вера проверила ссылку на телефоне, затем открыла тот же документ в браузере. Дата совпадала. Она сохранила текущую версию файла и сняла страницу с временем публикации: если совет исправит повестку, бумага этого не покажет.

— Голосование завтра в шесть вечера, — сказала она. — Испытание через десять часов двадцать минут.

— Если расписание не сдвинут.

— В документе пока так.

Лев положил рядом ещё один лист — прогноз городской гидрослужбы. Его опубликовали в 12:05, обновили в 13:10. Нижние Сады в таблице уровней воды были отмечены красной полосой. При сохранении текущих условий опасного уровня вода должна была достичь 20 октября к 08:00.

Вера взглянула на часы в углу экрана: 14:16. К прогнозу прилагалась карта. Синяя линия реки пересекала окраинный сектор, а возле Нижних Садов стояли крошечные серые цифры. Лев наклонился к листу.

— Здесь нужен исходный слой. На этой копии легенда обрезана.

— Карта в прогнозе помечена как справочная. Уровень указан в таблице.

— Если граница сектора неверна, таблица людей не спасёт.

— Ты видишь ошибку в самой границе?

Лев помедлил, вглядываясь в край изображения.

— Я вижу, что карту уменьшили и отрезали легенду.

— Это мы можем подтвердить.

Он отложил лист, но ещё секунду удерживал угол пальцами. Вера знала, что он мысленно возвращается к тому заключению, где сверил перечень приложений, счёл комплект полным и не заметил, что части схемы не хватает. Ошибся он не в расчётах. Он поверил обложке.

— Испытание назначили до подъёма воды, — сказал Лев.

— На три часа сорок минут.

— Если всё пройдёт штатно.

— Если нет, у города останется меньше времени. Но мы пока не знаем, что именно проверяют.

— В повестке указаны переключение каналов и проверка районных узлов.

— Это и проверяют. Не то, кто виноват в старом сбое.

Лев подвинул к себе повестку и провёл пальцем под строкой о контракте.

— Ролик появляется за день до голосования. В нём погибшая инженерка будто признаётся, что отправила сигнал не туда. А наутро после голосования город испытывает систему в районе, о котором она предупреждала. Слишком удобно, чтобы не заметить.

— Заметить можно. Связывать — пока нет.

— Я не предлагаю связывать. Я предлагаю успеть предупредить.

— Кого и о чём?

— Совет. Гидрослужбу. Жителей.

— У нас нет исходника, независимого подтверждения даты и сведений о том, кто разместил ролик. Если мы напишем, что Лидия призналась, сами превратим подпись в факт.

— А если промолчим, эту версию завтра назовут установленной прямо в зале совета.

— Тогда сообщим, что в сети распространяют ролик с неподтверждённой датой. Укажем: город отнёс гибель Лидии к вечеру 18 марта. Но называть видео признанием не станем.

Лев снял очки и протёр линзы краем рубашки. Резче, чем требовалось.

— Боюсь, к завтрашним шести они успеют проголосовать, пока мы будем полировать формулировку.

Вера посмотрела на пустое поле черновика в редакционной системе. Курсор мигал после первого набранного слова: «В сети». Одного нажатия хватило бы, чтобы осторожная строка превратилась в заголовок, который разойдётся быстрее любых уточнений.

Три года назад она уже выбрала уверенную формулировку. По открытому профилю, нескольким фотографиям и короткой биографии Вера решила, что нашла страницу парамедика, фигурировавшего в расследовании. Ошибку обнаружили не сразу. За это время публикация успела собрать чужие адреса, обвинения и угрозы. Вера удалила материал, извинилась и сохранила черновик — как напоминание: страницу в интернете можно проверить и всё равно ошибиться человеком.

Палец завис над клавишей публикации.

Вера убрала руку.

— Если мы назовём это признанием, — сказала она, — Лидия не сможет нас поправить.

Лев снова надел очки.

— Она не могла снять ролик после смерти.

— Подпись ставит съёмку позже даты, когда город сообщил о её гибели. Это серьёзная проблема. Но подпись могла появиться позже самого видео. Или городская дата может быть неполной. Или ошибочна сама страница. Выбирать версию я не стану, пока не проверю.

— Ты допускаешь, что видео настоящее?

— Я допускаю, что не могу подтвердить его происхождение.

Лев отвернулся к окну. Серый дневной свет лёг на его профиль и подчеркнул белую нитку на воротнике. Казалось, он собирается продолжить спор, но вместо этого отставил стакан подальше от документов.

Вера открыла черновик и переписала первую строку:

«В сети распространяется ролик, в котором Лидии Воронцовой приписывается признание в перенаправлении сигналов оповещения. В подписи указана дата записи — 19 марта 2026 года, 00:43. Город сообщил о гибели Воронцовой вечером 18 марта. Редакция не располагает исходным файлом и не подтверждает дату съёмки, подлинность речи или обстоятельства появления ролика».

Она прочитала текст вслух. Удобного обвинения в нём не было, зато каждое утверждение можно было проверить. Вера сохранила заметку для внутреннего пользования и пометила: «Не публиковать без дополнительной проверки». Ниже добавила три ссылки: на страницу ролика, архив городского сообщения о гибели и повестку совета.

— Так мы теряем несколько часов, — сказал Лев.

— Мы не покупаем их ценой чужого имени.

— У нас и без того почти ничего не осталось.

Вера посмотрела на расписание. До голосования оставались сутки с небольшим. Потом — испытание в 04:20 20 октября и прогноз опасного уровня воды к восьми утра. Три срока сходились в одной точке, хотя ни один пока не объяснял, почему под роликом появилась дата, наступившая после указанной городом даты гибели Лидии.

— Отправлю совету запрос с точной формулировкой, — сказал Лев. — Спрошу, представят ли ролик на заседании и на чём основано расписание испытания. Без обвинений.

— Добавь, что у нас расхождение в датах. Не называй его доказательством монтажа.

— Понял.

Он открыл на телефоне страницу обратной связи совета и принялся печатать. Вера проверила, не осталось ли в заметке слов «Лидия призналась». Она вела курсором медленно, почти бережно. Сколько ни слушай голос, подпись от этого надёжнее не становилась.

В 15:52 Лев сохранил черновик запроса. Отправлять его они не стали: Вера хотела приложить точную ссылку на архивную копию, а не только на городскую страницу. Она перепроверила адрес, дату сохранения и время публикации сообщения, после чего вернулась к ролику. Подпись должна была остаться на месте и после обновления страницы.

«Записано 19.03.2026, 00:43».

Цифры были небольшими, серыми и совершенно спокойными. На часах сменились минуты. Вера сделала ещё один снимок экрана, на этот раз вместе с адресной строкой, и положила рядом с предыдущим. Кадры отличались только временем проверки; дата под роликом осталась прежней.

— Вот эта минута, — сказала она.

— 00:43?

— Да. Её указали слишком точно, чтобы мы прошли мимо.

Лев посмотрел на застывшую улыбку Лидии. Та уже не говорила; на экране остался неподвижный рот, приоткрытый на последнем слове.

— Проверим, что происходило в эту минуту, — сказал он.

Вера закрыла черновик, оставив открытыми три окна: ролик, городское сообщение и повестку. Ни одно не отменяло два других. А под видео всё ещё стояло время, которое не могло быть временем съёмки, если публичная хронология была верна.

Она внесла 00:43 в верхнюю строку новой заметки.

Минута, которой не было

Минута, которой не было

Вера обвела в блокноте 00:43 и провела черту к надписи под роликом.

— Что именно мы сейчас проверяем? — спросил Лев.

— Не время съёмки. Пока — утверждение, что запись появилась в эту минуту.

— А если время просто поставили вручную?

— Тогда это всего лишь надпись. Не показание часов камеры.

Она сказала это, не отрывая взгляда от записей, и только потом заметила, как крепко сжимает ручку: ноготь побелел. На экране по-прежнему застыло лицо Лидии Воронцовой — голова чуть наклонена, губы разомкнуты на слове, которого уже не было слышно.

Вера открыла новую вкладку и набрала название городского культурного центра, добавив: «архив открытых слушаний». Поисковая выдача сперва принесла афишу детского хора, расписание экскурсий и старую новость о ремонте крыши. Она изменила запрос, убрала слово «архив», добавила фамилию Лидии. Строка с городского сайта нашлась ближе к концу первой страницы.

Лев придвинул стул, не отрывая взгляда от монитора.

— Официальная страница?

— Домен городской. Внизу указан культурный центр, ссылка ведёт в тот же раздел сайта. Сейчас открою саму запись.

Страница медлила. Пока она загружалась, Вера успела рассмотреть выцветший баннер с фотографией зала: полукруглые ряды кресел, деревянная кафедра, флаги у стены. Под ним стояли две ссылки — на программу слушаний и видеозапись. Ниже мелким шрифтом указывались дата заседания и дата публикации архива.

Лев хмыкнул:

— Почти восемь месяцев пролежала у них в открытом доступе, и никто не заметил.

— Кто-то мог заметить. Но это ещё не значит, что запись смотрели от начала до конца.

— Ты уже делишь людей на тех, кто досмотрел, и тех, кто бросил?

— Я делю факты и предположения. Так безопаснее.

Вера нажала на ссылку. Встроенный плеер занял почти весь экран. Камера смотрела через головы слушателей на стол президиума. В углу виднелась дата — двадцать шестое февраля 2026 года. Под плеером значилось: «Запись открытого заседания комиссии по уточнению карты зон подтопления». Рядом была ссылка на программу в формате PDF.

Вера сначала сохранила адрес страницы и снимок экрана с датой, затем скачала программу. На первой странице перечислялись вопросы повестки, фамилии докладчиков и время выступлений. Под пунктом о проекте карты стояли имя Лидии Воронцовой и её должность — городская инженерка.

— Значит, она действительно выступала на слушаниях, — сказала Вера. — И это было до её смерти.

— За три недели до её смерти, — уточнил Лев. — Слушание двадцать шестого февраля. Город сообщил о её гибели вечером восемнадцатого марта.

Вера посмотрела на надпись под вирусным роликом: «Записано 19.03.2026, 00:43».

— Если подпись обозначает момент записи, Лидия не могла произнести эти слова в тот день. Но мы не знаем, что автор имел в виду под словом «записано». Публикацию, загрузку, обработку — всё что угодно.

— Или удобную дату, чтобы ролик выглядел свежим.

— Тоже версия. Не вывод.

Лев приподнял бровь, но спорить не стал. Развернул плеер на весь экран. Пошла заставка культурного центра, зашуршала бумага, зазвучал гул зала. Камера была установлена в глубине помещения; из-за задранного края столешницы лица в президиуме казались ниже, чем были. На микрофоне перед председателем горела красная точка.

— Узнаёшь помещение? — спросил Лев.

— Кафедра та же. И складка на занавесе похожа. Но сходство зала ещё не связывает эти два файла.

— Значит, будем считать складки.

— Нет. Будем смотреть, что именно в записи.

На экране председатель комиссии перечислял пункты повестки. Первые двадцать минут ушли на утверждение участников и пояснения по гидрологическим данным. Потом к кафедре подошла Лидия. На ней была светлая рубашка, под мышкой — папка, на правом запястье — тонкий браслет. Такой же мелькал в вирусном ролике, когда она поднимала руку.

Вера потянулась к клавиатуре, но остановила видео.

— Браслет совпадает, — сказала она. — Это помогает сверить кадры, но не доказывает, откуда взяли ролик.

— Зато эта запись была в открытом доступе за недели до её смерти.

— Да.

Лев снова включил видео.

Лидия говорила негромко, с ровной уверенностью человека, который уже не раз объяснял одно и то же и устал подбирать слова. Она указывала на экран за столом комиссии, где цветными пятнами была показана карта. Изображение расплывалось: камера не могла одновременно навести резкость на докладчицу и проекцию.

— На этой версии стрелка ведёт к Нижним Садам, — произнесла Лидия. — Посмотрите на обозначение. Здесь участок назван безопасной зоной.

Она помолчала, повернулась к председателю и указала на легенду карты.

— Нет. Я не подтверждаю эту схему. Это неверная карта. Безопасная зона находится у школы, на северном склоне. Если послать людей по этой стрелке, они уйдут от безопасного места в низину.

Лев остановил запись.

— Это есть в ролике?

Вера открыла вкладку с коротким видео. Они посмотрели его ещё раз — теперь не целиком, а отрезок за отрезком. Лидия произносила: «…в Нижних Садах. Посмотрите на обозначение. Здесь участок назван безопасной зоной». Затем изображение едва заметно дёргалось, будто кусок кадра выпал. Голос продолжал: «Я видела эту схему до испытания». Вслед за этим появлялся крупный план титра: «Лидия знала».

Лев вернулся к полной записи, отмотал к тому же месту и взглянул на счётчик плеера.

— Здесь она говорит: «Нет. Я не подтверждаю эту схему». В короткой версии после слова «обозначение» сразу начинается другая фраза.

— Найди стык.

Он перемотал на несколько секунд назад. В коротком ролике Лидия ещё держала руку у проекции; в следующем кадре ладонь уже лежала на краю кафедры. Ракурс не менялся, но движение пропадало. Лев поставил два окна рядом и несколько раз переключил их, сверяя жесты и слова.

— В исходнике она опускает руку, потом председатель задаёт вопрос, — сказал он. — В коротком куске этого нет. Но сам по себе пропуск движения ещё можно объяснить перекодированием.

— Что ещё?

— Реплика председателя. И слово «нет». В исходнике они звучат перед фразой о карте. В ролике — нет. Там пропущен целый разговор.

Он поставил запись на отметку 31:18, затем на 32:14. Между этими точками шла почти минута непрерывного обсуждения. В коротком ролике её не было вовсе.

— По программе за выступлением идут вопросы комиссии, потом — вопросы жителей, — сказала Вера, сверившись с PDF. — Деталей там нет, но порядок совпадает с записью.

— И этот провал как раз приходится на вопросы, — заметил Лев.

— На пропуск в ролике, — поправила Вера. — Не на имя того, кто его выложил.

Он кивнул, однако напряжение с его лица не ушло. На экране председатель что-то спрашивал Лидию; без наушников слов было не разобрать. Лев вытащил из ящика проводную гарнитуру, проверил штекер и подключил её к компьютеру.

Вера снова запустила запись.

— Вы говорите о той карте, которую комиссия получила перед заседанием? — спросил председатель.

— Я говорю о макете, который мне прислали, — ответила Лидия. — Не об утверждённой версии.

Вера остановила плеер на слове «макете» и посмотрела на Льва.

— Этого в коротком ролике нет.

— Потому что там вырезали вопрос.

Они продолжили просмотр. Лидия раскрыла папку и вынула несколько листов. Один подняла к камере, но текст остался неразборчивым. Вирусное видео начиналось с того, что лист уже был у неё в руках.

— Я направляла поправки дважды, — говорила Лидия. — На этой карте нижняя часть Садов отмечена как безопасная зона. Там низина, и при подъёме воды именно туда придёт первый поток. Люди, которые пойдут по стрелке, уйдут от холма к воде. Я просила снять эту версию с презентации, пока маршрут не проверят.

Она не повышала голоса. Пальцы сжали край листа, и бумага слегка согнулась.

Председатель уточнил, когда она направила замечания. Лидия назвала даты и номера входящих. Потом кто-то из зала спросил, почему в протоколе она указана как разработчик карты. Она ответила, что её фамилия стояла в ранней технической таблице, а финальные обозначения добавили уже после её замечаний. Председатель попросил внести в протокол уточнение: инженерка оспаривает содержание макета и не подтверждает его как безопасный маршрут.

Запись продолжалась ещё почти двадцать минут. Вера слушала, как Лидия снова и снова возвращается к одному и тому же: неверное направление, низина, безопасная возвышенность у школы. Сначала усталость в её голосе звучала почти как раздражение. К концу выступления она говорила медленнее, словно тщательно подбирала слова для людей, которые могли изменить карту, но не хотели трогать привычный порядок согласования.

Лев снял наушник.

— Теперь понятно, что вырезали.

— Понятно, что фразу про Нижние Сады взяли из этого выступления, — сказала Вера. — А в полной записи она стоит внутри предупреждения. Лидия не признавалась, что направляла людей в опасную зону. Она объясняла, что это сделает карта.

— Заголовок утверждает обратное.

— Заголовок не становится правдой оттого, что к нему прикрепили её лицо.

Вера снова открыла короткий фрагмент. На этот раз следила не за Лидией, а за краями кадра. В начале изображение было чуть зернистее оригинала, потом выравнивалось. В нижнем углу на миг вспыхнул белый пиксель. Между репликами слышался короткий щелчок, а в паузе — звук, похожий на вдох.

— Можно было взять официальный файл, обрезать и поставить новое время, — сказал Лев. — Голос заново создавать не пришлось бы.

— Можно было. Но следы правки ещё не называют нам человека, который её сделал.

— Ты даже слово «смонтировали» произносишь так, будто оно может обидеться.

Лев откинулся на спинку стула. Его взгляд задержался на титре «Лидия знала».

— Я однажды подписал заключение, не проверив, приложили ли к нему всю карту, — сказал он. — Одного пропуска хватило, чтобы документ выглядел убедительно.

Вера наконец посмотрела на него, а не на экран. В голосе Льва не было оправдания; он будто снова ставил подпись под тем заключением.

— Ты сейчас пытаешься меня утешить? — спросил он.

— Нет. И не собираюсь делать вид, будто ошибка была пустяком. Но мы не должны повторять её — теперь уже с чужой историей.

На экране продолжалась полная запись. Лидия, убрав листы, отвечала на вопрос из зала.

Вера сохранила три изображения: страницу культурного центра с датой и ссылкой, страницу программы с пунктом о выступлении Лидии и кадр полной записи, где она указывала на карту. Отдельно — кадр короткого ролика с титром. Под каждым снимком Вера внесла адрес и время проверки. В заметках разнесла наблюдения по разным строкам: полный файл размещён на официальной странице; фрагмент снят в том же зале; в нём пропущены вопрос председателя, отрицание и предупреждение о неверной карте; надпись «Записано 19.03.2026, 00:43» не сообщает, когда именно снимали или загружали ролик.

Лев следил за экраном, пока она печатала.

— Если мы напишем, что видео смонтировано, это будет обосновано?

— Напишем, что опубликованный ролик выборочно обрывает выступление и меняет его смысл. Источник фрагмента с высокой вероятностью — запись слушаний. А способ обработки и тот, кто её сделал, требуют отдельной проверки.

— Даже если профиль выложившего ролик существует давно?

— Да.

— Даже если под роликом всё время стоит одно и то же имя?

Вера на секунду прикрыла глаза. Три года назад она привязала лицо с фотографии к ложному публичному профилю. Совпадений ей тогда хватило, открытые сведения показались удостоверением личности, а опровержение появилось лишь после того, как человека уже затравили.

— Учётная запись — это след, — сказала она. — Не готовый ответ о том, кто за ней стоит.

— Времени на осторожность у нас немного.

Вера взглянула на календарь в углу экрана. До голосования по срочному контракту оставался день. Завтра, девятнадцатого октября, в шесть вечера городской совет должен был решить, продлевать ли работу подрядчика. Испытание системы назначили на двадцатое, в 04:20. По прогнозу, к восьми утра уровень воды в Нижних Садах мог стать опасным.

— Именно поэтому ошибаться нельзя, — сказала она.

Лев повернул к ней монитор с программой слушаний.

— Внизу есть протокол и приложения. Может, там указан номер версии карты, которую она показывала.

Вера прокрутила страницу культурного центра. Под видеозаписью и правда находились ещё две ссылки: «Протокол» и «Материалы заседания». Она открыла первую. PDF оказался сканом; страницы шли неровно, одна была чуть перекошена, словно её положили на стекло копировального аппарата не с первого раза.

В конце протокола перечислялись приложения. Лист с картой значился под номером два. Вера увеличила строку: «Схема маршрутов эвакуации, один лист». Ниже стояла отметка, что копия заверена.

— Забирай страницу, — сказал Лев. — Завтра запросим архивную версию.

Вера сохранила файл и прокрутила к последнему листу. Внизу теснились три круглые печати, частично наложенные друг на друга. Чернила на самой нижней были темнее остальных, а край оттиска пересекал строку с названием приложения.

Она увеличила изображение.

На печатях различались три наименования: городская комиссия, культурный центр и «Маяк Инжиниринг». Край третьей закрывал часть даты заверения.

Лев наклонился к экрану.

— Подрядчик заверял протокол?

Вера промолчала. Сохранила страницу целиком, не обрезая печатей и не меняя контраст, затем вернулась к ролику. Под ним всё ещё стояло имя учётной записи, а рядом — время, которое ничего не говорило о человеке за экраном.

На мониторе три печати лежали одна на другой, словно каждая пыталась закрыть предыдущую.

Три печати

Три печати

— Не режь изображение, — сказал Лев.

Вера уже навела курсор на панель кадрирования, но остановилась. На мониторе три круглые печати теснились у нижнего края протокола. Тёмный оттиск «Маяк Инжиниринг» заходил на строку с названием приложения, другой закрывал последние цифры даты. Стоило обрезать страницу — и получилась бы аккуратная картинка, из которой исчезло всё, что могло ей противоречить.

— Я и не собиралась.

Она сохранила скан целиком. В строке состояния экрана светилось: 18 октября 2026 года, 15:53. Вера сделала копию файла, записала адрес страницы и время скачивания, затем открыла исходник ещё раз, чтобы убедиться: при сохранении ничего не сдвинулось. На листе с картой по-прежнему значилось: «один лист». Под строкой стояла отметка о заверении.

Она отправила страницу на печать, забрала лист из принтера в редакционном коридоре и положила рядом с распечатками.

— Подрядчик удостоверяет приложение к протоколу комиссии, — сказал Лев. — Звучит как услуга, которую забыли внести в смету.

— Или как печать на копии, которую ему передали. Мы не знаем, кто держал оригинал и что именно заверял.

Лев посмотрел на неё поверх оправы. У рта обозначилась складка.

— Ты каждый раз оставляешь обвинению запасной выход.

— Не обвинению. Человеку, которого мы ещё не нашли.

Вера увеличила оттиск, не меняя контраст. Чернила распадались на пиксели. Внутренний обод печати «Маяка» пересекал тонкую линию карты; по скану нельзя было понять, лежала ли печать на исходном листе или на копии.

Она свернула PDF и открыла городскую страницу закупок. Лев достал из папки распечатки контрактных карточек — собирал их ещё тогда, когда думал, что расследование упрётся в один неудачно оформленный договор. Поля листов были исписаны его мелким почерком.

— Если печати поставили не случайно, надо выяснить, где эти трое пересекались до протокола. Не в зале заседаний — в платежах, поставках, доступе к материалам.

— И в датах.

Лев раскрыл блокнот.

— Даты хотя бы не обижаются, когда их проверяют.

— Зато их легко принять за доказательство.

— У меня было много лет, чтобы оценить твою нежность к бумагам.

Он сказал это сухо, но взгляд на мгновение задержался на её руке. Вера прижала ладонью край распечатки и выровняла лист, хотя тот и так лежал ровно.

В городском портале нашлась карточка контракта на модернизацию системы оповещения. Исполнитель — ООО «Порог-Системы». Сумма, срок, заказчик, номер процедуры. Внизу — перечень документов и приложения с безобидными названиями: календарный план, спецификация оборудования, порядок взаимодействия с соисполнителями.

— Вот, — Лев отметил нужную строку. — Контракт заключили в июне. Компания существовала задолго до конкурса, адрес не меняла. Скучная история.

— Запиши, что проверили регистрационные сведения и не нашли перемен. И откуда взяли копию.

Он помедлил, потом вывел на полях ссылку и время доступа. Ручка нажала слишком сильно: на бумаге продавилась черта.

В приложении к контракту «Порог-Системы» значился соисполнитель — ООО «Рубеж-Сервис». Ему поручали техническое обслуживание оборудования в Нижних Садах. Суммы и подробного перечня работ в карточке не было; файл числился приложением к уведомлению о привлечении третьих лиц.

Лев перечитал строку.

— Промежуточное звено.

— Пока только название в приложении.

— У тебя любой мост начинается с доски, которую ещё не проверили на гвозди.

— А у тебя любой гвоздь немедленно становится мостом.

Он тихо усмехнулся и обвёл слово «соисполнитель» тонким прямоугольником.

В карточке «Рубеж-Сервиса» стояла дата регистрации — шестое мая. Тендер объявили тринадцатого. Между ними помещалась неделя и несколько часов: компания появилась на свет в коротком коридоре перед закупкой.

— Семь дней, — сказал Лев.

— Этого мало, чтобы объявить её созданной под тендер. Документы могли готовить заранее, фирму могли открыть для другой работы. Или просто ждали публикации закупки.

— Три версии.

— Лучше три версии, чем наша догадка, переодетая в факт.

Вера сохранила карточку. Юридический адрес «Рубеж-Сервиса» находился в восточной части города, а для официальной корреспонденции был указан общий электронный адрес. Она переписала его в блокнот и открыла сведения о «Маяк Инжиниринг».

Юридический адрес «Маяка» оказался на другом конце Зареченска. Компания работала с городскими заказчиками не первый год. Вера пробежала глазами сведения о руководстве, пока не дошла до контактов для официальных запросов, — и замерла.

— Лев.

Он пододвинул стул.

— Что?

— Сравни адрес.

Вера вывела на экран обе карточки. Два названия, два юридических адреса, один и тот же ящик для официальной корреспонденции.

Лев снял очки, протёр их краем рубашки и снова надел.

— Совпадает.

— Совпадение, — поправила Вера. — Не контроль.

— Я ещё не успел сказать «контроль».

— Но уже посмотрел так, будто собирался.

Лев придвинул к себе распечатки.

— Общий бухгалтер, юридический представитель, обслуживающее агентство. Или старый контакт в карточке. Или компании связаны. Ни одна версия пока не отвечает на вопрос, кто заверял карту.

— И даже связь не говорит, кто распоряжался людьми.

Вера открыла обе страницы рядом и сделала снимок так, чтобы в кадр попали названия организаций и адресная строка сайта. Сохранила отдельно от PDF: совпадение следовало оставить заметным, но не превращать в графику, которая выглядела бы убедительнее источников.

Лев смотрел на экран. Ему хотелось протянуть линию от «Маяка» к «Рубеж-Сервису», а оттуда — к «Порог-Системам». Ручка замерла над блокнотом.

— Почему ты так боишься провести линию? — спросил он.

— Потому что линию потом превращают в стрелку. А стрелка указывает на человека.

Лев опустил ручку.

— Я не прошу назвать виновного. Хочу понять, что именно они делали вместе.

На ноутбуке дёрнулся край страницы. Вера обновила карточку; текст загрузился снова, и её пальцы задержались над клавишей сохранения.

Три года назад ей тоже хватило нескольких публичных сведений, чтобы сложить гладкую историю. Профиль с фотографией, комментарии, отметка о работе в бригаде. Она нашла настоящего человека и опубликовала его имя, не проверив, кто создал страницу. Ошибка прожила в сети дольше, чем исправление. С тех пор любой аккуратный узор напоминал ей, как легко случайное совпадение приобретает форму приговора.

— У «Маяка» есть ещё один городской контракт, — сказал Лев, возвращая её к экрану. — Культурный центр. Оцифровка записей общественных слушаний.

Он развернул карточку, лежавшую под нижней распечаткой. Контракт касался переноса аудио- и видеоматериалов в электронный архив, подготовки копий для гражданского доступа. Среди результатов значились индекс выступлений, временные отметки и цифровые файлы.

Вера взглянула на три печати в сохранённом протоколе.

— Культурный центр хранит записи, «Маяк» их оцифровывает. «Порог-Системы» получает городской контракт, «Рубеж-Сервис» указан среди соисполнителей.

— А городской комитет заверяет протокол с картой.

— Уже похоже на рисунок. Общего основания, которое связывает все линии, всё равно нет.

Лев постучал ногтем по карточке культурного центра.

— Или есть четыре основания, каждое из которых совершенно законно.

Он произнёс это без насмешки. Вера услышала знакомую досаду: Лев слишком хорошо знал, как полной может выглядеть бумага, если не заглянуть за неё.

На странице закупок мелькнуло уведомление: один из файлов временно недоступен. Вера нажала на ссылку. Вместо приложения открылась пустая страница с надписью «Объект не найден». Ни объяснения, ни даты удаления.

— Сбой? — спросил Лев.

— Возможно.

— Удобный сбой.

— Удобство — не причина.

Он явно хотел возразить, но сдержался. Название приложения оставалось на месте: «Перечень исходных материалов». Вера сохранила страницу с сообщением об ошибке, номером закупки, ссылкой и временем обращения. Спецификация к тому же контракту скачивалась. Она сохранила и её, не меняя имени файла, которое присвоил портал, а рядом внесла в записи адрес и время загрузки.

— По крайней мере, эта открывается, — сказал Лев.

— Сейчас.

Когда он потянулся к мыши, Вера накрыла тачпад ладонью.

— Не обновляй всё подряд. Сначала сохраним то, что есть.

— Я не собирался стирать следы.

— Знаю.

Она услышала собственную резкость и убрала руку. Лев вернулся к распечаткам, больше не пытаясь соединить компании ручкой.

— Нужна архивная версия, — сказал он. — Не только портал.

— Завтра запросим. Сегодня проверим, что ещё осталось в открытом доступе.

Лев оглядел редакцию. За стеклянной перегородкой пустовал стол ночного выпуска; у окна темнела забытая кружка. В коридоре катили тележку с пачками газет, колёса глухо постукивали на стыках пола.

— Едем в муниципальный архив?

— Там можно проверить старые карточки и связанные вложения. Если часть приложений исчезла, надо понять какие. Архивный экземпляр протокола запросим утром.

Лев посмотрел на сохранённый скан.

— Потеряем полчаса на дорогу.

— До голосования чуть больше двадцати шести часов. Полчаса дешевле, чем ещё одна версия карты, которую мы не видели.

Он сложил распечатки в папку. Вера закрыла ноутбук, предварительно убедившись, что протокол и снимки карточек сохранены локально, убрала его в чехол и смотала кабель зарядки. В коридоре пахло мокрой бумагой и кофе. Лев придержал дверь, пропуская её; пройдя, Вера заметила, что он на секунду оглянулся на светящийся монитор. Три печати на экране превратились в едва заметные кружки.

— Если к утру пропадёт и сама карточка закупки, — сказал он, — ты хотя бы успеешь сказать, что мы её видели.

— Я хочу сказать больше. Где именно мы её видели и в каком виде.

— В этом твой талант: даже тревогу снабжаешь сноской.

— А ты слишком хорошо знаешь, что бывает с выводом без сноски.

Лев не ответил. На лестнице их шаги смешались с гулом вентиляции.

В центре муниципальных архивов пахло каменной пылью, мокрыми пальто и холодным металлом. Вера устроилась за столом в зале открытого доступа и подключила ноутбук к публичному Wi-Fi. Лев поставил рядом папку. За стеклянной перегородкой пустовала стойка выдачи; дальше темнели стеллажи с архивными коробками. До закрытия оставалось достаточно времени, если портал не начнёт выпадать из сети.

Пока загружалась страница закупок, Лев разложил распечатки веером.

— Не начинай с печатей, — сказала Вера. — Сначала проверим то, что можно повторить: контракт, приложение, регистрационные записи. Потом вернёмся к протоколу.

— А я думал, ты предложишь начать с пропавшего файла.

— Он не расскажет, откуда исчез. Сначала поймём, как назывался и к чему относился.

Лев придвинул ей карточку закупки.

Вера сверила номер процедуры, дату подписания и сумму с копией из редакции, затем записала источник в блокнот. Профиль «Порог-Систем» показывал несколько прежних городских контрактов, стабильный адрес и один спор о сроках исполнения, закрытый без расторжения договора. Компания не возникла накануне конкурса; ничего в её истории не объясняло, почему подрядчик оказался рядом с предупреждением Лидии и спорной картой.

— Фирма давно в системе, — сказал Лев. — Это снимает соблазн назвать её временной оболочкой.

— Снимает один соблазн. Остальные вопросы остаются.

— Тебе когда-нибудь хотелось просто решить, что всё ясно?

— Хотелось. Поэтому я и не решаю.

Лев провёл пальцем по дате контракта. Под ногтем осталась синяя полоска от свежей печати, которой он помечал документы.

— Решение городского совета завтра в шесть. Если они одобрят срочный контракт, систему испытают в ночь с понедельника на вторник, в четыре двадцать. К восьми в Нижних Садах ждут опасный уровень воды. Мы не можем прийти туда с пустой папкой, полной оговорок.

— Лучше пустая папка, чем чужое имя, приколотое не к тому листу.

Лев поднял глаза. Челюсть у него напряглась.

— Я понимаю.

Он сказал это тише обычного. Вера не ответила сразу. Его старая ошибка давно лежала между ними, хотя редко возникала в разговоре целиком. Когда-то Лев подписал сводное заключение о безопасности городской системы, не заметив, что к нему не приложили важную часть карты. Вера не знала, что он чувствовал, когда видел теперь слово «приложение», но понимала, почему он каждый раз проверял перечень вложений дважды.

Лев сам открыл карточку протокола комиссии. В разделе приложений сохранился перечень, но не содержимое. Второй лист назывался «Схема маршрутов эвакуации, один лист». Дата заверения и здесь расплылась под печатями.

— В моём заключении тоже стояло «комплект получен», — сказал Лев. — Я проверил реестр. Все позиции были на месте.

— А сами листы?

— Не все.

Он снял очки и потёр переносицу. В тишине читального зала щелчок оправы прозвучал неожиданно громко.

— Я подписал заключение по ведомости, — добавил он. — Мог открыть папку целиком.

Вера осторожно закрыла вкладку.

— Ты тогда заметил, что листа не хватает?

— Нет.

Он не смягчил ответ и не попросил снять с него вину. В его голосе слышалась усталость человека, который больше не прятал её за формулировками. Вера почувствовала, как сводит пальцы. Ей хотелось сказать, что он не мог предусмотреть подмену каждого листа, но она не знала, какая часть вины принадлежала ему, а какая — тем, кто отправил неполный комплект.

— Мы ещё не знаем, связана ли эта карта с той, — сказала она.

— Знаю.

Он снова надел очки и отвернулся к распечаткам.

Вера открыла карточку «Рубеж-Сервиса» и сверила сведения с редакционной копией. Дата регистрации — 6 мая 2026 года, за неделю до публикации конкурсной документации. Юридический адрес не совпадал ни с адресом «Порог-Систем», ни с адресом «Маяка». Зато контактная почта совпадала с указанной в корпоративной карточке «Маяк Инжиниринг».

— Запиши: общий адрес для корреспонденции в открытых корпоративных сведениях, — сказала Вера. — Не общий офис, не общий владелец.

— Ты всё ещё оставляешь им запасной выход.

— У компаний бывают общие подрядчики, бухгалтеры, бывшие сотрудники. Иногда за совпадением стоит связь, иногда — чужая небрежность. Пусть источники скажут за себя.

Лев переписал её формулировку в блокнот.

В архивной карточке контракта культурного центра обнаружился полный перечень материалов, переданных на оцифровку. Среди них значились записи слушаний о подтоплении Нижних Садов. Вера нашла заседание, на котором выступала Лидия Воронцова. Карточка указывала номер сессии и общий объём записи, но ссылка на исходное приложение вела к знакомой надписи: «Объект не найден».

— Та же запись, что в коротком ролике? — спросил Лев.

— Номер совпадает с полной записью, которую мы смотрели. Но здесь только заказ на оцифровку.

— Значит, у «Маяка» был исходник.

— Значит, материалы передавали подрядчику. Кто ещё получил к ним доступ, мы не видим. Культурный центр, архив, сотрудники подрядчика — круг широкий.

Она почувствовала сухость во рту и упёрлась пальцами в край ноутбука. Запись могла расширить список тех, кто имел доступ к словам Лидии, но не указывала на конкретного монтажёра. Вера не хотела подменять его имя названием компании лишь потому, что так проще объяснить происходящее.

— «Маяк» получил материалы, «Рубеж» связан с ним почтой, «Порог» передал «Рубежу» часть работ, — сказал Лев. — Это уже не три случайных названия на разных страницах.

— Нет. Но ответа, кто подготовил ложную подпись и вырезал слова Лидии, у нас по-прежнему нет.

— А печати?

— Показывают, что их оттиски оказались на одном листе. Этого достаточно, чтобы искать дальше.

Лев опустил взгляд на распечатку. Пальцы легли рядом с перечнем приложений, не закрывая его.

— Если найдём оригинал, я сравню его со своим заключением.

— Не в одиночку.

— Я и не собирался.

Он произнёс это ровно, без раздражения. Вера поняла, что он принял её осторожность не за недоверие, а за условие, с которым ему придётся работать.

Она снова открыла список приложений контракта «Порог-Систем». Теперь не загружались два файла. «Перечень исходных материалов» не открывался и в редакции; ссылка на спецификацию, которую Вера успела скачать, теперь вела на пустую страницу. Локальная копия оставалась на ноутбуке.

— Ты успела сохранить? — спросил Лев.

— Спецификацию — да. Перечень — нет. Он не открывался ни разу.

Лев наклонился к экрану. Его взгляд остановился на номере приложения и дате публикации.

— Может, переносят старый архив. На портале были жалобы на переезд хранилища.

— Журнала изменений в открытом доступе нет. Мы не знаем, исчезли файлы сегодня, месяц назад или их никогда не было в хранилище.

Вера сохранила страницу с ошибкой ещё раз, теперь вместе с адресной строкой и системным временем. Лев переписал название приложения и номер закупки, затем сфотографировал экран, не пытаясь увеличить текст до нечитаемых пикселей.

В зале стало тише: дверь в коридор закрылась, отсекая гул вентиляции. У Веры затекли плечи. Она потянулась к кружке, обнаружила её пустой и откинулась на спинку стула. Лев вынул из сумки бутылку воды и подвинул к ней.

— Ты сегодня ела?

— Кофе считается?

— Только если в твоей редакции кофе выращивают в виде бутербродов.

Вера отпила. Вода оказалась холодной и отдавала пластиком.

— Мы нашли то, ради чего приехали, — сказала она. — Связи, которые можно проверить. Не готовый ответ.

— Иногда это одно и то же.

— Для тебя — возможно.

Лев сложил распечатки в папку, оставив сверху страницу с тремя печатями. На бумаге она выглядела темнее, чем на экране; дата читалась чуть яснее, но последние цифры всё равно терялись под круглыми оттисками.

— Сохрани её отдельно, — сказал он. — Не хочу, чтобы исходный файл затерялся среди остальных.

— Уже. И скан, и рабочая копия.

— Хорошо.

Вера проверила сохранённые названия по блокноту: карточки закупок, корпоративные сведения «Маяка» и «Рубеж-Сервиса», перечень соисполнителей, страница недоступного приложения, спецификация. Напротив каждого источника стояли ссылка и время доступа.

На городской странице обновилась строка состояния. Она вернулась к карточке договора и снова нажала на приложение. Надпись осталась прежней, только номер объекта исчез.

— Зафиксируй, — сказал Лев.

— Уже.

Он взглянул на часы. Было чуть за пять; открытая часть архива закрывалась через час. До голосования оставалось меньше суток; испытание было назначено на раннее утро вторника, и ночь накануне не обещала быть спокойной.

— Запросим документ сегодня, — сказал Лев. — Ответа до понедельника не будет.

— Зато останется отметка о времени. Утром позвоним в архив.

— А к шести придём в совет с тремя компаниями, исчезнувшей ссылкой и печатями, которые ничего не доказывают.

— С точностью, которой у них, возможно, не будет.

Лев убрал ручку в карман. Вера дождалась, пока файлы окончательно сохранятся, закрыла ноутбук и отсоединила кабель. Блокнот и телефон отправились в сумку, распечатку с печатями она вложила между листами плотного картона, чтобы не смять в дороге.

За стеклянной дверью сумерки уже набрали густоту. Вера задержалась у окна и увидела в отражении себя и Льва — по разные стороны стола, разделённого бумагами и десятками открытых вкладок, которые теперь существовали лишь в сохранённых копиях.

У стойки выдачи опустили металлическую створку. В мутном стекле отразился лист с печатями, который Вера держала под рукой. Один оттиск пересекал другой; на миг показалось, будто сама бумага пытается скрыть, где начинается каждый.

— Ты всё ещё считаешь, что завтра надо снова ехать в архив? — спросил Лев.

— Да.

— Тогда я еду с тобой.

— Ты и так едешь.

— Я имел в виду, что не собираюсь уходить домой и делать вид, будто этот адрес не совпал.

Вера повернулась к нему. Он выглядел измученным: на переносице осталась красная полоса от очков, на манжете рубашки — синяя отметка от ручки. Она вдруг поняла, что за весь день ни разу не спросила, обедал ли он.

— Тебе бы поужинать, — сказала она.

— И тебе. Ты сама призналась, что кофе не считается.

— Тогда еда. Без реестров.

— Постараюсь не упоминать их до десерта.

— У тебя нет шансов.

— Я всё равно рискну.

Она задержала взгляд на нём чуть дольше, чем требовалось. Лев понял это, но не отвёл глаз.

Они вышли из читального зала. Закрытая створка у стойки отражала их уже со стороны улицы; в темнеющем стекле Лев шёл рядом, не впереди и не позади. Вера прижала сумку к боку, бережно удерживая копии.

— Ты правда предлагаешь ужин? — спросила она.

— Пока предлагаю еду. Формулировку проверишь после.

За стеклом пустовала стойка, а на ноутбуке в её сумке лежали копии документов, которые городской портал больше не открывал.

Свидание у закрытого окна

Телефон Веры коротко дрогнул, пока они стояли у стеклянной двери архива. Холодный свет экрана выхватил из сумерек её пальцы.

Ника Ярова: «Кафе напротив. 18:10. Приходите оба. Окно справа от входа».

Вера подняла глаза на Льва.

— Ужин переносится, — сказал он, заметив имя на экране.

— Я не обещала, что он будет спокойным.

— Ты обещала не открывать реестры хотя бы до десерта.

— Это было до сообщения.

— Удобное время для отмены договора.

Лев произнёс это привычно сухо, но, когда Вера убрала телефон, задержал на ней взгляд. В сумке лежали копии и ноутбук с материалами, которые городской портал теперь не открывал. Вера подтянула ремень на плече, будто могла удержать всё содержимое от расползания по вечеру.

Кафе находилось через дорогу. Они дождались просвета между машинами и перешли улицу, обойдя лужу у бордюра. Муниципальный архив серел напротив в сумерках, строгий и безликий. В нижних окнах горел свет, но за стеклом не двигались люди.

Ника выбрала столик у окна — рама была заклеена по периметру, а в стекле дрожали отражения фар и тёплых ламп. Она сидела, не снимая пальто, с застёгнутым воротником и шарфом, закрывавшим подбородок. Перед ней стоял стакан воды. Ника к нему не притронулась.

Вера узнала её по фотографии, но вживую Ника выглядела старше и усталее: короткие тёмные волосы убраны за уши, под глазами залегли тени. Когда Вера с Львом подошли, Ника посмотрела сначала на неё, затем на него, словно сверяя их не с лицами, а с заранее составленным списком.

— Вы оба, — сказала она.

— Как ты просила, — ответила Вера.

— Садитесь. Спиной к стене, если вам так спокойнее.

Лев отодвинул стул и сел боком, оставив дверь в поле зрения.

— Мне спокойнее, когда официант приносит еду, — сказал он. — Но с этим, похоже, придётся подождать.

— Закажите. Я не собираюсь вас задерживать.

— Уже звучит как угроза, — заметил Лев.

На губах Ники мелькнуло что-то похожее на улыбку и тут же исчезло. Вера сняла пальто, но сумку оставила на коленях, придерживая ремень запястьем. Разговор у выхода из архива — про еду, обычный вечер и попытку не сводить всё к делу — ещё стоял между ними. Теперь напротив сидела Ника, не расстёгивая верхнюю пуговицу.

— Что случилось? — спросила Вера.

Ника вынула телефон.

— Сначала это.

Она положила его на стол экраном вверх, но не выпустила из рук. На дисплее была открыта городская страница с карточкой договора и перечнем приложений. Одно из названий было выделено тонкой синей рамкой: «Приложение 7. Схема зон оповещения и корректировки границ».

— Номер договора совпадает с тем, который вы смотрели? — спросила Вера.

— Да.

— А само приложение доступно?

Ника коснулась ссылки. Страница мигнула, загрузочная полоса замерла, а затем появилось серое сообщение: «Запрошенный материал не найден».

Вера подалась вперёд. В стекле телефона отразились её глаза и лампы под потолком.

— Когда ты сохранила ссылку?

— Адрес — несколько недель назад. Снимок карточки сделан сегодня. Сам файл я открывала раньше. Сейчас не открывается.

— Снимок подтверждает, что карточка с таким названием была на странице. Но не подтверждает, что внутри лежало именно то, о чём говорит заголовок.

Ника посмотрела на неё пристально.

— Верно.

— И ошибка по ссылке не говорит, кто её удалил. Или переместил.

— Тоже верно.

Вера поймала себя на том, что слишком быстро принялась раскладывать тревогу на проверяемые детали: название, адрес, код ошибки. Нерабочая ссылка ещё ничего не говорила о том, что случилось с файлом. Она достала телефон и показала Нике открытый снимок экрана.

— Можно я сфотографирую карточку и адрес? Без твоих сообщений и личных вкладок.

Ника чуть помедлила, затем придвинула телефон ближе, чтобы в кадр попали название приложения, номер договора и строка ссылки.

— Только это.

Вера сделала один снимок, проверила, что в него не попали уведомления, и убрала телефон. Лев до сих пор не спросил, откуда Ника получила адрес. Он разглядывал заголовок на экране, чуть нахмурившись.

— «Корректировка границ», — сказал он. — В сводном заключении этой схемы не было.

— В том, которое вы подписали? — спросила Ника.

Лев не отвёл взгляда от телефона.

— Да.

Его пальцы сжали край стола. На большом пальце осталась синяя полоска от ручки — та же, что Вера заметила у архива.

— Я помню, что к заключению не приложили часть карты, — продолжил он. — Тогда решил, что это техническая задержка. Подписал сводную версию.

— А схема могла быть в приложении к договору, — сказала Вера.

— Могла. По одному заголовку мы этого не докажем.

Ника втянула воздух через нос и наконец отодвинула телефон от себя.

— Я знаю, что было в файле.

Вера не торопила её. В кафе звякнула ложка о блюдце, за стойкой включили кофемолку. Рёв быстро смолк, и снова слышен стал только гул холодильника.

— Я не прошу тебя раскрывать источник, — сказала Вера. — Мне нужно понять, что именно ты помнишь.

Ника опустила глаза на свои руки. Из-под рукава пальто виднелся тонкий серебряный браслет, потёртый на застёжке.

— В приложении была схема зон оповещения и отдельная таблица изменений. Нижние Сады в ней обозначили иначе, чем на карте из открытых материалов. Я не стану утверждать, что это окончательная версия. Помню заголовок и структуру.

— Ты сохранила сам файл?

Ника молчала чуть дольше, чем требовал вопрос.

Лев поставил локти на стол, но не наклонился к ней.

— Нам не нужна история о том, где ты его взяла.

— Вам нужна сама схема.

— Нужна, — ответил он. — Но не ценой того, что ты не готова рассказать.

Ника посмотрела на него, будто проверяла, не последует ли за этой фразой торг. Потом закрыла страницу на телефоне.

— Я работала с публичными документами «Маяка». Каталогизировала ссылки, версии, даты загрузки. Часть справочника открытых источников собрала сама.

— Того самого, по которому можно было быстро найти документы о Лидии? — спросила Вера.

Ника кивнула.

— Я считала это полезной работой. Публикации, слушания, закупки, открытые приложения. Не чужие переписки, не закрытые базы — всё, что город сам оставлял доступным.

Она провела пальцем по краю стакана, но не подняла его.

— Потом вокруг Лидии стали собирать разрозненные страницы, словно из них можно сложить готовую вину. Я не знаю, кто именно это сделал. И не скажу, кто первым заметил исчезновение приложения.

Вера услышала, как Ника сменила «я» на «кто», и не стала давить.

— Ссылки достаточно, чтобы мы начали проверку, — сказала она. — Но мы не напишем, что город спрятал карту, пока не узнаем, что произошло с файлом.

— Хорошо.

— И не назовём человека, который подсказал нам адрес.

Плечи Ники чуть опустились. Она не расслабилась, но перестала прижимать локти к бокам.

Официантка подошла с блокнотом. Лев заказал суп и чай, Вера — кофе и бутерброд. Ника отказалась. Когда официантка отошла, Лев снял очки и протёр их краем салфетки.

— Ты позвала нас не ради одной ссылки, — сказал он. — Пришла с чем-то ещё.

Ника перевела взгляд на вход. За стеклом прошёл человек с бумажным пакетом; его силуэт на мгновение закрыл вывеску архива.

— Завтра в пять пятьдесят выйдет новый материал о Лидии.

Вера замерла, положив ладонь на стол.

— Где?

— Этого я пока не скажу.

— На каком основании ты называешь точное время?

Ника снова взяла телефон и раскрыла другую страницу. Белый экран заполнял заголовок: «Последняя правка Лидии Воронцовой. Кто изменил карту до аварии?» Ниже, над пустым серым прямоугольником, стояла строка: «Публикация: 19 октября, 05:50».

Вера прочла заголовок дважды.

— Там утверждается, что Лидия меняла карту?

— Анонс на это намекает. Полный текст мне недоступен.

— Страница открывается сейчас?

— Уже нет. Снимок я сохранила раньше.

— Когда?

— Сегодня.

Ника ответила быстро, но взгляд снова соскользнул к окну. Вера не стала спрашивать, кто прислал ей адрес страницы и как она узнала о публикации. Её интересовал след, который можно было проверить.

— На снимке дата и время видны как часть страницы?

Ника увеличила изображение. Строка была встроена в страницу, рядом с заголовком. Вера сделала ещё один снимок и остановилась.

— Разрешишь?

— Да. Только анонс и время.

Лев наклонился, не касаясь телефона.

— К началу рабочего дня заголовок уже успеет разойтись. До совета — меньше суток.

— Этого достаточно, чтобы история облетела город ещё до голосования, — сказала Вера.

— Ты считаешь, это сделано ради совета? — спросила Ника.

— Я считаю, что материал выйдет в день заседания и до голосования. Это повод проверить время, но не основание объявлять мотив.

— Если выясните площадку, увидите, что эта карточка не единственная.

— Там есть и другие?

Ника убрала телефон.

— Я видела одну, назначенную на пять пятьдесят. Остальное пересказывать не буду. Не потому, что хочу сыграть в загадки. Я не уверена, что всё, что мне показали, настоящее.

Вере захотелось попросить снимок, имя, прямую ссылку — вытянуть из Ники всё, что могло пригодиться. Три года назад она уже решила, что ещё одно совпадение поможет связать чужое лицо с чужой жизнью. Тогда она ошиблась. Пальцы сами собой коснулись телефона, но Вера не открыла заметки.

— Ты можешь прислать только снимок страницы, — сказала она. — Без переписки, без источника. Если не хочешь — не присылай.

Ника посмотрела на Веру дольше, чем прежде.

— Я пришла, чтобы вы знали о времени. Этого пока достаточно.

— Тогда мы не используем твоё имя. И не выдаём заголовок за факт.

— Заголовок уже сделает это сам.

— Возможно. Поэтому постараемся успеть проверить, что за ним стоит.

Лев снова надел очки.

— Само время публикации не доказывает, кто подготовил материал. Но когда он появится, у нас будет точка, с которой можно начинать.

— Не начинайте с меня, — сказала Ника.

— Не начнём.

Она чуть качнула головой, словно не могла принять обещание как достаточное, но и спорить не хотела.

Принесли заказ. Пар от супа поплыл над столом, запотев край стакана. Вера откусила бутерброд и только тогда поняла, насколько проголодалась. Она сделала глоток кофе: горечь стянула язык. Лев молча придвинул к ней блюдце с сахаром. Вера, как всегда, взяла один кусок.

Она взглянула на его руку. На синей полоске от ручки проступала тонкая царапина, которой раньше она не заметила.

— Ты не обязан всё время подставлять плечо расследованию, — сказала Вера негромко.

— Я не подставляю. Просто сижу за столом.

— И завтра едешь в архив.

— Там есть стулья. Вполне подходит для сидения.

Вера качнула головой, скрывая улыбку за чашкой. Ника следила за их руками — за сахаром, блюдцем, телефоном у Веры. Дыхание у неё оставалось ровным, однако пальцы снова сомкнулись вокруг стакана, не позволяя ему сдвинуться.

— Ты можешь уехать с нами, — сказал Лев. — Не будем спрашивать адрес. Оставим у метро или вызовем машину.

Ника перестала смотреть на стол.

— Нет.

Лев не стал настаивать сразу.

— До остановки хотя бы.

— Нет, Лев.

Он убрал руку от тарелки.

— Понял.

Вера услышала в имени Льва не раздражение, а усталое предупреждение: не заставляйте повторять.

— Ты не обязана объяснять отказ, — сказала она.

— Знаю.

— Если решишь прислать материалы, используй тот канал, которым мы связывались раньше.

— Я знаю адрес.

Вера не стала уточнять, что именно Ника имела в виду: почту, номер или что-то другое.

Ника допила воду и впервые расстегнула пальто, но тут же застегнула его снова, словно передумала от одного движения. Её взгляд остановился на окне.

У архива, почти под знаком, запрещавшим остановку, стоял тёмно-синий универсал. Фары не горели. Сквозь стекло кафе нельзя было разобрать, пуст ли салон: на заднем окне лежало отражение вывески, а лобовое затянуло влагой.

Ника побледнела. Вера последила за её взглядом, и разговор оборвался, будто кто-то выключил звук.

— Ты знаешь эту машину? — спросил Лев.

Ника встала.

— Не провожайте меня.

— Даже до остановки? — спросила Вера.

— Особенно до остановки. И не идите следом, чтобы проверить, куда я сверну.

Лев медленно поднялся. В его лице не было ни обиды, ни желания спорить — только напряжение, которое он не сумел скрыть.

— Хорошо, — сказал он.

Ника оставила стакан на столе и направилась к выходу. У двери она остановилась, не оборачиваясь.

— Про приложение не пишите, пока не увидите файл.

— Не будем, — ответила Вера.

Дверь закрылась за Никой. На секунду её отражение задержалось в стекле, наложившись на светлую стену архива, а потом растворилось среди прохожих.

Универсал всё ещё стоял у здания. Запотевшее стекло отражало кафе; разглядеть салон было невозможно.

Лев положил ладонь рядом с телефоном Веры, не касаясь его.

— Не выходи за ней, — сказал он.

— Не выйду.

Через окно они увидели, как Ника свернула за угол и исчезла из поля зрения. Машина осталась у архива, словно была просто одной из машин, оставленных в плохом месте.

Вера опустила взгляд на два сохранённых снимка. На одном — карточка приложения к городскому договору. На другом — анонс публикации о Лидии, назначенной на 05:50 следующего утра.

Кто убрал файл с городского портала и кто готовил материал, Вера не знала. Ещё меньше она понимала, какое отношение к этому имел универсал.

Три объяснения

Три объяснения

— Не выйду, — повторила Вера.

Лев не убрал руку с телефона, но пальцы разжались. За стеклом архива прохожие пересекали улицу, пряча лица в воротники. Универсал всё ещё стоял у тротуара; в запотевшем окне дрожал свет кафе.

— Хорошо, — сказал Лев. — Тогда не будем делать за водителя его работу.

Вера перевела взгляд на машину. Ника скрылась за углом. Универсал мог ждать кого угодно: пассажира, зелёного сигнала, пока освободится место. Или их.

— Я сниму номер, — сказала она.

Лев чуть повернул голову.

— Если ты его видишь.

Она различала лишь последние символы, размытые дождём. Достать телефон и сфотографировать машину было бы простейшим жестом — и именно поэтому Вера медлила. Снимок номера доказывал бы только то, что вечером восемнадцатого октября у архива стоял автомобиль. В прежней жизни она не раз принимала такие снимки за начало ответа. Теперь старалась не путать начало с ответом.

— Нет. Я не разглядела как следует.

Лев кивнул, словно она подтвердила цифры в его расчёте. Он всегда умел выдержать паузу после её решения — не подталкивая ни к осторожности, ни к риску.

Они дождались, пока автобус скроет универсал из виду. Вера надела пальто, забрала со стола телефон и проверила, сохранились ли оба снимка: карточка приложения к городскому договору и анонс материала о Лидии, назначенного на 05:50. По краям обоих кадров виднелись чужой экран и отражение лампы, зато адреса ссылок читались.

— Ссылка Ники у тебя? — спросил Лев.

— В сообщении.

— Не пересылай никому.

— Я знаю.

— Хорошо. Просто хотел услышать, как ты это говоришь.

На улицу они вышли не спеша. Универсал остался у архива, закрытый от глаз мокрым автобусом. Вера держалась подальше от машины, пока они шли к остановке. Телефон она сжимала в кармане так крепко, что корпус врезался в ладонь.

До редакции «Контура» они добрались на автобусе. К 18:47 этаж уже опустел: за стеклянной перегородкой темнел общий стол, в кухонном углу остывал чайник, а дежурная лампа делила коридор на жёлтые прямоугольники. Вера включила настольный свет и открыла редакционный календарь. Лев снял пальто, повесил на спинку стула и направился к передвижной доске.

— Если оставим всё в телефонах, утром будем спорить, кто что помнит.

— Я не собиралась спорить о памяти.

— Разумно. Память у нас с тобой дорогая и ненадёжная.

Он достал из ящика маркеры. Вера вывела снимки на большой монитор и подключила телефон кабелем. Белая доска казалась слишком чистой для такой работы; прежние надписи стёрли не до конца, и на поверхности проступали бледные следы. Лев провёл по ней ладонью, оставив серую полоску.

— Прекрасно, — сказал он. — Уже есть то, что не удалось удалить.

— Не превращай доску в улику.

— Она сама старается.

Вера взяла чёрный маркер и подошла к стеклянной стене. Там ещё оставались строки из предыдущего расследования; рядом с ними можно было отметить даты, не закрывая старых пометок. Вверху она написала: «18–20 октября». Под строкой провела длинную горизонталь, затем, помедлив, отодвинула дату к левому краю и добавила вторую: «18–19 марта». Отрезки не соприкасались.

— Нас интересуют два времени, — сказала она. — Когда происходило событие и когда о нём начали рассказывать.

Лев протянул ей зелёный маркер.

— А третье?

— Когда публикации понадобились.

Он посмотрел на неё, потом на даты.

— Это уже версия.

— Поэтому я и говорю «понадобились», а не «были заказаны».

На мартовской линии Вера отметила вечер восемнадцатого числа: гибель Лидии Воронцовой — согласно сообщению города. Рядом поставила звёздочку и приписала: «по сообщению города». Стрелку к следующей дате проводить не стала. Под «19 марта» записала: «00:43 — время, указанное для короткого ролика».

Лев подошёл ближе.

— Если ролик записан в 00:43, он появился через несколько часов после её смерти.

— Если это действительно время записи, — уточнила Вера. — На странице сказано именно так. Исходного файла с метаданными у нас нет. Да и время создания загруженной версии не скажет, кто её создал.

— Но короткий ролик — не то публичное выступление, которое мы смотрели.

— Полная запись старше. В короткой вырезаны её слова о неверной карте.

— Значит, монтаж установлен.

— Установлено, что контекст убрали. Кто это сделал — неизвестно.

Лев потёр большим пальцем колпачок маркера. На прежней работе он спокойно развёл бы факт и предположение. Теперь над любым его уточнением незримо висела подпись под старым сводным заключением о безопасности. Одной из карт, без которых нельзя было оценить риск, тогда не оказалось в комплекте. Лев этого не знал, но документ подписал. И теперь слушал каждое уточнение с такой неподвижностью, будто точность формулировки могла уберечь не только статью, но и его собственное имя.

Вера перешла к октябрьской шкале. Написала: «19 октября, 05:50 — публикация о Лидии». Ниже — «19 октября, 18:00 — заседание городского совета». Дальше оставила заметный промежуток и отметила: «20 октября, 04:20 — испытание системы», а у правого края — «20 октября, к 08:00 — опасный уровень воды в Нижних Садах».

— Двенадцать часов между публикацией и голосованием, — сказал Лев. — И десять часов двадцать минут от голосования до испытания.

— Если заседание закончится по расписанию.

— А испытание начнётся по расписанию.

— Система не читает наш календарь.

— У города, судя по документам, тоже проблемы с чтением.

На белой доске Вера вывела: «Время рядом — не причинность». Обвела фразу, но стрелок не провела.

На экране всё ещё светился анонс. Чёрная плашка, белые буквы, снимок Лидии из старой записи. Под фотографией обещали «признание, которое меняет всё». Вера увеличила надпись, пока буквы не распались на крупные квадраты.

— Формулировка рассчитана на то, чтобы читатель сначала решил, будто она призналась, — сказала Вера. — А у нас есть полная запись. Там она предупреждает о неверной карте.

— Значит, авторы уже знают, что контекст им мешает.

— Или взяли самый драматичный фрагмент ради кликов. Это не одно и то же.

— Ты сегодня щедра на альтернативы.

— Я сегодня не собираюсь снова назвать человека по фотографии, а потом выяснять, что за ним пришли не те, кого я ожидала.

Лев промолчал. Вера уменьшила изображение. Надпись снова стала аккуратной и почти нейтральной — удобный размер для тех, кто не станет искать полную запись.

— Три линии, — сказал Лев. — Внешнее вмешательство. Бывший сотрудник. Подрядчик.

Он написал версии на белой доске, оставив между ними равные промежутки. Вера провела под каждым заголовком короткую вертикальную черту: слева — то, что поддерживало версию, справа — то, что ей мешало. Таблицу она рисовать не стала; оставила достаточно места, чтобы аргументы не смешивались.

Лев сел за компьютер и открыл публичные сообщения о сбоях городской системы. Он молча переходил от новостной ленты к страницам муниципальных служб и обратно. Вера знала этот темп: так он проверял строки в старых бюджетных документах, когда замечал, что цифры сходятся подозрительно удобно.

— В мае город сообщал о задержке оповещения, — сказал он. — В официальной заметке написано: «кратковременное нарушение передачи через шлюз». Через два дня подрядчик объявил, что работы завершены.

Он переписал дату и фразу в первую колонку. Ниже добавил ещё одну запись: летом муниципальная страница предупреждала о технических работах на канале рассылки.

— Похоже на внешнюю атаку? — спросила Вера.

— Похоже на сообщения о сбоях.

— Оставь разницу.

— Оставляю.

Лев открыл старую запись городского совета. Представитель службы объяснял, что уведомления запаздывали из-за перехода между узлами связи. В публичном обсуждении несколько жителей писали: тревожное сообщение пришло уже после отбоя. Ни администрация, ни оператор не называли чужой доступ к системе; о взломе или утечке данных не сообщалось.

— Здесь есть история ненадёжной инфраструктуры, — сказал Лев. — Технический сбой возможен. Но следа внешнего управления нынешней публикацией это не даёт.

— И журнала доступа у нас нет.

— Нет. Журналы не публикуют.

— Тихая атака могла и не вызвать официального уведомления.

— Могла. Если шум был только на канале публикации, а не в работе всей системы, город мог ничего не заметить. Но это допущение, не находка.

Последние слова он произнёс нарочито сухо. Вера посмотрела на доску. В пользу внешнего вмешательства говорили прежние сбои и жалобы жителей. Против — отсутствие сообщений о вторжении и видимых признаков доступа, а ещё то, что короткий ролик обрезал именно предупреждение Лидии. Злоумышленник мог взять запись из публичного архива, но ни сбои, ни жалобы не объясняли, почему он выбрал этот фрагмент и приурочил публикацию к городскому голосованию.

— Если целью было сорвать испытание, — сказала Вера, — в материале мы бы ожидали увидеть хоть что-то о том, как систему ломали. Сбой, канал, изменённый маршрут.

— Может, техническую часть прячут.

— Тогда мы её пока не нашли. Есть ложное представление о Лидии и неверная карта.

Лев перевёл взгляд на мартовскую линию.

— Это может быть шумовой занавес.

— Может. Но эта фраза подходит к любой версии. Значит, не помогает ни одной.

На экране появились ещё несколько старых публикаций о сбоях. Внешняя атака не была фантазией: система уже давала сбои, а город не раскрывал её устройство. Но в открытых сообщениях не нашлось ни злоумышленника, ни следа, связывающего прежние неполадки с роликом.

— Если бы система падала сегодня, у нас была бы отдельная история, — сказал Лев. — Но, насколько известно, она работает.

— Мы не проверяли её внутреннее состояние.

— Не проверяли. Я говорю о публичных сообщениях.

— Тогда так и пиши.

Лев зачеркнул на черновике «система работает» и оставил: «публичных сообщений о текущем сбое нет».

Вера перешла ко второй колонке. Она открыла программу старого городского слушания о модернизации оповещения. Среди участников значился инженер, выступавший от одного из подрядчиков. Его фамилия встречалась и в архивной копии страницы компании, в списке технических специалистов; на нынешнем сайте страницы уже не было. В профессиональном профиле Вера нашла несколько лет работы в интеграции систем уведомления, затем — переход на другую должность.

— Это Роман? — спросил Лев, заглянув через её плечо.

— Роман из программы. В профиле указана прежняя должность, но ни слова о том, к каким именно модулям у него был доступ.

— Значит, мог знать систему изнутри.

— Мог. А мог знать только то, что опубликовано.

Она вписала его фамилию небольшими буквами и добавила: «бывший специалист; объём доступа неизвестен». Рядом легли другие открытые следы: компания когда-то упоминала перемены в технической команде после завершения контракта; старые объявления о найме искали сотрудников с опытом в городском оповещении.

— Для самовольной акции нужен человек, который знал, где взять записи и как их подать, — сказал Лев. — Профессиональный опыт у него есть.

— Для публикации о системе достаточно знать, как её называют в документах. Это ничего не говорит о доступе к приложению.

— И не подтверждает, что Роман вообще участвовал.

— Верно.

Вера записала в правой части колонки: «нет прямой связи с файлом; доступ после увольнения не подтверждён». Рядом с именем поставила вопросительный знак, но обводить не стала.

Лев откинулся на стуле. Из приоткрытой двери тянуло холодом; на мониторе синело окно профиля.

— Если он хотел ударить по бывшему работодателю, старое выступление Лидии годилось бы, — сказал Лев. — Человек знает, какие формулировки никого не удивят, и вырезает как раз ту часть, которая мешает.

— А если хотел сорвать испытание, зачем назначать публикацию за двенадцать часов до голосования? Можно было бы нацелиться на сам тест.

— Может, решение о контракте важнее.

— Или кто-то хочет, чтобы мы так подумали.

— Ты не доверяешь удобным мотивам.

— Я не доверяю мотиву, который мы придумали за подозреваемого.

Роман остался на доске фамилией из открытых материалов — не больше. Ни личной переписки, ни публичных заявлений против компании, ни подтверждения, что он видел исчезнувшее приложение. Достаточно, чтобы не отбрасывать версию; слишком мало, чтобы произнести её вслух без оговорки.

— Значит, бывший сотрудник — технически возможно, — сказал Лев.

— И пока подтверждается лишь общей возможностью и его профессиональным прошлым.

— Ты умеешь сделать подозреваемого скучным.

— Зато он не станет мишенью из-за нашей скуки.

Третью колонку Вера оставила напоследок. На мониторе были открыты страницы «Порог-Системы», «Рубеж-Сервиса» и «Маяк Инжиниринг». В нескольких материалах повторялся один и тот же служебный адрес, указанный в связи с закупками и публичными обращениями. Компании встречались в общих документах, а открытые реестры связывали их договорами, поставками и общим контактом.

Вера перенесла на доску названия, но сплошной линии между ними не провела.

— Общий контакт не превращает их в одно лицо, — сказал Лев. — Это может быть внешний координатор, конкурсная форма, общий представитель.

— А закупки показывают, что они работали в одном контуре. Не то, кто управлял публикациями.

— У «Маяка» есть причина хотеть срочный контракт.

— У «Маяка» есть финансовый интерес в городских работах. Это подтверждают договоры. Причастность к ролику — нет.

— Если испытание пройдёт плохо, городу придётся что-то менять.

— А если пройдёт нормально, кому достанется контракт?

Лев не ответил. В архиве торгов он нашёл описание срочной закупки, где фигурировали компании с доски. Сроки и предмет договора не оставляли много места для благородного прочтения, но и выгода не становилась от этого доказательством вмешательства.

— В пользу кампании, — произнёс он наконец, — общий подрядный контур, деньги и подозрительно удобная дата. В пользу постановки — удалённое приложение и ролик, где исчезает ровно та часть, которая оправдывает Лидию.

— А в пользу того, что это кампания «Маяка»?

— Пока ничего прямого.

— Что ей противоречит?

Лев вернулся к страницам компаний. В открытой карточке городского договора было указано, что технические материалы размещали разные подразделения администрации и подрядчики. Приложение создали как открытый раздел, но ссылка теперь не работала. Исчезновение могло объясняться переносом, ошибкой публикации или чьим-то решением — ни название «Маяка», ни имя Бессонова рядом с кнопкой не стояли.

— Если бы подрядчик готовил выверенную кампанию, странно оставлять такой заметный след, — сказал Лев. — Общие контакты, история закупок, привязка к голосованию.

— Может, рассчитывали, что никто не станет их связывать.

— Мы связываем.

— По открытым закупкам. Тут нет ни секрета, ни преступления.

Вера дополнила колонку: «публичные связи подтверждают деловой контекст, не авторство». Ниже записала: «нет файла; нет распоряжения; канал от компаний к публикации не установлен».

Из динамиков рабочего компьютера донёсся сухой щелчок уведомления. Лев открыл страницу, которую они сохраняли по ссылке Ники. Она по-прежнему сообщала, что приложение недоступно. Внизу оставались заголовок документа и дата размещения, самого файла не было.

— Она предупреждала, что не может его передать, — сказал Лев. — Только показала адрес.

— Значит, пока мы можем подтвердить лишь существование ссылки. Не содержимое приложения.