LINUX.ORG.RU

Избранные сообщения PhysShell

А посоветуйте странных, майндфаковых фильмов ужасов ну или триллеров/мистики

Форум — Talks

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

Сумбурно написал конечно, но вот наподобие фильмов хочется, если знает кто что похожее отпишите пожалуйста в тред

 , , ,

karton1
()

Язык программирования Картарика.

Форум — Development

Решил открыть отдельную ветку на эту тему, так как возникло много вопросов по этой теме в другой ветке. Поэтому обсуждаем здесь.

Язык программирования Картарика или Картарский язык является строго-типизированным объектно-ориентированным языком с обязательной инициализацией переменных с ограниченным сборщиком мусора и запретом кольцевых зависимостей.

Создается на основе русской раскладки клавиатуры. С открытым исходным кодом. Разрабатывается на языке C.

 картарика, ,

zx_90
()

pipewire в место pulseaudio

Форум — General

Привет парни, кто нибудь шупал эту новую диковину и что можете сказать о ней в место пулсе и как истинный гентушник вопрос

Можно ли полностью под корень отказаться от pulseaudio, -pulseaudio, только alsa и pipewire

Есть ли возможность подавить шум микрофона как это реализовано в pulseaudio, а так же перевести его из стерео в моно

Почему используете или не используете его по умолчанию?

 , , , ,

SPRATAY
()

Представлен SteamDeck

Новости — Игры
Представлен SteamDeck
Группа Игры

Корпорация Valve объявила о выпуске новой портативной консоли: SteamDeck.

SteamDeck это контроллер со встроенным компьютером. Обещанное время работы: 2-8 часов.

Процессор:

  • AMD APU
  • CPU: Zen 2 4c/8t, 2.4-3.5GHz (up to 448 GFlops FP32)
  • GPU: 8 RDNA 2 CUs, 1.0-1.6GHz (up to 1.6 TFlops FP32)
  • APU power: 4-15W

ОС: SteamOS 3.0 (Arch-based) с КДЕ, бутлоадер разлочен.

Обещают поддержку всех игр на Стиме без портирования.

Цена: от 400 долларов, в зависимости от модели. Модели отличаются количеством памяти и типом флеш накопителей.

>>> Подробности

 , , , ,

djzielony
()

FOX Desktop (Ловите наркомана!)

Галерея — Скриншоты

Есть такой FOX Toolkit, очень давний кроссплатформенный тулкит на C++, который разрабатывается единственным разработчиком-энтузиастом. Тулкит не заброшен, хотя и не разрабатывается в активном темпе.

С самим тулкитом поставляются:

  • Файловый менеджер PathFinder.
  • Текстовый редактор Adie с простой подсветкой синтаксиса.
  • Инженерный калькулятор FOX Calculator.
  • Скриншотилка shutterbug. Вроде что особенного ждать от скриншотилки, но довольно удобная. Можно, например, с экрана анимацию записывать в gif.
  • И утилита ControlCenter, отвечающая за некоторые базовые настройки тулкита.

Есть еще двухпанельный ФМ XFE на этом тулките. Он укомплектован просмотрщиком изображений и еще одним простым редактором.

Раньше был еще проект fxdesktop — попытка сделать на этом тулките DE. Не знаю, насколько глобальные были планы у автора, но удалось сделать только часть базовых функций экранной панели, и проект был заброшен. Всё это умерло где-то к концу 00-х.

Еще есть fxprocessview — диспетчер процессов в полуработающем состоянии, тоже заброшен.

На самом деле я вспомнил о fxdesktop только потому, что у меня на машине остался неудаленный пакет с ним еще со времен до миграции с 32-битного на 64-битный Арч. (Я без переустановки ОС мигрировал; через принудительную переустановку всех системных пакетов.) Ну и тут я решил упороться, и понеслось…

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

Пока что было сделано:

У ControlCenter исправил цветовую схему, чтобы она точно имитировала цвета Windows. Потом на этом не остановился и запилил все варианты:

  • Redmond 95 (цветовая схема Windows 95, 98)
  • Redmond 2000 (цветовая схема Windows ME, 2000, а также классических стилей XP и 7)
  • Redmond XP (эта цветовая схема соответствует той, какую выбирает XP-ха, когда в ней настроена Luna, а приложение умеет только в классику.)
  • Redmond XP Olive, Redmond XP Silver (аналогично для этих вариантов оформления)
  • Redmond 7 (аналогично — если в семерке настроена Аэро, а приложение умеет только в классику, то семерка ставит такой набор цветов — вот его и имитируем)

Следом добавил цветовые схемы для классических стилей gtk2: Raleigh, Crux, Clearlooks, Industrial, ThinIce. То есть в сами эти стили FOX, разумеется, не умеет. Но при выборе соответствующих цветовых схем он, по крайней мере, использует такие же опорные цвета для окон и текста. Для Adwaita тоже добавил.

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

Кстати говоря, бесполезный факт, но внешний вид элементов управления практически с попиксельной точностью воспроизводит классическую Windows. Так вот по скрину окна (без рамок openbox-а) даже не знаю, можно ли отличить от Винды. Например, стиль Redmond в gtk2 сразу палится, что не винда — он совсем не pixel perfect.

Дальше я поржал с русской локализации XFE с опечатками типа «Измененять» и «Сравнитель файлов» и сел её править. Потом уперся в то, что часть бреда исправить не могу, потому что бред также в английском оригинале. (Разработчик из Франции, возможно, в этом дело.) Тут нужно будет писать письма в апстрим, ладно, это потом…

Ну и наконец я взялся за fxdesktop. Сам код компилируется без проблем спустя 10+ лет, пришлось только кривой configure-скрипт переписать. На скриншоте видно рабочий стол (оранжевый фон без ничего) и панель вверху — это всё, что есть в этой программе. Иконки на рабочем столе программа рисовать не умеет, но умеет меню по ПКМ, где планировалось что-то полезное, но почти ничего нет. На панели слева направо видно:

  • Кнопка вызова меню приложений. Не работает. С современной организацией меню приложений не пашет.
  • Кнопка «Свернуть все окна». На сворачивание работает. На разворачивание обратно ­— нет.
  • 4 кнопки-лаунчера. Вот над лаунчером сейчас работаю. Научил его отображать иконку каталога, если лаунчер ведет на каталог. Научил отображать специальные иконку каталогов, если лаунчер ведет на специальный каталог (HOME, XDG_DESKTOP_DIR, XDG_DOCUMENTS_DIR, XDG_DOWNLOAD_DIR и т.п.). Научил лаунчер распознавать и подставлять соответствующие специальные переменные окружения в путях. Научил примитивной логике загрузки иконок по имени. Пока без полной поддержки тем иконок.
  • Переключатель рабочих столов. Работает.
  • Шестеренка — выпадающее меню со списком открытых окон. Работает.
  • Часы. Работают, никаких настроек формата времени не имеют.
  • Сама панель должна быть гибко конфигурируемой (в плане добавления/удаления виджетов), но это недоделано.

Что еще видно на скриншоте. «FOX Desktop Setup» — это утилита ControlCenter. А «FOX Desktop Settings» — это настройки самого fxdesktop. Надо их какое-то более очевидно переименовать, что ли. Для скриншота открыл калькулятор и PathFinder. Текстовый редактор в композицию на мой монитор уже не влез.

PathFinder вот так по хардкору имитирует иконки то ли от 95-й винды, то ли вообще от 3.11-й. XFE пытается выглядеть чуть современнее и в свежем релизе даже обещали поддержку HiDPI.

Это никакое не DE, разумеется. Но некий смысл в этом сборнике недописанных программ всё же есть. Во-первых, их интересно дописывать. :D Во-вторых, на старом компе это должно летать. Кто-то тут у нас коллекционировал старые пни и всё такое?..

