LINUX.ORG.RU

Сообщения mertvoprog

 

Антифлуд-система на ЛОРе

Вот Мы пришли в тред и завайпали его 16-ю сообщениями кряду. Куда это годится? Надо и другим давать возможность высказаться!

Надо как в IRC — автоматически кикать, если много сообщений кряду.

Давеча читали стенания гномосеков по поводу попыток бриджить IRC и Matrix, в ходе которых решено когда-нибудь закопать IRC. Среди причин назван кик моста со всеми участниками со стороны IRC при его переподключении: от резкого наплыва сообщений срабатывает антифлуд. (Будто нельзя пропатчить IRC-сервер и убрать антифлуд, ага — тем более, сеть у них своя.)

Надо и ЛОР так постепенно закопать и превратить в Telegram-канал с выключенными комментариями!

 

mertvoprog
()

Как превратить Linux в DOS?

1) Не создавать пользователей, кроме рута. Вообще запретить создание пользователей.

2) Пропатчить говнософт, который не хочет работать от рута.

3) Никаких иксов, никаких вяленых композиторов. Фреймбуферная консоль тоже не нужна. fbterm вообще от лукавого. Только настоящий текстовый режим видеокарты и DRM!

4) Пропатчить графический говнософт, который требует эти ваши иксовяленды и не хочет работать под голым DRM.

5) Проприетарный софт тоже пропатчить.

6) Зафорсить ограничение 8.3 на уровне ядра.

7)

find /|while read A
do
  ln -s "$A" $( dirname "$A" )/$( basename "$A"|tr a-z A-Z )
done
FIND / -type d|while read A
do
  CD "$A"
  for F in CON AUX PRN COM{1..9}
  do
    TOUCH "$F"
    CHMOD 000 "$F"
  done
done

Запускать по таймеру systemd каждую минуту.

8) ECHO "#!/USR/BIN/WINE CMD" > /BIN/SH

И binfmt вайновских тоже непременно насовать, ага.

9) ?MLINUZ.OLD

10) PROFIT

 , , , ,

mertvoprog
()

Надоели паникёры

Когда ICQ купил Mail.Ru, они разбежались с ICQ по всяким говномессенджерам, и теперь кроме Нас, @MOPKOBKA, @saahriktu да @tiinn там никого толком и нет ;)

Когда GitHub купил Microsoft, они поребейзили (что само по себе зашквар) свои репозитории одним прощальным коммитом и разбежались по стапицта васянохостингам, добрая часть из которых даже в Opera Mini не работает. Теперь надо на всех них регаться, просто чтобы прислать куда-то патч (OAuth через GitHub — это тоже рега, да ;)) (Впрочем, оно всё зло, должен быть мейнстримом отлаженный процесс приёма патчей через e-mail, как в ядре Linux, а не через подобные платформы — Git заточен именно под этого, но у вайтишников уже стал синонимом GitHub).

(о миграции леммингов с Pikabu на Reddit ничего не скажем, ибо ни той, ни другой парашей не пользуемся)

И теперь вот с freenode бегут. Сначала просто мягко поразмещали в топиках ссылки на какой-то libera.chat. Когда администрация freenode потёрла этот наглый спам, на некоторых каналах (Нас так выперли с #minetest и #wayfire) тупо покикали всех членов и на прощанье буквально… послали, в другие IRC-сети. У #wayfire даже забриджили каналы на OFTC, libera.chat и Matrix. А теперь вопрос: что мешало так же забриджиться и с каналом на Freenode? Правильно, ничего, кроме бугурта и политоты головного мозга :P Мы вот с Freenode никуда валить не собираемся, у Нас баунсер настроен только на него, и большая часть каналов осталась там.

ДОКОЛЕ?

// Линукс тут при том, что с него под разными предлогами тоже валят на всякие бзди, или по мелочи между дистрибутивами, будто это всё не одна ОС и имеет смысл переустанавливать одну сборочку на другую вместо метаморфоза существующей обжитой системы.

 , , , ,

mertvoprog
()

Перепись пользователей Viber 13.3

клоуны-ненужнорасты быстро и решительно отправляются в спецтопик, ибо нефиг

клоуны со Snap/Flatpak тоже, у Нас винт не резиновый

Сами пока сидим на 10.3, ибо золотое правило админа: работает — не трожь ;)

