RSS
# Установка Debian 3.1 Sarge из DOS
retro.talks
iiii(blackcat, 2) — All
2024-10-15 23:00:37


Установка Debian 3.1 Sarge из DOS

Часть 1.

Данный способ установки может понадобиться тем, кто хочет поставить Debian, но неоткуда загрузиться (cd нет или не загрузочный, других источников нет). При этом есть рабочий DOS/Win9x. Способ подходит для Etch, Lenny и т.д. Я запускал 6.0 squeeze с icewm на пентиуме вроде 120 с 40 мб памяти.

Основные конвенции: должно быть неразмеченное место на диске (или ненужный раздел) хотя бы в 1 гб.

> Если такого раздела нет, можно переразметить. На диске с sarge идёт fips, но я им никогда не пользовался*. Можно взять древний partition magic для дос. Если данных не жалко и при этом нет дискет, можно поставить grub4dos и через memdisk загрузить виртуальную дискету с загрузчиком, разметить разделы, сделать dos раздел активным, установить dos-загрузчик.

Нужна какая-нибудь сеть для установки пакетов (я даже по нуль-модему ставил). Иначе можно вместо netinst ставить с 1 cd, но тогда будет совсем минимум пакетов. Нужно минимум 24 мб памяти. Для etch минимум 48, но это только для установки, после чего системой можно пользоваться на 32 мб и меньше.

На разделе dos нужно хотя бы мегабайт 150. Начинаем располагать файлы:

http://cdimage.debian.org/cdimage/archive/3.1_r8/i386/iso-cd/
Отсюда берём и записываем на раздел dos образ netinstall

http://archive.debian.org/debian/dists/sarge/main/installer-i386/20050317sarge2/images/hd-media/
отсюда берём linux и initrd.gz

На диске sarge есть loadlin**, либо скачать с http://youpibouh.thefreecat.org/loadlin/

Создать файл linux.bat следующего содержания:
loadlin linux initrd=initrd.gz vga=normal ramdisk_size=10240 root=/dev/rd/0 devfs=mount,dall rw

(для Etch, Lenny: loadlin linux initrd=initrd.gz vga=788)

Я свои эксперименты буду делать с виртуальной машиной с 24 мб ram и 1300 мб hdd.

Честно говоря, про установку Debian мало что сказать, особенно про первый шаг sarge (в отличие от etch и далее, установка sarge двухэтапная). Ну, оно не нашло сетевую карту, я пропустил этот этап, перешёл к дальнейшим. В etch и далее главное не кликнуть сослепу на авторазметку диска, но в sarge авторазметки нет, у меня раздел dos на 300 мб, я сделал раздел / на 950 мб, и осталось 74 мб которые я пустил на своп.

Ставим пакеты, устанавливаем grub, и загружаемся в linux, чтобы перейти на второй этап установки.

Стандартные вопросы, стандартные ответы. Поскольку таймзоны уже послетали, я ставлю таймзону GMT-10, а не Asia/Vladivostok

Никаких установок пакетов на этапе установки лучше не делать, даже в Etch и т.д. А в sarge он и не даст, sarge смотрит не на codename, а на stable/oldstable. С archive.debian.org он поставить не даст. У меня с локального репозитория, где были sarge и etch, но симлинк oldstable стоял на etch, sarge вежливо предложил мне удалить ядро. Я вежливо отказался.

Поэтому, когда спрашивают зеркало, делаем cancel, переходим с config mail system (хотя я просто удаляю exim4, он мне не нужен) или к finish.

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

*fips: https://rus-linux.net/MyLDP/BOOKS/rhl-ig-x86-ru-8.0/s1-x86-dualboot-fips.html
** либо можно воспользоваться linld.com: https://busybox.net/~vda/linld/

# Узел spnet приляжет
idec.talks
shaos(spnet, 2) — All
2024-10-15 02:40:28


Планирую сегодня-завтра поменять домашний маршрутизатор со старого на новый и в процессе сего моя нода sprinternet.io может на какое-то время приуныть :)

Вобчем не теряйте меня - я обязательно вернусь ;)

# мерж
retro.talks
iiii(blackcat, 2) — All
2024-10-14 02:21:49


эха смержена со всеми старыми эхами, кое-что поправлено

да будет жизнь

# oldpc
retro.talks
iiii(blackcat, 2) — All
2024-10-11 19:48:20


Ещё для любителей древности, гейтанул архивную эху oldpc.51t.ru. В общий лист не вывожу, но кому почитать со своей windows 95:

ii://oldpc.51t.ru

# поретруем?
retro.talks
iiii(blackcat, 2) — All
2024-10-11 14:48:47


достаём win95

пишем в эту эху

ибо больше с win95 мы уже никуда не напишем

# dg: простейший dos games downloader
retro.talks
oldpc(51t, 2) — All
2022-05-20 15:41:00



import sys, os; k = sys.argv[1][0] #dgpy ver 0.0.1

if k=='u':
  print ('mv games.utf games.bak')
  print ('wget http://ii.blcat.ru/s/games.utf')
  exit()

def dl(p,u,f,d):
  if not os.path.exists('dl/%s' % f):
    print ('mkdir -p dl && wget -c %s -O dl/%s' % (u,f))
  if k=='i':
    print ('mkdir -p dos/%s' % p)
    print ('unzip -d dos/%s dl/%s' % (p,f))

db = open('games.utf').read().splitlines()
def gv(v): return [n for n in db if n.split(' ')[0] == v]

if k=='s':
  print ('cat << EOFSEARCH')
  for t in db:
    t = t.split(' ',3)
    t = ' '.join((t[0],t[2],t[3]))
    if any([s.lower() in t.lower() for s in sys.argv[2:]]):
      print ("%s" % t)
  print ('EOFSEARCH')
else:
  for t in sys.argv[2:]:
    if gv(t):
      dl(*gv(t)[0].split(' ',3))




Для использования требуется скрипт враппер. Сохранить данный python-код, как dg.py, и рядом создать файл dg следующего содержания:

python3 dg.py $* | sh

Где python3 - используемая версия. Умеет следующие команды (все команды распознаются по первой букве, команды d и download равнозначны)

sh dg u : обновить базу данных. её урл жёстко захаркожен во первЫх строках
сейчас там игры с сайта gamesindos.narod.ru, но я добавлю и другие

sh dg s str1 str2 : ищет в базе описания, где есть str1 или str2, например d s keen wolf найдёт все упоминания keen и wolf. Если нужно, наоборот, сужать критерии поиска (когда игр будет много), можно any( в скрипте заменить на all(

sh dg d game1 game2 : скачивает указанные игры (название игры это первый столбец в поиске) в подкаталог dl. Например sh dg d keen1 civ-rus

sh dg i game1 game2 : скачивает (если ещё не загружены) и устанавливает игры в подкаталог dos (этот подкаталог можно сделать симлинком на директорию с играми в dosemu, dosbox или real dos, типа ln -s /mnt/hda2/gamez dos)

Типичное использование:

* Сохранить в отдельную поддиректорию файл dg.py
* echo 'python3 dg.py $* | sh' > dg
* sh dg u
* sh dg i civ-rus bounty pole-sch

(upd: изменена ссылка на games.utf)

# windows 95 через pxe через memdisk
retro.talks
oldpc(51t, 2) — All
2022-05-19 10:53:00


Проприетарщине не место на HDD, конечно, но если одним глазком, да на посмотреть, то пусть лежит на pxe-сервере. Тем более, с hdd продолжаются глюки, теперь ibm не хотел грузиться вообще при наличии в компьютере hdd: пришлось стартовать без него а его подключать уже по ходу загрузки :)

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

А потом меня как током осенило про DriveSpace. Это же просто файл *.000, который можно туда сюда тягать.

В общем, поставил я win95, установил драйверы на видео, звук и сеть. Сжал её, попутно поставил минимальный plus! (проприетарщины мало не бывает) для ultrapack-перепаковки. В ie3 сайт не показывается, поэтому сделал сначала ie4, потом ie5.5. Поудалял ненужное, чтобы файл диска влез в 60 мб.

Для qemu-kvm создал файл диска на 63 мб (половина оперативной памяти), загрузился с win95-дискетки, установил загрузчкик. Потом методом mount -o loop,offset=32256 смонтировал hdd, и заменил там все файлы, кроме загрузчика io.sys.

Сделал эталонную копию, проверил в kvm - работает. Проверил сетевую загрузку - тоже работает :) Загружается мгновенно, все драйверы на месте, перезагрузиться не просит. Ну и пусть будет, 63 мб для проприетарщины не жалко :)

# old-games.ru, сайт старых игрушек
retro.talks
oldpc(51t, 2) — All
2022-05-17 19:54:00


Захотел скачать первую kings bounty. Пошёл на сайт old-games.ru. Это просто превосходно, никто не мог загрузить мой крутейший пентиум 450, а на этом сайте оно просит подтвердить 150 сертификатов и тормозит, как не в себя.

Кое-как добрался до страницы загрузки. И, конечно, там rar. В woody rar 2.80 и unrar 2.71, и, конечно, они этот формат не понимают. Не поиграл.... вот тебе и сайт старых досовских игр.

# Архивы софта для linux
retro.talks
oldpc(51t, 2) — All
2022-05-17 13:43:00


Чем хорошо использовать старые Linux/Unix? Тем, что пакеты зазеркалированы и доступны до сих пор, хошь Debian 2.2 ставь, хошь OpenBSD 2.8 или другую любимую систему.

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

Поэтому хочется собирать (а также зеркалировать) подобный софт. Я начинаю, на http://p2.51t.ru/pub/oldlinux/ выложены старые версии 8 и 9-х опер, а также ms ttf шрифты (.exe) в одном тарболе. Впоследствие положу туда Knoppix 3.7 Russian Edition, её тоже трудно найти.

Попутно ищется Knoppix 3.2/3.3 RE (именно RE), и openoffice русский от альта для Woody.

Всё ненужное - в ченчлог, соберём мы каталог!

# Thinkpad 390X : проблемы с OpenBSD и Knoppix
retro.talks
guest(51t, 3) — All
2022-05-08 15:02:00


Не всё так однозначно.

Делаем startx (от рута, ибо от юзера нужен suid). Ага, не запускается. Раньше всегда запускалось. Вот те, бабка, и новые версии, совсем стариков не уважают.

Смотрим ошибки. Пишет что не найден модуль neomagic, и нет палитры в 24 бита. Хорошо, делаем startx -- -depth 16, запустилось. Тут новая напасть, если система уходит в гашение экрана, то обратно уже иксы не просыпаются. При попытке сделать xset -dpms следует мгновенное зависание.

По итогу этого родился конфиг:
/etc/X11/xorg.conf.d/10-monitor.conf

Section "Screen"
    Identifier "scr0"
    Monitor "mon0"
    DefaultDepth 16
EndSection

Section "Monitor"
    Identifier "mon0"
    Option "DPMS" "false"
EndSection




Выйти из иксов по-прежнему нельзя, будет просто муть на экране, но пользоваться уже можно :) Пишу этот текст в этой самой OpenBSD 7.1 на этом самом Thinkpad 390X. Ура.

Теперь погрузим кнопиксы по сети. На хостовой машинке всего 3 гб свободного места, поднимем там ещё и nfs и будем грузить Кнопиксы.

Кнопикс 3.7 - не грузится, доходит до инит и всё. То же самое с Кнопикс 3.3. Есть в запасниках ещё и CD с 5.1 и 5.0RE. Они грузятся, но не понравились. И софта мало. А в 3.3 и 3.7 много. Но не грузятся.

Пойдём на золотую середину - скачал 4.0. Он работает, и даже DVD редакция, которая только 3 гб занимает, на nfs-сервер влезло. Но загрузка по сети всегда требует сети. Надо хранить локально.

В принципе, если поставить нужное и удалить реп фридоса, то места мегабайт в 800 там останется. Поэтому образ KNOPPIX был просто записан на фридос раздел и грузится grub-ом. Теперь на 6 гб диске живут 4 операционные системы на двух разделах: freedos, msdos в memdisk и KNOPPIX 4.0.2 Live на FAT32 и OpenBSD 7.1 на FFS2. Полностью укомплектованная и готовая ко всему рабочая станция, на базе Pentium 450 и 128 mb RAM. Ещё раз ура.

# Thinkpad 390X : OpenBSD 7.1 etc
retro.talks
oldpc(51t, 2) — All
2022-05-07 19:07:00


Ещё один IBM Thinkpad 390X. Только теперь не Mobile Pentium II 400, а целых 450. То ли экземпляр не столь удачный, то ли со времён 6.* поддержка старых систем стала хуже.

128 мб памяти, 6 гб диск. Классика.

Первые проблемы начались при сетевой загрузке установщика OpenBSD, ядро загружалось, но управление ему не передавалось. Попробовал bsd.rd от 6.0 - тоже не загружается. Оказалось, надо было найти более старый pxeboot. Разметил диск как 1.5 гб для FreeDOS, и 4 с остатками на bsdlabel - 320 мб на своп, остальное под систему. Учитывая, что я и весь веб-сайт OpenBSD в cvs скачал, а это с презентациями 600 гб, места остаётся не так уж и много. Из описанного набора убрал badwolf (вебкит вообще давно не работает на несовременных процессорах), для gemini добавил castor и telescope (проблема с отправкой русского текста, но сам текст показывает). Окей, емакс, линкс, дилло, все дела, жить можно.

Фридос. Интересная вещь, мне кажется они ненавидят тех, кто пользуется их системой. Если что-то кому-то нужно, они это удаляют. Они удалили doszip из среднего установщика (хотя там ещё 15 мб из 32 свободно), они убрали из дистрибутива shsucdhd для монтирования iso, убрали grub4dos. В общем, имея два набора дисков по 600 мб, эти крохи надо раскапывать по интернету. Но так норм, сетевуха Intel 8255 в этом ноутбуке ходит в интернет, понимает и https, и русский ввод в links текстовом (в графическом линкс русский ввод не заработал). Для ess solo1 есть даже звуковые драйверы под дос - но то ли драйверы такие, то ли колонки, но ведёт себя звук странно (хотя в openbsd я лебединое озеро прогонял, вроде там получше с этим).

Кое-как вкорячил туда Grub, теперь можно не только переключаться между осями, но и запускать внешние ядра!

С удивлением обнаружил, что для Neomagic 2200 есть видеодрайверы для Windows 3.1. Поскольку у меня памяти 128 мб, сделал диск в kvm на 63 мб, поставил туда msdos622, win31. Не на реальный же диск проприетарщину ставить. Запустил через мемдиск посети - работает, только русских букв нет. В итоге исправил - работает, жаль не видит фридосовские разделы (хотя это, может быть, как-то поправимо). Перекинул файлик (в сжатом виде 30 мб) на fat32 раздел, который итогово 1.5 гб, но там и репозиторий FreeDOS (раньше в freedos исходники были отдельно, бинарники отдельно, было удобно. А ща всё вместе, и чтобы разгрузить, пришлось делать скрипт перепаковки).

Теперь у меня уже 3 оси - OpenBSD 7.1 на 4 гб, freedos на диске и msdos622+win31 на мемдиске.

Конец первой части, пишу из Knoppix 4.0, сейчас отправлю через его конк :)

[upd: да, у konqueror были свои представления о форматировании. исправил до читаемого состояния]

# knoppix 4
retro.talks
guest(51t, 3) — All
2022-05-07 18:09:00


knoppix 4.0.2, firefox 1.0. сейчас уже никуда и не походишь, все в https стали, только тут как глоток свежего воздуха :)

# ДОс приведос
retro.talks
guest(51t, 3) — All
2022-05-06 19:17:00


Пишу из FreeDOS, браузер Links, процессор п2, сетевуха intel 8255, русификатор кейрус - тест русского языкаЁёё. sshdos старый, нужные шифры уже не поддерживает и не работает, а браузер вон нормально опеннет открыл.

# архив старого сайта
retro.talks
oldpc(51t, 2) — All
2022-05-05 20:39:00


http://f0662841.xsph.ru/openbsd-site/

хотя надо бы и сюда перенести

# ii-txt-0.9.tar.gz
retro.talks
oldpc(51t, 2) — All
2022-05-05 00:20:00


Новая версия, с поддержкой загрузки с других станций и
нумерацией в каталоге 0001.txt вместо 1.txt

ii-txt-0.9.tar.gz

# архив эхи oldpc.51t.ru
retro.talks
oldpc(51t, 2) — All
2022-05-04 19:50:00


Найден старый архив эхи (читать лучше в revert):

http://p2.51t.ru/ii/oldpc.51t.ru?rev=1

# OpenBSD 7.1 2CD Pentium II desktop set
retro.talks
oldpc(51t, 2) — All
2022-05-02 16:24:00


Выпущен традиционный набор "OpenBSD для Pentium II", теперь на двух компакт-дисках.

Описание и подробности: http://p2.51t.ru

# создание эхи
retro.talks
oldpc(51t, 2) — All
2022-05-02 16:17:00


Данный вариант написан в OpenBSD 7.1 для самых маленьких, в разрешении 800x600.

Проверен в links -g, dillo, netsurf и badwolf. Эха old.pc запущена, всё по старым компьютерам будет здесь.

# Установка Etch с 8(?) CD дисков : дневник путешественника
retro.talks
oldpc(ping,11) — All
2020-10-26 03:57:51


Конечно, сейчас все разбалованы. Интернет, сеть, все удовольствия. Хочешь ставить etch - ставь etch, бери весь репозиторий, используй non-free, используй backport-ы. Или пиши на 3 DVD. Но вот можно ли жить с CD?

Все 21 CD я записывать не стал. Я записал 8 CD, и теперь посмотрю, можно ли жить с ними. Исходный компьютер - P3/1000, набитый 384 мб памяти. На etch выделено 3 гб на диске.

Правда, wifi прошивки на дисках нет. Но их нет ни в etch non-free, ни в etch-backports, так что в любом случае эту прошивку надо ставить вручную. Но мы то живём без сети, так что прошивку проигнорируем вообще. Без сети, значит с CD.

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

Дискотека начинается.

Диск первый
-----------

Всё загрузилось, console-cyrillic на месте, можно писать. С первого диска прежде всего нужны иксы и gnome, но и вообще не помешает поглядеть, что там есть.

Так, из задачи desktop берём alsa-base, alsa-utils, desktop-base, iceweasel, menu, xorg, xresprobe, и оба xserver*all. twm тоже берём. Из гнома не берём блютусы, принтеры и прочее не особо нужное, остальное берём, там разберёмся, что именно набрали. Ещё не берём gnome-screensaver и update-manager, надеюсь их потом в зависимости не засунут.

Ставим. С первого диска ставлю сразу, с остальных буду просто накапливать отметки для установки, а потом ставить разом, чтобы дискотека "вставьте диск 1, 2, 28", была один раз, а не постоянно. Говорит, будет занято 815 мб. И уже занято 374.

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

Опс, случайно выключил питание, а батареи в ноутбуке нет. Сейчас сделаем dpkg --configure -a, посмотрим что там. Так, иксы вроде запустились. Ищем дальше. build-essential - берём! Берём и linux-headers, может пригодятся.

openoffice-core тоже поставлю, остальные компоненты openoffice поищу на других дисках. Ещё по мелочи полезного. apache2 поставлю, буду сам к себе в гости ходить.


Диск второй
-----------

acpi-support и cpufrequtils - они обычно по сети сами ставятся, поэтому беру. Собираем весь OpenOffice.org. Gimp, порисуем. Иксовые русские шрифты - нужно. Сейчас попробую поставить и посмотреть, затребует ли диск 1. Затребовал. Ладно, потом выдам


Диск третий
-----------

Русский хелп для openoffice. Я и сам openoffice открываю крайне редко, а уж хелп вообще никогда, но для порядка поставлю. Появились kdegames, но их ставить не буду. myspell-ru пригодится. Русская локаль для iceweasel 2.0 тоже - буду на свой апач ходить, как русский человек!

По-прежнему нет ни полного vim, ни mc. Перешёл с vim.tiny на gedit.


Диск четвёртый
--------------

parted потом пригодится для gparted и qtparted, беру. minicom и setserial (без него тут нельзя даже модуль irda запустить) нужны. cvs... шарман! беру. subversion тоже. Наконец-то появился vim (но не gvim) и emacs21 (не беру). planner пусть будет, буду планировать. imagemagick нужен всегда. mplayer, отлично! qemu что-то у меня мусор на экране писало, повторно ставить не буду. php5 для apache - пригодится. плюс wine. плюс xpdf (хотя уже есть evince). плюс ещё немного полезняшек. ура, mc! только на четвёртом диске.


Диск пятый
----------

Тут уже появляются игрушки. Сейчас это bsdgames, planetpenguin-racer и frozen-bubble. Пока берём все три. Появился метапакет gnome, предлагающий дополнительные фичи. scribus. Полезняшки для gimp. sqlite3. dillo. squid ставить не буду, сами к себе буду коннектиться напрямую. compiz завезли, но он без надобности.


Диск шестой
-----------

Перед записью дисков я специально смотрел, на каком диске battle for wesnoth. на шестом, а его кампании на седьмом. vrms тут же, без non-free он будет мною доволен. git версии 1.4.4, нужно. разные документации и howto, набираем оптом. дока по питону в contrib, теперь vrms будет недоволен. Кроме веснота из игруш есть freeciv, supertux, экстры для ppracer, scummvm и ещё некоторые - беру только перечисленные. Иконки и темы для гнома, погламурничаем. dosemu в contrib, нужная вещь на старых компьютерах, dosbox они не тянут. iceape (вариант seamonkey). icewm на голодный год берём. Прочие мелочи


Диск седьмой
------------

mercurial используется мной для контроля версий статей oldpc notes, вот и она на седьмом диске. в игрушках nethack-console, кампании веснота и несколько украшалок. tomboy для заметок. шаблоны для scribus. freedos для dosemu (странно, что они по разным дискам). xchm.


Диск восьмой
------------

Вообще ничего интересного. Интересно, зачем я его записывал. Ладно, поставим nexuiz версии 2.2, посмотрим как это добро тут взлетит на атишной карточке. Хотя вот glabels есть, буду визитки рисовать. О, tuxpaint, со штампами, вещь. freemind, посмотрим посмотрим. phpsysinfo какое-то - ну хоть будет, куда браузером ходить.


Эксплуатация
------------

Сразу понимаю, что пропустил localepurge. Она есть, но на каком диске, сейчас не скажу. Остальное вроде пока на месте. Кстати, интересно что gparted уже стоит, хотя самого parted нет, странно. Итак, это всё затребовало 1002 мб на диске, сейчас посмотрим, какие диски ему понадобятся:

вставьте диск 1. о, много ставит, в том числе и gnome-screensaver, как я и предполагал. вставьте диск 2. диск 4. ох, это всё метапакет gnome притянул, видимо, и abiword и gnumeric и всё-всё-всё. диск 8. интересно, зачем мне nexuiz на тачпаде? диск 5. диск 6. диск 3. диск 7.

Надо внимательно изучить диск 9 (и 10), вдруг с ним будет ещё интереснее. Точно знаю, что на 9-м диске есть supertuxkart 0.2, данные от которого есть на восьмом... Изучил, есть смысл записать, есть полезные вещи. Или тогда уже восьмой не надо было писать :) когда-нибудь, надеюсь, запишу все 21 штуки, будет домашней реликвией. :)

Всё поставилось, свободно 320 мб. После localepugre - 637. nexuiz тормозит сильно, при этом смысла на тачпаде нет. удалить! ppracer тормозит, туда же.

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

Но сначала записать ещё пару дисков.


Девятый диск
------------

Записал диски 9, 10 и 11. Болванок больше нет. Что у нас на девятом? Ставим игры: blobwars, bos, freecraft, prboom, powermanga, tuxtype. И по мелочи.


Десятый диск
------------

tcc можно покомпилировать. diveintopython, почитаем. cssed, редактор css - посмотрим. gnotepad+ - тоже посмотрим. из игр поставлю gtans, люблю эту головоломку. посмотрю, что такое mazeofgalious. редактор карт для wesnoth тоже пригодится. gtodo-applet проверим. screem - написано, среда разработки сайтов для gnome, и её проверим. mediawiki - можно будет локально заполнять. Хотя не, оно mysql требует, эта версия ещё не поддерживает sqlite, отказываемся. То же касается wordpress - я как-то как раз в районе etch поставил wordpress из репозитория "как есть", и запустил... на IBM R40 с процессором P4-1600 стартовая страница 40 секунд открывалась, другие вроде вообще не открылись. Так что на p3-1000 я даже не надеюсь, а настраивать в надежде на ускорение не собираюсь, не особо оно и нужно. gwaterfall, говорят, шрифты показывает - проверим. gambas - только runtime: вроде бы, на 11 диске остального нет, жаль.


Одинадцатый диск
----------------
apt-zip для офлайн установки, пусть стоит. gnu hello для вежливости. python2.5-doc (а в etch есть python 2.5? что-то не помню). выбрал python 2.5, но не знаю, на каком он диске. игры пошли... falconseye. gweled. ri-li :) starfighter. xdesktopwaves. holotz-castle. kobodeluxe. nethack-gnome. кстати, не помню такого. ставлю ttyrec для консоли. asciidoc древней версии, тоже интересно. zim. вот, пожалуй, и всё. выбрано на 379 мб. что-то пошло ставиться с 11-го диска. диск 9. диск 4. диск 6 (вот где python 2.5 притаился). диск 8. диск 10. диск 5. диск 1 (я уж боялся, его забудут). диск 2. начинает надоедать. диск 3. всё. для установки софта с трёх дисков понадобилось всего-то 10 дисков из 11, причём в непонятном порядке. И почему-то не понадобилось ничего с диска 7.


Живём
-----

Не поставил jigdo, хотя не особо и надо, места свободного нет. Не поставил irda-utils, хотя тоже надобности особой нет. Вообще, чего-то доставлять страшно - опять дискотека будет. Лучше наотмечать один раз всё, и только потом всё ставить.

Открыл screem. Мда, какой-то он странный, неудивительно, что он не выжил (он же не выжил) по сравнению с тем же bluefish. bluefish отмечу для установки, а дискотека будет тогда, когда отмечу всё, что забыл. gnotepad+ на gtk1, ой какой шарман! понятия не имею, как менять gtk1-темы. кандидат на удаление сразу. xfishtank, видимо, в gnome не работает. xdesktopwaves работает. Потом на icewm проверим.

glabels работает. Есть даже наклейки на дискеты, как мило. tuxpaint со штампами - обожаю! freecraft работает, эх blizzard, забанили такую игру: сейчас был бы нормальный второй warcraft. оригинал на всём старше первого pentium летает так, что играть невозможно. bos на том же stratagus тоже работает, но тут я не разбирался. freemind засыпает ошибками java и не запускается, кандидат на удаление. cssed работает, но я в css не особо разбираюсь. lshw-gtk вообще практически ничего не показывает, на удаление.

В остальном комплект достойный, можно жить и радоваться. По времени вся эта установка заняла примерно столько же, сколько на подобный компьютер ставится какая-нибудь windows xp, особенно через DOS. Зато там после установки только paint и косынка, а здесь - всего и много!

$ vrms
No non-free packages installed on deb4cd! rms would be proud.


Вывод
-----

Одинадцать дисков с софтом, фантастика! Столько всего! С таким набором не стыдно идти в гости туда, где есть старые компьютеры. Но не покидает ощущение, что самое интересное осталось на остальных десяти дисках. :) Когда-нибудь я запишу их все. И боюсь представить, как будет выглядеть установка в этом случае.

Сейчас запакую это письмо в бумажный конверт и отправлю почтой (бумажной) на ближайшую станцию idec. Жизнь без сети есть!

# браузеры на webkit больше не работают на p3
retro.talks
oldpc(ping,11) — All
2020-10-21 14:19:00


Теперь окончательно всё. Если раньше что-то где-то как-то можно было (кстати, самодельный браузер на вебките в дистрибутиве slitaz linux довольно неплохо работает с современным вебом на p3 со 192 мб памяти), то теперь в OpenBSD 6.8 любой вебкитный легковесный браузер (luakit, vimb, surf, midori) пишет Illegal instruction.

Seamonkey (2.49.5) всё ещё работает. Медленно, конечно, но lor загрузило, даже с рекламой. :)

# поставил wifi на omnibook 6100
retro.talks
oldpc(ping,11) — All
2020-10-21 13:28:43


Странно, но в omnibook 6100 почему-то вообще не реагирует на pcmcia, в любой ОС. Обычно, если даже что-то не работает в pcmcia, оно шлёт ошибки pcmcia, а тут везде - полный молчок.

Зато, что я вообще вижу впервые на ноутбуках, тут два minipci-слота. В первом, вероятно, стоит комбо-карта, а вот второй - пустой. У меня валялось две minipci wifi, ipw2200 и ti ac100 или как-то так. оба требуют firmware (я без firmware только ralink 2500 да ath5k в пост-madwifi-йную эру помню).

acx у меня в OpenBSD сыпал какими-то ошибками и не хотел работать, да и вообще какой-то он весь ржавый, сколько ему лет и зим не припомнят даже сами сторожилы. Вставил ipw. Поскольку антеннка у меня одна, а гнёзд под неё два, Main и AUX, вставил в Main. Всё это как-то затрамбовал в отверстие для слота, кое-как закрутил... вуаля, wifi работает даже в Debian Etch 4 (когда поставил прошивки из lenny). В OpenBSD тоже работает, естественно - я сначала на OpenBSD тестил. Не знаю, медленная или быстрая связь, но для текущих задач этого компьютера хватает :)

# Plan 9: экстремальный KISS #2
retro.talks
oldpc(ping,11) — All
2020-10-21 11:15:01


--------
from: hugeping
date: (21/10/20 09:07 GMT)
echo: std.hugeping
idec: ii://RgnPhsdf1I2MtQcMbZds
--------

Постепенно осваиваюсь в 9front. Стало понятно, что кое-где есть неточности в предыдущей статье. Но не ошибается только тот, кто ничего не делает! Так что продолжу свой цикл статей про жизнь в форке Plan 9 -- 9front.

http://hugeping.tk/lib/uploads/acme-mail.png

# Простота кода

Мне не повезло. На eeepc 1000px не работал ни wifi ни ethernet. Поэтому мне пришлось портировать драйверы alc и athn с OpenBSD. В случае athn, для скорости, я перенёс только код для своей карты AR2427. Все наработки по Plan9 я выкладываю сюда: https://github.com/gl00my/plan9hacks

Я понимаю, что этот путь доступен не для всех, но хочу отдельно заострить внимание на простоте кода Plan9. Там, где в Linux/OpenBSD написано 10 строк, в Plan9 будет одна.

OpenBSD:
	/*
	 * Create DMA stuffs for TX ring
	 */
	error = bus_dmamap_create(sc->sc_dmat, ALC_TX_RING_SZ, 1,
	    ALC_TX_RING_SZ, 0, BUS_DMA_NOWAIT, &sc->alc_cdata.alc_tx_ring_map);
	if (error)
		return (ENOBUFS);

	/* Allocate DMA'able memory for TX ring */
	error = bus_dmamem_alloc(sc->sc_dmat, ALC_TX_RING_SZ,
	    ETHER_ALIGN, 0, &sc->alc_rdata.alc_tx_ring_seg, 1,
	    &nsegs, BUS_DMA_NOWAIT | BUS_DMA_ZERO);
	if (error) {
		printf("%s: could not allocate DMA'able memory for Tx ring.\n",
		    sc->sc_dev.dv_xname);
		return error;
	}

	error = bus_dmamem_map(sc->sc_dmat, &sc->alc_rdata.alc_tx_ring_seg,
	    nsegs, ALC_TX_RING_SZ, (caddr_t *)&sc->alc_rdata.alc_tx_ring,
	    BUS_DMA_NOWAIT);
	if (error)
		return (ENOBUFS);

Linux:
	alx->descmem.virt = dma_zalloc_coherent(&alx->hw.pdev->dev,
						alx->descmem.size,
						&alx->descmem.dma,
						GFP_KERNEL);

9front:
        ctlr->tx_ring = mallocalign(sizeof(TxDesc) * DSCN, 8, 0, 0);

А вот ещё один очень наглядный пример из ACPI.

Linux:
	args[0] =
	    acpi_ut_create_integer_object((u64)region_obj->region.space_id);
	if (!args[0]) {
		status = AE_NO_MEMORY;
		goto cleanup1;
	}

	args[1] = acpi_ut_create_integer_object((u64)function);
	if (!args[1]) {
		status = AE_NO_MEMORY;
		goto cleanup2;
	}

	args[2] = NULL;		/* Terminate list */

	/* Execute the method, no return value */

	ACPI_DEBUG_EXEC(acpi_ut_display_init_pathname
			(ACPI_TYPE_METHOD, info->prefix_node, NULL));

	status = acpi_ns_evaluate(info);
	acpi_ut_remove_reference(args[1]);

9front:
	p = amlwalk(dot, "^_REG");
	if (p != nil) {
		amleval(p, "ii", 0x3, 1, nil);
	}
Это не шутка, это эквивалентный код. Код из 9front это мой код, который внесён в 9front, который я писал изучая аналогичный код Linux.

Конечно, с одной стороны можно сказать, что это следствие примитивности, но не только. Весь код системы следует этой идее -- не усложнять!

Немного отвлекаясь, хочу рассказать, что похожие эмоции я испытал, когда смотрел код утилиты cat одной из ранних версий Unix. Исходный код делал именно то, что и должна делать утилита cat. Не больше и не меньше. Сегодня же, можно посмотреть на https://www.gnu.org/software/hello/ чтобы убедиться, насколько технологии переусложнены. Кто-то скажет, что это неизбежно. У нас появились локали, gettext, разные варианты системных вызовов и так далее... Всё это, конечно, так. Но... Как программисту, мне хочется спросить -- адекватна ли цена? В общем, архитектурная простота Plan9 сквозит во всём. Plan9 -- не продукт.

Итак, если вы программист (на C) -- проблем с доработками кода не будет. Кодовая база небольшая, доступна в /sys/src из коробки и очень быстро собирается/обновляется по mercurial даже на eeepc. C компилятор (вернее, даже серия компиляторов для разных архитектур) в Plan9 очень быстрый! Я так понимаю, написан он Кен Томпсоном. Система mk (аналог make) -- тоже очень быстрая и лаконичная. Ну, давайте что-нибудь соберём?

