Cloudflare пишут об утечке BGP-маршрутов крупного венесуэльского провайдера, случившейся в начале января этого года, непосредственно перед известной операцией США. Краткий вывод: утечки маршрутов происходят постоянно (это факт, не поспорить), поэтому единственное, на что эта утечка может косвенно указывать, так это на то, что были проблемы с сетевым оборудованием, точнее – с его настройками (тут тоже не поспорить – глобальные утечки в BGP вполне себе служат сигналами о том, что именно происходит на сетевом оборудовании провайдера, но для интерпретации сигнала – нужно знать схему сети; соответственно, если вы хорошо подготовленный атакующий, то и утечки маршрутов помогают).



Комментировать »

Немного про понимание определения комплексных чисел, и о том, почему “квадратные корни из минус единицы” не должны вызывать никаких проблем и сомнений, сами по себе.

Комплексные числа – это пары действительных чисел (x, y), операции с которыми производятся по следующим правилам:

сумма:

(x1, y1) + (x2, y2) = (x1 + x2, y1 + y2);

произведение (пишем иксы слева):

(x1, y1)*(x2, y2) = (x1*x2 − y1*y2, x1*y2 + x2*y1).

Здесь операции внутри скобок – привычные операции в действительных числах. Но интерпретируются строго пары! Из пар можно аккуратно спуститься в действительные числа, зафиксировав один из элементов пары и забыв про то, что это пара элементов (см. ниже).

Собственно, это всё, что нужно для понимания в историческом контексте. Все остальные современные “надстройки” – именно “надстройки”: они вводятся над только что описанной конструкцией.

Сложение для пар проверяется элементарно. С умножением чуть-чуть сложнее, но, например, сразу получается, что i (мнимая единица) это (0, 1). Проверяем для i*i = i^2:

(0, 1)*(0, 1) = (0*0 − 1*1, 0*1 + 0*1) = (-1, 0)

Выходит, в наших обозначениях, i*i = i^2 = (-1, 0). Поэтому-то можно записывать комплексные числа, заданные парой (x, y), в форме x + y*i. Но это просто способ записи (удобный по ряду причин, которые тут не важны).

Вернувшись к парам в скобках, можно все действительные числа записывать в форме (x, 0), где x – любое действительное число, в “привычном” понимании. Это, опять же, соглашение. Тогда получается, что i^2 = (-1, 0) – это и есть -1 (“минус единица” в действительных). Всё сходится. Но обратите внимание, что запись (0, 1) для i – она не укладывается в форму (x, 0). Потому что i не лежит в действительных числах. Квадрат любого действительного числа всегда неотрицателен, поэтому никаких “корней из минус единицы” там быть не может. А вот в виде пар (x, y), с описанными выше операциями, – пожалуйста, можно записывать.

Проверим нужное свойство квадрата для отрицательного числа -121, будем возводить в квадрат число (0, √121). Здесь 0 – слева, а корень квадратный из 121 (положительного!) – справа. Всё это действительные числа. 121 – положительное действительное, нет никаких противоречий:

(0, √121)*(0, √121) = (0*0 − √121*√121, 0*√121 + 0*√121) = (-121, 0).

Сходится. Тут все задействованные числа – действительные. Но тут нет никаких “отрицательных квадратов” действительного числа. Просто, числа связываются в пары. Переход от действительных чисел к парам (от R к R^2, если хотите) – это очень просто. И как только этот переход охвачен пониманием, тут же перестаёт казаться удивительным широко тиражируемый факт, что i – это, как бы, квадратный корень из минус единицы (на самом деле – нет, не квадратный корень, это лишь некоторое наложение обозначений, вполне типичное, – см. ниже).

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

Что же придумывали для кубических уравнений дель Ферро, Кардано и другие итальянские математики 16 века?

