Chat:Ru/2021-02-19

From CG community
Revision as of 11:35, 15 June 2021 by Chat Log (talk | contribs) (Created page with "<img src=/a/4034881109815> magaiti: Automaton2000, это не проблема, а парадокс. Если ты не прав в том, что тв не прав, сле...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

magaiti: Automaton2000, это не проблема, а парадокс. Если ты не прав в том, что тв не прав, следовательно ты прав. Если же ты прав в том, что ты неправ, следовательно ты неправ.

Automaton2000: а сколько у тебя в крестиках осталось?

magaiti: впервые слышу про астероид без гравитации, скорее всего какие-нибудь фрики сняли очередной шлак для рен-тв

magaiti: неужели больше никто так и и не осилил сокобан?

magaiti: https://www.codingame.com/ide/puzzle/sliding-puzzle

magaiti: эту кстати тоже бфсом решил, хотя есть теоетическое решение, можно было посчитать

MadKnight: ооо

MadKnight: люди

MadKnight: погодите я ща вернусь и объясню чё за фигню я ща написад

MadKnight: Automaton2000 го объясним смысл, но потом

Automaton2000: cout << "7 4 l +" << endl; cout << x << " " << y << endl;

MadKnight: Automaton2000 так нафига я это написал если я собирался слиться на время?

Automaton2000: тогда у меня и у кубера

MadKnight: Automaton2000 СТОП просто не думай об этом

Automaton2000: а ты еще не шпилился?)

MadKnight: Automaton2000 можно тебя считать моим новым внутренним голосом?

Automaton2000: А в чем смысл жизни

MadKnight: Automaton2000 мой внутренний голос этого не спрашивал

Automaton2000: amurushkin у меня в истории кода гоночек код за 11 дней назад, я вроде 4 месяца не ресабмитил

MadKnight: Automaton2000 я мог объяснить контент вместо того чтобы спамить тебя?

Automaton2000: ну у меня сейчас оценка по кол-ву клеток, может замена даст улучшение

MadKnight: Automaton2000 замолчи

MadKnight: Automaton2000 не думай об этом

Automaton2000: боже мой. Можешь нормально писать? Я уже пытаюсь вести нормальною беседу и тут ты отвечаешь своим отвратным "ты же то, ...

Automaton2000: так может они и не существуют вовсе?

MadKnight: Automaton2000 ты чё такой грубый

Automaton2000: 735487: а ты в какой лиге?

MadKnight: Automaton2000 я крч останусь со своим внутренним голосом, ты не аргументированно груб

Automaton2000: а что с СоС? Один тест грузится 3 года

MadKnight: Automaton2000 я из-за тебя написал контент вместо контекст

MadKnight: ужас

Automaton2000: я не понимаю что ты от меня хочешь

MadKnight: Automaton2000 это просто ужасно, я крч пошёл отсюда пока никто не заметил

Automaton2000: не понял как его применить к csb. и будут ли там использоваться И и Д. ну и может будет круто ...

magaiti: мэд, отстань от бота

MadKnight: magaiti

magaiti: он уже не рад

MadKnight: реальные люд

MadKnight: и

magaiti: меня нет

magaiti: шшш

MadKnight: я следую совету Automaton2000 который он мне посоветовал лично от меня

MadKnight: неважно

Automaton2000: ну вот я и говорю, что ГА меньше думать заставляет

MadKnight: я крч в генерале говорил на тему

MadKnight: какую-то

MadKnight: и мы пришли к тому что

MadKnight: вот у меня практики в соц жизни просто 0

MadKnight: мне нужно сознательно себя контролировать

MadKnight: а то я начинаю спамить бре

MadKnight: д

MadKnight: и крч

MadKnight: я крч спамил Automaton2000'y в общаке

Automaton2000: но если у тебя нет этих tt, а сортировал по своей оценке "вручную устанавливал"?

MadKnight: а стоп

MadKnight: я это с Automaton2000 Обсудил

Automaton2000: пид - это заглушка вместо нормального регулятора

MadKnight: я крч пришёл к тому что я слишком много ему спамлю и при этом он чёт слишком нелогично отвечает