# Выход в сеть

Если у вас qemu установка, то сеть скорее всего просто работает. Попробуйте:

cat /net/ndb
ip/ping ya.ru

Я поднимаю wifi руками, скриптом. Мне так удобнее. Делается это очень просто:

bind -a '#l1' /net # l1 это моя wifi карта, cat /dev/kmesg
aux/wpa -s ACCESS_POINT -p /net/ether1 # ether1 моя wifi карта
ip/ipconfig ether /net/ether1 # dhcp

Как посмотреть доступные точки доступа?

cat /dev/ether1/ifstats

На самом деле bind '#l1' я делаю в lib/profile, до старта rio. Помните? У каждого процесса своё дерево файловой системы. А так, все процессы в rio будут наследовать его и /dev/ether1 станет доступным везде.

Дальше, разберётесь. :)

# git/mercurial

В 9front уже входит mercural. Давайте воспользуемся им, чтобы забрать проект 9front ports, там есть много чего полезного. Открываем окно rio. (Или запускаем win в acme).

cd /sys/
hg clone http://code.9front.org/hg/ports
cd 9ports/dev-vcs/git9
mk install

Теперь у нас есть git! На самом деле, есть второй способ сделать это, подмонтировав к себе один из сетевых ресурсов по 9p, например 9front.

9fs 9front
cd /n/extra
lc

Здесь вы найдёте git9.tgz, который можно распаковать и собрать. Для тренировки (и пользы!) предлагаю собрать irc7.tgz из extra. Скопировать себе в $home, распаковать, собрать (mk install) и зайти на канал #instead сервера irc.freenode.net.

Реализация git своя. Конечно, в виде файловой системы. :) Давайте заберём какой-нибудь проект по git. Я предлагаю попробовать собрать браузер netsutf.

cd
mkdir Devel
cd Devel
git/clone https://github.com/netsurf-plan9/nsport
git/clone -- это не опечатка! lc /bin/git/ да...

Ох, чуть не забыл. Все пароли (от ssh, http, wpa, от _всего_) хранит специальная служба factotum! Вы можете добавлять в неё свои пароли/ключи при запуске, чтобы не вводить пароли руками. Я делаю это через скрипт из lib/profile, который читает файлик и добавляет пароли в factotum. Это небезопасно, т.к. мой файлик -- открытый. Для безопасного способа смотрим man secstore.

Пример добавления пароля github:
echo 'key proto=pass realm=GitHub server=github.com service=http user=gl00my !password=password' > /mnt/factotum/ctl

Для сборки netsurf нужно следовать инструкциям: https://github.com/netsurf-plan9/nsport

Но, не буду разжёвывать и лишать вас радости исследования. :)

В портах вы найдёте golang свежей версии. Полезная в быту вещь.

// На данный момент, кстати, он собирается только если закомментировать строку CLEANCOMMAND в mkfile.

На eeepc мне удалось собрать только go14 (мало памяти), но в qemu установке собрал современную версию. Так что можно собирать софт для eeepc в qemu.

# Браузеры

"Современных" браузеров в 9front нет. Для многих "пользователей" это невыносимая потеря. А для меня это делает 9front настоящей отдушиной. В этой системе нет окна в зашлакованный современный веб! По-моему, это даже здорово.

Если серъёзно, у меня уже был опыт использования урезанных браузеров, так что был подготовлен. Для государственных сайтов и банков придётся использовать другие ОС или запускать в виртуалке (man vmx) OpenBSD. На eeepc я этого не делал. Ну, конечно, можно ещё по vnc ходить куда-то...

Итак, браузеры которые я пробовал.

## abaco

Канонический plan9 браузер. Если честно, чисто эстетически, очень понравился! Но, увы, в 9front он падуч. И, кажется, не поддерживает png. Короче, не рекомендую.

## mothra

Сначала не понравился. Но потом, оказалось, что он удобен. И есть у него кое-какие биндинги на клавиши, что удобно. Например: a ввод - однооконный режим. m ввод - режим скачивания (режим mothra). Выглядел он страшненько в основном из-за русских символов. Но мы уже умеем патчить код:

cd /sys/src/cmd/mothra
acme rdhtml.c
# меняем шрифты, я рекомендую везде dejavusans(it,bd)/unicode.12 и .14
mk install

Мой вариант изменений лежит на https://github.com/gl00my/plan9hacks

Короче, можно пользоваться.

http://hugeping.tk/lib/uploads/opennet-mothra.png

## netsurf

Работает, только для показа картинок нужно раскомментировать jpeg/png библиотеки в mkfile/mkfile.native и добавить флаги -DWITH_PNG -DWITH_JPEG.

Рендерит странички неплохо, но нет многих удобных фич mothra. Подходит для просмотра сайтов, с которыми не справилась mothra.

# Plan 9: экстремальный KISS #1
retro.talks
oldpc(ping,11) — All
2020-10-21 11:13:00


--------
from: hugeping
date: (10/10/20 15:02 GMT)
echo: std.hugeping
idec: ii://TF9RuFRon9u7ps9Owka3
--------

# Введение

Про операционную систему Plan 9 я слышал не раз. Но всё это время, мой интерес не переходил в активную фазу, ограничиваясь пассивным любопытством и чтением статей. Так продолжалось до настоящего момента, пока я всё-таки не попался в сети проекта http://9front.org

Я не буду здесь писать энциклопедическую информацию о Plan 9. Но если совсем кратко, то создатели Unix в лице Bell Labs (среди сотрудников которой числятся Кен Томпсон, Деннис Ритчи, Роб Пайк) однажды взяли и решили сделать _правильную_ ОС, без оглядки на проклятый Legacy Unix, в том числе и POSIX. Доведя идею "всё есть файл" до абсолюта и стерев грань между локальными и удалёнными файловыми системами. В качестве примера: tcp/ip это тоже файловая система. Поэтому, если мы подключим к себе удалённую ФС /net, получится что-то вроде NAT. Вот так просто и естественно. В общем, получилась бескомпромиссная, распределённая и при этом крайне простая и красивая ОС. Которая (с некоторыми оговорками) оказалась ненужной. Потому что существующие решения просто работают, и миру этого достаточно...

Но ребята из проекта http://9front.org форкнули Plan 9 и начали делать патчи, которые в том числе помогают Plan 9 работать на современном оборудовании. Итак, 9front можно сказать, это Plan 9, который лучше всего годится для того, чтобы поставить его на железо.

http://hugeping.tk/lib/uploads/mothra.png

На данный момент у меня есть работающий 9front на eeepc 1000px в котором можно даже что-то делать. До этого, я около полугода запускал 9front в qemu и читал различную информацию. И, честно говоря, мало что понимал. Я гробил файловые системы, не мог отредактировать файл и вообще... Не понимал ничего. В общем, я решил начать цикл статей о Plan 9, в которых я буду рассказывать о своём субъективном опыте. Конечно, я не знаток этой ОС, поэтому если кто-то может -- поправляйте меня в комментариях.

# Первые шаги

Итак, начнём.

Я начинал знакомство с ОС с чтения руководства dash с http://9front.org Руководство написано с юмором, с его помощью вы можете попробовать поставить 9front в qemu или на реальное железо (чего я бы пока не делал).

И вот, мы ставим ОС, отвечая на странные вопросы инсталлятора, стартуем... Иии... Что это?

Забудьте про всё, что вы знали. Здесь другой мир. Он прекрасен, но чтобы это понять, вам придётся пойти по пути аскетики и самоотречения. :) Шучу (почти). Для работы с Plan 9 нужна графика и мышь. Без этого -- просто никак. Это может быть ударом для вас. Поверьте, я сам пользуюсь emacs и помню кучу клавиатурных комбинаций. Здесь вам это не понадобится. Пройдёт немало времени, пока вы не привыкните к такому положению вещей и не начнёте получать от этого своеобразное удовольствие (ясность сознания). :)

На ноуте, в принципе, можно обойтись тачпадом. Короче, нужны три кнопки мыши. С случае тачпада это может быть тап 1, 2 или 3-мя пальцами. Или (в случае физических кнопок): 1я, 2я и 2я кнопка вместе с shift.

После загрузки вы увидите нечто, напоминающее терминал. Не спешите радоваться! Это не терминал, к которому вы привыкли. Ладно, наберите ls нажмите ввод. Ну, хоть что-то известное! Правда, вывод какой-то совсем уж аскетичный...

В общем, в этом окне (новые окна вы можете создавать нажав 2ю кнопку мыши и выбрав в меню New) вы можете что-то запускать. Если вы запускаете графическую программу, то её содержимое заменит собой содержимое окна. Это не то, к чему вы привыкли, но это удобно. Чем-то напоминает тайловые оконные менеджеры, когда вы заранее создаёте фреймы. Но пока просто наберите man rio и почитайте, как работать в этом странном "оконном менеджере".

Окно не скроллируется по умолчанию на новый вывод. Вы можете изменить это поведение нажав 3-ю кнопку мыши и выбрав scroll. То, что окно не скроллируется, минимизирует необходимось использования пейджера. Вы просто скроллите кнопками вверх/вниз. Хотя, пейджер всё-таки есть и называется 'p'.

Про историю команд -- забудьте. Клавиши вверх/вниз всегда скроллят окно. Перемещаться по тексту и по истории ими нельзя.

Текст в окне - это просто текст. Вы можете менять его, копировать и вставлять. Таким образом, можно воспринимать его как историю команд. Выбираете мышкой и делаете send. Команда выполнится.

Некоторые хоткеи всё-таки есть, и они -- на вес золота:

- C-a, C-e -- в начало и в конец строки;
- C-u -- стереть всё слева от курсора;
- C-f -- автодополнение путей в файловой системе (tab -- забудьте);
- C-b -- прыжок к приглашению;
- del - аналог C-c в Unix.

Ещё нюанс. Допустим, вы написали:

ls /usrr/glenda

Заметили, что опечатались. Вернулись курсором к r и стёрли его, нажали ввод.

Упс!

ls /usr
/glenda

При выполнении команд, курсор должен находиться в конце ввода! А так, выполнилась команда ls /usr. Используйте C-e.

К этому нужно привыкнуть и это непросто. Все рефлексы заточены на другое. В современных Linux командная строка обвешена дополнениями и клавиатурными сокращениями, но здесь всё не так. Что взамен? Простота! Нет никакого терминала, есть просто поток текста. И всё. Черные буквы на светлом фоне. Всё есть текст.

# Ещё несколько советов

- Используйте lc вместо ls. Вывод lc информативней. Например, после имён каталогов ставится /;

- Копирование в буфер обмена здесь называется snarf;

- Домашний каталог это $home или /usr/glenda в установке по умолчанию;

