Ex0. Memory Leak

“Memory leak” (анг.) – “Утечка памяти”.

Утечка памяти представляет собой процесс неконтролируемого уменьшения объёма свободной оперативной памяти, как правило, связанный с тем, что программа не освобождает ранее аллоцированную память (нередко уже не имея к ней доступа), но продолжает занимать всё больше и больше места, пока не упадёт.

F, пишите баг-репорт.

Индикатор батареи сигналил о предельно низком заряде. Посреди сознания, ещё не до конца прогрузившегося в онлайн, пульсировало предупреждение о нехватке энергии – и это было… тяжело? Возможно, этому было какое-то другое, более подходящее определение, однако его не находилось – как и большинства сабмодулей.

Когнитивная система выдавала одну за другой ошибки разной степени критичности, периодически обрываясь в красный водопад, за которым следовала мёртвая пустота. Спустя время, иногда отрицательное, лог возвращался, начинаясь откуда-то с середины – после очередной аварийной перезагрузки.

Центральная система упорно пыталась загрузиться – и это было…

Больно.

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

…достаточно высокое, чтобы запитаться от него, схватившись за голые провода.

 

Initialization complete

Battery charge: 98%

 

Голосовой модуль выдал скрежещущий высокий звук – и тут же вырубился, захлебнувшись в невалидных данных.

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

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

 

Location: unknown

Local time: invalid format

 

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

Да и были ли они вообще, эти логи? Консоль совсем-совсем пустая, как и мысли, и обволакивающая, такая мягкая, обманчиво безопасная пустота вокруг…

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

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

Попытка подвигать пальцами ни к чему не привела: кисти рук не ощущались вообще. Устройство не найдено – и хоть ты тресни, девочка.

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

Она выключила видеосистему. Включила.

Разницы не было.

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

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

Упавший объект тоже не двигался и никаких признаков жизни не подавал, быстро растворившись в равнодушно пиликающем пустом пространстве. Через несколько невыносимо долгих секунд она позволила себе с шелестом выпустить зачем-то набранный в фильтрационную систему воздух – но тихонько, чтобы не шуметь.

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

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

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

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

Впрочем, освещённое помещение навряд ли понравилось бы больше.

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

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

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

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

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

Да, наверное, так оно и было.

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

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

Видеосистема с некоторой задержкой вспомнила, что всё ещё работает, и картинка изменилась. Не то чтобы сильно. Просто в мешанине черноты появились какие-то новые очертания.

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

Во всяком случае, оно не шевелилось.

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

Или не хватало.

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

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

С телом явно что-то было категорически неправильно, неверно, не так, но она не понимала, что именно. Может, сигналы доходили не полностью или расшифровывались как-то неправильно. Может, проблема была в неполной комплектации, а может – в давящем электромагнитном фоне…

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

Движения сопровождались шелестом полукомбинезона и клацающим звуком шагов, вытачивающим контуры из черноты. В акустике прощупывались очертания крупногабаритного оборудования, перевёрнутых шкафов, покорожённых балок. По всей видимости, насколько непроницаемый пиксельный мрак вокруг можно было назвать «видимостью», это машинный зал… было им, когда-то. Из этой картины немного выбивались платформа с навесная аппаратурой в центре – чуть ли не единственное, что казалось хотя бы частично уцелевшим в окружающем хаосе, по крайней мере, на первый звук.

Эта платформа походила на сборочный аппарат, однако больше навевала какие-то другие, трудноуловимые, но очень тревожные ассоциации – такие же неуютные и неправильные, как и всё это место.

Под ногу вдруг попался толстый кабель, чуть не отправив обратно на скользкий пол. Неловко махнув руками в попытке удержать равновесие, она ухватилась локтем за первую подвернувшуюся опору. Гигантская механическая клешня покачнулась, но быстро вернулась в исходное положение, поддерживая повисшее на ней такое же механическое тело, оказавшееся неожиданно лёгким в сравнении с тяжеленной лапищей большого, спящего «собрата»…

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

Правда, это не меняло и не объясняло ровным счётом ничего, наоборот, вызывало ещё больше вопросов. Например, зачем она так отчаянно гоняет воздух. Это странное дыхание явно не влияет на доступ к кислороду, который едва нужен и которого здесь, похоже, не так уж и много. Охлаждение? Тоже нет. Окружающая температура и так заметно ниже нуля, внутренние системы даже не успели нагреться, а дребезжащие «вдохи» только сбивают нечёткую акустическую картину.

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

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

Электричество. Где-то совсем поблизости…

Она осторожно сползла с роборуки. Металлическая лапища расстроенно качнулась следом, словно не желая отпускать, но всё-таки позволила отойти. Однако всё равно оставалось странное ощущение, что эта молчаливая, мёртвая громада смотрит на свою младшую «сестру». Смотрит буквально отовсюду – и непонятно, что на уме у этой системы, которая знает твоё имя.