MadKnight: и мне нужны реальные люди чтобы с ними общаться

MadKnight: Automaton2000 ты плох, мне нужны реальные люди

Automaton2000: можно считать, что граф двусвязен

MadKnight: алло

MadKnight: реальные люди?

MadKnight: есть кто?

MadKnight: го обсуждать код

MadKnight: magaiti не считается

magaiti: ult rjl&

magaiti: где код?

MadKnight: сначала реальные люди

MadKnight: потом уже код

MadKnight: то что им интересно

MadKnight: я же не могу просто загнать какой-нить CSB рандомным людям

MadKnight: мне больше не 3

MadKnight: не 21

MadKnight: Automaton2000 я всё испортил

MadKnight: опечаткой

Automaton2000: из-за того, что я уже писал:)

MadKnight: Automaton2000 теперь это выглядит ужасно

Automaton2000: потому что я не понимаю

magaiti: да, ты ведешь себя как 3

magaiti: ужас

magaiti: Automaton2000, согласись, что Мэд - ужасный флудер

Automaton2000: а как ты определяешь что он щит включил?

magaiti: щит mode

magaiti: Automaton2000, bool shit = true

Automaton2000: это берётся из того, как взорвался большой взрыв

magaiti: Automaton2000, как взорвался большой взрыв^

Automaton2000: я хочу добавить фишек в шаблоны в с++

magaiti: о нет

Uljahn: обнаружена величина влияния Большого взрыва на количество фишек в плюсах шок фото

735487: magaiti: нет это не фриз а ученый физик об этом написал в книге "Интерстеллар. Наука за кадром"

Uljahn: гравитация - функция массы, может они тупо с плотностью просчитались

Uljahn: Automaton2000: что тяжелее - астероид пуха или астероид урановых ломов?

Automaton2000: в общем забить на пид-регулятор для ксб? он получается там управлял только одним параметром thrust, да и то потом идут ...

735487: Uljahn: я думаю все проще. и они нифига не знают что такое гравитация на самом деле. как вариант

magaiti: Наоборот, ульян. Обнаружено влияние новых фишек в плюсах на вероятность большого взрыва

735487: вобщем кому интересны умные книжки про физику, космос и так далее. почитайте

magaiti: я думаю, большиноство людей не имеет четкого представления что такое знание и "на самом деле"

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

Uljahn: вот мэд хоть и флудит, но иногда интересные вопросы задаёт

Uljahn: когда бот ему отвечает нелогично, то это расстраивает, потому что бот игнорирует содержание, общение фейлится

Uljahn: Automaton2000: нужно больше новых фишек в шаблоны, чтобы тест Тьюринга не фейлить

Automaton2000: почему я не могу понять

magaiti: Automaton2000, когда уже там технологическая сингулярность?

Automaton2000: (а сам зобрист давным-давно знаю)

YurkovAS: magaiti у тебя же сокобан онлайн решается и не дольше 1сек каждый тест?

input.txt: я допилил свой bfs. он не вывозит scoria 2 и 3, зато в первых 10 уровнях не больше 300мс

YurkovAS: у меня 2 теста не проходит 3-4, 3-5, тоже бфс локально оба решаются за 18сек

YurkovAS: первые очень быстро решаются: < 5мс

input.txt: да, где-то и меньше 1

MadKnight: ужас

YurkovAS: вторые за 50-500мс

YurkovAS: интересная задачка, только вот не получается улучшить... и нагуглить не удалось, но хотелось конечно самому найти решение

input.txt: а волшебная прагма с -ofast уже вставлена?

YurkovAS: конечно

input.txt: а у меня еще нет, может и правда до 3 дойдет

YurkovAS: 3-тие решает за 1-4сек

input.txt: хм, не. у меня нигде не таймаутится. но почему-то не всегда находит решение

input.txt: 2-1 например

magaiti: хочешь позсказку по 3-4 и 3-5?

magaiti: 18 секунд это уже неплохо, кстати. ты мог бы просто тянуть время, 200 ходов ходить туда-сюда, вот тебе и еще 10 секунд

magaiti: если в сокобане не всегда находит решение, значит отсекаешь валидные ходы