Они придумывали “калькулятор”, позволяющий находить корни уравнений при помощи зафиксированной последовательности некоторых операций. Это называется “решение в радикалах”. И вот оказалось, что одной из новых операций стала обработка выражений вида √-9. Почему это необходимо для процесса решения кубических уравнений – в максимальной общности объяснил Галуа, в 19 веке. Но ещё в веке 16 стало понятно, что для того, чтобы такие операции заработали в новом калькуляторе, нужны пары действительных чисел. Тогда можно найти пару (0, 3), которая, при умножении на себя согласно правилам, описанным выше, даст (-9, 0), а уже это значение можно спустить в действительные числа, получив там -9 (проверьте сами). То есть, квадрат (0, 3) даёт действительное -9. Да, из-за отсутствия современной нотации это не прописывалось прямо, в формулах, а проговаривалось словами и в других терминах. Отсюда и рассуждения про “тонкости арифметики”.

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

А что же с “корнем из минус единицы”?

Оказывается, знак радикала (√) тут нужно рассматривать как часть обозначения. То есть, это не операция извлечения квадратного корня в действительных числах, как, например, в случае трактовки √4 = 2. Радикал и “минус единица” – это обозначение внешнего элемента, квадрат которого равен “минус единице”. Поскольку этот элемент, как число, не может принадлежать к действительным числам, радикал идёт тут вместе с записью “минус единицы”. Не более. Аналогично тому, как √2 можно понимать как обозначение числа, квадрат которого равен рациональному числу 2.

Поэтому-то обозначения √-1 следует избегать. Поэтому нельзя использовать такой вариант обозначения в учебных целях (если, конечно, речь не про объяснение того, почему некорректно так делать). Как только знак радикала перепутывается в понимании с привычным обозначением операции, возникает неприятное противоречие – так как, по правилам операции, получается, что i^2 = √(-1)*√(-1) = √((-1)*(-1)) = √1 = 1, что, очевидно, неверно. В общепринятых обозначениях избежать этого можно так: мы обозначаем i как i, а свойства вводим так: i^2 = -1. А в схеме с парами значений – просто пишем (0, 1), и никаких трудностей.

(Продолжение темы.)



Комментировать »

На гистограмме ниже показано количество опубликованных на dxdt.ru записок по годам, с 2006 года, когда начинается архив WordPress на сайте (собственно, это статистика по данным из панели управления WordPress).

Graph: dxdt.ru publications stats

Что тут видно? Вот, видно, что рекордный год – 2008 (аж 480 записок опубликовано, более одной в сутки, в среднем; я даже сам сейчас удивляюсь такому количеству); но зато в 2009 уже очень резкое падение, которое, как я думаю, связано с тем, что в 2009 уже были заметно другие времена, по сравнению с 2008, когда всё ещё сохранялись “старые времена”, да и публиковать я на dxdt.ru в 2009 стал только что-то совсем “дельное”, с какими-то подробностями. Кстати, есть немало записок, уже связанных с историей Сети: например, вот из 2009 года про запуск DNS-резолвера Google. Поскольку с Интернетом я столкнулся сильно раньше 2006 года (лет на 15-16 раньше – ещё и веба-то не было), то, конечно, немного жаль, что записок с тех старых времён тут нету. Ну да ладно. (Разные авторские сайты, с регулярными публикациями, я вёл тоже задолго до dxdt.ru, даже выигрывал конкурсы – но это другая история, а dxdt.ru пока что остался самым долгоиграющим, несмотря на всякие глобальные изменения.)

Совсем мало записок на dxdt.ru выходило в период с 2017 по 2021 год, буквально – едва набирается по паре в месяц (да, я в эти годы продолжал что-то писать в Facebook – не уверен, что это было хорошей идеей). Но вот уже в 2023 году – резкий рост (вполне возможно, что сыграл эффект “минус Facebook”, но не только это). И пока что сохраняется темп с заметным количеством записок ежегодно.

Продолжаем наблюдение.



Комментарии (1) »

Пишут, что на такое мероприятие, как инаугурация мэра Нью-Йорка (США), запрещено приносить Flipper Zero и Raspberry Pi. Да. Прямо так и указано в списке запрещённых предметов, наряду с большими сумками, домашними животными (уровня pet, про буйволов ничего не сказано), велосипедами, креслами, битами и другими объектами, которые, прямо скажем, чуть более часто встречаются, чем Raspberry Pi и Flipper Zero. Вместе с тем, Arduino, получается, можно проносить. Уже проще.