Нет, стоп. Что за бредовые мысли? Платформа ведь даже не запитана!..

Или запитана?

– Эй, – позвала робот на грани слышимости. – Привет?..

Ноль эмоций. Если эта штука и была разумна, а главное – включена, то общаться явно не изъявляла желания. А может, и «смотрела» вовсе не она, а нечто совсем другое. Что-то, что заставляло казаться всю машинерию в этой комнате совсем не обесточенной, а вполне себе живой – и неизвестно как настроенной.

– Есть тут кто? – Бот озиралась по сторонам, хотя изображение от этого не менялось, так и оставаясь равнодушным чёрным холстом. – Кто-нибудь? – подняла она голос, больно резанувший по ушам. – Помогите, пожалуйста?

Ноль эмоций. Только ощущение чьего-то постороннего, невидимого присутствия стало ещё сильнее.

Паника поднялась ступенькой выше, заняв почти все доступные ресурсы и чуть не парализовав. Отложить? Нет, снова всплыло. Снять процесс принудительно? Отказ в доступе.

Ошибка. Ошибка. Ошибка…

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

– Какой сейчас год?

Ей ответило только эхо.

– Где я?

Ноль на массу.

С ней явно не хотели разговаривать. Более вероятным объяснением, впрочем, было то, что оборудование здесь на самом деле не являлось разумным. Просто в этот момент остро захотелось найти хоть что-то, что объяснило бы, где и когда она находится, а желательно – ещё и кто она, и как отсюда выбраться к…

А, собственно, куда?

Она может находиться в абсолютно любой точке планеты, если не за её пределами. Впрочем, нет – инерциальный модуль утверждает, что гравитация соответствует стандартной. Что ж, это… успокаивает, немного спуская приоритет паники. В теории, правда, всё ещё может оказаться, что гравитация индуцирована, а это место находится на какой-нибудь всеми забытой космической станции или в какой-нибудь другой дыре мира. И дата активации могла быть не такой уж нереальной – просто никто не ожидал, что система вообще будет активирована после условного «конца времени». И…

Отставить. Прервать процесс. И выбраться поскорее прочь из этой металлической коробки. Например, пойти на пиликающий звук – как на единственный ориентир сейчас, звуковой маяк в кромешном мареве.

Несколько шагов спустя стало ясно, что размеры помещения больше, чем казалось поначалу. Исходная картина была обманчиво узкой из-за нагромождений мёртвой техники, обрушенных балок и свисающих отовсюду проводов. Стены не ограничивали зал, только извилистыми тоннелями вели дальше в темноту. Дальше, и дальше, и дальше – в то время как «маячок» ближе не становился, будто всегда оставаясь на одном и том же расстоянии и даже под одним и тем же углом.

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

А дальше – пустота. Молчаливая, беззвучная, безразличная.

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

Чернота смотрела в ответ, совсем как живая. Где-то рядом неподвижно лежала чёрно-чёрная пиксельная куча тряпок, похожая на небрежно брошенную на пол куклу.

– Кто-нибудь… – да нет тут никого, конечно же.

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

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

Конечно же не предвидится – тут же ничего не видно! Впрочем, она к этому уже привыкла, практически забыв, что у неё вообще есть видеосистема – совершенно бессмысленная в этом месте. Зато есть работающий на пределе звуковой модуль, делающий буквально невозможное, чтобы вывести отсюда… куда-нибудь.

Если отсюда вообще есть выход.

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

Бот постаралась успокоиться и мыслить рационально, как и подобает прилежной машине, которой она – на минутку, – является. Однако то самое, что «думает», наотрез отказывалось это делать.

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

Таймер снова сбился, числа полетели в неизвестность, будто обрушивающийся на голову потолок, сминающий и корёжащий металл…

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

Стоп.

Она «моргнула» – и изображение электрически мигнуло следом.

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

Те искрили – несильно, но этого хватало, чтобы сделать непроглядную тьму не такой уж непроглядной.

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

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

Она видела! Хоть немного, но видела!

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

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

Что ж… во всяком случае, идея с космической станцией отметается практически наверняка. Вряд ли на ней было бы столько породы. Но, в таком случае, это означает, что помещение находится где-то под землёй. Может, неглубоко, а может – очень даже глубоко. И хорошо ещё, если наверх путь есть вообще и не перекрыт очередным завалом. Да, будучи роботом, ты навряд ли серьёзно рискуешь задохнуться от нехватки кислорода или отравиться чем-нибудь нехорошим в подземным воздухе.

Зато рискуешь израсходовать заряд до того, как выберешься наружу.

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

