Слишком узкая трасса
Тематический цикл «Мегаполис», №1
Алекс Степанов
Была пятница и восемь вечера, а Илья еще сидел в офисе за несколькими мониторами и отлаживал программный код. Система искусственного интеллекта здорово помогла, поэтому оставалось доделать немного. Но никогда точно не знаешь, сколько времени уйдет, чтобы отловить все ошибки и недочеты в компьютерной программе. Да, «баги» они такие – кажется, вот он – нашел последний, а потом что-то снова вылезает в отладчик программ.
Тем более, когда имеешь дело с большой и сложной кодовой базой типа этой – для управления городскими автомобильными диаметрами. А точнее – квантовым преобразователем для увеличения их пропускной способности – принципиально новым оружием для борьбы с автомобильными пробками, которым так гордилась мэрия.
Будь времени побольше, найти ошибки в программе не являлось бы проблемой. Настоящей проблемой был Макс – менеджер проекта, которому подчинялся Илья, и который ходил по офису и давил на работающих в запарке разработчиков.
Вот он – тут как тут, неизменно с бумажным стаканчиком кофе. Илья услышал за собой его голос:
-Ну что, парни, как наш релиз – финал близок? Нам нужно обновить версию до 20:30. Иначе городской департамент информационных технологий закроет свою лавочку, и мы пролетаем.
Из опыта Илья знал, что в полдевятого никто ничего не закроет. Просто Максу уже давно было пора ехать в загородный коттедж на празднование своего юбилейного дня рождения. Вот он и гнал лошадей… в смысле, своих подчиненных разрабов.
Когда Макс подошел ближе, Илья без эмоций сказал:
-Слушай, Макс, я почти всё проверил. Индикаторы качества зелёные. Только один оранжевый. Дай ещё полчаса на перепроверку.
Макс сделал глоток и вкрадчиво с еле скрываемым раздражением произнес:
-Ты просил «ещё немного» два часа назад. А сейчас опять. Если мы не успеем сегодня обновить систему, то потеряем контракт. Да ещё мэр нам наваляет – поставит в стоп-лист и государственных заказчиков нам больше не найти никогда. И ты прекрасно знаешь, из-за кого был сдвинут срок сдачи проекта…
-Да, мы не успели сделать всю систему сами. Но мы не можем пихать чужие куски кода, не проверив их досконально!
-Во-первых, не мы, а ты… взялся программировать трансформацию. А во-вторых, не чужие, а общие. Это открытый программный код. Он свободен, как воздух! Так делают многие... И этот код уже опробован другими в разных городах мира. Так зачем же было изобретать колесо…
-Скажи про «воздух» менеджеру из департамента и посмотрим, что он сделает с нашим контрактом…
-Нет необходимости. Он и так... догадывается. Впрочем, на что ты намекаешь – что ты хочешь мне сказать?
-Только то, что мы обновимся сегодня, я уверен. Но сам понимаешь, модуль трансформации размеров транспортных средств – критическая вещь. Стоит перепроверить.
-Так… я уже устал от этого нытья. Дай я сам посмотрю, - Макс нагнулся к монитору и стал вчитываться в строки отладчика.
Ещё недавно он тоже был разработчиком в отделе, прежде, чем его подняли на управленческий уровень. Но Илья критически оценивал его способности в программировании. А управленческие – и подавно. Впрочем, как знать… может потому, что тянули наверх «конкурента».
Наконец, Макс просмотрел все сообщения, поставив отметки о прочтении, и сказал:
-Ерунда. Несовершенство интеллектуального ассистента для отладки сложных модулей. Вы, как два сапога пара – мучаете друг друга дотошной фигней. Он водит тебя по кругу, а ты его. Это не ошибки – лишь предупреждения. Можно забить.
Илья, словно в подтверждение только что поставленному ему диагноза, переспросил:
-Ты так считаешь?
-Да, я так считаю! Ты просто тратишь свое и моё время. Загружай код в центр обработки данных.
-И тебя не смущает, что сегодня на календаре тринадцатое?
-Да иди ты со своими приметами… мы же не хакеры из двадцатого века или начала двадцать первого. От таких суеверных разрабов пора избавляться. Всегда найдете повод для сомнений…
-Но ведь это не компьютерная игра или бухгалтерская программа! Это система управления автомобильной трассой.
-Верно заметил... На них бы мы не заработали таких денег.
Макс запрокинул голову и сделал последний глоток. Потом смял пустой стаканчик и бросил его в мусорную корзину. После небольшого промедления сказал, чеканя каждое слово:
-Всё, обновляй версию на сервере и отправляйся пить смузи… или что ты там делаешь по пятницам после работы.
-Ладно, как скажешь, - Илья активировал команды для обновления модуля системы, отвечавшей за уменьшение автомобилей перед шлюзами центральных диаметров и позволявшей таким образом увеличить пропускную способность на порядок. Сейчас – в пятничный час пик, когда все стремились выбраться из города, это было особенно актуально.
Макс ещё стоял рядом, проверяя, что процесс обновления модуля трансформации полностью завершился. Илья повернулся к нему. Видимо, из-за некоторой нерешительности вздохнул, а потом спросил:
-Макс, а зачем мы меняем систему? Старая нормально работает, и в новой нет ничего нового.
-Я скажу тебе так. Когда-то много лет назад, и ты возможно, слышал это от своих родителей, как и я от своих, каждый год в городе меняли тротуарную плитку и бордюры. Многие тогда задавались схожим вопросом. Ответ прост. Так устроен наш город. Только теперь мы меняем программный код.
Макс о чем-то на мгновенье задумался. И словно устремил свой взор внутрь себя. Потом снова вернулся в реальность и сказал:
-Закончим на этом. Закругляйся и до встречи в понедельник, - он отвернулся и пошел в строну своего рабочего места.
Постепенно офис стал пустеть. Кто-то подошел ещё раз на прощание поздравить Макса с днем рождения, а заодно и с новым выпуском системы, которую так ждал город. Макс кратко благодарил, но почти не отвлекался на разговоры от торопливого сбора домой – складывания подарков, отправки сообщений, видимо, о своем скором прибытии на загородное отмечание юбилея, ну и прочих действий, которые все обычно делают перед выходом с работы.
Илья ещё посидел непродолжительное время на своем рабочем месте, то ли отдыхая от напряженной работы, то ли размышляя над услышанным от Макса, то ли ещё почему-то.
* * *
Они почти одновременно вышли на ярус подземной парковки. Каждый сел в свой автомобиль и отправился по своим направлениям. Каждый – за рулем своего БМВ. Только у Макса он был новый, а у Ильи – мягко говоря, не так.
Примерно через десять минут Илья увидел на экране мультимедийной системы сигнал входящего звонка от Макса. Он нажал кнопку приема и сразу услышал возбужденный голос начальника:
-Ты сейчас в диаметре?
-Да, во втором. Еду в центр пить смузи…, - Илья говорил с усмешкой. Но начальник его перебил:
-Скажи, у тебя ничего странного не происходит? Ничего не замечаешь?
-Ничего. Еду спокойно на автопил…
-У тебя машина не растет?
-В каком смысле не растет?
-В прямом, бл…! Размеры не увеличиваются?
Илья бросил взгляд на набегающую разметку дорожного полотна и заметил, что габариты автомобиля уже слегка превышают ширину полосы.
-Да, растет…, - и тоже выругался.
-Значит, не автопилот глючит. Я сейчас в третьем диаметре. Машин тьма. Свернуть – никакой возможности. До окружной ещё пилить и пилить. Если ничего не сделать, то скоро здесь будет каша...
Илья услышал на заднем плане разговора скрежет и лязганье. Потом голос Макса снова наполнил салон:
-Слышал? Я в средней полосе, между автобусом и грузовиком. И впереди всё забито… Да, здорово мы с кодом накосячили.
-Разве мы? Кто требовал грузить на сервер и говорил, что всё ерунда?
В этот момент Илья увидел, что какая-то машина пытается его обогнать, поэтому переключил управление на ручное и резко увеличил скорость. После этого он решил свернуть на ближайшем выезде из тоннеля, но увидев его впереди, понял, что поздно – машина уже могла в него не войти.
Он снова услышал голос Макса:
-Я свяжусь с городским департаментом технологий, скажу им восстановить предыдущую версию. А ты посмотри код, вдруг что-то обнаружишь.
Илья расслышал, как Макс отдаёт указания интеллектуальному автомобильному ассистенту. И потребовал от своего вывести исходный текст программы на проекционный экран.
Хотя его запрос был исполнен почти сразу, в глубине души Илья уже чувствовал, что найти ошибку нереально. Не получилось это сделать в относительно спокойной обстановке офиса – пусть и с назойливым Максом за спиной, не получится и здесь – управляя автомобилем на огромной скорости и в обстановке шума, тряски и мелькания огней.
Но игнорировать просьбу и ничего не делать он тоже не мог. На проекционный экран сыпались бесконечные строчки кода. Илья машинально отдавал какие-то команды ассистенту. Но с каждой секундой всё реже. Весь его разум постепенно ушел в руки и ноги, управляющие автомобилем. Вскоре он замолчал. Он не хотел отлаживать код – он хотел жить. И отладчик программ точно не вёл его к этой цели.
Если была возможность протиснуться между медленным автомобилем и стеной тоннеля, Илья обгонял. Если нет, то сигналил и мигал фарами, призывая другого водителя ускориться. В центре города диаметр размыкался, и Илья надеялся успеть.
Потом он снова услышал голос Макса, удивительно спокойный на этот раз:
-Да, ты был прав.
Илья на автомате спросил:
-В чём?
-Мы делали не компьютерную игру и не бухгалтерскую программу… не стоило подменять свой код чужим. И насчет «чертовой пятницы» тоже... мой день рождения, и это число было раньше счастливым.
Илья хотел сказать что-то ободряющее в ответ, но не мог ничего придумать. Сейчас его занимал скрежет задевающей за тоннель крыши автомобиля. Совсем скоро это обещало перерасти в проблему… Даже в две – ещё это заметно снижало скорость.
Вдруг, Макс восторженно закричал:
-Я понял в чем дело… коэффициент сжатия! В коде не было ошибки, но он написан для больших диаметров! У нас мэр делает кратно уже, ты сам видел какие…
Мгновенья радости Макса сменились его отчаянием:
-Ладно, мне не выбраться… меня уже жмет со всех сторон...
Илья бросил взгляд на экран видеосвязи, но что-то разглядеть было сложно. Там было все вперемешку – лицо Макса, какие-то части кузова автомобиля и мелькание света.
Последнее, что слышал Илья от своего начальника:
-Если успеешь выбраться, то не отказывайся от моего места. У тебя получится лучше. Только никогда не соглашайся просто менять плитку – берись за настоящие дела…
И уже срываясь на полный ужаса и боли крик:
-И передай извинения моим – что опоздал навсегда...
Илья прокричал в ответ:
-Скажи им сам!
Но взглянув на картинку видеосвязи, понял, что уже поздно.
До шлюза оставалось ещё метров сто. Вот оно спасительное окно белого света – рукой подать. Но машина уже почти не ехала.
Когда автомобиль заполнил всю ширину тоннеля и остановился, Илья выдавил ногами лобовое стекло и выполз в тоннель. Какое-то время он шел к выходу наклонившись. Потом мог двигаться, только присев. Когда и это стало невозможным, лег и попытался ползти.
Стенки тоннеля становились всё ближе. Он продолжал ползти, превращая свою одежду в лохмотья и обдирая ладони, локти и колени. Наконец, он замер. Плечи сжимал тоннель. Он смог протиснуть руки вперед и затаил дыхание. Давление спало. Наступила тишина.
* * *
Его вытащили. Оказали первую помощь и усадили где-то в стороне. Так он и сидел. Один. Других пострадавших видно не было.
Но, вдруг, он почувствовал чьё-то присутствие и поднял взгляд. Затем молча встал и некоторое время просто стоял, покачиваясь и рассматривая человека. Потом услышал голос, который ранее не слышал вживую.
Это был голос мэра:
-Вас можно привлечь к ответственности… вы соучастник. Но зачем? Главный виновник известен – и второй нам не нужен. Ещё я думаю, что лучше вас на опустевшее место менеджера проекта не найти. Согласны?
Илья молчал. Мэр продолжил:
-Я выяснил, что вы ответственный человек. А свою смышленость – продемонстрировали нам на практике. Из примерно семи тысяч человек, застрявших в тоннелях, спаслись только вы. Не знаю, как вы догадались… Такие, как вы, нам нужны. Ну что – спрашиваю последний раз, согласны?
Илья немного подумал и утвердительно качнул головой.
-Вот и отлично.
Мэр повернулся и пошел к репортерам.
somesysdev@gmail.com
Тематический цикл «Мегаполис», №1
Алекс Степанов
Была пятница и восемь вечера, а Илья еще сидел в офисе за несколькими мониторами и отлаживал программный код. Система искусственного интеллекта здорово помогла, поэтому оставалось доделать немного. Но никогда точно не знаешь, сколько времени уйдет, чтобы отловить все ошибки и недочеты в компьютерной программе. Да, «баги» они такие – кажется, вот он – нашел последний, а потом что-то снова вылезает в отладчик программ.
Тем более, когда имеешь дело с большой и сложной кодовой базой типа этой – для управления городскими автомобильными диаметрами. А точнее – квантовым преобразователем для увеличения их пропускной способности – принципиально новым оружием для борьбы с автомобильными пробками, которым так гордилась мэрия.
Будь времени побольше, найти ошибки в программе не являлось бы проблемой. Настоящей проблемой был Макс – менеджер проекта, которому подчинялся Илья, и который ходил по офису и давил на работающих в запарке разработчиков.
Вот он – тут как тут, неизменно с бумажным стаканчиком кофе. Илья услышал за собой его голос:
-Ну что, парни, как наш релиз – финал близок? Нам нужно обновить версию до 20:30. Иначе городской департамент информационных технологий закроет свою лавочку, и мы пролетаем.
Из опыта Илья знал, что в полдевятого никто ничего не закроет. Просто Максу уже давно было пора ехать в загородный коттедж на празднование своего юбилейного дня рождения. Вот он и гнал лошадей… в смысле, своих подчиненных разрабов.
Когда Макс подошел ближе, Илья без эмоций сказал:
-Слушай, Макс, я почти всё проверил. Индикаторы качества зелёные. Только один оранжевый. Дай ещё полчаса на перепроверку.
Макс сделал глоток и вкрадчиво с еле скрываемым раздражением произнес:
-Ты просил «ещё немного» два часа назад. А сейчас опять. Если мы не успеем сегодня обновить систему, то потеряем контракт. Да ещё мэр нам наваляет – поставит в стоп-лист и государственных заказчиков нам больше не найти никогда. И ты прекрасно знаешь, из-за кого был сдвинут срок сдачи проекта…
-Да, мы не успели сделать всю систему сами. Но мы не можем пихать чужие куски кода, не проверив их досконально!
-Во-первых, не мы, а ты… взялся программировать трансформацию. А во-вторых, не чужие, а общие. Это открытый программный код. Он свободен, как воздух! Так делают многие... И этот код уже опробован другими в разных городах мира. Так зачем же было изобретать колесо…
-Скажи про «воздух» менеджеру из департамента и посмотрим, что он сделает с нашим контрактом…
-Нет необходимости. Он и так... догадывается. Впрочем, на что ты намекаешь – что ты хочешь мне сказать?
-Только то, что мы обновимся сегодня, я уверен. Но сам понимаешь, модуль трансформации размеров транспортных средств – критическая вещь. Стоит перепроверить.
-Так… я уже устал от этого нытья. Дай я сам посмотрю, - Макс нагнулся к монитору и стал вчитываться в строки отладчика.
Ещё недавно он тоже был разработчиком в отделе, прежде, чем его подняли на управленческий уровень. Но Илья критически оценивал его способности в программировании. А управленческие – и подавно. Впрочем, как знать… может потому, что тянули наверх «конкурента».
Наконец, Макс просмотрел все сообщения, поставив отметки о прочтении, и сказал:
-Ерунда. Несовершенство интеллектуального ассистента для отладки сложных модулей. Вы, как два сапога пара – мучаете друг друга дотошной фигней. Он водит тебя по кругу, а ты его. Это не ошибки – лишь предупреждения. Можно забить.
Илья, словно в подтверждение только что поставленному ему диагноза, переспросил:
-Ты так считаешь?
-Да, я так считаю! Ты просто тратишь свое и моё время. Загружай код в центр обработки данных.
-И тебя не смущает, что сегодня на календаре тринадцатое?
-Да иди ты со своими приметами… мы же не хакеры из двадцатого века или начала двадцать первого. От таких суеверных разрабов пора избавляться. Всегда найдете повод для сомнений…
-Но ведь это не компьютерная игра или бухгалтерская программа! Это система управления автомобильной трассой.
-Верно заметил... На них бы мы не заработали таких денег.
Макс запрокинул голову и сделал последний глоток. Потом смял пустой стаканчик и бросил его в мусорную корзину. После небольшого промедления сказал, чеканя каждое слово:
-Всё, обновляй версию на сервере и отправляйся пить смузи… или что ты там делаешь по пятницам после работы.
-Ладно, как скажешь, - Илья активировал команды для обновления модуля системы, отвечавшей за уменьшение автомобилей перед шлюзами центральных диаметров и позволявшей таким образом увеличить пропускную способность на порядок. Сейчас – в пятничный час пик, когда все стремились выбраться из города, это было особенно актуально.
Макс ещё стоял рядом, проверяя, что процесс обновления модуля трансформации полностью завершился. Илья повернулся к нему. Видимо, из-за некоторой нерешительности вздохнул, а потом спросил:
-Макс, а зачем мы меняем систему? Старая нормально работает, и в новой нет ничего нового.
-Я скажу тебе так. Когда-то много лет назад, и ты возможно, слышал это от своих родителей, как и я от своих, каждый год в городе меняли тротуарную плитку и бордюры. Многие тогда задавались схожим вопросом. Ответ прост. Так устроен наш город. Только теперь мы меняем программный код.
Макс о чем-то на мгновенье задумался. И словно устремил свой взор внутрь себя. Потом снова вернулся в реальность и сказал:
-Закончим на этом. Закругляйся и до встречи в понедельник, - он отвернулся и пошел в строну своего рабочего места.
Постепенно офис стал пустеть. Кто-то подошел ещё раз на прощание поздравить Макса с днем рождения, а заодно и с новым выпуском системы, которую так ждал город. Макс кратко благодарил, но почти не отвлекался на разговоры от торопливого сбора домой – складывания подарков, отправки сообщений, видимо, о своем скором прибытии на загородное отмечание юбилея, ну и прочих действий, которые все обычно делают перед выходом с работы.
Илья ещё посидел непродолжительное время на своем рабочем месте, то ли отдыхая от напряженной работы, то ли размышляя над услышанным от Макса, то ли ещё почему-то.
* * *
Они почти одновременно вышли на ярус подземной парковки. Каждый сел в свой автомобиль и отправился по своим направлениям. Каждый – за рулем своего БМВ. Только у Макса он был новый, а у Ильи – мягко говоря, не так.
Примерно через десять минут Илья увидел на экране мультимедийной системы сигнал входящего звонка от Макса. Он нажал кнопку приема и сразу услышал возбужденный голос начальника:
-Ты сейчас в диаметре?
-Да, во втором. Еду в центр пить смузи…, - Илья говорил с усмешкой. Но начальник его перебил:
-Скажи, у тебя ничего странного не происходит? Ничего не замечаешь?
-Ничего. Еду спокойно на автопил…
-У тебя машина не растет?
-В каком смысле не растет?
-В прямом, бл…! Размеры не увеличиваются?
Илья бросил взгляд на набегающую разметку дорожного полотна и заметил, что габариты автомобиля уже слегка превышают ширину полосы.
-Да, растет…, - и тоже выругался.
-Значит, не автопилот глючит. Я сейчас в третьем диаметре. Машин тьма. Свернуть – никакой возможности. До окружной ещё пилить и пилить. Если ничего не сделать, то скоро здесь будет каша...
Илья услышал на заднем плане разговора скрежет и лязганье. Потом голос Макса снова наполнил салон:
-Слышал? Я в средней полосе, между автобусом и грузовиком. И впереди всё забито… Да, здорово мы с кодом накосячили.
-Разве мы? Кто требовал грузить на сервер и говорил, что всё ерунда?
В этот момент Илья увидел, что какая-то машина пытается его обогнать, поэтому переключил управление на ручное и резко увеличил скорость. После этого он решил свернуть на ближайшем выезде из тоннеля, но увидев его впереди, понял, что поздно – машина уже могла в него не войти.
Он снова услышал голос Макса:
-Я свяжусь с городским департаментом технологий, скажу им восстановить предыдущую версию. А ты посмотри код, вдруг что-то обнаружишь.
Илья расслышал, как Макс отдаёт указания интеллектуальному автомобильному ассистенту. И потребовал от своего вывести исходный текст программы на проекционный экран.
Хотя его запрос был исполнен почти сразу, в глубине души Илья уже чувствовал, что найти ошибку нереально. Не получилось это сделать в относительно спокойной обстановке офиса – пусть и с назойливым Максом за спиной, не получится и здесь – управляя автомобилем на огромной скорости и в обстановке шума, тряски и мелькания огней.
Но игнорировать просьбу и ничего не делать он тоже не мог. На проекционный экран сыпались бесконечные строчки кода. Илья машинально отдавал какие-то команды ассистенту. Но с каждой секундой всё реже. Весь его разум постепенно ушел в руки и ноги, управляющие автомобилем. Вскоре он замолчал. Он не хотел отлаживать код – он хотел жить. И отладчик программ точно не вёл его к этой цели.
Если была возможность протиснуться между медленным автомобилем и стеной тоннеля, Илья обгонял. Если нет, то сигналил и мигал фарами, призывая другого водителя ускориться. В центре города диаметр размыкался, и Илья надеялся успеть.
Потом он снова услышал голос Макса, удивительно спокойный на этот раз:
-Да, ты был прав.
Илья на автомате спросил:
-В чём?
-Мы делали не компьютерную игру и не бухгалтерскую программу… не стоило подменять свой код чужим. И насчет «чертовой пятницы» тоже... мой день рождения, и это число было раньше счастливым.
Илья хотел сказать что-то ободряющее в ответ, но не мог ничего придумать. Сейчас его занимал скрежет задевающей за тоннель крыши автомобиля. Совсем скоро это обещало перерасти в проблему… Даже в две – ещё это заметно снижало скорость.
Вдруг, Макс восторженно закричал:
-Я понял в чем дело… коэффициент сжатия! В коде не было ошибки, но он написан для больших диаметров! У нас мэр делает кратно уже, ты сам видел какие…
Мгновенья радости Макса сменились его отчаянием:
-Ладно, мне не выбраться… меня уже жмет со всех сторон...
Илья бросил взгляд на экран видеосвязи, но что-то разглядеть было сложно. Там было все вперемешку – лицо Макса, какие-то части кузова автомобиля и мелькание света.
Последнее, что слышал Илья от своего начальника:
-Если успеешь выбраться, то не отказывайся от моего места. У тебя получится лучше. Только никогда не соглашайся просто менять плитку – берись за настоящие дела…
И уже срываясь на полный ужаса и боли крик:
-И передай извинения моим – что опоздал навсегда...
Илья прокричал в ответ:
-Скажи им сам!
Но взглянув на картинку видеосвязи, понял, что уже поздно.
До шлюза оставалось ещё метров сто. Вот оно спасительное окно белого света – рукой подать. Но машина уже почти не ехала.
Когда автомобиль заполнил всю ширину тоннеля и остановился, Илья выдавил ногами лобовое стекло и выполз в тоннель. Какое-то время он шел к выходу наклонившись. Потом мог двигаться, только присев. Когда и это стало невозможным, лег и попытался ползти.
Стенки тоннеля становились всё ближе. Он продолжал ползти, превращая свою одежду в лохмотья и обдирая ладони, локти и колени. Наконец, он замер. Плечи сжимал тоннель. Он смог протиснуть руки вперед и затаил дыхание. Давление спало. Наступила тишина.
* * *
Его вытащили. Оказали первую помощь и усадили где-то в стороне. Так он и сидел. Один. Других пострадавших видно не было.
Но, вдруг, он почувствовал чьё-то присутствие и поднял взгляд. Затем молча встал и некоторое время просто стоял, покачиваясь и рассматривая человека. Потом услышал голос, который ранее не слышал вживую.
Это был голос мэра:
-Вас можно привлечь к ответственности… вы соучастник. Но зачем? Главный виновник известен – и второй нам не нужен. Ещё я думаю, что лучше вас на опустевшее место менеджера проекта не найти. Согласны?
Илья молчал. Мэр продолжил:
-Я выяснил, что вы ответственный человек. А свою смышленость – продемонстрировали нам на практике. Из примерно семи тысяч человек, застрявших в тоннелях, спаслись только вы. Не знаю, как вы догадались… Такие, как вы, нам нужны. Ну что – спрашиваю последний раз, согласны?
Илья немного подумал и утвердительно качнул головой.
-Вот и отлично.
Мэр повернулся и пошел к репортерам.
somesysdev@gmail.com