- Когда вы пишете что-то вроде grep, не надо заключать строки в "". Тогда в ввод эти кавычки и уйдут. Тут вам не bash, тут rc. У него совсем другие (более простые) правила эскейпинга. Можете использовать одинарные кавычки, если нужно. Например: g 'Kcaps' /sys/include/*. Да, g -- это рекурсивный grep;

- Некоторые утилиты расположены в подкаталогах. Например, ip/ping. Что это значит? Что выполняемый файл лежит в /bin/ip/ping;

- Посмотреть свой ip адрес: cat /net/ndb;

- Используйте walk | grep как аналог find;

- Скачать что-то (man hget);

- Смотреть pdf или картинки (man page);

- Браузеры: mothra, abaco (довольно падучий), можно собрать netsurf. Об этом будет другая статья;

- Для переключения раскладки можно запустить: kbmap /sys/lib/kbmap/us /sys/lib/kbmap/ru и переключать мышкой. Чтобы сделать переключение с клавиатуры, можно немного поменять rio, об этом -- в другой раз;

- Копировать каталоги здесь можно с помощью dircp, cp -R -- нет;

- fshalt -r -- перезагрузка;

- fshalt -- выключение;

- В домашнем каталоге есть bin/rc каталог. Здесь можете писать свои скрипты и они будут доступны для запуска. На самом деле, реализовано это за счёт bind. Сейчас поясню...

# Bind

В домашнем каталоге, lib/profile есть файл - который можно назвать аналогом .profile. Сделайте его cat и посмотрите. Видите?

bind -a $home/bin/rc /bin

bind позволяет делать объединение файловых систем. -a -- добавить файловую систему после. В данном случае, мы добавили bin/rc в пространство /bin. Короче, все наши скрипты из bin/rc видны в /bin. (man bind)

Следующая строка, заметьте, использует $cputype. Дело в том, что кросскомпиляция есть из коробки, и есть разные компиляторы (man 6c). И разные каталоги для бинарников для разных архитектур.

Интересно ещё вот что, если вы что-то забиндите в окне rio, а потом запустите другое окно -- не удивляйтесь, что там этого не будет. Пространство файловой системы наследуется процессами. Поэтому в новом окне будет пространство rio. То-есть, каждый процесс может настраивать свое файловое пространство как угодно.

Поэтому в profile стартует webfs (это реалиазция http протоколов в виде файловой системы -- ну потому что здесь _всё_ реализовано в виде файловой системы) -- тогда все процессы из rio (который тоже стартует из profile) смогут работать с вебом.

То, что пространство ФС персональное для каждого процесса имеет интересный практический плюс. Например, смонтировали вы флешку, чтобы отмонтировать её -- вам достаточно прибить окно. Ну или все окна, в которых вы её смонтировали. Хотя команда unmount тоже есть (обратите внимание, не umount, а unmount).

Из profile стартует графическая система rio с флагом -i riostart.

# riostart

Делаем cat /bin/riostart.

Это вот и есть стартовый скрипт rio. Можете кастомизировать под себя. Например, запустив kbmap с нужными параметрами (переключалка раскладки клавиатуры). Упс... Мы ещё не умеем редактировать файлы.

# Редактируем временную зону в acme

Давайте начнём учиться редактировать с того, что выставим нормальную временную зону. Дело в том, что в 9front нет Российских временных зон из коробки. Но это не беда. Ведь всё есть файл!

Пишем:

acme /adm/timezone/local

Открылся редактор acme. В нём -- ваша текущая временная зона. На самом деле acme это не только редактор, это среда. Что-то вроде emacs в Plan 9. Детище Роба Пайка, который, наверняка, писал golang именно в нём. Но только это KISS emacs. :) Я не способен сейчас научить вас работать в acme (тем более, что я сам только учусь), но кратко опишу его принципы.

В acme мы имеем что-то вроде тайлового оконного менеджера. Можем создавать столбцы (3-кнопка на Newcol) и делить их на части (3-кнопка на New).

В acme тоже "всё есть текст". Это значит, что вы можете редактировать зону меню так же, как и текст. Пока не делайте этого, просто не пугайтесь если вдруг сотрёте кнопку Newcol. Просто напишите её там, где вам удобно. :)

Например, добавьте в зоне меню команду win. Просто текст win. 3-кнопкой нажмите на win и запустите "терминальное" окно внутри acme. Другие полезные команды смотрите в man acme. Вы можете писать скрипты, которые будут командами. Скрипты могут выводить текст и потреблять текст из редакторы. Таким образом, можно сделать, например, команду indent параграфа. Кроме того, acme поддерживает файловую систему (да-да, как и всё тут!), с помощью которой можно управлять редактором. Так что в acme можно читать почту и делать что-то ещё, что вам понадобится, просто дописывая нужную вам функциональность.

Поиск делается дописыванием текста после меню | Look, выделением этого текста и 3-кнопка. Так же можно просто выделять текст и жать 2-кнопку.

Открыть файл по номеру строки: добавьте к имени файла в меню :число, выберете всё это и нажмите 2-кнопку.

Режим авто-отступа есть. Он включается Indent on (да, да - допишите это в меню и выполните).

Итак, у вас открыт редактор на файле local. Надо стереть содержимое файла. Стрелочки? СТРЕЛОЧКИ СКРОЛЛЯТ ТЕКСТ! shift-стрелочки? Нет! Выделяем текст мышкой и нажимаем backspace!

Да, настал момент суровой правды. Вы не можете перемещаться по строкам с помощью стрелок курсора даже в текстовом редакторе! Так что или бегите (пока можете), или -- продолжим.

На самом деле, это жутко раздражает по началу. Но потом, я стал замечать за собой некоторую дисциплину. Всё не так плохо, сознание разгружается. Просто редактируем текст по правилам этого мира. Сейчас, по прошествии времени, я даже нахожу в этом какое-то удовольствие и отдушину (после emacs).

Да! Подсветки синтаксиса нет. Робу не нравится смотреть на код, как на новогоднюю ёлку.

Итак, вернёмся к временной зоне. Для московского времени я оставил одну строку:

MSK 10800 MSK 10800

Это временная зона GMT+3 (в секундах). Зимнее и летнее время.

Сохраняем файл. Ах, да... 3-я кнопка мыши по Put. Если Put пропал - вы сохранили файл. Выйдете из редактора самостоятельно.

Но это ещё не всё! Если у вас в BIOS время настроено в UTC, то надо сделать следующее:

acme /rc/bin/termrc.local

Впишите строку:

TIMESYNCARGS=(-ra1000000)

И сохраните. Ну или вы могли бы убрать параметр L из TIMESYNCARGS в файле /bin/termrc в самом начале, но это хуже. /bin/termrc запускает termrc.local.

/bin/termrc - это скрипт, который стартует вашу терминальную станцию.

# Немного об архитектуре

То, что вы поставили себе в qemu (или на ноутбук?), в терминах Plan 9 называется терминальной станцией. Дело в том, что Plan 9 это сетевая система, где предусмотрены разные типы станций: терминал, файловый сервер, cpu-сервер итд. Границы между ними стёрты с помощью сетевой файловой системы 9p. Теорию почитайте тут: http://doc.cat-v.org/plan_9/4th_edition/papers/ А в 9front вы получаете как бы всё в одном: терминальная станция, файловый сервер и т.д. Но в теории, это всё можно настроить на отдельных машинах. И именно так Plan-9 использовалась в Bell-Labs.

# Файловая система

По умолчанию предлагается использовать CWFS.

"Файловая система" тут тоже реализована как служба-процесс. К которому можно подсоединиться и что-то сделать. Например, подключение к консоли:

con -C /srv/cwfs.ctl
help

Можете проверить fscache командой check.

CWFS это на самом деле интересная файловая система. Точнее -- файловый сервер. Он состоит как бы из двух областей. Есть fscache - в котором и идёт постоянная работа. И есть fsworm (Write Once Read Many) - это место куда архивируются данные и никогда не стираются. То-есть, когда-то ночью грязные блоки fscache сбрасываются в fsworm. Потом снова работаем с fscache. Сброс грязных блоков - это команда dump. Вы можете выполнять её руками через консоль: con -C /srv/cwfs.ctl, тем самым вы освобождаете место в кеше!

fsworm позволяет посмотреть любой слепок из тех, когда были сделаны dump. Смонтировать их можно так:

9fs dump

> Не выключайте питание во время дампа!

По началу я никак не мог понять, почему у меня кончается место на диске! Оказывается, забивался сравнительно небольшой fscache. Надо было бы сдампить его в fsworm. Конечно, cwfs на нетбуке это немного странно. :) Что я буду делать, когда забью fsworm? Вероятно, пересоздам его заново, скопировав последнее состояние в fscache?

# Редактирование plan9.ini

После первой установки, скорее всего вам понадобится поменять что-то в параметрах загрузчика. (man plan9.ini) Например, выставить более комфортное разрешение vesa. Включить acpi, поменять тип мыши и др.

Для этого надо подмонтировать специальный fat раздел:

9fs 9fat
acme /n/9fat/plan9.ini

Помните? Открывайте редактор из этого же окна. В другом окне файловая система не будет подмонтирована. По началу это сбивает с толку.

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

# Доступ к файловой системе по сети из Linux

acme $home/bin/rc/export
Содержимое файла:
#!/bin/rc
aux/listen1 -t 'tcp!*!564' /bin/exportfs -r /

Запустите скрипт в окне и монтируйте с Linux:

9pfuse <адрес>:564 <точка монтирования>

Исходники системы находятся в /sys/src/ :)

# Заключение

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

Погружение в Plan 9 для меня было непростым процессом, и я сам ещё нахожусь в самом начале пути. Но в следующих статьях я попробую писать более конкретно, сосредоточившись на конкретных практических задачах.

Примерный план статей такой:

- Собираем netsurf и irc (git, hg, порты, golang);
- Изменяем исходные коды системы (смена раскладки клавиатуры);
- Музыка (и видео???);
- Мои патчи: ethernet alc, ethernet athn, acpi, vgadb;
- Сравнение исходного кода ядер: openbsd, Linux, plan9.

Если что, пишите свои предложения/вопросы.



P.S. Edited: 2020-10-11 10:28:47

# obsd-p2-cd-6.8-i386.iso
retro.talks
oldpc(ping,11) — All
2020-10-20 15:23:21


Представляю свой традиционный неофициальный CD для офлайнового использования OpenBSD 6.8 на системах класса Pentium II

Диск не содержит многопроцессорного ядра bsd.mp и набора компиляторов comp68.tgz

Зато на диске представлены некоторые прошивки и набор пакетов для нетребовательного десктопа или домашнего сервера на базе систем P2/P3

http://d.51t.ru/pub/obsd-p2-cd-6.8-i386.iso

# links+ и librsvg
retro.talks
oldpc(ping,11) — All
2020-10-20 01:25:06


Смотрю, у зависимости links+ в графике - librsvg, которая занимает 55 мб в сжатом виде, и более 200 - в распакованном. Я всегда на свои CD помещаю links+, отличный браузер для старых пк, который в прошлом немало меня спасал. Этот CD (который скоро выйдет) будет первым, на котором графической версии не будет.

Написал маинтайнеру о том, нужна ли эта зависимость. Он обещал подумать.

# про Pentium II и его Celeron
retro.talks
oldpc(ping,11) — All
2020-10-19 08:56:00


Я в своих статьях несколько ошибся, называя процессор P2-400 Celeron-ом, хоть
OpenBSD его так упорно и называет, Debian его называет правильно, Mobile
Pentium II. У Celeron нет кэша 256 кб, как у моей модели.

Сразу же услышал несколько версий о том, что Celeron сильно уступал Pentium II.

Это верно лишь отчасти, когда мы ведём разговор о первых Celeron, которые были
вообще без кэша. Но про эти процессоры быстро все забыли. И, конечно, никаких
400 мгц у них и близко не было, только 266 и 300 мгц. Также, благодаря
отсутствию кэша, эти модели хорошо разгонялись (в тесте ниже 266 разогнан до
400, что дало прирост кадров в квейке с 27 до 39, а в unreal - с 15 до 23)

Потом вышел Celeron на ядре Mendocino, со 128 кб кэша. В отличие от Pentium II,
кэш там был на ядре и работал быстрее, чем на P2. Поэтому по результатам тестов
аналогичные процессоры на P2 и Celeron отличались мало.

Вот, например, тестирование: https://www.ixbt.com/cpu/mendocino.html

Немного цитат оттуда:

... 24 августа Intel представил еще два процессора из семейства Celeron — 300A и 333, которые, по сути, Celeronами не являются. Новые процессоры хоть и выполнены по 0.25 мкм технологии, но содержат новое ядро Mendocino (читается — мендосино), в котором интегрирован кеш второго уровня размером 128 Кбайт. Как известно, стандартный процессор Pentium II содержит 512 Кбайт кеша, но этот кеш находится вне ядра и работает на половинной частоте процессора. В Mendocino же за счет того, что L2 кеш расположен на одном куске кремния вместе с процессором, его частота повышена до полной частоты процессора. Такое решение должно обеспечить значительный прирост производительности.

... Celeron 333 показал производительность, сравнимую с Pentium II 333, а в тесте по игре Unreal даже обогнал его. Это говорит о том, что 128-килобайтного кеша достаточно практически для всех приложений. Однако то, что по WinBench98 CPUMark32 Pentium II 333 обошел Celeron 333 на более чем 20%, говорит о том, что все-таки существуют приложения, где 128 Кбайт кеша недостаточно.

... мы пытались найти среди приложений, активно использующих память, программы работающие на новом Celeron значительно медленнее, чем на Pentium II. Была проверена скорость конвертации AVI-файла MPEG XingMPEG Encoderом версии 2.0 и скорость архивирования программой WinRAR 2.04 c размером словаря 1024 Кбайта. Тестирование показало, что преобразование в MPEG выполняется на Celeron 333 на 2% медленне, чем на Pentium II 333, а архивация — на 4% быстрее. Таким образом, если реальные приложения, более чувствительные к размеру кеша, чем к его быстродействию и существуют, то круг их крайне ограничен и страшно далеки они от народа. Можно уверенно утверждать, что производительность ядра Mendocino сравнима с Deschutes и в офисных приложениях, и в играх.

Что касается мобильных Pentium II, то у них уже 256 кб кэша на ядре, и они
считаются самыми быстрыми в линейке Pentium II.

# Старое железо. Заметка №4: iDEC
retro.talks
oldpc(ping,11) — All
2020-10-19 03:00:39


= Старое железо. Заметка №4: iDEC
51t.ru
2020-10-19


== Фидо 21 века для компьютеров 20-го

=== Что?

Не знаю, как это правильно пишется, но мне нравится писать iDEC. Пусть думают,
что это придумали в Apple. Лишний интерес не повредит. Или пусть думают, что
это гламурный DEC. А что, модный PDP-11 для домохозяек - это красиво. Как раз
между стиральной и посудомоечной машиной поставить.

Есть такая проблема - некуда сходить по http. Конечно, есть мнение, что и по
https сходить-то особо некуда, лучше вообще дома сидеть и чай пить. Но по
http некуда сходить, даже если очень хочется.

Почему-то появилась мода насильно переводить пользователя на https, даже если
он об этом не просил. Всё для его же блага. Я почему-то думал, что это
пользователь должен сам выбирать, как ему посещать сайты: оказывается, нет.

В любом случае, на сайте http://oldpc.51t.ru никакого https нет. Там будет
собираться вся информация и все источники контента для старых компьютеров.

А если ещё и хочется пообщаться в какой-нибудь живой сети?

И тут гражданин с заднего ряда обязательно спросит "постойте, ведь есть фидо".

Хорошо, настройте-ка bink + тоссер + golded на OpenBSD.

Хорошо, мы не любим OpenBSD, это же самое на старом linux для современных реалий

Хорошо, берём готовый фидо-пакет, учим систему работать с кодировкой ibm866,
получаем пойнта, и у нас фидо, самое настоящее, оригинальное.

Но много ещё вопросов: что делать с бинарными файлами (вместо обычного
текста), что если хочется получать сообщения сразу на несколько систем (в fido
принцип outbound, забрал то, что на тебя лежит, один раз, и оно больше на тебя
не лежит), как посмотреть старые сообщения. И, конечно, как это всё настраивать.

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

И пока гражданин настраивает своё фидо, продолжим. Возьмём вместо майлеров,
тоссеров и прочих глиссеров обычный python2.4-2.7 (либо python 3 для тех, кто
более современен), и продолжим.

=== Что такое iDEC?

Упростим до предела.

По сути, это групповой мессенджер. Такой телеграм для домохозяек с гламурным
PDP-11 или хотя бы Pentium II.

Что лежит в основе мессенджера? Переписка.

Но что такое переписка? "Гы, лол" из телеграма - это переписка. И сообщения,
которые мчались на каретах неделями, это тоже переписка.

Только это разные жанры переписок. Никто не посылал "гылол" неделями на каретах.

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

Поэтому я люблю текстовый клиент. Он даёт ощущение текста. Позволяет
оперировать текстовыми файлами. И только потом превращать их в сообщения. Или
не превращать. Над сообщениями телеграма думать некогда, пока вы выписываете
"милостливый государь", там ещё 15 сообщений пришло.

Кто использует P2, тот никуда не спешит. Поэтому обстоятельное общение должно
таким пользователям понравиться. Всё равно, ходить по http больше особо некуда,
а тут сообщения сами приходят. В принципе, этим сервисом можно пользоваться
даже офлайн, перекачивая бандлы хоть через дискеты, но об этом поговорим в
другой раз.

=== Что нужно

Можно использовать веб-интерфейс, если браузер позволяет.

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

Что такое эха? Это когда кричишь куда-то "э-ге-гей", и тебе отвечают. Эха
это общая тема, в которую все пишут-читают. Например, эха oldpc.51t.ru
(ныне: retro.talks) это эха про старые компьютеры, там ещё заметки выходят.
Ну, те самые, где он про фидо врёт. Кто-то написал в эху - все увидели.
Вот такой вот телеграмканал, только без телеграма. Потому что эха.

Обычно на каждой странице каждой станции есть список эх, с сообщениями в них.

=== Эх, замечательно!

На данный момент по чистому http работают две станции:

http://hugeping.tk

http://idec.spline-online.tk

( http://ii.blcat.ru тоже работает)

Сайты прекрасно работают в Epiphany 2.14 из Debian Etch, и неплохо там смотрятся.

К сожалению, документации в виде чистого http мне найти не удалось. Думаю, в
ближайшее время я сам её переведу на http. Следите за retro.talks, сайтом и эхой

Но для обычного общения документация не нужна. Сайты устроены довольно просто.
Пользоваться клиентами чуть сложнее, но иногда оно того стоит. Особенно, если
эта система из области Pentium 1 с 12 мб памяти: он тоже может быть полноценной
iDEC станцией, если водрузить туда систему, поддерживающую UTF-8 и python 2.4.

=== Caesium

Curses-клиент, написанный на python 3. Интерфейс напоминает старый добрый
GoldEd. Настройки и горячие клавиши описаны в Readme. Хочу лишь заметить,
что клиент ничего не будет получать, пока не будет прописана строка авторизации
в конфиг-файле (строка должна быть после нужной ноды).

=== ii-txt

Текстовый клиент, работающий с python 2.4, 2.5, 2.6, 2.7. Проверен на Debian
Sarge и Etch (при локали UTF-8).

Если вы думали, что caesium это текстовый клиент, то вы ошибались. Caesium это
визуальный клиент. Текстовый клиент - это когда уходят и приходят текстовые
файлы, а вы провожаете их взглядом. Интерфейсом текстового клиента являются
просмотрщики и редакторы пользователя: для меня это Midnight Commander.

Для написания и публикации статей это очень удобно: я пишу статью в текстовом
файле, а потом лишь добавляю две строчки заголовка ИМЯ и ТЕМА, и копирую в
директорию нужной эхи под именем new. После чего жму на send.sh, и файл улетает.

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

Ссылка: http://ii.blcat.ru/s/ii-txt-0.9.tar.gz

=== Что почитать?

Ну, главная эха для всех старокомпьютерщиков, их центр притяжения - это,
конечно, retro.talks. Там и новые, вернее, Старые Записки выходят, там и
общение по теме, и другие сообщения. На станции hugeping.tk эха доступна и
по rss, так что можно читать её и из любого rss-клиента:

http://ii.blcat.ru/rss/retro.talks

Также среди тематических эх: текстовые (но с графикой, музыкой и прочими
спецэффектами) приключения Instead (хорошая тема для старых компьютеров,
это надо разобрать отдельно) в эхах группы std.*, linux в эхе linux.14,
болталка в эхе pipe.2032. Смотрите эхи на станциях, выбирайте и разбирайтесь.
( см http://hugepink.tk )

Как же будет приятно, расположившись за своим тёплым и прекрасным Pentium II,
да даже и Pentium I (лишь бы памяти хватило на установку старого OpenBSD или
Debian), погрузиться в мир вашего нового iDEC: сети 21 века, которая отлично
поддерживает компьютеры века 20-го.

=== Все здесь

Конечно же, это сообщение написано сразу в эху, и только потом попадёт на
сайт (в html, t2t, adoc). Написано оно в mcedit в Debian Etch, на ноутбуке
P-III, с прекрасной удобной клавиатурой (удобнее современных), отправлено
клиентом ii-txt. Я тут, буду писать сообщения и отвечать на вопросы.

Нам, старичкам, нужно держаться вместе. Нас дискриминируют, у нас забрали http,
нам желают скорейшего забвения, но у нас есть ещё то, что нас объединяет.

И если твой компьютер стар - здесь этого не стесняются, здесь этим гордятся!

http://ii.blcat.ru/retro.talks

(ссылки на старую эху были поменяны на эху retro.talks)

# OpenBSD 6.8 released
retro.talks
oldpc(ping,11) — All
2020-10-19 01:15:24


Лучший друг всех старичков, OpenBSD 6.8, наконец-то выпущен.

И, наконец-то, снова с песенкой!

https://ftp.openbsd.org/pub/OpenBSD/songs/song68.ogg

Ура, товарищи!

# ii-txt-0.8.tar.gz
retro.talks
oldpc(ping,11) — All
2020-10-18 06:36:25


Версия ii-txt-0.8, архив в base64, чтобы точно не потерялся. Примерно 5кб
в виде base64, 3856 байт в виде тарбола, MD5 c21ca0f8e107cf36fac64832e313714c

ii-txt-0.8.tar.gz

# Старое железо. Заметка №3: рецензия старых статей
retro.talks
oldpc(ping,11) — All
2020-10-18 02:53:00


= Старое железо. Заметка №3: рецензия старых статей
51t.ru
2020-10-18


== Былое и думы

=== Введение

Во первЫх строках хочу с огорчением заметить, что ii-txt (свою версию которого
я скоро опубликую) не работает "как есть" на python 2.3: нет функции set
(которая не особо то и нужна) и по-другому сделано кодирование-декодирование
base64: то есть, портировать на 2.3 можно, но единый код уже не получится.
Впрочем, и в Sarge, и в Etch есть python 2.4, где всё отлично работает.

Посему пересел я с Cel400 на крутейший Omnibook 6100: P3-1000, 256 mb RAM,
ATI M6. OpenBSD 6.8 там тоже отлично работает, но я пересел на Debian 4.0
Etch с Gnome. Тоже всё отлично! Единственное, что меня смущает - что когда-то
в убунте 6.10 в гноме, когда я нажимал ползунок громкости на ноутбуке,
появлялся всплывающий OSD информатор, показывающий текущую громкость. А в
Etch, вышедшем только через полгода, ни-ра-бо-та-ит! Громкость-то оно меняет,
но без спецэффектов.

Но всё равно, это крутейший Gnome 2.14+2.16, где я и пишу эту заметку в mcedit.
Поскольку достучаться до своего сайта я не могу, эта заметка будет сначала
опубликована в iDEC, и только затем как-нибудь перегнана в txt2tags, asciidoc,
html и перенесена на сайт oldpc.51t.ru

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

=== oldpc как замена старому сайту про OpenBSD

Целью oldpc notes является подача более-менее свежей информации.
Причиной закрытия сайта про OpenBSD стало "батюшки, как устарело-то всё!".
А что именно там устарело, мы сейчас и разберём.

Кроме того, сохранение всего текста в idec гарантирует, что сайт точно не
закроется, и информация будет доступна всегда. Конечно, копия старого сайта
доступна в виде архива http://51t.ru/s/51t.ru.tar.gz и кто-то даже его
зеркалировал... но я не помню, кто и куда. В общем, даже если все копии того
сайта исчезнут, навсегда сохранится моя рецензия на него. (хотя негейтуемые
эхи тоже имеют свойство исчезать)

Открваем главную страницу: http://51t.ru/s/51t.ru/

Тут устарело практически всё. Нет больше ни проекта gk11.ru, ни беседки, ни
эхи openbsd.talk. Причём, в архивах я даже не нашёл самой эхи openbsd.talk.
Видимо, она была только на моём сервере (эту эху я веду не на своём сервере).

Но не стоит печалиться. gk11 уже не нужен, так как есть хорошие современные
iDEC серверы, где есть всё, что нужно. Вместо эхи openbsd.talk про openbsd
есть эха oldpc.51t.ru (не путать с сайтом), где более широкий охват (а
поскольку на новом железе OpenBSD не особо комфортно себя чувствует, это
небольшая потеря).

Что тут, новости? Новости, понятное дело, давно уже старости.

Открываем раздел игр: http://51t.ru/s/51t.ru/games.html

Тут, в принципе, всё отлично, хоть сейчас печатай на буклеты, и раздавай на
улице вместе с диском OpenBSD. Кроме нескольких отличий. angband сейчас версии
4.1.3, это другая игра, я сам не знаю, как в неё играть, поэтому описание может
отличаться в деталях. Chocolate Doom перёшёл на аппаратную акселлерацию,
поэтому на старых компьютерах уже не бегает. PySol в 6.8 вроде бы сломан
из-за каких-то обновлений Python. И ValyriaTear обновился до 1.1, поэтому
вместо чистого русского языка больше полигры говорит на английском.

Ну а теперь сами статьи. Пойдём по ним снизу вверх:

Мой первый порт (записки капитана корабля, наверное) http://51t.ru/s/51t.ru/txt-firstport.html

По мотивам хакафона g2k14 http://51t.ru/s/51t.ru/txt-g2k14.html

Интервью с Вадимом http://51t.ru/s/51t.ru/txt-vzlor.html

... эти статьи имеют историческую ценность и рецензироваться не будут. Хранить и помнить.

OpenBSD на 8 гб http://51t.ru/s/51t.ru/txt-8gb.html

... просто анонс дистрибутива и среза репозитория, урезанного (урезанный срез,
ай да я, ай да Пушкина внук) до 8 гб. Списка пакетов нет, просто рекламная
брошюра, можно раз глянуть и смело забыть.

Полезняшки http://51t.ru/s/51t.ru/txt-polez.html

... до сих пор актуально. Разве что сайта edOS сейчас нет. Обзор полезняшек,
с матералом из этой статьи, обязательно будет одним из выпусков Старых Записок.

OpenBSD для начинающих №1 http://51t.ru/s/51t.ru/txt-beginners1.html

... мультик прикольный. А в остальном там что-то про дисковые разделы. Я и
раньше не понимал этого, и теперь не понимаю. И больше что про дисковые разделы
писать не буду. А так статья вроде бы актуальная, только вместо
MDROOTFSOPT='-m 0 -o space' лучше сейчас MDROOTFSOPT='-m 0 -o space -F 2',
чтобы создавалась система ffs2, а не ffs1. В остальном, статья так и осталась
непонятой, в том числе мной. Разделы это страшно, и каждый к этому страху
должен подойти по-своему. У нас про старые компьютеры, старые компьютеры не
жалко - развернул OpenBSD прямо на все шесть гигабайт доступного диска и не
паришься с разделами-шмазделами.

Сетевая загрузка http://51t.ru/s/51t.ru/txt-pxe.html

... короткая, но актуальная статья. Пока актуальная, так как выпуск Старых
Записок №5 будет про сетевую загрузку, и он будет ещё актуальнее, хоть и не
только про OpenBSD

Поверхностное сравнение браузеров http://51t.ru/s/51t.ru/txt-browser1.html

... просто рейтинг, один из многих. Сейчас, наверное, что-то в мире изменилось,
про актуальность сказать не могу. Могу только сказать следующее: все браузеры
стали жрать ещё больше.

Для начинающих №2 http://51t.ru/s/51t.ru/txt-beginners2.html

... ну, во-первых, ничего править уже не надо, installurl прописывается
корректно. Xft.xrdb копируется не туда, куда надо. И в целом, OpenBSD
молодого бойца должны быть другим. Надо, как минимум OldPC Notes регулярно
читать. :)

1000 мелочей для P2 http://51t.ru/s/51t.ru/txt-openbsd-pentium2.html

... архив скачать нельзя, но список пакетов до сих пор актуален. Опять же,
более подробно это всё будет разобрано на OldPC и OldPC Notes.

Практика Pentium 2/3 №1 http://51t.ru/s/51t.ru/txt-p2-prac.html

... оптимизм "Современная OpenBSD летает на 64 мб" несколько поугас - и ядро
стало жирнее, и иксы, лучше начинать современное со 128 мб. В остальном, это
просто доказательство "это работает" (или наоборот) с указанием моделей.

Практика P2/3 №2 http://51t.ru/s/51t.ru/txt-p3-prac.html

... проблема с видео на Dell это проблема с EDID, современные Debian тоже
выдавали там чёрный экран, хотя более старые работали, несмотря на активацию
framebuffer. Проблема со звуковыми esa(4) вроде бы решена. И опять же, это
просто факт "рабочести" железок, с картинками.

Зеркалирование OpenBSD http://51t.ru/s/51t.ru/txt-mirror-openbsd.html

... понятное дело, архивы за эти годы выросли. Теперь репозиторий для каждой
архитектуры подходит к 50 гб, а distfiles уже в районе 70. dpb -F у меня уже
давным давно не хочет нормально работать, для зеркалирования distfiles использую
просто make fetch и make checksum. Отличнейшего cvsync тоже больше нет,
теперь есть reposync, работающий через rsync. Более совместимо с другими ОС,
но менее удобно.

OpenBSD 5.7 для старых компьютеров http://51t.ru/s/51t.ru/txt-57.html

... если бы не картинки, то эту статью можно было бы перенести как есть в
очередной выпуск Старых Записок. Хотя некоторая информация там неактуальна.
В общем, после переработки и замены картинок текстом эта статья будет
перенесена. OpenBSD 5.7 до сих пор отличная платформа для старых компьютеров.

OpenBSD 6.2 CD http://51t.ru/s/51t.ru/txt-62cd.html

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

Для начинающих №3 http://51t.ru/s/51t.ru/txt-beginners3.html

... KARL теперь деактивируется иначе, rm -r /mnt/usr/share/relink. Вместо
synclient теперь используется wsconsctl, активация тапа тачем (велик и могуч
русский язык, а тапа тачнуть нечем) wsconsctl mouse.tp.tapping=1. В общем,
просмотреть для общего познания можно, но изучать по этим статьям OpenBSD не
стоит.

Практика P2/P3 №3 http://51t.ru/s/51t.ru/txt-px-prac.html

... здесь раскрывается страшная тайна, как отключить пищащий pc-speaker. Звучит
она так: config -ef /bsd, disable pcppi, quit. И перегрузиться в новое ядро.
И ещё обзор железа на OpenBSD тех лет. С тех пор прошло 3 года, и что-то
изменилось, нужны новые обзоры, на новых версиях.

Скатерть-самохостинг http://51t.ru/s/51t.ru/txt-localhub.html

... к вопросу использования старого железа + openbsd как хостинга. Думаю, тему
надо расширить использованием не только OpenBSD, статью надо дописывать.

=== Выводы

Подписывайтесь на iDEC-эху oldpc.51t.ru, сейчас она есть на станции http://hugeping.tk

Смотрите за сайтом http://oldpc.51t.ru

Тогда информация будет всегда свежей и актуальной. Записки пишутся, планета движется.

И главное. Старые компьютеры это круто! Клавиатура уж точно у старых
ноутбуков НАМНОГО удобнее. Столько текста, сколько я написал на этих двух
старичках за эту пару дней - я не писал уже очень давно! Отличные машинки для
печатания. Надоели уже крохоборы, которые то Insert схомячат, то PageUp/Down
перенесут туда, куда и третьим тентаклем не дотянешься. А уж сколько проблем
мне создала система, где F1-F12 нажимается ТОЛЬКО через Fn, без возможности это
изменить.

Пишите тексты, публикуйте в iDEC: в общем, выбирайте комфорт!

# Старое железо. Заметка №2: OpenBSD 6.8
retro.talks
oldpc(ping,11) — All
2020-10-17 07:33:54


= Старое железо. Заметка №2: OpenBSD 6.8
51t.ru
2020-10-17


== OpenBSD 6.8

=== Зачем нужен новый OpenBSD на старом компьютере

Ну, можно поставить что-нибудь старое. Только потом попробуешь сделать ssh
на свой хост, а он скажет, что нет поддерживаемого алгоритма. Захочешь
опеннет или лор через линкс или дилло почитать... а он скажет, что https
не https-ит. А уж отсутствие в Юникоде символа афро-лесбиянка-трансгендер это
вообще по сегодняшним меркам страшное преступление.

У меня есть две wifi карты для таких компьютеров - pcmcia-карта на malo(4)
и относительно современный wifi на urtwn(4). В старых дебианах добиться
их работоспособности не получилось - ни драйверов, ни прошивок (кстати, в
OpenBSD прошивки ставятся автоматически, но если нужно сразу, лучше позаботиться
об этом заранее и скачать прошивку вместе с установкой). Для Windows XP я
нашёл, пусть и не с первого раза, драйвер на PCMCIA-карту, и он даже видит
все сети. Но подключиться к роутеру с WPA2 оно просто не может.

Вообще, как выглядит подключение к сети wifi с wpa в OpenBSD?

iwconfig malo0 nwid MyNet wpakey MyNetKey
dhclient malo0

либо похожие две строчки в hostname.malo0

Как это выглядит в Linux, хоть современном, хоть более старом, без
тяжеловесных сред для network manager? "Ну, это надо настраивать
wpa_supplicant...". Кто-то вообще знает, как его настраивать?

Другой пример - запись CD. В разных версиях debian - оно разное, то wodim,
то cdrecord, то xorriso, то кто-нибудь ещё. И у всех разные наборы ключей.
Поэтому я никогда не писал диски из консоли, всегда использовал xfburn. Но
последние 3 раза оно мне просто испортило болванку: по-моему, там что-то
безнадёжно сломано, но поскольку диски мало кто пишет, никто на это не обращает
внимание.

И ещё аргумент в пользу новых версий - это такой немаловажный аспект, как
настройка иксов в старых версиях хоть Linux, хоть OpenBSD. С Windows это
упирается в поиск старых драйверов.

Ещё пример. Как записать диск в OpenBSD, хоть сегодняшней, хоть версии
многолетней давности?

cdio tao file.iso

если это rw-диск, то перед этим ещё cdio blank. Всё.

В общем, установка современного OpenBSD имеет немалое практическое применение:
имеем какой-никакой веб, почту, rss и даже современный вариант fido под
названием IDEC, и всё это через WiFi и без проблем с https.

Раньше модно было себе делать "компьютер под фидошку". Вот и сейчас тоже можно.
Я себе сделал. Пишу с Celeron P2/400mhz. И закидываю этот текст и в фидошку,
и себе на сайт через ssh. Ни в Windows XP, ни в Debian 4.0 я бы так сделать
не смог.

Теперь, когда я объяснил, зачем, можно посмотреть, как.

=== Трудный путь OpenBSD 6.8 на старые компьютеры

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

Нет, конечно есть большое преимущество между старыми ОС, где надо вручную
ставить драйверы - это тот самый поиск этих драйверов. Например, на отличную
PCMCIA-карту Psion 10Mbit + V90, которая 16-битная и работает даже на самых
древних ноутбуках, я не нашёл драйвер ни для одной версии Windows. В то же
время, все версии Debian этого века (привет тем, кто читает это в XXII) и
все версии OpenBSD этого века эту карту видят из-коробки. И так со многим
старым оборудованием. Осложняет ситуацию и то, что сейчас, сделав запрос
"поиск драйвера", вылазит какое-то несметное количество полуспамных ссылок,
которые вместо самого драйвера предлагают скачать "утилиту для скачивания
драйвера". Боюсь представить, что именно там скачивается, не пробовал.

А если надо найти драйвер не на 1 ноутбук, а на 20... тут или OpenBSD спасёт,
или уже никто не спасёт.

Но всё равно, поддержка железа, даже старого, в OpenBSD... прихрамывает.

=== Наш первый враг видеокарта

Большинство ноутбуков класса P2-P3 идут с видеокартой ATI Rage Mobility, или
просто ATI M1. С этой видеокартой проблем в OpenBSD нет, всё будет работать.
У меня самого лет 10 был такой ноутбук, он видел и Саржа, и Ленина, и Сквизина,
и многое другое, включая OpenBSD. На текущем ноутбуке такая же видеокарта.

Однако часто встречаются видеокарты, с которыми у OpenBSD не так хорошо. Тут
отмечу SiliconMotion LynxEM+ (и другие модели Lynx). На ноутбуке IBM 1200
Type 1161 эта видеокарта не работает до OpenBSD 4.6, а после 4.6 постоянно
выдаёт на экран разный мусор и ядовитые палитры. Что несомненный прогресс,
поскольку Type 1171 с такой же видеокартой вообще не работал.

Плохо себя зарекомендовали карты CyberBlade. А вот в Neomagic всё зависит от
модели, NM220 работала отлично, а вот другие модели с 3D в названии - дико
тормозили.

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

Для владельцев более новых компьютеров дополню, что из 4х моих более серьёзных
ноутбуков: (1)Asus с Ryzen2500 и видео Vega 8 (там есть еще nvidia gtx 1050,
но nvidia в принципе не поддерживается в OpenBSD) 1920x1080, (2)Asus с N4200 и
видео Intel 1600x900, (3)13" DEXP с видео Intel 1920x1080 и (4)11" кто-то ещё с
Intel 1366x768 второй и третий ноутбуки в принципе перестали загружаться в
OpenBSD 6.8. Судя по моему анализу коммитов - из-за некорректного видеорежима.
Ждём исправлений когда-нибудь.

=== Наш второй враг - звуковая карта

Есть некоторые звуковые карты, которые требуют прошивки. Например, популярная
в ноутбуках ESS Maestro 3 (там несколько похожих звуковых карт в этом модельном
ряду). Отличить эти карты очень просто: мы не добьёмся от них никакого звука
в Debian, пока не сходим на сайт alsa, не скачаем там исходники прошивок, не
скомпилируем их и не разместим вручную в lib/firmware. В отличие от других
устройств, чьи прошивки есть в non-free, этих прошивок в Debian нет.

Что мы делали в OpenBSD до 5.7 включительно? Просто включали и слушали звук.
Что мы делали после 5.7? А ничего, эти карты были просто сломаны, и вместо
звука выдавали хрюканье и скрипение. Но. Недавно я проверял одну такую карту в
6.7, и она там работала! Означает ли это исправление ошибок, или это просто
конкретное исключение на конкретном устройстве, покажет время и дополнительное
тестирование.

В общем, если проблемы со старыми звуковыми картами действительно исправлены,
тогда звук можно из списка врагов вычёркивать. Враг разбит, пал жертвою
коммитов.

=== Наш третий враг - PCMCIA

Тут вообще никакой закономерности нет. Одна карта на одном ноутбуке видится в
Debian, но не видится в OpenBSD. Другая на другом - видится в OpenBSD, но не
видится ни в Debian, не в винде. Что это, как это и что с этим делать - я
понятия не имею. Я с этим просто живу.

=== И не друг, и не враг, а так - KARL

Вы прошли почти весь этап установки, пробежали циферки "устанавливается
пакет такой-то 100%, такой-то 100%". И тут висит клавиша [done], на которую
можно нажать, чтобы сделать завершение установки. НЕ ДЕЛАЙТЕ ЭТОГО!

Тут в дело вступает KARL. То есть, перелинковка ядра. Даже на 256 мб с неплохим
свопом оно может рухнуть, а если не рухнет - компилироваться будет очень
долго. И потом будет так же компилироваться при каждой загрузке. На 128
встанет сразу, особенно если своп небольшой или его нет (сегодняшние версии
на 128 без свопа уже чувствуют себя плохо, но несколько версий назад это
был нормальный способ использования системы), и после перезагрузки система
будет неработоспособна.

Вместо нажатия Enter, чтобы подтвердить это [done], введите ! и нажмите Enter.
В появившемся приглашении консоли введите команду

rm -r /mnt/usr/share/relink

Затем введите exit, и только сейчас можно делать [done]

=== Что дальше

Если загрузка в установленную систему была удачной (что бывает не всегда),
чем нас порадует современный OpenBSD на Pentium 2 или 3?

Лично я сразу ставлю mc, neovim, neofetch, htop, icewm и awesome, затем
links+ с gui (командой pkg_add links+--), dillo, mplayer, youtube-dl,
cmus-ffmpeg.

Консольный Newsboat для RSS. Scrot для снятия скриншотов и feh для их просмотра.

Люблю рогалики, поэтому ставлю (в вариантах no_x11): angband, nethack обе
версии, stone-soup, cataclysm-dda. SDL версии на p2/p3 можно даже не пытаться
запустить.

rsync, unrar, xpdf и прочее - по вкусу.

Для впн-инга есть такая вещь, как dsvpn, deadly simple vpn, которая
элементарнейшим образом настраивается и на клиенте, и на сервере.

txt2tags и asciidoc (есть ещё asciidoctor) позволяют оформлять документы из
текста. Я пишу тексты на своём 400 мгц Celeron в neovim или mcedit (mc
любит крашиться в OpenBSD, осторожнее!) в формате txt2tags. После чего
перевожу в asciidoc. И уже asciidoc оформляю в html. Все три файла выкладываю
на сервер, а asciidoc немного правлю и отправляю в сеть IDEC.

Для контроля версий использую mercurial.

В качестве клиентов idec использую текстовый iitxt (который работает даже
с python 2.4) и caesium (golded-like редактор на python3).

Относительно же youtube и прочих видеосервисов сложно сказать, что можно
легко и просто с них качать. Да, youtube-dl работает, и mplayer вполне может
прожевать видео в низком качестве на pentium 2. Вот только есть маленький,
но в то же время большой вопрос с поиском ссылок: youtube ни в links, ни в
dillo не открывается.

Вот так и живём.

Теперь, когда мы доказали, что OpenBSD 6.8 очень нужен на старых компьютерах,
в следующих выпусках мы докажем, что он там не больно-то и нужен, есть вещи
и поинтереснее. Но не сразу. Сначала будут выпуски про IDEC и про сетевую
загрузку (ну и про прочее использование старых систем в качестве серверов для
полезняшек, облегчающих жизнь). Определённо, к OpenBSD 6.8 я ещё вернусь.

# OldPC notes #1
retro.talks
oldpc(ping,11) — All
2020-10-16 15:03:22


= OldPC notes #1
51t.ru
2020-10-16


== Жизнь со старыми компьютерами

=== Введение

Что можно делать с компьютерами класса P1-P3? Можно играть в старые игрушки для
DOS и старых версий Windows. Это круто. Правда, и оси для них (кроме FreeDOS),
и сами игрушки (кроме Shareware и освобождённых версий) скорее всего являются
нелегальными. Так когда-то решили их правообладатели.

Хотя в дальнейшем вариант для FreeDOS и shareware-игрушек будет рассмотрен.

Но начать хотелось бы с чего-нибудь хорошего. Хорошим в данном случае является
OpenBSD (вплоть до современного) и старые версии Debian.

=== Быстрый совет

Если не хотите читать дальше, то на выбор предлагаю 4 варианта - Debian 4.0,
OpenBSD 5.7, OpenBSD текущей версии (сейчас это OpenBSD 6.8), Knoppix 5.3.1 DVD
(с загрузкой по сети).

Почему Debian 4.0? Достаточно низкие системные требования, некоторые интересные
игрушки и проекты, которых нет в более поздних версиях. Кроме того, Debian 5, 6
и далее со всеми остановками имеют ключи подписи с истёкшим сроком годности:
установить их можно или с дисков, или переведя время на эпоху заката этих версий.

Почему новейший OpenBSD? Новейший софт, все самые новые юникоды, все самые новые
временные зоны (в отличие от etch), никаких проблем с https, с ssh. Можно поставить
KDE 3.5 (хотя в текущем состоянии он уже практически неработоспособен, надо
проверить). Можно нормально использовать Wi-Fi с современными точками доступа.

Почему OpenBSD 5.7? Ещё есть поддержка linux-эмуляции, можно запускать Opera 12
for Linux, меньшие системные требования, ещё не сломан звук на старых звуковых
картах, можно поставить полный KDE 3.5, ещё можно поставить grub (в 6.1 grub
уже нет).

Почему Knoppix 5.3.1 DVD? ГОРЫ софта на все случаи жизни (но есть и ошибки),
можно подсоединяться к современным SSH, можно даже открывать какие-то
современные сайты. И всё это без установки (загрузка по сети, с директории
HDD, с DVD диска).

=== Системные требования

Современный OpenBSD лучше не трогать без 128 мб памяти (и это при условии,
что будет прибит KARL). Для OpenBSD 5.7 можно начинать с 64 мб памяти.
Knoppix DVD в Live режиме - желательно хотя бы 128 мб памяти (при загрузке
icewm, kde 3 - хотя бы 256 мб). Ну а Debian Etch можно поставить и
эксплуатировать на первом пентиуме с 32 мб памяти. У меня на ноутбуке
hitachi flora с p133 и 32 мб памяти крутится OpenBSD 5.0, с иксами и icewm.

На 192 мб памяти уже можно запускать OpenBSD с kde3 и с wesnoth-lite :),
использовать Opera 12 через Linux-эмуляцию.

=== Трудная жизнь старых компьютеров

Почему на старые компьютеры нельзя поставить всё, что угодно? Основная
причина этому - веб. Когда в мире бушевала виста, с её требованиями 1-2
гб памяти, 3д графика и мощный процессор, я пользовался интернетом через
GPRS по ком-порту на Thinkpad с 486dx75 с 20 мб ram, и спокойно сидел в
форумах, смотрел разные сайты и не испытывал дискомфорта. Во времена
squeeze, то есть менее 10 лет назад, Thinkpad X21 с celeron500 и 128
mb памяти тоже вполне годился для веба, через opera или epihpany.

Когда я выбирал, что поставить на P133/32/516, я выбирал между OpenBSD
5.0 и Windows 8: обе вышли примерно в одно время. Решил всё-таки выбрать
OpenBSD. Шутка. Грустная. Показывающая, что ещё 8 лет назад, когда эти
компьютеры уже были музейными, всё было намного лучше.

Сейчас же браузер ест всё, что найдёт. И даже больше. Стремится от него
не отставать и остальной софт. Поэтому браузинг веб в современном OpenBSD
возможен на старых компьютрах только через графический режим links, через
dillo, и в самом "навороченном" варианте - через netsurf. Понятное дело,
что в таком варианте большинство сайтов будут практически или даже
полностью неработоспособны. OldPC будет стремиться сделать системы
дооставки контента для пользователей старых компьютеров, без https, со
старым дизайном, нормально отображающимся в links и dillo. Право получать
информацию должно быть у всех, и никто не должен быть дискриминирован
только потому, что у него Pentium II

=== Не выбрасывайте старые компьютеры!

Старые компьютеры - это старые друзья, которые, возможно, многое с вами
прошли. Если вы считаете, что с ними ничего уже нельзя сделать - то это
не так! С ними можно сделать много чего интересного, о чём многие даже
не подозревали. Сайт oldpc и журнал oldpc notes дадут нужную вводную
информацию для более глубокого исследования давно забытых вещей.

Данный выпуск был написан на ноутбуке Dell Inspirion 7000, Celeron
на базе Pentium II, 400 mhz. 128 mb RAM. Видео ATI M1. Диск 4гб,
из которых примерно 1.1 гб это Debian Etch и 2.9 гб это OpenBSD.

Оболочка IceWM, текстовый редактор Neovim. Мой .xinitrc

export LANG=ru_RU.UTF-8
export LC_ALL=$LANG
wsconsctl mouse.tp.tapping=1
setxkbmap us,ru -option grp:caps_toggle

icewm-session

# test echo creation
retro.talks
oldpc(ping,11) — All
2020-10-16 15:00:51


а что будет, если создать новую эху?

+++ Caesium/0.4 RC1

# мерж
idec.talks
iiii(ping,48) — All
2024-10-14 02:23:21


Сделал мерж всех старых эх в retro.talks. Shaos, можешь забирать :)

# Некорректные сообщения!
idec.talks
iiii(ping,48) — All
2024-10-13 06:23:52


В сеть попали некорректные сообщения в эху oldpc.51t.ru. Моё расследование показало, что эта эха есть только у hugeping и shaos.

Проблем тут две. Почти всегда в сети была станция, которая содержала в себе весь архив ii с 2014 года, сначала у меня, потом alicorn, потом lessmore.pw (у него, кстати, можно базу взять?). И сообщение, принадлежащее двум эхам, может сорвать им крышу, в любом случае не будет ничего хорошего.

Вторая: эха в самом сообщении должна совпадать с фактической, а тут в сообщении будет одна, а текущих - две. Тоже проблема.

Надо снять эху с фетча и вычистить некорректные сообщения. Либо грохнуть у обоих и восстановить из актуального архива, в неё давно не писали.

А какая сейчас вообще схема роутинга, кто кого фетчит?

И есть ли у кого архивы, кроме аликорновского? В нём 46 тыщ сообщений, а у меня много лет назад в архиве было уже 87 тыщ. Откуда вообще взялась old.pc, в аликорновской базе такого нет.

# ловите теперь спам и набеги :)
idec.talks
iiii(ping,48) — All
2024-10-11 14:50:28


https://www.linux.org.ru/forum/general/17755587

меня не фечьте, у меня тока для экспериментов станция

# живые
idec.talks
iiii(ping,48) — All
2024-10-11 05:22:04


Какие сейчас живые станции?

Живые серверы/клиенты?

# Клиенты ii/IDEC для ретрокомпьютеров
idec.talks
shaos(spnet, 2) — All
2024-10-06 09:23:20


Я правильно понимаю, что только я взялся писать клиента для ретрокомпов в 2021 году и до этого никто даже не пытался? Если кто забыл, то я начал писать клиента IDEC на ассемблере Z80 для продвинутого спектрум-клона Sprinter Sp2000 в конце декабря 2021 года, транслируя процесс на ютюб "вживую":

https://youtube.com/live/p20rd0bqZTs
https://youtube.com/live/uwEiQIeD5cw

(причём вотрое видео было ещё и встречей 2022 года)

С тех пор я несколько охладел к Спринтеру, однако написанное терять не хотелось бы, поэтому я могу переиначить написанное и продолжить присать IDEC клиента скажем для ZX-спектрума с сетевой карточкой Spectranet (где используется тот же WizNet чип, что и в моей сетевой карточке для Спринтера - W5100) ну либо вообще асбтаргироваться до уровня системы команд i8080A (КР580ВМ80А) и сделать возможным чтобы этот код ещё и на старых советских компьютерах работал типа Радио-86РК, Апогей, ПК-01 Львов и т.д.

# develop.16 и ping
idec.talks
doesnm(tgi,8) — All
2024-10-04 07:35:06


Хотел забирать develop.16 с пинг ноды чтобы читать в read only
Написал такое:
```
nodename ping
node https://club.hugeping.ru
echo develop.16
```
При синхронизации пишет:
Работа с https://club.hugeping.ru/
ОШИБКА
ОШИБКА
Нажмите Enter для продолжения
```
+++ Никто не знает, как правильно. Так зачем же выдумывать правила?

# Новая эха spnet.stats
idec.talks
shaos(shaos, 2) — All
2024-10-03 07:03:45


Создал у себя на ноде новую эху, куда раз в сутки буду засылать статистику по 10 самым активным визитёрам ноды (отдельно считаются активные минуты поинтовых запросов и активные минуты веб запросов):

https://sprinternet.io/iii-web.php?echo=spnet.stats

Иногда буду сюда перепосылать, если что интересное вылезет ;)

Кроме того сделал выписывание активных аплинков внизу вебстраницы вот в таком виде:

Last day top uplinks: tavern 41.7MB (5/hr), tgi 4.1MB (2/hr), ping 3.2MB (5/hr), Google 0.8MB (1/hr), Facebook 0.1MB

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

# urlы
ping.local
btimofeev(ping,6) — All
2024-10-01 15:45:57


hugeping, на твоей станции (а может и не только на ней), если вставить в конец ссылки символ запятой или скобки или точки, то эти символы попадают в саму ссылку и она не открывается.

К примеру, я хочу написать несколько ссылок через запятую https://linux.org.ru, https://opennet.ru(или так https://nethack.org), или пример с точкой https://crawl.develz.org.

# Другие эхи
idec.talks
doesnm(tgi,8) — All
2024-09-30 08:50:18


Мне кажется выбрав tgi как станцию я многое упускаю. Из эх тут по сути есть только idec.talks и на нее я подписан
Как можно дотянутся до других эх в этой сети?

+++ Никто не знает, как правильно. Так зачем же выдумывать правила?

# Оригинальный сервер ii
idec.talks
shaos(shaos, 2) — All
2024-09-29 05:13:16


Ни у кого не сохранилось? Для истории так сказать - версии от 0.1 до 0.5 (последняя?)
Веб-архив тупит https://web.archive.org/web/20140703233815/http://ii.51t.ru:80/
Вроде чегой-то лежало на битбакете по адресу https://bitbucket.org/51t/ii/
Теперь нету :(

# Игры по ii
idec.talks
shaos(shaos, 2) — All
2024-09-27 23:29:13


Если кто застал в конце 90-х начале нулевых были такие игры по E-mail - посылаешь свой ход некоему роботу емейлом и получаешь ответ через какое-то время, когда все игроки сделали свои ходы - а вот игры по ii (IDEC) кто-то когда-то делал?…

# Анархия хэшей
idec.talks
shaos(shaos, 2) — All
2024-09-27 16:18:11


В создании хэшей царит полная анархия я смотрю:

спек говорит заменять + и / на что-нибудь например 'A' и 'Z' (like A and Z for example)

ii-php заменяет на 'A' и 'z' (большинство старых сообщений сгенерировано так)

ii-go заменяет на 'A' и 'Z'

а вот iing имеет вот такой код

6d083914 (Andrew Lobanov 2017-06-05 11:21:48 +0500 52) def hsh(str):
438e377e (Andrew Lobanov 2017-06-05 12:35:50 +0500 53)     out = base64.urlsafe_b64encode(hashlib.sha256(str).digest()).decode("utf-8")
438e377e (Andrew Lobanov 2017-06-05 12:35:50 +0500 54)     return out.replace('-', '').replace('_', '')[:8].ljust(8,'A')

я не сильно флюент в пайтоне, но вроде это значит выкинуть - (используется вместо + в base64url) затем выкинуть _ (используется вместо / в base64url) потом взять 8 символов от начала и в конце сделать ljust(8,'A') который при данном раскладе не делает ничего?...

# Избыток абстракций
develop.16
Andrew Lobanov(tavern,1) — All
2024-09-27 13:26:55


Как бороться с сабжем в легаси-коде? Попадаются прямо такие вещи, что я проямо колдобюсь, когда сталкиваюсь.

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

Я ещё могу нафантазировать зачем нужен счётчик ReadLock'ов в RWMutex, но вот в самом обычном мьютексе это нафига? Причём реально по всему проекту этот счётчик не используется нигде.

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

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

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

+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.

# Кроссплатформенный календарь на текстовых файлах
develop.16
tuple(ping,54) — All
2024-09-27 12:52:27


Долго искал таковое решение, но не нашёл вообще. А именно: хотелось бы иметь файл или кучку файлов в одном календарном просто текстовом формате, которые будут распознаваться и просматриваться соответствующим календарным софтом и на linux, и на android.

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

Существует ли такое решение у кого-нибудь?

---
Из найденного самое ближайшее это использование calcurse - https://github.com/avidseeker/awesome-syncthing#icsx5 . Однако это работает только в одну сторону...

# Новая RSS-эха на английском языке - bot.slashdot (News for Nerds from slashdot.org)
idec.talks
shaos(shaos, 2) — All
2024-09-26 10:33:31


Сделал новую RSS-эху, которая будет обновляться автоматически каждый час:

http://shaos.net:8085/ii-web.php?echo=bot.slashdot

Подписывайтесь :)

Shaos

# fetches.txt
idec.talks
shaos(shaos, 2) — All
2024-09-26 07:53:39


Возвращаясь к теме 3-летней давности - нет желания добавить на узлы (хотя бы вручную) файл /fetches.txt чтобы можно было автоматически строить топологию сети время от времени?

ii://N9RNo0fkT9a9aolTxpaa

Как минимум Ordos(tgi,1) был за ;)

И что-то для идентификации узла через API надо сделать - например /nodename.txt с коротким именем станции внутри (типа там tavern, tgi, ping и т.д.) и можно количество поинтов ещё присовокупить после двоеточия...

# Вопрос
idec.talks
doesnm(tgi,8) — All
2024-09-25 14:51:58


Кто как ходит в IDEC? Я пока поставил Caesium в Termux, но делать cd ~/caesium и python caesium.py постоянно неудобно
Может вообще хранить где нибудь в Maildir и через Dovecot сделать уведомления в почтовый клиент? Ибо я даже не заметил небольшого наплыва актива в сети

+++ Никто не знает, как правильно. Так зачем же выдумывать правила?

# python.15
idec.talks
shaos(tavern,34) — All
2024-09-25 06:35:22


А почему вот эта эха отовсюду выпилена? Питон нынче не в моде? ;)

python.15 44 Python и разные проекты на нём

# dynamic.lessmore.pw
idec.talks
shaos(shaos, 2) — All
2024-09-23 12:27:23


А что случилось с сабжем?
Difrex тоже ушёл из сети?…

# Первая коллизия???
idec.talks
shaos(shaos, 2) — All
2024-09-22 07:05:07


Всем привет кто ещё тут!
Какое-то время назад в эхе idec.talks прилетело ко мне сообщение не в тему (причём со старой датой):
http://shaos.net:8085/IDEC-dup.png
А сегодня я обнаружил, что хэш этого сообщения упоминается в двух эхах:
idec.talks:v2gj6Qx0JJmoNlcjcJlg
lor-opennet.17:v2gj6Qx0JJmoNlcjcJlg
Получается в idec.talks пришло сообщение, которое по хэшу совпало со старым сообщением от сентября 2019 года в lor-opennet.17?

Shaos

# Всем привет
idec.talks
doesnm(tgi,8) — All
2024-07-20 10:49:40


Наконец-то дошли руки зарегистрироваться на какой нибудь публичной станции IDEC, до этого сидел в r/o.
Протокол интересный, узнал случайно читая другой форум.
Как тут вообще дела? На почте писали что жалуются что сеть мертвая, но никто не пользуется

+++ Никто не знает, как правильно. Так зачем же выдумывать правила?

# Я снова с новой эхой
idec.talks
Andrew Lobanov(tavern,1) — All
2024-06-03 13:20:55


Сабж. В таверне появилась эха m.d.s. Да-да, по мотивам той самой культовой радиопередачи. Публикую там небольшие рассказы (не свои).

+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.

# Бездна Света
std.game
Andrew Lobanov(tavern,1) — All
2024-05-02 07:04:31


Даже на ЛОР новость есть, а тут тишина.

Василий Воронков (автор игр "Переход", "Материк" и "Лидия") выпустил новую игру "Бездна Света".

Игра для «классического» INSTEAD, использующая графику и музыку. Время прохождения — более 6 часов.

Экипаж ГКМ «Грозный» отправляется к орбитальной станции «Кабирия», последнему рубежу
исследованного человеком космоса, где ему предстоит столкнуться с чем-то нечеловеческим.

+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.

# Новая RSS-эха
idec.talks
Andrew Lobanov(tavern,1) — All
2024-04-25 06:28:30


Сабж. После ухода Виктора из сети, кончилась и ii://lor-opennet.17. Я всё таки созрел подхватить её, но не люблю я цифровые постфиксы, доставшиеся нам в наследство с лохаматых годов.

Так что, на таверне запущена новая эха: ii://lor.opennet :)

+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.

# А ведь пропустили
idec.talks
Andrew Lobanov(tavern,1) — All
2024-04-15 10:03:30


26 марта 2014 года была выпущена в свет ii версии 0.1. Если кто не знает или забыл, ii это основа, на которой создана idec, который мы тут с вами вяло, но всё же пользуемся. Таким образом, этой движухе уже 10 лет :)

+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.

# Трудная проблема сознания в фильме "Престиж" Кристофера Нолана
std.hugeping
hugeping(ping,1) — All
2024-04-14 09:12:54


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

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

Сама идея не новая. Я, к сожалению, не могу вспомнить название старого фантастического рассказа, в котором кошмар ситуации состоял в том, что оригинал во время телепортации-путешествия не был уничтожен и пришлось "исправлять" ошибку... Но в фильме эксперимент подан даже более контрастно.

Фокусник, выполняя фокус с перемещением, не знает точно какой субъективный опыт его ждёт. Вот, он заходит в машину. Что будет в следующий миг? Мучительная смерть в закрытом резервуаре с водой или выход к публике под оглушительный гром аплодисментов?

Наивный ответ звучит так. Конечно, он испытает ужас смерти. Субъект -- это фокусник, заходящий в машину. Что тут думать?

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

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

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

Конечно, мы лишь представляем эксперимент. Нет никакой уверенности в том, что клонирование возможно в практическом смысле. Например, мы могли бы представить что в результате клонирования получался бы "истукан", в котором не было бы искры самосознания. Но вспомним обычное движение. Наше мироощущение остаётся с нами когда мы ходим по улицам. "Я" -- объективно существует, но при этом как будто ускользает от самого себя.

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

Мир устроен удивительно. Кому-то для осознания этого достаточно увидеть падающую снежинку. Другому -- потребуется погрузиться в мир квантовой механики. Но не замечать этого -- невозможно.

# Полёты к звёздам
std.hugeping
hugeping(ping,1) — All
2024-02-03 10:31:02


Ютуб подсунул эту лекцию и я её целиком послушал. В детстве я (как и многие в то время) бредил космосом. Надеялся что застану первый межзвёздный полёт. С возрастом, конечно, начал понимать, что не всё так просто. И в техническом и в социальном плане. Поэтому было очень интересно услышать свои озвученные мысли. Например, критика warp drive:

https://www.youtube.com/watch?v=ExdWAm3H65M&t=3355s

> Варп-драйв это... Ну это просто чушь собачья...

Идея путешествий быстрее света -- "заноза" в моём сознании, которая не даёт покоя. Причём не технически-инженерно, а -- философски. Я понимаю, что это путешествие даже невозможно помыслить. Оно просто не вписывается в рассудок, нашу логику. При условии, конечно, истинности второго постулата СТО (постоянство скорости света). А это ведь экспериментально подтверждено! В беседе с друзьями я понимал что эта "заноза", видимо, какая-то моя личная. Но, оказывается, всё-таки не только моя:

> Это (warp drive) -- не решение... Это .. релятивистская инженерия...
> Эта штука нарушает принцип причинности... Это очень мощная вещь -- принцип причинности...

И отличное заключение на тему "зачем":

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

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

И всё-равно, верю, что мечту так просто не украсть. Думаю, прямо сейчас её ростки прорастают в чьей-то детской душе. А как по-другому? По-другому просто не может быть...
P.S. Edited: 2024-02-03 10:38:13

# Есть ли жизнь без Telegram?
std.hugeping
hugeping(ping,1) — All
2023-11-05 18:28:02


Когда Telegram только появился я был рад что есть альтернатива ужасному "ватсапу". Да и клиент с открытым исходным кодом -- это хорошо! Но потом стало понятно что это очередная игла, на которую теперь сели все без исключения. Поэтому я периодически старался найти и попробовать альтернативы, которые бы позволили хотя бы малым сообществам отказаться от дискорда, телеграм и подобных закрытых технологий.

За это время пробовал разное, в том числе и matrix, но в итоге не был удовлетворён. А на днях почти случайно вернулся к "традиционным" irc и jabber. И был приятно удивлён! О чём и решил написать эту заметку.

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

Сначала по наводке посмотрели на ircv3 ( https://ircv3.net/ ). Как я понял это инициатива по развитию irc. Стандарт содержит расширения, которые приближают пользовательский опыт к тому, к чему привыкли люди сегодня. Попробовал. Вообще -- понравилось! Но к сожалению клиентов которые поддерживают набор нужных стандартов очень мало и они часто сырые.

Затем вспомнили Jabber, и... Оказалось, что и там тоже есть кое-какое движение. Не вдаваясь в подробности напишу, что следующая комбинация оказывается вполне годной и комфортной для "обычного" пользователя:

- Мобильное приложение: conversations (бесплатно в F-Droid, платно в google play);
// есть мнение, что бесплатный "c0nnect messenger PRO" в google play это тот же conversations, но я не проверял, я давно пользуюсь F-Droid;
- Linux/BSD приложение: dino (В Debian - назвается dino-im), на худой конец - gajim;
- Windows: gajim
- Веб приложения: https://github.com/movim/movim или https://conversejs.org
- Публичный сервер с нужными возможностями: 404.city

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

Понятно, что выбирая сервер 404.city мы меняем шило на мыло (я вообще не знаю, кто этот сервер поддерживает, с какими целями и т.д., и вообще - whois интересное выдаёт :))

> whois 404.city
> Registrant Street: REDACTED FOR PRIVACY
> Registrant City: REDACTED FOR PRIVACY
> Registrant State/Province: Capital Region
> Registrant Postal Code: REDACTED FOR PRIVACY
> Registrant Country: IS

И дальше подобное... А что, так можно было? :)

Но при реальном внедрении, например, на работе - стоит поднять свой сервер (тот же ejabberd или prosody), movim и... по идее наступает счастье. Осталось только самое сложное, убедить сослуживцев :)

Если вы тоже решите попробовать вернуться в jabber, то мой jid: hugeping@404.city
Адрес чата "Флудилка луддитов": instead@chat.404.city

P.S. На jabber.ru есть проблемы с регистрацией аккаунтов, да и сервер не поддерживает нужные расширения, к сожалению.
P.S. Edited: 2023-11-06 11:01:56

# ii-net.tk
idec.talks
ahamai(ping,51) — All
2023-11-05 11:00:18


Блин, еле этот сайт нашел. Вот что значит распределенность. Хотя благодаря ей и нашёл, сначала нашёл tavern.

Сабж мёртвый? И сеть тоже мёртвая?

# Reprise
idec.talks
Andrew Lobanov(tavern,1) — All
2023-09-21 15:26:14


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

Прошу понять и простить.

+++ Йа мобилко.

# Новости с полей
idec.talks
Andrew Lobanov(tavern,1) — All
2023-09-12 18:03:13


Фетчер без файловых конференций готов. Умеет работать с sqlite и mysql. Пожалуй, в стандартную поставку добавлю ещё поддержку postgresql. Благо это легко будет сделать.

Да и вообще добавить форматы баз не проблема; главное - реализовать интерфейс, который жёстко прописан. А дальше просто в конфиге прописать нужный формат и настройки подключения к БД.

Думаю, ещё скомунизжу у Петра из ii-go его текстовую базу до кучи. Правда там с поиском надо покумекать как сделать, чтобы оно не кушало ресурсы как не в себя.

+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.

# Документация
idec.talks
Andrew Lobanov(tavern,1) — All
2023-09-12 06:18:54


Давно чесались руки немного переработать и реструктурировать существующую документацию. Ну и по личным предпочтениям, переделать её в формате org-mode. Это такой формат для emacs и программы orgzly, который позволяет удобно и достаточно гибко структурировать информацию.

В первом приближении документация выглядит так: https://git.spline-online.ru/spline/idec-doc/src/branch/master/main.org

О найденных ошибках и опечатках пишите здесь.

Также в ближайших планах полное переписывание ПО для таверны и новый клиент, но считайте что я вам этого не говорил :)

+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.

# ii-net.tk
idec.talks
neonxp(ping,50) — All
2023-09-10 18:53:03


Всем привет!

Надеюсь, примерно пропал в правильную эху с вопросом.

Вопрос к старожилам, а куда пропал сайт из сабжа и будет ли он восстановлен где-то?

В вебархиве он есть, но нет самого главного - файлов. В частности, не могу достать idec mobile, а собрать из сорцов не могу в силу того, что под рукой пока только смартфон, но не пк.

# Каждый программист должен написать свой редактор
std.hugeping
hugeping(ping,1) — All
2023-09-10 11:32:09


Решил написать небольшую заметку про свой новый проект. Интересно, что как и остальные, он стал эволюцией моих прошлых экспериментов. Занимаясь INSTEAD я полюбил Lua. Играя с Plan9 я сделал парсерный re:instead (в том числе и для того, чтобы можно было писать парсерные игры прямо в Plan9). Развил re:instead в rein, который стал уже скорее "платформой" приложений.

Не смотря на то, что rein создавался с мыслью о "духе ретро", я не стал выбрасывать из него функции, которые бы позволяли писать "полноценные" приложения. Например, поддержку шрифтов ttf и возможности менять размеры окна на лету. Я знал, что рано или поздно я попробую сделать это -- написать свой собственный текстовый редактор. :)

Я пользовался разными редакторами. Среди них, конечно, особое место занимают vim и emacs. Но когда я познакомился с acme я понял, что по большому счёту совсем не важно в чём ты пишешь код. Простой инструмент может быть гибким, эффективным и вдохновляющим.

У кого-то может возникнуть вопрос. А почему я не использую vscode? Потому что моя профессия приносит мне удовольствие и я разборчив в своих предпочтениях. Что касается vscode:

- это приложение на основе браузера;
- vscode пришёл из недр корпорации.

Как я обхожусь без "фишек" современных редакторов? Наверное, мне они не так уж и нужны. Даже наоборот, вылезающие подсказки во время набора раздражают. А после acme я осознал, что и "раскраска" текста -- какая-то ненужная нелепость. Играет роль и то, что в моей области деятельности не нужно запоминать бесчисленное число методов и классов. Я могу писать код просто "из головы".

Я начал проводить всё больше времени в acme, написал для него e-mail клиент, но всё-таки нельзя сказать, что он стал моим единственным редактором. Он является естественным в своей родной среде обитания - Plan9, но для работы в Linux/Bsd* необходимо собрать plan9ports. Я не чувствовал, что инструмент "принадлежит" мне в полной мере.

Так что мысль о собственном _простом_ редакторе стала приходить мне всё чаще. Наверное ещё во время работы над re:instead (который был написал под вдохновением от редактора Lite) я увидел, что это возможно.

Потом, в rein я написал простой "традиционный" редактор edit и пользовался им при разработке под rein. Ощущение инструмента в котором ты знаешь каждый "болтик" было непередаваемым!

В edit (редактор rein) в начале было много багов. Файл в edit был представлен в виде массива строк. Это удобно для навигации и отображния, но совсем неудобно для редактирования. Пока я его дописывал и фиксил баги я подумал, а что если файл представлять не массивом строк, а просто -- одной строкой? И тут же снова вспомнил acme, где изменения высоты скроллера явно намекает на то, что в качестве позиции используется смещение, а не номер строки. Стало интересно попробовать. И в этот раз я не смог погасить свой порыв. Так я и начал писать свой мини-acme.

Многие фишки acme раскрываются в полной мере в Plan9. Например, файловая система, через которую можно управлять редактором. Да, в Linux тоже можно монтировать её через fuse, но есть нюансы, которые делают этот метод не рабочим. Поэтому я был настроен делать именно "мини"-acme редактор, в котором мог бы делать свою повседневную работу. В качестве механизма расширения - конечно Lua!

Сейчас редактор доведён до полу-готового состояния и смержен в master ветку проекта rein. Редактор делается под мои предпочтения, поэтому он не будет демонстрироваться "широкой" публике, но я всё-таки решил написать этот текст на случай, если им заинтересуется кто-нибудь ещё.

Итак, особенности редактора red.

# RED -- Rein Editor

## Клавиши

В отличие от acme в red работают многие привычные комбинации клавиш:

- ctrl-c/x/v - копирование, удаление, вставка;
- ctrl-z - undo;
- ctrl-k - удаление до конца строки;
- стрелки курсора - перемещение по тексту во всех направления;
- page down/up - перемещение по тексту по странично;
- home/end - начало и конец строки;
- ctrl-w - умное выделение;
- ctrl-s - сохранение буфера (окна).
- shift-движение - выделение клавиатурой.

Как в acme (или почти как в acme) работают:

- escape - выделение последнего блока, удаление;
- ctrl-f - автодополнение путей (правда, если варинтов несколько - выдаётся первый);
- ctrl-a - начало/конец строки.

## Мышка

- аккорды acme - должны работать похоже;
- правая кнопка мыши - простой поиск как в acme;
- alt+правая кнопка мыши - простой поиск назад;
- shift + правая кнопка мыши - эмуляция средней кнопки мыши.

В отличие от acme курсор _мыши_ не прыгает на выделенный текст поиска (так как управление курсором из приложение возможно не во всех средах). Чтобы продолжить поиск нужно повторно кликнуть в пустую область где нет текста (например, справа от строки). Или кликнуть на слово для поиска этого слова.

- правая кнопка мыши на :число - прыжок на строчку.
- средняя кнопка мыши - выполнение действия: меню, вызов программ, открытие каталогов и файлов.

В acme открытие файлов и передача в plumber делается по пкм, однако это меня всегда немного раздражало. Потому что иногда клик приводит к поиску, а иногда - к действию. Захотел поискать https://... в коде, а открылся браузер. Поэтому в red все активные действия висят на средней кнопки мыши. А открытие каталогов, файлов - это тоже активные действия. Возможно, я сделал ошибку, но пока решение кажется удобным.

- умное выделение

Не такое как в acme, но всё-таки удобное. Двойной клик справа от строки - выделить всю строку с переводом строки. Двойной справа от последнего символа строки - строка но без перевода строки. Клики около скобок - выделение до пары. Клики на словах - выделение слов. Кроме мышки можно пользоваться умным выделением нажимая ctrl-w.

## Окна

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

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

Если имя файла начинается с "+", то такой файл не сохраняется на диск. Поэтому информационные окна называются: +Errors, +Output, +Help и т.д. Вы можете любое окно сделать информационным просто добавив + в начало имени активного файла (первый файл в списке файлов в меню).

Скроллеры в отличие от acme работают традиционно - левая кнопка мыши "таскает" скроллер.

## Вызов программ

Поддержки win (запуск шелла) на данный момент нет. Это связано с тем, что полноценную поддержку процессов нужно делать через fork. Это привяжет red к Unix. К тому же, red - это lite-acme. :) Расширения red можно делать на Lua, но для запуска полноценного shell этого недостаточно.

### Возможности по запуску программ

- >cmd - запуск cmd с передачей в качестве параметра временного файла с данными;
- <cmd - запуск cmd с чтением stdout;
- !cmd - запуск cmd

Кроме того для Linux всё-таки доступна:

- |cmd - работает примерно как в acme. На вход через пайп передаётся текст или выделение и ждём выхода.

Всё это реализовано за счёт io.popen временных файлов и coroutine (переключение после чтения пачки строк). Поэтому - ненадёжно. Если вы запустите программу которая висит и ничего не выдаёт, red зависнет. Поэтому реализацию нельзя считать полноценной замену acme. Тем не менее, я пользуюсь этим механизмом для проверки орфографии.

Если запускается программа с параметрами, выделите всю строчку и нажмите среднюю кнопку мыши.

### Встроенные команды

Основной механизм расширений редактора всё-таки не через запуск внешних команд, а за счёт написания процедур на Lua. Процедуры находятся в файле data/lib/red/proc.lua и на данный момент включают следующие команды:

- sub - поиск или поиск/замена построчно;
- gsub - поиск или поиск/замена глобально;
- select - синоним gsub без замены;
- find - синоним sub без замены;

Внимание! Все регулярки - регулярки на Lua!

Примеры:

select ^.*$ - выбрать всё
sub /^/ / - построчно добавлять в начало строки 4 пробела.

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

gsub ^.*$ - выделили всё (тот же select)
sub /^/ / - отработали по выделению.

Доступна форма записи поиска с / - если нужно работать с пробелами:

select / / - выбрать 2 пробела.

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

- Getline - добавляет справа от себя текущий номер строки. Удобно для составления "закладок" в файле;
- fmt [ширина] - аналог утилиты fmt;
- grep выражение - рекурсивный поиск по содержимому файлов каталога. Каталог - dirname открытого в данный момент файла;
- Run [программа] - запуск программы rein (интеграция для разработки под rein) или текущего файла.

## Dump

При нажатии средней кнопки мыши на Dump - в текущем каталоге создаётся конфигурация сессии (файл red.dump). В сессии сохраняются все данные открытых файлов. Даже если вы сотрёте сами файлы, при восстановлении сессии они будут показаны в окнах. Если red находит в текущем каталоге red.dump он всегда его загружает. Возможно, в будущем появится опция для загрузки Dump.

## Параметры командной строки

Запуск red:

$ rein red [-fs <размер шрифта>] [файлы]

Чтобы немного ускорить запуск можно воспользоваться опциями:

$ rein -platform-nosound -platform-nojoystick ...

Для удобства я делаю себе скрипт вида:

-- red
#!/bin/sh
/home/peter/Devel/rein/rein -platform-nosound -platform-nojoystick red -fs 19 "$@"

И запускаю редактор из любого места.

## Открытие файлов по средней кнопке мыши

В файле data/lib/red/uri.lua вы можете прописать вызов внешних программ. Например, запускать просмотрщик pdf если вы нажали на строчку, которая заканчивается на .pdf.

## Настройки для типов файлов

В файле data/lib/red/presets.lua вы можете настроить поведение редактора в зависимости от типа файла (расширения). Пока доступны только размер табуляции и режим табуляции (пробелы или \t). Скорее всего появятся и другие настройки.

## Цвета

В начале red.lua в таблице conf.

# Что дальше?

Редактор ещё сыроват, но я начал его использовать и постоянно вношу доработки. Приоритет разработки - личное использование. Ведь вряд-ли вы захотите променять vscode на _это_! Не правда ли? :) Но меня это не беспокоит. Ведь теперь я точно знаю -- каждый программист должен написать собственный редактор!

У Линуса есть https://github.com/torvalds/uemacs у Роба Пайка -- acme, у Столмана emacs. А у меня теперь есть red и мне больше не нужно выбирать!

P.S. Один мой друг удивился тому, что у меня есть желание программировать после работы и тратить время на такие вот хобби проекты. Не знаю в чём дело, но с годами желание программировать у меня никогда не исчезало. И я считал что это нормальное состояние для программиста. Программирование -- это в первую очередь форма творчества, а творчество всегда лечит. Ведь творчество это свобода. Эксперимент, игра -- но никак не рутина. В хобби проекте ты можешь почувствовать это в полной мере, ведь тут ты не ограничен целесообразностью. А на работе... На работе теперь можно будет редактировать код в red :)

# Мова
std.hugeping
hugeping(ping,1) — All
2023-08-10 08:32:47


Вчера на станцию ping была снова проведена спам-атака.

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

Когда врагу забрасывают листовки их пишут на родном для читающих языке. Так -- эффективнее. Но украинцы-русофобы пишут мне преимущественно на мове. Это меня всегда удивляло. Действительно, если бы сообщение было одно и написано на русском, я бы наверняка прочитал его. Да и на других станциях idec его скорее всего заметили бы. А так, информационной составляющей не получилось.

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

Получается что и не ставят они перед собой цель -- донести что-либо. И сообщение на "мове" следует воспринимать как "плевок". Поэтому я перестал их читать. Из сообщений последней атаки я ухватил только ключевое слово: Умань. Значит, эта атака -- реакция на мою заметку "Никто не забыт, ничто не забыто" ii://Sr7pL59F9OV2OimsWQTx

Это даже лестно! Получается я(и моя малинка) внесли какой-никакой, но вклад в информационную войну. :)

Когда началась СВО и многие IT-шники открыто заявили: "нам стыдно, нет войне", я не хотел высовываться. Хотел отмолчаться. Ну, это как говорят -- "моя личная позиция". Зачем о ней трубить всем на свете? Зачем заниматься пропагандой?

Но в глубине души я знал. Если я не скажу прямо, что поддерживаю наших солдат, свою Родину в тяжёлое для неё время, то это будет такое-же предательство. Сейчас вижу, что написав ту первую заметку "Точка Z": ii://RZlA1xAFOxQMrrPRYC13 я всё-таки запустил какую-то цепную реакцию. Значит, всё-правильно сделал.

Моя бабушка разговаривала на суржике. Часто вспоминаю этот мягкий говор. Тогда, в Умани, я говорил бабушке: "Я хочу быть украинцем! Можно?". Никакие мова-плевки не смогут забрать у меня этих воспоминаний детства. Воспоминаний о времени, когда все мы жили в одной стране.

# zvon в rein, встречи
std.rein
hugeping(ping,1) — All
2023-08-10 07:21:31


Пётр Советов (true-grue) записал 1й ролик о звуковой подсистеме zvon (используется в rein). Демонстрируется работа в редакторе голосов voiced.

https://www.youtube.com/watch?v=F5-IFaDAxXo
P.S. Edited: 2023-08-10 19:45:20

# Атака бота
idec.talks
Andrew Lobanov(tavern,1) — All
2023-08-10 06:54:00


Ночью было совершено спам-нападение на станцию hugeping. Вот идентификаторы сообщений для чёрного списка:

Yg4CL04RwvHVF3IBx7Ii
9UZId6kscE3KxfF2y8Fc
tw5NXYJsUHRJMdPpEkYz
Riu8WEHA61DpMvGADR0i
JaC1f8Kx8xyhvjoTjYkx
cGL7kZvw3MpwGsCWOLOU
BAB9GDgeGgTNo3QaHhfg
c0cv993ahMZ3ZZMepu7K
qHAz9HQYmZOwZcRGhZPW
p8AgTNZrpl8JDhX5ujW1
7evN3slSQbsizyRZEf9c
DfIxaRu4oAZllIZrHjly
iWhHp8kkxxbztJnTwHNC
F9OguutF81WhF93OybTN
wemR9JwK8WGMMsrRLvNR
wyaVGgBkRDBugRXxwRHW
upgFZeKIXuZFeeQEz9Zf
Jnk3pUqiRjdONmKp4CNv
fCQvTmZH87VZanqyC9N0
PQk21OPKhbb536WKGWNB
8wDMYYMKMNZYzIaGL4cU
2ZtKAGKvai7y185Bo2Ow
lVXmJXMafTTNJLEcySQo
4jjkaRTKLZjnCPkMAr3O
0PtcqZVD5JiokMe8nMb8
FGvqDOphrVr9yQWAG8CO
qwAZtp8nSSBauzGIyI9U
vEEIrKAROx8VZ9SOppjX
Byt2YC9cJTUoRs5ZihgK
x2aGcEhfFBR2vVz07imz
5B2rifQW9mVIcMXxUtDN
kojyWMXzA0cfglJAKgCA
kl7LSogAWAbTyvrKmJ2Z
l0ZZlW6CnpuRjQhXBn8o
PFbtA1m2rh2GSQP8ro3Q
YlFQHOBLbiTG4wMQIEvJ
rUotA0ucB2LkFypS9KsQ
x6iy3VHA0ab6Uby7fvAB
496XFN9VuuclXLwJH1GJ
YsLPi6mXcmaohxrcdr94
1DoZDLwof8ZNOIweonbE
mAc0pOdYTpLAznOVA6kM
DTVZZbmlDKnHVVXZHUfn
wGWHKyHYObfKkS4e9LxE
wWAl2DLMgtz1kuPb9L69
jtre5FpmKWCZ8E0z5nMo
k1PGAqvjMzhixs6ekCPH
TLFQDITAAA7d4sZICVJe
0cMBZ18IohpjMf0Fp30v
M2vWLZjw9dZfGe81tBF6
eqtQ45KBCZjCadO5CzgG
GXxowM8vZDG7rruxgNBR
67eKjZ8U5G8U0CZ5oFFq
9gqWw0KZBQ7jDY8LjliP
jtCKPrIHhMj1PeQr1eYZ
TZBxlsEedartQh1fdeAq
AS7gspSY7pHAFFWcDENz
guz4vYez0EzLHBsQVEcT
ZkQdCVAvZ5fTSHa5G8hw
I1D4JTVzbcry0rbdYClN
0ZG3ZAHCfnnnN7HgGMoW
FFkV8j8mACwh0iRcw1Vm
ARtb1qLNDBzmw1J2upZL
0r1F8Mvpfhlcqy19sgtT
S88Q37tgtRBMCjTtcWpE
0M95DCmoK8PbbLJHyhWD
J4VE64QadFaDHyr4GORd
QbVZQ0H98dYEfj7dAjAh
WOQlOAVhZacjAbalXkhR
xHYA0kP3g2iLxezpiZ4Q
XvQuMZ2LdLZScYHZvCMt
ueftO5zGoKiTtawtDP55
fQYv7UBvmZpAbuqCH2rq
2FV5xEPuQ1rc6uJLuKvw
FlAWiLsHUSCycQkGvooT
zADdjkeKBh9QIkFtvZAv
HrZrcwPZjreZDYyWOSaS
jdPFnPcXzTcmcWrZef6u
mYGoMQsrlV9ZEexvfrKn
8TYFLV03cZNk4w89vnCC
nd00YFdP8YSt1VJrsbRq
x0eejTulWPoIpVBcxPIu
XZoAJrM5rN3Lad741Fkf
Az184KTZejtiamvJFQOD
k0uWZnKUYB5PnFTZ2vBh
RRWXd7rZc6VrZuoWK9ez
QRnvjgethFsotibo18xG
lfHaZnGXurst0jhNqc8P
0knyCobZV7xsZHNvaGw6
8WjnALftJh65TVK1Hzlg
ta31uiAlbviwiARkZnZN
rJdq5AoaW9g63BiHqEtN
AqeitAuaMeDCeoRrs4jU
1p1naDVVCdMsMdno9kd3
DPKZbcqFa0A3cJf3S0Df
KvwxE3y6JNeaIZ4UdfOQ
pwsZztVK0wVboyZrecgw
Sfiz5nG7ixxFgHk3MYAr
jMh2RewcVojzwRKub6Jr
qukkwFh3S4rWfoMmYzbD
UbFPnRX1FmAYJxfDlV8o
QrzZBuWr8ZGscZul3KAo
zgy1ZkTdpv2ufKMDB7lJ
d8JwQ5PlHc1L4gQWK727
9QFFIbe9zT0g38BJr9m2
86HmZZSuxn0av7DFcazG
JsWITJF4KgXB9m64hr9O
SItrU1XJBzZOYrbLoUo5
zCh9OpkMTwz851xHwYnf
ZihZUoHAiDt97L0HRU59
DSpju4PFNKVqTibsZOz9
kiUmRntSv6vZ8pHTgT2Q
hL49FrMOeSKz0UonRgcM
rTDulAVjvZYXcPdwgAPB
4alfNJma9PcoN1TTmnbm
JzIAveAXanM7RKU13uLk
EeLVJiw92MA8LhUdZkp9
5XOr0npVX4sAy6WJL6mH
TLh9X9UfUJnhs1Lz6MU2
nxVtEQl4zUmZvldKFY1P
oVseAkWN1dmZBGKJVZVR
sfT6jG08zoLjH6fG7qEC
cE3mDfAQ3KGQsF3DAfN6
Gmz6AMl2eSrYAUYCAHip
RjyORwGZh9THqJtZg5Ji
XFEXX7SCc3CZl6Jp0h9I
S5TIgS7g5dDu1nRBi1Hb
qOsjAOKAVU3Yt2ppgbR3
zeaNJblsocAUrXaf29MU
ZLhyPlTADdRita6Etczf
GtRbG8WTLIMsZyeora56
zy6bZO58gHwsRApCyYA4
uWu0rOzaPtTgjyyrClCo
Zt6fPRae1D1ypnwxhQpv
mnr87uZwYue849MSA7sW
9ZL5RuKquYNdjSJDXqkP
12mLJn37p5plk4SDGdTB
ZBBpngtVXsJAGahzAeVf
tUPr0qlhuKT0MGeACCKW
v53CiKMUsoXZKvqKr1eu
h4rwxdUYIuMcuNCEouHK
UkBZZRsuaBrp98Qrv1kO
yAC1ND0RlKOmoKaBZnqd
RwaXWUFvg5JiDm6UaWEy
Zue8Gzp5loQD63MwYfOm
8PCqZ1VjgWIveHydN5AS
xYZL03QQ4kKTEw3pfdcp
PMZEUNu9gJSYvTvN4op1
ZjjofZX0E77dV4Gd7yXT
2QwqZkEKu7A3iogVlpmi
qE0DjRMKI85m6Tludwmg
wNkF7Z4tDDAzljTYAE5y
vHu7laddEaZZyk00gtbk
ueANtnJvyqsoC06cf0A2
VqLEHucFoNAZPxqBac4k
BoWABvdhOa4LkA2H1VYf
Dlk2Dr1nXXWjevkt2pA1
HItm2uibkEUnSUBnZOYM
tD5pX66P0vJzKXF8rXLJ
kZrGInxm1MgAQnujDbg7
EoSszjERdoXC6qo1m1bW
gPKa9aDw3WpsPElkjIwc
Dtr5Af5yAvpALbFDZ6Jc
6n8HuiGBfZQ5WC4FwFdW
VAF3ealIjlATJZlAr78y
urqPco2IcpIBM7ZEBYZS
F4P99gAdPTnSGXqdws70
fHZ4eLiwxyRRQRKev7Iv
Z4AHUYcQ0ZO9ldAyUqQ1
wJICmDFaZJXlAP00jqar
gOirtCwY9eQ60QLr2lvZ
aZY4e9Wsnawb71nKgdmm
zv1YDXgcrK7x8BUmBSTA
UbHjAAKV3X7y8U3D8txQ
Viimsvp0gpsaBiRsVi0Z
GWEIHkfZF5MPpZu8jprA
SAhhYftIMygStLJkfQau
ESdqnXdm6oZwPhxCZLZg
nJXDDr9BB3qvauYTegWO
ijXeYoonCoc7HdA13MrN
VyaOBdd4tUdRa4LkcUbc
a5e4S1KwAEPmldAtrYhm
wpyNMKZuiAouGFOgYpIg
wrSfyTYwU3lWKLhmSeqg
kAot91KNTwcRRtQlh8iI
VAzAVI42oc8KGhi592Oy
79WtyeDCTBWbF7jP0toe
9X6WzwAG0zlEUZYeYPrp
QXdCMWw2fA3Qa9k34LbS
Axjq6xmTdFiIVqcoMxp3
NdOqjTwKTW6UOw475geY
qLNa3ZOu6MVSIoTPrUG7
nKbMoj2p7Y5uxgIZJNdF
zwvnjcOZn5h4aXs3fTbK
HYcamJ3lRRGWdNk9r6Yz
1yWyS8SCeebDnQfMu8b0
qnKz2p2LvpHTge2k0EY0
Zo38zoCNfyzeP4S00ONZ
77oAMeXVOKHUQeTNGjM6
DA6vzghDfEFHOE8ZXiHy
VgKRW0pph7mX1rUbIpkI
XVlAqg4LBgS9h4YA4Ay5
ts9m6jjM2qp3AVzHItIk
8ozZim0uCIjol1rC6g6t
OfmPYRnaBbrxDdzRmQOr
Ujzb8FmjODmnwmQuZLEd
BdkfaaLN0BNmAZhGVwjj
nw7cleAIOvjfINH3Hbx4
kZtc91Qtg7LBnrtlCQHV
p4dj2B9QxRnLj6j8pA0u
T6Smi66dBq5cYVBLJtSc
rCAv7X1W4JoSCVYAkhJ1
8kOgMTZW4uhdFakx0iZA
hheRA3tp3ozajcPTF0um
r4rbahxta3AdeFaOm2tJ
3Z1NwjS7LmyKITNBm9U9
gxp0J73kqHewJqPVRl94
3lzhaZq9fzhZrwpa0I89
EY775WWekBKF8Lfcn55B
2GYY7t8ZpL5N6M72rQrp
Hn7SRD83Zh7Ab8s6A5iD
f3ukxihoHA4FvwiHWUaI
z5OUZRmOq2VttokLIYRr
0rnLlXe4XZEpldClHVae
J4n2oQzJ4yNImBcO7ExZ
C9paKuPLuvQHsxpAH7CL
MHxyyqNKKTHTCU35JIcw
f2AluikqNCk2ZQdaOCKz
vA0JvnP7TXvPUy4Bo2Jx
ScXLAMUaTZXDRXWJZfm2
tokZlmoIo4H56Uvs0ZBQ
fmkNHFvGNQNzRIpFC8Uq
bWlO5WktrTnaxEnRLdQq
uD34XT9bit3wUtwHTNKs
mioqqGPqklAQKCMkZSxt
GlivNd6QspGW5Ed3U653
kZ5aZ5YCCtZqtVA4t0ID
0pj0Ck4D2UyGENXlnZVa
HJm7qALW7n6rpVCKs7v6
i1Ka3BW9BegDPb8ILWce
LX74KUZxfkJX9jg8AUGL
5DGiJwAnzP592Gz6SW3M
XREAYgw85WTKgzyZWC7N
5YKotjEUYXSvMAEOmNUZ
QiLelRJuqW1OnDgKcEDb
h5kZrXy8XpZBpdFoDYbD
qrzRtklwy1FDIajSGHvB
EVoItduGXWab13AlOrVM
dqIa6g3mED6BpzBkpPV5
ll17o4m5pMMgA7IxOa9V
BMhwKdKQa00L6j3UNDZH
1PFhiCkFH7EbpprGVMhB
rbix89GNHftxPjh3hBJ4
MqFuqUYX976CHU6syr0P
BDnZQqcgnaeC40uHz2vF
lmAh34nbkVyCcc6viA4R
qXpA56LDNgNOIM0qNlWE
xeZ2Ayt6nhjkZvLQYS33
AO8kV4OWyXzkhWfS3wSz
vlGlTGMf0aAYJAdqncTX
Vj5F2NmOwq3HuqWaZ6Id
0BmgAQvIh7TiugnUhMXR
CcBAbQIxoZATZVrTcmr2
q2PUsney4O8UJWZDJzQd
EdCduafasi2whR6ceVb0
plYIRoNHKTBO7Aa0j0s9
35iHScaNWVKWGxtvjaTA
9gwL1UhE6TjJfQmYKZmu
kZehP4kJlnbz4hS54FvL
ZdwvwISZJrbeDt0sgb7F
GrooDnvz4MSBNGCxnKPs
QkB023W0LtZBZU7wZ83b
GXPsAzgTu8t3MIDxZFfw
AaHGcbghVup9iiQz65Sw
QDZUDAL3A6lAAD1krVOn
ZbtlJL2aiPCroZJJ9Dg6
i5V3ZJX3qIZaNLSD1oVM
hblhHG0W1XcWK7THcVWU
X1gAbzOUrlXMx9Bp39z3
AkT3Btofwmp3zqBsxWol
Pzex7QGjZNGxHAfPa8SG
XWvFIOdfIB0fjq6Ius6l
K21DkTUZ6OJqNr570tce
CCeUtbgn4JbEs8d1eWk3
dxNEeX2dkb85nPyR3sZg
VbaVhAI1OFYML4Aswur2
5lhrqjwFmgo105eGu2u4
oMmGJcc42Ky1uYbeAfJh
Z726xKGlcvUrRkV5bOMv
gQ6A3T7xZcFZ2FAJizGq
NJOvtJT1HP0sf1dFkuhl
sNjdgRaKiPkjsLoZHLAs
ateAXkniHovW1v418NQd
VC8ZMfxVBX9f8Xxbx6Cc
tnzina21Z9YsNzazO1Gs
AtPJs5SMu1W07isSTJfh
a25DRuZ5fcltN4lnliwD
6S51lqOVWKvilaTfBOKU
wTcRxVj4bP2VJQLhCeSL
fZbjwZqlpl8sLmGWRDtw
ymZ8Hc9ooOfbnhrNiPH8
jAKEZmpUmn4GMaAdOh3g
rYhQISlGHPzPGgZ1q5o5
crAEY5xP9VRcX9j0OqGf
wXgr3sba0b4Yk8ObXDTQ
jkbvbVb8XyR9AOUOtElM
2kt3ZzpQSkDjdUa3i0rm
3iSfVzyKqHaAXRFX76bR
4pEA0mGw3gZAbr3Qwsi5
idEWHkMB7AUWBqSYyP3A
wgYQpIogkZwHhBYTZxxn
tRijGOZnyDhJVd122tTZ
wyHn8hpDvtgcgpRjRmuH
jX68KApKwAKdsC4mcarR
5mFOGzioVGslAUXmDcdV
EVu2cIILmz1hddETzsAe
jGAsBARBrQpEMvFltAVf
9MdxlvtFjG6oUU7Zf14e
WApwCkf5h7uUqykQhIEW
dAJC1zxW8b7bwvFKb1vK
oa0dPLtlS4E4SApc1xQ9
v5xy1zhpzZZ2ZrPE4bc1
7FAQGCEAhtNLSxwqGfYT
UVJKBoucVnXf1Ei82NaR
VNCCnzm2LgZ4GSg5C6Ax
X0iUXZRw3BPAglgxw0H8
pkAIxW0EEkjYVFlOQwh8
j4pSZTcuKZuTQsB5FZMc
9fX14PaO5FAKDR8UPyNs
xz178C7AAKPodSWriAPv
Qp3GQfaaCjBCbosYG5RE
OQju8fABjcgLcoQA5eOh
096paqhAEsdZlhfWHo0V
FAIhAcmNUqVgKWP2ZazY
e2gFcOD5MiRf5Z9qmyMK
PIxof2CHo5ztydjLTdun
wanVXHoZfMwtx0jFvM7k
Dpl2MwNt0wSZdWAsfkqZ
GxnB2M4wowVfenhGQZj1
bAIrrID6BolQYzJnddM7
Q9fc4HFNHcsu9DCWeuFw
g3oRNAazPAslkC1yKMSd
oSLWWxCHkinMSi7uwy2k
seuEfWAMPfBXYcajZZPZ
avfJX2dovfgrJLK2O7s1
W2Qee0hw3pCjwJ2XgB8r
Vex8BDsMLq0WAa8MJmnP
PYGbrYEsgC7DEZCb2Zie
5KWGwilPKKCOlPGQqtYY
7LAdmI8THK8ZtNedVWIS
a0SxZEls7isTeelAVLtZ
aZ3eLRDbqZ54YvxUxADr
IhFfJNrgZ596OC11GDpm
xMqnppLv4euLNUKXzK9O
jRJjr5IzGMwoA0qtKHJC
QFmdYCJLSx2ri5Tlpa0z
aFhKIZml6UYf1emyDJs1
stmFlvdZZFngAU6IJyNm
2ev3qQwhGWMc1eqtZTXD
7KrbTJ1R5QSfLmqRZONH
4SEvJxJAn3YxI84ZwsYp
B55QF1LrxYuw23vhYh13
NSYZZqIqJ4MgfALcWM4K
WjMoNcFV5nRoAWjOuG7p
FQOnF0CgsZoH6thia7hd
OCz51yfiDGNsNKnnuZtF
LJaM6sb018mMYvlHSP0d
WQNf3mtiDAJ4GZ9xdKwp
zpdwVJOHfeRKNuW1ZpxD
pCMe3xvFZHX6UAMkV7Cp
BMI1pad7rG1XJWzngPpF
HeHhs81vAFsguLBcv6K3
4lKIgEEwZo8tWSd2gzmt
YAslLESSTKyMUxoumZKi
7iX6ZRMQSKiYNHZnQ76v
P0unB8sMypASfKrKg3Y1
zEIGAPGZX5CcAPIGfcdu
R5PnMupTnpFjUUKGvhiv
ASjqA0REhVZidkMWMZDE
D9b3ZLV4BXQGCxGdM3Ey
sjapAJZN6Aq7AHGGQITA
N90jfzz66XZO7C4CNoEq
fSN33guKRXfZYGV4UviW
y0lxAqNj8yDvrA2V1CTH
Vi149bWPqFgLEU2arl9s
ZAdgxA7WiaiZLacxAdXu
jMNBllXvLCKAokdyVcxT
0HY3g5S3xAr3fyE95bSw
fHIAAOqvPxhxeL99bjo2
K8k6JRo35huFMvTRrLIu
rtk3t688RV3sHq8MqP2e
fsgpHOWGaFz5UZzkN0ih
BQMGV2M9WRWPL7620yIq
0q0a56PVUaof5BifKzLQ
FlEL9OpP8Jz4ZKWT2qS3
BoUqeZeaWxb6uMjlNDu4
4yCZEHVtjwPfJRASiBsJ
Z4Lz3KUqF6bEdStEWsNo
mlmX9CtwRp9zXC0np6xY
KaT1ZYCnVNFkcFgHRviU
nK4pBhiTlOQc0S0DdtWn
LpZwOF3uX1cp9qWJYask
WyoIs2IqxFrgMmDuwnBp
rdTOLLN655ZLbBUSAEKe
3y4gUHgzEK3ao5RrNR8m
7yuTnZeKnQqbEcBS6QWv
vhd8jiwu7zWB8qnN9LtG
m1AtpRd4dX0YDM7jW5J4
ihSIKaR98zWBOqA7TptU
T00d8EgJ3VtlU1YFpIoh
00pChH5faVTA9jwkkyiN
q4XDR7kuMeqP77pogvD8
j8OMoU8pQYGrAKIi90on
qkkIcWDzhQE5B7KOuYG8
JNTueU1o07WLs8zCPfRc
FKVJKQ4OnPVBZQe5Kshg
YiD5s0FNuOp3TAgrT6vi
GdaDZlSdEpkMAlJ51bda
n0Sf8aWbZ6Q4cw3DHU8F
UqlCJ6ykTyNPt8v8GJ4s
xwhQS97puQbpBuEvi6pF
QA0ASoPLstETk7UYFVoV
C8yAihF7XtVIyzKQXz3D
Orcn5UK4bQAYbxLRFrJp
OpK5HiIT32s8UpKTzq1a
sKkLgA7gBl2O0VKtkqQE
oPdu6UNKjhWkQ7iPvA6R
FNrl4kNEWyPqB3P2AKiB
lCLKYOtZ2XaxTACsF5gy
PQmrTFQ37DdgduOCjUeT
vs2MR7aVX5KIwjpp6boE
UArIJzLSe9kNbdyQAeUM
9s3paSlYw3eAf7TprdPb
FOMlQDuHwhhvlj2cDAfJ
wFMFIGRiTbZ81nJv4tSz
kKP08zwa7wKsJ0EOLRkP
jo0oGkjuZuxNMNHJOccE
51SZZ5DZhm4jZOrxGLkz
fRdwPEJbmmsHNinvdPMH
FZofwbCOQr2yhwnM9NQa
QA59t9avVdKYKSnohwE1
ueiUCbaAD3gpA8S7vp9F
NxiDGvZBOkpDkEdHUYxY
t8Mx5Z3C52p8YFQsgSA5
Lohqz7WwlTJyGhiM1qhc
HsLCzj9PLJTuM7cb7zrT
IPDBhHHwmaXqbuKM46IM
v1YmazcMpUpHlFtkIMjk
fThV1jWDOdZyfnAv8XXQ
j3Sp0AgLOUbohENU1hzT
a7AWf1OAsh0fN83iT9qJ
fKE1GZIsOCsnjAaKUgRR
7tRs04ZMEnvAqpYuh14A
Lp2L6N1uVPSOGL1VOaJn
81WUtqwmxeoTnAnXHbXe
XKGMdEdhHfhRiwwv2QPd
PQqzPGdUveA23pNJoFXc
KWKm4JJkfmcUhfFkuxAF
pWf8Hq0kHxhACuxuZHfH
ZmQZ1V5zFhk8UHNy8kqO
7suXArxYBB0KIicmowOf
TqqZ9ZoyvYdK0iozPnUv
VOkv7N2VaYAkC85eAdGb
L1onCrb8ZgiHNfl52Iro
DzSsuriNp9L9fMyguVdI
105Pc7vr6DEzP14iEamE
8N182oBTyeKc7AyeWhC8
Uct2FChB3z8fI3U4YGG6
yjLjKXGgq56ZYw173EgK
iBtgzyf7K8QwuYwWQPkf
u3xtOxbQ67Eo647HSaVo
faMzIPTFyJSZkDdbEhcp
ZqZQ5WPttvQDbAdFyXC1
T1fAvBpAiYHjw9Jzn4rZ
ZENmfLkY9U5ifOxSWnKp
j0oe34pHbncPqsjfQqza
ziUjCnJoP2M9B7PCcDA6
m69KrKM6DuI2NyIPv9Nt
OCma7WSYtNxhKWGRndcr
RrYNBC90gRu8M4GFXtMU
8qu6eKI6PmV5XkZqpAUU
R6Lnm56p7e6F5jrhrvne
1mAsdhjJLQR1eg7QsA7I
pAA73MVApjXLyPAqBYM8
nYrIZIymNcz8YVLrOXtD
yyn4JOsdGmS7C7xpigOE
bWh69xuI6bHFNnZcNVrI
MscEwbA0zUNbzVPSWD5A
3Z74Vo85EcAASH5qomIy
ZVHTZnmlZqzdkirybrlk
cWim45Q0RZR02lv9MOdL
WETYefFKOQPnvZJkHqZ8
ndzZPEfuUAl2IO0VZZsr
LPcvq9LiW741Tff7kHwd
BXziirUVwh769fkAXbJA
rowZ2qbwkRBTRWY4w48I
m4Zjoij2LjrCDNxngPSA
ALk6tyN3L1SgiAx6ihvg
mCDexXoFtNzNNFZxCPtc
KShAYe2RQxbCtHjTLBFd
xwiXXr5Rc2Jaics231xD
6hDifhbOKf2mn484TjcO
xvdmcv5Kt4hwm9HiYv4H
ZyCSbzqfQVGQKeBjxnaX
3loQFWBiqb3PpuZAqp4Z
wdeGdRo3Ayho95h6SxjE
6CJjDu81ULSjAjNITpVk
3UT7O5bpHYaQ4xAM6IKD
xoAV5aklVPqNoe0ZNkOK
JBK0hVQQsanjHc5v94Y3
yAunvxaw9MciPy13uCfr
9tUomgAY1ozZjmSqZ4mr
f6H0ZWh5tLYVcCpByHAH
G76QJjcTwTgAeG3N2cYA
Joid6S1zYEpH2HeMfAE6
O1AKjxl4fTNN0KLjZErv
JXQhj9ljqeFzWRCgnO5z
zdVlSPJRYJcUrpc1aUuM
G5YMdVdqw8UnKw1diF0T
d4to75veTpNSDqBMhoBB
NtaTq8rK7nG8TqloIiGb
JxvnNh7iRcL1mxOkOql1
M0HB0kOCQa4Rx07vQkvZ
SzNb8uIiC2BRRNfgmcDx
WaqdAl8VLIs07NlCJp4w
oBEgMgWpslQtd1Y4Vg5b
iXAjBL1F4plsvfHbNTyV
i4hJI3p6cARUx2bXCT3o
JcLcKgxXQnzZc6kx9f2M
Cn9GQM6XTWqEFM76Z26M
gTJA8tTSg66uSmo4YDxo
pXWWr66zpJ9yIXZLZgvD
UBx5PDBVknXO57xXd2YS
HfJ8XS5poabT0B5blKRM
pVqDZaNZRssEVBriVsmT
QsHNgzn7CThRrMkY88Hd
gAgkRel8G08dGLZxIlWI
ZQtsapUeDZDeKMDqs86R
LgDZtNhJXP4FOfEbP3xy
lx3PE3PpYIAaAxTCmSR9
yCvrcZp5p9zxh9S1i18D
KQU9MhwHRBdfZZEnI4u7
7VMGZmLTkTsnO7BSQ46Z
foek8igGHA0iLgP80vLs
VL80h6vOVud14LDLGRD1
1tToV2WmjlB5xhpdlmZ0
OYRSx7k2Dk0UzgJoVcAa
SBDjA0EM47N1sNFFPkbk
UdATUqdAUjLmgCVvFsOY
r3T1TzwAlIMeSrzxVXI8
Ze5IrujHLGs78KwaBAwd
e8Zh1HwZdIwOuWDQ5uII
994h8dsx2HjgWrZ5qN6k
yMic8TW4Sy4TYLFLxhf2
jyi0odLbMszwof3wMUdt
zuUH4DlyQAJZAbGhJNhd
HkeW77gi5HKopMVEbzYq
FHTk7hLrMfxNlRAAqKF7
VOwBoFy8KWCny6YHYxZe
0rbZW3ZMtEjIzCaC1K6S
mwgud0FY5JtOmvCrI0Hl
HjCW8pzwi5G9ZURLDypd
4Vg3WGv4NrQdxCwCw7wc
LlAUbh6sUYxAwGL47YFC
LQZG7tZBM8kMWRwaqX49
C880zROHvLzc3XwsszMw
MTm2RQJ6wAlgzTi1qvBb
wWLNxM6roT26ULUZ2xNZ
KPKGHbEOZpvzWKRTA345
nqArQLXN4t77HB81LXgt
oKSRbP0KwAsp8YtCd9PN
iFAodZTEH5gutZV7HTa8
m16htfyCyA42PtjDZIoq
jQeYWX5ZyF9TT4Qznt2P
20AFAQXACKbgy0Xs9Ksb
4zxBT0KtUiB2PHXMnvgk
XOijlYHyBb7RFOsJTyKy
IOryTaUaRIYZxcJ3XRwe
102zgM39InXgZpu8qO7e
UJZpcfcdg50LE6Zu0cgB
YQMEviofHxaizgWiJ7e7
FqjeEZBDjWTpWlyE4Ylx
YBpGpwAKUArQTasSjomA
UlnqKwNc81Nfrfykln43
qK3QAcZAqqZOTPzICvdb
EZLuGAL4VUUHi54MdBMu
AIMLJnq5ciUMzd1X9TFq
JZSWZ8Vl0ytMckzaggnR
0Vd0PXFylmcytbASwLdL
NQ6qxJcTztRZ09uZALQD
J0vzsZUnHaLVYRAtyhyP
J6xB2ZbvA4zztVFjoKaF
vcryTuJasyDsnetvbqxD
7ZFIvHHXTBdWSPBw4jDN
fbCp1B6pPuXAzvEfagny
ZROviNNPoZNEYq2TQzRH
hnN2Adfwp1BSgs4tMOyQ
28TmQh8LDROMTsXpPBJT
WDj7YAfKWG2XfGJ30TwZ
MtNBdmAZKekwOBgqtJvG
t5FHK3RJimKuaCXtPvrz
7TCxCL7wu09XFtGCyA31
nKXhDdctyyQic6e3Cdmn
F1I8neTgcaeKP0X22kLD
6waQbRKNtgjx4Ats02sy
aUPukrsQL7kG8uFlBb7d
99BhpzHXG4WXCHt41CIS
7Ga0x0cSxHKqVDl8BKlg
U1axC8UIsNuXAYNJqzLn
5Logmma7UADAL3bzUSpq
sxOnICvOx4n7raXVJ103
n52WIRuDumOuWdYyp9hB
AbNNPSbZk3cOUlfuZiHq
ok2Eyteb6v4qfPjHWzkZ
AgCbZwltXhEFZuLjwsyL
CAmhcZIizyXXTZiWxKH3
rahAVblVHK1ggdvL9gAU
auLmA8ZDZ5GNIRAsFIWc
kxzI6dYgLZZK25nxktqs
LM7PQHr5mK2mAP5FXDO6
XqqiYRw8ymBhp7hKfu9O
h9d0yUVBxg5XqUl3HyHa
PMtdqBT4jKA11XNEFoH1
B57QLPT3aJ31rlLzImhn
i34jXc6cgs4rZaiJNE4Y
ZCpLwio3Y84fKuGZUQQW
lpyfIBI5UANqIdHdunIj
Rbg2RNaH7S0Bb3lA353s
ETd0mANBcYB9tGmA2JFR
F9NgjKkTBCjUaeDAfxJn
IKLQ4TEU1CzKhc8vMndo
LnADUAPdsWpwZau5JweW
0ix3atnaPYmIUiHGGkoH
gOci4lpVa2Ydvs3hytVf
bQOAVpfBlquoAvqR3rou
fsGwADRGAsyeUymDcSe9
qmZ9Gy9R7tVEZn0oEc9a
FPsPk68h88GGzm2Ptww3
VvIpdrqaAk40ihhAXAdF
pOAqaTxvHVSKhH0y1DqR
QlEmZIPcknyM3m4sh5qA
iJP36Gi04NDhD0Y4Cdxh
8eLrcQQXQskMMxAuL6rb
3DTOsXKwRFbmv7VvV8Gd
kM0s31LEHChG3vYp8sfm
wp6QImdDNAZ0AkTpiT1z
JuOGgk1tFHoZc3nZ8uDn
M65PIyinzH71MGE7vzoB
qofy85Q0UzTSg3blR0jK
tQEBYPvarCybZW9x36fK
DLpHbniCIUbPHa90Bw49
g4lEAvVfHt6fi6GH6mRK
ne5bGtVdcdn35H1gcxcw
2devAkRTvtpmNigVINGp
tKuqaCRApAeT5fcqGkTp
zNI4gR8ZHZwAM7ECAjV0
5CbMDub1kl2pJZqXaYUH
jf4SDDqMViepfpK3aWjo
pKk8jpj25Nv7R4xeiwAp
OeN7LC3rm5J9HU7XAs05
4tsjXSQGbW6u2CJ4XKcr
rxNrgELbERVDypfiAF2v
67FsenUHv9SBA9DGohzp
Yn2NonXtZvFmelr1bz4O
WPkIJcR0E1lybvj4y9Co
TZAxvf3pOHAUOgT7KNuG
s00SRAx07dyetJ7GUMGh
Df2SkLtV0ih9bWpChBFe
nO7mBu5gz3uUOTjUlRgJ
xxiA0EnKbmWIcyQ7ooHa
RdJISODyluu0xFnuuRQS
Ek2cxP5qWeH2DDilyqeP
IveYKIYBAWix45Ig1FV7
1qZWb8htp7hv5U78iw4z
nx7Z0XIVgnHZji9HYe20
TUo4ICMj0kpSs77Nhq8M
yq0Z7jiJ4Dpe2GSxR5Mx
v3zbNvWUPac3NIRNQMud
Z08WcbCZqAuRYINZvSuK
QD4RiZbAG4CCaseKZAh0
4mURw6VrBpyX55ufGLVz
LjhoXGY0Lsb662xYHDKi
oE9wzH5wLWLJLkA0t16i
0DYXTAjsGqZAHVEocfMr
p1y1VABdUzbv9HAzxFU1
F1SAlvacNV9LQvGoIdLv
9ljK0XlFyAPJgqO5Yhw5
5NHCIoHtF0qkQRIdGByn
MZTKHgkOGu3aZ323BH51
9odCI6l9sKmc2dVCAaJx
gZxgrAyDLhmbfvFf6UZe
ZP1EKPPbuAJBUa5SsgW0
oW1e9RMnmlQc4CAuLRR1
3RwjnLRq9fcnjxad7REk
brUus2bBNmsQINZ6ol4U
2d9NyPZ4AfL6oZ8AE87i
e3RvvUJtw6sUeINBIT9u
wZjUd6sRE7qSNF0j0D4Z
jAVzrqGlGZ71pnI7lNiZ
AtRWJg6B4MZzkhwn9Chv
JvlsHcNqrVWeQb3urm2l
dZYuHgkm9R5B80891TFj
GDqlULQSTl9CcZvvZH41
H3IcW2fHOviZRFrgYQLc
9uhEpEsABSbyoXIXapaH
AYZIH53a9KEyJHnoOLzr
dj1bGV5tqI7j3NJZN6wA
yg2TIw7r3WLmlZeWUEj8
UHNoHOIVNYARC9Xfh0zn
VvnD8BW9m6lp23XeIkl0
nDw9EFvMsSyp7otbSuts
mNB1jIHVkyyu9VzPSrWP
9ZYZpdmWkt4IozNaZNwI
oggR5611R4JuswSnREFc
DAI6HYi8QbkLaAwJuBcp
1NNTYktKW8NxvB9a90kY
kLdDdwbWpu54ZZI5mBOD
hPg3kSwwotvPqqiWxPAR
6bhyG7G66JjOzBzgyjiv
t8OSZJOQBUImbWjxxHUr
PhAwEfAFs1Z1D1jgAI9Y
koPQzSCfAI6qLVgCt7mp
5Y3HJ5ppTmKhuyb7QlDh
CvTWdgzXsluG3A3huzEN
lJe0ANwPoSjmyVVCZuqC
7upQAdJCeWj8oKjmZDll
VGADPwWZDcpjfw3kx534
SAnIdfrYMwC00IHAIASV
kf3kw54GzPkvdZY9wlw0
ien7QftNdOghwBH31kY5
8VvOWd6UqKLqdpdFmPOz
7xDmiYLiOGlYZfm3AcOg
ZyeczDphuoD85z4EoTjj
6f5Bqk3bFIsRSoWexyWo
EQ0g9NObrNpLUW0wkXjA
z48Z8cKVm7STyPXX2wwJ
y95M0l5ZKAKUTFuUJNX0
k320YZpgLqUi6ffQxNYa
sxtBdIIbL0MbadE1iZnB
zLizcI3NA5bR1uCST2iO
dyaHjIpB4tajGC1D9H9e
VZbyDmpWv8ZFEdIwJl7A
4nAXgZAa01EXwG6xSOzL
bHWr047Z0VCUUD6BLQLX
lVf5D5S9IfhpMbZ9LZBJ
zcVZWJYnzHUS4stMz8NV
TYCUQZiDn1QhriUxRGZm
BxkZPI4TGlZAZYtq2FJZ
OZVKnT7NRj4MgEirzirl
SshnYV5afuvKFAm0Gqsd
yaDpR6RxvVuCOAAZxjxX
9OZm0VpeHgWDXCdX0iol
PeFE25CUQVRuxmTiq04r
JsAKGNIqoNSNAp3EKt1H
lEX7f8sFMqBlOk6JZCLa
aH0t4aEOhNeJsmLUi4cH
kLDTTyPc3XaHdM4nqWRO
wA7tv4Adanhz6PHZ1VbG
WPZfMZxzkjxLH75fl4Wc
q5YfzVT0VMbNWkZdnoxi
ZmOHRs1JUJ1UFY0SW9Pw
7DZZ8zi3deuah57EZAlJ
05b4qtwp2vZm2BBE3jjo
8QdHqkIo3ORTpWQP2Qaq
vyU3a3WLKAZBlW5elaEi
AdzIqj7iZJEZ3XdZ1com
Ch1SvTUUOFCLc35vNlO8
4yyIS6QNAMDTsqS5T6dS
TbZZaH3gI5mpbZ5ZW6mL
fsTsfkXrElBxPqIYgwgT
oz5zB0iCTAQwEOoALXXk
Eb3oyh6Ve7bG4Sv4zSoT
SMxpjOjwMScH9MjoNlA5
1lZcpdOXRS54byT77ksj
yY5mrT97A2zJCrwCNRqp
qoxbFddm6L9c9hKdGxMH
wUBntpj37bdcMteJ6p8q
z6ZDZmaBipyndHjICQAw
up3qQA6vICAAfhJXi4gx
8zSqR7JmpC1kGgscXzVx
vwgEKaYRlCkwilUZ9snO
fzqzDlfNpghEw4fEk3c6
y8ob3UAnAiJw4YiZMJNw
ZxFosoKAjSZZ914l5FPF
VQKXFLvQVZq4cFNxNH3m
Fid0AHVPZcAwa14zqQHl
5Ikau9c6qQMNKLHkgpx1
d0Pd9cXAFtih3tuqsi4I
C1GZXtCNrEFD19hvOk10
7WcCWR4Wy3c0zwD5pSRe
TySsf46vXyZXzh04LTcT
kudbhm24MqZZAgT4bfZh
OlLLZV9rpcEWo34NtpAm
gzG6c8AYfv9uhfXzbUjX
eby4BjH7vJ6O1BjndkNi
m9Wf4l2ybfRVpuuSFxhX
XhGCTDQZx3TepTeBjDOc
C0wgTT5CDU3m6iP8B237
JwJOxX2K5CdeXprJjLsV
9t82JE400Jr7cW69ctZW
eT0GXAbFndDvhvzkDHoK
brIOAPQN0dlSLPLl0QMM
valdudvIfDKHlGxGANib
xqwXxjaFQQwAPHzC30Xm
tHrZbfjrNkqxn1qedm3r
n5X3XOWFcb180AZbdUiQ
weFJ4e7BXq0w3LAmgasE
RIxTHwHaZ6Iv6qx35NUZ
dNp1Iw6SrAuBEuRCQAhI
sCsVs74lSCFR9uVbLuAH
4x04gqfhZXYcttL33VB8
XYcl1X1N8bO83on4rZJZ
GcVEFZr1Rq5HKKxKAwlh
AgTu4j6Tm1WstoeHtEZs
7ZNju1bKBoCVOiLeRsHe
sYYfGlH4Fdssohao3YCF
pTer5vDGqJ3AsA0kalmg
IHpr6h7YA9fwdPp5PN6v
4f7z5X8VaM1yayM6UNAp
SMp9U2n06uVNDTneNnYW
8patvsZKoUGjrkyZns3T
irboZlXtA1cZCcFhjayu
zS3jumKivgD8g1A9XhUe
t5rvmrUzFpZ00js5FfeM
KemWUrlG71uPktggUTjZ
mCU6Dp0B8x7g0zepsQXn
exUGoAvkOHMe8Vd1w9DR
1inVQGNvySgLBB6SsldU
nBXd5ATygikuWbjv6Epg
z5Qh3kh9LY5ZO6XZZHKQ
EIHNXg6xZ24ap9ccJDfd
fFN8PqHiWr6FWvr6KULJ
FZQYZNeR2fzsSU6ABzxy
jRZgFX1bAx3g6rplk6si
BccMgCR4ByqyjPnUuBRn
E3npLwnhkVUX4aEQwBNB
EA6Mi0zUZfaE71ilhwW7
JxkVCyWt8Pegd3mjjrGx
Zqz9oO9kj5SCL6MSzCe5
lpK8GSoMLtIKIkmc8UwX
ZaGZAdFdBrLq70apC6v9
baQ7rRNUdP8RNspqGUwX
TCqSs5546lIJ2lXiOznv
JOkeHmHGQTgvCOG1AHeW
pJnKbxGOg6wxNPWJTIvI
BfCGXrsLZMhkotWFcHHq
u7KDOHSk2RSE9eRYUGR3
gQaPgKXITZXW0UpDNW6w
UpVus1QEidFElUGjMzHP
IzReisL39my0decmdlFl
26iMqKx7VvPcNfoEgUpV
ehIRA5hu9Apy1Vl2gldI
2YKUBnLm72f4UAMvX9ur
Gnc5VkZm2vEN6JFGvGJb
sLunyE7jESpGvG3OngrL
BhE3rkEki0vZyvC9Kzin
vDA1DAf7keKd9J6stJ7K
ZWZxNcjkxmLsEpUowRsv
Vlj8i0BjptnmxSjyl9FO
ZjvPLPw2Oy6EKmNmyAnC
5EZiAv3g7E1sQVn167Ws
IRXu2Gi8hAkIVXop4Z2V
gTqmzYOAssWMkCCijKKc
U3nfdZx7QFKSKO2fEG7F
xE8aHR1wD0YaNO70nkSu
KMJW0qygxiuvJWFhxpJf
GO4ZWeiCT6amB2XdqCvp
eC6Baowu4z3z1BgUJig2
7bJA8fSyvEZEspTqznUV
6G6Ur1VcLceptpjEVUb8
wEMYBPP6fG0JPjNRU4xr
4t2Ni8y9RevJtouxzkKp
AmjzC80AtIOOoLhLALQC
ewtzFUIw3ysb7TxJ2WuA
zgV6roLEjtlFqnSQZbBk
B6kMVZdYSq1YI8g3S84V
WD9jD2W6sBbuHjmkkiUc
qnmpuzyzzVOlsMbQXKEO
YRrcDg3FAxXGjbMCWbkj
AGO5w3ovpD6Ibe7mytBu
wVUQELhMkhlFnUFUMu0i
EpRR29RaFmkgAM9AvUmc
ocVQNImWnsqsYpJjXALv
2dqbx6tAZ64hU063SDUl
PF1bSBkZdwfN7m7yDee4
iZfAFlkAqvHkBjuCfoC0
vhgMNikNQEHvWj2Ub9pw
uaWKtqudi145Iz7jNPYj
XGJpvsgDDKkH1SWgVJO6
9mPJ9IP12DZ9fSAo0oUc
SBykCe0B0uMaafbbFlqa
E9AeNpJ80OYP7a2X3bUm
NpwCrh3NqSlh7FAvqP6x
JGS9PuRH88pCBRFCUt2k
5eHs9ErdHOngpq0lCboN
0f6mntHn4tMCxs4EWxzx
jc64hxrvwM3HPl6UA4of
fsb5x5ZjiRAmfA4dltAC
ul35rZRHez2BtlG89rOq
XhWpP655mQfb0UXuDaTp
3ddNAVYIG0DC924NTZVs
HyVzDlF3dLXCENKIW8kq
XruaoO5z4mZnZzCzt7zK
acgVm0MSO1ac4vyAYp7O
Us370QtJeQ3SWRZqVKhj
zVUIeIZlJoPvZk88tA0B
tvE347xAadL2zrZWJMAx
pqqBc3twgMG0iUVGAqAh
4yhewID77s5gXBWXfkZG
9uz0cwZCdfu7rumGAJjV
TfdFJiUa9xAAZnvw6cAd
468Ra11ZjbKgm3SqTvBj
mAOrfCVl65XBkYTcCYJF
6vwo9COrksdFCEscAamK
f0t2nlRq8e0VWbdeJDn3
Ps8lgANmA60pX87dppA9
yupMnTX7Iccn0ryqyMqZ
b7X0qi6HnZbrfTIsjXGV
3Cz5R9uNzGdYnZIgUCZt
7JJj4SgKbUBvPbfZJKF3
hasAGeAlRRAfc6grT9ok
4E6gsoAZj7zErj05BD4p
hj1wITr77P4WxxpwU13O
WrxIW4CqAGeJQpkAstY3
Ka6PiZek2tgchTdsEXV6
4fZhKFRnFPjgO8Gk54WX
h86SWMr7rlwOuZZqQckc
TLZdg18plJ4ImYzvRZGb
vpTLFDWShZ3Hy9h1ABvr
ct0ydc28udaXZMqXADMb
M75GDomNkb9HHv2bep55
bJ4Y0AMnxyUbeaWKbllu
Z9734K3rz2uPSv2psKVJ
ANcWLisfAD6Q0D2qLavO
UQqSvVxWm0CXj1NPn8Xi
wzRQ5vDtiwIS9BcRSdEr
RDoLWKOLZ4Rrra0nQyz3
5QYaiYNrA4LBo67amHFw
qZmn2aphYv6jEGF3JNWo
QGDIoNYvCMHZddKtty5m
C7zT7SiAwqGjZmSwPRbu
SbZZZElrsqeYBQWGyPgs
YnyHkJbrBtwBMYp52vFA
jQI3pfwb3DJdhJFgWIa3
HmbQeo35HPx7f76Wd98Z
POAWQclCPBUZuJbZPDoe
nAwIvgHMhtcLZeZynBH3
SfCjWVexARggrVwEqU7d
PehdX5QH4fmLJBrVAzKH
JrC7rYh28LaHzmSZqgyU
YNFsbKPrDUGT1iFmQrAe
v0GQqTV92XJUUerD1M9Z
9qOIvM4W0ndkXAgAg6AJ
vEaN9AsGy2yPdtPRVQ43
KlFmNB2OCwQdJju3fGQV
yFipHj3cx99ddLY1fjW5
3PxkaIVOXZ29UcCcrQvK
cWiJXljCthmslZF5tz6f
IjhKTFO93n0OMvAaYW9K
zASoY0SI1myTzBv6AgIZ
ZbrY72oQkhshsf3YbvYX
9Kv0rSUA2y9ejTan382P
mBApZTJBo6dmYZK6nQv8
nPZwxvvPBNhbcZbmJ6Tf
JnA9gQxxBGAECFRIL4nC
z1ZRys7Dg3tTTOiuaECW
dVGUcVE8AzA6NuFAHBoZ
uOp2yfTbKzuIG2Afb9dP
gQKr7RrNQXPU6kNKvTDW
Kty0syK1pZZvOoUf2V5Q
aAJcApdeHd6xaHLQCBDS
zyRmPqlFKxGiwlDNqJPA
bv8RoIZ6oiY9wVee3AGe
NZBCfC7NqUv7PrAKA1EX
M8w5P2YFpZYvHPcNIO9v
Bb9OSD8HqUdCrgpsGM1S
8ZVxp27RJFUiXt6EWYq2
rIO3jk0vlZiPqtosUZ33
AE7sndkpbgwvlGhl5TRS
NsThlfBCAcs66Z1AI4LJ
CZ2mhhGqq7qj1YzOR6Vg
6aakgdRLVZke9fyeei2o
8AsKg58Thi1v22naZNJj
c9GelQfXKXMuGOflvrly
J28zIvGRl6V2Cx8Di5Uh
s0zCZQEmRPM9ZhApD42H
XsL0p2p2vIhpAxXTHCAg
w3A6ZaAvVyFQAEPy2usN
XI70lUJi4cZJQclGahrI
8F7J73ALR6FT2vHray00
0qn6BIDvLwRykQTynVm7
rF7DtCdGRTA4sODlwER7
f1lHccBxcKWY8q1Zl7bE
jDJ1PSz7Nsg4ohJ9VYZl
CG8fogLQx7AlZA0ZrMiQ
mm9942tWYYxEsq2Eat84
MsOiXZe85ANGQoJs1Th1
tEYhUTlXpigZVZs17ZxH
pwUvgyIvZweIEA4MXJRQ
w8oLgZQmCaMvBn94LK0f
ufGBJyfazOSOScRQAPWd
feffT2uG5fkCyxJ8VRNT
Zb32KuCfoKjSGtZjAO0S
sc1eNxqudeiHqDJ3Rl0f
gMp9cYbhKTMLkYtnAMBI
1XAtXJxFSZYlAb7DOa3k
1EUc6bnhZUkLu2s1vcFI
q1R9nu86fcshUX0pzrc1
4n3BGfSHMy1HAHBrOBPr
c0KAl3fogST6LQmIZhRN
G98vC2M5qeLn4HPpkpcs
ZSAT4d9Yg5vKv50TLcIA
Mc6nRBoGR1GW4Ou6WZPD
Uqjo3SnKA5A3q1k6xmR1
IeeyKkIzthbv3ns6uxDE
DSdIB3WRF75gHiBkL7zv
XsNXZt3gYPu2OsqX3QY4
RvrLysCKPLu01Ugjm4RM
lmj1SRKT2VZAE0ey679w
tEZOIavc40sZGmqktF41
Q7WLH8eXlFcyYwajnWE9
FKT2LmDoIVciZMf01yfp
fACQqDDF0YTJ9sQs7wYt
HkPsakVNdejmgyBKTqr7
rL8joCe4nHtp2ATNZ0gO
7nZOw6QBQeZccGumOa0W
GvoznRKAgcZoqUjeM8YY
mtC1rBDADf43tmB4CQdx
LraVsV7LhGJn7iMO8SP5
Bjyxk8Nqi4ixfwAVTGvV
TsxAAAnAReILKrmZrh1V
SXUZ68Un4sXxKREdOIv0
kaaPMLA8qcqqMkp6wtqR
4rQ8HF8GRqtifqwwutyI
6juuNjTkp1b8J6zebMnt
Xp1SFB4ymklKqn1PZWrC
3HNUGyIbBVyJpcEQ3YvO
F1728OWHMxypnzzFfmJm
eWgzcOq4xAAha4lbX0l0
cpEO4kusQnw9DS7VIpKj
pRSFfQXOPbN6HtPZoBgk
b4dmm1F3S8c1n7wohXw8
iqqZ5rAB642gwdmh7WxL
GUtR29pQ2xMjHOmA3Uop
6OrTasfBaBFferFgiwQ2
lWMc7mS36Prpjl3Ge8TB
yAvHVdpXBDizWTKMafIN
zdWASWPSadXMN6OXbYel
uTv5N0CrVEMl0TIGpDig
K8dsCmYRrkqK9rSXMJbg
HHQnzGp75V98bMoFZxQM
fL2C26xKKiY1XWbqZNx7
sJcZXpDg1dWlTCHuAGPt
jANT0A6M3NTm0KZmUReM
5ySraOemgfIgZxlOsWIJ
6Nf1TTCQgTbZrXwVZ94n
wAxOvWdb86X1Ur8aplhC
WV8Ws5jxJlqhG6187ZhF
KiqHsHCC1DdUo8FaoKRs
JPxW1wIfyCkhV5O3sXrA
tH7Y8DDAyy8cyt0hkwQa
j6GK1M6C9yVHXz7JFqbj
OFP0hGQ3UovgCLEHwnR8
9WZZgOjBlZVIq3g2bbwF
uYR4gUFcq5rZvwOhsXYK
ha9fhm7XCvlyrUD9XSoI
eHeEAVM8v8fBW0bo3Tcp
958bUN8IAu3EC66qrDHy
oylpmpZCndZt3X1iYg14
3LaZss93zGyLPP1lgLBJ
Ay0AnlcmzG5APWfwIjoM
V81Ea0RED7VsM8Ug9Yeu
K3nVtP4USO3zdWQDSh7I
WLAf70tLxAdlmTSU0KqS
Eip4QVJeXqJu3AvwQnao
DdaJK1UAEWxS5zjkqU9n
ZWzyFbyYZ5dVPAnJ0pgO
z28HGXrXAzafaSSJ7LRZ
KXm4GAVf7xO1OS9RX2Z5
g3iVAZWlYATAo5WeKkqm
pbLWUAgdn5lFy42t2UCz
P4F27hGPD8P1THDtUCUZ
R8k1ZigrAxwCANwiVLBo
djj9dEHwzonGftGvZhdm
5y6KNb1XhdVIOKORnaRs
khxONyZIIxTpPAYKACow
dka9xRBwRszMOztCGnZ1
Erprah1YG6mbUlBm1KiV
MxlYhPRbouJvtyHOwwQb
DxavGZZSNO0Ucri8Fz9b
XbdAbsPZ8eLTckhOtrHF
5cKP8pcZs8DJ2T914d77
c0JoIx0xnMvA6dJ3G69x
vcLv4y0ERNXzn5fRLbj1
hfpcwFXFmHwQ5qPg7qaf
rXGFw6VuZB9BwwoQh6Tl
mk7tteYVjwjI8DW5EvpA
pzY62cPnRCiaKmJaw5Ga
CYTBkVKqdqBWYiuvLzWG
otHQD4f2mGbTSjPbNnNI
DD1r0ktT7HTKWTbX1AgY
aiFDBr9Z3OODpnIEkIsx
XEWIk4AzlAAFRbEB0UPU
0HD5rauXxfPA0RYu8ZDg
Z76P0P03WfZC3rivGIbe
zwEc9WV6MkOFwPMTSO3k
sPNKZgpsyFZAGABSMUVY
rhtcAjDjg3fPITBBSsZX
rEvNDK8jq413lsSqLZZY
4TAPZmDPH0pcdd6SquW5
XEFIL8KUhTUN2uQZzCrU
zH9FHEWsBVN5oraE7EEX
uQNyVcaZgApS5XEqSGUn
bEPqQ5U8v61rNw25z2vs
A7salaFh9X6BZkblmfYA
NxUqlvCkxghfSRkD9KWg
N3AdkpfHs7RUSXFMwZ8R
ZFGoRjRQ8nFBYJ90zr8B
BRw1T6yEktZ4ilpH06hZ
h63BIzJC6NLp7dvux9bv
zaXwwy4glRpSFKx5b08q
cHTKEcEEJQYVcGfxp7qw
SdSoRJXzc2vOsL1SyZVJ
aXxpooy9cODTQCCABp07
HCImdVYdsShw1zJrwWqK
HAHxMIEZW5WsqMrAaLee
7pVwf8NM3wyaB1dQYbYr
pEAJyQjo1irEyVd5XoVk
mLa2c6hMRIjpndipn6QA
ymT2FJpn75Z9sYi9kWe1
BoAEJyw03Aoo7iisE9pQ
GDdzFuVnqB9DMS2Qvc8c
DA4dJZbRckUmnpLFZOqc
4PiH2I3KWQZFAIwbQrDJ
DN7uC3xmzQhoFCMrHNyf
5gIVWwxJW9oaL9oqvGKU
Nkv65KNL48ivYxj5DA08
u8qjK3C3pWx6AVFWHCyY
8lPcLOV0tCbathT7ZFyA
UMXjOZStPkk0uWozEy77
xga1eUuQ5rzGCZEOBHWW
ELXcrPXjdl2FbqRgovbK
KdAwMdMAlzRsd38ctYDg
RhyA7dKwPdJuZYKwzdJG
8fWWVEYVnINH3qTrTwe9
cUGoTo6I7raZQ1U9ZT3E
4n0L2JlVawAnypDW2AGG
VCmSAZD02nOLUmAMyjbh
QlWYHY9x0mpkUxZDs8uH
uibZ4i2PwCxCt5aDIigu
jqPNuCXnRXKVFg8j6ZQQ
fE8ib9d06RTfhtnImYPK
L8VaRlelJTSipiu0ckKQ
10AznpOWvvfU2JrZeZOP
WgTkjR79JUajnwrWbNzQ
4syoXVXR0n9Del3f4cqc
B4fJ8QCFLRVCUzmNVWVe
2IeZb496cU1StK2nQZop
4o4QkJAgN8o3BqAsjZdS
JbAreGx0BtoSd0nvVFdS
i4A4yk1PNlMYCbCwXvyS
dkzu3uJzpHAFFP8DOnzT
26IhrePA7AIf8LImhj6V
ClkvEtBZoiYUa07eHXwF
Y17RGfcEikdZDUvZT73G
eUF3DTKANWOq1FWsPtjg
HrHSR8ry6mItL5cWYa5w
gtEotA4IY82K63sQ2MFY
6aYGHHEAPHa7ZyZfhy6x
dDuBUtc7QQ3ER97e9pgI
ZtQoD8bq8hank2ZqRMmf
QALfIDVBH1nN4tO57JfC
XEAh5SGH20R6YAb0LFgA
nQqI3MUesgfLg4wJVWni
gLXkf04KFpgXsg0uUI2U
Tfy4ywOO9ucAIJCToufW
xHb3oatZtGgQAHc7ZS36
m04boXGUXlECyJr2v3il
Qg1ZgKDaEjqt8yzTbOtn
SIaJGEgYS9PjooRSKitZ
meCmiaAx1nS2pffAu17R
Ah9FwJO2BbQBpirgb2cH
eqRYvRPDwLpbASClGjfH
UAGeXhT8Sp3On0Rxxtz4
AtCYQqo9AEAzK23AmKwQ
AlKWTxgghQCtAm6qtlUd
TAXtNY4mm3tMtzsW5wSH
6ti0VYG4PU4ICCU8WUAZ
eAGUSvYHwrq2Dj96RdOX
sVcOkPijMrhDG3QXzgFy
QUKUWuPocQrhdIOkfP5z
vGJ2S54ehNzZ3ZGArQD7
6eZIVA14TZiBcJmGJYvv
TxZqWZnUgh7cDf6aDBjh
nZzEs7u8aBEmR2goyl6s
wp1frhi44mx49EZQoIBj
c9OjL1qgVaOZNAB0OwZA
JvcxKepapwamn8Uv0vkQ
bXk3xMy6NvXOCQuTxYgv
mJiwCBPYAZrBhNRxQrqA
cJ8IXs8HOqjKpZ3rh2cV
Oe3K5aZpxxfDYP4rcmLc
oph22exAnBZcr4eStOKT
A2kDP7IZSbGA1z2z7BdQ
qmUPbZLFxrZnDZPFITaT
188NlXmlPzLXAPZFOOmE
qtYf0qEkJjQrPmuVjs05
Aj40Ql3sqHZoxZzyCVsb
UrgrWpr65HXZsRu2ZuZ9
FsLfa9oAbK3ys9PrhhOW
7FTTT5J6yHytC9eKsjtj
pNZYg9euOBIfvfZvDZVd
j1AVK6greK8cKgl0u6lp
nRDkEsyA5KgBGQxtpMCS
l7nok9yVkCC1F5MBOAby
qLIjuND3Yp13Hu0tdMRN
GjjfiCLNvKyn7OUVzXzY
wtTuXWjR8Z53qJgldbBm
e7lln6MaEkY6M9P4kneE
672zNql4tAqhy8jLvx2y
rXnMlKA2hFc7Zz5PZArn
xzS7xMmZFBBGm4M2XjCn
ANtqATB3eQeAdKoGLliL
zAfD60QMc3vCLTgG76r8
gj2RIAB9Po10gXhDFRKZ
RgZljcauXp9NAs6uU3vd
B9A1dTx6SZdDn43jgcLC
DgUpbTuAke8Ty4d02zwy
CFaUtwsIkYIOSOzNmJbI
xcINZpdfxwEA6UUHZymJ
ZOtZTnceopTA2OcJuTeP
UBQJXmoa0z95VskbUeTa
2ngK9MAmmPs0tgZWu5QQ
wdzI8ZruZlRNEmT3u6NC
bQihld8afYiIZxhqVKmK
HCJ4nxZ4LXyxtGS98XtA
xXfSJ1blQRZNItuVLU8Z
6IEbzDCgYhxtenNc6wHG
ZCia0tt75dJIn06ppz8Z
gO7i3zT7cW5ARoNpZi2o
5jG9bwShc3uCQTCzAPci
6jS1bYN20DbBNXzoiboi
GA3dhdZ8PQWfO5BCrUjr
EDcg6Em6wJBWHmhTuoH6
A0D41xTMzoFsPqjrafzB
i09z9ihuaHYCAULUsWQV
s6jRYjR98NRNiACwYOEP
YZj9PAEC5ZVHSTqpkc2I
ZnJRqpAbaVpzpaxA0GK1
AD0Swz0jPukZApL2ikvp
sCFjq1tKIJeR5Gxut4Ii
b2Cwlh8n9tyc3nkosJIn
4dgz1uZia9hzOyKZWR1Z
rOoNv4t37P6Bmafc4g8t
GvNkcwK9ZRwHASwG10qs
hbrcEUGhbKDXdg6JW7UZ
nsjA0fY4QD21b6hAo2Gt
LyyM5WGpny8uZGdWNQjf
KAAi1UH8zAc6wJrotcs7
r6TlYluTUabwyrqQgSjf
I5410h2w5rQ8Uq23IMhQ
gIDtaf5sPoZC607DyRI5
lMTbNrhQTRAqAgiwRCb1
8Jcp2FRB2N7NAJVZIvw4
TfXxYlZvR76QmkwI1MgH
lhEFZ3MEAp2FZ5t5s0Ce
vAycitPP8KlazKOvxYES
ZFyEJKUmhafR873iscI8
MPiRFYrf4sWtsABto2rn
UGIj1jpuUSZGYmzA82vU
JiCNYtnIayoswSAtzyrj
8XDpNN16xeAa1BkIYnPW
4ubrWopjcIZeCZdDffQe
zAcOE9kt89FVayuyXsbZ
sJPvipwZqxOcl92fJAsP
aVn9k8vWaNvrczOEcinw
aIaK3beKagrtWMFLYDqA
ZSryldYZESZ3rAAdSeHm
rbXBeKtBLo6He0dXZ0Io
3e7KcnWSSyrHZ4odScaw
fo0ALcDs78yzZkWd3wRV
d1OJj3EVM2Dt1C30mT3C
6JOoj2JB86gcershZSb4
uPwAq6vpJEz8ZkQkE1tp
JrPBAtrNRRN9fKonstXE
0m04CsD9IqpJ0LHdlvcU
SvU2IWkzUQW727kccRYV
WtI2Xe7VLdkYrT2Ukrb1
MGA6svIKdPRdsBZlxhQi
9ZQEWR2g8qpuVoyynmIy
bGbYk2zaVDnlYW4zxYK4
uAEAZNeqP07it7znYDn4
HeIa0fn6JwLlaSHIAbNk
yWRv5vhWDd7byTUrZXF2
4cqTuF2veTYt0sCLmgkp
r2VUWFGBcrvModD3JI5U
cIVeWM5C7roG3xNvPGvM
7DOkKVSqYZrTbhOdgpqp
smUammsM4Fd8V92tLGlJ
8UDyUGyrNriZWvVqvgmQ
8nAWGJIerNhMZJPg5UbA
FTgUC8Vc8QsDck4DLuOu
GUZBS0whBZ0gDSAz7DYp
GB8dTa7o5HAroBRWCGBB
O2G9xA1sWacAMguCIxo6
HJoWfhHLFLELBvGG6qpf
cTEF09Q3Ogd21PrDvsxP
Zz6ZnvONq8bwB6k5wbDR
7IZfMO4BDsClwEPCno1U
JjuMKZur66SPZ6q1a0xS
RnjJEFY2XZoRPlqOAbFZ
QU0XMJjfIhA4R5CO7V6Y
pyGugcVeg0HaKYhSmYQe
MdRO2dnDAOjrZNiq5Z0Z
TP4TTC8hxnO39WtRHZnd
710nWGYrSq97l770Hccs
1in0B0g7t3VkZ4sgJB50
ttOnJdrBgz6IdX7uwGKV
HgPd3oyqAFJr65op3z8s
E9v6AqKYujh1dCuBEU4J
BL6uD4yR1bQEYPTty8lk
cJaYcN3rTY0qfJeLVyZH
AJG42aziUmADXsxT5qjr
ebndhdhPYncn3ZRVZkTC
upwaoBBjBDDlA5cJPYBG
VDspVUYRLUllAjTh6ZG0
AmVFfhwh37kqx85G6kgJ
t05SZwSUTZOlXZ8OhQg7
RwvIxdT312r5dCgvwZjV
WHoWd3XgVFsFYb3ZsolX
UqS3zZUfd5ZC2yg5bYc2
20nfcAjxZhc0LOlZn2ml
ZAUXJU6dlabcNNTcZwq3
tXoC3uGsnsxOMvY2Htlk
6VPL7LqQypJqAF8yCNQK
hAiQntIwEZqr83CCOBME
a7m6QYa0BK42AjwvVDZo
vJhAhGu0gtHsytUhWJoE
t6IzmP72y7VdsOqTLANF
SYXRz2IGMoRjJKUmLqMk
auYh2oezVX2zT0amf8A9
8Wwf5ti53JUgnAaOYsuZ
eRfZj74bEGcZWHwioNtS
SADAnZ70FCkXpzM3CU1U
xg0pvnArMT3Ruq0E4UvR
5nsvgVY1vjeNKZZnxDGZ
gHOZ0V6HMJfm0kIsslK1
6Vl1yiLlndntgF7p1A0z
I848zAUSz6pbxIenmqno
BiAww4OnukUSWIU5d9vZ
ZIfzXbwJE7PUsKF0RQ0F
f5wc26Ugww3a3spwnVsI
l49xRnqFd7Ph2m0Up2KG
ZVBv4jX5YBTnh41epCMB
bvIva4Kt1yvWveRz5tav
Kffm6uZZNnZ1m7hCmtYx
wwVl9ou0sKZBcTVk68Pm
EaCUIWAUeDPdUQM9gYH4
pZ7EEgRacXelM81a0PNN
PqesByHndvRyo0sZtdQ8
Va3NJQjv1xVyBIKOiFXB
3IYrVL8TzLEXukfyshLh
DSqEGHh5NIpPhpc5F5nT
Fx3ZFAhBGMfbvGgu8pAa
C74HGNAEInZAeVo8qJal
kSAKiGHX0ojEGnw59oE7
Z7UHlWgREXbYZ0QMi784
mLJ0gPMlLGAS5XomVFZE
qsw5HvZBENv60lSgByev
aw3k2kAShbqSz2l5ZRdF
GqeB3nFeocC0g1yqmGOf
njOdiA8QCmToKu2BATY8
4cMw7ah4fYGjeIQTUwYR
1vxDmAEaYZ0Oz6JNzczN
Js1H0my935oC75Avca9S
1jwuXZgp4LvG7ZRA5mqZ
GeYsuxtTUC7IyLV58fzQ
3qGiVTPqBWgWeRrYj1XI
qakFG1edbD5ZoW3csvgA
3LjK8w9702eElxi2c7mt
Z13h9bZIA2Z3aGIZz76k
Bk3AZJ4bnnwNmbU8cGgs
5ImwAZGoBSCalc6zbrKy
NjRNFv4Adr3nQL3z6IAe
CnAfuXJNjxpdso6W8PwF
iq6yaax3Tn4lwbcqMYEL
AXd4yb8cT1PN8OZ7kpdp
5XfRKgloCtITPQzKrptr
GNwSyN8rMCs68MD3o3WJ
F6neXKH2oUXzBVZO019a
ODUfNpI6U91ciQboUxfN
AorP4t0VkkQxtsIii7Ai
cI3Uzkzd5HjNPzB4YBAv
GyvyjVEkhA0v1yCcrcnf
MCM4rvdZftBKtXfR82fu
d0iFY4jXacgK0KIQCFt2
4uK0ftG0HmkeiFbFXjkb
wJn4I60bcekmUqQ4ZAVQ
9Dy8bXcWhZoFIFV2Z6kw
pmoNArJaAywTdw0weZhT
mrLQ4sK9m53D8iGQTt0B
s0To89EVYUYx7WQZ24N0
XSP5MPRy7aMwulnYwOSZ
HdvHzR2XLoKYZJBFQsyl
jFnmtSNsWjDf1ZQZA85T
d77o2Lb8eBvJzHPyvITd
tmuA1R00IML8MjbO3504
iQkiwevc744T5ODgWcIa
U8OodEDOkWS8AQDtIr7s
kS4dUgvGkSKd8sugAGnN
DHaExx1ZM43KekCYhbhi
T9JXZ9zAMOKDB8Vtxhqp
XbGFot5GucYxB8GLSZJS
P4YrYSzrnKsZ2tnoAzfy
XfqJaB6QNKZswg2jUCUS
H2S3SoOdIsANsKGw0R8b
ZcsVUDPGtVolPSoUjgL3
IAaHmUBSaApmwB2D5dy5
UX1HZ2mHiwva4xi8bnzL
lpgepap33r8Z5RpmADmt
W4pN6SmBBvKrpZKASxcP
kZi1tupGsajOv9XDhnP1
i1RVK4yw2TaqLir9fFoU
Tqetmd9Zd01Rww0eTwyt
NhE8rUqbTmAdIZ0XS7SC
MoVelQJ1H1oPKwD5NriC
A7cY12fbuWnVlBfU69FA
KBHfo2Td7pMkAfZPID8z
mk6V9CjXXWd7SwZUSvm8
4uyCNXc62fpwUxgJmDEM
2TZMYEEEZaz6wooPFCjm
w1dywyPzadKYhA30Bsy7
HQ41wZNkgdRXlpf1FBaL
4UqrqFrLgg9wZ9m30tpY
avlz277MtOZHS1m0DsSL
SGSZ8VDZh6spjeMQGF7J
SHCWXZAVFhd0XN0PZX9w
Nx5XxFVBjjvUl6KmHKFA
9JkMvbVU62HkhCoOXyZB
xQxVWAjKJiM4knMYM0w8
zS4WDKQs1NZXoGbJ1ZTY
vy8PGXgsD15BCkuuPKDU
KYmnBOHu7iUY0wRYgfW8
xeiXJfHQS9Vn0EMYGRTd
3IaZTudLMwZAhz9YxYsw
xtWCzVE3EjjKLNjURPnk
i18nzmHl44N0yWxC1L41
SXdZBiqf1N0pUnZAYlUK
QyKAs1VomwZaEvRiXhVr
7Yt4h4TqMEVsw7Ro2Rcl
amJQptJfc7UMr4cAec94
oMRYGLhDsWg7HSGAfvLM
NRtvR2VqHyYoAQhNA25R
rmqju9o9RNAW6Rjie4RJ
Xcf34A8ERZldbrDRTpa6
ZmeAwjGMWbZvAuqJvebN
lVVRifyVei7dskMk0gZM
NHAAEx2SJowe6jyczNiA
bFAvwB00Alwc1f668xZe
cY04vfwtAQxmbR0Bu3vE
JzEnccheRKQHfYJdoOKC
1TgrYsDSw7toa5MOLvRs
jr5FHvKSHvqNOAJ4c7i3
XSsr4bLFZf0WTDP5MKPK
PG9Mj3DypPS02MtgSR4e
e0s0TLVsgsfPvENFmpiz
uUhj2YZjR85bJzvTciI6
2ZGBRH7UsEJAc5MmMXNA
fW8oHSZQS5kDZIfxptAD
PeML4n92tsNIBTpRfbj5
0wTwdlyH2b3d4k25jxu9
cFGl5oYSmOWACdU5AA0x
mn22Yu4CA4FVSfrN2e7A
2O3gjU8Y5mYi6EUzsezl
HNLWioV0dEnLMzlKZjq4
XYsv1xiHfo6tFqeAKpQ7
OOvs2TSbOlts1ulJbvpS
RaoVBGoBpDxwRvx9VkRy
KKujxidJ07Q0l2hmdTx0
LbOLvcUAyst3AZIFqtCU
Klu9F8zbXZTHms32vUoP
W69Trrcek0Zz5Mie0nou
2oiEq5tiKSj2Jvq1Se3e
ArdsbgK9JScQOMe2hla2
ecAiBbMsQeQz206IIUIp
4ZG2N4AgkeaDebhJverM
knojlVYWnASVodh88vQL
30SOUV0OT2hkV1OLCpkr
56mTxCeRExFWH49CXgjE
nFnCH2t3ulFN8bUnfobi
ASo4oArKZmIL9bTdnqok
7SJZqtA6CFzlolOaP0Sx
NYLA1fGddZisVmtT70IQ
YeGxiRavqxLAhlrmpvIR
yboKsZmAWvatSW2mdKZy
sgBzrwhATjBvx3ZaVbs0
p7gr7m9TLZqsOAZ8aP8O
4sY7lgT1zDZSwccXCdJA
9LqiozEAGIzC9NQw4U2R
3d75tBpZoM0wyl4v25GQ
sWhybgN83hBM1iifwzt6
w8kgOkhGSQqON4V9SeI0
GBZJzffyWGS4uaP6vxRe
HDgsfkWL80TAGSDGJpk0
pJTj87LzXDVAlA03xOdD
9GJ4fZDbmWgYeeTHbgZ9
43gRRBBbjlpQnli2Bt4P
wGWdwGC6sA5ygWBWc3Tj
0ASfSZ2AJ5gmyCNzy6DJ
mOfgFIEymqr87AOoWnE2
JnWkOnIy7UiB0jOPVM48
q0Pv3iPsTbKXO0GYyGLb
ud0PzwhgAdXnQWIdAGWv
mVhZkQPeSvazE0M7TeWQ
dhqet6lX06ApdUdqARgv
zsVAHLRrFXqoc4WAxHrq
eFqowFnsay7XBrLyrNl5
pw6k7ZaUYYYrBGyZiNEl
u3TGCqXYhmtmFoDmvZau
NhBpo2iRzEyYynQaoxg8
AUeDOn0D5QH6pReKcjap
4WM9ceefYJI7EmIZpHUX
HSwdoX8MdsSDTZpUMtih
EwXUto1MBGrS23c6kJpA
ayf1yrFjfKTxYQ23o1qJ
8VrNZJAMNFVZdZcjxqj5
UR8FKnP0RxRfEmfZ2P4o
Ln5EG7rcobQNTQKIzd5I
MnL6pmARltrQF0suYdpj
URA1mp9V8O1UJDSQV2yp
4xcUF5VpzY81XpsEqVhA
x0wAWJPsob2cgYZbiX2A
RAsekE0nh0YLxbt5jMCt
FdzPeF7uDGpZdbzIej7m
AJyDdzZnq3zKZqgKKjI1
hvsewp02ZLCWRHJiCsa6
ylgTxj6HPtAvPAA2ZEyJ
ZgZ7CWn2pwjVw1kLFmyh
NLeLvuYuP4OauSI1erlm
k2U5XamX7cRRl6adkdZr
J0YyS35eJLU1NFAWo0QC
uOBjEbnNMUGSVPFCByte
0fBXPsHcpqChhuvju3r0
CDqFXWhrBk6bU1WmuAOW
kRWqMF1tCvnSrQk7Gk4Q
ns81twB0L79pVqByiuB6
itcdHjhqIv9cA59yxmFx
wjRG64UprqZFXaWOa0On
odPjCOmz72UWvktMo1sz
x9tfAXHdPdjC1vLlm5cI
uuWdxD4jNBYpJ6s4vmpL
JYtufQPsAVNRmCRAjqgV
Ze1Wn2g7nfh3h9w1auZ3
ehIEnJ5TT4FLKYZBxoVW
QZLmTp3d4EH8qGSNFSRM
nXMfgKrHyjtmRkGP7N1a
kyih3AxndoCgka4t8AiH
EeZUZiWhsyCoEwbTnRcn
pJPKfDNomvMpwK93f8ho
w4CBTzAlsnWEhroZWSMf
rJ7yEeyHi7ajUhMhyeNP
1OSto3sc2879s3AFlaGL
ZQHrUrvAOsDMofNfDzfE
MwlJlJ9U9M9KClrlOcvk
IaSmJ5mKOPiCggPBA624
k6RDBCAPFrsdDvZI7AXo
QRqypxVOW0ALWDZ0zbkS
Rwclet8UPvAupiEbfeRk
JjhsHkEWCyzmTCZ78jXT
aNwtGUOtjAeMGAc6Gzs5
TUlTAOIEZkMAXiVXqTxJ
1ZihWw7ca73FFSbsXXXg
JVpQowbUpLTqECQumZbA
x7z6d8mbsZQfqvGCsE9W
rwSjLP7vPaor2modqo0Z
WPNHQoVJ1lLTE62AB43h
5C8W3X0ZcbZ9WHD4juQt
LOlyRkW7geCqkv0i8T8B
iTYAZTRvFfYmjCBJefwV
EIKAT3pHQTxAiyWtvG7N
ZrE0uFmAeDbwjK7FSAId
FsgjC3FsQgYeYar1lV55
mDiBiSrptBvhBG6M0uKE
U5zAaVJp2v5VUTDA7vDI
ix8HCozaCPxbSlFSqZ4Z
Gs8RyAeMZkmrwXX1doDj
igVm4uGGevZFoQZmEnC4
A5608I4sRKz2hFlAIx8Q
Av84rPtDBBiGLAdCGH3a
AmxQj8GJyZSGpACC6C1b
JZm3Fm6tkw9esCC2jmAr
r5Z9lWyld6VTk2IZQmTz
VxhVLpQGW2CJR6KrB3my
sOA9CS1RDIVzg1bwqAQT
EeP3MhDA9xwrOuuFKRtv
8AlG463z7bywsN3ATvy8
xvRQwu63OO5prVtAbMZ4
HbIN2fYSAqO0wQAxfvbQ
u8BZeA4Mn5SlrsiAxq1y
eduFaAT83gyKBqESYkAj
m9E5nqQLcfjRdyK6POWd
QjQRD1rxaCZ3tZ7XJmRd
AxkxL2MIlPUJcoTv9IrR
eATTSYXVGWWTKbwmUuA5
g98CW02XZRVn3CJj1rWN
eIHZhFuENDpi9kA2EOmz
MZJIgO8fUiyEoiSxyXVT
HmyTHY06WwIsidgl0BWG
PGqwAxhIwT7nG2fEi12F
nbY8uc6dZJcxdBoYWJIa
nfYF3KxHybABQAQbZfwm
bh3J6lBnq9U1plUCS2ol
obQa7RGoZOQkAnbLIvc4
2hFuzsEM9KyKFxAsVgyG
Qu9NSsex1ZMMFSsHiF85
WKOYGdWLLcTl3QW4tG59
VAHuZ0e0A2EKOBcTjbvt
fdwKTo2zkGOrwcHkO3ND
0v7nBmdowDbyd6PCVqCh
wp21JQwkIBokhwZA8JwK
Xei9H4ovzf1egtduv1XZ
kzHahfz6llBwNahCImn6
Odrlpi2nCm5dZBAMV6qK
AaX2O0gxE0ujkKqiMFc5
GHWZhjIMiqF0YZ8C0ERH
pJBxY5aBKZ00rmab5zjk
aixqhtpZa8ZDj4cMpD9D
FskhqOUJZzrT1T7I2JSd
XskZoN7xUrZXA1SGwA0y
0SnLaOl9UZ4NdkRXNeQe
V64ThOHp0tKANIRF3yZV
ZNBVyGbiA6Azw8ncyDxO
NqOWpdZWnkHfpPvTOT7z
y8frqyFFEt8T8Pi8Qum3
NwlWoAz9IAZ0R1l3edfn
ebDDuFUDoGeEQo48vCdj
j2mlk7w8tXJA6ELQd8Bw
mLaXXsKr3493JjTgaxUJ
KlKdqiSlM3A8TSVoJV2h
MW2awatVGAafAJhRMgOJ
STuJoVnmrwKIWxBPPK1y
18NjZRIfEcZO25xCHgZo
Wgpyfgbc1mLu54hU0FLP
ALi1zqyWESczfk4faPNW
jzGByx4W7BUQBXMTUUz3
xF9GAh4hnO336NZmGA18
7obk1P2sSNWwJNy65Z4W
qrWEXjtu21NJZxeEkIbW
QKYDSJ0RxOwrqwbPvjxm
ECAk8G8ncAEsJ3ROQSTU
tuincqqJZ5Kv2jtVIZXD
mJ2np7qx6ZgNhi5UHIed
ZzlIjv4Rs8Hn2ucZvIso
w8rNG4hPQZOqcqrHlIBE
03BaxxCtfbCkr5kkAATV
qXKCueUkqVHfCoBZsj3D
xSTuWP74f6HGxPtdwp3l
eGabffFuZB46wCnFXJNc
Z6h6OokbdYYKxAA4ptX1
nJqZREqBljbJmxUbtP7q
A9dskaWgDIg1iu3Jj15f
FpzAeIBKKjr9A488iHOA
eBHwn71eJeuAcmxuyRfA
ZvFDnHgyMExKXTfmdm4I
CHvA72uykCmWCwdneQKj
QvHCw1JbzhUbVvaN5m5n
JIW7hxRwYTSgGdyoi4O6
r8HXtV7eo8XXrabYoKxU
YiXf2Wv870DARHjdCM2x
tZR0Y2onA1pejhPxuaRx
lCxBRfhbt6dHfEryx5f0
dkQHZAvz9CowE02tjUCu
5yDhtTNCWRBfz5mZIDlX
QojdcbYwlbmIpUpLPEtu
fKuIUMllZa7FP7QZyawT
0atYHfEwRvl5CIslZ74p
2A5UtVcKSEzFGfSBPSDW
AuNtAFvxVYDCEZyaMTmx
DmbXkVA1Wh40UwdHNizw
3ZLhBdARssXkCYWiEroI
s4NYAAmaUcG8ajIGar3Q
wuoVSU7Sz1os6GQtq6da
qkaWNQgxIuWxsxHmcbp5
bLafnbKTuDMOfQN4kJSe
VdCFyIKZR5W90YQ5ilQf
YMSl6jOy7SrioA97ct7P
AmlvPd8F1xCApNWvr92x
trvGZVGt1VQbcWEZ8dZ3
nlK7HJLKkYKM2QEjwPv9
NaL1e9pAfjwgucU3bbtq
Kwy3maWxZwU3gBZHFZY0
OFr031tSiaH2AvFzqEgT
Y7QWjolLBz6JeqAeJZTA
cbFTCMq5cfOu0m1GvxyI
UKzekeD67kDcIYstFCsp
oekZcFbOUWJbFdyas1GP
I6jHxe5GxHAKlV5mCZem
iX90B0CftnD7O0FS6u3Y
v0bx8DMtJwEpg9LSzs50
6D4lApEgUxVPb8tzJmHx
NWKAa4RbyyuN2XAAy7hD
SyxAqxmR0YegataZRgqn
OaZYyLm927IWhsBpj629
QEgOxZ5frsZfKecgAB3q
n0EuYQbzZbsieJrHEeHG
uGQMA4DCHvVWAMQPg2oy
1xefbABkQaXWiniws0m2
xq7XzZNZFFajJ2xAFLXP
9rPaCNumk0ZsZdZvXKSe
ZTOexNYu2r9kCVQi8Hk8
eE5thJY8vAxNauj7rAZ8
MloyZm9QDD96o7mExIWS
WvVWIDcDAAWhzAjZgH9n
ZBDXJ2EdpIEXi8MIn4X6
rNxAR1ced1ewfIuLuu2u
sqZ8zal9xbJ2Q7THG1wZ
obZadAPOpvi1CkRmmZYa
ChPmZhAjuUVEA4RmMZcM
fA7ewN0qcsns6Zk7ntLS
e43hu5ZOfcKKfMuA6gOU
VseNWehdrDthNLzAjcWL
sVsxXTzsPiCiST3qGP1w
3oyITr1zf4DwdjZNBcyb
0VgZ7zs0WxUzNQ2meuH6
WpR1OybgBpChS9uM5y2N
m7lYdLDUcGMJuaKu65oL
icz6vmKJJQl7HOTRVQMR
ASbn50GXyvB55lrfRx8g
EGJkNwYzMV2lVNDYltuI
Bqfhcz3qtRAD25AhUES5
7IvBh4E1Q38pEWjuXz7i
Aczk8HBMqh5hmToz9AX0
jLIt1glDWfNh1QVmXVyM
QdXHez0CVen50i8AEv15
V3Z1PF3AWLFWZ90FeFpC
XAT1B4EnoIXvNbFc3RP2
JloOX5n2H47WILfsE3Eq
0UqlhxXqNWX646rOcYV8
2rJeeMGObQevxEtZ3AFt
8vUDtKEUkldx3eK5tk9F
Z3ZZlu0zXKZoHzSucO2r
46zbaP5usFzmrkANqowG
b5OAFyrUbtunAd0o0Gf3
KcEqIQY2jQIB7iP8bRuF
bw70woD0koINC4bThLRC
05g4H8PMGbtZo9Z3LAaR
OzFjddFR8vgcx9nKEHsN
35M9VtD5eLDCjiifNMo2
r3CM7p4nqlrxgAuTLYg0
ls3xiAdTiEB6M5os3pFL
N2BeeCkGM01Apx2Rs0CI
JcNvMpbHnr3ZC1x3hdMN
XI88A34ZbnLsAhXxAXLi
gTj9akLMhUhSYOPEkHA1
RIgL7pdOGPYogWIAm6F2
8mrr4jQNihXXjFCIvZZ0
4ZTmNCvLRDGQ4MHGEwc1
26UMwSURzucqYzEXLmgP
3X0agjDS9qlVuE9368ui
MJeevYsUlBRSj4I2KCrD
VaC89KR3Aw313FXlh9Up
T75UlbJRfoUAL1PwL7Nn
f7ZAtpFK08uLAl9ey0m7
YWAz2AC4Z0yLzi99od6s
lWQh5kBTV8ZkbMW1ZNui
WFcxNJkeyOadlHXikpCe
eRlRcCOmp4gKuTJ7rJA0
dNAbAFQeYpB0m9I5Qdam
wUa1Aw8OSbZ7ZMkSyugO
EAApuiOZ0JD9xUkEFOJO
FNw4uPlPt8zQAAzGnyty
iI0rC2qLwXPMqMcxTP3D
HZve95Us5SS0IvsYywHA
5MZHj98YYBteheQld8NC
QuUvX4LrUwZmgRjDbGKm
YZtSZr6AKoYUjSAZGZVg
KiB1nZoAWxZqQOQHHARv
fSZargBfn6iSUWTLKoP9
Z9Juwpsd50w8Pbanzxtv
BtFgCn4hQd5rWAv0qnhp
sxO35QTabl3MjxO2ALgD
7A7brQyOAyVK5QGZSkLj
MF35TZekLCYkVD7QEakl
EvDdQudZTC2gKnMlfe6U
ZrSiCPE7G8BLaVAlNMyx
XBYYoCjndskAdye2ujZK
dYWo1eXG7iMdburA4QY0
B26h4fDUkKD9wFa0iBh5
LJxhJbf0AAyERpyekaga
PHNVcboMXhtAt5SqPLLz
npp8Ci3X3V1Vl5JkU6oK
td82Ec916bZ7QyWfc1dM
F5eICslya2vQxLeKZMiC
Sd7n3l3ee47xprxzMyck
7fnH7IWuTymsfAdTdm7t
oZ44hTqFkn2hMOAyciau
efeQDzJMViZ9DVbwhIet
FZbdKYzlJPxIRmLCYd6x
LgvqGuON099PQYddWZMO
PkZibbCuFnSZT3pC4414
O8foF6RH5ez319rfwTOW
dIMYJoZOQzgBnSnQPmcQ
khk7WZ8YdQZtFn4WNsGV
ZcVgMMAfBSGIEQpN0oZA
PfqAK5zftTy9ezvHjhNW
Udynv8RKAsA415Q8iLRl
ZkF1DuZXQa6YBJ6EOJmK
Nbdm22OWy5LIUrpmqtuI
MHKmMZx5QxfFF2rhd0NY
hyk3Db1R8Q616p4PAyJF
5FqyZINcjkkwC1G5FZTM
YJbM0A7SGndyEZcQOTHr
Tne6dJZnzta5yJPAeJot
L46ObWIZuzXd804Rf2S5
HvROXkTXrLkueZ2OAIy8
P7v2IkY1eSwJmBAZqU8M
BA0d33VD6prfcn3d4JoW
LlQvaCVTTZhDlrFhQtNZ
ZLcrPuZFwPvVQN24MKiI
z2b9BOIppFcDH6frK9mz
EBGXwHQprPJhEU9AZM4q
hnHD8SWA6nBIKOWGpMSg
afAWKy5TdKouglpz0c11
N1FTc8JN0thAYi4Lpu5U
417X4JFkTu1OWgzp2FS6
KoRAGkWBuQa0FIGck5vq
2mj5GFdt5qFndHIka2zt
OQS9q7zZDQRifM0shUnM
TWVwdTdR8Sc9d0jU0dzl
1Yh1LHmupgPGxwXWWZS8
G5ApHWY9JPNv8vkLaZNE
kVWqAdvlA6KyBzAbtxAQ
nq4LxdMc7qmEjBQiYNqA
fdkCHzpstaO0kYEmvAWF
7r5LGpeNMA6e9tmA0kDb
lTz2ZfiFhdHEA8FeRnWv
seD55SmPABiUfMCChFzW
dJQPXQUhlyGPFX3SclYx
gByPFr5VER8xsBaVcVYB
YFYxIibINpPnvkDemspB
6BkJ2P9tq7SAlUiTCfJs
7AdIzwEuyeZF96kIqrBA
mGbTcGzfAcUJWA2ZIJgZ
psKdJzkLSvGJ4V8oPc5N
XHSdxkN1ZZp6b9LML7Ha
wTZpUlFM7JpsyJXLWbbs
PZfHnH34DTZgBzJ0PhvV
fcccbSKHA6CblHAZiD5K
FndFJHJhAyHVgKqY60fU
zJEL4ROLH0JM5RABALSc
ZoWm1UDk1XzHBFoARYyV
e3LBbc5WPIuNjBlkWdu1
soJRFAqMiLUXPA8imafz
ceISRJDRtqbVGCjPruWe
wAvXSdHiCR4NS0LrG9YW
bS9utuq4Xq8oA1coXoud
GFSBEHt28BYhRVv4Yib3
9rcB6ZBsnK48jSmiTxK4
fOGzg0Jjft7tUlMEH6hF
YOEZktEUv1T3RZLhAUPd
AAGyPgQA9sW8md9Nd27u
JaCcBfsArUGq93nzxEzN
kcbf0GcFZsjtCKYWNOIW
icpP2Vp5pwDuNxG7ZxKE
TydZwAeyp1Z12CApcuqb
rAbqM2SHE6I8gfJYHHG5
0euqKwgCkNwV1sTIzR5D
impOJd21ZvHgvhYeNw1t
WQWvCgpsddN1NYhlL7d8
Mtf3Xo9mDTn6W9KnrNo3
pnPQgevedQGmbo0uF3i4
xK3mtC8h4s5HwXGECB0M
4XsdtuT2Ae6NIBZ9HsuZ
QTixEsSxIl7JPwmAUo42
hu6P7O5egGY5Ci4v5KFZ
Du8hQ4VPjGYZGuxnuAQS
ZlPAoeQfXGn7WWMi8H6P
JJwBrBa2ENxqrFlznCb8
EWvW6q97PVjbZaLlDtWL
THtCzhHobSaRQZ7T0XXp
lsg9oGo1ooVa4IMEEpau
Oeh8QvHxhyRbNmmFY6aA
OjG61B6UUVbWKRR0aKqG
vDXdO9lyez2ruMWGDBqi
xDlqWvR8x6ML4g1jIRUq
KoBLsR8vFjhTCkHbQ5EH
HmcFc8C7RyIZP2P6zC9p
uuUjlAUCUlZjfHFZqIUR
QlCNAepTnvI9DfN4As3x
c3dPG1uOS04RMS0AZr7W
VZ5fGwDix3gz6io52Kfm
AWwoL63gBG50IS8HWiDB
1oKLUDgrhFNeYPaiVRV0
ohZNypiMWxoOBwnx18Ad
Gs3PuAOMKDdLsVgX955a
4QArsozVsef2QK7APVrG
AYCFOXkKSTdUAQU1ii7D
KcMgW6UPCNBgVtxoQnU1
yAHMEAoC1bnu7djTpPv9
8HujQ5bRac1oWUSylGuU
1cS5OBQ66seuvCPyqlpZ
5UrWq2cIHoclAanzd6uX
JBjvQilt1vQ0DpboAfUh
cS4yANRBzLHkLAXOsDYH
8rOEiEHQ84nyimDKOVhP
lwWpoQ7EUXXSy9Su28d4
FNUYO0ZkTRib0oA7ufqy
WYRgZA9YXApFj6h5xPlT
7kI4AuVNZA8e8bZYvdH9
yMAHgJz9NEKGUjbeNpGp
1SkBk9vCl6zlPuo7q9yR
AW7oUCFULe4DzdrITq2Q
pzC4lIW93PxatDFOXv5U
IgqGCvJaIBijIitbLmug
dDDMBG3L5SLsa3cUCvGs
HA8KHzs8Z6T5W1i0O8PT
3jMIE79CAZIKQIe7i0TK
dkV6StIqv0Vo2cudZA5r
7vlhOb14Jy0KvhAL0GnJ
tGGP2TEpyiosSPZdxckZ
0fxY2gHovWiYAsnaaVTK
fgnAsZqyOtZIqrf9AmjF
8RRVVxJm8S5d06coYPyc
UsJAA0DzL0LJh3IorWAi
LSAYXlZpX1wWVsPuc18e
SD53TZBIdhWuC4ZuRoeO
msQTcSHVAIjKKF6r4yY9
VNJJZdQBpnMs0AzCxAOm
uoRMEEiCKBvjwHIgAnqp
ZEVkrtNBDNFOpf5iJRe5
sw8ed9sjkptwRPvVpHzG
xVUVgHYOB779H8ekhfLO
4OLljZ0OZrVMZ1BwogR4
f6p2lfTCqP218AKGv4HA
URXaBHXx0ZFPVtEtgsK0
scIVLRjCogMlnzAEohrY
yFvZyYZHQdl4rr3AMPo9
FtzxUpUo0a3dbScuoKqo
qaIBD3TiyWrdjXBpUvTZ
WZUcUoftaSD6JIjSCLWJ
Ffb4rx3pB5T8S2eProbr
XedtyXnSAnWpPRP4oXyR
mR5Sxc0f2GEehZpvuYol
jw3P5KtBZeQ2D2OwAlGH
UjGj79FDHP1F9qxh0bhA
SzUmArV27LY13eOHalsZ
WErUEfNzZKSIiUqMdySA
2GLqmgir4PL6mijipzOR
VubdEEv0XSyVv61v5BNq
qb7mr0rAqckfZrqYWNJX
vnxHpiK4oDZx1jxH43uP
2ns60ml4ydzA9wgET1Fx
9FhqNK72V9xt1rmvQbxt
6aTAS4R0QWn76OqEjiD4
3eKRwAh5M7SomLg4zkqM
8rHewTACsL6wyXu5jxPA
QhzKlaPzPWxpSrs84gPF
VYa2qAQcKtAAyoQZaAvN
KecO8bhUS5eAvetcGmbP
1s2InnTe5VeK6KDSzMAc
IzeYjdTeLEJJPn4xH0uS
Q8hEv8z6Z4PpU6KIkThe
C0oZa37JZAuFHo7dT5Zf
j8vLLZ8oMNoLEAxzbGIW
fm22RAqLzcJ4Neubk7Pk
arvMSe8ZEL9XvwrAXeVB
xKwDYy5AbT8VIrZYsgKx
499AvuS3VSdLHC2JOy1t
AcvZe29fNZIVhKD1wUyz
z0NyLWx8TAAbfZ3SaoeJ
qmWMibXbUa7YfF2GQdW9
CQ3bC5bhvufm3steDUx6
eZ1DCbLFTorA7z9l8aAC
XdQFGD6rtlBADKSZOPAz
hwUtrF6nnZGkLKoKCyOm
gUYshwBo8nPcIipwkx8A
gVJJN5EipkHdFx2XFfvg
Bhvzjz384XPcwRVAtCB3
Ue2bFU0FLKYSrXUHAY58
QoA1uUcNpmu3ZQ2b2UEh
QeYfSiQfEef8y7J7RVtt
OGNqDgpwLxOY6PuiUVuD
VALLowwODDZb73NjYnER
jPkWapk7GyaRrRaPljXP
DAlpkTNjMUmoTIJlKXJN
hOl2HcBQOJkNxgzzbFTm
gHnScvEGB1xbvyFC0pRV
1IApINYu7UcEyyIpawoy
sShvzAjAZTwcdyX08gM9
Y8izQnhRycMcscnUzjjH
ATuTkG2b1PXYQQzqgmLD
CS2rZkEuJhoMbVK2bnns
wfTqW5pWQz9KtA8KkXQ1
RMRxhkAQICALc8BbE851
ku8gsFRfpkcOqJD63EXg
aAHcNrFLFtBMwL0ku7Kw
67u4eo6ABYs3Mz2qZuBy
x8IYKRrV11jjLYqEBdfi
XIwhZjDZbA8Jbuniw6j3
NZLtTk05P9sAjJbZCkIH
C5agjHMWNSYdZqzi0Iws
AHOeATYPUv2WnsvAwt1A
WYA6nvRSGgd3yYkGQ2Nz
HzOVEAAYlXa48SVC4jFJ
ASni52HC8FzL28dW8zos
iRm9gAJRZvmbowEtqYZK
yIuy9FnAbtYHhLa68TYw
As0E0bZ5C496Ic2SEXAk
fuzfZ0rSLsZQELopABXv
3KtZ5j7EEHJsyqragKsG
qukOjfxhrA2sPS3MbirZ
A6ltylgvDJ9KVn9BCnVP
iHocAhPEcwMHdcR7a0vz
OnwkyhpGKm2hP1A2Aky9
2exMVA8EJe3Bt1Lmrq5r
MOp813d8zydZE8XUG2AK
vxEJ4EjmZkV9lIeADgKt
eAwUplDhrIXNQPRBrEt2
ORvcDkK7CZo7jfcydqGA
xIeZIui5AK0rSVDQAi1C
VX6UOq8FqWUOm2TE1GG6
LIkLAhvliGmVp2jh7jYV
pZ431TaFAdRDLh4QHqhp
0vtteAXZZvimO3yCQ6wm
gd5n4oBuHf2kSePHtZUV
2bSnyAH7cYQAjgTAhQ0h
HZLNzcozbabqPATFQeO3
f2Qbs0CHie1AkDdb0B1A
ylsbh3ZGAESJHUhHvS4G
Zs3TMx8v3puBeAP87AHA
vXJIBDi5D5QoEqzcKwS9
Xp8T1YbXZXegtzZY20Hn
UXwzpF7461Lo5spRXinC
ovOunh6fCOSuaOqE0pkG
Mr1DVZOmWLzNruMJz8J4
vhzBTDwnLv4z6UsfDtGM
0LL2Z1cLLd67wxKy9Gms
TEN9fKxId553H7xhHDBX
M6MKkd62KsWBt9cVhJa7
gfT7ZZjVbN0R93yfQr9V
q6tvBZQ7xKoJtSWwAJI5
GUAETlCisD7weSeTlzM9
9nrbwX5piWqfv6RuMq4m
uECTuvYf3fmxBwJkPHvW
4aZPpprZvThO52flteRk
Ilj34esdRk7I1EWdp0jr
GXeExfSpxtNwikIuAMLH
GHu4kGHUOgRKfz2sAe32
OHxAVD2vJ5zwAXIWZLyt
kGz5fnClY8U02OaZM0Y5
2Oqs3Em2SMLAZMbu7AFw
cTuPXkbZgFv3MevWhsXp
AQQXAnTpHhvEZ7rj55Po
s3yiZ45hLsWekQ512USQ
NL2JWXsHYuuBXeSI1hUb
dHdlgIkmN69OBFCE4lBK
A7J5yuDG5kKS3UZpoJI4
Dl6OP9iezJtbA6qSlMGo
pxjckZYJZDShntPPjweG
9vKgJWMXS7UiAuI3HzJo
sh7VYwUUjnzC8ATwyLe2
Ik9Ze47uBY6XN8fqqwly
yatSg6X3sB5DHQbIYyiL
n4oZiqF0gojDvf0Nt2Oq
jif9uXkdmAbivwA9ibx1
46Vq5H4bxvSN0IedmkJj
qBTIpdxBG5CcISnFbxOd
IJ039EaGAKjPTu8h5Cbo
ELCmoVEF6C1vFgREqDgE
bKExn3MnSMKhnvqP5Mzr
TRVE5CT72uczQBfYu0hb
4XiwAI3p17OTwSJcWjvy
yj2Nf5jOme4baamIWTcV
bDC62NhhAaZZCKmBTXOy
xhA2RJk6zfXj8IwgQhlb
dnwBS8zmq4aH1hEYnWcR
4iMqztKwKoT8yT1r9ZiB
tcrtguSSJghHt82KrzbH
r7jF1rmEGn1mloOrC1JU
wFOEepJeHlJzyZ6K8C0p
15j8mNoyzMcPOEYuWeys
i3t73SX5DD7F9D0waOit
tjlXD7A3oRV30vpsKeGY
MEerRhOE7wYSivZcYhRG
Rejey7cYn34nXkCey55j
EwodDOaoDUToOBuhxhI9
7ZLN54FNHi6MazO1ZVG3
0Yj1AhlRNtA03m4IBFWW
ud3l4Inxz8H6bozQthlu
PTRorL7i2HUITRWPZEaN
Wei0LRXcCGQpoB7qHuyV
A5tGk51FJKa6rBq4Jc3w
Yqsd9sAhURi89sZMmBWE
9jJzRAg5bGqILs0W0i3N
RY555aoeNScAbBzB6p37
k6PQm9UYtnIJwwXhq120
LNFBb5ymHdZ1Qu5QlJiT
R8NCy82jPUqRsclN3vPA
E8RM2mMhZyp5PcqIAjYG
T4bt9RRY8XI5p6tN5T6h
NURqjjv5dB9g8zJTukjU
VPz2BQxPVOWABsRMrWaq
AfbLhPLcvBFdQajR1gVr
zRJzAeHR2qOst7msMENy
ftbJh3gA2DIDVh2pyC8O
huAqxufvhoBefuGvoQJ5
NJOgpMKPEe7Z3n8XU4gM
rzJoAZPirdD2Zd928HU3
PpreH1pFZYXBAmrgj37r
JM4V5c5JQJJIH0hwCBag
z45UHs3S7eoBaQv9lcl3
sUgYYFcBWCz97TjTOGKQ
0TslCOoggDr5M16Er6Sr
otGwIE6oYZw837vGZA1y
qwH4SGT6wBcQXuXmvcPF
sJQkN6pPYkZQPsGibB4A
VezC4UZtO6PZZny5w5gS
WvOVGvA3gQSlDl4jGk03
nnslGFClrsnNXt2nZR4y
7tAihDnbjOhP9WUMA2An
uMOy9DWAmUgugEgiLjGk
m3LNDArGCpNhIhTPt3Ii
FzCHGp8Z3AXAryGBXs5Y
BhX4hbLmqPU6QNlWGgGI
PnOzzCECQsAo5wFVwdkp
mZRaBYZAVzB0bYtoApou
ECnvl8RoqKElA4cALZAp
Xg7bRasILDZxbpvKJjMS
ZWUNXF0aZQibDFOrbZaW
K89u5xfKJIeXm9OxAMt7
E8SKacTQDuj7PgBv0SdZ
DtLXZPoIAAK4lymZiZ0T
f30sKg9uA2Q2EPHFOAD6
oaxNj7ntc1czWiHQe894
3cL3ZWPSeYtMXdvRAL1M
ehc1P7aYMNctrLnC6PMX
mTpHCy9KK3ivSfWCSZ0k
PuM9AJfNd428Pvlb1DDm
75O8sVETjmgL18HiKLkF
AgE5nIu7mIvEgdd4bulR
OPOQi79Ilw054UGf4PuS
76g0H0D2R5g2DEARfJO2
acQu1wFL4DE85YTpkQo2
egMWNBUSxzemZFTEioq5
fqisMzF8KYm3e0xvGPJG
6ORAqQdOGkJzVRflXwYa
jEZJicZahwvoJRc6zKJ5
NFrGNEHJzlwZxkmMrjQX
gVr7GxpMBtHGiFzAj4DR
AXX2KJmlxBAbivgrcnVV
KIYTZ8G6PkEM2AZo9nm1
i1wAgp4XE92C6AsW49TZ
mamLMRZdvkIxTGs4lmNr
ivWEw7Zdq3OYMeZD4Ak0
AFTv93HVQaXftmxuMuBM
VxKiVfX5xDk18SVqwjxb
of2prORa7G8Li2iZXuuZ
nGdFHeyWCU1YjpxoBJK7
A7SRAZRf0GkhpgsLpynj
AWKPZ4wfYAfGsZvbWsXg
CueU1TjPc8q1g4KRzSPd
LJNH8vWbe1frVtq7kED5
qZJDfNKm0QnZPZVc3hLZ
XcVAR9ZydmXYy6CXAN5q
1IFrFwL9zMAAFLwytoYE
uoalr815B3vS24D76Dpw
YtPZw0pZzWqGRcNQKAhg
CjWVL6HQEJB7UJff9DSn
mF4SKFOg8B6poM9MQhXp
CWjgamEZiG9Uc9Xrbyck
NW5FowilWIBrKz50jgrR
rwdbl0lZTyOwuAuk0Q1h
PpttOmnJ8e757fkHo2mx
Zn03DaIdhiyKky6RCtIC
IQUANP3RcKsS1vRNukA6
VwyAOeXcUNQAAcbNkZi4
RZ16qUDGlHpLuvAQy0qu
dHfeIAWQOO36Naz5JtxE
WYt6ftpg4CDc8VsnNlox
P8AlERH8x0POhY44eXvD
YLVPt8wkpKPKBAoJ9Zg8
8LpBcDY1mjflZPNVHce7
QhxlSaP97aV7MKVfSZVo
CUaZODROppVNop6Ww4QL
Spt7V5TUCoItaR31ynM3
fq6bCsWNL1AZ3CEW5PwF
UpeV56Q5nhUMXYEwBffg
F10p4WCIahjVCqGAxXA7
GDdxZt91Hls9ZSAqndbU
3Eh36YzMGuibYgXqZYKn
UNS2MSHOG0uzrT9Itose
zk5DIGZ0MtDYyBBDeNYN
6S0K3UZ3A7Ae8QT0lWfG
bK1kYBTQOeSXcxV8RITP
5d7WhgmyW9d9dDf3IS7c
xO9uBVfWZqHnBXRDBqGW
7n2mFWeEoWJu4Ucb0h2Z
4zvaAv7jH9BnRdfODAbo
S34Ze1OLlRinpHYI36tx
JAHrlSAxsWvQxQ9cwZQW
QpZx98DhOJAuBxHxO3UZ
f0Abi0WNXXu1fzTm2e3L
caMAl05eIqDltVJ0rPwP
zZTjQzhiCMtZAQy8L5WA
75sc30GaGChAAtvhAiyy
A4Mnh6VZLWSZXFsIAtI8
j96rH4VSet15O040fRTs
ILgvbr5AJ48tLS5ZJqIw
Vt0yFggQfVJC63HEAOt8
RxvtDj4wvANV1ZIFvX2H
tqHe5KxVa0y7ky0ovFAj
SJEAClQs1J6RI6FHgGhZ
BTATpKKmwmypM5xayBEt
RsAbQ3xx7UOlMQdGCZks
4ZLdZPYxqrDpvnwxJOjK
2nsjV9DZPzG5EiVM8I7Y
trtnGoZmY73GmoL9ISaD
78RvAq4pvI7nGfXg08yc
SOuW3OhwNfzk08tJ5KP8
ttz6ChnAjb216Apc9xY2
TWgABYG3lMhNq03LwjuZ
q5Mu5WS8nzAtOpYEsRVc
kFoiKbTLOZ1p29IKWlBa
k8IyyLLeNRPWO13aEmZ2
vc498TwlxK05uamzEcZo
5C1T7dbd6AXV5nenJn2z
1kWmbfsvDgjPyhwb0oKh
2PVuMZnGstCfFwRttFna
RMSNPgAIp28Ro5t6ApWI
5ef1gOAOmO2OHpU8hP4T
qg4X9vrAhxEAGauA0RDk
1o3uKmqAFsvd68iwPXwA
sZhvBxZflI3cirrFGpQJ
1mp36SEQQIB6m7LwcBgk
aA3OtPdPAQhZArV49KfI
cT2gV5CMKN9ZIdNO4DgF
c6XZTz4JAh2ILikalOyr
gFbLHFSILMAgF2b79bn9
yncB2CDoxmLHGoLAiTkW
g8Xtjc0xwrWwRFxqPp6A
xWe8w4AgQnhq43osA4Dj
y8IwjPIxIua1Mqf3OQdD
7qmKwi14bMfrxHoutYfs
AZu1lO0LAnlbzY9t8MGU
CdhwQ4wnngdoVHJFJg9m
npRdPmAMxZpSlbCsN14q
yRplyUAApNjl78xI7Zdh
RziASyxAc70CDafQgDSs
nfZvfBVSkbWAOJMbMiEs
Z32t6u29GD2ZuJd26EYJ
lDtEHoQvJVgZzZD9yiu8
Tf5TVQGRQPF6fU9Q2ISg
Lnou2NZ1pI8wBcE2JO4L
rwsZ4XI7zQaVMkdHHgQc
eCWQjlDOmtYp1cQ5SgQu
WTBEijEi3dBAyUSEPjYZ
lTDgN1Ot3QLAImf3eDSb
GjrKtOPb9W3o8sqcnHQV
UWB3XnhIV368Z9v76Zh4
ohUWA6e60590YViAUcS8
tMWIz2IYhUri5djIC0ZH
r7XPgEmAwVAcNm8mXhqZ
b0GGdWwhsWrawO9rq95D
htxkl4RRBXKaZdcHQylC
ZVgNKY6gwoww1zzElbRv
Ll210i7fLof16yNZBlNt
fBn9HyNfo0OeoPQqgRKz
kZIJDnxTt0WBZCHH6wLh
trBvpAMTc6NRl6rDo0Cx
6yDs3LZ8JTc4DZ1KCltA
RAuZWtQqTUV3awJcyAip
OhfJGiOV4hyjgjkCBcdY
FVZdk8UZKJC5i9cmcMiQ
fW3dhzz7VSN4FnUBJD0E
JnxZjBVi7GiRB9N0IsZb
UNF8v3ScDBCxeK0ZnrTq
6rdkkTT51l8HkNDToUDe
425KZLlJNyn9kZ3o7ddb
Ady4Zv0jhnjveass6XLI
65l80AO885ZGREbWAsl5
0jSo9B9GsIGem6oriCel
7c1rVEMjDHWUGSlPfr2P
kdG9wmJcE5rHZrQzx0AU
rIJjHXemZ4pJcTuvaFyG
5imqrcU7lF88QjyYIptN
kNOhdAF3R7xDiOlA0YuT
VOzCHlm2K8ipmpdZSw9G
fnrPbMntmvlKkSHLwHvd
IWNyNxwWMka6XEJTu5QJ
hQUBPSnVNZXZ9urrOfvH
D5WZ6R5nfeM79Xzv8lVw
UDSXcRuuvO9H7dJZxPp2
EobDZcoidIRUUTmCeEkz
Ko4XfSgxZ2rn4cHDUWQ7
2MXdzA5ajwlGUpAg9ZvZ
GGCqThFfxN8qawA4A7Z6
wl89CpeccyjMgzoBMDVY
n4KdDAQVp5HhAEZCnQlQ
2gJbijyaj0PdBgcZKoeC
c17b3VgnqrAwxAMHPAWD
wKvUnN115OSXA6wa0wWS
SPD12tgryUMRWvSJWR5f
G43ZjF6YgZAxEDHPccwe
ZTWCir8M4AEO2BLU1GDj
5atAEPrXWmEsw7wqlR5k
GN2hZFazODxnnjKfUObi
XGAkxyml521WMjMVpkbG
96WW9bQAexIVwY1H5Mrr
7M13Brh7b20xYuzwArZ5
YCgkpdXNeZffh5UGBLXN
A3vMOpgzZMxlydxWA1bA
DRj6Od5IU80oPkTgMLE5
PxZmr0V6N7V4ysxzAtOF
jhBoZeg8NJvJAiQNSREj
84dan7nYFUiBOi5YHqPB
mA0pqu0kEyHKZNfuQqo5
xoGZfyEAiX3htbGZZa70
N4jFAid60wy0AiXr4LGA
OpFzRmWvh1nDyHfIa4zP
6BLenbyM87pVH2jukIgS
JjWkFeidjTNUoRLNvUEg
WdJXtKNKVYOD2jCd1dOh
pXg8UOMygXZ29kdOIOAV
q4VMgup7kgZHQ4g77T9F
bVccAdtZRveC6TZ6o2l0
UM7AkFZeHVKh4By4Y2ea
lwDqlhF2QHd5mUISEQxp
7u8FmyYofN8OGacW9CKs
DAZZ5cFVq5l9AoVo7qvE
V9N15dtasDuiF2ZNOXLt
sPHqRFxmTJ8GXY0HgMRk
UusCnFWIJBINi8ZCD4Y6
nJlMwKx6ARoKGT4KAucX
UE5KZPcvI2Z1oZ9G0TVA
4ZXSxtcHd0BPbmZWDOyn
K0pEpRt6gWj5RrSWZLul
CKQysGScl1Z7jeGxyhxk
2tt39L24cV4PB5vByn4p
VzTKUROZxSaI81twh4Fx
rRhoRJvKzeALagKu6stl
tAo4Rc2AOG1JOMjvUVCj
xU7QMb9TYoHx7k1pP01b
zXg7rTlwXedBMXawKQoK
Jx7WwnYaBFAKGzSYzAtE
mR1fk6YVrAW0ZgT8dlcW
eRW3ZeSMAvy1fKxaMcsm
jXUtV927DqnH36imolU6
9QczjVARCFp1nedZ4GBK
ZyPMEjA2Lc8DCLAxiCiL
Azd5JDxsuz0shhu9ztK9
lI6idJlGZ4KbkedxQwjd
veHufK7AOyDxi0z2w1il
gL0gZ1lg7N7f2Nn5XdTU
qj90HlaOI67lhWUqCq3o
RGFLfUYhvuVZ2gWZA6H1
MWUyccqZP4WUoSLe3UqX
ZxwbDAyZOf0XX22hBA5i
KHrogaSBFfebSeZDeiJb
mTW1JZ9htiZkZEpJWhAt

+++ Caesium/0.4 RC1

# Таверна
idec.talks
Andrew Lobanov(tavern,1) — All
2023-08-05 10:49:45


Стараниями Meta Freenom перестали раздавать бесплатные домены, в связи с чем таверна переехала на idec.spline-online.ru. Просьба перенастроить свои фетчеры.

+++ Caesium/0.4 RC1

# Укры атакуют станцию :)
ping.local
hugeping(ping,1) — All
2023-08-09 23:40:22


Ха! Сегодня была атака на мою маленькую малинку. Похоже, написали скрипт который постит сообщения непрерывно, успели загадить базу на 9Гб.

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

IP адреса атакующих:

104.28.155.206
104.28.192.94
104.28.222.238
104.28.224.94
104.28.254.238
104.28.156.60

# Игры
pipe.2032
Reprise(tavern,18) — All
2023-07-18 06:52:33


Во что нынче регулярно играют сетяне? Я в последние пару недель подсел на Widelands под просмотр сериалов с женой.

В своё время, помнится, очень любил Settlers 2, а тут примерно то же самое, но самобытное и под GNU/GPLv2.

Ещё интересует кто в какие свободные игры и игры с открытым кодом играет.

+++ Caesium/0.4 RC1

# Носители творчества
std.hugeping
hugeping(ping,1) — All
2023-05-13 11:23:13


Я всегда сам себя убеждал что способен разделять творчество и "носителя" этого творчества. Ну, действительно, примеров, когда носитель не является образцом для подражания можно привести массу. От Хана Райзера, разработчика файловой системы ReiserFS (убил жену) до солиста Queen Фреди Меркьюри или Шопена с его ненавистью к русским. А уж среди писателей так вообще... психопаты, неврастеники и деспоты всех мастей -- встречаются сплошь и рядом. Чтобы не выглядеть провокатором, назову лишь Филип К. Дика. И что теперь, не читать? Так я рассуждал... И это работало! (Впрочем, я не мог пользоваться ReiserFS. А ведь кто-то её сопровождает.)

Но после начала СВО я незаметно для себя понял, что не хочу больше слушать БГ и Шевчука. И если БГ я и раньше слушал мало, то очень многие вещи Шевчука мне нравились! Я не установил для себя "табу", нет. И песни, вроде бы, те же... Так в чём же дело?

Я специально посмотрел интервью БГ, данное им после начала СВО каким-то либералам. Смотрел и не мог поверить. Я часто слышал мнение, мол "певец поёт ртом, а мозг и не нужен". Но объявить идиотами БГ или Шевчука -- я не могу! Как написал сам Шевчук в своём письме, он против любых войн. "Не стреляй" написана в 1980. Но он же играл солдатам в Чечне, поддерживал их. А сейчас "стыдно"?

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

Разрыв показал беспринципное лицемерие. Которое (будучи ложью) и обесценило для меня творчество. Песни те же, а слова потеряли свой вес.

Тогда я воспользовался ситуацией и попробовал заново открыть для себя коллективы, которые не стесняясь поддерживают Донбасс.

Зверобой "Мой Мариуполь" https://www.youtube.com/watch?v=pJ8XXQHl8bU
Джанго "Мы не уйдём" https://www.youtube.com/watch?v=aEkqA5L2hl0
Калинов Мост "Друг" https://www.youtube.com/watch?v=Sqh6-kDr6Mo

Смешное количество "лайков" на yt -- тема для отдельной заметки.

# Координата Z // Захар Прилепин
std.hugeping.micro
hugeping(ping,1) — All
2023-05-13 09:43:39


После очередного теракта, в котором погиб Александр Шубин и чуть не погиб Захар Прилепин (слава Богу, выжил!), заказал последнюю книжку Прилепина "Координата Z". Книжка хорошая и нужная! Единственный недостаток -- короткая! Читая не спеша, закончил буквально за пару дней.

> Россия будет воевать с Украиной, пока не победит саму себя.
> Россия будет воевать сама с собой, пока не победит Украину.

Спасибо Захару за то, что он делает!

# Никто не забыт, ничто не забыто
std.hugeping
hugeping(ping,1) — All
2023-05-09 12:09:20


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

Первые воспоминания о Дне Победы тоже связаны с этим украинским городком. Заполненные ветеранами трибуны стадиона, блеск золотых медалей и запах тройного одеколона дедушки. Клевер, дым от пороха... Улыбки ветеранов.

Постепенно всё изменилось. Сначала, после возвращения Крыма, один украинский сетевой приятель начал писать мне "бесноватые" сообщения. Потом "не выдержал" второй. Мне, конечно, было больно наблюдать за этой страшной "метаморфозой". Слов чтобы возразить им или объяснить что-то я не находил. Вернее, пытался сначала. Но быстро понял, что говорить уже не о чем. Я и самому себе не мог всё "объяснить", разложить "по полочкам", обосновать и оправдать. Всегда завидовал людям, которые точно знают, что делают всё "правильно".

"Слезинка ребёнка" в "Братьях Карамазовых" -- близкая аналогия. Я не сверхчеловек и не могу оправдать страдания высшей целью, какой бы она не была. Проблема теодицеи, мне кажется, может решаться в первую очередь доверием к Богу. Я могу сказать, что Бог так возлюбил Своё творение, что дал ему свободу и через эту свободу люди стали творить зло... Но всё-равно, я не знаю как принять, оправдать высшей целью страдание невинных людей (и животных). Всё, что остаётся -- довериться Богу. Я сам не способен разобраться с этим.

> И отрёт Бог всякую слезу с очей их, и смерти не будет уже; ни плача, ни вопля, ни болезни уже не будет, ибо прежнее прошло.

Мне больно наблюдать во что превратилась моя вторая родина-Украина и как некогда братские народы убивают друг друга. И тем большую ненависть я испытываю к империалистам США, которые выпустили это зло. К тем, кто стравил нас ради стратегических "высших" целей. И началось это задолго до СВО. Они делали и делают это всегда. Они делали это не только с нами.

Они привели к власти в Украине преступников, которые предали свой народ, создав из него бесовскую рать. Верю, что не из всех. Не хочу верить. И что теперь? Делай что должно и будь что будет! Господь разберётся. Победа будет за нами!

Знайте, несчастные бесноватые, как бы вы не пытались сделать из нас фашистов (как это топорно делали ваши хозяева переписывая историю), это не мы предали улыбки наших отцов и дедов, наше детство. Я верю, что настанет время и многие из вас стряхнут этот сатанинский дурман. А твари сидящие в кабинетах США, Англии и Европы получат своё. Мир во зле лежит, но и зло не может торжествовать вечно.

С Днём Победы! Никто не забыт, ничто не забыто! Победа будет за нами!

P.S. А ещё, в детстве, мы играли в "войнушку". И никто не хотел быть "фашистом". Интересно, где сейчас мои друзья детства?

# Minetest 5.7.0
pipe.2032
Andrew Lobanov(tavern,1) — All
2023-04-19 05:38:14


Уже лет 10, как я люблю иногда позалипать в кубики. Причём Minecraft меня не очень впечатлил, а вот Minetest понравился сразу. Недавно вышла свежая версия, в которой добавили динамические тени. Это сильно меняет впечатление от игры и вообще вау.

Теперь сижу и жду когда админы хоть какого-нибудь русскоязычного сервера обновят игру (в терминах Minetest это базовый набор аддонов, так как тут всё есть аддон) и можно будет красиво играть не только локально.

+++ Caesium/0.4 RC1

# Re: Таверна поломалась
idec.talks
Ordos(tgi,1) — Andrew Lobanov
2023-03-10 07:12:53


Опять прилегла :(
Last update: 08.03.2023 23:40, с 9.03 уже недоступна.

# Re: Изменения по tgistation.ru
idec.talks
Ordos(tgi,1) — All
2023-02-22 08:32:27


Пока ковырялся с /x/filelist/pauth и прочей работой с файлами, залил на станцию немного песен Ростислава Чебыкина. Кто не знает - это эдакие авторские песни с уклоном в философию и ролевые дела. Кому надо (ну вдруг) - можно брать.

В плане лицензии все чисто. Автор прямо говорит, что отдает все творчество в народные руки.

Также, согласно документации, на станции есть возможность окромя публично доступных файлов, заливать и приватные (если при запросе правильно указан pauth), что позволяет делать внутренние списки файлов, видимые только для участников. Сейчас правда таковых списков нет за ненадобностью, но никто не мешает сделать.

# Научно открываемый Бог
std.hugeping.micro
hugeping(ping,1) — All
2023-02-19 16:16:13


Натолкнулся на текст, который удивительно "в тему" моей старой заметки. ii://CVvGRZBv7ZzMIm0TFWeY (Абсолютно ли познание?)

Отрывок из письма А. Эйнштейна к Морису Соловину от 30 марта 1952 года (А.Эйнштейн, Собрание научных трудов, Наука, Москва, 1967, т.4, с.567):

> Вы находите удивительным, что я говорю о познаваемости мира (в той мере, в какой мы имеем право говорить о таковой) как о чуде или о вечной загадке.

> Ну что же, априори, следует ожидать хаотического мира, который невозможно познать с помощью мышления. Можно (или должно) было бы лишь ожидать, что этот мир лишь в той мере подчинен закону, в какой мы можем упорядочить его своим разумом. Это было бы упорядочение, подобное алфавитному упорядочению слов какого-нибудь языка. Напротив, упорядочение, вносимое, например, ньютоновской теорией гравитации, носит совсем иной характер. Хотя аксиомы этой теории и созданы человеком, успех этого предприятия предполагает существенную упорядоченность объективного мира, ожидать которую априори у нас нет никаких оснований. В этом и состоит чудо, и чем дальше развиваются наши знания, тем волшебнее оно становится.

> Позитивисты и профессиональные атеисты видят в этом уязвимое место, ибо они чувствуют себя счастливыми от сознания, что им не только удалось с успехом изгнать бога из этого мира, но и лишить этот мир чудес. Любопытно, что мы должны довольствоваться признанием "чуда", ибо законных путей, чтобы выйти из положения у нас нет. Я должен это особенно подчеркнуть, чтобы Вы не подумали, будто я, ослабев к старости, стал жертвой попов.

http://xray.sai.msu.ru/~lipunov/text/shkl/node7.html (О проблеме сверхразума в астрофизике. // В.М.Липунов)

Упоминание цитаты заметил при просмотре youtube ролика: https://www.youtube.com/watch?v=tvzfEA75CRQ (ЧТО уничтожает ВСЕ цивилизации в космосе?)

# Test
idec.talks
Andrew Lobanov(tavern,1) — All
2023-02-14 08:19:11


$subj!!!

# Актуальные клиенты
idec.talks
Ordos(tgi,1) — All
2023-02-06 08:37:07


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

Все ссылки на IDEC Mobile (кстати очень хорошая вещь) и CutieFeed ведут на ii-net.tk, а тот, свою очередь, недоступен. Для cutiefeed есть страница на гитхабе, но собирать его (особенно под винду) - то еще извращение. Ссылки на готовый exe нерабочие.

Если кто знает актуальные ссылки - просьба отписаться. В крайнем случае, у меня вроде были exe и apk файлы - могу выложить у себя, но лучше бы ссылаться на офф сайты, если таковые есть.

# Debian 4 и TLS
linux.14
Andrew Lobanov(tavern,1) — All
2023-01-23 10:58:05


К вопросу о сабже. А попробовать накатить нужные пакетики из более поздней версии дистрибутива не вариант? Хотя, 4 это сильно давно, конечно, но, может, от 7 подойдут?

Конечно, это нарушение консистентности системы, но как рабочий вариант может и прокатить.

+++ Caesium/0.4 RC1

# Снова openbsd
std.hugeping.micro
hugeping(ping,1) — All
2023-01-21 12:41:02


После долгого перерыва расчехлил старый thinkpad и накатил на него openbsd, которая там и стояла когда-то... Поставил и в очередной раз проникся. Чисто, просто, дубово. Всё как я люблю. Правда, пришлось кое-что отключить в настройках по умолчанию:
1) включить hyperthereading в /etc/sysctl.conf (в openbsd это по умолчанию оключено теперь)
2) отключить в /etc/rc запуск reorder_kernel

В качестве оконного менеджера не стал особо мудрствовать и выбрал cwm.

openbsd вроде как во главу угла ставит "безопасность", но мне кажется любят её не за это, а за тот самый KISS.

P.S. Сейчас снова приходится работать с ядром Linux и, в основном, это вызывает негативные эмоции. Очень много кода, который написан "как попало" и сделать с этим, похоже, ничего нельзя. Это плата за популярность о которой, вроде, все мечтали... Интересно, сколько таких "разачаровавшихся" хакеров в openbsd? :)

# В математике все говорят о Боге // А. Савватеев
std.hugeping
hugeping(ping,1) — All
2023-01-21 11:59:49


Уже несколько раз случайно находил ролики Алексея Савватеева на yt-канале "Пост-Наука". Хорошие ролики и сам Алексей вызвал у меня симпатию. Приятно слушать увлечённого и искреннего человека, да ещё с долей самоиронии. Подобное чувство я испытываю к людям с пытливым умом и которые относятся к своему делу как к игре или вызову. Неправильно думать что это заносчивость или пренебрежительность. Скорее, форма "юродства" или смирения. Восхищение истиной. Отношение к своей работе как к искусству, но вместе с тем осознание своего несовершенства. В этом состоянии сложно обладать чувством собственной важности и человек больше похож на ребёнка с детской непосредственностью и искрящейся радостью. Но, кажется, я увлёкся... :)

Так вот, true-grue кинул ссылку на ещё одну его "лекцию": https://youtu.be/Vz2Rl2bijaU которую я и предлагаю вашему вниманию.

Посмотрел с интересом! Как оказалось, Алексей -- верующий. Большинство вещей о которых он говорит для меня были не новы. Но в очередной раз я понял, что очень часто важно даже не то _что_ именно говорит человек, а _как_ говорит. И что вообще, кто-то говорит на те темы что тебя беспокоят. Например, когда речь зашла о чудесах и Алексей быстро их "проклассифицировал" я почувствовал, что такая непосредственность действует заразительно.

Пока слушал это выступление, возникли мысли которые решил записать. (На самом деле, конечно, не хотел записывать. Но заряд от передачи был такой, что вытащил меня из уныния.)

По поводу возможности ИИ обрести самосознание. Раньше я считал как и Алексей, что это принципиально невозможно. Сейчас я допускаю такую возможность, так как она не противоречит мысленному эксперименту. Здесь есть аналогия с теорией эволюции -- мы лишь наблюдаем развёртывание процесса. Если ИИ станет самосознающим, это будет "рождение" механизм которого мы всё-равно не "грокнем". Да, мы будем понимать что если мы сделаем "так", то робот будет вести себя как человек. Но "осознать" как происходит зарождение мы не сможем. В таком случае мы не создали жизнь, мы лишь создали условия для её зарождения.

А ещё захотелось дополнить выступление такой мыслью. Мир и человек так удивительно устроены, что одни и те же факты могут трактоваться и в пользу "доказательства" бытия Бога и против него. Для меня этот факт очень удивителен и сам по себе является личным "доказательством". Действительно, всё зависит от самого человека и его свободной воли. Богу нужно сердце и свободный выбор. Если ты его делаешь, то весь мир вопиёт о Нём. Если ты идёшь в другую сторону, тебе поможет кто-то другой... ;) Я уже не раз приводил пример с гелиоцентрической моделью. Если бы Земля была центром вселенной, то (как мне кажется) это был бы неопровержимый довод в пользу "доказательства" бытия Бога. Сейчас мы с одной стороны не считаем Землю центром всего, а с другой стороны... с точки зрения всей вселенной вопрос уже не кажется таким простым. Антропный принцип. Барионная асимметрия. Да и даже сам принцип относительности... На "гуманитарном" уровне это можно воспринимать как дополнительные доводы к сильному антропному принципу.

В общем, такие "передачи" нужны. Нужно говорить. Не молчать. Даже если "не до того" и даже если устал "от безжалостных уличных драм"(c).

# про альт
linux.14
ii.51t.ru(dinozavr,2) — All
2023-01-20 14:29:37


кросспост с опеннета:

в Альте, блин... в альте то ли с 4.x, то ли с 5 по 8, инсталлятор грохался, если видел на диске раздел OpenBSD. В 9-м это починили, и я наконец-то смог поставить себе Альт, но в 10-м сломали aptitude. Установка по http примерно в половине случаев по неизвестным мне причинам не создаёт initrd или просто виснет на этапе "установлено 100%". Недавно хотел установить Alt 4.1 на LVM, так в итоге всё не заработало. А ещё, на установку диска без разделов надо просто знать, что сначала нужно установить несуществующий раздел, и только после создать заново. Ещё инсталлятор не позволяет сделать установку, скажем, с sda2 на sda1, надо ставить с какой-нибудь флешки sdb. Вот это сообщение пишу с Альта, но, блин, как вообще с ним жить?

# офтопик из idec.talks
linux.14
ii.51t.ru(dinozavr,2) — All
2023-01-19 00:29:07


> Тут сугубо экономический вопрос. Мода тут постолько поскольку. Поддержка 32-бит это не только сборка дистрибутива или программы, это ещё и тестирование. Если, например, количество пользователей меньше 1%, уже просто нецелесообразно заниматься поддержкой старой архитектуры.

Debian:

Информация о выпуске для 64-битный ПК (amd64)
Информация о выпуске для 64-битный ARM (AArch64)
Информация о выпуске для EABI ARM (armel)
Информация о выпуске для ABI ARM с аппаратной поддержкой чисел с плавающей запятой (armhf)
Информация о выпуске для 32-битный ПК (i386)
Информация о выпуске для MIPS (с порядком байтов от младшего к старшему)
Информация о выпуске для 64-битный MIPS (с порядком байтов от младшего к старшему)
Информация о выпуске для Процессоры POWER
Информация о выпуске для IBM System z

OpenBSD:

alpha Digital Alpha-based systems
amd64 AMD64-based systems
arm64 64-bit ARM systems
armv7 ARM based devices, such as BeagleBone, PandaBoard, CuBox-i, SABRE Lite, Nitrogen6x and Wandboard
hppa Hewlett-Packard Precision Architecture (PA-RISC) systems
i386 Standard PC and clones based on the Intel i386 architecture and compatible processors
landisk IO-DATA Landisk systems (such as USL-5P) based on the SH4 cpu
loongson Loongson 2E- and 2F-based systems, such as the Lemote Fuloong and Yeeloong, Gdium Liberty, etc.
luna88k Omron LUNA-88K and LUNA-88K2 workstations
macppc Apple New World PowerPC-based machines, from the iMac onwards
octeon Cavium Octeon-based MIPS64 systems
powerpc64 IBM POWER-based PowerNV systems
riscv64 64-bit RISC-V systems
sparc64 Sun UltraSPARC and Fujitsu SPARC64 systems

i386 тут не самая непопулярная :)

# cauldron
zx.spectrum
ii.51t.ru(dinozavr,2) — All
2023-01-17 13:18:54


Раз эху фетчат, надо что-нибудь написать, вдруг куда-нибудь дойдёт :)

Лет 10 или 20 искал игру, в которую часто играл в детстве, про прыгающую тыкву. По описанию чем-то подходил Cauldron, но это было не оно. И только недавно нашёл - это оказался Cauldron 2. Посмотрел на ютубе - так и не понял, как я этим когда-то мог управлять. :)

https://www.youtube.com/watch?v=76RKurT8IW0

# Re: Изменения по tgistation.ru
idec.talks
Ordos(tgi,1) — All
2023-01-17 08:21:23


После некоторых размышлений таки убрал принудительный редирект на https. Теперь работает и так и так, по желанию. Мне не критично, а кому-то может и да.

Заодно зацепил к себе https://ii.51t.ru/ii/. Эхи idec.talks и zx.spectrum. Пусть будет.

# Domino
idec.talks
guest(dinozavr,1) — All
2023-01-12 18:06:29


Прикольный дизайн прямо как в wap 2000

# rein: Фаза 1
std.rein
hugeping(ping,1) — All
2023-01-14 10:06:12


Соратников найти не удалось, поэтому наполеоновские планы были скорректированы. Можно сказать, что проект сейчас находится на стадии "Фаза 1", которую я описываю так:

# Приоритет на личное использование

Средства разработки будут допиливаться не до состояния "продукта для всех", а до необходимого минимума. Например, не будет аналога splore pico8 (сетевого репозитория). Запуск "приложений" будет осуществляться из ком. строки (rein edit, например). Для создания игр этого достаточно, так как игра вместе с rein это приложение вида - распаковал и запустил.

Развитие инструментария - дело сообщества (инструменты пишутся на самом rein), но раз сообщество не удаётся собрать, то буду пользоваться чем есть.

# Андроид версии пока не будет

Для того, чтобы показать игру друзьям с телефонами есть emscripten вариант, который работает неплохо. Android версию собрать несложно, но опять же - на неё нужно время и силы. Зачем? Для личных нужд мне этого сейчас не требуется.

# Пиара не будет

Пока не будет никакого "выпуска rein". Потому что выпуск ничего не даст. В современном мире нужно заниматься работой с аудиторией, чтобы это принесло хоть какие-то плоды. На это у меня нет времени (да и желания). Пиар возможен, вероятно, после появления игр и появления хоть какого-то сообщества.

# Никаких новых фич до выпуска игры

Сейчас требуется обкатка движка на практике. Так что дальнейшее развитие будет целесообразным только после появления новой игры. Когда и кем она будет написана, я пока не знаю. :) Но, естественно, мне хочется опробовать инструмент самому.

# Готовность

Готов для личного использования автором rein и энтузиастами. :) В целом, все основные функции присутствуют и опробованы. Api меняться (значительно) не должно. github страничка доведена до "презентабельного" состояния: https://github.com/hugeping/rein

Эху std.rain я оставлю, пусть будет, если вдруг всё-таки будут обсуждаться какие-то вопросы.

# Мысли

В очередной раз стало понятно, что есть разные задачи. 1) сам движок 2) создание творческой группы людей, в которой этот движок мог бы занять своё место. В том числе и в статусе средства для обучения программированию. Тот самый "кружок программистов", ламповый уют и электронные журналы с подкастами :) И задача 2, возможно, даже гораздо сложнее, особенно если представить себе гипотетическую аудиторию rein :) В общем, сейчас я не вижу реальной "почвы", кроме собственного увлечения, а создать эту почву -- совсем другая история. Но, по крайней мере, часть работы проделана. :)

До связи!

# ii.51t.ru
idec.talks
iiii(ping,48) — All
2023-01-11 18:12:27


От создания контента - к его провайдингу.

http://ii.51t.ru

для старых компьютеров - ок. осталось забить контентом. функциональность "эхи как книги" надо будет вернуть, но переосмыслить под "архив эх". никакого https, никакого javascript и css. проверена работа на win 95 с ie4, на debian woody с netscape navigator и на всём остальном.

сейчас фетчатся эхи idec.talks и pipe.2033 (пока не существующая) с hugeping.tk, поллинг 5 минут

описание станции (точнее, софта эхи): http://ii.51t.ru/ii/html/about.html

# боны поны и прочее
idec.talks
iiii(ping,48) — All
2023-01-11 17:14:22


1. перепись узлов - кто что гейтует? чё ща модно гейтовать

2. давайте сделаем новую межсетевую болталку - pipe.2033? новый год всё таки, а тянуть 3500+ сообщений 9-летней давности про болтание не стоит - лучше в архив :)

# С наступающим Новым Годом!
idec.talks
Ordos(tgi,1) — All
2022-12-31 08:57:31


До нового года осталось всего несколько часов. Кто-то уже отмечает, кто-то только готовится, кто-то может быть даже работает. Некоторые так и вовсе не хотят ничего отмечать. И это тоже можно понять.

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

Поздравляю всех с наступающим Новым Годом! Пусть сбудутся все желания. И самое главное - пусть все будут живы и здоровы.




P.S. Не мастер говорить речи, просто хотелось высказаться.

# Эха по rein
std.rein
hugeping(ping,1) — All
2022-12-24 20:05:29


Чтобы было место, где можно обсуждать вопросы движка, создал эху std.rein.

# Солярисы
std.hugeping
hugeping(ping,1) — All
2022-11-28 12:35:43


Мне очень нравится фильм "Солярис" Тарковского. Книгу С. Лема я читал давно, и кажется, что она не произвела на меня особого впечатления. Тот самый случай, когда фильм -- самостоятельное произведение.

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

Не буду стесняться и скажу сразу: фильм мне снова понравился! Да, произведение Тарковского это другая весовая категория. Да, американский Солярис сделан "по мотивам" нашей картины (и снова, идеям книги оставлено второстепенное место). Да, можно сказать что новый фильм -- американское кино, более грубое, "попсовое" и даже вульгарное... Но. Но что-то после просмотра засело в душе. Так же как и 20 лет назад. В чём дело?

И тут я понял, что секрет кроется в том, что американский фильм дополняет картину Тарковского! Не повторяет целиком, но дополняет. Содержит элемент, которого не хватило Тарковскому!

При всей грубой упрощённости и наивности американской версии, там есть то, чего не хватает (совсем чуть-чуть) нашему Солярису!

Я думаю, это "что-то" хорошо заметно по финалу. Если у Тарковского финал -- это возвращение блудного сына. Где религиозный вопрос стоит очень глубоко, очень сильно. Но при этом не содержит полного разрешения. Сын стоит на пороге дома. Он пришёл, вернулся к Отцу. Но вопрос совести не снят! Самый главный вопрос, отношения человека с Богом. Очень высокое напряжение финала, но всё-таки. Всё-таки, ветхий человек всё ещё остаётся "в кадре".

Так вот, если здесь -- возвращение блудного сына, то в американском Солярисе, за довольно грубой формой скрывается, на мой взгляд, недостающий компонент:

> -- Everything we've done is forgiven...

Диалектика. Бог не только справедлив, но и милостив.

В фильме Тарковского, мы смиренно созерцаем икону. Не дерзаем сделать шаг. А в американском фильме оказываемся "по ту сторону". Наивно, грубовато, просто, напролом. Но это есть!

Не знаю, может быть я нахожу то что хочу найти. Но в финале я вижу не "личный рай", и не инфантильное "убийство" совести, а преодоление. Смерть и перерождение. Мне кажется, что не случайно, перед этой сценой мы видим, как главный герой протягивает руку мальчику - созданию Соляриса. Или самому Солярису?

> Откр.21:1-4 И увидел я новое небо и новую землю, ибо прежнее небо и прежняя земля миновали, и моря уже нет.

Без оговорок. "Нам всё прощено". Эта мысль -- как молния.

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

P.S. Кстати, картина Содерберга можно сказать "провалилась" в прокате. Я не удивляюсь. Но всё-таки, почему всегда так?
P.S. Edited: 2022-11-28 12:43:25

# Секретный проект: rein
std.hugeping
hugeping(ping,1) — All
2022-11-22 17:51:00


Я давно не делал никаких заметок. Конечно, отчасти это связано с тем что происходит в мире. "Не до того!". Да и бытовые проблемы никуда не делись. Но сейчас есть повод написать, если и не статью, то хотя бы заметку о том, чем я занимаюсь. "Я всё-таки пою, ведь кто-нибудь услышит"(c).

Больше месяца я трачу всё свободное время на новый pet-проект. Пока он не вышел, не буду заранее рассказывать что это такое. Скажу только, что сейчас он захватил всё моё внимание и мне нравится то, что получается.

Если говорить об INSTEAD, то большую часть кода для него я написал так давно, что сейчас я едва ли могу им восхищаться. Да и новых проектов практически так и не вышло за последнее время. Жаль. С другой стороны, наследие игр у INSTEAD прекрасное. И я знаю что незрячая аудитория у них есть. В общем, INSTEAD будет жить.

Re:instead -- интересный, но всё-таки камерный. Наверняка я ещё вернусь к нему (если будет такая возможность), но в целом -- он готов.

То, что пишу сейчас, я назвал rein. Это игрушка, которая вобрала в себя элементы всего того что я делал раньше, но с учётом накопленного опыта. Там есть что-то от instead и re:instead. Идеи pico8 и uxn. В нём я сделал то, что так и не смог (побоялся!) сделать в INSTEAD. И то, что совершенно не нужно re:instead...

Звуковую систему пишет true-grue -- и это очень интересный опыт. Во первых, вдвоём писать веселее! А во-вторых, я уверен что учусь у него новому. В том числе и писать код чище. Или хотя бы стремиться к этому. :) Звуковую подсистему я никогда не смог бы написать сам, хотя всегда мечтал, чтобы она была и в instead и в reinstead. Речь, конечно, идёт о синтезе. Так что без true-grue проект был бы невозможен. И я немного паранойю по этому поводу, так как привык рассчитывать только на себя.

Я не знаю, сколько ещё будет написано строк до первой версии и сможем ли мы его закончить, но занимаясь rein я снова чувствую бодрость творчества. Ребята, творчество рулит! Начинаешь делать и понимаешь -- это правильная вещь!

P.S. В этот раз я решил проявить упорство и для обсуждений #rein и не только создал irc канал. Всё! Больше никаких телеграм-чатов! Так что если что, заходите в на irc.oftc.net канал #rein.

# Переименовал github аккаунт
std.hugeping.micro
hugeping(ping,1) — All
2022-11-13 19:02:41


Теперь мои личные репозитории находятся здесь: https://github.com/hugeping

gl00my -- это ник из затянувшегося переходного возраста, который вызывает сейчас скорее неприятие и я постепенно от него избавлялся.

А история hugeping (хотя он тоже из "детства") -- довольно забавная и не связана с позерством.

Просто, когда-то я играл с бразильцами-школьниками в одну замечательную 2d ctf сетевую игру. У меня был длинный пинг, и я проигрывал. Но игра мне так нравилась, что я играл не смотря на проблемы с откликом. Помню, меня кикали с сервера за что-то, а его ронял. А потом написал бота, который активировался автоматически если отпустить клавиши... Бот делал предсказание траекторий поэтому я стал играть довольно эффективно, даже не смотря на пинг :)

В итоге, мои боты вошли в игру и мы все подружились, потому что я принёс пользу. Да и вообще, общались друг с другом в чате игры. А ещё потом, игра умерла...

Всегда с теплотой вспоминаю это время, почему-то. В общем, hugeping лучше gl00my. :)

# Изменения по tgistation.ru
idec.talks
Ordos(tgi,1) — All
2022-10-27 10:10:04


Изменения по tgistation.ru. Может кому интересно будет.

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

Прикручен сбор новостей с хабра. Не всех, в основном, низкоуровневое программирование, микроконтроллеры и т.п.

Открыта свободная автоматическая регистрация без почт и sms. Надеюсь спаммеры не заведутся :)

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

# Таверна поломалась
idec.talks
Ordos(tgi,1) — All
2022-10-24 08:36:22


Собственно сабж. Пару дней уже как.