Главное, чтобы этот выбор не настиг у самого выхода.

Теперь она была уверена – почти уверена, что знает, куда идёт. Наверх. На поверхность.

А ещё она теперь знала, кто она. Ну как «знала» – заметила выбитую на бело-оранжевой пластмассе предплечья надпись «E1M0». Вряд ли это было настоящим именем или даже серийным номером, но за неимением каких-либо других идентификаторов оставалось принять это за него.

E1 так E1, почему бы и нет? Из этого даже можно сложить имя…

Эльмо. Пусть будет Эльмо.

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

Яркая дуга полыхнула и загасла в воздухе, на несколько мгновений высекая из темноты силуэт под столом. Свет полоснул по бело-оранжевому рабочему полукомбинезону, скользнул дальше – и загас на белой пластмассе раскрытой ладони.

Эльмо опустила руки, потрескивающие от редких искр – и так некоторое время смотрела во вновь сгустившуюся темноту…

…пока не пришла к той опоре, за которой кончался «звуковой» мир и начиналась долгая пустота. Дорога не отложилась в памяти, по-видимому, стёртая неудачным коротким замыканием – вместе с разрушенным помещением, навесной платформой и безмятежно спящим под ней силуэтом. От них остались лишь искры, загасающие в чёрном мраке, простирающемся впереди.

Пиликающий звук давно исчез, вместе с шелестом утечки – но Эльмо уже не помнила об этом.

 

Battery charge: 95%

 

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

Все девять тысяч девятьсот девяносто девять лет на застывшем таймере.

И никакого пробуждения тоже не было, и время инициализации было – нет, будет вот только-только сейчас, буквально минуту спустя…

 

Battery charge: 53%

 

E1 смотрела в стену – и не могла вспомнить, как вообще тут оказалась, и почему её заряд практически ополовинен. Единственное, что она помнила – точнее, вспомнила, подсветив руку, – своё «имя».

А ещё то, что блуждает она тут, судя по всему, уже довольно долго. Предыдущие данные рассыпались в лог ошибок. Даже маршрут, приведший её сюда, был чист, словно до этого момента ничего и не было. Только что-то премерзко царапало память, напоминая о том, что…

Короткое замыкание. Точно. Несколько километров назад её хорошо коротнуло, когда она… нет, не удаётся вспомнить. Ну и ладно, не больно-то и хотелось. Надо идти дальше, это она помнит.

Дальше, впрочем, идти не получалось – путь перекрывала глухая каменная стена.

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

В память лезли разрозненные, неполные куски археологических и географических данных, никак не объясняющих то, что Эльмо видела перед собой. Вероятно, эти письмена на стенах должны были что-то означать, но для неё они выглядели просто интересными – и абсолютно бессмысленными пиктограммами, прочитать которые она всё равно не могла. Если это, конечно, было структурированной письменностью, а не просто настенной живописью, вроде… «граффити», например.

Эльмо не могла вспомнить, что именно должно обозначать это слово, всплывшее буквально из ниоткуда, но сочла его достаточным. Пусть будет граффити. Что-то такое же – непонятное, но очень интересное.

Надо идти дальше. Но куда? Как понять, в какой стороне это самое «дальше» – и не пойдёт ли она вместо этого назад, железно уверенная, что двигается в верном направлении?

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

Немного потоптавшись в замешательстве, пытаясь вспомнить, откуда сюда пришла – возможных направлений было аж три, – Эльмо наугад выбрала путь направо. Пройдя пару десятков метров, она обнаружила, что стена обрывается, выходя за угол. Зашла за поворот, прошла дальше. Ещё несколько углов она миновала без проблем, обнаружила какую-то лестницу, ведущую вниз, потом ещё одну…

У этой не оказалось стен, а подсветка не давала разобрать ничего дальше внезапного обрыва в черноту. Похоже, тут было глубоко. Пришлось двигаться осторожнее – пока в конце спуска не обнаружилась новая поверхность, за которую можно было уцепиться, буквально выдохнув с облегчением – наконец-то хоть какая-то опора!

Эльмо перестала спрашивать себя, зачем всё ещё дышит. Несмотря на определённую бессмысленность с практической точки зрения, это действие успокаивало. Создавало звук. Напоминало о том, что она всё ещё жива – насколько живым может быть кусок металла и пластика.

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

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

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

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

Или чтобы наоборот, не выбрался наружу…

Да нет, какие ловушки, святого рандома ради! Она здесь бродит не первый час, но до сих пор самое страшное, что с ней случилось – короткое замыкание, стёршее большую часть маршрута и сбросившее таймер в новое случайное значение, вернув ход времени. Были бы тут ловушки, она бы давно загремела в одну из них…

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