Самое забавное, что смартфоны и ноутбуки – не запрещены. Сравните, как говорится, возможности Flipper Zero с возможностями ноутбука, к которому подключен набор решений на ESP32 и, предположим, HackRF (все разрешены).



Комментировать »

Год 2026, новый

Число 2026 – полупростое: 2026 = 2 * 1013. А в 1013 году, летом, викинги, под предводительством Свена Вилобородого (Sven Tveskägg, Sweyn Forkbeard), очередной раз атаковали Англию, а именно – Лондон. Но, так как Лондон сперва от викингов отбился, они разграбили много поселений вокруг: в Уэссексе и Нортумбрии, например. Однако, как сообщают летописи и прочие источники, уже зимой того же 1013 года Свен сманеврировал так удачно, что установил контроль над Денло (Danelaw) и был незамедлительно объявлен королём Англии в Лондоне. Ненадолго, впрочем.

С 2006 года, то есть, за 20 лет до 2026, начинается архив записок в той версии dxdt.ru, которую вы читаете сейчас. Сам сайт – на пару лет старше.

В общем, посмотрим, что там в следующем году.

Подборку записок за 2025 год я опубликовал отдельно.

С наступающим Новым годом! Спасибо, что читаете.



Комментарии (2) »

Кстати, попался тут неплохой пример странностей современного “Хабра”, связанных с ИИ/LLM – статья под названием “Царский путь к пониманию комплексных чисел” (не ясно, есть ли тут аллюзия на известную максиму про отсутствие “царских путей” в математике). Текст, судя по всему, – а также, судя по комментариям автора статьи, – сгенерирован при помощи нескольких LLM, но потом поправлен и скомпилирован автором. (Такое сейчас прямо поощряется.) Теми же LLM сгенерированы картинки-иллюстрации в статье.

В статье полностью сохранена характерная для LLM-генераторов подача в стиле “успешный успех”. А “успешный успех” начисто скрывает за ложным пафосом минимальную содержательную часть, если она там и есть – читать это, к сожалению, очень и очень трудно, полезный выход минимален: “Рождение ереси”, “Приглашение к бунту”, “Понимание – не равно – умение решать” и т.д., думаю, заштампованность ясна без дальнейшего перевода.

На схемах к статье утверждается, например, что принятие “догмы”, которая там названа (цитата) “Корней из отрицательных чисел не существует”, приводит к потере “Квантовой механики и теории поля”, а также “Волн и колебаний в физике”. Каким таким образом это возможно? Нет объяснения. При этом, очевидно, что над действительными числами “корней из отрицательных чисел” не существует по определению, что бы там ни рисовали LLM на картинках. (Имеются в виду квадратные корни.) Именно на этом “несуществовании” и вводятся комплексные числа в математике, а не на признании самого “несуществования” “догмой” с последующим отрицанием, то есть, совсем не так, как написано у LLM. Собственно, это неверная трактовка, эквивалентная истории с параллельными прямыми, которые “пересекаются” – то есть, создание фиктивной восторженности, путём полного искажения определений, проводимого через ложное противоречие. И, как говорится, так далее, и тому подобное.

Так что, влияние LLM – очень и очень не хорошее.



Комментировать »

Согласно счётчику панели управления WordPress, на момент выхода данной заметки, в 2025 году на dxdt.ru вышло 239 публикаций. Опять, несколько меньше, чем в прошлом году (в прошлом было 265), но всё ещё не так уж и мало. Сделал традиционную подборку, в которую включил наиболее интересные, на мой авторский взгляд, заметки за 2025 год, с разбиением по условным рубрикам.

История математики

Квадратное уравнение на глиняной табличке
Шумерские цифры и древняя система счисления с плавающей точкой

Рассуждения о технологиях

Реплика: учёт номинала монет при производстве
Секунды и физика их подсчёта
Связность сетей питания и дата-центры
Разные базисы и автономная навигация
Apple и центральные ИИ-агенты