P.S. Дорогой движок форума, да какие я метки сюда поставлю? Тега «fox toolkit» у тебя, к сожалению, нет, а добавить его мне число звезд не даёт. Тега «практическая некромантия» тоже не подвезли.

 , , ,

wandrien
()

Простая и лёгкая реализация UDP/IP для микроконтроллеров

Новости — Hardware and Drivers
Группа Hardware and Drivers

Ориентирована на применение в системах, где микроконтроллер выступает в роли UDP сервера, с которым извне устанавливает «соединение» клиент (да, само по себе UDP соединений не имеет, я знаю):

  • Библиотека полностью событийно-ориентирована.
  • Не надо писать никаких структур состояния приложения.
  • Нет сокетов – только коллбэки на событие прихода пакета.
  • Всего 890 строчек кода.
  • Поддерживается ARP ответ, ICMP ответ, UDP.
  • Имеет ARP таблицу, заполняемую от входящих IP пакетов. При отправке IP пакета, если MAC адрес не найден, то библиотека шлёт IP с широковещательным MAC.

Не поддерживаются:

  • ARP запросы;
  • ICMP запросы;
  • маршрутизация;
  • DHCP;
  • DNS.

>>> Подробности

 , ,

cvs-255
()

Чем паролить флешку?

Форум — Security

Умные учатся на чужих ошибках, дураки на своих, скупой дважды, такие как я…

В общем, как лучше «закрыть флешку» от потери?

 

shTigrits
()

booty2 != booty 2.0

Форум — Talks

мемный заголовок))) ладно, теперь серьёзно. >:|

Я вернулся! И начал писать с нуля вторую версию своего имба-поделия под названием Booty. От слова Boot. Цель у этой штуки всего одна: лёгким движением пальцев рук создавать загрузочные образы операционных систем.

https://github.com/sp00f1ng/booty/tree/booty2 // Это пре-альфа версия, многие планируемые функции ещё не реализованы.

Сборка загрузочного образа состоит из трёх ключевых этапов: сборка ядра, сборка initramfs и сборка iso.

Система внутри — всегда ваша, любая, на выбор. Вы можете любую систему установить в директорию, в chroot, а потом закатать её в ISO всего одной командой booty chroot/, либо целиком весь /dev/sda упихать в загрузочный ISO или initrd, не суть важно. При этом, загружается система на ваш выбор, хоть в голое tmpfs, хоть в SquashFS + Overlay FS. Такая главная идея booty. Всё это уже реализовано в первой версии, но сейчас надо сделать _проще_.

Основные отличия от первой версии:

  • booty >= 2.0 теперь самостоятельно собирает ядро, проводя весь процесс «от» и «до»: скачает, распакует, соберёт, аккуратно положит куда надо.
  • Чёткое разделение на API и пользовательский интерфейс, то есть, каждая вызываемая функция теперь самодостаточна и может быть выполнена независимо от контекста: вы можете использовать интерфейс booty >= 2.0 по-отдельности для личных целей, например, собрать ядро последней версии.
  • Самая главная моя задача сделать booty >= 2.0 настолько юзер-френдли, насколько это в принципе возможно. Чтобы поведение предугадывалось и было логичным. Настолько, что запуск booty без каких-либо параметров всё равно выплюнет вам какой-нибудь загрузочный ISO, я пока только не решил, что в него складывать, но дело тривиальное задать все параметры по-умолчанию.

Например, запуск команды booty linux скачает ядро Linux последней версии, распакует, соберёт и установит во временную директорию.

Другие примеры:

booty linux 5.7.12 — соберёт ядро указанной версии.

booty linux --install-path / — соберёт ядро последней версии и установит прямо в /, так что если вы могли бы доверить свой / моей booty, этим можно пользоваться и вне контекста создания загрузочных образов. По-умолчанию же создаётся /tmp директория для --install-path, куда ядро будет установлено в любом случае.