Как там новые версии поживают? На форуме куча жалоб на 12–13 (по большей части специфичных, но тем не менее).

Более того, 13.3 вышла ещё около года назад. @stafik1993 рапортуют, что в поддержке опять сообщили, что не будут делать новых версий под онтопик — во что как-то слабо верится, ибо Нам то же самое обещали во время паузы после выхода 7.0, а потом всё же передумали и вышли 10–13 ;) Причём 7.0 был весьма глючным, а откатить миграцию БД и поставить обратно 6-й не так-то тривиально ;)

Интересует в первую очередь два вопроса:

  1. нет ли и в 13.3 каких-нибудь назойливых глюков; если есть, то какая перед этим версия сама приличная;

  2. не подложили ли какую-нибудь свинью, типа резкого возрастания потребления оперативки, или шифрования SQLite-баз в профиле (просьба проверить).

cast -‍-multiple @Red7 @flappyright @UriyZenkov @Mischutka @fernandos @files32 @hobbit @tiinn @esperantisto @Xvost @ikeks2505 @Aithec @PeleWin @progsft_ @pfg @torvn77 @serhey @Twissel @ARTIsshoque @cappelikan

Надеемся, не пожалеем, что спросили об этом НА ЛОРЕ

 ,

mertvoprog
()

Вилка Авраменко: зачем такие сложности?

А как насчёт без торсионщины?

Имеем две цепи Ц1 и Ц2, в каждой по конденсатору: C1/C2. Также между ними провод-линия Л1, по дефолту никуда не подключён. Обе обкладки каждого конденсатора могут переключаться с цепи на провод и обратно. Обе цепи имеют автономное питание, но в Ц1 напряжение выше, за счёт чего и достигается передача энергии к Ц2.

Схема: https://pic4a.ru/15/MGn.gif

Алгоритм:

  1. Заряжаем C1 и C2.

  2. Переключаем --обкладку C1 на Л1, а +-обкладку C2 на Л2 — электроны радостно устремляются с C1 на C2.

  3. Переключаем C2 с Л1 на Ц2 — в Ц2 возникает избыток напряжения, с которого можно поиметь ништяки. Также переключаем C1 с Л1 на Ц1.

  4. Заряжаем C1 и C2.

  5. Переключаем --обкладку C2 на Л1, а +-обкладку C2 на Л2 — электроны радостно устремляются с C2 на C1.

  6. Переключаем C1 с Л1 на Ц1, и C2 с Л1 на Ц2.

  7. GOTO 1.

Получается что-то типа переменного (или скорее пульсирующего тока). Чтобы линия в перерывах не пустовала, можно поставить с каждой стороны по нескольку цепей и включать поочерёдно, пока в соседних заряжаются конденсаторы.

Минусы:

  1. Нужна синхронность — но в XXI веке с вездесущими NTP и GPS это не проблема ;)

  2. Нужен хоть какой-то источник питания в Ц2, хотя бы как стартер, иначе не взлетит, совсем пассивную цепь завести не получится.

Мы что-то не учитываем и это не будет работать без заземления? ;)

(ЛОР снова торт, ага — лет 10 подобное не обсуждали?)

 , , , ,

mertvoprog
()

День, когда лучше не писать на ЛОР.

Попробуйте продержаться, вы же осилите? ;) Ну хоть всего один день. На новогоднетоподрочеров не распространяется.

Надо было ещё в полночь запостить, но забыли, увы.

Что такого я написал? (комментарий)

 

mertvoprog
()

Задачка для metaprog

Имеется выхлоп dpkg -l вида:

ii  2048-qt                                                     0.1.6-2+b2                                   amd64        mathematics based puzzle game
ii  aapt                                                        1:8.1.0+r23-3+b2                             amd64        Android Asset Packaging Tool
ii  abiword                                                     3.0.4~dfsg-2                                 amd64        efficient, featureful word processor with collaboration
ii  abiword-common                                              3.0.4~dfsg-2                                 all          efficient, featureful word processor with collaboration -- common files
ii  accountsservice                                             0.6.55-3                                     amd64        query and manipulate user account information

