
- Рейтинг Литрес:5
Полная версия:
Виктор Алеветдинов Нулевой горизонт
- + Увеличить шрифт
- - Уменьшить шрифт
Дом № 17 повторялся трижды. На чёрном слое он стоял в пустом участке. На синем сдвигался на половину расстояния. Красный контур находился в нынешней точке.
— Это не план строительства, — сказала Анна. — Здесь меняли привязку существующих объектов.
Русаков показал на примечание у края.
— Почерк не узнаю. Написано: «совместить по безопасной границе».
— Что значит безопасная граница?
— Без приложения ничего.
— Приложение есть?
— В описи нет.
Илья наклонился над калькой.
— Почему дома двигаются в одну сторону?
Анна сняла кальку сверху, добавив масштаб и номер временной карточки, затем выровняла изображение по рамке. Линии имели разную толщину, а по сгибам лист растянулся, поэтому простое наложение давало ошибку до трёх метров.
Для проверки она выбрала двенадцать контуров, от которых сохранились хотя бы две стены фундамента. Илья сверял их с современной схемой, Русаков приносил карточки строений по одной.
Совмещение по дороге и насосной уложило на место только два дома. Привязка по сохранившемуся реперу уменьшила ошибку в центре и увеличила по краям. Анна разделила кальку на четыре участка и ввела локальные поправки. Контуры сблизились, но нынешний дом № 17 по-прежнему оказался поверх прежнего № 23.
— При оцифровке могли перепутать номера и контуры, — сказал Русаков.
— Один объект — могли. Двенадцать уже требуют системы.
Марина говорила почти теми же словами: если совпадёт больше трёх домов, это не ошибка. Анна не стала считать выбранные контуры результатом и построила отдельное наложение для чёрного слоя, используя только старые фундаменты и устойчивый репер.
На экране появились белые здания нынешнего квартала и красные исходные контуры. Короткие линии смещения шли в основном на запад; длина различалась, но концы ложились вдоль одной изогнутой границы.
— Они не двигали дома одинаково, — сказал Илья. — Они освобождали полосу.
Под чёрными контурами проходил пунктир. Он начинался у старого дома № 17, уходил под соседний двор и продолжался к южной части квартала. Его ось совпадала с нижним коридором в пределах погрешности кальки.
— Линию убрали вместе со старыми координатами, — сказала Анна.
Русаков отошёл к окну. За стеклом виднелась стена закрытого крыла. Штукатурка осыпалась, под ней проступал старый кирпич.
— В архиве часто исчезают приложения, — сказал он. — Обычно потому, что лист кому-нибудь понадобился. Но здесь не один лист. Здесь меняли весь способ читать квартал.
— Вы видели эту кальку раньше? — спросила Анна.
— Нет.
— Дарья могла видеть?
— Она работала с соседней папкой. Если калька тогда лежала там, могла. Папки после неё я проверял не сразу.
Анна сохранила снимок в двух форматах. Один носитель передала Русакову. Он проверил наличие файла на архивном компьютере и записал контрольную сумму в карточку.
— Теперь наложение, — сказал он. — Вы обещали оставить всё.
— Оставлю, когда закончу расчёт.
— Не забудьте, что архив тоже умеет делать копии.
— Поэтому я вам и доверяю.
Русаков впервые за всё время слабо улыбнулся.
К трём часам они получили шесть допустимых вариантов совмещения. На каждом плане одни здания совпадали, другие расходились. Анна отбрасывала решение, если оно требовало разных масштабов у соседних домов или нарушало геометрию дороги.
Лучший результат дала привязка по старым фундаментам после отключения современных адресных точек.
Красные контуры один за другим легли на следы в нынешней модели. Не на здания, которые стояли сейчас, а на пустые площадки, обрезанные дворы и участки под ограждением.
Старый дом № 17 вернулся на координаты из диктофона Дарьи. Ещё один контур лёг под нынешнюю стоянку аварийной службы. Третий оказался на месте пустыря, где вода каждую весну уходила под бетонные плиты.
Илья считал совпадения вслух.
— Семь. Восемь. Девять.
— Не считай, пока не проверим остаточную ошибку.
— Она уменьшается.
Анна запустила расчёт. Среднее отклонение составило двадцать восемь сантиметров, что укладывалось в погрешность старой кальки.
Десятый дом совпал по трём углам. Одиннадцатый — по линии фасада и лестничному выступу. Двенадцатый сохранился только половиной фундамента, но его положение подтверждала архивная фотография.
Все двенадцать стояли на местах до аварии. Их современные адреса находились западнее, вдоль новой границы.
— Получается, дома не переносили, — сказал Илья.
— Физически нет. На карте старые здания получили новые координаты и номера. Потом на этих координатах закрепили нынешние объекты.
— Зачем?
Анна указала на пунктирную линию.
— Чтобы она оказалась под пустыми участками или под другими адресами. Тогда старый ход нельзя связать с конкретным домом.
Русаков вернулся к кальке и прочитал примечание у нижнего края.
— Здесь ещё одна надпись. Очень бледная.
Анна подсветила лист сбоку. Карандашные буквы проступили лучше: «адресный ряд заменить после закрытия уровня».
Последнее слово было исправлено. Под ним угадывалась цифра, но сгиб проходил прямо по записи.
— Ноль? — спросил Илья.
— Может быть буква «О», — ответила Анна.
Русаков принёс лампу с холодным светом. Цифра стала видна отчётливее. Рядом шёл короткий штрих.
— Пишем только то, что читается, — сказал он. — «После закрытия уровня». Остальное под вопросом.
Анна кивнула. Штрих мог быть частью цифры, но она не стала додумывать документ.
Она построила линию нижнего коридора поверх чёрного слоя. Измеренные точки под домом № 17 легли на пунктир кальки. Ответвление в сторону участка матери продолжало его за границей листа.
Система была шире одного дома. Коридор соединял исходные адреса, хотя современная карта разрезала его на пустые участки.
Анна открыла новый проект и назвала его датой. Внутрь загрузила только сырые сканы, координаты репера и фотографию кальки. Никаких библиотек объектов и готовой модели квартала.
— Сейчас проверим, не тянет ли программа старый слой, — сказала она.
Русаков покачал головой.
— На этой станции архивной базы нет.
— Я всё равно пересоберу с чистого носителя.
— Вы не доверяете моему компьютеру?
— Я не доверяю системе, пока не проверю источник.
— Хорошая привычка для архива.
Илья принёс из машины новый накопитель в упаковке. Анна вскрыла её при Русакове и записала серийный номер. Потом скопировала только исходные пакеты. Рабочую программу запустила в переносной версии без сети.
Первая сборка дала дом № 17 и часть соседнего фасада. Нижний коридор появился после привязки к старой стене, как утром.
Анна добавила контрольные точки квартала. Современные здания сместились. Сначала на несколько метров, затем на десятки. Программа ставила их туда, где на кальке лежали чёрные контуры.
— Останови, — сказал Илья.
— Я ничего не двигаю.
На экране дом № 17 уже стоял в пустом участке. Следующий дом ушёл с нынешней улицы к старому фундаменту. Третий развернулся на два градуса и лёг по линии разрушенного двора.
Русаков подошёл ближе.
— Вы загрузили кальку?
— Только как изображение без координат. Она выключена.
Анна открыла список слоёв. Архивная фотография не участвовала в расчёте. Программа использовала сканы поверхности и три контрольные точки.
— Может быть, координаты сохранились в настройках проекта, — сказал Илья.
— Проект новый.
Она закрыла программу, удалила временные файлы и перезапустила компьютер. Создала ещё один проект на чистом носителе. На этот раз контрольные точки вводил Илья по бумажной записи, а Анна проверяла каждое значение.
— Седьмая цифра, — сказала она.
— Четыре.
— В журнале девять.
Илья посмотрел на лист.
— Моя ошибка.
— Поэтому читаем по одной строке.
— Участие оказалось короче, чем я думал.
Анна исправила значение и продолжила. После последней точки модель снова начала смещаться.
Дома возвращались в той же последовательности. Ни номера, ни расстояние от сканера не объясняли порядок. Сначала появлялись объекты, стоявшие ближе к пунктирной линии.
Программа не показывала движение. Старый контур просто становился основным, а современный уходил в серый слой расхождения.
На экране выстроились двенадцать зданий. Между ними прошёл нижний коридор. Его дальние участки состояли из редких точек, хотя сканер никогда не работал возле тех домов.
Анна проверила источник каждой группы. Часть относилась к утренним станциям дома № 17. Остальные имели корректный формат координат, но поле прибора оставалось пустым.
— Эти точки не принадлежат нашим пакетам, — сказала она.
— Но появились после привязки, — ответил Илья.
— Да.
— Их можно извлечь отдельно?
— Уже.
Анна сохранила неизвестную группу и открыла метаданные. Время создания отсутствовало. Вместо серийного номера сканера стоял прочерк.
Русаков положил рядом кальку.
— На ней есть подпись к линии.
— Где?
Он указал на сгиб. Под лампой читалось одно слово: «горизонт». Цифра после него была повреждена.
В этот момент интерфейс модели обновился. Под линией коридора появилась подпись: «горизонт 0».
Анна убрала руки с клавиатуры.
— Ты вводил это? — спросила она Илью.
— Нет.
— Русаков?
— Я к вашему компьютеру не прикасался.
Анна открыла журнал команд. Последним действием была загрузка контрольной точки. Текстовую подпись программа не создавала автоматически. В библиотеке проекта слова «горизонт» не было.
Она выполнила поиск по накопителю. Результат оказался пустым.
— Закрывай сеть, — сказал Илья.
— Она отключена.
— Тогда откуда надпись?
— Пока источника нет.
Анна сняла экран на телефон, сохранила проект и сделала образ чистого носителя. Потом открыла подпись как объект. В поле создания стояло время 16:12. Автор отсутствовал.
Русаков сверился с архивными часами.
— Сейчас 16:12.
Надпись возникла при открытии файла. Сбой интерфейса объяснял её появление, но не текст.
Анна отключила неизвестные точки. Подпись исчезла вместе с коридором. Она включила слой снова. «Горизонт 0» вернулся под двенадцатью домами.
Илья провёл ладонью по лицу.
— Зорину отправим?
— Сначала полный протокол.
— Он закроет доступ.
— Доступ и так закроют. Нужно, чтобы копии лежали в трёх местах.
Русаков подвинул к ней архивный накопитель.
— Четырёх.
Анна записала проект ему и проверила копию. Потом сохранила ещё одну для Ильи.
На экране двенадцать старых домов стояли там, где их строили. Современная карта оставалась серым контуром, сдвинутым к западу. Линия нулевого горизонта проходила под прежними адресами и выходила к участку Ланских.
— Один дом можно было объяснить ошибкой, — сказал Илья.
— Два тоже.
— А двенадцать?
— Двенадцать объясняются решением.
Но кто его принял и зачем, модель не сообщала.
Анна открыла письмо, которым Дарья месяц назад прислала договор на обследование. Внизу стояла ссылка на общее облачное хранилище. Раньше папка содержала только техническое задание. Теперь рядом появился файл без расширения.
Дата загрузки — вчера, 21:12.
Илья прочитал имя файла:
— «Сравни адреса».
Анна скачала его на чистый носитель. Внутри оказались двенадцать строк. В каждой стоял старый адрес и текущий номер дома.
Она сверила первую строку с моделью. Совпало.
Вторая вела к зданию, которое только что вернулось на прежнее место. Третья — к пустому двору у насосной. Остальные десять адресов один за другим легли на красные контуры кальки.
Дарья оставила не предположение. Она подготовила маршрут проверки.
На экране возвращённые дома стояли вдоль линии с подписью «горизонт 0». Рядом открывался файл Дарьи с теми же двенадцатью адресами. Теперь требовалось проверить всю линию из двенадцати домов.
Часть II. Удалённые адреса
Глава 7. Двенадцать адресов
Файл Дарьи не открывался. После третьей попытки облачное хранилище заблокировало ввод на десять минут и вывело предупреждение о возможном удалении данных при новых ошибках. Анна убрала руки с клавиатуры и посмотрела на название папки: «Сравни адреса».
В архиве стемнело раньше, чем на улице. Окна выходили во двор старого управления, где высокий корпус закрывал вечерний свет. Русаков включил настольную лампу и отодвинул кальку от края стола.
Русаков предупредил, что защита может стереть папку. Анна объяснила: облако только увеличивает паузу между попытками, но его предупреждение всё равно заставило её проверить локальные копии.
Илья стоял у рабочего шкафа и повторно слушал запись с диктофона. Второй трек начинался после слов Дарьи о доме и содержал пары цифр. Раньше они приняли их за координаты. Первая часть действительно привела к старому фундаменту. Дальше шла другая последовательность, короче любой географической точки.
— Двенадцать пар, — сказал Илья. — По одной на каждый адрес.
Анна возразила: номера домов стояли в таблице, а значит, последовательность указывала на другие документы. Она взяла лист с расшифровкой. Пары выглядели так: 17–84, 23–86, 11–89. Между ними Дарья делала паузу. Последние две строки заканчивались числами 04 и 06. Русаков придвинул к себе бумагу.
— В восьмидесятые акты расселения писали по дому и году, — сказал Русаков. — Семнадцатый, восемьдесят четвёртый. Двадцать третий, восемьдесят шестой.
— Форму потом меняли?
— Меняли. Запись по привычке оставалась.
Анна открыла опись. Акт № 17 за 1984 год существовал, следующая пара тоже совпала. Третий документ относился к дому, исчезнувшему с карты после проседания двора.
— Дарья оставила указатель на акты, — сказал Илья.
— И порядок для ключа, — ответила Анна.
Блокировка закончилась. Поле пароля снова стало активным.
Анна попробовала номера без знаков. Система отказала. Потом ввела только годы — тот же результат. Русаков нашёл карточку первого акта. На обороте стояла дата утверждения: 14 марта 1984 года.
— Номера ведут к актам, а даты могут дать ключ.
— Двенадцать дат в поле не войдут.
— Тогда нужна не вся строка. Проверим края и порядок.
Они подняли три документа. Акты утверждали четырнадцатого, семнадцатого и двадцать первого числа. Разница составляла три и четыре дня и не объясняла перенос адресов.
Анна вернулась к аудиозаписи. Перед каждой парой слышался короткий удар, после четвёртой — два. Она разделила трек на фрагменты и усилила паузы. Под шумом проступили тихие слова. Дарья называла не годы, а месяцы: март, ноябрь, апрель.
— Она диктует месяцы, а день оставляет в номере акта.
Анна составила строку из дней и месяцев. Пароль не подошёл. Тогда она расположила даты по местам домов на старой кальке, отказавшись от последовательности записи.
Папка открылась. Внутри лежали таблица, двенадцать фотографий и текстовый файл с одной строкой: «Проверять бумагу отдельно от базы». Последнее изменение внесли вчера в 21:12.
Фотографии Дарья снимала не для отчёта. На первой был перекошенный цоколь с мелом у трещины. На второй — табличка дома, прикрученная поверх старых отверстий. В углу каждого кадра лежал лист с датой и номером акта, поэтому снимки можно было связать с бумажными делами без догадок.
Илья выдохнул и сел. Он заметил, что без кальки порядок домов восстановить было невозможно. Значит, Дарья либо рассчитывала на архив, либо сама видела неучтённый лист.
Анна отключила автоматическую синхронизацию и скопировала папку на два носителя. Русаков получил третий экземпляр для архива. Только после этого она открыла таблицу.
В первой колонке стоял адрес до аварии. Во второй — номер после корректировки. Третья содержала дату инцидента. Дальше шли номера актов и короткие примечания Дарьи.
Анна проверила историю версий. Таблицу создали месяц назад, а строки добавляли по одной. Последнюю Дарья внесла за сорок минут до записи на диктофоне. Удалённых листов не было, однако дважды менялись названия колонок: сначала «ошибка адреса», потом «перенос». Дарья отказалась от случайности ещё до исчезновения.
В каждой строке дом сначала получал повреждение, затем исчезал из действующей схемы или менял номер. Иногда его признавали аварийным через несколько месяцев. В других случаях новый адрес появлялся раньше официального расселения.
По объёму ссылок было видно: Дарья собирала материал не один день. Анна перевела внимание на даты изменений.
Дом № 17 сместили на современной схеме через восемь дней после проседания у старого фундамента. Дом № 11 перенумеровали после обрыва водовода. В строке дома № 6 стояла отметка: «граница риска пересчитана по новому адресу».
— Старый дом закрывали, а его номер отдавали новому, — сказал Илья. — Обычная перенумерация.
— Тогда новый адрес должен появляться после расселения. Здесь четыре раза он появился раньше.
Русаков прочитал примечание о коммуникациях, отключённых по старому адресу. Пока это оставалось записью Дарьи, поэтому Анна выбрала три дома с разными годами для независимой проверки. Если бумажные документы подтвердят порядок событий, обычная путаница в учёте перестанет быть достаточным объяснением. Илья взял первую строку.
— Я проверю ведомости отключения, — сказал Илья. — Где их держат?
— Часть фонда передали коммунальной службе, — сказал Русаков. — Остальное в хранилище. Вас туда не пущу.
— Тогда вы ищете, я читаю, — ответил Илья.
— Архив закрылся двадцать минут назад.
— Дарья пропала после работы с этими строками, — сказала Анна.
Русаков посмотрел на часы, взял карточку и ушёл в соседнюю комнату. Илья проводил его взглядом.
— Он и сам хочет знать, — сказала Анна.
— А ты?
— Сначала проверю три строки. Потом отвечу.
Анна закрыла таблицу, чтобы не видеть последнюю строку. Она заметила знакомое название улицы ещё при открытии, но не прочитала номер дома. До проверки первых записей это могло быть совпадением.
Через десять минут Русаков принёс ведомость отключения тепла по дому № 11. В графе причины стояла аварийная деформация ввода. Дата — шестое апреля. Официальный акт расселения оформили девятого, а новый адрес внесли в реестр седьмого.
— Один день после отключения, — сказал Илья. — Документы могли готовить заранее.
— Могли. Одна строка ничего не доказывает. Давай следующую.
По дому № 6 коммунальная ведомость сохранилась только в копии. Воду отключили двадцать второго августа. Почтовая карточка сообщала, что с двадцать третьего корреспонденцию следует направлять по новому номеру. Решение комиссии подписали тридцатого.
Русаков положил рядом конверт из того же дела. Штемпель стоял за два дня до решения.
— Почта получила указание раньше комиссии, — сказала Анна.
— Итоговое решение иногда оформляли после фактического переселения, — ответил Русаков.
— Тогда должно быть предварительное распоряжение.
Русаков проверил оборот карточки и вложения, но предварительного распоряжения не нашёл. Третья строка относилась к дому № 23, который занимал нынешнее место семнадцатого. Илья нашёл ведомость отключения кабельной линии. В ней значился старый шахтный индекс Б-17, а адрес вписали поверх стёртой записи.
Она направила свет вдоль бумаги. Под новым номером проступал прежний.
— Двадцать третий заменили на семнадцатый, — сказал Илья.
— После инцидента у старого семнадцатого, — ответила Анна. — Риск привязали к номеру, который перенесли западнее.
Русаков разложил три почтовые карточки по датам. На каждой адрес менялся до итогового решения. Формально жителей переселяли позже, но учётная точка сдвигалась на следующий день после повреждения.
— Почтовый адрес могли менять ради доставки после эвакуации.
— Почему тогда номер получал существующий дом? Временный адрес можно было открыть отдельно.
— Отдельную точку пришлось бы заносить во все реестры.
Илья посмотрел на современную карту и провёл пальцем по новому контуру. Готовый номер проходил без создания новой точки.
Анна нанесла три даты на схему. После каждого изменения красная граница риска отходила от жилого массива. В первом случае она сместилась на сорок восемь метров, во втором — почти на шестьдесят. Между реальным повреждением и новой линией оставался старый фундамент, который на действующей карте считался пустым участком. Земля сохраняла трещину, а документ переносил её за пределы жилой зоны. Целью было не исчезновение дома, а сдвиг точки, от которой считали опасность.
— Граница всё равно должна опираться на геологию, — возразил Русаков.
— В отчёте Дарьи границу строят по адресным точкам датчиков, — сказала Анна. — Перенесли адрес, и зона ушла вместе с ним.
— А если старый прибор сняли? — спросил Илья.
— Его историю могли присвоить новому. Тогда проседание осталось у удалённого адреса.
— Изменения шли десятилетиями, — сказал Русаков, садясь напротив и придвигая карту. — Разные комиссии должны были делать одно и то же.
— Им не требовалось знать общую цель, — ответила Анна. — Каждый исправлял свой документ.
— А итоговая карта становилась удобнее, — добавил Илья.
В коридоре щёлкнул замок. Русаков поднялся. В читальный зал вошёл сотрудник охраны с конвертом. На нём стояла печать городской службы промышленной безопасности.
— Распоряжение заведующему архивом, — сказал охранник. — Помещение закрывается до проверки.
Русаков вскрыл конверт. В документе указывалось нарушение требований пожарной безопасности: перегруженная линия в читальном зале и отсутствие актуального плана эвакуации. Проверка начиналась немедленно.
Илья посмотрел на обогреватель, который вчера никому не мешал. Русаков ответил, что вчера у службы не было причины читать архивные акты.
Охранник попросил выключить оборудование и покинуть помещение в течение пятнадцати минут. Оригиналы запрещалось выносить до завершения проверки. Распоряжение подписал Зорин.
Илья набрал его номер. Ответ пришёл после второго гудка.
— Семён Андреевич, закрытие остановит проверку материалов по дому № 17.
Зорин сослался на старую проводку и ответственность за людей. Документы останутся на месте, а работа продолжится после допуска. Илья включил громкую связь.
— Дайте нам час, — сказала Анна. — Обогреватель отключим.
— Проверка касается всего помещения.
— Дарья пропала после работы с этими документами.
— Её поиском занимаются уполномоченные службы. Архив опечатают именно для сохранности материалов.
— Сохранение без доступа удобно тому, кто назначает срок.
— Срок определит пожарный инспектор, Анна Сергеевна.
Связь оборвалась. Русаков прочитал распоряжение ещё раз и признал, что формально Зорин прав: проводка устарела. Илья напомнил, что обогреватель работал здесь много лет, но для распоряжения это ничего не меняло.
Анна посмотрела на стол. До закрытия оставалось меньше десяти минут. Фотографировать всё подряд было бессмысленно: без каталога снимки потеряют происхождение.
Она создала таблицу учёта. Русаков называл шифр дела и номер листа. Илья снимал общий вид, затем дату и адрес. Анна записывала имя файла и контрольную сумму. Камера Ильи показала 10 % заряда, и он выключил просмотр после каждого кадра. Русаков подсовывал под лист серую шкалу, чтобы позднее нельзя было принять изменение цвета бумаги за обработку снимка.