Можно задать директорию для кэширования файлов, куда будут помещаться исходный код и собранные ядра. То есть, на каждый запуск booty вам не придётся ждать пока ядро скачается, или пока соберётся. Если вы собираете образы однотипных систем, то можете брать ядро из имеющегося кэша.

booty linux --cache /usr/src

Представим ситуацию:

1) Я хочу собрать 2 образа для сервера, и 8 образов для декстопа.

2) Ядро последней версии.

3) Конфиг разный.

booty linux 5.11.11 for-workgroups --config .config1 --cache /usr/src

booty linux 5.11.11 for-workstations --config .config2 --cache /usr/src

Ядра будут собраны ровно по одному разу, а далее, при повторном запуске сборки образов, они уже будут браться из кэша.

Грубо говоря-мягко выражаясь, запустив в цикле while true; do booty linux --cache /usr/src; done ядро будет загружено и собрано ровно один раз, а далее оно помещается в --cache, и при повторном запуске оно будет просто устанавливаться раз за разом во временную /tmp директорию. Так!

А ещё можно сделать принудительный --force-download и --force-rebuild если надо обновить данные в кэше.

А можно вообще не использовать кэш и каждый раз заново качать-собирать всё с нуля. Такое поведение по-умолчанию. Хозяин барин.

Другие команды:

booty linux_via_http версия имя --force-download --install-path путь, в будущем планируется добавить linux_via_git, но пока http и парсинг html-кода bash-скриптами работает стабильно, это не спеху. )))

booty linux_build директория-с-сорцами --config-file конфиг --install-path путь

booty ramdisk --image initrd.img для создания initramfs-образа, используя родные бинарники прямо из вашей системы. Опциональный busybox и другие плюшки будут прикручены уже апосля.

Вообще в этот раз планируется интерфейс делать примерно таким:

booty новая_папка(1)/ новая_папка(2)/ новая_папка(3)/ --profile overlayfs

И эта команда полностью, от и до, подготовит ядро, и упакует указанные директории в SquashFS, и в финале выплюнет загрузочный ISO с системой.

Простой запуск booty новая_папка(1)/ либо с указанием --profile initramfs приведёт к поведению по-умолчанию: упихать всю «новая_папка(1)» в initramfs-образ.

Теперь я планирую использовать профили, которые пользователи смогут создавать сами и расширять имеющиеся возможности booty.

Но на этом пока всё. Официальная документация — потом! Надо ещё много кода писать. =)

 

Spoofing
()

Ваше отношение к вакцинации?

Голосования — Голосования

Как вы решили для себя вопрос прививки от COVID-19?

UPD: инструкция по применению Гам-КОВИД-Вак, если кому интересно