(гусары с aptitude и прочими готовыми колясками — молчать! Задача учебная!)

Надо выгрепнуть из него все строчки пакетов, у которых статус — установлен. То есть в первой колонке есть буковка i. Дело осложняется тем, что кроме ii, там может быть hi, ic, it и прочая шняга.

Решение однострочником, сложное и неудобное:

dpkg -l|grep -P '^[^\s]*?i[^\s]*?\s'

Уже видно, что регулярка страшная. А если не по первой колонке грепать, а по какой-нибудь пятой, то станет ещё страшнее и непонятнее. Плюс нужен расширенный синтаксис grep, который не во всех реализациях grep присутствует, а потому юзать его — фу!

Куда проще сделать:

dpkg -l|col1|grep i

, не так ли? ;)

(здесь col1..col9 — мини-скриптик из пакета byobu, который является, грубо говоря, просто удобным алиасом для awk '{print $1}')

Очевидная проблема здесь, однако же, в том, что в конвейере теряется важная информация, а именно вся строчка, которую нужно отобразить! Остаётся только огрызок в виде первой колонки!

Как решить эту задачу в один конвейер и красиво? А никак :P

Привлекаем императивный язык с промежуточными переменными!

import sys

for line in sys.stdin.readlines():
    if 'i' in line.split()[0]:
        sys.stdout.write(line)

Но всё равно некрасиво, линейный код с искусственным ветвлением через переменную. Вот бы запрограммировать двумерно! Как-то так:

        +-----+ colstream  +-----+  +------+ bool
line-+->| ||| >===========>| [1] >->| Y  i >--------+
     |  +-----+            +-----+  +------+        | transistor
     |                           +->/dev/null     --+--
     +-------------------------------------------/     \->-------> output

(где Y — пиктограмма воронки, как в Excel ;))

Этим и отличается текстовое программирование от графического: текстовое — одномерное, графическое — двумерное! В порог человеческого восприятия ещё и трёхмерное влезет; до такого вроде ещё не додумались (ну, если Minecraft’овский Redstone и аналоги не считать), но у Нас мыслишки есть ;)


Интересно, как реализуют эту задачу Их Метапрожейшество @metaprog ;) В отличие от тех «простых» задачек, что обычно предлагают в метапроготредах, эта займёт всего пару минут Вашего драгоценного метавремени, не так ли? ;) И послужит хорошей демонстрацией в копилочку того, чем хорош Метапрог (если он, конечно, хорош).

Антиметапрогеры превентивно посылаются в высирач, но могут предложить свои варианты конвейерной (не некрасивой императивной) обработки на текстовых ЯП, ибо почему бы и нет. Латентные (и не только!) шиндузятники с пошуршеллом тоже приветствуются, ага.

 , ,

mertvoprog
()

ВНЕЗАПНО слетел SUID-бит

Месяцами ничего не трогали, и тут ЕГГОГы.

Думали, runfs отвалились — на месте.

Проверяем — а SUID пропал.

@bq:13:51:06:/data/progs/web/faxivid$ which limonbin
/usr/local/bin/limonbin
@bq:13:51:23:/data/progs/web/faxivid$ ls -l /usr/local/bin/limonbin
-rwxr-xr-x 1 root staff 2114608 авг 25  2020 /usr/local/bin/limonbin

Починили — заработало.

@bq:13:51:31:/data/progs/web/faxivid$ sudo chmod +s /usr/local/bin/limonbin
@bq:13:52:48:/data/progs/web/faxivid$ ls -l /usr/local/bin/limonbin
-rwsr-sr-x 1 root staff 2114608 авг 25  2020 /usr/local/bin/limonbin

Но от этого не легче. Схрена оно вообще слетело, куда копать? Злобный поцтерингоантивирус, что ли, завёлся, который орёт «SUID — фу!», бьёт по рукам и принудительно сбрасывает? ;D

 ,

mertvoprog
()

Встречайте свободного убийцу MessagEase: 8VIM

На самом деле это клон заброшенного проприетарного 8Pen, которому уже лет 10 в обед, ага.

