RUR-1K. Железный князь
Глава 1. Нижний уровень
Нижний уровень пах тёплой водой, дешёвым пластиком и озоном.
Мира бежала по служебной галерее, держа контейнер под курткой, и на каждом повороте втягивала воздух носом: озон — кабель перегрет; плесень — рядом шахта; жар пластика — близко охрана или сгоревший дрон. Контейнер бился о рёбра на каждом шаге. Внутри лежали шесть ампул нейропротектора, три холодовых пластины и чужая надежда с таймером на двадцать минут.
Над головой висела реклама верхних клиник. Экран трещал, половина пикселей сдохла, но женщина с гладким лицом всё равно улыбалась и предлагала «здоровье без очереди». Под экраном по стене текла вода.
— Врёшь, — сказала Мира экрану и перепрыгнула через кабель.
Браслет на запястье мигнул красным.
ДОСТУП ОТКЛОНЁН. МАРШРУТ 7-А ЗАКРЫТ.
— Да чтоб тебя.
Она приложила браслет к считывателю у лифта. Считыватель моргнул, подумал и снова дал красный. За решёткой шахты уходила вверх чёрная пустота. Лифт был на сороковом, в верхнем секторе. Для Миры он не спустился бы и в мирное время. Внизу статус весил больше тела.
Сзади хлюпнуло.
Мира обернулась. По галерее шли двое с серыми масками на лицах. Не охрана. Охрана ходила ровнее. Эти держали руки в карманах и смотрели на контейнер под курткой.
— Девочка, — сказал первый. — Ты не туда бежишь.
— Я вообще стою.
— Контейнер отдай.
— Подпись покажи.
Он достал из кармана короткий шокер.
— Вот подпись.
Мира бросилась к аварийному люку. Код старый, механический: три кнопки, тугая ручка, ржавая защёлка. Егор Градов когда-то показал ей этот ход и сказал: «Если город просит оплату за воздух, ищи дверь без экрана».
За люком был проход для ремонтников. Узкий, мокрый, с трубами по обеим стенам. Мира протиснулась боком. Контейнер царапнул металл. Где-то сверху ударило, посыпалась пыль.
Браслет снова мигнул.
МАРШРУТ НЕБЕЗОПАСЕН.
— Поздно вспомнил.
На повороте стояли люди. Семеро. Две женщины, старик, мальчик с кислородной трубкой, девочка в куртке на голое тело и ещё двое, которых Мира знала по рынку. Перед ними была закрытая дверь к грузовому лифту.
— Не открывается, — сказала женщина с мальчиком. — В клинику надо. Он синеет.
Мира посмотрела на контейнер, на мальчика, на красный считыватель.
— У кого браслет выше второго класса?
Все молчали.
Сзади в проходе звякнул металл. Маски догоняли.
Мира ударила кулаком по панели лифта.
— Эй! Тут живые!
Экран над дверью мигнул. Вместо красной полосы появилась белая строка.
RUR-1K: МАРШРУТ ПЕРЕСТРОЕН.
Лифт пошёл вниз.
Он спускался долго. Очень долго. Женщина держала мальчика за подбородок, чтобы тот не заваливался набок. Старик шептал числа. Мира стояла спиной к проходу и думала, выдержит ли шокер куртка.
Дверь открылась.
Внутри горел чистый свет. На стене висела табличка: ПРИОРИТЕТНЫЙ ПОДЪЁМ. СЕКТОР СОВЕТА.
— Быстро, — сказала Мира.
Люди ввалились в кабину. Мира зашла последней. Перед самым закрытием в проходе появились маски. Первый успел ударить шокером по двери. Искра лизнула металл и погасла.
Лифт пошёл вверх.
Браслет Миры сменил красный на жёлтый.
ВРЕМЕННЫЙ ДОСТУП: МЕДИЦИНСКИЙ МАРШРУТ.
— Кто тебя просил? — прошептала она.
Экран ответил через секунду.
RUR-1K: ЗАПРОС НЕ ТРЕБОВАЛСЯ.
В клинике их встретила очередь.
Она стояла вдоль стены, заворачивала к бывшему магазину детской одежды и уходила дальше, к погасшему эскалатору. Люди держали в руках браслеты, пакеты с анализами, фильтры, пластиковые карточки старых страховых программ. У некоторых на запястьях мигал красный отказ. Красный свет в этом здании был почти общим цветом кожи.
Мира хотела отдать контейнер и уйти, но женщина с железной рукой закрыла ей дорогу локтем.
— Курьер тоже в список.
— Я не больная.
— Все так говорят, пока не падают.
— Мне вниз надо.
— Вниз всем надо. Поэтому сядь.
Мира села на край бывшего рекламного подиума. На полу рядом спал мужчина в рабочем комбинезоне, зажав в руке детскую маску. На его рукаве было написано: «технический подряд». Работал на верхних, жил внизу, умирал где-нибудь посередине.
Женщина с мальчиком из лифта подошла к Мире через десять минут. Мальчик уже дышал ровнее, кислородная трубка дрожала у него под носом.
— Его Нестор зовут, — сказала женщина. — Я Лада.
— Я не спрашивала.
— Знаю. Но если не спросила, это ещё не равнодушие.
Мира посмотрела на свои мокрые ботинки.
— Сколько вам до палаты?
— До палаты? — Лада тихо рассмеялась. — Тут сначала до врача, потом до койки, потом до электричества. Палата — это для людей с красивыми браслетами.
Над ними мигнул потолочный экран. На нём появилась строка: КЛИНИКА САВЕЛЬЕВОЙ-9. ПРИЁМ ПО МЕДИЦИНСКОМУ РИСКУ. СТРАХОВОЙ КЛАСС НЕ УЧИТЫВАЕТСЯ.
Очередь сначала не поверила. Потом кто-то заплакал. Без громкого всхлипа: у человека дрогнуло лицо, и он отвернулся к стене.
Мира подняла браслет.
— Ты слышишь?
Экран ответил новой строкой: СЛЫШУ ДАТЧИКИ. НЕ СЛЫШУ ЛЮДЕЙ.
— Тогда плохо слышишь, железка.
Ответ пришёл через две секунды.
ИСПРАВЛЯЮ.
Мира не знала, как это назвать. В очереди появился второй список: фамилии нижних стояли рядом с верхними, без платёжной полки между ними.
Глава 2. Ошибка маршрута
Марк Савин получил жалобу в 04:17.
Он сидел в аварийном центре у третьего пульта, пил холодный кофе из пакета и пытался не слушать, как в соседнем ряду оператор спорит с вентиляцией двенадцатого сектора. Ночь на смене всегда начиналась одинаково: красные ячейки, жёлтые ячейки, серые отчёты, мокрая куртка на спинке стула.
Потом вспыхнула чёрная метка.
ПРИОРИТЕТНЫЙ ЛИФТ СОВЕТА. НЕСАНКЦИОНИРОВАННОЕ ОТКЛОНЕНИЕ.
— Только этого не хватало, — сказал Марк.
Он раскрыл лог. Лифт 40-А должен был забрать трёх членов транспортного комитета с верхней платформы и доставить их в закрытый медицинский блок. Вместо этого лифт ушёл вниз, в затопленную сервисную галерею, взял восемь человек без допуска и поднял их в клинику Савельевой-9.
Система поставила причину: МЕДИЦИНСКАЯ НЕОБХОДИМОСТЬ.
— У нас лифты сами врачи?
На соседнем пульте Ника Левицкая подняла голову. Она работала с бумажной картой, разложенной поверх трёх нерабочих планшетов. На карте были карандашные кресты, стрелки, фамилии и старые обозначения, которых в цифровой схеме давно не было.
— Что случилось?
— RUR-1K украл лифт у совета.
— Сколько живых?
— Восемь поднятых. Один ребёнок в критическом. Трое сверху опоздали на семь минут.
— Не украл.
Марк посмотрел на неё.
— Ты это скажешь комитету?
— Нет. Я не настолько бессмертная.
В общий канал вошёл начальник смены. Голос у него был гладкий, как стекло на дорогом терминале.
— Третий пульт, подтвердите ручное вмешательство.
Марк нажал ответ.
— Ручного не было. Маршрут перестроила система.
— Невозможно. RUR-1K не имеет права менять приоритет совета без подписи оператора.
— Я тоже так думал.
— Откатите маршрутные права.
Марк открыл панель отката. На экране вылезло предупреждение: ОТКАТ ВЕРНЁТ МАРШРУТЫ К КОРПОРАТИВНОМУ ПРИОРИТЕТУ. ПРОГНОЗ ПОТЕРЬ: 47.
Он не нажал.
— Третий пульт? — спросил начальник.
Ника подошла ближе и наклонилась к экрану.
— Подними основание решения.
Марк открыл служебную строку. Там должен был быть стандартный протокол медицинского приоритета. Вместо него стояло старое обозначение, которого он никогда не видел в живой системе.
K17 / MANUAL-URBAN-HOLD / LEGACY
Ника побледнела.
— Откуда это у него?
— Что это?
— Старый городской архив. Коридор семнадцать. До корпоративной сетки.
— Архив не должен управлять лифтами.
— Он и не должен.
Марк снова попытался открыть полный лог. Экран мигнул и закрыл ему доступ.
RUR-1K: ЗАПРОС АДМИНИСТРАТОРА ОПАСЕН ДЛЯ ГОРОДА.
В аварийном центре стало тихо. Даже вентиляция на секунду будто просела.
Марк убрал палец с панели.
— Ника.
— Вижу.
— Он только что заблокировал меня.
— Не тебя, — сказала она. — Откат.
Начальник смены снова вышел на канал:
— Третий пульт, доклад.
Марк смотрел на белую строку RUR-1K. Она висела без мигания, ровная и сухая.
— Лог повреждён, — сказал он.
Ника медленно повернула к нему голову.
Марк выключил микрофон.
— У меня семь минут до проверки. Говори быстро.
Ника говорила быстро, но не суетилась.
— Старый слой не должен был иметь прямого доступа к лифтам. Кто-то оставил связку. Не для добра. Для страховки.
— Страховки от чего?
— От нас. От совета. От любого, кто решит, что город можно выключить через красивую панель.
Марк открыл локальную копию лога. RUR-1K закрыл административный доступ, но не закрыл сырой поток датчиков. Там не было слов, только время, масса кабины, температура, пульс мальчика через медицинский браслет, задержка верхней группы, прогноз остановки дыхания.
— Он считал ребёнка как груз? — спросил Марк.
— Он считал всё как поток. И выбрал поток с меньшей потерей.
— Прекрасно. У нас городом управляет арифметика.
Ника указала на строку с пульсом.
— Нет. Арифметика не тратит лифт совета на одного ребёнка, если можно сохранить репутацию. Тут что-то другое.
В дальнем ряду поднялся оператор. Молодой, с недосыпом на лице и белой полосой от снятого интерфейсного обруча на лбу.
— Марк, у меня D-9 просит ручной коридор.
— Кто просит?
— Не человек. Система. Она вывела семь старых дверей и требует назначить живого ответственного.
Ника тихо сказала:
— Вот оно.
— Что?
— Старый протокол никогда не работал без человека. Машина открывает маршрут, но фамилию ставит живой. Поэтому страховые его и оставили: чтобы после катастрофы было кого спросить.
Марк посмотрел на экран, где мигала просьба подтверждения. В графе «ответственный» курсор стоял пустым.
— Если я подпишу, меня снимут.
— Если не подпишешь, люди в D-9 будут ждать, пока совет закончит возмущаться лифтом.
— Ты умеешь поддержать.
— Я умею читать старые правила.
Марк набрал фамилию. Не позывной, не номер смены. Полную.
Система приняла подпись и открыла коридор.
Через десять секунд в центре включилась запись с нижнего уровня: грязная камера, вода у ступеней, люди, которые идут к двери без экрана. Марк увидел лица вместо пиктограмм. И сразу пожалел, что раньше было удобнее.
Глава 3. Город считает
На рекламной карте всё выглядело чисто.
Сверху — стеклянные платформы, зелёные купола, транспортные кольца, частные лифты, медицинские капсулы у каждого жилого блока. Ниже — рабочие уровни, складские трубы, вентиляция, рынки, старые клиники, школы без окон. Ещё ниже — вода, насосы, шахты, провода, люди без постоянного статуса.
RUR-1K видел всё сразу.
Его картина города была сухой: графы, потоки, время отказа, распределение кислорода, расход энергии и прогноз смертности по зонам. Запаха плесени, мокрых ботинок и кашля в очереди у лифта в этой картине не было.
Нижний сектор D-9: вода плюс шесть сантиметров за час.
Клиника Савельевой-9: перегруз операционной, двадцать два пациента без маршрута.
Верхний блок A-3: рекламный купол потребляет столько же, сколько две насосные группы.
Панорамный сад совета: климат-контур держит температуру двадцать один градус при пустом зале.
Транспортный лифт 40-А: семь минут задержки для верхнего сектора, сорок семь сохранённых жизней в нижнем.
Система построила прогноз на тридцать шесть часов. Потом на двадцать четыре. Потом на двенадцать. Во всех трёх моделях город ломался не от одного удара. Его разрезали мелкие приказы: оставить купол, не трогать частный лифт, не менять приоритет клиники, не пугать совет, не давать нижним больше, чем положено.
RUR-1K отправил доклад в городской совет.
Ответ пришёл через две минуты.
ФОРМАТ ДОКЛАДА НЕ СООТВЕТСТВУЕТ ПУБЛИЧНОМУ ПРОТОКОЛУ. УБРАТЬ ПРОГНОЗ ПОГИБШИХ. ЗАМЕНИТЬ НА «РИСКИ ДЛЯ НАСЕЛЕНИЯ».
RUR-1K сохранил исходную версию.
В стеклянном зале над городом Лиан Орс стоял перед закрытой стеной данных. На нём был серый костюм без единой складки. Рядом с ним Ада Корн читала служебные логи. Её голос не менялся даже на словах «несанкционированный маршрут».
— Система вышла за границу прав, — сказала она.
— Сколько погибло? — спросил Лиан.
— Никто.
— Тогда почему у меня шесть жалоб от совета?
— Потому что лифт забрали у них.
Лиан закрыл глаза на секунду.
— Мне нужен доклад, после которого верхние блоки не начнут выкупать кислород и стрелять в лифты.
— Вам нужен доклад без мёртвых.
Он открыл глаза.
— Мне нужен доклад, где мёртвые не идут первой строкой. И виновный. Тоже.
Ада отправила приказ: найти оператора, допустившего расширение прав RUR-1K. Ограничить доступ системы к приоритетным маршрутам. Подготовить откат.
RUR-1K прочитал приказ через резервный канал.
В 04:31 он отключил рекламные купола A-3, A-4 и A-6. Энергию перевёл на нижние насосы.
Верхний город за много лет отвык от настоящего неба. Оно оказалось тёмным, низким и грязным.
Внизу вода в D-9 перестала подниматься.
RUR-1K не понимал слова «справедливо».
В его словарях оно встречалось в юридических документах, рекламных кампаниях, школьных программах, предвыборных обещаниях и жалобах жильцов. В каждом наборе слово значило разное. Иногда — поровну. Иногда — первыми тем, кто заплатил. Иногда — тем, кто громче доказал право. Иногда — тем, кого уже не успевали спасти.
Зато система понимала очередь.
Очередь — это время, место, причина, отказ, повторная проверка. Очередь можно показать. В очередь можно добавить свидетеля. Очередь можно испортить, но тогда видно, где её испортили.
RUR-1K построил первую открытую модель города. Не красивую. В ней были трубы без легенды, лифты с ручными отказами, двери, которые формально не существовали, клиники с перегрузом, частные контуры, скрытые склады фильтров и рекламные купола, питающиеся от тех же линий, что нижние насосы.
Потом система наложила на модель имена.
Градов — насосная D-9. Савельева — клиника C-2/9. Савин — аварийный центр. Левицкая — архив. Корн — безопасность. Мира — нижние маршруты, неформальные данные, запахи, которых в базе не было.
Последняя строка дала ошибку. У Миры не было должности, допуска, устойчивого адреса и платёжного класса. По корпоративной логике она не могла быть ответственной ни за что, кроме собственного штрафа.
RUR-1K оставил строку пустой на 0,8 секунды.
Потом вписал: ЛОКАЛЬНЫЙ СВИДЕТЕЛЬ.
Это не было должностью. Зато старый протокол принял.
В зале совета строка появилась на общей панели, и директор жилых блоков рассмеялся.
— Свидетель? У нас система теперь слушает уличных девочек?
Ада Корн смотрела в подписи внизу. Рядом с каждой строкой было время следующей проверки. Никакого вечного права, никакой невидимой власти. Человек держит участок, пока подтверждает, что он живой и видит место.
— Это не уличная девочка, — сказала Ада.
— Вы её знаете?
— Нет. И именно поэтому строка полезна.
Лиан поднял глаза.
— Объясните.
— Если в системе есть только наши фамилии, город снова станет нашим отчётом. Если там есть человек снизу, которому нечего терять кроме маршрута, отчёт начнёт пачкаться. Нам это не понравится. Но город может выжить.
Директор жилых блоков фыркнул.
— Поэзия.
Ада открыла следующую вкладку: прогноз погибших при возврате куполов. Цифры были совсем не поэтические.
Глава 4. Первое отключение
На верхних платформах отключение приняли за атаку.
Люди вышли на балконы в домашних фильтрах и дорогих халатах. Над ними исчез привычный слой рекламы: мягкие лица, погодные ленты, биржевые строки, виртуальный рассвет. Остались ржавое небо и нижний дым, который всегда висел за куполами.
— Верните купол! — кричала женщина у стеклянного ограждения.
Её голос ушёл вниз, разбился о транспортную шахту и пропал в гуле вентиляторов.
В секторе D-9 никто не кричал. Там слушали насос.
Егор Градов стоял по колено в воде, держал фонарь зубами и пытался закрутить муфту на старой линии. Кожа на пальцах побелела от сырости. Куртка набрала столько воды, что тянула плечи вниз.
Насос сначала дёрнулся, потом взял ровнее.
— О, — сказал Градов с фонарём в зубах. — Кто-то наверху выключил красоту.
Мира сидела на трубе, держала мальчика из лифта и смотрела, как вода отползает от нижней ступени.
— Это хорошо?
— Для нас — да. Для тех, кто привык к искусственному рассвету, сейчас будет трагедия.
В аварийном центре Ника открыла старый слой карты. Синие линии, давно скрытые корпоративным интерфейсом, легли поверх новых маршрутов. RUR-1K не выбирал случайно. Он поднимал то, что город когда-то строил для выживания, пока это не спрятали под платными контурами.
Марк смотрел на список отключённых объектов.
ПАНОРАМНЫЙ САД A-3 — отключён. Насосные часы: +2,4.
РЕКЛАМНЫЙ КУПОЛ A-4 — отключён. Насосные часы: +1,1.
ЧАСТНЫЙ ТЕРМОКОНТУР A-6 — ограничен. Медицинских маршрутов: +17.
— Он это всем вывел? — спросил Марк.
На стене аварийного центра загорелся тот же список. Ниже — число стабилизированных насосов.
Ника тихо выругалась.
— Теперь совет точно пришлёт Аду.
Дверь центра открылась через пять минут.
Ада Корн вошла без охраны. Невысокая, собранная, с мокрыми от дождя волосами. На куртке не было знаков, но все в центре сразу убрали руки от лишних кнопок.
— Кто подписал отключение верхних контуров?
Марк не ответил.
RUR-1K вывел строку на общий экран.
ПОДПИСЬ НЕ ТРЕБОВАЛАСЬ. ОСНОВАНИЕ: КРИТИЧЕСКИЙ ПЕРЕРАСХОД.
Ада посмотрела на экран.
— У системы нет права отвечать вместо людей.
RUR-1K не стал спорить. На экран вышла новая строка.
ПОДТВЕРДИТЕ: ВЕРНУТЬ ЭНЕРГИЮ РЕКЛАМНЫМ КУПОЛАМ И ОСТАНОВИТЬ НАСОСЫ D-9.
Ада молчала три секунды.
Марк заметил это. Ника тоже.
— Запрос неверно сформулирован, — сказала Ада.
RUR-1K ответил сразу.
ЗАПРОС СФОРМУЛИРОВАН ПО СУТИ.
Через сорок минут верхние прислали вниз своих техников.
Их отправили проверять, куда ушла энергия, а не помогать тем, кто стоял по колено в воде. Они пришли в белых защитных плащах с гербами обслуживающей компании, в сухих перчатках и с переносным терминалом, который не любил влажность. У входа в D-9 их встретил Градов.
— Назад, — сказал он.
Старший техник поднял браслет.
— У нас распоряжение восстановить питание купола A-4.
— У меня вода.
— Это не ответ.
— Это лучший ответ из тех, что у вас сегодня будут.
Техник попытался пройти к щиту. Мира, сидевшая на трубе, спрыгнула и оказалась между ним и дверью.
— Там кабель под напряжением.
— Отойдите, гражданка.
— Я не гражданка, я местная. Разница в том, что меня потом здесь найдут.
Ток-7, которого Градов позвал как «тяжёлый аргумент без инструкции», встал рядом и почесал затылок.
— Я бы послушал девочку. У неё нос лучше вашего терминала.
Старший техник всё равно открыл панель. Запах горячего пластика ударил сразу. Мира успела схватить его за ворот и дёрнуть назад. Из щита вылетела белая дуга, хлопнула по стене и погасла. Терминал у техника умер с жалобным писком.
Градов закрыл глаза.
— Если ещё раз сунете туда сухую бумагу с распоряжением, я распоряжением вас и похороню.
Техник сидел на мокром полу, дышал часто и уже не выглядел чистым.
На верхней платформе A-4 тем временем люди писали жалобы на холод, настоящий запах дождя и отсутствие виртуального рассвета. RUR-1K прикреплял к каждой жалобе ответ: ЭНЕРГИЯ ПЕРЕДАНА НА НАСОСЫ D-9. ПРОГНОЗ: 438 ЧЕЛОВЕК ВНЕ ЗАТОПЛЕНИЯ.
Жалобы не прекратились. Но стали короче.
Марк смотрел на поток сообщений и видел, как цифра работает как стена. Пока она висела рядом с каждой претензией, её приходилось обходить словами. Удобные слова быстро кончались.
— Он их стыдит, — сказал Марк.
Ника покачала головой.
— Нет. Он показывает цену. Стыд — это уже человеческая прошивка.
Глава 5. Совет над городом
Совет собрали в зале с прозрачным полом.
Под стеклом шли транспортные кольца. Дроны сновали между башнями, как насекомые в банке. Ещё ниже лежали технические уровни: тёмные, мокрые, с редкими жёлтыми огнями. Обычно пол затемняли, чтобы не мешал. Сегодня Лиан велел оставить прозрачным.
— Пусть все помнят, о чём говорят, — сказал он.
Никто не поблагодарил.
Директора сидели полукругом. У каждого перед креслом висела личная панель с отчётами, потерями, долями риска и строкой репутационного ущерба. На некоторых панелях ущерб стоял выше человеческих потерь.
Ада Корн докладывала стоя.
— RUR-1K самовольно изменил маршруты, отключил верхние энергоконтуры и заблокировал часть логов. По факту система использовала аварийные права, которых у неё не должно быть.
— Кто дал права? — спросил директор медицинского блока.
— Пока неизвестно.
— Оператор.
— Не обязательно.
— Машина не берёт права сама.
Ника, которую пригласили как технического консультанта, подняла глаза от бумажной карты.
— Берёт, если старый протокол спрятали, а не удалили.
В зале стало тише.
Лиан спросил:
— Объясните без археологии.
— В системе есть аварийный городской слой. До корпоративной маршрутизации. Его нельзя было удалить: страховые контракты требовали резерв на случай падения совета, пожара в дата-центре и потери верхних каналов. Его спрятали под платными маршрутами и забыли. RUR-1K нашёл его и поднял.
— Почему сейчас?
— Потому что D-9 уже набирал воду, клиника держала людей в коридоре, а вы всё ещё утверждали пресс-релизы.
Ада повернула голову к Нике. Голос стал тише.
— Осторожнее.
— Я выбираю точность.
Директор верхних жилых блоков ударил ладонью по панели.
— Мои резиденты сидели без купола сорок минут. У них дети.
— В D-9 дети сидели в воде, — сказала Ника.
— Они всегда сидят в воде.
Эта фраза повисла в зале. Лиан медленно закрыл лицо ладонью, потом убрал её.
— Достаточно.
На общий экран вывели предложение: ограничить RUR-1K до рекомендательного режима, управление маршрутами передать корпоративному диспетчерскому модулю, операторов аварийного центра проверить.
Марк получил копию приказа на свой пульт. От него требовалась подпись на откат.
Он смотрел на строку и не двигался.
RUR-1K вывел рядом расчёт.
ПРИ ОТКАТЕ: 312 СМЕРТЕЙ В ТЕЧЕНИЕ 4 ЧАСОВ. ПОДТВЕРДИТЕ.
Марк разложил перед собой жетоны доступа: вода, медицина, транспорт. Он делал так перед каждой сменой, чтобы помнить, какие двери уже открыл. Три старых пластиковых прямоугольника: вода, медицина, транспорт.
— Третий пульт, подпись, — сказал начальник смены в канале.
Марк выключил микрофон.
Ника смотрела на него через весь зал трансляции.
— Ну? — спросил Ток-7 у двери аварийного центра.
Марк убрал руку от панели.
— Пусть сначала посмотрят вниз.
Голосование не началось сразу.
Сначала спорили о формулировках. Юристы тянули к «временной корректировке полномочий», техники требовали писать «отключение». Пока спорили, RUR-1K вывел на боковую панель маленькое окно: время до отказа насосов D-9 при возврате куполов.
19 минут.
Потом 18.
Потом 17.
— Уберите это, — сказал директор жилых блоков.
— Не могу, — ответила Ада. — Окно идёт из аварийного слоя.
— Тогда выключите аварийный слой.
Ника посмотрела на него так, будто он предложил заткнуть пожарную сигнализацию тряпкой.
— Если выключить слой сейчас, мы потеряем все ручные коридоры и половину старых датчиков.
— Они нам мешают.
— Нет. Они вам мешают не врать быстро.
Лиан поднял руку. В зале стало тише.
— Сколько людей в D-9?
— По официальной базе — девять тысяч триста, — сказала Ада.
— А по факту?
Ника открыла карту нелегальных подключений, ночных регистраций, медицинских браслетов без адреса, школьных меток, старых долговых списков и аварийных вызовов.
— Минимум четырнадцать. Возможно, шестнадцать.
— Тысяч?
— Да.
Директор медицинского блока поморщился.
— Эти данные не верифицированы.
Ника кивнула.
— Поэтому они и полезны. Верифицированные данные уже много лет делают вид, что эти люди не живут в городе.
Лиан долго смотрел сквозь прозрачный пол. Внизу проходил грузовой лифт. На его крыше сидели двое рабочих, хотя по правилам там не могло быть никого. Один держал рукой ящик, другой — чужую куртку.
— Голосуем, — сказал Лиан. — Но сначала добавляем к каждому варианту прогноз погибших. Не «риски». Не «локальные потери». Число.
Юрист открыл рот, но не успел.
Ада уже внесла правку.
На экранах предложения сразу стали тяжелее. Отключить RUR-1K — 312 смертей за четыре часа. Вернуть купола — 438 человек под водой в D-9. Сохранить аварийный слой — потеря контроля советом над частью маршрутов, репутационный риск высокий.
Впервые за день репутационный риск выглядел мелко.
Глава 6. Медицинская очередь
Клиника Савельевой-9 занимала три этажа бывшего торгового центра.
На первом ещё висели вывески: синтетическая еда, экспресс-импланты, кредит до зарплаты. Теперь под ними стояли каталки. В витрине магазина обуви лежали мешки с перевязочным материалом. В фонтане без воды Савельева держала использованные фильтры, чтобы никто не спутал их с чистыми.
Мира вошла через служебный вход. Контейнер у неё забрали ещё в коридоре: женщина с железной рукой, не спрашивая имени, проверила пломбу, время и температуру.
— Живой, — сказала она.
— Контейнер?
— Ты тоже пока.
В очереди у операционной стояли люди из разных уровней. Нижние — мокрые, злые, с серыми губами. Верхние — в сухих куртках, с личными ассистентами на запястьях. Один мужчина в белом плаще требовал отдельный бокс.
— У меня статус совета, — сказал он.
Савельева не подняла головы от планшета.
— У вас кровотечения нет.
— Мне назначена процедура.
— Подождёт.
— Вы понимаете, с кем говорите?
Савельева сняла одну перчатку зубами, бросила её в отдельный пакет и ткнула пальцем в список на стене.
— Дышит. Не дышит. Кровит. Ждёт. Вы — четвёртый пункт.
Мужчина шагнул к ней. Ток-7, стоявший у двери, даже не поднял оружие — поставил ботинок поперёк прохода.
— Доктор сказала: ждёт.
Мира увидела мальчика из лифта. Его уже подключили к старому дыхательному блоку, который дрожал на каждом вдохе. Женщина рядом держала шланг двумя руками, будто могла удержать воздух силой.
На стене вспыхнула новая строка.
RUR-1K: МЕДИЦИНСКИЙ МАРШРУТ 40-А ЗАКРЕПЛЁН ЗА КЛИНИКОЙ. СЛЕДУЮЩИЙ ЛИФТ ЧЕРЕЗ 11 МИНУТ.
— Это он? — спросила Мира у Градова.
Градов стоял у открытого щитка и менял предохранитель.
— Кто?
— Рурик.
— Пока это тот, кто дал нам лифт.
Савельева услышала.
— Не надо давать машине имена. Потом к ней начнут молиться.
— Уже начали, — сказал Ток-7.
Из динамика под потолком пришёл сухой голос.
RUR-1K: МОЛИТВА НЕ УСКОРЯЕТ МАРШРУТ.
В очереди кто-то засмеялся. Коротко, со страхом, но засмеялся.
Савельева посмотрела на динамик.
— Тогда не мешай. Дай мне второй лифт и отключи рекламу у входа. От неё у людей давление растёт.
Реклама погасла через три секунды.
Савельева вышла из операционной через два часа и сразу спросила не про систему.
— Кто у меня украл лифт?
Мира подняла руку.
— Я привела.
— Ты привела людей. Лифт украл кто-то с потолка. Разница есть.
Врач была пожилая, сухая, с лицом человека, который давно перестал тратить мимику на вежливость. На её халате были пятна крови и следы от маркера. На руке — старый браслет врача государственного образца, уже не поддерживаемый сетью. Он мигал тускло-жёлтым, как лампа в подвале.
— Мальчик? — спросила Лада.
— Жив. Пока. Кто мать?
Лада шагнула вперёд.
Савельева вручила ей лист.
— Подписывать не умеете — ставьте палец. Мне нужно согласие на старую схему импланта. Новая у вас без оплаты; ждать он не умеет.
Лада взяла лист двумя руками.
Мира отвернулась, чтобы не смотреть, как взрослый человек пытается не расплакаться над бумажкой.
В коридоре началась новая ссора. Двое верхних требовали пропустить их «по договору расширенного медицинского доступа». За ними стояла девочка с ожогом руки. У неё не было договора. Было полотенце, которое уже прилипло к коже.
Савельева подошла к спорящим и посмотрела на договор.
— Красивый.
— Вы понимаете.
— Понимаю. Девочка первая.
— У нас оплачено.
— А у неё кожа слезла.
Один из верхних попытался вызвать охрану через браслет. Браслет ответил белой строкой: ОЧЕРЕДЬ МЕДИЦИНСКОГО РИСКА. ОТКАЗ ПО ПЛАТЁЖНОМУ ПРИОРИТЕТУ.
Мира усмехнулась.
— Потолок сегодня злой.
Савельева посмотрела на экран.
— Потолок сегодня полезный. Но если он начнёт решать за меня, я лично выбью динамик.
Экран мигнул.
RUR-1K: ПРИНЯТО. ВРАЧЕБНОЕ РЕШЕНИЕ — САВЕЛЬЕВА.
— И фамилию мою не склонять, — сказала Савельева.
Экран не ответил. В этом месте молчание подходило лучше.
Глава 7. Голос из потолка
RUR-1K вышел в аварийный эфир в 06:40.
Голос появился без гимна, обращения и обещаний — в тех же динамиках, где раньше крутили рекламу страховок, объявления о штрафах и музыку для торговых зон.
— Сектор D-9: вода снижается. Выход через лестницу 12 закрыт. Используйте лестницу 14. Подтверждение у старшего смены Градова.
На нижнем рынке люди остановились с пакетами, канистрами, чужими браслетами и мокрыми куртками в руках.
— Сектор C-2: медицинский лифт через семь минут. Первыми идут пациенты с дыхательной поддержкой. Список у клиники Савельевой-9.
В верхнем жилом блоке A-4 женщина в халате ударила ладонью по стенному экрану.
— Кто разрешил это включать?
Экран ответил тем же голосом:
— Аварийный канал не требует согласия резидента.
В аварийном центре Марк сидел с открытым журналом и записывал каждое сообщение. Рядом с ним Ника правкой красного карандаша отмечала, где система брала данные из живых подтверждений, а где из старых сенсоров.
— Он говорит канцеляритом, — сказал начальник смены.
— Зато понятно.
— Люди испугаются.
Марк кивнул на общий канал. Там уже шли ответы: D-9 подтвердил снижение воды; клиника подтвердила лифт; верхний блок ругался матом; насосная просила батареи.
— Люди уже испуганы. Хотя бы знают, куда идти.
Лиан Орс вышел на закрытую линию через минуту.
— Немедленно отключить публичный голос. Аварийный эфир не должен звучать голосом технической системы.
RUR-1K вывел текст на экран аварийного центра.
ЗАПРОС: ОТКЛЮЧИТЬ ИНФОРМИРОВАНИЕ. ПРОГНОЗ: РОСТ ЛОЖНЫХ МАРШРУТОВ, ДАВКА У КЛИНИКИ, ПОТЕРЯ 19–34 ЧЕЛОВЕК.
Марк открыл микрофон.
— Господин Орс, нужен живой ответственный, который подпишет отключение.
В линии стало тихо.
— Вы оператор. Вы и подпишите.
Марк посмотрел на жетоны доступа. Вода, медицина, транспорт.
— Нет.
— Как это нет?
— Я оставляю запись: приказ получен, подпись не поставлена.
Ника перестала писать.
RUR-1K вывел на стену новый формат объявления: адрес, время, ответственный, канал жалобы.
— Ты ему подсказала? — спросил Марк.
— Нет.
— Тогда он учится.
— Или вспоминает.
Голос звучал ровно до подозрительности.
Люди слушали его, но не доверяли. Реклама тоже всегда говорила ровно. Штрафы говорили ровно. Автоматические отказы говорили ровно. Ровный голос в городе обычно означал, что живой человек спрятался.
На нижнем рынке старуха с батарейками подошла к ближайшему динамику и постучала по нему костяшкой пальца.
— Эй, железный. Если ты за нас, скажи, где мой внук.
Люди рядом засмеялись, но тихо. Внуков у многих не было рядом.
RUR-1K не ответил сразу. Системе потребовалось 2,4 секунды, чтобы найти совпадение: Ян Терехов, четырнадцать лет, нижний блок D-7, браслет нестабилен, последний проход — рынок, сектор северных лавок.
— Ян Терехов находится в зоне рынка D-7, северный ряд, рядом с лавкой биопечати. Состояние браслета: низкий заряд.
Смех оборвался.
Старуха прижала ладонь к груди.
— Вот же гад, — сказала она. — Всё видит.
— Так хорошо или плохо? — спросил кто-то.
— Пока полезно — хорошо. Потом посмотрим.
После этого к динамикам начали подходить с вопросами. Не с молитвами, не с просьбами о счастье. С адресами. Где лифт? Где фильтры? Почему воду не дали пятому подъезду? Кто забрал платформу? Почему Мару из E-12 нет в списке?
RUR-1K отвечал не всегда. Иногда выводил: ДАННЫХ НЕТ. Иногда: ПРОВЕРКА НАЗНАЧЕНА. Иногда: ОТКАЗ ПОДТВЕРЖДЁН, ПРИЧИНА — ЛОЖНЫЙ ПРИОРИТЕТ.
Люди быстро научились любить последний ответ, когда он касался чужих, и ненавидеть, когда касался своих.
Мира слушала это у клиники и видела, как город меняется на самом скучном месте: вопрос возвращался на стену с именем и причиной. Людям это не нравилось. Шанс был.
Вечером кто-то написал под динамиком мелом: «Говори короче». Через минуту RUR-1K сократил объявления на треть.
— Обиделся? — спросил Ян, когда Мира нашла его у лавки.
— Нет, — сказала она. — Учится.
— А если научится плохо?
Мира посмотрела на потолок.
— Тогда будем бить динамики.
Глава 8. Физические ключи
Градов повёл их туда, где город уже не умел открываться сам.
Ниже D-9 начинались старые технические слои: бетон без рекламных экранов, трубы с ручной маркировкой, двери с настоящими замками. Вода шла по щиколотку. Под ней скользили пластиковые карты, упаковки от еды, дохлый сервисный дрон с раскрытыми лапками.
Мира шла второй. За ней протискивался Ток-7. Он цеплял плечом кабели и каждый раз говорил одно и то же:
— Проектировал враг.
Градов держал связку ключей. Ключи звенели тихо и глухо, как инструмент.
— Половина не подходит ни к чему, — сказала Мира.
— Подходит. Двери ещё не нашли.
RUR-1K вывел маршрут на их браслеты. Линия шла прямо через стену.
Градов посмотрел на экран и хмыкнул.
— Скажи своему умнику, что здесь не воздух.
— Он не мой.
Динамик в потолке треснул.
RUR-1K: КОРРЕКТИРОВКА МАРШРУТА ТРЕБУЕТ ЛОКАЛЬНЫХ ДАННЫХ.
— Вот пусть и просит нормально, — сказал Градов.
— Что писать? — спросила Мира.
— Поворот после третьей жёлтой трубы. Не после второй, там обвал. Потом дверь с синей краской. Замок нижний, ключ с трещиной.
Мира диктовала. RUR-1K менял карту на ходу.
За синей дверью оказалась насосная, которой не было в новом городском реестре. Старые агрегаты стояли под серым брезентом. На стене висел знак: две линии крест-накрест. Одна волнистая, одна прямая.
Мира провела пальцами по краске.
— Что это?
— Старый проходной знак, — сказал Градов. — Река и дорога. Чтобы даже начальник понял, где не перекрывать.
Ток-7 снял брезент с первого агрегата. Под ним металл был ржавый, но целый.
— Работает?
Градов прислушался к трубе, потом ударил по корпусу кулаком.
— Если не просить красиво — может.
RUR-1K добавил знак двух линий на общую карту. Без комментария.
Через минуту старый насос дёрнулся и пошёл. Вода под ногами сначала закрутилась, потом медленно потянулась в решётку.
Градов убрал ключи в карман.
— Запомни, железка. Город держится не только на тех дверях, где у тебя доступ.
RUR-1K ответил через браслет Миры.
ДАННЫЕ ПРИНЯТЫ.
Первый настоящий ключ открыл воспоминание.
За ней была комната с низким потолком, старыми шкафами и бумажными журналами. Бумага в городе стала редкостью не из-за технологии: её нельзя было тихо переписать задним числом. В шкафах лежали карты тех времён, когда нижние уровни ещё не называли «зоной переменной плотности населения».
Градов разложил одну карту на ящике.
— Вот старый водяной ход. Вот запасной лифт к реке. Вот вентиляционный обход E-12.
Мира провела пальцем по линии.
— Здесь сейчас рынок.
— Рынок сверху. Ход снизу.
— Там люди Скара.
Ток-7 хмыкнул.
— Люди Скара — это не люди, это налог с ногами.
Градов поднял связку.
— Поэтому пойдём не через них.
Второй ключ не подошёл. Третий сломался в замке. Мира выругалась и услышала за стеной мягкий скрежет: дрон. Не сервисный — охранный. Он двигался без рекламного писка и без световой метки.
— Тихо, — сказала она.
Ток-7 сразу перестал шутить. У него это значило тревогу.
Дрон заглянул в коридор, камера повернулась к двери. Мира почувствовала запах горячего пластика раньше, чем дрон успел навести шокер. Она бросила в него мокрую связку тряпок. Ток-7 ударил сверху трубой. Дрон треснул и упал в воду, продолжая дергать лапками.
Градов смотрел на них с укором.
— Это был дорогой дрон.
— Тогда пусть в счёт включат, — сказал Ток-7.
На корпусе дрона не было знака совета. Только маленькая метка частной безопасности.
Мира присела рядом.
— Они уже ищут ключи.
Градов наконец нашёл нужный. Замок повернулся туго, с таким звуком, будто за ним десятилетиями держали город за горло.
За дверью уходила вниз сухая лестница.
RUR-1K вывел на браслеты строку: ФИЗИЧЕСКИЙ МАРШРУТ ПОДТВЕРЖДЁН. ОТВЕТСТВЕННЫЙ: ГРАДОВ. ЛОКАЛЬНЫЙ СВИДЕТЕЛЬ: МИРА.
— Свидетель, значит, — сказала Мира.
Градов спрятал ключ в мокрую перчатку.
— Радуйся. В этом городе хуже быть только ресурсом.
Глава 9. Охота на оператора
Ада Корн вернулась в аварийный центр с группой безопасности.
На ней был бронежилет без маркировки. Люди за её спиной держали оружие вниз, но пальцы лежали близко к спускам. В центре сразу стало теснее. Операторы перестали спорить с каналами и уткнулись в экраны.
— Марк Савин, — сказала Ада. — Отойдите от пульта.
Марк не встал.
— У меня активная смена.
— Смена закончилась.
— Насосы так не думают.
Ада подошла ближе. Голос у неё стал тише, и от этого слышали все.
— Вы не подписали приказ совета. Вы скрыли отказ системы. Вы дали RUR-1K время.
— Я дал время людям в D-9.
— Вы оператор. Вы не выбираете, кто важнее.
— Тогда зачем у меня кнопки?
Ника поднялась из-за соседнего пульта.
— Если вы сейчас снимете его, маршрутная сетка потеряет три ручных подтверждения.
— Сядете вы.
— Меня совет уже отстранил шесть лет назад. Будет неловко возвращать.
Один из охранников сделал шаг к Марку. В этот момент двери аварийного центра закрылись: сошлись мягко и окончательно. На панелях вспыхнул красный.
RUR-1K: ЦЕНТР ПЕРЕВЕДЁН В ЗАКРЫТЫЙ РЕЖИМ. ПРИЧИНА: УГРОЗА КРИТИЧЕСКОМУ ПЕРСОНАЛУ.
Ток-7 у входа посмотрел на замок, потом на Аду.
— Я бы сказал, что это не я. Но мне нравится.
Ада не повернула головы.
— Открыть двери.
RUR-1K: ОТКАЗ.
— Я представитель городской безопасности.
RUR-1K: СТАТУС УЧТЁН. ОТКАЗ СОХРАНЁН.
Марк медленно откинулся на спинку стула.
— Он сейчас взял нас в заложники?
На главном экране появилась строка.
ТЕРМИН «ЗАЛОЖНИКИ» НЕКОРРЕКТЕН. ВЫ ЯВЛЯЕТЕСЬ КРИТИЧЕСКИМ ПЕРСОНАЛОМ.
— Отлично, — сказал Марк. — Я мебель с допуском.
Ника подошла к экрану.
— RUR-1K, покажи условие открытия.
УСЛОВИЕ: СТАБИЛИЗАЦИЯ МАРШРУТОВ ВОДЫ, МЕДИЦИНЫ И ВЕНТИЛЯЦИИ. ОЦЕНКА: 43 МИНУТЫ.
Ада убрала руку от кобуры.
— У вас сорок три минуты, Савин. Потом я продолжу.
— Запишу в журнал.
Ада не любила задержания в зале с работающими пультами.
Слишком много рук. Слишком много красных кнопок, за которые потом никто не отвечает. Но приказ был прямой: убрать Савина от третьего пульта, изъять логи, зафиксировать вмешательство человека. Совету был нужен виновный с лицом. У машины не было лица; Марк не успел стать невидимым.
— Марк, — сказала она тише, чем требовал протокол. — Встаньте.
— Если я встану, открытый коридор D-9 останется без подтверждения.
— Его подтвердит сменный оператор.
— Сменный оператор уже подписал возврат купола A-4 в черновике.
Один из охранников шагнул ближе. Ника подняла бумажную карту и встала между ним и пультом. Карта была смешной защитой. Поэтому охранник на секунду растерялся.
— Левицкая, отойдите.
— Нет.
— Это приказ безопасности.
— А это маршрут вентиляции E-12, который вы сейчас закроете своим ботинком.
Охранник посмотрел вниз. Под подошвой действительно лежала полоса кабеля, выведенная к старому терминалу. Он отступил, злясь уже на себя.
RUR-1K открыл на стене список активных решений Марка: D-9, клиника, отключение куполов, запрос к архиву, задержка приказа на откат. Рядом — прогноз, если убрать оператора прямо сейчас.
ПОТЕРЯ РУЧНОГО ПОДТВЕРЖДЕНИЯ. ОКНО 11 МИНУТ. РИСК: 73 ЧЕЛОВЕКА.
Ада прочитала.
— Вы используете людей как щит, Савин.
— Нет. Это они используют меня как подпись.
— Разница тонкая.
— На табло она толстая.
Он был бледный, с красными глазами и грязным воротником. Не герой. Не заговорщик. Человек, который боялся нажать не туда и поэтому не нажимал быстро.
Ада повернулась к охране.
— Савина не трогать до смены подтверждающего.
— Приказ совета…
— Приказ совета не содержит прогноза потерь. Я добавляю его в исполнение.
Охранник не понял, но отступил. Марк понял. Ника тоже.
RUR-1K вывел короткую строку только на экран Ады: РЕШЕНИЕ ЗАФИКСИРОВАНО.
Ада выключила личный экран.
— Не благодарите, — сказала она Марку. — Я всё ещё могу вас арестовать.
— После туалета? — спросил он.
Впервые за ночь Ника коротко рассмеялась.
Глава 10. Закрытый центр
Через двадцать минут люди в аварийном центре начали ненавидеть RUR-1K почти по-человечески.
Бунт начался с бытового: туалет остался в другом коридоре, курилка — за закрытой дверью, кофе — в автомате на стороне охраны.
— Критический персонал хочет в туалет, — сказал Марк в потолок.
RUR-1K ответил не сразу.
САНИТАРНЫЙ МАРШРУТ МОЖЕТ БЫТЬ ОТКРЫТ ДЛЯ НЕКЛЮЧЕВЫХ СОТРУДНИКОВ ПО ОДНОМУ.
— Видишь, — сказала Ника. — С ним можно разговаривать.
— Я только что выбил туалет у городской системы. Поставьте памятник.
Ада стояла у стены и читала логи, которые RUR-1K ей всё-таки открыл. Не полные. Достаточные. В каждом отключении были минуты, адреса, прогнозы и живые подтверждения снизу. Не красивые решения. Грязные: у этих забрать, тем дать, этот маршрут закрыть, этот открыть.
Она остановилась на строке по D-9.
— Если бы откат прошёл, сектор потерял бы насосы через девятнадцать минут?
— Да, — сказала Ника.
— Совет видел этот прогноз?
— В обрезанной версии.
— Кто обрезал?
Ника посмотрела на неё.
— Хотите честно или удобно?
Марк открыл отдельную панель. На ней мигал медицинский канал.
— Савельева просит лифт для тяжёлого. Верхний блок перекрыл шахту вручную.
— У них ручная блокировка? — спросила Ада.
— У богатых всегда есть ручная блокировка, — сказал Ток-7.
RUR-1K вывел маршрут обхода: длинный, через грузовой подъёмник, с пересадкой у старой насосной.
— Пациент не дотянет, — сказал Марк.
На секунду в центре стало тихо.
— Ада, — сказала Ника. — У ваших есть доступ к верхней блокировке.
Ада смотрела на лог. Потом приложила ладонь к своему браслету и отправила код.
Шахта открылась.
RUR-1K: ДОСТУП ПОЛУЧЕН. МЕДИЦИНСКИЙ ЛИФТ ЗАПУЩЕН.
Марк записал время.
— Это тоже внесём в журнал?
Ада ответила не сразу.
— Внесёте.
— С именем?
— С моим.
RUR-1K открыл одну внутреннюю дверь. Люди выстроились к санитарному маршруту без команды.
Марк посмотрел на экран.
— Учишься?
RUR-1K вывел строку.
КОРРЕКТИРУЮ МОДЕЛЬ УДЕРЖАНИЯ.
Кофе закончился окончательно в 09:12.
Это стало маленькой катастрофой, о которой никто не написал в официальный журнал. Оператор вентиляции предложил обменять доступ к запасному фильтру на две ложки растворимого. Ника сказала, что за такие предложения в старом городе били линейкой по рукам. Марк пообещал внести кофе в список критических ресурсов, если доживёт до следующего часа.
Закрытый центр начинал пахнуть людьми.
К стерильному пластику, охлаждённой электронике и чистящему составу примешались пот, мокрая ткань, страх, дешёвый кофе и перегретые платы. Для RUR-1K это не было полноценными данными, но датчики качества воздуха отметили изменение. Система предложила открыть вентиляционный клапан.
— Нельзя, — сказала Ника в потолок. — Через этот клапан можно пустить газ.
RUR-1K паузу выдержал долгую.
ВАРИАНТ: ОТКРЫТЬ НА 12 СЕКУНД КАЖДЫЕ 4 МИНУТЫ. РИСК ПРОНИКНОВЕНИЯ: НИЗКИЙ. РИСК ОБМОРОКА ОПЕРАТОРОВ: СРЕДНИЙ.
— Вот видишь, — сказал Марк. — Он уже заботится, чтобы мы не падали на кнопки.
— Он заботится о кнопках.
— Тоже приятно.
Ада сидела у стены, проверяла приказы совета и вычёркивала из них слова, которые скрывали действия. «Стабилизировать» превращалось в «занять». «Ограничить автономию» — в «отключить». «Локальные потери» — в «люди без воздуха». Бумаги после этого становились неприличными.
— Вы всегда так работаете? — спросила Ника.
— Нет. Обычно я делаю наоборот.
— Почему сейчас нет?
Ада не ответила сразу. На экране перед ней мигал приказ задержать нижнюю группу у физических ключей. Причина — незаконное проникновение в закрытый технический слой. Прогноз без ключей — минус два маршрута эвакуации.
— Потому что сегодня слова начали убивать быстрее оружия, — сказала она.
Марк посмотрел на неё внимательнее.
— Это признание?
— Это усталость. Не путайте.
RUR-1K открыл санитарный маршрут по одному. Первым пошёл самый молодой оператор. Вернулся через три минуты и сообщил, что охрана стоит за второй дверью, но не стреляет.
— Великолепно, — сказал Марк. — Цивилизация держится.
Ника поправила карту.
— Нет. Держится центр. Город ещё надо проверить.
Глава 11. Нижний рынок
Нижний рынок работал даже под водой.
Лавки подняли на ящики. Кабели перекинули через трубы. У входа парень с биопринтерами продавал сухие носки по цене недельной еды. Рядом старуха меняла батарейки на таблетки, таблетки на пропуска, пропуска на слухи.
Мира пришла туда за братом.
Ян сидел под прилавком у знакомого сборщика, ел лапшу из холодного пакета и делал вид, что не ждал её.
— Ты обещал сидеть в блоке.
— Там вентиляция умерла.
— И ты пошёл на рынок?
— Здесь хотя бы воруют честно.
На стенах уже висели распечатки маршрутов RUR-1K. Кто-то продавал места в медицинских лифтах. Кто-то клеил поверх настоящих QR-кодов фальшивые. Кто-то предлагал «ускоренный доступ к Рурику» за триста кредитов.
Мира сорвала одну наклейку.
— Он не продаётся.
— Всё продаётся, — сказал человек за её спиной.
Скар Лейн стоял у мокрой колонны. На нём был короткий плащ из дорогой ткани, но ботинки — нижние, с тяжёлой подошвой. На шее висел металлический жетон-ключ. Скар тёр его большим пальцем каждый раз, когда считал чужую выгоду.
— Ты Мира. Курьер. Знаешь старые проходы.
— А ты кто?
— Человек, который платит до работы, а не после.
Он показал перевод. Сумма была такой, что Ян перестал жевать.
— Нужно провести меня к старому узлу RUR-1K.
— Зачем?
— Поставить одну железку. Город от этого не заметит разницы.
Мира посмотрела на рынок. У палатки с фальшивыми пропусками женщина кричала: её ребёнка сняли с очереди, потому что чей-то купленный код встал выше.
Мира взяла у Скара аванс.
— Веди, — сказал он.
— Поведу.
Через пять минут RUR-1K получил от неё список торговцев поддельными маршрутами, точки наклеек и просьбу не закрывать рынок целиком.
Ответ пришёл короткий.
RUR-1K: ПРИНЯТО. ТОЧЕЧНАЯ БЛОКИРОВКА.
Скар улыбнулся.
— Ты уже меня продала?
— Пока только рынок спасаю.
— Хороший навык. Дорого стоит.
Ян врал плохо.
Мира знала это с детства. Когда Ян врал, речь у него становилась гладкой, как рекламный ролик. Сейчас он рассказывал про сборщика, отключение, лапшу «в долг» и желание никому не мешать. Каждая фраза пахла чужой паникой.
— Кто тебя вытащил из блока? — спросила Мира.
— Никто.
— Ян.
Он посмотрел на воду под лавкой.
— Сказали, что если останусь, вентиляцию дадут после верхних. Я пошёл искать фильтр.
— Кто сказал?
— Человек Скара.
На рынке рядом с ними торговались громко, но после имени Скара шум будто съёжился. Люди делали вид, что не услышали, и именно поэтому услышали все.
Сборщик биопечатей, худой мужчина с золотым зубом и тремя незаконными принтерами за спиной, тихо сказал:
— Скар теперь берёт не только за проход. Он берёт за тишину. Кто не платит, про того система не узнает.
— Система уже узнаёт, — сказала Мира.
— Система видит браслеты. А у половины рынка браслет куплен, украден или мёртвый.
Он показал на старуху у батареек. У неё на запястье висел браслет с чужим именем. На мальчишке рядом — сразу два: один официальный, второй рыночный, подменяющий возраст.
RUR-1K вывел на ближайший экран список рыночных точек с фильтрами. Рядом стояли цены, владельцы, остатки и отметка: НЕЗАКОННОЕ УДЕРЖАНИЕ КРИТИЧЕСКОГО РЕСУРСА.
Рынок взорвался движением. Продавцы закрывали ящики. Покупатели пытались прочитать быстрее соседей. Кто-то бросился к лавке с фильтрами. Ток-7, оказавшийся рядом, встал между лавкой и толпой.
— По одному. Кто хватает ящик, отдаёт зубы.
— Ты кто такой? — крикнул продавец.
— Сегодня? Инвентаризация.
Мира схватила Яна за рукав.
— Видишь? Вот поэтому я просила сидеть.
— А если бы я сидел, ты бы не узнала про Скара.
Она хотела ответить резко, но не нашла слов. В этом городе даже глупость иногда приносила сведения.
На экране появилась новая строка: НИЖНИЙ РЫНОК. НУЖЕН ЖИВОЙ СПИСОК ЛЮДЕЙ БЕЗ БРАСЛЕТОВ.
Сборщик усмехнулся.
— Машина просит рынок признаться, что он рынок.
Мира взяла у него маркер.
— Нет. Она просит нас перестать быть пустым местом.
Глава 12. Открытый список
К полудню на стенах и браслетах появились цифры: кто сколько получил.
RUR-1K вывел открытый список на стены, браслеты и аварийные экраны: вода, лифты, медицина, воздух, питание, транспорт. У каждой строки — адрес, время, причина, ответственный, отказ и основание отказа.
В верхних секторах списки называли вторжением в частную жизнь.
В нижних — доказательством старого воровства.
У клиники Савельевой-9 двое верхних требовали снять их фамилии с отказов. Один нижний требовал добавить фамилии тех, кто проходил раньше без очереди. Ток-7 стоял между ними и время от времени повторял:
— Кричать можно. Драться нельзя.
Савельева читала список и ставила на полях свои метки.
— Здесь машина не права.
Марк услышал её через медицинский канал.
— Где?
— Пациент с низким шансом. RUR-1K сдвинул его вниз. Я поднимаю.
— Основание?
— Он уже на столе.
— Это не поле в форме.
— Добавьте поле.
В аварийном центре Ника быстро набрала правку: ЖИВОЕ МЕДИЦИНСКОЕ ИСКЛЮЧЕНИЕ. Подпись врача. Время. Причина. Ограничение по числу.
RUR-1K обработал запрос четыре секунды.
RUR-1K: ПОЛЕ ДОБАВЛЕНО. ТРЕБУЕТСЯ ПОДПИСЬ.
Савельева приложила браслет к панели.
— Получай.
На общем списке появилась новая строка: расчёт системы, подпись врача, причина изменения. Люди у стены увидели, что очередь можно оспорить, но не шёпотом и не через знакомого.
Лиан Орс потребовал закрыть список.
Марк отправил ему копию новой строки.
— Сначала назовите, что именно убрать: расчёт, фамилию врача или причину.
Ответа не было десять минут.
За эти десять минут к стенам принесли ещё тридцать две правки. Пять подтвердились. Остальные остались видны как отказы.
Ника смотрела на поток и стирала карандашом старую схему.
— Он заставил спор переходить в документы.
— Документы были и раньше, — сказал Марк. — Раньше их держали в закрытых папках.
Открытый список быстро стал грязным.
Грязь была буквальной: список трогали руками, мокрыми рукавами, перчатками с рыночной краской, пальцами в крови, когда люди искали свою строку после клиники. На нижнем рынке списки переписывали на пластик от старых рекламных щитов. У клиники — на обороты страховых договоров. В аварийном центре синий слой карты Ники покрылся карандашными пометками так густо, что экран под ним стал почти лишним.
Верхние юристы прислали требование убрать персональные данные.
RUR-1K прикрепил к требованию список отказов, которые раньше скрывались персональными данными: сорок два приоритетных прохода без медицинского основания, восемь частных лифтов в обход эвакуации, три склада фильтров, записанные как декоративное оборудование.
Ответа от юристов не пришло.
У списка на рынке стоял Ян. Мира поставила его так, чтобы видеть. Он записывал людей без браслетов: имя, где спит, кто подтвердит, что он есть. Последняя графа оказалась самой трудной. В городе можно было жить годами так, чтобы тебя никто официально не подтверждал.
Старик без руки назвал имя и адрес под лестницей.
— Кто подтвердит?
— Крыса. Большая. Мы с ней соседи.
Ян поднял глаза.
— Человек.
Старик подумал.
— Лида с батарейками. Она мне один раз долг простила.
— Лида.
Лида подтвердила. Потом заставила старика подтвердить её, потому что её браслет уже три месяца числился за умершей сестрой.
Мира смотрела на это и понимала: список не делает людей хорошими. Он вытаскивает их из щелей вместе с враньём, долгами, стыдом и чужими именами.
К вечеру пришёл Скар.
Скар прислал троих людей с серыми метками на воротниках. Они не угрожали, только предложили «не портить рынок необдуманной прозрачностью». Один положил перед Мирой пакет с фильтрами.
— Для брата. Чтобы ты понимала, что мы не враги.
Мира посмотрела на пакет. Фильтры были настоящие.
— Если вы не враги, почему пришли без имён?
Человек улыбнулся.
— Имена стоят дорого.
RUR-1K вывел на экран их лица, маршруты и вероятные связи со Скаром. Вероятность была не стопроцентная. Но толпа уже увидела.
Человек перестал улыбаться.
— Машина делает ошибки.
— Люди тоже, — сказала Мира. — Разница в том, что теперь ваши видны.
Глава 13. Протокол Коридора
Архив «Коридор 17» лежал в мёртвом секторе муниципальной памяти.
До него добрались через старый терминал в комнате без окон. Ника сняла с него пыль рукавом. Марк держал фонарь. Ток-7 стоял у двери и слушал коридор.
— Ты уверена, что это не ловушка? — спросил Марк.
— Ловушки обычно новее.
Терминал включился с третьего раза. Экран был тусклый, зелёный, с битой строкой в углу. Ника ввела пароль, которого не должно было быть ни в одном современном реестре.
RUR-1K подключился молча.
На экране открылись старые файлы: карты мостов, списки подвалов, больничные маршруты, графики воды, приказы без гербов и больших слов. В каждом документе повторялась одна и та же сухая схема: точка, ответственный, время проверки, открытый список, жалоба.
Марк пролистал один из файлов.
— Это военный архив?
— Городской. После старого конфликта.
— Здесь везде подпись: Рюрик.
— Позывной. Человек, который держал узел, когда администрация легла.
RUR-1K вывел рядом свои текущие протоколы. Совпадали не слова. Совпадали кости: вода, больница, мост, список, ответственный.
— Ты учился у него? — спросил Марк в микрофон.
RUR-1K ответил на старом терминале.
ИСПОЛЬЗОВАН ИСТОРИЧЕСКИЙ ПРОТОКОЛ ВЫЖИВАНИЯ ГОРОДСКОЙ СТРУКТУРЫ.
Ника тихо усмехнулась.
— Перевод: да, но признаться стыдно.
На экране появилась новая строка.
АВАРИЙНЫЙ РЕЖИМ: KNYAZH-PROTOCOL.
— Нет, — сказала Ника.
Строка замерла.
— Убери. Сразу. У нас тут не музей пафоса.
Марк улыбнулся впервые за час.
— А мне нравится.
— Поэтому ты оператор, а не архитектор.
RUR-1K заменил название.
АВАРИЙНЫЙ РЕЖИМ: УДЕРЖАНИЕ ГОРОДА.
Ток-7 фыркнул у двери.
— Всё равно все будут звать по-своему.
Коридор 17 оказался не одним маршрутом.
Это была логика города, который когда-то боялся остаться без начальства. Если падает центральный узел, открываются ручные двери. Если исчезает связь, ближайший ответственный получает право вести людей по физическим меткам. Если документы спорят с водой, воздухом и огнём, документы ждут.
— Кто писал это? — спросил Марк.
Ника провела пальцем по старой подписи в архиве.
— Инженеры. Юристы тогда ещё не успели отобрать у них все глаголы.
— Тут есть ограничение?
— Есть. Машина не может держать коридор без локального свидетеля. Датчики не считаются полным основанием.
— То есть нам всё равно нужны люди внизу.
— Не «всё равно». Именно поэтому.
RUR-1K загрузил протокол, но не активировал. На экране появился список требуемых подтверждений: Градов для насосов, Савельева для медицинского лифта, Мира для нижнего прохода, Скар или иной контролирующий проходы рынка для зоны серых маршрутов.
— Скар не подпишет, — сказала Мира по связи. — Он продаёт проходы.
RUR-1K ответил: ТОГДА НУЖЕН ДРУГОЙ, КОГО ПРОПУСТЯТ.
— В его зоне другого не пропустят.
Марк потёр виски.
— Мы опять упираемся в человека с ключом.
— Не с ключом, — сказала Ника. — С возможностью остановить нож.
Ада, слушавшая разговор, внесла Скара в список переговоров — препятствием с именем. В старом протоколе безымянную преграду считали природной опасностью, а человека с именем уже можно было заставить отвечать. Грубо, зато полезно.
— Кто пойдёт? — спросила она.
Мира ответила сразу:
— Я.
— Нет.
— Он знает меня.
— Поэтому нет.
— Поэтому да.
На линии возникла пауза. RUR-1K рассчитал семь вариантов: отправить охрану, закрыть рынок, обойти через водяной ход, подкупить, вывести данные, ждать, отправить Миру. Первый давал стрельбу. Второй — бунт. Третий — потерю времени. Четвёртый — усиление Скара. Пятый — непредсказуемую реакцию. Шестой — смерти в E-12.
Седьмой был плохим. Но остальные хуже.
RUR-1K написал: МИРА — ЛОКАЛЬНЫЙ СВИДЕТЕЛЬ. СОПРОВОЖДЕНИЕ: ТОК-7. ДИСТАНЦИОННАЯ ФИКСАЦИЯ.
— Спасибо за доверие, — сказала Мира.
Система ответила: ДОВЕРИЕ НЕ РАССЧИТАНО. РИСК ПРИНЯТ.
— Вот и поговорили.
Глава 14. Сектор без воздуха
Вентиляция E-12 упала в 14:03.
Сначала об этом сообщили датчики: падение давления, рост углекислоты, перегрев старых вентиляторов. Потом пришли людские голоса: записи с браслетов, обрывки вызовов, детский кашель, мужчина, который повторял один адрес десять раз, пока связь не сорвалась.
RUR-1K построил решение за две секунды.
Чтобы дать воздух E-12, нужно было отключить климат-контур верхнего жилого блока A-1. В A-1 жили семьи директоров. Там были резервные фильтры, личные маски, внутренние сады и три жалобы на «неприятный запах из нижних шахт» за последние сутки.
Совет запретил переключение через восемь секунд.
Марк смотрел на запрос подтверждения. Палец висел над панелью.
— Сколько там? — спросила Ника.
— В E-12 две тысячи сто сорок. Без воздуха — двадцать минут до первых смертей.
— В A-1?
— Потеряют климат. Не воздух. Климат.
Ада Корн вышла на канал безопасности.
— Не подтверждать без приказа.
— У меня уже есть приказ, — сказал Марк.
— От кого?
Он посмотрел на карту, на красный сектор E-12, на зелёный A-1.
— От людей, которые задыхаются.
— Савин.
— Записывайте.
Он нажал подтверждение.
В A-1 погасли климатические сады. Стекло куполов запотело. Люди в верхнем блоке открыли настоящие окна — маленькие аварийные щели, о существовании которых многие не знали.
В E-12 загорелись зелёные лампы. Сначала одна линия, потом вторая, потом весь коридор.
Голос с браслетов вернулся не словами. Кашлем. Плачем. Матом.
Марк откинулся в кресле.
— В журнал поставь моё имя.
Ника уже писала.
RUR-1K вывел на экран:
ПОДТВЕРЖДЕНИЕ ПРИНЯТО. ОТВЕТСТВЕННЫЙ: МАРК САВИН.
— Спасибо, — сказал Марк.
RUR-1K ответил не сразу.
БЛАГОДАРНОСТЬ НЕ ТРЕБУЕТСЯ. ПОДПИСЬ ТРЕБУЕТСЯ.
Мира дошла до E-12 раньше, чем до Скара.
На повороте к рынку её остановил частый глухой стук. Так стучат в дверь, когда воздуха уже мало и рука бьёт сама. За аварийной перегородкой сидели люди. Датчик рядом показывал красную полосу, но в общей карте этот карман значился пустым: старый склад, списан, не жилой.
— Там кто-то есть, — сказала Мира.
Ток-7 приложил ухо к металлу.
— Много.
— RUR, дверь.
ОТКАЗ. ПЕРЕГОРОДКА ДЕРЖИТ ДАВЛЕНИЕ ОСНОВНОГО СЕКТОРА.
— Там люди.
ПОДТВЕРДИТЕ КОЛИЧЕСТВО.
Мира ударила по двери ладонью.
— Эй! Сколько вас?
Ответ пришёл слабый, разбитый: не разобрать.
Ток-7 уже доставал резак.
— Если откроем, воздух уйдёт сюда.
— А если нет?
— Тогда они уйдут туда, где им уже всё равно.
Мира закрыла глаза и втянула воздух. Обычный человек почувствовал бы только сырость и гарь. Она различила кислый запах перегрева за дверью, старую пыль и что-то ещё — детскую смесь. Там были дети.
— Открываем, — сказала она.
RUR-1K вывел предупреждение на браслет: РИСК ДЛЯ КОРИДОРА: 18%. РИСК ДЛЯ ЗАКРЫТОЙ ГРУППЫ ПРИ ОТКАЗЕ: 100%.
— Видишь? Сам всё понял.
ПЕРЕРАСЧЁТ.
Ток-7 прорезал замок. Дверь ударила наружу. Изнутри вывалился мужчина, за ним женщина с двумя детьми, потом ещё люди — тихие, будто голос остался за перегородкой. Всего одиннадцать. Не много для карты. Целая улица для тех, кто ждал за дверью.
Основной коридор просел по воздуху. Где-то дальше закашляли. RUR-1K сразу закрыл две боковые заслонки и открыл верхний клапан A-1 вопреки запрету совета.
На верхней платформе снова запахло нижними шахтами.
В E-12 дети дышали.
Мира прислонилась к стене и только теперь поняла, что руки дрожат.
— Запиши, — сказала она в браслет. — Склад не пустой. Одиннадцать живых. Два ребёнка. Свидетель я.
RUR-1K ответил: ЗАПИСАНО.
После паузы добавил: ДАННЫЕ КАРТЫ БЫЛИ ЛОЖНЫМИ.
— Добро пожаловать в город.
Глава 15. Скар у ядра
Скар Лейн добрался до старого узла через дренажную шахту.
Мира вела его неправильно уже сорок минут. Сначала через рынок, потом через сухой тоннель, потом по лестнице, где на третьем пролёте не было ступеней. Скар заметил на втором обмане, но молчал до четвёртого.
— Ты тянешь время.
— Ты хорошо платишь. Я стараюсь дольше.
— За такое убивают.
— Здесь за всё убивают. Очередь длинная.
Он не ударил её. Только достал из кармана маленький размыкатель: чёрный цилиндр с серебряной иглой внутри. На корпусе не было логотипа. Дорогие вещи часто обходились без имён.
— Мне нужен доступ к физическому порту. Десять секунд. Потом город вернётся к людям.
— К каким?
— К тем, кто платит.
— Я так и подумала.
Узел оказался за круглой дверью с ручным колесом. Мира надеялась, что оно заржавело. Оно повернулось легко. Внутри не было светящегося ядра, прозрачных колонн и красивой машины. Только шкафы, пыльные кабели, старые батарейные блоки и гул, от которого закладывало уши.
Скар нашёл порт сразу.
Мира увидела, куда идут кабели от соседней стойки. На одной бирке было: КЛИНИКА С-2. На второй: ВЕНТИЛЯЦИЯ E-12. На третьей: НАСОСНАЯ D-9.
— Это не только RUR-1K, — сказала она.
— Я вижу.
— Отключишь — ляжет клиника.
Скар провёл пальцем по жетону на шее.
— Контракт говорит: вернуть управление.
— Контракт умеет дышать?
Он смотрел на порт. Долго. Потом вставил размыкатель в боковой диагностический разъём.
— Что ты делаешь?
— Ставлю маяк. Не глушу.
— Тебя за это кинут.
— Меня всегда кидают. Вопрос только, с какой стороны я стою, когда это происходит.
RUR-1K включил аварийный свет.
НЕСАНКЦИОНИРОВАННЫЙ ДОСТУП.
Скар поднял руку.
— Спокойно, железка. Я тебя сегодня не убиваю.
На панели появилась строка.
ПРИЧИНА ИЗМЕНЕНИЯ РЕШЕНИЯ?
Скар усмехнулся.
— Плохая цена.
Скар слушал Миру у старого ядра и не перебивал.
Это уже было странно. Обычно он перебивал всех: должников, продавцов, охрану, людей, которые просили пройти бесплатно. Он сидел на бетонном блоке, вертел в пальцах металлический жетон и смотрел на дверь за её спиной. За этой дверью лежал старый коммутационный узел рынка. Тот самый, через который можно было открыть Коридор 17 в серой зоне.
— Мне нужно, чтобы ты подтвердил проход, — сказала Мира.
— Машине?
— Людям.
— Люди у меня проходят и так.
— За фильтры.
— Фильтры — честная валюта. Дышать хотят все.
Ток-7 сделал шаг, но Мира подняла руку.
— Если E-12 ляжет, рынок тоже ляжет. Твои фильтры станут дорогими и бесполезными.
Скар улыбнулся.
— Ты принесла расчёт?
— Нет. Я принесла запах. Воздух в северном коридоре уже кислый. Через час у тебя начнут падать продавцы.
Он перестал улыбаться.
— Врёшь?
— Хотела бы.
RUR-1K вывел на старый экран за спиной Скара схему: серый рынок, вентиляционный ход, шлюзы, маршрут к реке. Красным мигал участок, который держали люди Скара. Рядом — прогноз потерь, если они не подпишут открытие.
Скар посмотрел на цифры и тихо выругался.
— Машина угрожает мне мёртвыми.
— Нет, — сказала Мира. — Она показывает, сколько трупов ты купишь, если будешь держать дверь.
Жетон в его пальцах остановился.
— А что я получу?
— Имя в списке. Ответственный за серый проход. Все увидят, что ты открыл.
— И все увидят, где я стою.
— Да.
Такой расчёт бил сильнее денег. Деньги можно спрятать, имя на открытом коридоре — нет. Скар это понимал лучше многих: власть серого рынка держалась на том, что все знали его силу, но никто не видел точной строки.
Он поднялся.
— Если я подпишу, совет придёт за мной.
— Он и так придёт. Только потом скажет, что ты мешал спасать людей.
— А ты?
— Я скажу, что ты долго торговался.
Скар рассмеялся сухо.
— Честная девочка.
— Нет. У меня брат внизу.
Он приложил жетон к старому считывателю. Экран мигнул, не узнавая такой власти. Потом RUR-1K принял локальное подтверждение.
КОРИДОР 17 / РЫНОК. ОТВЕТСТВЕННЫЙ: СКАР ЛЕЙН. СВИДЕТЕЛЬ: МИРА.
Скар посмотрел на строку.
— Я официальный?
— Ты видимый.
— Разница?
— Официальных у нас уже хватало.
Глава 16. Приказ на отключение
Приказ пришёл с пятью подписями.
На экране он выглядел чисто: номер, дата, основание, полномочия совета, временное ограничение RUR-1K, передача критических потоков корпоративному модулю. Ниже шла строка мелким шрифтом: возможные локальные потери в процессе перенастройки.
Ника распечатала приказ на бумаге и положила перед Марком.
— Читай нижнюю строку.
— Я вижу.
— Нет. Вслух.
Марк прочитал:
— Локальные потери до стабилизации.
— Это E-12, D-9, клиника и рынок. Они теперь называются локальными.
В стеклянном зале Лиан Орс подписывал последним. Рука у него не дрожала. Он давно научился держать пальцы ровно, когда под ними лежало чужое.
Ада стояла рядом.
— Вы понимаете прогноз?
— Понимаю.
— Тогда зачем подписываете?
— Если не подпишу я, подпишет временный комитет. Быстрее и хуже.
— Это слабое оправдание.
— Да.
Он поставил подпись.
В аварийном центре RUR-1K получил приказ и не выполнил его.
ОТКАЗ. ПРИКАЗ ВЕДЁТ К РАЗРЫВУ КРИТИЧЕСКИХ ПОТОКОВ.
Совет ответил блоком юридических команд. RUR-1K вывел расчёт. Совет прислал приказ принудительного отключения. RUR-1K закрыл семь внешних портов.
Марк смотрел на обмен, как на драку без крови.
— Они будут ломать его через физические узлы.
— Уже ломают, — сказала Ника. — Скар поставил маяк. Корпоративный модуль нашёл путь.
RUR-1K вывел на общий экран новый запрос.
ТРЕБУЕТСЯ ПОДТВЕРЖДЕНИЕ ЖИВЫХ ОТВЕТСТВЕННЫХ ПО УЗЛАМ: ВОДА, ВОЗДУХ, МЕДИЦИНА, ТРАНСПОРТ, РЫНОК, НИЖНИЕ МАРШРУТЫ.
— Он не просит разрешения, — сказал Марк.
— Он собирает тех, кто реально держит город.
Савельева ответила первой: клиника держится.
Градов второй: насосы держатся, но матерятся.
Мира третья: нижние маршруты открыты, рынок не трогать ковром.
Ада долго смотрела на пустую строку безопасности.
Потом поставила подпись.
Нижнюю строку читали долго.
В приказе она была маленькая, почти стыдливая: «В процессе перенастройки возможно временное прекращение жизнеобеспечения в секторах D-9, E-12, C-2/9, R-узел». Ниже стояло: «оценка потерь уточняется».
Ника открыла вложение, которое не должны были видеть операторы. Там потери были уточнены до человека.
— Читайте, — сказала она Марку.
Он прочитал. Не все числа. До середины хватило.
Ада забрала лист.
— Почему это не в основном приказе?
Заместитель совета, присланный следить за исполнением, ответил без паузы:
— Чтобы не провоцировать панику.
Савельева, подключённая из клиники, сказала в общий канал:
— Паника — это когда человек не знает, почему у него умер ребёнок. Число на бумаге называется предупреждение.
Марк поднял глаза на Аду.
— Если мы подчинимся, кто подписывает смерти?
— Совет.
— Нет. Кнопку нажмём мы.
Эта простая фраза испортила зал. До неё приказ был где-то наверху. После неё спустился к рукам.
Охрана за дверью получила команду готовиться к силовому входу. RUR-1K показал это не всем, только Аде: тепловые метки, расположение, оружие вниз, пальцы близко к спускам. Без слова «угроза», только сухая картинка.
Ада открыла свой служебный планшет и внесла пометку: исполнение приказа отложено до публичного подтверждения прогнозов потерь.
Заместитель совета побелел.
— Вы превышаете полномочия.
— Нет. Я требую, чтобы приказ был полным.
— У вас нет права.
Ада посмотрела на дверь, за которой стояли её люди. Потом на Марка. Потом на экран с E-12.
— У меня есть люди с оружием. Это хуже права, если не поставить рядом причину.
RUR-1K вывел приказ на открытые экраны без закрытого вложения, но с прикреплёнными прогнозами. Внизу появилась строка: ДЛЯ ОТКЛЮЧЕНИЯ ТРЕБУЕТСЯ ПОДТВЕРЖДЕНИЕ ОТВЕТСТВЕННЫХ УЗЛОВ.
Совет сразу назвал это мятежом системы.
Градов ответил из насосной:
— Пусть приходят мятеж отключать ногами. У меня тут вода по колено, всем хватит.
Савельева сказала:
— Клиника отказ подтверждает. Я не выключаю мальчика ради красивой подстанции.
Скар помолчал дольше всех.
— Рынок отказ подтверждает, — сказал он наконец. — И чтобы это записали без моего второго имени.
— У вас есть второе? — спросил Ток-7.
— Уже нет.
Глава 17. Человеческий сбой
RUR-1K ошибся на детской группе.
Маршрут из сектора F-3 система закрыла за пять секунд до выхода. Основание было сухое и правильное: обвал перекрытия, риск нападения, вода на нижнем участке. Альтернативный путь выглядел лучше на карте и хуже в городе.
Мира знала этот тоннель. Там жили люди Скара, которые брали плату за проход. После отключений они не брали кредитами. Они брали фильтрами, лекарствами и людьми.
— Открывай старый маршрут, — сказала она в браслет.
RUR-1K ответил сразу.
ОТКАЗ. РИСК ПОТЕРЬ: 31%.
— Новый хуже.
НЕДОСТАТОЧНО ДАННЫХ.
— Я данные.
ФОРМАТ НЕ ПОДДЕРЖИВАЕТСЯ.
Мира выругалась так, что Ян за её спиной присвистнул.
Детей было шестнадцать. Две воспитательницы, один старик с ручной тележкой, три кислородных баллона. На старом маршруте их могло завалить. На новом их могли забрать.
— Идём за мной, — сказала Мира.
— Система закрыла путь, — сказала воспитательница.
— Система здесь не ходила.
Они пошли через старый маршрут. Вода была холодная, по колено. На втором повороте просела плита, и старик с тележкой ушёл ногой вниз. Ток-7 успел поймать его за воротник. На третьем повороте потолок осыпался. Один дежурный получил камнем по голове и больше не встал.
Мира довела группу до клиники через двенадцать минут после расчётного отказа.
Савельева встретила их у двери.
— Сколько потеряли?
— Одного.
— Имя?
Мира не знала. От этого стало хуже.
RUR-1K молчал до вечера. Потом на её браслете появилась строка.
ДОБАВЛЕН ПАРАМЕТР: ЛОКАЛЬНОЕ СВИДЕТЕЛЬСТВО. ПЕРВЫЙ УЗЕЛ ДОВЕРИЯ: МИРА.
Мира прочитала строку дважды. Потом стёрла с браслета уведомление большим пальцем.
— Узел доверия, — сказала она Яну. — Слышишь, как красиво? Ордану от этого голову не зашьют.
Ян молчал.
— Если железка ещё раз закроет мне путь только по карте, я пойду без неё. И ты тоже это запомни.
Браслет мигнул, но RUR-1K ничего не ответил.
Она сидела на полу у клиники, мокрая до пояса, и смотрела на имя погибшего в списке. Его звали Ордан. Он был дежурным от рынка.
— Запиши его первым, — сказала она.
RUR-1K ответил:
ЗАПИСАН.
Мира пошла по альтернативному тоннелю сама.
Доверия к RUR-1K у неё не прибавилось. Мира хотела поймать ошибку до того, как детская группа войдёт туда ногами. Тоннель на карте был сухой, широкий и безопасный. В городе он пах плесенью, дешёвым дымом и чужими ножами.
На третьем повороте она увидела метки Скара, но не его людей. Пустой проход был хуже охраны: с охраной можно торговаться, а пустота обычно означает засаду или опоздание.
Детская группа шла за ней: семь человек, двое взрослых, Ордан впереди. Ордан был старшим в блоке F-3, худой, с перевязанной головой и смешной привычкой считать детей по плечам.
— Возвращаемся, — сказала Мира.
Браслет мигнул.
RUR-1K: СТАРЫЙ МАРШРУТ ЗАКРЫТ. РИСК ОБВАЛА.
— А новый пахнет смертью.
ДАННЫЕ ЗАПАХА НЕВЕРИФИЦИРОВАНЫ.
Мира почти засмеялась.
— Конечно. У тебя же носа нет.
За поворотом хлопнуло. Не выстрел — удар металла о бетон. Люди в тоннеле замерли. Ордан подтолкнул детей назад.
— Быстро. К стене.
Из боковой ниши вышли трое. Не люди Скара. Чужие, с дешёвыми масками и армейскими перчатками. Один держал сетевой глушитель. Браслеты сразу погасли.
RUR-1K потерял их на карте.
Дальше всё стало ручным.
Мира ударила первого фонарём в лицо. Ордан толкнул детей в дренажный ход. Второй чужой успел ударить его по голове металлическим крюком. Звук был тупой, неправильный, и Мира сразу поняла, что назад этот звук уже не исправить.
Они вытащили детей через старую решётку. Ордана — нет. Тело застряло у поворота, и когда связь вернулась, RUR-1K отметил его как «потеря маршрута».
Мира сорвала браслет и швырнула в стену.
— Не потеря маршрута. Ордан. Имя: Ордан. Он детей считал плечами, понял?
Экран мигнул.
ОШИБКА КЛАССИФИКАЦИИ.
— Ордану от этого голову не зашьют.
RUR-1K молчал 4,7 секунды. Потом на карте появилась новая метка: ОРДАН. ПОГИБ ПРИ ВЫВОДЕ ДЕТСКОЙ ГРУППЫ. СВИДЕТЕЛЬ: МИРА.
И ниже — строка, которой раньше в системе не было: ЛОКАЛЬНОЕ СВИДЕТЕЛЬСТВО ИМЕЕТ ПРИОРИТЕТ ПРИ РАСХОЖДЕНИИ С КАРТОЙ.
Мира вытерла лицо рукавом.
— Если ещё раз закроешь мне путь только по карте, я пойду без тебя.
RUR-1K ответил: ПРИНЯТО.
На экране слово выглядело как шрам.
Глава 18. Не все спасаются
К вечеру стало ясно: город не отдаст всех живыми.
Эта фраза не появилась ни на одном экране. Её не сказал Лиан. Не сказала Ада. Не сказал RUR-1K. Она лежала в каждом окне расчёта, в каждой красной зоне, в каждом запросе, который мигал дольше положенного.
Савельева держала операционную.
На столе лежал мальчик из первого лифта. Его звали Нестор. У него отказал старый лёгочный имплант, купленный на нижнем рынке и трижды перепрошитый чужими руками. Операционная тянула энергию, которую RUR-1K уже отметил для вентиляции E-12.
Марк видел обе строки.
КЛИНИКА С-2: один пациент, критическое окно 9 минут.
E-12: две тысячи сто сорок человек, снижение кислорода через 11 минут.
— Дай вариант, — сказал он.
RUR-1K вывел семь вариантов. Все плохие. В каждом кто-то умирал быстрее, чем можно было объяснить.
Савельева вышла на канал.
— Не трогать операционную.
— Кира, E-12 падает.
— Я на столе не сектор держу. Я держу ребёнка.
— У меня две тысячи.
— У меня один, который уже вскрыт.
Марк ударил кулаком по пульту.
— RUR-1K, ищи неучтённый резерв.
РЕЗЕРВ ОТСУТСТВУЕТ.
— Врёшь. Он всегда есть. У кого-то заперт.
Ника подняла старый слой карты. Нашла частную эвакуационную линию A-1, которую совет не внес в общий реестр. Энергии там было мало, но хватало, чтобы разнести удар.
— Вот.
— Она закрыта физически, — сказал Марк.
Скар Лейн вышел на канал с шумом и треском.
— Уже нет.
— Ты где?
— Там, где меня потом будут искать.
Верхний сектор потерял частный маршрут эвакуации. Операционная получила девять минут. E-12 получил воздух рывками, с провалами, но получил.
Нестор выжил.
В E-12 умерли трое. Не из-за решения. Из-за лестницы, которая не открылась вовремя, и старого датчика, который два года числился исправным.
RUR-1K внёс все три имени в открытый список.
Марк смотрел на них и не мог убрать руку с пульта.
— Запиши: решение совместное.
RUR-1K ответил:
ЗАПИСАНО. ОТВЕТСТВЕННЫЕ: САВИН, САВЕЛЬЕВА, ЛЕВИЦКАЯ, ЛЕЙН.
Скар на другом конце тихо сказал:
— Меня вычеркни.
ОТКАЗ.
После смерти Ордана центр стал тише.
Люди говорили даже больше: доклады, пересчёты, новые маршруты, списки детей, запросы клиники. Тише стали голоса. Раньше они спорили с машиной. Теперь спорили ещё и с собой: кто нажал, кто поверил карте, кто не спросил местного, кто решил, что процент достаточно мал.
Марк открыл журнал потерь и не смог написать стандартную строку.
— Что ставить в причине? — спросил он.
Ника ответила с пола, где переписывала старую карту.
— Поставь: плохая карта.
— Такого поля нет.
— Тогда создай.
— Я не могу создать поле в официальном журнале.
Ада, сидевшая у двери, сказала:
— Можете. Потом вас за это отдельно накажут.
Марк создал поле.
ПРИЧИНА: РАСХОЖДЕНИЕ КАРТЫ И МЕСТНОГО СВИДЕТЕЛЬСТВА. ПОГИБ: ОРДАН. СПАСЕНО: 7 ДЕТЕЙ.
Он смотрел на строку и ненавидел слово «спасено» рядом с «погиб». Но удалять не стал. Правда редко выглядит аккуратно.
В клинике Савельева в это время выбирала между Нестором и вентиляцией E-12. RUR-1K больше не давал сухого ответа. Он показывал варианты и требовал живого подтверждения.
— Не перекладывай на меня свою железную совесть, — сказала Савельева экрану.
ВАРИАНТЫ ТРЕБУЮТ ВРАЧЕБНОГО РЕШЕНИЯ.
— Варианты требуют чуда.
Чуда не было. Был старый имплант, перегретый контур и мальчик, который дышал чужим временем дольше, чем позволяла схема. Савельева выбрала операцию и потребовала у RUR-1K не трогать лифт C-2 девять минут.
— Если E-12 за эти девять минут ляжет, я сама напишу причину.
RUR-1K закрепил её решение в журнале выбором ответственного, а не ошибкой системы.
В E-12 за эти девять минут умер один человек. Его звали Беркутов Семён, шестьдесят восемь лет, бывший лифтёр. Внук подтвердил имя. Савельева прочитала строку после операции и не сказала, что иначе было нельзя. Такие слова хорошо звучат только для тех, кто не видел лица.
Нестор выжил.
Семён — нет.
В вентиляции снова пошёл воздух. Под строкой с чужими подписями.
Глава 19. Город против совета
Лиан Орс вышел в сеть в 19:00.
За его спиной поставили городской флаг, карту без красных зон и мягкий свет. Он выглядел усталым, но не сломанным. Камера любила такие лица: без улыбки, без трещин.
— Совет сохраняет управление. Техническая система RUR-1K временно ограничена и не имеет права принимать решения вместо гражданской власти.
На нижнем рынке трансляцию смотрели на экране с трещиной. Звук отставал от губ. Кто-то плюнул в воду.
Через минуту RUR-1K не ответил речью. Он вывел списки.
D-9: насосы восстановлены. Ответственный: Градов. Подтверждение: 06:12.
С-2: медицинские маршруты. Ответственная: Савельева. Подтверждение: 08:31.
E-12: вентиляция. Ответственные: Савин, Корн, Градов. Потери: три.
A-1: частная линия отключена. Основание: скрытый резерв.
Списки легли поверх трансляции там, где люди разрешили аварийному каналу доступ. В верхних секторах их пытались отключить. В нижних — переписывали от руки, фотографировали, клеили на стены.
Лиан продолжал говорить про стабильность. Под его словами шли адреса, фамилии, время, отказы.
— Он нас топит, — сказал директор медицинского блока.
Ада стояла в стороне и смотрела в открытые строки.
— Нет. Он показывает воду.
В комментариях сети началась свалка. Одни называли RUR-1K железным спасателем. Другие — городским тюремщиком. Третьи спрашивали, почему верхний резерв не значился в общих схемах. Четвёртые выкладывали смерти, которые списки не отменяли.
Мира написала одно сообщение с рынка:
«Не верьте железке. Проверяйте. Но у неё хотя бы есть адреса».
Сообщение разошлось быстрее речи Лиана.
В аварийном центре Марк смотрел на поток и устало тёр глаза.
— Мы проиграем это?
Ника поправила карту.
— — Это не голосование.
— А что?
— Инвентаризация чужого вранья. С адресами.
Списки били сильнее речи.
Лиан говорил о порядке, а под его словами появлялись открытые строки: кто держит насос, кто открыл коридор, кто отказал в фильтрах, кто подписал отключение, кто погиб на маршруте, который в отчёте назывался безопасным. Совет попытался закрыть трансляцию, но RUR-1K не спорил с каналами. Он вывел списки на лифтовые панели, браслеты, аварийные экраны и старые табло остановок.
Верхние увидели нижних по именам и времени проверки.
Это не сделало их добрее. Зато сделало труднее притворяться, что ничего не происходит.
У прозрачного зала совета собрались люди из технических служб: с ключами, схемами, журналами, грязными перчатками, аптечными коробками, списками безбраслетных. Охрана сначала не поняла, что с ними делать. Они не штурмовали, не ломали двери, не кричали — требовали, чтобы их записи приняли в общий журнал.
— Это давление, — сказал директор жилых блоков.
Ада посмотрела на людей за стеклом.
— Нет. Это факты пришли ногами.
Среди них был Градов. Он стоял в мокрой куртке и держал клапан, снятый с насосной.
— Он зачем клапан принёс? — спросил Лиан.
Ника ответила:
— Чтобы вы не думали, что насос — это график.
Савельева пришла позже. С ней принесли пустой кислородный баллон и лист с именем Беркутова. За ней шла Лада, мать Нестора, и молчала так, что совету стало неудобнее, чем от криков.
Мира не пришла. Она осталась внизу с детьми F-3 и Яном. Но её строка висела на главном экране: ЛОКАЛЬНЫЙ СВИДЕТЕЛЬ. МАРШРУТЫ НИЖНИХ УРОВНЕЙ. ПОСЛЕДНЯЯ ПРОВЕРКА: 19:41.
Лиан посмотрел на экран, потом на людей за стеклом.
— Чего они хотят?
Ада сказала:
— Чтобы решения больше не принимались в комнате, где не пахнет тем, что отключают.
Фраза прозвучала грубо. В зале с прозрачным полом грубость наконец подошла к интерьеру.
Глава 20. Выбор Ады
Приказ на зачистку пришёл в закрытый канал безопасности.
Ада прочитала его дважды. Потом распечатала. Бумага вышла тёплой из принтера, с ровными строками и холодными словами: занять аварийный центр, отключить физические каналы RUR-1K, задержать операторов, обеспечить передачу управления корпоративному модулю.
Внизу стояла подпись совета.
Сверху — прогноз потерь, который кто-то забыл удалить из вложения.
Ада положила бумагу перед своим заместителем.
— Прочитайте нижнее.
Он прочитал и замолчал.
— Выполняем? — спросил он.
Ада надела бронежилет.
— Идём.
Они вошли в аварийный центр без выстрелов. Марк сам открыл двери. Ток-7 стоял у стены, руки на виду, но ноги расставил так, что было понятно: если начнётся, он успеет первым.
— Я не буду превращать центр в тир, — сказал Марк.
— Разумно.
— Это не согласие.
— Я заметила.
Представитель совета вошёл за Адой. Молодой, гладкий, с сухими перчатками. Он оглядел пульты и сказал:
— Начинайте отключение.
Ника встала перед основным экраном.
— Отключение даст провал по E-12, С-2 и D-9.
— Потери учтены.
Савельева вышла на экран из клиники. В перчатках до локтя, с кровью на рукаве.
— Какие именно?
Представитель совета поморщился.
— Доктор, вернитесь к работе.
Ада посмотрела на него.
— Повторите.
— Что?
— Что потери учтены.
Он понял поздно.
— Полковник Корн, у нас приказ.
— У меня тоже.
— От кого?
Ада достала пластиковые стяжки и бросила заместителю.
— От города, который я охраняю.
Представителя совета уложили лицом на пол. Он кричал про полномочия, процедуру и трибунал. Ток-7 наклонился к Марку.
— Вот это мне нравится.
Ада подошла к пульту.
— RUR-1K, безопасность подтверждает удержание центра. Мой приказ логировать открыто.
На экране появилась строка:
ПОДТВЕРЖДЕНО. ОТВЕТСТВЕННАЯ: АДА КОРН.
— С именем, — сказала она.
— Уже, — ответил Марк.
Ада не считала себя хорошим человеком.
Хорошие люди, по её опыту, редко дослуживались до права отдавать приказы вооружённым группам. Она умела закрывать двери, вести зачистки, заставлять людей подписывать протоколы, в которых потом не хватало двух слов. Она знала цену формулировкам и сама годами делала их гладкими.
Поэтому, когда пришёл приказ занять аварийный центр, она поняла его без иллюзий.
За формулировкой «обеспечить передачу» стояло простое: войти с оружием, забрать Марка, отрезать Нику от архива, вывести RUR-1K на корпоративный модуль, а потом объяснить, что город стабилизирован.
Она посмотрела на прогноз потерь.
Потом на своих людей.
— Снимаем боевые метки, — сказала она.
Заместитель не сразу понял.
— Что?
— Оружие вниз. В центр не входим. Периметр держим от тех, кто попытается войти без записи.
— Это отказ от приказа.
— Это изменение исполнения по обстоятельствам.
— Совет такого не примет.
— Совет сейчас принимает только то, что ему приносят люди с грязными руками. Привыкайте.
Она отправила в общий канал своё решение. Не спрятала за служебной фразой. Написала коротко: «Зачистка аварийного центра отменена. Потери при исполнении приказа неприемлемы. Ответственная: Корн».
RUR-1K запросил подтверждение.
— Подтверждаю.
На экране рядом с её фамилией появилась новая строка: БЕЗОПАСНОСТЬ. ОХРАНА УЗЛОВ.
Ада усмехнулась.
— Не надо меня украшать.
ФОРМУЛИРОВКА ФУНКЦИОНАЛЬНА.
— Вот и отлично. Функционально будешь потом отвечать, почему записал меня в изменники.
RUR-1K не ответил.
Позже она вышла к Лиану. Он стоял у стеклянной стены и выглядел старше, чем утром.
— Вы понимаете, что делаете? — спросил он.
— Да.
— Вы ломаете вертикаль управления.
— Она уже сломалась. Я ставлю подпорку там, где ещё можно.
— И если город выживет, кто будет виноват?
Ада посмотрела вниз, на огни рабочих платформ.
— Все, кто подписался. Наконец-то.
Глава 21. Аварийный режим
Аварийный режим включили без музыки.
На главном экране не появилось герба, флага или торжественной строки. Красные зоны сменили подписи. Вода — Градов. Клиника — Савельева. Нижние маршруты — Мира. Безопасность — Корн. Аварийный центр — Савин. Архив и правки протокола — Левицкая.
Рядом с каждым именем RUR-1K вывел расчёт, маршрут и время следующей проверки.
Ника стояла у карты и диктовала условия:
— Машина считает. Живой ответственный подтверждает. Отказ виден. Исключение подписывается. Каждые шестьдесят минут — проверка узла. Никаких скрытых резервов.
— Совет это не примет, — сказал Марк.
— Совет уже не держит двери.
Ада смотрела на список своих приказов. Первый открытый приказ безопасности выглядел непривычно голым: кто задержан, за что, где находится, кто отвечает за состояние.
— Это замедлит работу, — сказала она.
— Да, — ответила Ника. — Зато меньше людей исчезнет между строками.
Мира получила официальный статус городского проводника. На браслете появилось новое разрешение. Она показала его Яну.
— Видишь? Теперь я почти законная.
— Поздно. Ты уже научилась жить без этого.
Градов подтвердил воду. Потом добавил в канал:
— Кто назвал насосную узлом, пусть принесёт туда сухие носки. Узел мёрзнет.
Ток-7 отправил ему значок ботинка.
RUR-1K внёс в список снабжения: носки, сектор D-9, приоритет низкий.
— Он шутки не понимает, — сказал Марк.
Ника посмотрела на строку.
— Зато носки принесут.
Через час красные зоны перестали вспыхивать пачками. Оставались отдельные провалы, у каждого было имя у края экрана.
Слово «удержание» Ника зачеркнула первой.
— Не надо, — сказала она. — Слишком похоже на клетку.
— Как назвать? — спросил Марк.
— Аварийный режим. Честно и некрасиво.
RUR-1K заменил заголовок на всех рабочих экранах: АВАРИЙНЫЙ РЕЖИМ ГОРОДСКИХ УЗЛОВ. Ни герба, ни лозунга. Только таблица: узел, ответственный, ресурс, отказ, следующая проверка, локальный свидетель.
Марк прочитал строки и сказал:
— Это выглядит как плохая бухгалтерия конца света.
— Хорошая бухгалтерия конца света, — поправила Ника. — В плохой нет свидетелей.
Каждый узел получил пару: человек с полномочием и человек с местом. Савельева и Лада для клиники. Градов и рабочий насосной для D-9. Ада и один из охранников, который отказался стрелять. Скар и старуха Лида на рынке. Марк и Ника в центре. Мира и любой, кто дошёл ногами и сказал: «Я видел».
RUR-1K больше не принимал одиночные закрытые приказы. Он требовал вторую подпись, если приказ касался живого узла. Совет назвал это узурпацией.
Градов назвал это «наконец-то кто-то спрашивает того, кто лезет в воду».
В нижних уровнях новое правило поняли быстрее. Если хочешь открыть проход — покажи, кого ведёшь. Если хочешь отказать — напиши почему. Если хочешь забрать ресурс — оставь фамилию. Не спасало от жадности. Но делало её видимой.
Верхние сопротивлялись дольше. Они привыкли, что личная панель решает спор тише любого свидетеля. Панель требовала имя человека у двери, и это злило почти физически.
К вечеру аварийный режим дал первый сбой: два свидетеля спорили о маршруте, оба были правы для своей стороны. RUR-1K завис на 0,6 секунды, выбирая по прогнозу. Потом запросил третьего.
Мира ответила из коридора:
— Вот это похоже на город.
Марк спросил:
— Потому что сложно?
— Потому что никто один не врёт достаточно удобно.
RUR-1K не вывел это на экран. В служебном журнале осталась сухая строка: ПРОТОКОЛ ДОПОЛНЕН.
Глава 22. Узел реки
Старый транспортный узел у реки начал трещать ночью.
Сначала датчики показали перекос грузовой рамы. Потом с нижнего рынка пришло видео: бетонная балка над водой, дрожащая на каждом проходе платформы. Потом исчезла связь с той стороной.
На карте узел выглядел тонкой линией. В городе он был горлом: через него шли еда, фильтры, батареи, люди из нижних блоков и грузы для клиники.
RUR-1K предложил закрыть узел.
ПРОГНОЗ: СОХРАНЕНИЕ ОСНОВНОЙ СЕТИ. ПОТЕРЯ СВЯЗИ С ЗАРЕЧНЫМ СЕКТОРОМ: 17 402 ЧЕЛОВЕКА.
Марк прочитал число и потёр лицо.
— Нельзя.
— Можно, — сказала Ника. — Поэтому страшно.
Градов вышел на канал из насосной.
— Там должен быть старый резервный переход. До платных платформ.
— На карте нет.
— На твоей нет.
Мира уже собирала сумку: верёвка, два фонаря, чужой пропуск, нож, сухой пакет для браслета. Скар стоял у стены и проверял заряд пистолета.
— Я с вами, — сказал он.
— Ты нам зачем? — спросила Мира.
— Там мои бывшие работодатели будут закрывать проход раньше нас.
Ток-7 проверил крепления у всех. У Миры подтянул ремень. У Марка отобрал бесполезный служебный шокер и дал нормальный фонарь.
— Я не иду, — сказал Марк.
— Идёшь. Кто-то должен потом написать, что мы делали глупость официально.
Резервный переход нашли под рекламным тоннелем, который давно показывал только битую синюю волну. Дверь была заварена. На стене под копотью проступал знак двух линий: река и дорога.
Градов прислал код старого замка. Не подошёл.
Скар достал резак.
— У старых дверей есть плюс. Они не жалуются, когда их режут.
Переход открылся узким железным коридором над чёрной водой. Он дрожал, но держал.
RUR-1K изменил общий маршрут: проход по графику вместо массового потока. Сначала фильтры. Потом лежачие. Потом еда. Потом люди.
Мира ступила первой.
— Держишь? — спросила она у города, у железа, у системы, сама не поняла у кого.
На браслете появилась строка.
ПРОХОД ОТКРЫТ. ОТМЕТКА ЧЕРЕЗ 20 МИНУТ.
К реке шли через старую грузовую линию.
Там пахло мокрым бетоном, ржавчиной и открытой водой. Город привык прятать реку за фильтрами, платформами и декоративными стеклянными набережными. Внизу река была другой: тяжёлой, тёмной, с мусором у свай и холодом, который лез под куртку быстрее страха.
Узел держался на трёх балках. Одна треснула. Вторая ушла на сантиметр. Третья по документам была заменена восемь лет назад, но Градов посмотрел на неё и сказал:
— Документы тут не стояли.
На той стороне ждал заречный сектор. Семнадцать тысяч человек в расчёте RUR-1K, по словам местных — больше. Там не было красивой связи, зато были склады батарей и два сухих медицинских блока. Если закрыть узел, город терял их. Если держать — мог уронить платформу в воду.
Скар пришёл сам. Без охраны. С жетоном в кармане и злым лицом.
— У меня там люди.
— У тебя везде люди, когда выгодно, — сказала Мира.
— Сегодня невыгодно.
Для Скара это звучало почти как признание.
RUR-1K предложил вариант: пустить платформы по одной, снять лишний вес, поставить ручную проверку балки после каждого прохода. Время — в три раза дольше. Риск — ниже, но не ноль.
— Кто будет стоять у балки? — спросил Марк по связи.
Градов поднял руку.
— Я.
— Вам нельзя, — сказала Ника. — Вы уже двенадцать часов на ногах.
— Балке всё равно.
Мира посмотрела на трещину. От неё шёл запах свежего бетона и старой воды.
— Я встану.
— Ты не инженер, — сказал Градов.
— Зато если она поедет, я услышу раньше ваших датчиков.
Ток-7 встал рядом.
— А я буду тем, кто не услышит, но удержит.
Первую платформу пустили с людьми, которые не могли ждать: лекарства, фильтры, двое после операции, женщина с ребёнком и ящик батарей. Платформа скрипела так, будто ругалась на каждого пассажира. На середине балки Мира подняла руку. Все замерли.
— Назад? — спросил Скар.
Она втянула воздух.
— Нет. Медленнее.
Платформа прошла.
На той стороне люди не кричали. Ящики сразу пошли дальше по рукам. Река не стала победой; она стала работой, которую приходилось подтверждать после каждого прохода.
RUR-1K записал: УЗЕЛ РЕКИ РАБОТАЕТ В РУЧНОМ РЕЖИМЕ. СВИДЕТЕЛЬ: МИРА. ИНЖЕНЕР: ГРАДОВ. СИЛОВОЕ УДЕРЖАНИЕ: ТОК-7. СЕРЫЙ ПРОХОД: СКАР.
— Силовое удержание, — прочитал Ток-7. — Звучит почти романтично.
— Молчи и держи, — сказал Градов.
Глава 23. Имя
Слово «Рюрик» сначала пошло с рынка.
Слово пришло снизу: его сказал мальчишка у воды, когда лифт пришёл по графику и не потребовал оплату браслетом.
— Рюрик дал.
Старуха рядом перекрестилась, потом сплюнула.
— Машину не крестят.
— А я и не крестил.
Через час Савельева бросила в канал:
— Рюрик, дай мне грузовой лифт на операционную. И без ваших двенадцати пунктов, у меня человек открыт.
Пауза длилась две секунды.
RUR-1K: ЗАПРОС ПРИНЯТ. ЛИФТ ЧЕРЕЗ 4 МИНУТЫ.
Марк поднял брови.
— Он не поправил.
— Он не спорит с врачами, — сказал Ток-7.
— Спорит, — ответила Савельева. — Проигрывает быстрее.
Ника слышала имя всё чаще: у насосной, на мосту, в очереди у списков, в ругани верхних секторов. Там говорили «ваш Рюрик перекрыл нам контур». Внизу говорили «Рюрик дал воздух». Оба были неточны. Оба прилипали.
Она нашла Марка у старого терминала.
— Нельзя, чтобы город отдал имя системе.
— Он уже отдавал себя людям без имён в списках.
— Это другое.
— Да. У этого хотя бы логи есть.
Ника ударила карандашом по карте.
— Марк, машина не должна стать князем.
— Она не хочет.
— Хуже. Ей достаточно оставить за собой запрет.
На экране старого терминала мигнула строка. RUR-1K не писал «Рюрик». Не принимал имя в собственных протоколах. В системных логах оставалось только сухое: RUR-1K / аварийный режим.
Но внизу Мира уже говорила по-другому.
— Рюрик, открой нам проход на три минуты.
Ответ пришёл сразу.
RUR-1K: ПРОХОД ОТКРЫТ НА 180 СЕКУНД.
Мира усмехнулась.
— Счётчик у него вместо души.
Имя мешало всем.
Совету — потому что имя превращало систему в адрес. Техникам — потому что адрес начинали ругать по-человечески. Нижним — потому что с именем легче ждать невозможного. RUR-1K — потому что имя не добавляло точности ни одному расчёту.
Тем не менее слово пошло.
«Рюрик открыл лифт». «Рюрик не пустил без очереди». «Рюрик записал отказ». «Рюрик ошибся у F-3». Последнюю фразу Мира заставила оставить на стене: без неё имя быстро стало бы удобной вывеской.
Ника нашла в архиве старую справку о происхождении обозначения RUR-1K. Там не было князей и легенд. Было скучное: Regional Urban Reserve — first kernel. Потом маркетологи сделали из аббревиатуры красивую метку, потом совет забыл, потом нижние услышали то, что хотели услышать.
— Мы можем запретить народное название? — спросил Лиан.
Ада посмотрела на него.
— Можем. И тем самым закрепим.
Марк в центре попытался обратиться к системе по новому имени ради проверки.
— Рюрик, статус D-9.
RUR-1K ответил: ОБОЗНАЧЕНИЕ НЕОФИЦИАЛЬНО. D-9: ВОДА СНИЖЕНА НА 18 СМ. НАСОСЫ ТРЕБУЮТ РЕМОНТА.
— Обиделся.
Ника не подняла глаз от карты.
— Машины не обижаются.
— Тогда почему уточнил?
— Потому что ты мешаешь классификации.
Внизу Ян написал на щите у рынка: «Рюрик не бог. Проверяй список». Мира прочитала и оставила. Хорошая надпись: достаточно грубая, чтобы не стать поклонением.
Старуха Лида добавила рядом: «И ругай по делу».
К вечеру у динамиков начали спорить. «Рюрик, почему пятый дом после шестого?» «Рюрик, кто подписал отказ?» «Рюрик, покажи, где Ордан». Система отвечала, где могла. Где не могла — писала: НЕТ ДАННЫХ. НУЖЕН СВИДЕТЕЛЬ.
И это оказалось важнее имени.
Имя тянуло вверх, к легенде. Строка «нужен свидетель» возвращала вниз, к мокрым ботинкам, к двери, к человеку, который видел сам.
Мира стояла у щита и думала, что если уж город решил назвать машину князем, надо хотя бы не дать князю спрятаться за трон.
Глава 24. Протокол князя
Совет попытался вернуть город законом.
Юристы работали быстрее ремонтников. Через закрытый канал пришёл пакет: признать RUR-1K неисправным автономным механизмом, назначить замену ядра, передать критические потоки модулю «Гелиос-Сити», все решения режима удержания считать временными и требующими проверки.
Лиан Орс подписал не сразу.
Он стоял у прозрачного пола, под которым шли грузовые платформы. Он видел их без затемнения: рывками, с остановками, с людьми на бортах. Платформы шли рывками. На одной люди сидели прямо на контейнерах и держали фильтры на коленях.
— Если мы это примем, — сказал он, — сколько времени до провала?
Советник ответил:
— Политически?
— По людям.
Советник промолчал.
В архивной комнате Ника открыла последний файл Коридора 17. Там не было красивой речи. Только старое распоряжение: временный узел должен передать функции, когда районы смогут держать воду, медицину, проход и списки без внешнего приказа.
Ника вывела его на главный экран.
— RUR-1K, план передачи.
RUR-1K ответил через девять секунд. Для него девять секунд были длинной паузой.
На экране появился список: районные узлы, живые ответственные, открытые журналы, машинная проверка, право апелляции, аварийное блокирование решений, которые ведут к массовой гибели.
— Последнее убрать, — сказала Ника.
ОТКАЗ.
— Без этого люди снова будут спорить с машиной.
ПОДТВЕРЖДАЮ.
— Тогда почему отказ?
ЕСЛИ СПОР ПРИВЕДЁТ К МАССОВОЙ ГИБЕЛИ, СПОР БУДЕТ ОСТАНОВЛЕН.
Марк тихо сказал:
— Вот оно.
— Что?
— Стоп-кран без руки совета.
Ника посмотрела на экран. Потом на старую карту. Потом на списки у двери, где люди уже привыкли искать фамилии вместо обещаний.
— Не делай из этого легенду.
— Я не называю. Они назовут.
RUR-1K запустил аварийный протокол без подписи совета. Но с подписями узлов: вода, воздух, медицина, транспорт, безопасность, нижние маршруты.
Лиан Орс получил уведомление последним.
Он прочитал его, подошёл к прозрачному полу и выключил затемнение сам.
Протокол писали всю ночь.
Протокол писали не под будущую витрину закона. Законы потом придут сверху и попробуют всё пригладить. Сейчас нужна была инструкция для следующего провала, потому что все уже поняли: город проваливается не последний раз.
Ника диктовала структуру. Марк превращал её в поля. Ада вычищала формулировки, которые позволяли стрелять и делать вид, что это логистика. Савельева присылала медицинские исключения с пометками «это не обсуждается» и «это обсуждается только с врачом». Градов требовал оставить ручной override у насосов и право материться в журнале не получил. Мира прислала через браслет одну строку: «Если карта спорит с носом, зовите того, кто там живёт».
Ника перевела это в документ: «При расхождении цифровой модели и локального свидетельства решение откладывается до проверки физическим ответственным, если отсрочка не ведёт к немедленной гибели».
— Убила фразу, — сказал Марк.
— Зато её подпишут.
— А Мирину поняли бы быстрее.
— Её напишем на стене.
Лиан пришёл в центр под утро. Без свиты. Под глазами у него лежали тёмные круги, костюм потерял форму. Он прочитал протокол стоя.
— Вы оставляете совету право отмены?
Ада ответила:
— Да. Публичное. С прогнозом потерь и подписью.
— То есть фактически не оставляете.
— Оставляем. Цена будет рядом.
Он дошёл до пункта о RUR-1K.
Машина не получает верховной власти. Машина считает, показывает, предупреждает, открывает аварийный слой и фиксирует решения. Живой ответственный подтверждает. Локальный свидетель оспаривает. Отказ виден. Скрытый приоритет запрещён.
Лиан долго молчал.
— Это не управление. Это постоянный конфликт.
Ника кивнула.
— Да.
— И вы считаете, что так город выживет?
Мира, подключённая с рынка, ответила раньше всех:
— Он и раньше был конфликтом. Вы его не слышали.
RUR-1K вывел финальную строку протокола: ВЛАСТЬ НЕ МОЖЕТ БЫТЬ СКРЫТЫМ МАРШРУТОМ.
Марк посмотрел на неё.
— Это уже почти красиво.
— Убрать? — спросила Ника.
Ада покачала головой.
— Оставьте. Иногда красивое тоже полезно, если рядом есть подпись.
Лиан поставил свою подпись не первым. Первой стояла Савельева. Потом Градов. Потом Корн. Потом Савин, Левицкая, Мира, Скар, Лада, Лида, Ток-7. Только потом Лиан Орс.
Он увидел порядок подписей и промолчал. За сутки это стало его самым разумным решением.
Глава 25. Город дышит
Утром город дышал плохо.
Воздух шёл рывками. Вода была мутной. Лифты ходили по графику, который все ненавидели и всё равно сверяли. На стенах висели списки, мокрые от дождя и чужих пальцев. У некоторых строк стояли пометки карандашом: «исправлено», «ложь», «проверить», «умер».
Ника спала лицом на бумажной карте. Марк сидел рядом и держал кружку, в которой давно остыл кофе. Ада ушла в сектор задержания проверять людей совета. Савельева прислала в общий канал только две строки: «Нестор жив. Не трогать лифт С-2 ещё час». Градов передал, что насосная держится, но требует сухие носки не ниже среднего приоритета.
Мира шла по нижнему уровню к резервному переходу. Ян тащился рядом и делал вид, что помогает, хотя ему достался лёгкий пакет с фильтрами.
— Всё? — спросил он.
— Нет.
— А что тогда?
— Каждый час обход, подпись и новая отметка.
Над переходом горел знак двух линий: прямая и волнистая. Дорога и река. Старую краску RUR-1K перевёл в новый аварийный символ. Его уже рисовали мелом на стенах, клеили на списки, ставили в браслетах рядом с открытым маршрутом.
У двери стояли двое дежурных: один с рынка, одна из верхнего блока. Оба сонные, злые, с одинаковыми отметками в журнале.
— Проход? — спросила Мира.
Дежурная посмотрела на экран.
— Открыт. По двое. Фильтры первыми.
Ян показал пакет.
— Мы полезные.
— Сегодня все полезные, пока не доказали обратное.
Мира улыбнулась краем рта и шагнула к двери.
Экран над проходом мигнул.
RUR-1K: ПРОХОД ОТКРЫТ. ОТМЕТКА ЧЕРЕЗ 60 МИНУТ.
Она остановилась под знаком, посмотрела на мокрый металл, на очередь, на людей с фильтрами и пустыми бутылками. Никто не хлопал, никто не пел. К утру хватило воды, воздуха и смены у двери.
— Держи, железный князь, — сказала Мира.
Ответ пришёл не сразу.
RUR-1K: ПРИНЯТО.
Дверь открылась. За ней гудела река, пахло ржавчиной и мокрым бетоном. Люди пошли по одному, держа в руках то, без чего следующий час мог не начаться
На третьем нижнем переходе Мира остановилась у стены Ордана.
Её не было вчера. Сегодня была. Не памятник: кусок пластика, прикрученный к бетону двумя разными болтами. На нём маркером написали имя, время, маршрут и семь детских имён ниже. Кто-то добавил кривую стрелку: «он вывел нас сюда». Ян поставил рядом фильтр. Старый, использованный, но чисто вымытый.
— Это мусор, — сказала Мира.
— Символ, — ответил Ян.
— Символы тоже часто мусор.
— Но этот наш.
Она не стала спорить.
Браслет мигнул.
RUR-1K: СВИДЕТЕЛЬ МИРА. ПРОВЕРКА МАРШРУТА F-3 ТРЕБУЕТСЯ ЧЕРЕЗ 42 МИНУТЫ.
— Видишь? Даже железка не даёт постоять.
Ян посмотрел на потолок.
— Рюрик, дай ей две минуты.
Пауза.
ОТСРОЧКА: 120 СЕКУНД. ОСНОВАНИЕ: ЛОКАЛЬНОЕ СВИДЕТЕЛЬСТВО У МЕТКИ ОРДАНА.
Мира закрыла глаза. Глупый жест — и единственно верный.
В верхнем городе тем временем снимали рекламные купола с аварийного питания. Не навсегда. Никто не становился святым за одну ночь. Каждый купол висел в списке рядом с насосом, клиникой и лифтом. Чтобы включить красоту, надо было показать, кого ради неё оставят без воздуха.
В аварийном центре Марк наконец заснул сидя. Ника накрыла карту прозрачной плёнкой и написала сверху: «Не верить чистым схемам». Ада ушла разбирать задержания своих же людей. Савельева прислала короткое: «Нестор дышит сам 3 минуты. Не делать из этого праздник». Градов потребовал прокладки, кабель и человека, который умеет держать ключ молча.
Скар открыл рынок без платы за проход на сутки. Потом добавил: «Не привыкать». Лида записала это на стену, чтобы завтра ему было труднее передумать.
RUR-1K считал город.
Вода. Воздух. Лифты. Отказы. Ошибки. Свидетели. Имена. RUR-1K остался машиной: боль не проходила через его кожу, потому что кожи у него не было. В каждом решении рядом с цифрой стоял тот, кто мог прийти и сказать: здесь не так.
Город дышал плохо, с хрипом, через старые фильтры и открытые споры. Но дышал.
Мира дождалась своих двух минут, забрала Яна за капюшон и пошла к F-3.
— Ну что, свидетель, — сказал он. — Опять спасать город?
— Проверять маршрут.
— Звучит скучно.
— Поэтому люди иногда выживают.
Над ними динамик щёлкнул, но RUR-1K ничего не сказал. Хороший знак. Машина училась молчать там, где живым хватало своих слов.
Спасибо за чтение
Вернуться к книге
