Как стать автором
Обновить
438.6

Open source *

Открытое программное обеспечение

Сначала показывать
Порог рейтинга

Привет! Сегодня мы хотим представить программу для контрибьюторов Diplodoc — опенсорс-платформы Яндекса для создания документации в формате Docs as Code. Это ваш шанс внести значимый вклад в развитие платформы и получить классные призы за участие.

Мы предлагаем

Мы создали специальную подборку задач, которые вы можете решать, чтобы помочь нам улучшить платформу. Задачи доступны на разных уровнях сложности: easy, medium и hard. Это отличная возможность проявить себя, внести свой вклад в проект и получить заслуженные награды.

Вы получаете

За решение лёгких и средних задач мы подготовили стильный мерч Diplodoc. А за сложные задачи вы вдобавок получите промокод на использование ресурсов Yandex Cloud.

FAQ

Как выбрать задачу?

Вы можете выбрать задачу из нашего списка на странице GitHub и ознакомиться с документацией для контрибьюторов.

Как отправить решение?

Подготовьте PR с вашим решением. Наша команда проверит его. Если в итоге он будет принят, вы получите подарок.

Сколько задачек можно решить?

Сколько угодно, однако приз вы получите только за одно решение.

До какого числа действует программа?

Программа активна до конца января. Мы будем добавлять задачи, так что следите за обновлениями в нашем чате в Telegram!

Не упустите возможность внести свой вклад в будущее Diplodoc!

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Привет, Хабр!

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

Сам я перешёл на Linux ещё во времена, когда актуальной была Windows XP, и с тех пор не касался в домашнем использовании продукции Microsoft. И вот у меня в руках оказался ноутбук, на который необходимо заново поставить и настроить Windows 10.

Первая сложность, с которой я столкнулся,- это собственно создание загрузочной флешки. Когда мы создаём загрузочную флешку для установки дистрибутива Linux, то просто записываем дисковый образ, и готово. С Windows так не получится: всё начинается с того, что потребуется использовать специальное ПО, к примеру, WoeUSB.

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

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

Теги:
Всего голосов 12: ↑9 и ↓3+11
Комментарии16

LibreOffice и Linus mode = on

После событий в ядре linux с удалением российских мейнтейнеров мне стало не очень хорошо в связи с предчувствиями, что это коснется всего опенсорца рано или поздно, но я никак не ожидал, что в LibreOffice я увижу первое подтверждение своим опасениям. Итак, Michael Meeks, глава Collabora Productivity, сотрудники которой делают половину вклада в LibreOffice недавно в своем блоге написал такое:

Impressed to read about the expulsion of Russian maintainers from the Linux Kernel by gregkh, with rationale from James. Raising awareness of the origin of critical software used in your supply-chain is important, even if FLOSS - sad as it may be for various blameless individuals.

В вольном переводе от ГуглТранслятинга это будет как-то так:

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

То есть не важно, что это ОпенСорц, важна "безопасность их критичного ПО". А то, что в тот же LibreOffice никакой код без ревью старыми разработчиками не попадает, весь старый и новый код вообще публично доступен всем для обозрения, и риски, о которых вещает Микс вообще-то отсутствуют, об этом он благополучно забыл.

ОпенСорц он не для всех Опен, к сожалению получается так.

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии5

Всем привет! Кто хочет поучиться кодить на Rust присоединившись к Open Source проекту?
Проект rustsn представляет собой инструмент на языке Rust, который выполняет следующие функции:

  • Генерация, компиляция и тестирование кода с использованием моделей машинного обучения (LLMs).

  • Разрешение зависимостей.

  • Предоставление объяснений существующего кода с помощью встраиваний (embeddings).

https://github.com/evgenyigumnov/rustsn

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии4

И для этого не нужен SAP. Кому интересна тема автоматизации производства и управления потребности в материалах на производстве MRP может посмотреть работу MRP системы в реальности.

Прочитав комментарий к статье я понял, что многие разу не видели настоящую работающую MRP систему. Исправляю.

Теги:
Всего голосов 3: ↑2 и ↓1+3
Комментарии0

Подключайтесь к вебинару «Практикум Cloud.ru Evolution: знакомство с облаком».

📅 Когда: 15 октября в 11:00 мск

📍 Где: онлайн

Cloud.ru Evolution — публичное облако, построенное на собственных разработках и свободно распространяемых компонентах, которое отлично подойдет для тестирования и разработки на виртуальных машинах, создания cloud native приложений и безопасной публикации в интернете.