Программа весьма сыровата, но в целом уже юзабельна, и метит в полноценную клавиатуру со всеми нужными хацкерам кнопками.

Буквально на днях случайно обнаружили, когда заглянули в F-Droid за Vi IMproved Touch :P

https://www.8vim.com/

cast --multiple @t184256, @Yareg, @Tweaker, @I60R, @zl0y, @vsn, @HerrWeigel

 , , , ,

mertvoprog
()

Протухание печенек

Ну-у-у напугали ;) — Мы уж думали, дождались бана таки.

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

 , , ,

mertvoprog
()

αВИМ (17)

Дайте угадаем, TDPLM на ЛОРе 2$21-го года постигла бы та же участь?

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

runas /user:maxcom cast @alpha

 

mertvoprog
()

Астрологи определили точную дату вендекапца

А случился он ещё в далёком сентябре 2009-го, когда доля Android окончательно обогнала долю Windows Mobile, оставив последний плестись в пределах статистической погрешности, и ознаменовав безоговорочную победу линукса на мобильниках.

https://pic4a.ru/11/yGd.png

https://gs.statcounter.com/os-market-share/mobile/worldwide/2009

Тихо и незаметно.

 ,

mertvoprog
()

Долго перераспознаётся клавиатура под иксами

Отходит шнур, от чего ведро ругается на якобы EMI. Полгода назад аж прислали патч в поделку @Xintrea из-за этого. Было, решили приклеиванием шнура вдоль корпуса изолентой, но проблема опять вернулась.

И, собственно бы, ничего, клавиатура переподключается почти моментально, в tty работает, а вот под иксами почему-то секунд 15 в отвале. Куда копать?

Логи передёргивания, есишо:

[1535710.040] (II) config/udev: removing device SONiX USB Keyboard
[1535710.093] (II) evdev: SONiX USB Keyboard: Close
[1535710.095] (II) UnloadModule: "evdev"
[1535710.096] (II) config/udev: removing device SONiX USB Keyboard
[1535710.146] (II) evdev: SONiX USB Keyboard: Close
[1535710.154] (II) UnloadModule: "evdev"
[1535730.683] (II) config/udev: Adding input device SONiX USB Keyboard (/dev/input/event5)
[1535730.697] (**) SONiX USB Keyboard: Applying InputClass "evdev keyboard catchall"
[1535730.697] (**) SONiX USB Keyboard: Applying InputClass "evdev keyboard catchall"
[1535730.697] (II) Using input driver 'evdev' for 'SONiX USB Keyboard'
[1535730.697] (**) SONiX USB Keyboard: always reports core events
[1535730.697] (**) evdev: SONiX USB Keyboard: Device: "/dev/input/event5"
[1535730.697] (--) evdev: SONiX USB Keyboard: Vendor 0xc45 Product 0x760b
[1535730.697] (--) evdev: SONiX USB Keyboard: Found 1 mouse buttons
[1535730.697] (--) evdev: SONiX USB Keyboard: Found scroll wheel(s)
[1535730.697] (--) evdev: SONiX USB Keyboard: Found relative axes
[1535730.697] (II) evdev: SONiX USB Keyboard: Forcing relative x/y axes to exist.
[1535730.697] (--) evdev: SONiX USB Keyboard: Found absolute axes
[1535730.697] (II) evdev: SONiX USB Keyboard: Forcing absolute x/y axes to exist.
[1535730.697] (--) evdev: SONiX USB Keyboard: Found keys
[1535730.697] (II) evdev: SONiX USB Keyboard: Configuring as mouse
[1535730.697] (II) evdev: SONiX USB Keyboard: Configuring as keyboard
[1535730.697] (II) evdev: SONiX USB Keyboard: Adding scrollwheel support
[1535730.697] (**) evdev: SONiX USB Keyboard: YAxisMapping: buttons 4 and 5
[1535730.697] (**) evdev: SONiX USB Keyboard: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[1535730.698] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:12.0/usb3/3-5/3-5:1.1/0003:0C45:760B.00B7/input/input200/event5"
[1535730.698] (II) XINPUT: Adding extended input device "SONiX USB Keyboard" (type: KEYBOARD, id 11)
[1535730.698] (**) Option "xkb_rules" "evdev"
[1535730.698] (**) Option "xkb_model" "pc105"
[1535730.698] (**) Option "xkb_layout" "us,ru,ua"
[1535730.698] (**) Option "xkb_variant" ","
[1535730.698] (**) Option "xkb_options" "grp:toggle,compose:menu,terminate:ctrl_alt_bksp,grp_led:scroll"
[1535730.708] (II) evdev: SONiX USB Keyboard: initialized for relative axes.
[1535730.708] (WW) evdev: SONiX USB Keyboard: ignoring absolute axes.
[1535730.710] (**) SONiX USB Keyboard: (accel) keeping acceleration scheme 1
[1535730.711] (**) SONiX USB Keyboard: (accel) acceleration profile 0
[1535730.711] (**) SONiX USB Keyboard: (accel) acceleration factor: 2.000
[1535730.711] (**) SONiX USB Keyboard: (accel) acceleration threshold: 4
[1535735.042] (II) config/udev: Adding input device SONiX USB Keyboard (/dev/input/event4)
[1535735.043] (**) SONiX USB Keyboard: Applying InputClass "evdev keyboard catchall"
[1535735.043] (**) SONiX USB Keyboard: Applying InputClass "evdev keyboard catchall"
[1535735.043] (II) Using input driver 'evdev' for 'SONiX USB Keyboard'
[1535735.043] (**) SONiX USB Keyboard: always reports core events
[1535735.043] (**) evdev: SONiX USB Keyboard: Device: "/dev/input/event4"
[1535735.043] (--) evdev: SONiX USB Keyboard: Vendor 0xc45 Product 0x760b
[1535735.043] (--) evdev: SONiX USB Keyboard: Found keys
[1535735.043] (II) evdev: SONiX USB Keyboard: Configuring as keyboard
[1535735.043] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:12.0/usb3/3-5/3-5:1.0/0003:0C45:760B.00B6/input/input199/event4"
[1535735.043] (II) XINPUT: Adding extended input device "SONiX USB Keyboard" (type: KEYBOARD, id 12)
[1535735.043] (**) Option "xkb_rules" "evdev"
[1535735.043] (**) Option "xkb_model" "pc105"
[1535735.043] (**) Option "xkb_layout" "us,ru,ua"
[1535735.043] (**) Option "xkb_variant" ","
[1535735.043] (**) Option "xkb_options" "grp:toggle,compose:menu,terminate:ctrl_alt_bksp,grp_led:scroll"

