- -
- 100%
- +
— Это у вас уже не бухгалтерия, — заметила Люба. — Это… это… алгоритмы.
— Алгоритмы, — согласился он. — Но если мы их будем называть «формулы», никто не обидится. В документации напишем: «режим табличных формул с адресацией ячеек». А внутри у нас получится… — он чуть улыбнулся. — Нечто, очень похожее на язык программирования.
Люба сняла очки, протёрла платочком, снова надела.
— Я, может, девочка, — медленно сказала она, — но не настолько. Вы хотите, чтобы наш прибор… умел выполнять произвольные последовательности команд?
— Не произвольные, — возразил Алексей. — В пределах ТЗ. Сложение, вычитание, умножение, деление, запись в ячейку, чтение из ячейки. Всё как положено. Просто мы выдадим пользователю чуть больше свободы комбинировать это. Там, где сейчас у Фролова жёстко прописано «сначала сложить, потом умножить», мы дадим возможность сказать: «если в этой ячейке ноль, то прыгни в начало». А на бумаге это всё равно будет «табличная формула» — условная.
Люба уставилась на схему, потом на него:
— «Прыгни в начало» — это уже ветвление.
— Слово-то какое страшное, — вздохнул Алексей. — Ветвление. Напишем «перескок по условию». Или «выбор режима расчёта». Главное — чтобы органы формально были довольны.
Она долго молчала. В тишине было слышно, как в коридоре кто-то прокатил ведро и чихнул — тётя Зоя, наверное, добиралась до дальних кабинетов.
— А вам не страшно? — спросила Люба наконец. — Вы пришли месяц назад, сразу вам дали этот БВП-1… вы тут уже какие-то шины, магистрали, ветвления. Если наверху спросят, кто это предложил — Михалыч на кого покажет? На вас.
«Если бы ты знала, сколько раз на меня уже показывали, — подумал он. — В разных годах, в разных конторах».
Вслух сказал другое:
— Мне страшно, когда получается совсем бесполезная вещь. Бухгалтерский калькулятор, которых через пять лет навыпускают вагон. А нам останутся только дырявые стулья и списанные ТЗ. — Он постучал костяшками по кульману. — Если мы можем сделать прибор, который проживёт дольше, чем очередной план пятилетки, грех этим не воспользоваться.
Люба криво усмехнулась:
— Вы говорите, как будто собираетесь жить дольше, чем план.
«Хотелось бы», — мелькнуло у него.
Он вернулся к схеме.
— Смотрите, — сказал он. — Вот тут, сбоку от магистрали, я рисую ещё один прямоугольник. — Он обозначил его как «Порты ввода/вывода». — Это, с точки зрения ТЗ, всего лишь «блок сопряжения с внешними устройствами для испытаний и наладки». Мы честно напишем так в пояснительной записке. Но если к нему припаять, скажем, разъём под телевизор…
— ВКУ, — машинально поправила Люба.
— Под ВКУ, — согласился Алексей. — То мы сможем в каком-то «расширенном режиме табличных формул» выводить не только цифры на индикаторы, но и, скажем, строчки текста на экран. Это будет очень удобно для учёбы. Для домов пионеров, для школ. Это же чистое благо, верно?
Люба представила телевизор в лаборатории, подключённый к их тяжёлому ящику, и не смогла не улыбнуться.
— Романтик, — сказала она. — У нас ВКУ сами по себе дефицит. Вы сначала микросхемы на память выбейте.
— Про память я как раз сейчас думаю, — отозвался он.
Карандаш зашуршал по кальке. Он схематически нарисовал «банки» памяти — сначала две, потом рядом оставил пустые прямоугольники, обвёл пунктиром.
— Что это? — тут же спросила Люба.
— Это места под дополнительные микросхемы, — сказал Алексей. — Сейчас мы ставим, допустим, четыре штуки — ну, что нам дадут. А здесь оставляем площадки под ещё столько же. Разводим дорожки. В нормативной документации это будет «резерв на случай модификации изделия».
Люба посмотрела на него так, будто он предложил в прибор встроить маленький радиоприёмник «Океан» и слушать на нём «Голос Америки».
— Вы понимаете, что если где-нибудь в снабжении узнают про «площадки под дополнительные микросхемы», нас заставят их сразу забить? — сказала она. — Иначе скажут, что мы скрываем комплектующие.
— Поэтому в спецификации они не будут отдельной строкой, — спокойно ответил Алексей. — Будут входить в ту же плату. «Плата памяти, единица — две штуки». Сколько микросхем реально поставим — другой вопрос. Главное, чтобы дорожки и отверстия были.
Он чуть-чуть замолчал, и в это мгновение память, как назло, подкинула ещё один кусок юности.
Коммунальная кухня. На столе — разобранный БК-0010, вывернутый наружу, как ракушка. Рядом — пучок разноцветных проводов, впаянных прямо в ножки процессора. Паяльник, воткнутый в вилку через раскоряченный тройник. На стене — трещина, под ней — табуретка с обугленным сиденьем: прошлый раз неудачно уронил туда припой.
Тогда, в девяносто каком-то, он пытался расширить память БК до фантастических по тем временам ста двадцати восьми килобайт. Заводом такое не предусматривалось. Пришлось отрывать дорожки, подпаивать отдельную «надстройку», натягивать перемычки. Каждый раз, когда кто-то задевал ногой корпус, вся эта конструкция начинала жить своей жизнью.
Он очень хорошо помнил, как стоял ночью на кухне, смотрел на очередной зависший зелёный экран и думал: «Кто вас учил так проектировать, ребята?»
Теперь судьба любезно высунула ему язык: «Теперь тебя учат, Алексей Николаевич. На здоровье».
— Я просто не хочу, чтобы через десять лет какой-нибудь школьник в коммуналке дёргал провода прямо из ножек микросхем, — тихо сказал он.
— Что? — не расслышала Люба.
— Ничего, — отмахнулся он. — Профессиональная деформация. Продолжим.
Он обвёл пунктиром места под дополнительные банки памяти, рядом мелко подписал: «резерв».
Люба какое-то время молча смотрела, потом медленно кивнула:
— Если это всё аккуратно нарисовать и правильно подписать… Может, пройдёт. — Она прищурилась. — Только с ТЗ всё равно придётся согласовывать. И с Натальей Сергеевной.
— Наталья Сергеевна — наш человек, — уверенно сказал Алексей. — Она любит, когда всё «по ГОСТу» и «на перспективу». Мы ей скажем: «Вот, предусмотрели резерв под модернизацию для будущих серий, чтобы не обновлять документацию каждые два года». Она расплывётся от счастья.
Люба усмехнулась:
— Вы меня пугаете. Такое ощущение, что вы уже не первый раз защищаете ТЗ перед министерством.
«Не первый», — опять пришлось сказать себе мысленно. — «Просто в другой стране, с другими буквами на печати».
— Бывает, — сказал он вслух. — В прошлой жизни приходилось.
— В прошлой? — переспросила она.
— В прошлой работе, — поправился он. — Не обращайте внимания, оговорился.
Она пожала плечами, явно решив, что у нового инженера свои тараканы. Но тараканы, судя по всему, были довольно профессиональными.
— Ладно, — сказала Люба. — Допустим, с памятью я ещё готова спорить. А что насчёт ваших… как вы там говорили… «языков программирования»?
— Я говорю про удобный режим набора формул, — невозмутимо ответил Алексей. — Смотрите.
Он подвинул к себе другой лист, начертил маленький прямоугольник, разделённый на квадратики.
— Вот это — таблица. Каждая клеточка — ячейка. У каждой — свой адрес. Допустим, А-один, А-два, В-один… — Он поймал её взгляд. — Ладно, не будем писать буквы. Просто номера: 01, 02, 03…
— Это я понимаю, — кивнула Люба. — У нас в плановых отделах любят такие таблички.
— Отлично. Значит, каждая ячейка может содержать либо число, либо «формулу». Формула — это последовательность операций, которые наш прибор и так умеет: сложить две ячейки, записать результат в третью, умножить, поделить… Всё по ТЗ. Мы просто позволяем в формуле ссылаться на другие ячейки. Получается цепочка. Если дать пользователю возможность менять эту цепочку, он сможет решать разные задачи.
Люба нахмурилась:
— Но тогда… — она поискала слова. — Тогда он может сделать что-нибудь совсем другое, не предусмотренное инструкцией. Вы же именно этого хотите?
— Я хочу, чтобы он мог решать свои задачи, а не только те, что мы за него придумали, — сказал Алексей. — Но на бумаге у нас всё равно будут «формулы для расчёта заработной платы», «формулы для расчёта норм расхода материалов». Никто не запретит ему вместо зарплаты посчитать, сколько литров бензина он сэкономит, если будет реже ездить. Это не преступление.
— Пока, — мрачно добавила Люба.
Он рассмеялся:
— Если за это начнут сажать, нам уже никакой прибор не поможет.
Она тоже улыбнулась, хоть и сдержанно.
— Хорошо, — сказала Люба. — Допустим, я с вами где-то на шестьдесят процентов согласна. — Она подняла на него глаза. — Но как вы это всё собираетесь назвать? В документации. Если вы принесёте на утверждение схему с блоком «магистраль», блоком «память программ» и блоком «порты ввода-вывода», Седых нам всё это вернёт, не читая.
Алексей помолчал, потом взял у неё ТЗ, пролистал, остановился на последних страницах, где начинались разделы про «требования к надёжности и обслуживанию».
— Смотрите, — сказал он. — «Предусмотреть возможность модернизации изделия без изменения его габаритных размеров и без снижения надёжности». Это раз. — Перевернул страницу. — «Обеспечить возможность проверки основных узлов в условиях эксплуатационной базы». Это два.
Он поднял глаза:
— Мы оформим магистраль как «внутреннюю систему соединений, обеспечивающую модульное построение». Память программ — как «блок хранения табличных формул». Порты ввода-вывода — как «контрольные точки для подключения контрольно-измерительной аппаратуры и внешних устройств в режимах наладки». Всё.
Люба медленно кивала, по мере того как он говорил.
— То есть… — подытожила она. — Снаружи у нас — «табличный вычислитель». В документации — «блок хранения табличных формул» и «контрольные точки для измерительной аппаратуры». А внутри — маленькая ЭВМ.
— Не маленькая, — возразил он. — Нормальная. Просто скромно одетая.
Она неожиданно рассмеялась. Смех у неё оказался тихим, немного сиплым от вечного недосыпа, но очень живым.
— Вы странный человек, Алексей Николаевич, — сказала Люба, вытирая уголки глаз. — То говорите страшные слова вроде «магистраль», то шутите. И всё это — по одному и тому же прибору.
— Инженер без чувства юмора долго не живёт, — серьёзно ответил он. — Его либо техника добьёт, либо начальство.
Они переглянулись — и в этом взгляде Алексей неожиданно поймал то самое, давно знакомое чувство: когда два человека внезапно понимают, что играют за одну команду. Не по приказу, не по штатному расписанию, а потому что им интересно одно и то же.
Он наклонился к схеме, поставил жирную точку в центре магистрали и обвёл вокруг кружок. Получилась фигура — шина с расходящимися от неё блоками, как лучами.
— Это что? — тут же спросила Люба.
— Центр управления, — сказал Алексей. — Здесь будут всё согласовывать: кто когда говорит на шину, чтобы не орали все одновременно. — Он прикинул в уме возможную логику арбитража, но решил не грузить её подробностями. — Назовём… Центральный управляющий блок. ЦУБ.
— У нас что, ещё один аббревиатурный монстр? — хмыкнула Люба. — ЦУБ… как зуб.
— Зато запоминается, — пожал плечами он. — И никаких англицизмов.
В углу кальки он машинально вывел: «Учебно-демонстрационный вычислительный комплекс». Посмотрел, прикусил губу и добавил мелко: «тип 80».
— Восемьдесят? — насторожилась Люба. — Откуда восемьдесят? У нас же семьдесят шестой на дворе.
— Просто номер варианта, — беззаботно ответил Алексей. — БВП-1, вариант проектный… — он сделал вид, что считает. — Пусть будет восьмидесятый. Сороковые уже заняты чем-то, наверное.
Люба прищурилась, но ничего не сказала. Взяла карандаш, аккуратно зачеркнула «тип» и рядом прописала: «внутреннее обозначение, вариант 80».
— Так лучше, — сказала она. — А то ещё подумают, что вы к восьмидесятому году обещаете всё это внедрить.
«Я бы не возражал», — подумал он.
В комнате потемнело. Лампа над кульманом стала единственным источником света, отбрасывая на стены мягкие жёлтые пятна. За окном кто-то хлопнул дверцей машины, послышались шаги — дежурный обходчик проверял, все ли ушли.
Алексей откинулся на спинку стула, разогнул плечи, которые за день превратились в деревянные. Посмотрел на кальку.
На листе была вовсе не красивая, чистая схема для отчёта. Кривоватые линии, подписи наспех, кое-где отпечатки испачканных в чернилах пальцев. Но в этих прямоугольниках и стрелках уже угадывалось нечто другое, нежели «честный калькулятор на К155».
Магистраль, память, блок программ, порты, ЦУБ. Маленькая ЭВМ, маскирующаяся под «табличный вычислитель».
Окно возможностей, подумал он, выглядело вот так — как пятнадцать минут тишины в провинциальном КБ, когда начальство ушло, а ты успеваешь провести одну-единственную линию на кальке чуть иначе, чем от тебя ждут.
— Ну что, — сказала Люба, тоже глядя на лист. — Покажем завтра Михалычу?
— Покажем, — кивнул Алексей. — И Наталье Сергеевне надо будет занести. Пусть подумает, как это оформить, чтобы ни один ГОСТ не пострадал.
— А если не пропустят? — спросила она уже в дверях, надевая лёгкое пальто.
Он пожал плечами:
— Тогда рисуем ещё раз. Пока бумага не кончится.
Она усмехнулась:
— Бумага у нас — вечная проблема. Но ради такого… — Люба посмотрела на кальку ещё раз. — Ради такого можно и в буфете экономить на пирожках.
Когда за ней закрылась дверь, Алексей ещё немного посидел один. Радио «Маяк» уже замолчало, где-то вдали потрескивал трансформатор подстанции. Институт засыпал.
Он аккуратно снял кальку с кульмана, переложил на твёрдую подложку, сверху положил чистый лист.
«Ладно, — подумал он. — Домашний компьютер для СССР — это, конечно, громко. Пусть пока будет табличная ЭВМ для бухгалтерий и школ. Главное, чтобы внутри ей не было стыдно через десять лет смотреть людям в глаза».
И впервые за многие дни он поймал себя на том, что ему не просто «надо выполнить ТЗ к сроку», а по-настоящему интересно дожить до того момента, когда этот коробок окажется на чьём-то столе.
Глава 5. В машинном зале
Утром он пожалел, что вчера был таким оптимистом.
Проснувшись, Алексей первым делом понял две вещи: во-первых, подушка в общежитии инженеров за ночь явно стала жёстче, чем была, а во-вторых, голова набита не мыслями, а тяжёлым ватным комком.
Вчера вечером идея казалась простой: нарисовать шину, блоки, ЦУБ, предусмотреть запас по памяти — и дальше всё само сложится. Утром к этой простоте добавились слова «расчёт надёжности», «согласование с ТЗ» и «куда вы на К-сто-пятьдесят-пятых столько навешаете».
Он всё равно поднялся, умылся в ледяной воде общей умывальни, выпил в столовой жидковатый кофе-«по-турецки» из алюминиевой кружки и к девяти уже сидел в КБ-3, разложив на столе вчерашнюю кальку.
* * *
Утро прошло проще, чем он ожидал.
Михалыч, рассмотрев его эскиз, какое-то время молча шевелил губами, водил пальцем по магистрали, по резервным площадкам под память, по аккуратно подписанному «блоку хранения табличных формул».
— Кхм, — наконец выдал он. — Многовато умного. Но… — он поискал слова. — По крайней мере, понятно, за что ругать. — И, к удивлению Алексея, не устроил разнос, а только ткнул пару раз пальцем: «здесь подпиши по ГОСТу», «тут не «порты», а «колодка сопряжения».
Наталья Сергеевна пролистала ТЗ, стерильно-чистыми пальцами поправила строчки.
— «Модульное построение» мне нравится, — сказала она. — «Возможность модернизации без изменения габаритов» — это вообще золото. Остальное будем формулировками прикрывать. Только в пояснительной записке слово «магистраль» не писать. Напишем «внутренние соединения».
— Согласен, — сказал Алексей. — Внутренние соединения так внутренние.
Когда дверь за ней закрылась, он аккуратно свернул кальку в тубус и вдруг понял, что следующего шага не избежать.
Рисунок — это хорошо. Но если он действительно хочет, чтобы этот «табличный вычислитель» вёл себя как маленькая ЭВМ, нужно понимать, какая у него получится внутренняя «жизнь»: как будут ходить команды, сколько циклов займёт операция, где всё развалится при первом сбое.
В 2026-м он бы просто открыл симулятор, написал за вечер на каком-нибудь SystemVerilog модель и погнал тесты.
В 1976-м для этого был один способ: загнать свою будущую ЭВМ внутрь большой, по-настоящему взрослой.
— Значит, в машинный зал, — сказал он себе.
* * *
Корпус 12Б стоял чуть в стороне от главного, с бетонной пристройкой, похожей на холодильную камеру. Собственно, так оно и было: для машинного зала нужен был свой климат — кондиционеры, фильтры, отдельная вентиляция.
Дорога туда шла мимо котельной, через пятачок с разбитыми плитами и вечной лужей, над которой вились комары. Вдалеке, над крышей цеха, лениво вращался ржавый кран.
Алексей шёл, чувствуя под ногами знакомый хруст гравия и одновременно — странное дежавю. Сколько раз в жизни он уже ходил в «машзалы» — только назывались они по-разному: то «серверная», то «комната с кластером», то «стойки N-ого проекта». Везде одинаковый гул, холодный воздух, отдельная каста людей, которые «за железо отвечают» и смотрят на остальных, как на потенциальных вредителей.
Здесь касту называли просто: оператор.
Перед входом в 12Б висела табличка с выцветшими буквами: «Зал ЕС ЭВМ. Посторонним вход строго воспрещён». Под ней — лист ватмана с таблицей: дата, время, «организация/заказчик», «тип задания», «ответственный». Тонкой линейкой были расчерчены квадратики, в квадратиках — аккуратные записи чернилами. Половину строки занимала следующая неделя.
В графе «ночь» везде значилось что-то вроде: «Плановый расчёт №…», «Прогон программы оптимизации…», «Учёт фондов».
Алексей посмотрел на это расписание и почувствовал, как внутри него шевельнулась знакомая лёгкая злость: на любой машине, в любой стране, в любое десятилетие вычислительное время всегда расписано заранее и всегда «кому-то важнее».
Он открыл дверь.
Изнутри пахнуло холодом и озоном. В просторном холле, перед собственно залом, стоял стол с журналом, на стуле — женщина в сером халате с коротко остриженными волосами. На краю стола лежала картонная табличка с фамилией, написанной густыми чернилами: «Тихонова».
— Куда? — без приветствия спросила она.
— К Громову Евгению, — вежливо сказал Алексей. — По вопросу использования времени на машине.
Тихонова на секунду оторвалась от журнала, смерила его взглядом — от пропуска до тубуса в руке.
— Так, — протянула она. — Значит, ещё один. Вы все «по вопросу использования». А по талону?
— По какому талону?
— По талону, — терпеливо, но с очевидным раздражением повторила она. — Заявка из вашего отдела, согласованная у начальства, с подписью, печатью и указанием, сколько вам надо машинного времени. — Она пошевелила стопкой бумаг на столе. — У вас есть талон?
— Печати у меня с собой нет, — честно признался Алексей.
— Тогда разворачивайтесь, товарищ… — Она наклонилась ближе, прочитала: — Морозов. Идите к Седых, оформляйте талон. Очередь на ночь — до конца месяца. На дневное время не надейтесь вообще. Кустарям тут не место.
Слово «кустарям» она произнесла с особым нажимом, как будто вспомнила сразу всех, кто пытался ночью гонять свои «шарады»: от лаборантов до аспирантов с дипломными.
Алексей открыл было рот — попытаться объяснить, что ему нужно всего-то несколько прогонов, что это в интересах всего НИИ, что он собирается проверить архитектуру… и закрыл.
Объяснять человеку на проходной, зачем ему моделировать «блок хранения табличных формул», было примерно так же перспективно, как объяснять налоговой, зачем на опытном стенде шесть разных осциллографов.
— Понял, — сказал он. — Спасибо.
И в этот момент из-за двери в зал появился тот, ради кого он, собственно, сюда и пришёл.
Евгений Громов был узнаваем даже на расстоянии: высокий, вечно небритый, в растянутом в коленях свитере грубой вязки, с сигаретой, зажатой в пальцах. От него слегка пахло озоном машзала, табаком и чем-то ещё — смесью ночных смен и крепкого чая.
— Тихоновна, — сказал он, проходя мимо стола, — если начальство узнает, что вы опять гоняете плановые по ночам, а творческий элемент разворачиваете, вас же сам Седых на руках носить будет.
— Вот когда творческий элемент принесёт талон, тогда и поговорим, — отрезала Тихонова, но голос её стал чуть мягче.
Евгений кинул взгляд на Алексея, остановился, прищурился.
— А, вы же новенький, — сказал он. — БВП-шник. С КБ-3. — Он затушил сигарету в стоящей тут же баночке из-под сгущёнки. — Чего стоим, кого ждём?
— Вот, — отозвалась за него Тихонова. — Пришёл на машину «по вопросу использования», а талона нет. Я его, как положено, отправляю обратно. Очередь видал?
Она ткнула ручкой в висящий на стене лист.
Евгений лениво посмотрел, пожал плечами:
— Видал. Я сам половину этих ночей тут сижу. — Он перевёл взгляд на Алексея. — Что вам, Морозов, от нашей бедной ЕС-ки понадобилось? Вы же вроде по калькуляторам.
— По табличному вычислителю, — автоматически поправил Алексей. — Хочу прогнать на ЕС модель логики. Проверить, как будет вести себя блок управления.
— Модель… — Евгений смаковал слово. — А что, в вашем КБ линейки и мозгов уже не хватает, чтобы суммы на К-сто-пятьдесят-пятой считать? Непорядок.
— Мозгов хватает, — спокойно сказал Алексей. — Времени — не очень. Я хочу заранее понять, как наша… — он на секунду запнулся, — табличная ЭВМ будет ходить по памяти и что с ней станет, если пользователь начнёт творить что-то, чего мы не предусмотрели.
— Пользователь, — передразнил его Евгений. — Слова какие пошли. Ещё скажите «клиент», и Тихоновна вас сама с лестницы выкинет.
— Мне всё равно нужен кто-то, у кого есть доступ к машине, — сказал Алексей. — Мне сказали, что вы пишете программы под ЕС. Вот я и пришёл.
Евгений смотрел на него с чуть насмешливым интересом, как кот на нового мышонка, который вдруг заговорил человеческим голосом.
— А что вы хотите именно делать на машине? — спросил он. — Конкретно. Только без слов «модель логики», «оптимизация» и «инновационный подход». У нас тут народ на этом аллергию заработал.
Алексей поставил тубус на стол, открыл, вытащил аккуратно свёрнутую кальку. Раскатал прямо на краю стола Тихоновой, прижав края ладонями.
— Вот, — сказал он. — Шина. Блок арифметики. Блок хранения «табличных формул». Память данных. Центральный управляющий блок.
Пальцем провёл по тонкой линии магистрали.
— Я хочу написать на ЕС программу, которая будет вести себя так же, как будет вести себя вот этот комплект железа. Та же адресация, те же операции. Прогнать разные сценарии, посмотреть, где у нас всё падает, где упрётся в тупик, где начнутся гонки.
Слово «гонки» он вовремя сменил на «конфликты».
— Скажем так, — продолжил он. — В моём представлении, это маленькая ЭВМ, маскирующаяся под прибор. Мне нужно убедиться, что она в принципе осуществима на той элементной базе, которая у нас есть, и что с ней потом можно будет жить. ЕС мне нужна как… как испытательный стенд.
Евгений наклонился ближе. Лицо его отдало табаком и недосыпом.
— Маленькая ЭВМ, — протянул он. — Маскирующаяся под прибор. — Он постучал костяшками по квадратику с надписью «ЦУБ». — А это у нас что за зверь?
— Центральный управляющий блок, — пояснил Алексей. — Решает, кто когда говорит на шину, кто куда пишет, кто чего читает. По сути… — он чуть не сказал «процессор», — по сути диспетчер.
— М-да, — протянул Евгений. — И всё это вы хотите прогнать на ЕС. Чтобы понять, как будет вести себя… ваш табличный зверёк.
— Именно, — кивнул Алексей. — Я понимаю, что у вас и так очередь. Поэтому — ночью, сколько получится выцарапать. Мне нужен программист, который привык к этой машине и поможет изобразить всё это так, чтобы ОС ЕС не заплакала от ужаса.
Тихонова фыркнула, но промолчала.