На вебинаре вы узнаете все нюансы облачной платформы Cloud.ru Evolution: в прямом эфире подробно расскажем про сетевые и вспомогательные сервисы, поддержание безопасности и работу с виртуальными машинами. А еще в формате демо покажем, как развернуть сайт на WordPress в облаке.

Программа встречи:

  • обзор основных облачных сервисов Cloud.ru Evolution;

  • обзор облачных сервисов, которые скоро появятся на платформе;

  • как выглядит базовая архитектура для миграции сайта или интернет-магазина в облако;

  • как перенести сайт и стабильно работать в любой период;

  • ответы на вопросы участников.

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

👉 Зарегистрироваться

Оставляйте вопросы по теме в комментариях под этим постом 👇 — спикеры ответят на них в процессе встречи. 

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Ускорение Youtube в Линукс - обновление по состоянию на 22.09.2024 скрипта для простой установки/настройки ПО bol-van/zapret.

Сделал обновление по состоянию на 22.09.2024 скрипта для простой установки/настройки ПО bol-van/zapret из исходников для нормальной работы Youtube в Линукс из моего поста от 10.08.2024, т.к. обновился и сам bol-van/zapret и его актуальные настройки.

Два архива  Скрипты для Ubuntu-based ОС, скрипты для Red-Hat-based ОС. Проверенно на Linux Mint 20.1 "Ulyssa" и "Fedora 40" соответственно. В каждом архиве три скрипта: скрип-установщик, скрипт обновления bol-van/zapret(не изменящий его настройки), и скрипт деинсталятор.

И для первоначальной установки, и для обновления настроек по состоянию на 22.09.2024 запускать именно скрип-установщик. Ставится все в пару кликов. Пользуйтесь и распространяйте. Адаптируйте к другим Линуксам. Конструктивная критика приветствуется.

Теги:
Всего голосов 4: ↑4 и ↓0+7
Комментарии4

Совет о Joomla: использование FileLayout для рендера элементов макета.

Этот механизм используется под капотом Joomla для рендера отображения почти всех элементов интерфейса как фронта, так и админки. Обычно переиспользуемые "запчасти" выносятся в отдельные файлы: кнопки, тулбары, меню, табы и т.д. Для унификации отображения каждого элемента нужны некие данные данные и/или параметры: например, заголовок таба, надпись или onclick для кнопки, CSS класс и т.д.

<?php
use Joomla\CMS\Layout\FileLayout;

/**
 * Method to instantiate the file-based layout.
 *
 * @param   string  $layoutId  Dot separated путь к файлу, включая имя файла относительно base path
 * @param   string  $basePath  Основной путь к папке с макетами
 * @param   mixed   $options   Данные, нужные для работы макета. Registry или массив
 *
 * @since   3.0
 */
 $layout = new FileLayout('layout_file_name', JPATH_SITE . '/path/to/your/layout', ['buttonName' => 'Button name']);
// Рендерим наш макет
echo $layout->render();

Внутрь файла (/path/to/your/layout/layout_file_name.php в нашем случае) передаются данные и параметры для рендера. Получить эти данные можно следующим образом.

<?php
// Это содержимое файла /path/to/your/layout/layout_file_name.php
// Переданные данные приходят в формате Registry. Можно указать значение по умолчанию
$buttonName = $this->options->get('buttonName', 'Default name if value is empty');
?>
<button class="btn btn-primary"><?php echo $buttonName;?></button>

Теги:
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

Linux-разработчик стал жертвой сваттинга после критики Rust на стриме

Гражданин Германии Rene Rebé, участвующий в разработке Linux, получил отряд полиции к себе домой из-за анонимного электронного письма, отосланного неким недробожелателем в местный полицейский участок. Полицейские осмотрели дом, надели на Rene наручники и около часа продержали в участке.

Незадолго до этого Rene во время стрима подверг критике язык программирования Rust и решение включить его в ядро Linux. В комментариях на Reddit и Youtube многие считают, что именно это послужило причиной анонимного ложного доноса на разработчика.

Сам Rene в описании к видеоролику иронично предположил, что это благодарность за 25 лет его работы в опенсорсе.

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

Теги:
Всего голосов 6: ↑6 и ↓0+10
Комментарии8

Вышел WT JoomShopping Bitrix24 PRO v.3.2.0, плагин интеграции с CRM Битрикс 24