Источник дыры в 20 секунд совершенно неясен.

Любопытно, где оно там мышку видит?

Перемещено tazhate из club

 , , , ,

mertvoprog
()

ИННОВАЦИОННАЯ КОНЦЕПЦИЯ ИНТЕРФЕЙСА

Вам ещё не надоели пустые места в интерфейсах программ из-за неравномерного заполнения элементов интерфейса? Нам да ;)

Решение простое: поделить экран на квадратно-гнездовые блоки фиксированного предсказуемого размера (скажем, 32×32 CSS-пикселя). Квадратно-гнездовые интерфейсы весьма и весьма взлетают, примеры:

  • WindowMaker
  • Рабочий стол
  • Excel
  • Metro UI
  • Minetestcraft
  • Лончеры на лопатофонах
  • Панель расширений Chromium
  • etc.

Инновационность по состоянию со всем этим состоит в возможности окна забить любой набор квадратиков. Путём последовательных запросов у менеджера UI типа

claim 1x1
claim 4x3
claim 3x1
claim 4x1

С опциональными (либо принудительными) хинтами, типа:

claim 1x1 → 0x28398983
claim 4x3 below 0x28398983 → 0x28398987
claim 1x2 right 0x28398987 → 0x28398c01
claim 2x1 sparse right!important 0x28398983 → 0x28398c78

Если менеджер UI может впихнуть по хинту — впихивает; нет — в зависимости от приоритета хинта не соблюдает его, либо выпихивает это окно на новый рабочий стол, либо другие окна.

