Страница 35 из 107
Эльдар отключил внешние команды, ограничил скорость движения и включил отдельную запись каждого шага. Я читала значения, он сверял их с протоколом. Серое поле легло ровно. На белом проступила перфорация тестового купола. Цветные поля прошли по кругу без скачков.
Потом появилась знакомая карта свадебного неба. На маленьком куполе она выглядела почти игрушечной. Я не смотрела на дату в подписи, только на границы каналов.
- Четвёртый чистый, - сказала я.
- Все шесть получают утверждённый октябрьский профиль.
- Контрольная сумма?
Он назвал её. Я нашла ту же строку в снимке конфигурации на 17:37.
Мы прогнали цифровой полёт на малой скорости. Линии сохраняли привязку, задержки между потоками не было. После завершения Эльдар выгрузил журнал стенда и положил рядом с копией предпоказной проверки.
- Утверждённая версия чистая, - сказала я.
- На этом стенде и по проверенным параметрам, - уточнил он.
- Вы способны испортить даже хорошую новость.
- Она от этого дольше живёт.
Скрытый пакет мы не запускали сразу. Эльдар сначала открыл его структуру в режиме чтения. Название отличалось только окончанием `_copy`. Внутри лежал тот же текст, звук и последовательность кадров. Разница пряталась в таблице профилей.
Пять каналов ссылались на октябрьскую версию. Четвёртый получил профиль трёхлетней давности, рассчитанный до последней перестановки крепления.
- Его не мог выбрать случайный износ, - сказала я.
- Износ вообще не выбирает файлы.
- Тогда кто-то назначил старый профиль одному каналу.
- Да. Человек или подготовленная команда. Этого мы ещё не разделили.
Отдельную диагностическую задачу с задержкой узла Эльдар отключил в копии для этого прогона. Её исходные параметры сохранили в протоколе. Мы проверяли только действие старого профиля и заранее знали, что остановим показ при первом заметном шве.
Он поставил ладонь над своей аварийной кнопкой. Я заняла место у второй. Тестовое поле сменилось фрагментом программы. Несколько секунд всё выглядело ровно. Затем нижняя граница четвёртого сектора поползла вверх, и линия созвездия раздвоилась у края.
Я нажала кнопку.
Точнее, попыталась. Ладонь Эльдара легла поверх моих пальцев в ту же секунду. Стенд погас, вентиляторы стали слышнее. Его рука осталась на моей на один лишний вдох.
Кожа у него была тёплая, сухая. Большой палец касался косточки у моего запястья. Я не выдернула руку. Сначала посмотрела на наши пальцы, потом на Эльдара.
Он тоже смотрел на меня. Без инженерной насмешки, без привычного нетерпения. Между нами был пульт шириной в две ладони, и всё же я слишком ясно чувствовала его тепло.
Эльдар убрал руку. Я отступила к экрану.
- Остановка через две десятых секунды после выхода за порог, - сказал он.
- Запишите, что кнопка одна на двоих.
- Кнопки две.
- Тогда это была ошибка оператора.
- Обоих операторов.
Он повернулся к журналу. Я расправила лист протокола, хотя тот не помялся. Четвёртый сектор на записи показывал именно тот геометрический шов, который возник перед опасной задержкой на большом куполе. Сам по себе старый профиль портил изображение, но не объяснял запаздывание движения. Мы это отдельно отметили и не стали делать выводы о причине задержки, которую ещё предстояло доказать.
К восьми вечера в мастерской похолодало. Эльдар включил обогреватель, я надела пальто поверх свитера и снова села к журналам. Остывший кофе пришлось вылить. Вторая порция пахла лучше, но мы забыли о ней через пять минут.
Нас интересовало, когда скрытая копия перестала быть файлом в монтажной и стала активным пакетом показа. Экспорт был отмечен в 17:44. Публикация в локальную очередь комплекса появилась в 18:11:02. Запуск под подписью M-01 прошёл в 18:18:06.
- Семь минут четыре секунды, - сказала я.
- Между ними должны быть проверки доступности, чтение манифеста и опрос каналов.
- В чистом запуске они есть.
Мы положили журналы рядом. После каждой публикации система опрашивала пакет, проверяла профиль, обращалась к медиахранилищу и только потом разрешала запуск. В скрытой последовательности строка публикации стояла на месте. Следующая запись сразу сообщала об успешной авторизации M-01.
Семь минут были пустыми.
Я проверила время стенда, служебного сервера и климатического журнала. Часы шли без скачка. Температура записывалась каждые тридцать секунд. Значит, весь комплекс не зависал и не терял питание.
- Журнал очищен? - спросила я.
- Или события писались в другой контур. Или выгрузка неполная. По пустоте нельзя выбрать один вариант.
- Но пустота существует.
- Да.
Он увеличил участок и отметил начало и конец. Я перенесла их на новый пронумерованный лист, указала источники и контрольные суммы. Рука по привычке потянулась к обороту старой программки. Я остановилась и дописала всё в протокол.
- Быстро учитесь, - заметил Эльдар.
- Не превращайте это в похвалу взрослой женщине за умение пользоваться бумагой.
- Я хвалил бумагу.
- Тогда она может остаться у вас до утра.
В одиннадцать двадцать мы запечатали рабочие копии и подписали промежуточный акт. Эльдар предложил ещё раз сравнить обращения к медиахранилищу. Я посмотрела на часы.
- Это уже следующий шаг. И данные Святослава понадобятся завтра.
- Я собирался сказать то же самое.
- Но не сказали.
- Проверял, соблюдаете ли третье правило.
- Не спасать вас от ночной работы?
- Не позволять мне решить, сколько вы выдержите.
Я взяла сумку и папку. Он проводил меня до ворот, проверил, что машина такси остановилась у освещённого входа, и не стал открывать дверь вместо меня. Только передал опечатанный пакет, который я должна была утром вернуть представителю совета.
Домой я вошла без четверти двенадцать. Из гостиной вышла сонная Снежана. На столе под тарелкой лежала записка: «Суп в холодильнике». Я выпила воды, приняла душ и поставила телефон на зарядку в другом конце спальни.
- Нашли, кто сделал? - спросила дочь из коридора.
- Нашли семь пустых минут.
- Тебя разбудить утром?
Я посмотрела на время будильника и передвинула его на восемь часов вперёд.
- Через восемь часов, - сказала я. - Не раньше.