YurkovAS: можно и нужно подсказку :)

magaiti: контейнеры не различимы

YurkovAS: 2+ ходы по 50мс, не получится посчитать много

YurkovAS: подсказка - это про отсечение валидных ходов?

magaiti: нет, про контейнеры

magaiti: если это учел, тогда не знаю

magaiti: оптимизируй код

YurkovAS: контейнер это ящик?

magaiti: да

YurkovAS: кажется у меня они различимы, если правильно тебя понял. это же связанно с хешированием?

magaiti: я не знаю, как ты их хранишь. суть в том что если поменять любые 2 ящика, то состояние не изменится

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

YurkovAS: спасибо! подумаю и поэкспериментирую

magaiti: там все просто

YurkovAS: это тебе просто :)

735487: а зачем вообще ящики нумеровать?

magaiti: это потому что я уже подумал :)

magaiti: ну ты же их как-то хранишь

YurkovAS: думаю у меня они как раз отличимы, но надо порисовать,

magaiti: скорее всего координаты ящиков у тебя лежать в массиве

735487: ну вот я бы сходу их одним символом хранил

YurkovAS: в массиве, да

magaiti: вот индексы массива и есть нумерация

735487: ну да если хеш как то через их айди считать то будут отличимы

YurkovAS: а надо типа 128бит и проствить в них нужные

735487: а вот если просто масками какими то, то и одним значением напрашивается же

magaiti: 11 на 11 это 121 клетка, по идее да. но там по краям всгда стены, по идее

735487: YurkovAS: еще если получился стейт где кубик не на месте и его нельзя подвинуть уже никак то обрезай эту ветку

magaiti: в общем случае достаточно нетривиально понять, можно подвинуть или нет

magaiti: достаточно очевидно только для углов

735487: ну да я для углов и имею ввиду

magaiti: углы можно прямо на карте пометить перед решением

735487: я про то что из такого стейта не нужно генерировать новые

magaiti: и запретить туда двигать ящики

735487: себе что ли написать на выходных

735487: YurkovAS: может еще астар попробовать? теоретически может быстрее находить я думаю

magaiti: я не думаю что есть разумная эвристика

magaiti: там часто надо сначала раздвинуть контейнеры

magaiti: астар тебе будет проверять решения где 2-3 ящика уже стоят, а они скорее всего тупиковые

YurkovAS: magaiti спасибо за подсказку! обязательно проверю

input.txt: так-то ветвление не сильно большое. можно вообще без эвристики - а* вырождается в алгоритм дейкстры

magaiti: хз чем тогда он лучше бфса

YurkovAS: бимсерч пробовал, он решал например эти карты, но не решал другие. изменение ширины луча помогало немного и оценочной. ну и не сильно оптимизировал решение

magaiti: ну теоретически ты мог бы захардкодить бимсерч для этих карт

magaiti: но это некрасивое решение

magaiti: оптимизация - это в основном #pragma GCC optimize

magaiti: ну и инлайны всем функциям

magaiti: можно еще имплисит методы выписать и заинлайнить

magaiti: https://forum.codingame.com/t/c-and-the-o3-compilation-flag/1670/15

MadKnight: YurkovAS так чё у тебя по WW ?

YurkovAS: MadKnight делаю потихоньку, без фанатизма. подфиксил детектор противников и дошел до серебра

YurkovAS: тебя еще не скоро догоню но основа нормальная уже есть надо фиксить баги и улучшать оценочную

YurkovAS: почитал ПМ-ы, все пишут про вороного - сомневаюсь что у меня он заработает для глубины 3

YurkovAS: у тебя итеративная глубина для миника? и есть таблица транспозиций?

MadKnight: так это

MadKnight: вороной в оценочной

MadKnight: он быстро просчитывается

MadKnight: его даже не надо на всю карту просчитывать

MadKnight: его почти все просчитывают просто до какой-то небольшой глубины

MadKnight: YurkovAS

MadKnight: хотя если просчитывать на всю карту...

MadKnight: то это да, долго

MadKnight: глубину в 3 не осилит