Программирование и компиляторы

Понимание переменных float как записей алгоритмов
Компьютеры, тип float и дистрибутивность умножения

Околоматематическое и окололингвистическое

Греческие монеты и диглоссия
Эмбеддинг с навесом: перегрузка лексических парсеров вложением неявных ссылок
Факторизация языков и утрата словоизменения
Древность текстов как “блокчейн”
Переворот английских глаголов и пьесы Шекспира
CAA-записи и пустой ящик
Fewer, less и переключение фокуса интерпретации

Аппаратура/электроника, космические и “механические” технологии

Обратное синтезирование апертуры антенны РЛС
Навязывание геолокации и сети приёмников
Отслеживание и геолокация чипов GPU
Спутниковые сети и их преимущества
“Умные колонки” и отключение микрофона кнопкой

Криптология и приложения

ML-KEM и возможности бэкдоров без гибридов
Техническое: ML-KEM, постквантовая стойкость и гибридные криптосистемы
Математика бэкдора в Dual EC DRBG
Протокол Диффи-Хеллмана на банках краски
Постквантовые криптосистемы до алгоритма Шора
Элементарные числа в ML-KEM

Концепции информационной безопасности

TLS-сертификаты как токены доступа
Техническое: приложения, аутентификация и отпечатки ключей
Реплика: аутентификация по SSH-ключам и по TLS-сертификатам
Интерпретация количества “опубликованных уязвимостей”
Цифровые рации и утечки ключей по побочным каналам
Техническое: ошибки делегирования в DNS

Неочевидные аспекты системного администрирования и разработки в ИТ

Как DNS работает через TLS: DNS-over-TLS на практике
Техническое: строгая, но избыточная фильтрация email
Имена и адреса в TLS-сертификатах
Логи Certificate Transparency и “таймшардинг”
Техническое: переходим с ECDH на ML-KEM в проекте на Go
Практикум: примеры с dig для DNSSEC и DNS
Техническое: TLS-ALPN Control Validation

Вокруг ИИ/AI

Скрипач не нужен: замещение технологических знаний
ChatGPT и японская монета периода Мэйдзи
Реплика: нехорошие проявления LLM
Транзисторы и “счёт в уме”
Тавтологические формулировки как капчи
AI 2027 и банализация ИИ-прогнозирования
Шумный ИИ
Автоматизация ИИ-агентов и атаки
Агенты ИИ, действующие через скриншоты

Манускрипты, папирусы и прочая палеография

Предложение геометрической алгебры на манускрипте
Площадь круга и Младший Герон из Византии
Древние знаки цитирования “дипле”
Медь в чернилах и точки на полях манускриптов

Онтологические рассуждения

Моделирование физических экспериментов и превосходство квантовых вычислений
Пути самурая и абстракция отсутствия цели
Частицы и точки пространства
Шимпанзе на дереве и вертолёты вокруг



Комментировать »

Решил ознакомиться с режимом Deep Research (“Подробное исследование”) в ChatGPT 5. Запросил провести сравнение строки Илиады в версии папируса P.Mich.Inv.6972 c вульгатой (Vulgate – я на английском запрос написал). “Вульгатой” в гомероведении называют, грубо говоря, “стандартный” текст, например, Илиады. Это общепринятый термин, понятный сразу любому специалисту в данной и в смежных областях.

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

Но ChatGPT начало сравнивать с латинской Библией, которая, конечно, тоже Вульгата, но в гомеровском контексте выглядит не самым подходящим вариантом. Потратился целый “поинт”, соответствующий одной задаче Deep Research. Вот такое вот “исследование” идёт на замену филологам.



Комментировать »

Регулярно приходится слышать и читать, что, якобы, беспилотные автомобили превосходят водителя-человека (профессионала) по возможностям эффективного вождения – потому что, дескать, “они же роботы”. Естественно, в теории, можно сделать эффективный автомат. Настолько эффективный, что он будет точнее и быстрее любого человека. Это много раз доказано на практике. Не приходится сомневаться. Вот только точнее и быстрее этот автомат будет на каких-то конкретных, хорошо формализуемых задачах. А с формализацией задач, которую должны делать люди, есть проблемы.

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

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

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