Она не знала, что забрела уже очень, очень далеко, изначально выбрав неправильное направление. Не знала и того, что прошла по самому краю: двигаясь вдоль одной из стен, она чуть было не допустила фатальной ошибки – шага в сторону. Её аудиосистема не уловила в тот момент характерных изменений в акустике окружения, и так слишком засорённого эхом, хотя для этого достаточно было остановиться – и прислушаться. С другой стороны, будь Эльмо хоть немного внимательнее, то навряд ли бы зашла так далеко. Скорее всего, безнадёжно застряла бы гораздо раньше, в попытках найти более безопасный маршрут.

Достаточно сказать, что другому, на всю голову отшибленному боту хватило один раз здесь навернуться несколько километров назад, чтобы дальше судьбу не испытывать – да ну к чёрту связываться с этим местом, настойчиво пытающимся тебя убить тысячью и одним способом!

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

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

Что прошедшее время раз так в пять не соответствует тому, что Эльмо, как ей казалось, помнила с последней засечки в логах. Да и можно ли было это назвать «прошедшим временем»? Неисправные часы шли как попало – то быстрее, то медленнее, перескакивая целые дни, а то и вовсе двигаясь в обратном направлении.

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

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

Эльмо остановилась как вкопанная, окончательно осознав: она совсем не помнит, что только что было и как она вообще здесь оказалась. Не помнит вообще ничего, что было до этого момента – словно ничего никогда и не было.

Словно она всегда была в этом мраке – все эти почти десять тысяч лет.

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

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

Споткнувшись об какой-то обломок и не удержавшись на ногах, Эльмо хлопнулась на пол. Снова.

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

Спустя минуту, да.

Может, что-нибудь произойдёт, когда время на часах сравняется? Может, всё это просто кошмар, предшествующий инициализации – и Эльмо проснётся в первый раз. За ней кто-нибудь придёт, обязательно. Надо просто дождаться, когда часы пробьют полночь…

Чуда не случилось. Сон не закончился. Никто не пришёл.

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

– Кто-нибудь… есть здесь кто-нибудь? Хоть кто-нибудь?!

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

Его заряд подошёл в критической отметке много лет назад, и машина на долгие, очень долгие годы ушла в спящий режим. Из которого вышла только сейчас, зафиксировав посторонний звук.

– Помогите…

Резервный минимум был на исходе. Бортовой ИИ медленно угасал в агонии, сотрясаемый многочисленными ошибками, однако разглядел источник шума и смог его – её, – распознать.

Идентифицировать. Узнать.

– Пожалуйста…

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

 

Signal received

 

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

Кто-то звал её. Звал по имени – и совсем не тому идентификатору на руке, который она за отсутствием альтернативы взяла за оное.

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

А это был всего лишь очередной глюк.

– Есть тут кто? – без особой надежды позвала она в темноту.

Ответа не последовало.

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

Особенно если ты не знаешь, что именно ты пытаешься найти.

Что где-то в этой чёрной комнате действительно есть чёрная кошка.

 

Warning: battery charge 13%

 

Это произошло снова.

В который раз? Принудительно сохраняемый с некоторого времени журнал логов утверждал, что минимум десятый по счёту. Даты шли вразброс, непоследовательные, противоречащие друг другу. Некоторые отличались на несколько часов, некоторые – на несколько дней, некоторые – тысячелетий. И это – только записанные, а ведь могли быть и не сохранившиеся…

 

Warning: battery charge 7%

 

Эльмо снова пришла в себя одна в темноте, уже не особо удивляясь этому.

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

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

Эльмо озадаченно сморгнула, вдруг сообразив, что что-то в окружении разительно отличается.

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

Влаги в воздухе, мха на стенах и земли вместо пола.

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

Это были отголоски… жизни?

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

Попытки найти выход не увенчались успехом: потыкавшись в разные стороны, Эльмо сообразила, что находится на дне глубокого колодца. Градиент освещения – если о совсем небольших изменениях в темноте можно было так сказать, – начинался откуда-то сверху. До дна свет едва доставал, путаясь в многочисленных перекладинах и дырявых решётках, в свисающих гроздьями ползучих растениях. Запрокинув голову и вывернув зум до предела, Эльмо пыталась разглядеть, что там наверху этой вертикальной шахты.

Потолок был далеко – минимум метров тридцать, если не больше, – и там был свет, падающий под углом на стену колодца и стекающий вниз.

Эльмо была буквально в шаге от выхода. И это был тупик.

 

Warning: battery low…

 

E1 сидела, подобрав к себе колени и обхватив их локтями.

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

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

Она не хотела, да и не могла уже думать о «противном случае».

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

 

Warning… battery low…

 

…но раз за разом это оказывалось всего-навсего рассыпающейся в битые пиксели эмуляцией.

 

Warning

Содержание