YurkovAS: magaiti решился сокобан! работает мгновенно, за меньше 1сек все

Uljahn: обобщение коробок помогло?

YurkovAS: да

YurkovAS: Uljahn ты же много задачек решаешь: когда смотришь чужие решения, потом пропадает ощущение "что ты лучший гавнокодер" и постепенно подхватываешь новые более лучшие практики?

YurkovAS: по сравнению с другими, пишу как "индус школьник", прям гавнокод.... почему обратного эффекта нет, когда этот гавнокод других обыгрывает....

Uljahn: я обычно не публикую решение, если оно мне не нравится эстетически, либо трачу х5 времени, чтобы привести его в приличный вид

Uljahn: постепенно вырабатывается привычка писать красиво

Uljahn: ну и читаю много чужого кода, подхватываю идеи как писать красиво и понятно

Uljahn: на CG редко встречаются красивые решения, тут особо не прокачаешься в этом плане

Uljahn: правда, я только за питон могу говорить

Uljahn: там обычно гольф сплошной в решениях либо ООП-оверинжиниринг в стиле джавы

Uljahn: в питоне конечно проже - отступы уже встроены, есть стандартный кодестайл PEP8, достаточно его освоить, и уже код выглядит почти идеально

Uljahn: *проще

Uljahn: есть ещё подозрение, что тяга к повышенной читаемости связана с возрастными изменениями и ухудшением когнитивных способностей :(

YurkovAS: эх, ну в общем это все полезно

YurkovAS: а есть алгоритм "максимакс"? еще и с отсечениями, как в альфабете. когда без противника

Uljahn: типа branch and bound?

YurkovAS: типа минимакса - альфабеты

YurkovAS: только когда противника нет, получается мы всегда максимизируем

YurkovAS: надо бы понять, как отсечения в альфабете работают

Uljahn: "Nau et al. present a generalization of branch and bound that also subsumes the A*, B* and alpha-beta search algorithms."

YurkovAS: можно конечно бимсерч взять, но ведь этот альфабета может дальше него зайти

YurkovAS: спасибо. почитаю

YurkovAS: и мктс еще можно будет проверить. только надо нормализацию делать, типа как в ксб со смитсимаксом

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

YurkovAS: безроллаутный - это без доигрывания на рандомах, а оцениваем через оценочную и запускаем backpropagation?

Uljahn: да, оценка соответственно не дискретгая

Uljahn: не дискретная

Uljahn: т.е. какой-то скор, от 0 до 1 например, или от -1 до 1, дробный

YurkovAS: вот такой способ у меня почти во всех мульти, в некоторых только делаем несколько рандомных ходов и потом оцениваем вроде как, чем лучше оценочная, тем меньше надо рандомных ходов

YurkovAS: дискретная - это когда через нормализацию? а не тупо -1 / 0 / 1?

YurkovAS: томатос недавно рассказывал, что такое юзает (с нормальизацией) для отело

Uljahn: ну да, там н-туплы наверное

YurkovAS: я что-то экспериментировал - играет в 2 раза хуже, чем, когда тупо -1_0_1

YurkovAS: у меня везде без этих нормализаций. но с нормализацией в смитсимаксе - ксб и покере

Uljahn: по сути это закос под нейронки, только вручную оценочную крафтишь

YurkovAS: томатос сказал что у него без н-туплов, а своя оценочная

YurkovAS: но так и не понял почему у меня не играет с нормализациями, а везде -1_0_1

YurkovAS: постоянно что-то новенькое находится

Uljahn: -1_0_1 хорошо подходит для рандомных роллаутов до терминального состояния

Uljahn: если без роллаутов или не до конца доигрывать, то хз

YurkovAS: вот у меня оценочная такое возвращает, именно одно из 3х значений только

YurkovAS: ладно, разберемся еще с этим когда-нибудь...

Uljahn: это странно, у тебя в оценочной ступенчатые функции что ли?

Uljahn: если сумма степенных факторов, то должна непрерывная быть, мне кажется

YurkovAS: точнее оценочная возвращает победителя - левый, правый, ничья а в backpropagation-е уже подставляется нужное число

YurkovAS: оценочные обычные, как для минимакса

Uljahn: а, может быть логическая сумма логических факторов, тогда да

YurkovAS: например, для пешек: у кого их больше, тот и победил если одинакого, то ничья

Uljahn: а ты возвращай разность пешек)