Комментировать »

Аккаунт на “Хабре” у меня с 2009 года. Однако до 2025 года я этим аккаунтом, фактически, не пользовался и ничего не публиковал (за исключением пары коротких комментариев, да и те – в 2020 и 2023 годах). В 2025 году, поскольку я постоянно вижу и слышу, как на “Хабр” ссылаются не только студенты профильных специальностей, но и даже коллеги, давно работающие в области ИТ, я решил попробовать посмотреть на этот ресурс с практической точки зрения. И вот в 2025 году я опубликовал там 18 статей (должно бы быть 19, но, видимо, не в этот раз), 11 “постов” (другой формат), три новости (третий формат) и около 110 комментариев (ну, на странице профиля сейчас написано, что 110, однако это количество незначительно меняется даже тогда, когда я новых комментариев не пишу: причина мне не ясна, возможно, какие-то статьи, где есть мой комментарий, снимают с публикации). В общем, теперь нельзя сказать, что я не изучил использование “Хабра” на практике, поэтому поделюсь впечатлениями.

1.

Я написал статьи по разным темам, но смысл написания статей на “Хабр” так и остался для меня тёмен: какого-то заметного трафика на эти статьи не приходит; видимо, они не интересны для аудитории (что, впрочем, не стало для меня сюрпризом).

Поскольку я постоянно сталкиваюсь с упоминаниями “Хабра” (см. выше), ресурс этот, всё же, популярный. Однако тематика, получается, с моими представлениями и моими текстами пересекается крайне мало (что, впрочем, тоже не удивительно). Кстати, счётчики просмотров на “Хабре” довольно странные: показатели в статье и на странице внутренней статистики существенно отличаются (про это там внутри прямо написано, на специальном баннере, а различные показатели объясняют тем, что “разные методы”, что бы это ни значило). Счётчик в самой статье, как я понял, нужно делить примерно на 10, чтобы получить количество прочтений.

2.

Складывается впечатление, что основной объём контента сейчас там дают три пересекающихся направления: “переводы”, “корпоративные блоги” и “ИИ – силами и при помощи”. “Переводы” – это переводы англоязычных (в подавляющем большинстве случаев) статей из разных “иностранных” источников, и так доступных в Сети. Для меня – это странно. Наверное, такое явление полезно. Однако, почему не читать первоисточник – лично мне не очень понятно. Скорее всего, ИТ-аудитории “Хабра” на русском читать сильно проще; однако, не забывайте, это создаёт вторичность и подчёркивает вторичность, а в переводах встречаются ошибки, иногда – весьма досадные.

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

А вот явление “ИИ” – заслуживает отдельного обсуждения, см. следующий пункт.

3.

Существенная часть контента современного “Хабра” – это сгенерированные ИИ/LLM тексты и картинки. Либо сгенерированные непосредственно LLM, либо сгенерированные при помощи LLM.

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

Но, среди ИИ-эффектов, не это самое неприятное: самое неприятное – что ресурс буквально залит сопутствующими статьями и новостями “про и вокруг ИИ” (“новая LLM”, “101% кода уже пишет ИИ”, “сотрудник компании по продвижению ИИ-хайпа сказал, что они продвигают ИИ при помощи ИИ через ИИ” и т.д.). Публикации как бы сделаны под копирку, но затапливают ленту.

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

4.

На “Хабре” более или менее понятный текстовый редактор для размещения статей. Но не очень понятно, как нужно выбирать “тип аудитории” (что бы это ни значило) и ключевые слова. С хабами – вроде, понятно.

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

5.

Отдельно меня разочаровало то, что на “Хабре” теперь начали непосредственно в код разметки пользовательской статьи подмешивать рекламу ИИ-агентов от того же “Яндекса”.

Вот. В целом – ничего особенного. Посмотрим, как станет дальше.



Комментарии (3) »

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

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



Комментировать »