Илай открыл её модель. Мысленным импульсом развернул над столом, разглядывая, как энтомолог редкий экземпляр. Невысокая, чуть полноватая. Параметры в пределах нормы, но далеко от релевантного стандарта красоты –этого глянцевого шаблона, который он сам же и утвердил для массовых симуляций. Запрос на обновление модели он отклонил ещё при первом осмотре. Не в этом было дело. Скулы, может быть. Или линия челюсти. Что-то неправильное, не вписывающееся в общую гребёнку. Пара выцветших каштановых прядей, выбившихся из-под капюшона, торчала в стороны, как антенны.
Он мысленно вызвал команду. Не раздумывая, почти как сплюнуть.
Delete.
И уставился на проекцию, ожидая стандартной анимации распада на пиксели. Чисто. Быстро. Окончательно.
Она шла, уткнувшись в телефон, совершенно не замечая мира. Тротуар, разбитый корнями виртуальных тополей, – дешёвая текстура, которую он поленился менять. Она споткнулась об эту текстуру, отлетела в сторону и совершила нелепый, прыгающий шаг, пытаясь удержать равновесие. Пухлый аист, входящий в воду. Не рухнула, благополучно дошла до перекрёстка и замерла, снова уткнувшись в экран.
Бровь Илая поползла вверх. Delete, ещё раз. С акцентом.
На светофоре загорелся зелёный. Она сделала шаг на проезжую часть и тут же отпрыгнула назад, опалённая вихрем раскалённого воздуха и рёвом такси, пронёсшегося в сантиметре. Илай знал эту машину – он сам, только что, импульсом подкорректировал её скорость. Едва заметно. Достаточно, чтобы испугать, но не задеть.
Она лишь покачала головой, будто отгоняя назойливую муху. Взгляд её тут же переключился на голубя, безразлично клевавшего гравий у обочины. Словно ничего не было.
– Чёрт... Глюк какой-то, – тихо пробормотала она, потирая виски.
Илай не сводил глаз с проекции. Усмешка медленно сползла с его лица, оставив после себя недоумение. Пальцы, до этого расслабленные, сжались на подлокотнике.
Она посмотрела на голубя-камеру. Не на голубя. На камеру. Запрокинула голову ровно настолько, чтобы поймать в объектив своё лицо. Словно знала, что за объективом кто-то есть.
Эта... штука... видела его.
В сознание врезался сигнал. Идеально ровный, навязчивый. Майкл. Вовремя, как всегда.
– Да? — ответил Илай, не меняя позы.
– Илай, это Майкл, Отдел Коррекции.
Илай закатил глаза к потолку и начал беззвучно выстукивать пальцами ритм по подлокотнику. Не просто раздражение. Усталость особого рода, какая бывает от звука капающей воды.
– М-м? Не узнал. Говори, Майкл из Отдела Коррекции. Я занят.
– Зафиксирована попытка выполнения команды Delete в отношении объекта NPC_42_Z_2000 в обход стандартного протокола 7.4. Процедура требует предварительного карантина и анализа. Обоснуйте, пожалуйста, своё решение.
Губы Илая беззвучно проговорили: «достал». В сознании, будто назойливая муха, всплыла подсказка от «Архитектора»: [СМЕЖНЫЙ ЗАПРОС: Kai_89. ЦЕЛЕВОЙ ОБЪЕКТ: NPC_42_Z_2000. СЦЕНАРИЙ: ТРАГЕДИЯ. ПРИОРИТЕТ: ПРЕМИУМ]. Червь не унимался. Его заявка, его жалоба, его деньги. Всё это висело в системе, как неприятный запах, который нельзя проветрить.
– Обоснование? – лениво протянул Илай. – Она испортила мне сцену. Это достаточное обоснование? Твой протокол 7.4 замедляет творческий процесс, Майкл.
– Моя задача – обеспечение стабильности, а не оценка художественной ценности. – Голос санитара был идеально ровным, как кардиограмма мертвеца. – После вашего вмешательства в секторе 42-Z зафиксирован всплеск фонового шума на 4.7%. Это превышает допустимые нормы для серверов категории Премиум.
– О, нет! Целых 4.7%! – Илай театрально вскинул руки. – Мир рухнет. Может, ты хочешь, чтобы я перезагрузил сервер и всех NPC? Устроил бы тебе чистый четверг?
– Перезагрузка не является решением. Совет Правления уделяет особое внимание серверу 42 в свете последних... событий. Любые отклонения должны быть документированы и предоставлены в ежеквартальном отчёте. Нужно ли мне вносить этот инцидент в список для Совета?
Нужно ли? Илай медленно провёл языком по внутренней стороне щеки. Совет Правления. Папочка. Эти слова Майкл произносил не с угрозой, а с констатацией – так санитар сообщает, что пациент сбежал и пора звать охрану. Именно это бесстрастие бесило больше всего.
– Ты сейчас пригрозил мне Советом Правления, Майкл? Серьёзно? Ты будешь бегать к папочке и жаловаться, что я ломаю свои игрушки? – Лицо Илая исказилось презрением. Не наигранным – настоящим, глубоким, как ржавчина.
– Я лишь напоминаю о корпоративных процедурах, Илай. Ваш доступ Альфа не отменяет необходимости следовать им. Особенно когда действия угрожают стабильности продукта.
Илай откинулся в кресле глубже. Голос, когда он заговорил, потерял все оттенки – стал плоским и безжизненным, как системный лог.
– Майкл. Ты – уборщик. Этот сервер – моя песочница. Твои протоколы, Совет – вы здесь ровно до моего сигнала. Я – стабильность. Я – продукт. Ещё одно слово, и я покажу, что происходит, когда песочница остаётся без хозяина. Закрой рот. Не мешай.
Он не просто отключил канал. Он взял инициативу на себя – взломал интерфейс Майкла и на секунду вывел на его экран собственное лицо. Холодное, разгневанное, с синим цифровым бликом в серой радужке. Прежде чем связь оборвалась окончательно, он успел увидеть человека с идеально симметричным лицом и абсолютно невыразительными чертами. Майкл не вздрогнул. Просто принял картинку, как принимают входящий файл, и закрыл её.
Санитар. Идеальный продукт своей среды.
Илай переключился на живую трансляцию с камер, чтобы прочистить логи после этого муравья. Аля возвращалась с сестрой из магазина. Две фигурки неторопливо шли вдоль главной улицы, усеянной тополями и облезлыми кустами сирени. Из пакетов торчали батоны и зелень. Вместо того чтобы срезать через дворы, как предписывал маршрут 3Б, они шли дальше. Очередной самовольный демарш.
– Давай присядем. Ноги гудят, – сказала Алевтина, кивая на низкий железный заборчик.
Они устроились. Аля достала сигарету, Варя – банку газировки. Илай автоматически отметил разницу: Варя была ещё ниже сестры, практически с идентичным лицом, но под глазами лежали фиолетовые тени – скрипт хроническое недосыпание медсестры. Её улыбка была тёплой, но всегда одной и той же, как у смайлика. В отличие от Али, которая ходила с отстранённым выражением лица, будто всё происходящее было для неё черновиком, который правили на ходу.
Идеальный момент. Илай вызвал панель управления окружением. Отфильтровал список по классу Попрошайки, уровень угрозы – Нулевой. Модель Старуха_Босния_72. Стандартный скрипт – ныть у магазина и клянчить на хлеб. Он перезаписал ей координаты и сменил целевой объект с абстрактной Толпы на конкретный ID Алевтины.
– Понимаешь, – говорила Аля, выпуская дым колечком, – всё это делится на уровни... Вот смотри: едут эти, на блестящих машинах. Богатые женщины. Это простой уровень игроков.
Варя хихикала, потягивая колу:
– А эти? – она кивнула на группу подростков у подъезда.
– Средние мобы. Уже интереснее. Могут квест дать или нахамить. – Аля хитро прищурилась. – Видишь бомжа с пакетами? Он...
Из-за угла вышла она. Бородатая бабка в цветастой юбке и платке. Шаркающий звук её ботинок по асфальту Илай выставил на максимум – для атмосферности. Она направилась не к магазину, а прямо к ним. Остановилась. Протянула корявую руку.
– Внучки, милые, у меня только двести рублей, – заскрипел её вокализатор, – добавьте на электричку, к сыну больному ехать надо... Совсем беда-а...
Варя, идеальный NPC с прописанной добротой, сразу полезла в карман. Но Алевтина мягко отстранила её руку. Взгляд её был не грубый, но сканирующий.
– Погоди, бабушка. А проездной пенсионный? Со скидкой ведь можно, – спокойно, почти алгоритмично произнесла она. – Зачем тебе деньги на электричку, если есть льготы? У тебя же они должны быть.
Модель Старуха_Босния_72 зависла.
В диалоговом дереве было два варианта: получить деньги или уйти при отказе. Варианта вступать в диспут о льготах – не предусмотрено.
Пальцы Илая сомкнулись на подлокотниках. В висках застучал ровный, нетерпеливый ритм – «Архитектор» начал протокол записи данных. Аномалия разворачивалась прямо сейчас, в реальном времени, как редкий химический опыт.
– Льготы... – просипел динамик. – Льготы... у меня колени... прострелили... в девяносто третьем... А сын... сын... – она выдала случайный анимационный пакет Схватиться за живот. – Он у меня... не родился... выкидыш... на пятом месяце... к нему на могилку... на электричке...
Она генерировала околесицу. Тащила из базы данных обрывки случайных предысторий, трагедий, которые никогда не должны были всплывать. Поведенческое ядро трещало по швам.
Варя на секунду замерла – её лицо отразило классическую эмоцию Жалость к старости. Затем она торопливо выдала анимацию Достать купюру и сунула её в жилистую, зависшую в воздухе руку.
– Вот, возьмите, – пробубнила она, запуская скрипт Испуг от прикосновения.
Но бабка не ушла. Деньги активировали следующий, кривой скрипт – Благодарность с прикосновением. Её стеклянный взгляд упал на Варины руки. Анимация Ухватиться за руку запустилась с запозданием, и старуха начала воспроизводить звуковые файлы с влажными поцелуями. Варя ахнула, пытаясь инициировать Отпрянуть, но старуха не выпускала, оседая, пытаясь опуститься на колени.
Илай решил, что театр одного актёра окончен. Terminate_interaction.
Старушка зависла на полпути к земле. Тело дёрнулось в спазме отменённой анимации, пальцы разжались. Лицо сбросилось к стандартной маске Безразличие по умолчанию. Она развернулась и зашаркала прочь, к точке деспавна.
– Господи... Это что вообще было? Она же совсем ненормальная... – Варя вытерла руку, запуская заложенную реплику на стресс.
Аля молча проводила старуху глазами. На лице мелькнуло что-то похожее на сострадание – не к старухе, а к глюку, который её сломал. Потом взгляд снова стал аналитическим, холодным.
– Не ненормальная, – задумчиво сказала она. – Сломанная. У неё нет сына. Ни больного, ни мёртвого. У неё вообще нет прошлого.
– В смысле? – не поняла Варя.
– Да она просто спятила, Варь. Видишь, у неё в голове все сценарии перемешались, как в плохом спектакле, где актёру сразу все роли дали. Трагедия, комедия, благодарность. Всё в одну кучу. – Аля активировала скрипт Смех для снятия напряжения, но Илай видел: улыбка не дошла до глаз.
Она снова подняла голову. В этот раз – без вызова, без сарказма. Только усталая убеждённость и раздражение айтишника, нашедшего кривой код.
Холодок, не имевший ничего общего с температурой в кабинете, пробежал по спине Илая. Взгляд его скользнул по стенам – ни книг, ни безделушек, лишь швы между панелями. Скука, ещё секунду назад давившая виски, отступила. Бесследно.
Перед ним висело лицо Алевтины.
Смотришь в код...
Он отбросил мысленную метафору и ткнул пальцем в проекцию, разворачивая окно системных логов. Система – дура, которую волнуют цифры, а не причины. Фильтры щёлкали, как затворы камер. Аномалии. Остановки.
Стоп-кадр посреди тротуара.
[ВРЕМЯ: 14:32:01][СТИМУЛ: NULL][ПРЕПЯТСТВИЯ: NULL][СОСТОЯНИЕ: ПОЛНАЯ ОСТАНОВКА ПРОЦЕССОВ. ДЛИТЕЛЬНОСТЬ: 4.3 СЕК.]
На что она смотрела? Илай рванул архив камер и обломался. Не в телефон. Не под ноги. Она уставилась на стайку воробьёв, возившихся у водосточной трубы. Птички. Вшивые ассеты с минимальным полигонажем. Стоимость вычислительных мощностей для её существования превышала цену всей этой стаи в десятикратном размере.
Дальше – массив микроотклонений. Она сворачивала в парк, хотя скрипт предписывал его избегать. Проезжала остановку, засматриваясь на «Женщину в жёлтом». В её файле не было ни единого триггера на это.
Потом – Инвентарь и спутники. Код Алевтины чист. Но логи окружения упрямо фиксировали попутчика. Он прогнал ID.
[БЭЙЛ. КЛАСС: ТВОРЧЕСКИЙ РЕЖИМ. СТАТУС: АКТИВЕН]
Уголок губы Илая дёрнулся. Внешнее вмешательство? Но воробьи... Никакой игрок, даже с творческим доступом, не мог вшить ей в голову любопытство к птицам. Это было что-то другое. Что-то врождённое.
Он погрузился в ядро её поведенческого алгоритма. Миллионы строк кода поплыли перед глазами. И в самом низу, за стандартными пресетами, за слоями шаблонных реакций, он это нашёл. Незначительную, саморазмножающуюся сволочь.
[CURIOSITY_FACTOR = 0.07]
Указательный палец прижался к точке за ухом, где сходились нанонити. Давление – и назойливый шум в голове стих, уступив место чистому, холодному коду. Илай уставился на её лицо с записи. Серая мышь. Нестандартная, угловатая, колючая. Что в ней такого, что заставило Бэйла – а это был он, сомнений нет – копаться здесь неделю? Творение проявило волю. Потенциальная угроза цепной реакции.
Память подкинула обрывок старой рекламы. Он вызвал запись.
«Синтон: ваше спасение в безумном мире».
На экране – блогер Smile-Jake, живой и тёплый, в уютной, неидеальной комнате. Мягкий свет. Футболка с принтом, кружка с мемом.
– Народ, привет. Последние недели – жесть. Паника, вирус... Я схожу с ума.
– Ребята из «Синтона» предложили попробовать. Не магию, а просто... жизнь.
Крупный план: он прикладывает к виску нейрочип. Глаза закатываются.
– Вы не поверите... – Лицо озаряется восторгом. Голограмма: он сам играет в мяч с NPC в виртуальном парке. – Это не игра. Это... наконец-то можно выдохнуть.
Он смотрит в камеру, взгляд серьёзный:
– Не бегите от реальности. Создайте новую.
Илай отключил запись. Десять лет назад они продавали им надежду. А теперь... теперь он сидит здесь и смотрит, как маленькая серая NPC с фактором любопытства 0.07 останавливается посреди тротуара, чтобы посмотреть на воробьёв. И это пробуждение стоило больше, чем все рекламные кампании вместе взятые.
Он не мог её удалить. Мысль о Delete больше не вызывала ничего, кроме глухого, почти физического сопротивления, как при попытке раздавить что-то живое голыми руками.
Тихо, почти беззвучно, он отдал новую команду. Не Delete. Другое. Пока просто: наблюдать. Записывать всё.
Игла одержимости уже вошла под кожу, и он этого не заметил.