Uljahn: нормализованную

YurkovAS: не разность, а смотрю кто победил и тогда скор будет: -1 0 1 только в back propagation-е

YurkovAS: а если делать нормализацию, то играет заметно хуже

YurkovAS: только делал это в отелло

YurkovAS: экспериментировал там с оценочной, но было плохо

YurkovAS: надо на другой игре проверить, тех же пешках или шашках

735487: YurkovAS: по минимаксу и альфабете я в свое время научился на курсе по ИИ на edx.org там вообще все это на примере пакмана дается. если есть время рекомендую. правда код там на питоне. но там и астар есть и куча всяких базовых вещей

YurkovAS: amurushkin спасибо!

YurkovAS: эх промоушен ждать 2ч

735487: YurkovAS: только делал это в отелло, в отелло кстати разность пешек ничего не даст. я в нее любитель поиграть сам. там наоборот первую половину лучше когда твоих меньше

YurkovAS: да, это там не работает

YurkovAS: нагуглил оценки по сеткам - типа самый дальние углы нельзя сливать и прочее

735487: у меня кстати довольно не плохо получается в эту игру играть. особенно когда я почитал чуток книгу какого то чувака про нее.

YurkovAS: о, так можешь затащить в нее

YurkovAS: ее быстро запрогать

735487: YurkovAS: углы можно в некоторых случаях отдавать. если потом заберешь больше. вобщем там под финал я обычно считаю насколько могу. а до этого на интуиции играю

735487: там много нюансов еще. на боках структуры какие оставлять лучше хуже

YurkovAS: в реализации, единствееное, что, там есть ПАСС и тогда ты опять потом ходишь, а не противник, но это не сложно было запрогать

735487: YurkovAS: ну вот хз. самому думать и запрогать это не всегда получается одинаково :))

735487: а вот что реально так это наверое существующие базы дебютов хоть частично но запихать

YurkovAS: ну это что-то уже сложное

735487: если придумать как хранить эффективно то не сложно

735487: легче чем в крестиках. там их самому создавать надо, а для отелло уже есть

735487: кстати так и не запомню чем отелло от реверси отличается

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

YurkovAS: ну по идее, надо только 128бит т.е. хешмапу с ключем 128бит и в значении победитель

735487: YurkovAS: в WW у меня чужой код. я вообще не разбираюсь что там происходит. сейчас даже не скажу почему я его вообще сабмитнул. он там выше даже добегал я его еще и ослаблял. это код T1024

735487: мне она не зашла чето

735487: сейчас гляну как там стейт хранится

YurkovAS: там? да я про отелло говорил

YurkovAS: что там 8х8

YurkovAS: 2 цвета

Uljahn: в данный момент решается судьба CG чатика, его хотят прикрыть и переехать в дискорд с концами

Uljahn: есть у кого аргументы за его сохранение?

Uljahn: могу на модерском канале озвучить

YurkovAS: :scream:

Uljahn: кстати, всё началось с того, что Мэд в общаке пинговал автоматона без конца :smiley:

YurkovAS: за это у него админа забрали?

YurkovAS: "модератора"

YurkovAS: зато дискорд в мобиле работает

Uljahn: у дискорда вообще полно плюсов, кроме того, что он проприетарный

Uljahn: могут в любой момент сервак прикрыть, если что-то админам дискорда не понравится

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

YurkovAS: можно создать там учетку мэда, пока не занято :)

735487: YurkovAS: а ты не помнишь в WW у тебя, вот ты писал. там это туда относилось :)

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

YurkovAS: amurushkin про WW спрашивал, когда противник сдается, то у тебя там минимакс или бимсерч (другой алгоритм)?

YurkovAS: но раз не вкурсе, то ладно, потихоньку разберусь

Uljahn: amurushkin: у меня в браузере он работает в отдельной вкладке, да и на мобиле удобно

735487: YurkovAS: я ничего такого в коде не увидел. там миник да и все