Бесплатный плагин отправки заказов из интернет-магазина JoomShopping в CRM Битрикс24. Плагин передает лиды, сделки, создаёт контакты и повторные сделки. Обеспечивает смену статуса заказа в JoomShopping при изменении стадии сделки в Битрикс 24 (двухсторонняя интеграция).Плагин поддерживает работу с плагином обратной связи Radical Form, что позволяет его использовать не только вместе с JoomShopping.

 v.3.2.0 Что нового?

Прикрепление ссылок на файлы Radical Form. Если в ваших формах обратной связи на Radical Form используется поле для загрузки файлов, то теперь эти ссылки прикрепляются к комментарию лида. Для этого необходима версия Radical Form не ниже 3.2.0.

Настройки для Radical Form. Добавлены настройки данных, включаемых в комментарий к лиду/сделке для Radical Form.

Предобработка данных перед отправкой в Битрикс 24. Добавлена возможность обрабатывать данные непосредственно перед отправкой их в Битрикс 24 в собственных файлах в папке /plugins/system/wt_jshopping_b24_pro/src/Custompreprocess. Для использования этого функционала нужно обладать знаниями PHP и хотя бы минимальными знаниями Joomla API. Вы используете этот функционал на свой страх и риск! Подробнее на странице расширения.

Страница расширения GitHub расширения Joomla Extensions Directory

Теги:
Всего голосов 3: ↑1 и ↓2+1
Комментарии0

Когда встает задача запустить Windows приложениях в Linux, то неизменно на ум приходят с десяток приложений основанных на WINEhq. Однако есть одна разработка, WinApps, которая не идет этим путем и представляет собой попытку творческого переосмысления WSL, но наоборот, т.е. у нас есть виртуальная машина с MS Windows/Docker контейнер с Windows/Podman контейнер с Windows в которые мы устанавливаем необходимый софт, а дальше, мы получаем, через консоль или через ярлыки в системе, доступ посредством протокола RDP через утилиту FreeRDP. Однако удобство, по сравнению, с обычным RDP, заключается в том что каждое такое приложение будет в отдельном окне, словно нативное приложение Linux.

Плюсы метода:

  • OpenSource решение

  • Пользователь может безболезненно запускать привычные Windows приложения как если бы они были частью Linux

Минусы метода:

  • протокол RDP - в котором мне не удалось завести аппаратное ускорение Direct Draw и AGP, работает только Direct3D со всеми вытекающими. Различные манипуляции с реестром виртуальной машины, ее групповых политик и консольными параметрами freerdp ни к чему не привели. Приложения в которых работа Direct Draw и AGP жизненно необходима, например в Adobe Photoshop, Autodesk AutoCAD и т.п., работаю плохо или никак.

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

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии9

Совет по Joomla: атрибут showon в XML-формах Joomla Form

При создании расширений Joomla порой набирается куча полей, которые загромождают экран. Их можно группировать в fieldset, а можно скрывать, если одно поле зависит от значения другого (как на видео). Разработчики используют в XML описаниях полей атрибут showon.Например, мы спрашиваем у пользователя является ли атрибут JoomShopping цветом и если да, то показываем поле для ввода цвета в HEX (как на видео).

Пример использования:

<field type="radio"
       name="is_color"
       label="Атрибут является цветом?"
       class="btn-group btn-group-yesno"
       description="Если да, то указываем код цвета в HEX или CSS-класс"
       default="0">
    <option value="0">JNO</option>
    <option value="1">JYES</option>
</field>
<field type="color"
       name="attr_color_code"
       label="Код цвета в HEX"
       showon="is_color:1"/>

Если поле is_color имеет значение "1", то поле с атрибутом showon="is_color:1" будет видно пользователю. Поддерживается логика И, ИЛИ, НЕ и несколько полей в условии. Работает даже для текстовых полей. Например, если не заполнен пароль для подключения к внешнему сервису - нет смысла показывать все остальные поля.

Почитать: Официальная документация Joomla по атрибуту showon.

Также использовать этот атрибут можно в пользовательских полях Joomla. Во вкладке "Параметры" поля укажите правило следующим образом field + ID:

field36:value1

где 36 - это id поля, от состояния которого зависит видимость данного.

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии2

Ближайшие события

