Читать книгу Солнце на краю мира - Антон Шаманаев - Страница 21
Глава первая
Оглавление*
Наконец, я отбросил планшет, протер рукавом лоб, а заодно и экран терминала, на котором оставался налет седины от огнетушителя, и приступил к тягостным думам. Думы были тягостными по простой причине: проблема, приведшая к аварии – инженерная. А значит, сколько ни отлаживай свою программу, результат не улучшится. Это еще в первый раз стало ясно, когда отладчик ошибок не выдавал, а на «боевом» запуске случился песок.
А на инженерный уровень мне лезть толку мало. Я про него ничего не знаю, отлаживать не умею, да и исправить не смогу. Ну, обнаружу примерные условия ошибки, а дальше Новшек и команда неделю будут ее локализовывать и две недели перепаивать микросхему…
Оставалась призрачная надежда, что обнаружу какую-нибудь сущую глупость наподобие той, из-за которой утром образовался песок. И снова напишу макрос. Но тут должно сойтись многое: я, не смыслящий ни бельмеса в физическом устройстве наших микросхем, должен ошибку отыскать; она должна оказаться обходимой, а путь обхода – простым, чтобы до завтра я успел его воплотить.
Я взглянул на дыру и приуныл. Пространство искривилось по эллипсоиду… Это тебе не лишний inc. Дэвидсон отлавливал подобные ошибки сто лет назад на первой серии наших аппаратов, и тогда же они были искоренены с помощью аппаратных проверок… Но вот, искривление пошло по гребаному эллипсоиду, и ни одна аппаратная проверка не сработала! Электронику не взволновали ни километровые расстояния, ни адский расход энергии. Тут действительно было нечто очень глубокое.
Моя программа использует все, на что способен Porta. Разумеется, жемчужина его таланта – изменение строения атомов и молекул, ASA и MSA, дай бог Дэвидсон нам их не «зарежет». Есть функции анализа вещества, вплоть до субатомного уровня. Об этих функциях даже Опалян в курсе, и они давно оттестированы. Еще есть всякие деформации объекта по сетке, которые и в Stanley работали прекрасно. А я объединяю всю эту красоту в одной программе. И она выжимает из аппарата соки похлеще конвейерной работы.
Минут пятнадцать я тупо сидел перед терминалом, прокручивал туда-сюда свой код и перебирал потенциально проблемные функции. Создание сетки объекта? Фотосканирование границ? Все это оттестировано… ASA? У Дэвидсона на ней перегревается аккумулятор… и что? Объекты-то у него перестраиваются верно…
Не то.
Встал, прошелся по комнате.
В дыре гудели налетающие порывы ветра. Чтобы оттуда ничего не насыпалось, я нахлобучил на искривитель колбу. Искривитель был чист, как отполированный велосипед, и видом своим изображал полную готовность к дальнейшим подвигам.
За окном стояла неподвижная картина жаркого дня. Подавленный солнцем, замерший мир. Неподвижны были окна соседнего здания. Лишь на одном из них, лениво поддаваясь ветру, колыхалась какая-то привязанная ленточка. Внизу на ступеньках черного хода сидел неподвижный турок в узорчатой униформе, отлучившийся из ресторана покурить. Лениво растворялся в воздухе дымок его сигареты.
Инженерная проблема… Давай-ка не будем пугать себя этим словосочетанием. Пока есть надежда на то, что ошибка найдется и окажется легкой, нельзя бросать ее поиски.
Давай-ка соберемся. Как решают задачи, способ решения которых тебе не известен?.. Почему-то вспомнилось, как мы в Gateway собеседуем новых инженеров и программистов. Вернее, мы-то с Платоном или Новшеком собеседуем их по-человечески. А вот попадись они Дэвидсону или Опаляну, который порой захаживает на интервью – как пить дать, получат бессмысленную задачку на логику. Посчитать, сколько теннисных мячиков вмещает межгалактический SP-Z… Один кандидат не знал, как выглядит SP-Z, и Рустем немедленно его выпроводил.
Был бы я кандидатом, задали бы мне вопрос: почему пространство искривляется сосиской? Устройство аппарата мне не известно. Как бы стал решать?.. Ну, тестировал бы каждую элементарную операцию, месяц бы провозился… Ладно, пускай мне известно, что в типичных условиях каждая элементарная операция уже оттестирована Дэвидсоном. Сэкономим время и рассмотрим только нетипичные условия. Да ведь и их много, нетипичных…
На узенький край окна соседнего здания сел воробей, повертел головой, и спрыгнул.
Краевые ситуации… Откуда я это вспомнил? Краевые задачи… Диффуры тут ни при чем. А вот краевые ситуации рассмотреть стоит. Что-то работает, доходит до края, и – что происходит потом?
Я вернулся к своему коду и стал с новой точки зрения его рассматривать. За четверть часа выписал на бумажку штук пятьдесят операций, где что-то «ходит по краю». Потенциальная нехватка памяти или превышение разрядности регистра… Из этого списка выбрал шорт-лист наименее элементарных ситуаций, чтобы проверить и отсечь их в первую очередь.
Стенка шкафа, который давеча одарил меня старомодным пиджаком Деева, была запорошена белой пылью, и я стал пальцем рисовать на ней «кирпичики»: регистры – друг за другом в ряд, в сторонке – стек, сегменты памяти. Зарисовывал каждую краевую ситуацию стрелочками: что откуда берется и куда пишется. Стенка быстро пришла в негодность, однако я добрался до операции с составным регистром и вдруг задумался: а как физически он устроен?
Не поленился, отыскал на портале инженерную спецификацию процессора, перерисовал с нее кирпичики регистров – поставил их в правильном порядке. Из шестнадцати регистров две пары идут друг за другом и образуют два составных регистра – это os:op и qs:qp. И туда, и туда обычно кладутся пойнтеры – координаты объектов, с которыми в данный момент происходит работа. В первом из этих составных регистров у меня объект-образец, в другом – результирующий объект. С ним я делаю MSA, и поэтому их, объектов-молекул, в реальности очень много. И координаты их всех проходят поочередно через qs:qp. А что происходит, если составной регистр переполняется? Поднимается флаг переполнения, как обычно. На такой случай предусмотрено особое сообщение, но оно не появляется. Лог сообщений пуст. Значит, qs:qp не переполняется.
Стоп! Но ведь у меня объектов – на много порядков больше штук, чем способен вместить этот регистр! Как он может не переполняться?.. В памяти всплыл афоризм времен молодого Опаляна, когда-то висевший на двери Дэвидсона: «Излишнее доверие к рукотворному затмевает разум». Дорогой мой.
Идея довольно безумная: переполнение регистра – хрестоматийная штука, которую отлавливают на первых же инженерных тестах. Потом я вспомнил: регистры qs и qp добавились позже. Наши ребята сами добавили их в процессор для серии Multus – это третье поколение. В первом поколении – Warper – стоял серийный процессор от SP Laboratories, и были лишь стандартные регистры. Начиная с Multus и до текущего поколения – шестого по счету – мы заказываем процессоры с особой архитектурой под наши нужды.
Бросив художества, я сворганил маленькую программку – тест на переполнение составного регистра qs:qp. Программа запустилась и завершилась без ошибок.
Я похолодел. Куда же девается лишняя старшая единичка при переполнении? Куда-то ведь она девается! Глянул на шкаф – перед qs и qp у меня был намалеван «кирпичик» es – сегментный регистр, который на практике используется редко. Согласно спецификации, регистры qs и qp физически пристегнуты именно к es. Я еще раз запустил тестовую программку и посмотрел, что на выходе получается в es. И увидел там свою единичку…
Ватными пальцами я набрал Ави Новшека. Может ли переполняться составной регистр qs:qp и гадить куда-то? Быть не может совсем никак, ответил Ави. Может ли он гадить в es хоть теоретически? Не может в принципе, исключено. А он, говорю, гадит, Ави. И флаг переполнения не поднимается.
Почему, думаю, за долгие годы этого не увидел Дэвидсон? Он мог и не знать того факта, что регистры физически связаны, поскольку в цивилизованном мире это не имеет значения для программиста. Он мог не использовать es, а может, у него qs:qp не переполнялся, ведь проблема переполнения встала совсем недавно, когда появилась MSA, и объектов стало столько, сколько молекул. На серии Oris он MSA не тестировал, поскольку там эта функция была неофициальной, а на Porta он MSA тестирует в данный момент… И вероятно, что и в его комнате вскорости пробило бы потолок, если бы аккумуляторы не перегрелись. Да, слишком много случайностей сошлось в одном месте! В результате – всего один выстрел в небо сквозь толщу стены, чудом уцелевший Гарри… Прямо скажем, все могло закончиться гораздо хуже.
В дверь неистово застучали. Это прибежал Ави, посмотреть на чудесные плоды собственного разгильдяйства.
– Что у тебя стряслось? – начал он с порога, оглядывая мою подгорелую и побелевшую, как пекарный цех, комнату. Я сразу закрыл за ним дверь.
Ави был в клетчатых штанах, фиолетовой рубашке и манишке. Стоило ему пройти пару шагов, как на его огромную кучерявую шевелюру успело откуда-то насыпаться порошка, и он стал яростно его вытряхивать, придерживая очки. Я продемонстрировал, как единичка попадает в совершенно чуждый регистр es вместо того, чтобы оказаться во флаге переполнения. Пару минут он пребывал в молчании и проматывал код программы от начала до конца, после чего цокнул языком и сказал, что, да, похоже, они с ребятами конкретно облажались.
– А все-таки – что у тебя стряслось? – повторил он, указывая на потолок.
Я объяснил, что это и есть результат того, что ребята его подгадили в самый неподходящий момент и в неожиданном месте.
– Спишу ремонт из вашего премиального фонда, – сказал я как будто в шутку.
– Списывай откуда хочешь, – Ави было не до шуток, он усиленно чесал репу, – Главное, что реально попа… Такое нельзя выпускать на рынок… Переделывать, тестировать – месяца полтора, а то и больше…
Конечно, я ожидал, что Ави от моего известия потеряет дар речи и будет решительно потрясен. И внутренне подозревал, что сроки переделки будут измеряться неделями. Однако, лишь когда Ави огласил вердикт, я вдруг осознал, что категорически не готов к такому развитию событий. Не готов я потерять все из-за подобной ерунды. Ни за что.
– Что же делать? – глупо спросил я.
Но Ави уже занервничал, а это хорошо, в режиме легкой паники он горазд придумывать самые оригинальные хитрости. Он слонялся из угла в угол, прижав кулак к подбородку, что-то сопоставлял, а под ногами на каждом шагу хрустел порошок. Наконец, он выдал:
– Мы в спецификации объявим регистр es нерабочим! RFU24.
Я даже похлопал в ладоши:
– Очень оригинально, Ави! Но тебе не кажется, что знающие люди нас обсмеют? Регистр es существует полтыщи лет во всех процессорах мира, а мы берем и говорим, что у нас его нет.
– Во-первых, мне до фонаря, кто над чем смеется. Во-вторых, ценность Porta – в новых функциях, а уж никак не в том, что он следует инженерным канонам… Всего-то допишем в драйвер процессора программную проверку es – если там появляется единичка, сразу же переносить ее в overflow flag25… Часа на три работы.
– Очень оригинально, Ави, – повторил я. – К «костылям» у тебя настоящий талант.
Но менее «костыльных» идей ни у меня, ни у него не было. Я заручился его молчанием о дыре, и мы расстались.
Искривитель празднично сиял. И, несмотря на появление на горизонте нового медного таза, которым могла накрыться презентация, я воспрянул духом: забрезжила надежда, что эта ошибка – заключительная «шпилька» моего ралли. Последний рывок перед финишной прямой и клетчатым флагом, до которого останется добежать два шага. И пробежать их не помешает уже ничто.
Я стал аккуратно рефакторить код, избегая совместного использования этих дьяволовых регистров. Возился я внушительное время, отвлекся начисто от всего окружающего и не следил за часами. Задача искоренения es оказалась нетривиальной и потребовала изрядного количества кода. Вдобавок, меня обуревал страх новых ошибок, которые, если натворить, уже не будет времени вычистить, и поэтому я намеренно медлил даже в простых местах и перепроверял все трижды. Это последний отрезок эстафеты, момент истины, думал я, и надо хоть раз в жизни сделать все без задоринки с первого раза.
В самый разгар меня прервал телефон. Он звонил, вероятно, с минуту, прежде чем я вышел из транса и взял трубку. Это была Дженнифер.
– Артур, вы сейчас свободны? Мне необходимо с вами поговорить. Есть новая информация.
Голос был казенным, как у автоинформатора. И мы вроде договорились на «ты»…
– Слушаю, – сказал я.
– Это срочно. Позвольте, я к вам зайду?
– Ко мне? – заволновался я. – Зачем? Давайте в переговорку… Вообще, я сейчас очень занят. Говорите, в чем дело?
– Разговор не телефонный. Я отниму всего пару минут.
– Э-э, – промычал я, холодея. – Нет! Сейчас неудобно, давайте через полчаса в переговорке…
Но тут в дверь настойчиво постучали. Стук был острый, отрывистый, от женского кулачка. Внутри у меня все упало.
– Артур, в самом деле, вы там голый, что ли? – усмехнулась она, не теряя делового тона. – Откройте, я правда на минутку.
Она отключилась. Я посидел мгновение, соображая, но вскоре стук повторился. Назад дороги нет, не впустить ее нельзя, иначе не миновать мне проверки со стороны Ярослава Бойко. Эти ее въедливые вопросы за обедом о сути моей работы… Ноги слушались плохо, пока я плелся к двери. Шила в мешке не утаишь. Невелика разница, сейчас все рассказать или потом. Да и Деев настаивает, чтобы я доверял ей…
Отперев замки, я решительно распахнул дверь и попытался лицом изобразить беззаботность. Но Дженнифер с порога узрела, во что превратилась комната, поморщилась от запаха гари и захлопнула дверь. Ее лицо выражало горечь и разочарование, и смотрела она на меня, как на нашкодившего сына.
– Боже мой… Подозревала, что у вас творится что-то неладное, но чтобы настолько… Ну, выкладывайте.
– Сначала вы.
Она подняла брови с видом «ну знаете ли!», однако заговорила:
– Внештатник, про которого вы меня спрашивали, с вероятностью восемьдесят процентов – действительно, из Верховной Ассамблеи. Предполагаем, что он сегодня делает неофициальный обход, осматривается, что да как…
– А почему восемьдесят процентов?
Снова обдала меня испепеляющим взглядом. Он получался у нее не хуже фирменного прищура, даже мурашки ползли. На сей раз он выражал легкое презрение к тем, кто только что сел в лужу, но поучает других.
– Потому что официально проверки нет. Но по базе лиц этот тип проходит как начальник целой следственной практики в Верховной Ассамблее. Понимаете? Начальники такого уровня не идут во внештатники под прикрытием. Пока не все сходится, поэтому мы продолжаем копать… А еще, – добавила она едко, – мне только что звонили из полиции и интересовались, не проводили ли мы экспериментов, связанных с вертикальным выбросом каких-либо предметов.
Я вздохнул, дошагал до своей дыры и уставился в нее одним глазом, как пират в подзорную трубу.
– А почему вы спг’ашиваете? – сказал я, подражая Эйзенбергу.
Дженнифер улыбнулась одними глазами.
– А потому, что они засекли прилетевший с неба объект. Нашли место падения, оцепили, там сейчас работают. Что за объект – не уточняют. Провели баллистическую экспертизу; она указала на наш район. Теперь опрашивают местные хайтек-компании.
Я уселся на край стола и указал Дженнифер на свой стул – это было единственное седалище, не покрытое порошком из огнетушителя. Она брезгливо отряхнула его рукой и села на краешек.
И я рассказал ей про эксперимент. Без лишних подробностей о переполняющихся регистрах, но довольно детально. Рассказал про Гарри и его дырявое крыло и что отправил я его искать результат превращения. На этом месте Дженнифер закрыла глаза ладонью и запричитала:
– Ну почему же вы не позвонили мне сразу?! Когда по офису рыщет этот внештатник, любые происшествия – моя прямая зона ответственности! Разве вы не понимаете, что в итоге, так или иначе, это разгребать мне?
– Как видите, я и сам могу о себе позаботиться, – ерничал я. – Никто не пострадал и разрушений почти нет.
– Не смешно!.. Боже, вот уж правда повезло, что никого не убило… Почему вы не проводите свои опыты в лаборатории?!
– Потому что у меня нет лаборатории, а есть только этот…
– Кошмар! – завопила она, не дав мне ответить. – Вы отправили разыскивать эту штуку черт знает кого: шофера, известного трепача, не обремененного интеллектом!
– Слушайте, – вздохнул я. – Вы просто не знаете Гарри. А если б знали, отправили его же. Более подходящего человека сложно подобрать.
Дженнифер сделала круглые глаза:
– О чем вы говорите? Да я бы Ярослава послала туда! Или сама бы поехала, лично.
Я сделал извинительную мину:
– Ну перестаньте… Каюсь. Однако ж не я виноват в том, что он такое выкинул, – кивнул я на сверкающий Porta. – Но вернемся к делу. Не надо вам никуда ехать, и Ярославу не надо. Во-первых, засветитесь у оцепления и подставите компанию. Во-вторых, от вас больше пользы здесь, нужно решать вопросы с Ассамблеей.
Дженнифер сжала губы и скрестила руки на груди, глядя перед собой. Злость сменилась напряженной задумчивостью.
– Как вы говорили про проектный менеджмент?.. Бегать и подтирать? Чувствую себя на вашем месте…
– Вы не видели, каково тут было после аварии! – улыбнулся я. – Потолок в огне, дым, все в пыли… чуть не задохнулся.
Она вскинула глаза на меня и приготовилась вылить новый ушат претензий, уже открыла рот, но тут в дверь снова заколотили. Кулак тяжелый, мужской. Через дверь было слышно мычание Гарри – он вернулся.
Ввалившись, он остановился как вкопанный и вылупил глаза на что-то за моей спиной. Его интересовала вовсе не Дженнифер, ей он ничего не сказал и даже не взглянул на ее декольте. Он был заворожен дырой в потолке.
– Ни хрена себе!.. Борисыч, ну ты даешь, едрить меня…
Он подбежал к дыре и стал пританцовывать вокруг, выбирая лучшее местечко, чтобы одним глазом рассмотреть ее насквозь. Вскочил на стул, щупал руками края и стенки шахты. На него отовсюду ссыпался порошок и прилипал к лысине. Налюбовавшись вдоволь, он воскликнул:
– Как по маслу! Р-раз туда, и ни соринки! Крыло мне прорезало, как ножом, а я же себе листовой титан поставил, на пластике не летаю… И до самой промзоны добросило эту хреновину!.. Три года смотрю на вас – всё ерундой занимаетесь детсадовской. Маетесь-маетесь, вертите всякие кубики, шмубики. Нечисто, думаю, темнят ребята, а оно оказывается, так и есть! – Он похлопал ручищей по искривителю, отчего тот жалобно заскрипел. – Ну, Борисыч, молоток! Будете на, эти самые, галактические яйца ставить новую пушку, да?
Дженнифер, всю дорогу демонстративно не замечавшая Гарри, наконец, прервала его дифирамбы чужеродным металлическим голосом:
– Фойерман, отставить болтовню!
Гарри так с открытым ртом и замолк, хлопая глазами на нее и на меня.
– Любые сведения о том, что вы увидели, – зарядила она скороговоркой, – любой тонкий или толстый намек, который вы дадите кому угодно за стенами этого кабинета, включая любых баб, какие встретятся вам на белом свете… будет расцениваться как раскрытие коммерческой тайны и караться колонией на двадцать лет с конфискацией!.. Спрячетесь – я вас из-под земли достану! Мои агенты разыщут вас, даже если вы сделаете пластическую операцию и будете пасти коров в Новой Зеландии!
Дженнифер замолкла. От гневных речей она залилась краской. Мы с Гарри оба стояли ошеломленные. Конечно, он заткнулся и как-то весь съежился. Больше он не смотрел ни на какую дыру, лишь испуганно бегал глазами и видом своим напоминал нагадившего пса, который вот-вот огребет палкой по спине.
Молчание нарушил я:
– Гарри, рассказывай теперь подробно, что нашел?
Притихшим голосом он поведал, что место падения отыскал довольно легко – по скоплению полиции. Это на 138-й улице, прямо на проезжей части, и с обеих сторон быстро образовались пробки. Было, говорит, странно много полиции, выставили несколько кордонов, чтобы за пушечный выстрел не подпустить ни зевак, ни оверкары. Поблизости возилось пара человек в зеленых комбинезонах с надписями «Nuclear hazard», но они толком ничего не делали. Были, как показалось Гарри, еще и саперы, но те вовсе стояли в сторонке и курили, держа собаку на поводке. Собака была спокойна. Псионщиков не было. К центру Гарри, разумеется, не пропустили, и он решил подняться вертикально вверх перед первым кордоном, якобы посмотреть, далеко ли перекрыта улица. Его тотчас же заарканили полицейские, прижали к земле и чуть не надели наручники, но обошлось: удалось-таки уболтать их историями о тяжелой доле водил, что премии лишат, объезжать накладно, семья, алименты… Отпустили его даже без протокола, только отобрали флеш-карту из видеорегистратора.
– Но, Борисыч, я же бой-скаут! Я знал, что ее отнимут, поэтому, когда набрал высоту, кнопочкой – щелк, и фотка в Космонет улетела!
Гарри театрально замолк, ожидая восхищенных возгласов. Никому из нас было не до восхищения, хотя я втайне сиял. Чуть не за шкирку подтащил я его к терминалу, чтобы он залез в свой аккаунт и показал фотку. Он ужасно долго возился, отыскивая на клавиатуре нужные буквы, пароль вспомнил с седьмого раза, и лишь минут через пять желанная фотография предстала перед нами.
Фотография была в большом разрешении, однако даже при максимальном увеличении очертания лежащих на земле предметов угадывались с трудом.
– Вона, осколки от него, – говорил Гарри, тыча пальцем в экран, – отвалились они… Я, когда подымался, смотрю – что-то блестит на солнце, тут, там. Потом понял, что стеклянные осколки…
Никаких осколков на фотке видно не было.
– Стеклянные? – переспросил я.
– Ну, ясно, стеклянные, какие же еще! – выпалил Гарри и вдруг спохватился: – А-а, Борисыч, я понял… это не стекло, да?.. А что это, а?
– Понятия не имею, Гарри, ты был там, а не я… А вот тут что такое? – спросил я, указывая на пятнышко золотого цвета на проезжей части.
Гарри непонимающе обернулся:
– Это оно и есть. Ты че, Борисыч?..
Тогда я, наконец, различил на фотке золотого цвета металлический предмет, который, по словам Гарри, и есть «оно», и не относящийся к нему мусор, раскиданный по улице: жестяную банку, бумажные пакеты, сигаретную пачку и стакан из-под кофе, вначале принятый мной за искомый предмет. Золотая штуковина с одного конца была округлой формы, так что с большим натягом ее можно было считать верхней частью латунной дверной ручки. На месте предполагаемого сужения ручки штуковина переставала быть золотой и приобретала мутно-серый цвет. Я спросил Гарри, что это, по его мнению.
– Я думал, стекло. Оно блестело, когда я подымался. И осколки, и эта хрень тоже блестела. Может, и железяка, а не стекло…
– На кубик она была похожа или нет?
– Что?
– «Хрень» твоя, – сказал я, барабаня по экрану.
– Откуда я знаю, Борисыч, я висел метров за сорок. Я тебе не орел, хотя на зрение и не жалуюсь.
– А осколки точно от нее?
– Да ясно, от нее… Так это был всего-навсего кубик? – приуныл он.
– Он пробил тебе крыло, Гарри. И шахта в потолке – тоже его работа. Всего-навсего кубик, как ты думаешь?
Гарри приободрился:
– Я понял, Борисыч, ты не можешь сказать, я все понял… Могила, – сказал он, повернувшись к Дженнифер, – Разрешите идти?
– Дуй, Гарри, и спасибо за работу, – сказал я.
Гарри выпятил грудь, отдал честь и испарился, неслышно затворив за собой дверь.
– А ты молодец, – сказал я Дженнифер. – Про коммерческую тайну было круто.
– Вас это тоже касается, – холодно сказала она. Вздохнула, подошла к дыре и тоже принялась ее изучать.
Со стороны это выглядело столь же глупо, как когда вокруг дыры плясал Гарри, хоть Дженнифер и не плясала. Глупо потому, что никто из нас уже ничего не мог поделать ни с дырой, ни с той физикой, которая позволила смехотворному с виду аппарату раздвинуть и уплотнить бетон, превратить стекло в латунь и выбросить его вверх на пару километров. Это все уже в настоящем времени, подумал я, и вдруг захотелось петь. Это мы – сделали такие аппараты, способные узлом завязать пространство, из одного предмета вылепить другой, стекло обратить в латунь, а латунь – в золото. И пусть Гарри кажется, что мы играем в кубики или придумываем новые пушки. Мы нашли философский камень! Одному богу известно, каким станет мир после этого открытия…
Дженнифер говорила про полицию, Верховную Ассамблею, уголовное дело, безответственность ученых. Сама с собой обсуждала, как побыстрее замаскировать шахту, чтобы инспектор-обходчик ее не заметил. И нужно просканировать весь офис на жучки… Она ходила взад-вперед по комнате, махала руками, а под подошвами туфель хрустел порошок. Я улыбался и с любовью глядел на свой искривитель. Сейчас она уйдет, я доправлю и запущу программу, и ничто никуда не вылетит – в тестовой камере окажутся две одинаковые латунные ручки и осколки оставшегося стекла. Я перебил Дженнифер на полуслове:
– Послушай, Дженни, пойми главное: этот белый красавец нас прославит! Стрельбу в потолок я устраню. Важно, что вылетает латунная ручка, вылепленная из стекла, понимаешь? Латунь – из стекла! Это значит, послезавтра мы станем знамениты и богаты! И возместим любой ущерб, хоть бы целиком здание снесли… Но сегодня и завтра аппарат нужно беречь, как зеницу ока…
– Вы думаете, я это хуже вас понимаю? – вставила она.
– …никаких опалянов, никаких аудиторов, никаких засланцев из Ассамблеи!.. Этих «конкурентов» ты имела в виду с утра?
– Нет… Не важно, эти опаснее… Но гарантировать я ничего не могу, так и знайте!
– Гарантий от тебя я не требую, однако постараться…
– Я, между прочим, отлично знаю свои задачи! – перебила она, выстукивая пальцем по столу после каждого слова. – Но только если мне о них вовремя сообщают, а не прячутся под лавку в надежде, что мамка не найдет!.. Артур, ну давай быть взрослыми. Только так мы друг другу поможем, – добавила она рассудительно.
Она встала, давая понять, что разговор окончен. Я тоже встал.
– Дженни, ты совершенно права…
– Не называй меня Дженни, – бросила она мне прямо в лицо. Глаза у нее были электрические. Послышался фруктовый аромат духов. Она развернулась и, вытрясая из своих великолепных волос порошок, прошагала к выходу. «Черт знает что!..» – бормотала она.
24
Reserved for Future Use – зарезервировано для использования в будущем (англ.)
25
Флаг переполнения (англ.)