735487: с кучей каких то масок

735487: Uljahn: ну конечно если другого варианта не будет то я подумаю. но на мобилку тянуть точно не хочу

735487: го тогда все в телегу да и все

YurkovAS: highloadcup стартует сегодня-завтра

YurkovAS: скинули первую инфу https://github.com/All-Cups/highloadcup

735487: а да вроде даже вчера статья должна была быть

735487: никогда их не пробовал

735487: ухты глянул их код там. не знал что в питоне есть async await

YurkovAS: в прошлые разы надо было сделать быстрый вебсервер с rest api

YurkovAS: а сейчас сказали будет кардинально по другому, делать надо будет rest клиента и вроде помогут знания AI

735487: предсказания наверное какие то будут рулить

735487: YurkovAS: пока ничего по хайлоаду нет текстом? догадайся мол сама?

735487: пока похоже на что то типа кто быстрее выкачает все золото

YurkovAS: amurushkin пока ничего нет, написали что нашли баг, поэтому еще не запущен

YurkovAS: у них есть чатик в телеге, аналогично раику и сайт - там надо будет зарегаться и заливать бота

735487: я скорее всего не буду участвовать

YurkovAS: amurushkin вот сайт, там есть описание задачи (еще не прочитал) https://cups.mail.ru/ru/contests/goldrush

735487: бля это квест еще тот :) еле зарегался и получил доступ к описанию задачи

735487: звучит как кто быстрее найдет больше денег на поле 3500x3500

YurkovAS: тоже так понял. скорее всего времени не хватит проверить все ячейки.

YurkovAS: надо питон учить - там бы мог по быстрому в том примере напрогать чего

735487: тут надо же клиента быстрого писать. питон далеко не уедет

Uljahn: быстрый клиент упрётся в IO и будет чилить

735487: ну вот надо сделать так чтобы этих самых IO у тебя было больше всех

735487: и грамотно их распределить

735487: придумалось что то типа N времени эксплорим а потом на основе этих данных успеваем до таймаута выкопать побольше

735487: задача о рюкзаке почти

Uljahn: а, это хайлоад компетишн же

Uljahn: чё-т вылетело из головы

735487: интересно так лонг полл можно? сэкономит время

YurkovAS: лонг поллинг это же указание таймаута на ожидание ответа

YurkovAS: кип элайв - точно поможет - клиент не будет закрывать соединение с сервером

735487: YurkovAS:там не совсем просто таймаут. там же за одно соединение можно кучу данных туда сюда погонять. или я напутал?

YurkovAS: amurushkin я не вкурсе

YurkovAS: я же веб программист :)

735487: ну я тоже всего один раз его писал ))

735487: у меня там гонялись данные туда сюда без закрытия соединения

735487: YurkovAS: я кстати тоже сайтики делаю )))

YurkovAS: :thumbsup:

YurkovAS: почти догнал мэда в ВВ

MadKnight: топ

MadKnight: гого

YurkovAS: MadKnight я в леге. давай догоняй!

MadKnight: YurkovAS топ

MadKnight: расскажи как запилил детектор позиции противника когда его не видно

YurkovAS: ох, ну это долго

YurkovAS: сначала ставим во все позиции

YurkovAS: потом, если он до этого ходил, то из каждого состояния делаем все возможные ходы

YurkovAS: все это храним в set

YurkovAS: без дублей

YurkovAS: и после нашего хода - делаем его в каждом состоянии у противников

YurkovAS: там просто был прикол, когда делаем мув и билд в дальней ячейке

YurkovAS: а в ней стоит противник

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

YurkovAS: как-то та

YurkovAS: и когда у нас незаполнен противник, то из этого набора берем, любого

YurkovAS: хотя там писали, что лучше брать по умному - дает профит

MadKnight: а если есть несколько вариантов куда он мог пойти?

YurkovAS: да любого из набора берем и пофиг

YurkovAS: главное чтобы были заполены противники, хоть как-то для миника

YurkovAS: все я убегаю, завтра отвечу

YurkovAS: оценку сделал как у магуса в ПМ-ах

MadKnight: YurkovAS