Таким образом:

  • можно лепить окна любой вычурной формы (концептуально это уже ближе к LEGO и тетрису);
  • можно возродить SDI-интерфейсы, как в GIMP/Cinelerra/Pidgin, в юзабельном виде;
  • можно распиливать окно на элементы и разбрасывать их по всему экрану (приложения при этом различать по цвету фона, как нынче модно);
  • становится удобно огибать модные нынче вырезы на экранах, а также пользовать частично битые экраны (битые блоки можно пометить для менеджера UI бэдами, как на HDD);
  • вместо неюзабельных float-окон привносим тайлинг в массы. Помните, например, маленькие плавающие виджеты управления в виндузятных программах типа Download Master и AIMP, которые вечно мешались? ;) Можно запихнуть их получше. Например, есть полезная прикладная программа с окном такой формы:
xxxxxxx
xxxxxx
xxxxxx
xxxxxxx
xxxxxxx

В ложбинку справа можно напихать два таких мини-виджета 1×1 или один 2×1 от других программ, и они не будут мешаться ;)

Легаси-приложения, которые не поддерживают данную концепцию, могут просто claim один большой прямоугольник.

По идее, это можно прозрачно реализовать расширением Wayland. При этом клиент может ради производительности или обратной совместимости выводить несколько прямоугольников в один surface, а композитор будет их оттуда вырезать, подобно CSS-спрайтам ;) Не умеющие это расширение композиторы вместо свалки маленьких окон будут просто выводить один большой surface, с мусором в «вырезах».

 , , , , шаротрон

mertvoprog
()

Тайна Владимира раскрыта

Обнаружили пост 2009-го года во

владимирском стиле

С каких это пор мой любимый ЛОР требует плеш (комментарий)

Персонаж не заходят на ЛОР с 2014-го. Наверняка в анонимусы ушли. И отбитыми были ещё тогда. Всё сходится.

Кстати, а когда эта волна флешефобии началась-то? И закончилась. Про «Ничего не поделаешь, это флеш» в курсе, но он датируется примерно теми же временами, интересует более широкий промежуток. Флеш ведь широко используется ещё с начала 00-х, с каких пор его ЛОР-овцы невзлюбили?

 , ,

mertvoprog
()

Аналоги GoldenDict для просмотра Wiktionary есть?

Сабж. Желательно CLI/TUI, но если хотя бы не такое прожорливое, падучее и неюзабельное с клавиатуры, то уже хорошо. Подумывали сами писать, пока не узнали, что GoldenDict давно умеет в Wiktionary и даже в педивикию.

 , , ,

mertvoprog
()

Менее прожорливые аналоги iotop есть?

Сабж.

 , , , ,

mertvoprog
()

Голые жопы на ЛОРе

https://pic4a.ru/011/FOU.png

cast @maxcom, пора подкручивать Яндекс.Директ, Яндекс.Директ сам не подкрутится.

 ,

mertvoprog
()

FR: статистика по юзерагентам в профиле

Хитмапом начало положено, так почему бы и не?..

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

Кстати, а почему самим пользователям IP/UA их постов не видны? Во избежание компрометации при угоне аккаунта и обмене сохранёнными страницами?

 , ,

mertvoprog
()

А в ЭЛТ субпиксельное сглаживание из коробки, что ли?

Читали тред по теме на StackExchange, но там ничего об зтом не упоминается — лишь то, что ClearType разработан для ЖК и может работать и на ЭЛТ, но не гарантированно, поскольку сетка пикселов бывает очень разной (что и для современных ЖК справедливо, однако).

Тем не менее, всматриваясь в ЭЛТ, заметили зффект субпиксельного сглаживания: https://pic4a.ru/011/ThL.jpg Ладно текст может сглаживать система (что маловероятно, поскольку разрешение виртульного экрана выше 576p, который выводит ЦАП, плюс разрешение самого кинескопа явно выше 576p), но зффект заметен также на белой иконке, где сглаживания уж явно быть не может.

Как зто работает? Ладно бы сигнал «размазывался» и до одних субпикселей доходил, а до других нет. Но ведь на субпиксели разных цветов электроны прилетают от трёх разных пушек, сигнал на которые уходит независимо, и ему по барабану, в каком порядке субпиксели расположены.

cast --multiple @Thetan @Moderators

 , , , ,

mertvoprog
()

RSS подписка на новые темы