https://roszdravnadzor.gov.ru/i/upload/files/%D0%9D%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8/%D0%A4%D0%B0%D0%B9%D0%BB%D1%8B/28.12.2020/%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D1%8F%20%D0%BF%D0%BE%20%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8E%20%D0%9B%D0%A1.pdf

  1. Уже привился (подробности в комментариях) 369 (46%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. Понаблюдаю за привитыми годик-другой, потом приму решение 173 (22%)

    ******************************************************************************************************************************************************

  3. Привьюсь в ближайшее время (подробности в комментариях) 147 (18%)

    *******************************************************************************************************************************

  4. Не буду прививаться (подробности в комментариях) 108 (14%)

    *********************************************************************************************

Всего голосов: 797

 , ,

Shulman
()

IPFS 0.9

Новости — Open Source
IPFS 0.9
Группа Open Source

Состоялся релиз IPFS 0.9 (InterPlanetary File System), которая образует глобальное версионированное хранилище файлов в виде p2p сети (объединение концепций Git и BitTorrent). Отличительная черта IPFS – адреса выдаются согласно содержимому (криптографический хэш), а не месту и имени. Соответственно, адрес нельзя просто изменить, это возможно, только если поменяется содержимое файла, однако прошлое содержимое все также будет доступно по старому адресу. Также в IPFS существуют сервисы привязки постоянных адресов, учитывающих изменения в файлах (IPNS), а также псевдонимы.

( читать дальше... )

>>> Подробности

 , ,

claire
()

Получить тип возвращаемого значения из лямбды

Форум — Development

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


template <typename T>
struct Return_type;
template <typename R, typename... Args>
struct Return_type<R(Args...)> {using type = R;};
template <typename R, typename Q, typename... Args>
struct Return_type<R (Q::*)(Args...)const> {using type = R;};
template <typename R, typename Q, typename... Args>
struct Return_type<R (Q::*)(Args...)> {using type = R;};

struct A{
	struct V {
		double operator()(int t)const {return 5;}
	};
};

int main() {
	auto l = [](double a, int e)mutable{return 2;};
	auto l2 = [](int a){;return 2;};
	Return_type<decltype(&decltype(l)::operator())>::type a;
	Return_type<decltype(&decltype(l2)::operator())>::type a2;
	Return_type<decltype(&A::V::operator())>::type a3;


	auto l3 = [](auto b){;return 2;};
	Return_type<decltype(&decltype(l3)::operator())>::type a4;

	return 0;
}

И в принципе свою задачу я решил, мне этого хватит, но не знаю как (и возможно ли вообще) получить тип от лямбды, внутри которой шаблонный оператор() (тот, что auto l3). Решаема ли задача в случае с l3?

 

kvpfs
()

Быстрые деревья

Форум — Development

Имеется структура данных: дерево из 100 тысяч узлов. Самая длинная ветвь — 50 тысяч. Число дочерних узлов не ограничено. Требуется быстро найти наинизшую общую вершину для примерно миллиарда пар узлов.

Для менее асимметричного дерева из 10 тысяч узлов и 20 миллионов пар я тупо построил список списков предков и сравнил для каждой пары. Но для большого дерева не хватит памяти.

Вопрос: есть ли готовая библиотека, способная быстро искать общую вершину?

 ,

question4
()

Мошенники покоряют вершины IT

Форум — Talks

Сегодня меня опять попытались обезналичить, я расскажу вам, как. Приходит письмо, типа от DHL. X-Spam-Level: X-Spam-Status: No, score=-0.7 required=1.0 tests=HTML_FONT_LOW_CONTRAST, HTML_MESSAGE,MSGID_FROM_MTA_HEADER,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE, SPF_PASS,T_KAM_HTML_FONT_INVALID Абсолютно валидное, с точки зрения spamassasin-а. Письмо такое :

YOUR SHIPMENT IS ON ITS WAY

Hello,

Your DHL Express shipment with waybill number 00340434139185930097 is waiting for delivery. Please confirm the payment details.

The status of the shipment is: On hold.

Click Here, to complete your delivery options.

Я бы конечно это отправил в утиль, если бы не ждал отправление именно этой службой и стоимость доставки мне не казалась подозрительно дешёвой. Что-то типа требования доплатить я ожидал. Перехожу here, там стилизованный под DHL сайт, требующий доплатить $1.5. Окей, доплачу. Вбиваю карту, приходит СМС. Но не на оплату, а на подключение к Samsung pay. Тут, конечно, затерзали меня некоторые сомнения, но Samsung pay - не шарашкина контора вроде. Вбил данные карты. Подключился. Жду подвоха, но не очень. И через 2 минуты - списание 5000 гонконгских баксов, безо всяких подтверждений и СМС. Очередной раз спасибо спецслужбам Сбера, не зря едят хлеб. Операция автоматом не прошла, пошёл звонок с 900 для подтверждения голосом. Звонил робат и корявой фразой хотел, чтобы я подтвердил перевод денег. Я сказал «да». И мне повезло, что моё «да» он не распознал, потому что если бы распознал, своих денег я больше не увидел бы. Фраза была корявая, я не понял сразу, что они от меня хотят, это потом стало понятно, что они хотят авторизовать платёж, а я думал, что они хотят авторизовать меня. Такие дела. Очевидно, не без помощи программистов вся эта схема работает и не без помощи их робат списывает деньги. Вангую, что данный метод вскоре будет локализован и так будут работать и по вам. Карту перевыпустил, хожу без карты.

 

lenin386
()

Давайте всё-таки обсудим последние удаления

Форум — Linux-org-ru

@Zhbert, @bryak, @Shaman007

давайте всё-таки обсудим вопрос

Я понимаю и поддерживаю удаление исходного коммента со ссылкой на ролик. Потому что что бы не говорил его автор, законность и уместность контента - это две разные вещи. И не надо весь найденный на ютубе мусор притаскивать на ЛОР.

Но удаление тредов в Linux-org-ru мне непонятно. У нас есть другие варианты ставить точку в разговоре. Достаточно написать заключительный коммент и перевести тему в read-only. Почему бы не воспользоваться этим способом?

 

alpha
()

Поясните за ШГ

Форум — Talks

Часто в комментариях к скриншоту пишут ШГ. Вот у меня вопрос: как сделать нормальные Ш? Что вообще есть нормальный Ш? Что за ШГ стоит у вас?

 

shikata_ga_nai
()

Настройка NFS

Форум — Admin

Здравствуйте, я понемногу разбираюсь с тем, как ставить сервер. Я разобрался с DHCP и подключением к провайдеру по L2TP, но у меня возник вопрос с Network File System. Я знаю, что сперва надо установить nfs-server, потом создать директорию для обмена, потом настроить /etc/exports. В руководствах, что я читал рассматривается разграничение прав доступа по диапазону IP адресов. Но у меня вопрос: эти адреса относятся к тем, что сервер раздает сам, или ко всем, что ему доступны? Если последнее, то как ограничить доступ не по IP, а по eth0, чтобы только адреса из внутренней сети, что на eth1, могли подключаться к nfs-серверу?

Пожалуйста, ответьте. Спасибо за Вашу помощь.

 

Vsevolod-linuxoid
()

всем youtube страждущим: gtk-youtube-viewer

Форум — Talks

когда-то появилась утилита minitube. Отличная штуковина для просмотра трубы без браузера. Не тормозила, обладала возможностью скачки и т.п.

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

Как вариант — можно пользоваться более старой версией: 2.5. Но она глючит, ибо юзает глючный фонон. Без пульсы вообще не работает звук.

Недавно наткнулся на перловку youtube-viewer с мородй gtk-youtube-viewer.

Отличная программа, жрет мало, работает быстро.

Накатим.

https://github.com/trizen/youtube-viewer

http://www.webupd8.org/2015/02/youtube-viewer-complete-youtube-client.html

 ,

dikiy
()

Каким вы видите будущее?

Форум — Talks

Были определённые события, из которых делал вывод, что наступил «конец света» или «конец времени». Скорее всего это такое состояние, когда прогнозы исчерпаны.

Если так исторически оглянуться, ещё недавно у людей не было электричества, машин, интернета не было. А щас уйма благ.

Для чего ж ето всё создаётся? К чему этот рост? По идее, для человеческого-счастья. Хотя ещё совсем не факт, что просто обладание чем-то - это счастье. Вещи становятся обыденностью.

Да более того, человек, который счастлив тем, что у него есть, не очень к росту склонен.

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

Из чего вообще время состоит? Как минимум, можно ориентироваться на продолжительность жизни. Скажем, если известно, что человек проживёт 70 лет, то будущее этими 70 годами и измеряется. Можно на разные счётчики ориентироваться…

Но вот интересно, каким будущее видите вы?

Я не то что за охрененный рост топлю, но можно развиваться, например, в иностранных языках, каких-то умениях. Но потом, скорее всего, физически ты умрёшь.

 , ,

DanilaZabiakaa
()

Посоветуйте VPS не в РФ.

Форум — Admin

Кто каким пользуется?

понадежнее и недорого
у того же провайдера и доменное имя хотелось бы взять + IPv4

 

Vlad-76
()

Кавычки — зло

Форум — Talks

 ,

Deleted
()