Манипуляция временем транзакции в блокчейне Hyperledger Fabric - уязвимость (теперь официально).
Мне удалось добиться назначения идентификатора CVE (CVE-2024-45244) уязвимости, связанной с манипуляцием времени транзакции (о чём писал на Хабре) в блокчейне с открытым исходным кодом Hyperledger Fabric. Разработчик выпустил исправление, но не счёл это уязвимостью (о чём я узнал в переписке, по моему обращению на HackerOne). В итоге, мне пришлось самостоятельно заниматься процессом назначения CVE (воспользовавшись найденной мной на Хабре статьёй). Между обращением в MITRE и назначением CVE прошло чуть менее 2-х недель. UPD 13.09.2024 разработчик пытался оспорить, что это уязвимость - не вышло.

Согласно результатам голосования на моём докладе на конференции по кибербезопасности OFFZONE, все участники согласились, что манипуляция временем транзакции является уязвимостью. Исправление сейчас недоступно для стабильных версий (т.е., в ветке 2.4 и 2.5 исправлений нет, а ветка 3.0.0 не является стабильной). В качестве защиты, можно воспользоваться моей open source разработкой.


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

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

Всем привет!

Немного мыслей по AI чатам.

Существует достаточно много open source моделей - LLama от запрещенной Meta, Mistral, DeepSeek, Grok 1 от Twitter. Если говорить про предыдущие, не самые мощные версии моделей - есть Gemma от Google, специализированные модели от OpenAI. Это хорошо, так как дает возможность подключения к разработке моделей команд, не имеющих большого числа GPU. Дообучение моделей (fine tuning) дешевле первичного обучения. Запуск обученной модели - тоже. Плюс open source - это гарантия, что к AI будет доступ даже если конкретный сервис по тем или иным причинам закроется. И Мета выделяется тем, что отдала в open source последнюю тяжелую (большое число параметров) версию модели.

Второй момент: в тестах и в новостях сравниваются модели общего назначения и специализированные. Общего назначения - ChatGPT, Claude, Gemini, Llama, Grok, DeepSeek, Mistral, YandexGPT. Специализированные, на примере разработки - DeepSeek-Coder-V2, Codestral, CodeLlama, Phind, GigaCode. Можно сделать вывод, что модели последнего поколения достаточно мощные, чтобы хорошо справляться со специализированными задачами. Но любую модель можно подтюнить, и тогда она или превзойдет модель общего назначения или будет сравнима с ней требуя меньше железа.

Еще тренд - разделение моделей на легкие и тяжелые. Например, LLama 8b, 70b и 405b, это число параметров в billions. Т.е. большие модели - это дорого в облуживании, при этом во многих случаях применяются для "стрельбы из пушки по воробьям".

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Кто внёс основной вклад в релиз LibreOffice 24.8

Анадысь TDF объявил о релизе LibreOffice 24.8. Вот ссылка на новость на опеннет, мне лень писать то же самое своими словами, тем более там достаточно много добавили всего в этот раз.

Из реально полезных фич, которые зашли лично мне, это:

  • Куча новых функций в Calc - LET, XLOOKUP, XMATCH, FILTER, RANDARRAY, SEQUENCE, SORT, SORTBY и UNIQUE

  • Вставка перекрестных ссылок на объекты в текстовом документе в Writer с использованием перетаскивания объектов из Навигатора в текст. Это для тех, кто пишет объемные тексты, просто мегаудобно.

А поговорить я хотел ещё о такой штуке, как вечный вопрос "кто пишет опенсорц?". Вот диаграмма, где внутренний круг - это сколько разработчиков, а внешний - сколько от них коммитов. Три основных движущих силы проекта - парни из Collabora (26 человек), allotropia (их 13) и сотрудники фонда TDF (этих 7 человек):

Диаграмма вклада в LibreOffice от разработчиков из компаний и волонтеров
Диаграмма вклада в LibreOffice от разработчиков из компаний и волонтеров

Как вам соотношение? Причём, если бы TDF не нанял год назад пару программистов - соотношение было бы ещё более печальное =)

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Совет по Joomla: использование методов плагинов в любом месте Joomla 4 / Joomla 5.

Нередко расширения Joomla в готовом виде состоят из пакета - комплекта плагинов, модулей, библиотек. Расширения из одного пакета могут нуждаться в одном и том же методе. В Joomla 4 и старше новая (хм-м, 2 года уже прошло...) архитектура плагинов позволяет обращаться к методам плагина откуда угодно, что может стать удобным решением задачи.

Обращение к методу "Сделать хорошо"
Обращение к методу "Сделать хорошо"

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

<?php
use Joomla\CMS\Factory;
use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\Plugin\PluginHelper;

// Получим параметры компонента
$component_params = ComponentHelper::getParams('com_mycomponent');
// Получим имя плагина-провайдера
$plugin_name = $component_params->get('data_provider');
// Проверим, а включён ли плагин?
if(PluginHelper::isEnabled('system', $plugin_name))
{
     // Загрузим плагин
     $plugin_provider = Factory::getApplication()->bootPlugin($plugin_name, 'system');
     // Получим данные из него напрямую
     $external_data = $plugin_provider->getExternalData($any_id);
}

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии1

Подборка вебинаров августа по ML 🗓

📌 22 августа, 16:00 

Как сократить расходы на инференс LLM? Кейс компании «Актион»

Вместе с коллегами из Compressa и «Актион» обсудим способы оптимизации open-source LLM-моделей на своем сервере и преимущества использования облака для инференса LLM. Сравним производительность LLM и стоимость токенов до и после оптимизации. Разберем кейс «Актион» и Compressa по обработке 100 000+ генераций в день всего на одной GPU-карте и узнаем, как удалось сократить расходы на инференс LLM.

Присоединиться онлайн →

📌 29 августа, 16:00 

Production ML: как настроить GPU-ноды в кластерах Kubernetes?

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

Присоединиться онлайн →

Теги:
Всего голосов 8: ↑8 и ↓0+13
Комментарии0

Обновление компонента SW JProjects v.2.0.0

Скриншот панели администратора компонента SW JProjects в Joomla 5
Скриншот панели администратора компонента SW JProjects в Joomla 5

Компонент позволяет создать свой собственный каталог расширений Joomla (и не только) и предоставляет возможность скачивания, в том числе с использованием лицензионных ключей. Для разработчиков Joomla есть возможность для каждого расширения указать сервер обновлений, changelog url для отображения изменений прямо в панелях администратора сайтов ваших клиентов.

v.2.0.0. Что нового?

Joomla 5 ready. Сделан большой рефакторинг. Компонент переписан на архитектуру расширений Joomla 5 и работает без плагина обратной совместимости.

Новый дизайн. Для большинства разделов обновлён дизайн. Вы также можете создать свои собственные макеты и выбрать их в настройках компонента.

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

Плагины для вставки проекта в контент. Добавлено 2 плагина: контент плагин и плагин кнопки редактора. Контент плагин позволяет превращать non-SEF ссылки вида index.php?option=com_swjprojects... в SEF. А также обрабатывает шорт-коды вида {swjprojects project_id=1 tmpl=your_tmpl_name}. Таким образом вы можете вставлять информацию о проектах везде, где работают плагины контента. Плагин кнопки редактора позволяет легко вставлять ссылки или шорт-коды с выбранным макетом.

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

Страница расширения

GitHub расширения

Joomla Extensions Directory

Теги:
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

RU BIM Cluster 2024 | Битва за данные и применение LLM и ChatGPT в строительстве. Перевод с GER

Конференция BIM Cluster BW 2024. Штутгарт, 10.07.2024.

🎫 Автоматический перевод записи оригинальной презентации с немецкого языка: "BIM Culster BW 2024: Der Kampf um Daten in der Bauwirtschaft | Anwendung von LLM und ChatGPT im Bau" -   

 • BIM Culster BW 2024: Der Kampf um Dat...  

📖 Книга DataDrivenConstruction - Навигация в эпоху данных в строительной отрасли:
https://habr.com/ru/articles/801065/

В этой презентации мы рассмотрим историю и развитие BIM-технологий и, в частности, появление новых инструментов, которые вносят кардинальные изменения в то, как строительные и проектировочные компании работают с данными и процессами. Мы обсудим, почему использование открытых данных и SDK для обратного проектирования CAD-форматов (BIM) стало неотъемлемым трендом, что позволяет крупным строительным и инжиниринговым фирмам извлекать данные из проприетарных форматов САПР. Также мы обсудим интеграцию структурированных данных и инструментов с открытым кодом в бизнес-процессы и упрощение этих процессов за счет использования современных технологий LLM и ChatGPT.

Это видео предназначено для всех, кто интересуется будущим строительной и проектировачной индустрии и пониманием того, как открытые данные и передовые технологии вроде LLM и ChatGPT могут революционизировать наши методы работы.

Теги:
Всего голосов 1: ↑1 и ↓0+2
Комментарии0