1

Тема: pope.allohalive.com

Еще один балансер ссылки просмотр во  фрейме

https://pope.allohalive.com/?kp=1140755&token=d8de4511039f2fd61c1463b85c47a6

Там видим base64  с мусором

only_translation = false;        var player = new Playerjs("#2eyJpZCI6InBsYXllciIsInByZXJvbGwiOiJpZDp2YXN0NDQyMSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaWQ6dmFzdDQ0MjIifV0sImZpbGUiOiJodHRwczovL2JsLnN0cmVhbWFsbG9oY///fD4qPl48Kg==S5saXZlL2UvMC8xNTgwMzE2MzYzL2JFeDYzTWNnUndwZDNhNnhYLVo3WmcvODY1Lzg2NS9wbGF5bGlzdC5tM3U4IiwiZGVmYXVsdF9xdWFsaXR5IjoiNzIwcCIsInZh///PF4+fD58Kg==c3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIiLCJbZG9tYWluX2Fkc10iOiJodHRwOi8vd2FwL//////Xj4qXjwqPio8XnwqfD4=m///fF4qXnxePA==9ybGV5YS5uZXQiLCJbdHlwZV9hZHNdIjoiMSJ9fQ==");

Все это обнаружил на сайте https://kino-2020.online/
Вроде как 1080 поддерживает.

Спасибо сказали: Defrl1

2

Re: pope.allohalive.com

опять alloha поменяла защиту

закодированный json :

#2eyJpZCI6InBsYXllciIsImRlZ/////Xj4qfHxePCp8fF4qKnwqmF1bHRfYWRiIjoiMSIsInZhc3Rfdm9sdW1lIjoiLjMiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb/////fF4+Kj4+XnxePHw+fHwq2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPXAmZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsImZpbGUiOiIjM3ducE13cThSaXUzY2RXTWI1WWdqMFppM2ExVEtMUVFlZEp/////PF4qKj58fHw+fCpeKio+vc2FaSTB6RE9MUXo3bm9tSVpKV1pidXhaa0xnOFBDaFk2SEdlU2FZSHI2ZE54Y092a0dsd3l4NVYrV0tGeEUxUGFCcC9zK1krcTRpS1hrMXVkMUZEeHJKMGxhVXkycFM5QVdsNmRrY0EyaTFUYjBoT2VwT3RlMnlDdFFzRU9LUFhJRUFMMThwUT0vLy8vL2JjNThiM2JlOGFhM2U/////fD4qPl48Kip8fF48Kip83MzFmZWNlMzMxYjMxZmRmOTlhLy8vLy8zYmM5NTFmN2I1NWQ0Y2YyIiwiZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiI4MDQ5NGFjOWZmMzRkYjcxOGM3MDgyM2I/////Pio8XnwqfD58fCo+fHx8PnwqXio=wMjZiMDQiLCJbZG9tYWluX2Fkc10iOiJodHRwczovLzRoMHkuYml0YnVja2V0LmlvIiwiW3R5cGVfYWRzXSI6IjEiLCJbdXNlcl9pZF0iOiI3MSIsIltjb3VudF9hZHNdIjoiMSJ9fQ==

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

/////PF4qKj58fHw+fCpeKio+
/////Xj4qfHxePCp8fF4qKnwq
/////fF4+Kj4+XnxePHw+fHwq
/////fD4qPl48Kip8fF48Kip8
/////Pio8XnwqfD58fCo+fHx8PnwqXio=

после "уборки" и base64 декодирования:

{"id":"player","default_adb":"1","vast_volume":".3","preroll":"https://v-1.alloha.tv/index.php?ref=(host)&token=[token_user]&type=[type_ads]&count=[count_ads]&module=p&domain=[domain_ads]&user_id=[user_id]&alock=[adblock_info]","file":"#3sGYi9Byq2ZbrJB/sDsUikbiXV0dCnEtAUBfXtM+LjxcJEgrWc7AtMJnmoWYo1i+qtKoUUX4USow77QTRmN/mWTSbvio5JuI4/8FbbxaQdiEsc69RCCRKrCdgP57th3sOab2xN1GvPBq3OykQ7EQyWQ==/////1b8f52046dac9b179dd5ffb0d3a47c48/////e63c3aac6016cbf2","default_quality":"480p","vast_replace":{"[token_user]":"80494ac9ff34db718c70823b026b04","[domain_ads]":"https://4h0y.bitbucket.io","[type_ads]":"1","[user_id]":"71","[count_ads]":"1"}}

может кто знает как декодировать:

#3sGYi9Byq2ZbrJB/sDsUikbiXV0dCnEtAUBfXtM+LjxcJEgrWc7AtMJnmoWYo1i+qtKoUUX4USow77QTRmN/mWTSbvio5JuI4/8FbbxaQdiEsc69RCCRKrCdgP57th3sOab2xN1GvPBq3OykQ7EQyWQ==/////1b8f52046dac9b179dd5ffb0d3a47c48/////e63c3aac6016cbf2

?

3

Re: pope.allohalive.com

Я так полагаю, что результат должен быть тем же, например начинаться должно

{"id":"player","default_adb"

Так, а это означает, что в base64 строка

eyJpZCI6InBsYXllciIsImRl

и в неизвестной кодировки (вероятнее всего тот же base64 но со сдвигом
соответствует

sGYi9Byq2ZbrJB/sDsUikbiX

Хотя конечно надо javascript смотреть что они там делают, но чисто гипотетически предполагаю, что там не шифровано, а просто сдвиг, после чего удаляют мусор и base64 делают, как и раньше.

4 (2020.04.12 14:55:46 отредактировано neon)

Re: pope.allohalive.com

не совсем так...
после первой "уборки" и декодирования имеем json c закодированным url в file

..."file":"#3sGYi9Byq2ZbrJB/sDsUikbiXV0dCnEtAUBfXtM+LjxcJEgrWc7AtMJnmoWYo1i+qtKoUUX4USow77QTRmN/mWTSbvio5JuI4/8FbbxaQdiEsc69RCCRKrCdgP57th3sOab2xN1GvPBq3OykQ7EQyWQ==/////1b8f52046dac9b179dd5ffb0d3a47c48/////e63c3aac6016cbf2"...,

и здесь закодирован именно url а не json

вот собственно сам скрипт где происходит вся работа https://bayas.allohalive.com/js/playerj … v=10.08.23
но для меня это темный лес:(

единственное что увидел, так это разные функции декодирования для разных строк начинающихся с #2 и #3:)
явно что-то предельно простое, но здесь нужен спец по javascript

кстати скрипт плеера набирает популярность, такой-же используется у bazon

5

Re: pope.allohalive.com

Это стандартный плеер, там не должно быть декодирования, скорее всего там только проигрывание переданной ссылки.  К сожалению с JS я тоже не очень. Шифровать xor ом тоже просто и не затратно.

6

Re: pope.allohalive.com

Вопрос, а ссылки у этого балансера привязаны к ip? Я что-то забыл и не помню. Хотя сайт, что в первом сообщение работает жив, но уже 720 выдает, а не 1080 как раньше.

7 (2020.04.15 18:09:49 отредактировано ruslachka)

Re: pope.allohalive.com

smsbox3 пишет:

Я так полагаю, что результат должен быть тем же, например начинаться должно

{"id":"player","default_adb"

Так, а это означает, что в base64 строка

eyJpZCI6InBsYXllciIsImRl

и в неизвестной кодировки (вероятнее всего тот же base64 но со сдвигом
соответствует

sGYi9Byq2ZbrJB/sDsUikbiX

Хотя конечно надо javascript смотреть что они там делают, но чисто гипотетически предполагаю, что там не шифровано, а просто сдвиг, после чего удаляют мусор и base64 делают, как и раньше.

А как это base64 со сдвигом? Можете объяснить.

8

Re: pope.allohalive.com

ruslachka пишет:

А как это base64 со сдвигом? Можете объяснить.

например так, если буква t она в двоичном виде (ASCII) 1110100 делаем сдвиг вправо получаем 0111010 , что по таблице ASCII будет :
а если сдвиг влево 1101001 получилась i
base64 можно вообще не использовать, и так будет зашифровано.

Спасибо сказали: ruslachka1

9

Re: pope.allohalive.com

Ребята, есть кто уже уже расшифровал? Очень нужно, буду благодарен

10 (2020.05.02 00:35:06 отредактировано smsbox3)

Re: pope.allohalive.com

Еще один сайт с кодировкой ссылки #3

http://lostfilm720.fun

Внутри плеер

https://miyagi.allohastream.com/?kp=817510&token=04941a9a3ca3ac16e2b4327347bbc1&season=2

Еще глубже

<script>
        var serial = '{"2":{"10":{"85":{"id":"60361","player":"#3eyJ2YXN0X3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPXAmZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRv\/\/fF5efCo+Kj4+XnxePHw+fHwqa2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPW0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSJ9XSwiZmlsZSI6IiMyOGlWK0Jveklybm9wTFJES3hWejdUNlhBMmpEZ0ljcnVqWW01\/\/Pio8XnwqfD58fCo+fHx8PnwqXio=R2FWbVBVeVltZ1NjWTZlUExVaDVEcEo4Nzd3aUdrRjhnRkQ1ZDEvTDlHcU96SjcwT2tPSitjS1YzWTdnOXVCMXkxMHJ1a3QvR3phUjkydTN0Yll0bmw1cG02dkt0UU\/\/fD4qPl48Kip8fF48Kip8NGcktRYi80N3c0azdJcXh6czZBPT0vLzU0NDlhYjMyYmQ1YzYzNjQ4YjdlMWFiYzljMzg4NGE1Ly8yOGQ3YWU5ZTUzODc1ZDljIiwiZm9yYmlkZGVuX3F1YWxpdHkiO\/\/PF4qKj58fHw+fCpeKio+iIxMDgwcCxBdXRvIiwiZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiL\/\/Xj4qfHxePCp8fF4qKnwqCJbZG9tYWluX2Fkc10iOiJodHRwOi8vbG9zdGZpbG03MjAuZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl9pZF0iOiIxNjAiLCJbY291bnRfYWRzXSI6IjIifSwgInJlbW92ZSI6IiJ9","translation":"HDrezka Studio"}},"9":{"85":{"id":"60357","player":"#3eyJ2YXN0X3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPXAmZG9t\/\/Xj4qfHxePCp8fF4qKnwqYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPW0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2Vy\/\/fF5efCo+Kj4+XnxePHw+fHwqX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSJ9XSwiZmlsZSI6IiMyYitKbGs5QUFXMDJJTjlVMDlzdG40RnhNalFRc3EwRzZqa2VKeitGc1c0TU5iRlhVejZ\/\/Pio8Xn\/\/fD4qPl48Kip8fF48Kip8wqfD58fCo+fHx8PnwqXio=LdStRSVhPM1NzYzE3SlRkYUZ6a2xhbUZKWFpNaDUwalMzc3M0c3dSczk5ai9hQW5TZ0JUNkpxZm5weThGYi90ZTRHcTBFa1NRaHRXOUpqTFR5cStnamlxOWEzYjQwUmJxOHFnPT0vLzRlNTFjYmYzNDg4YjgzMTE4NDY2MWM2ZDZhYTZkM2U2Ly80ZmVlY2Y2NDM2MDExYjM2IiwiZm9yYmlkZGVuX3F1YWxpdHkiOiIxMDgwcCxBdXRvIiwiZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiLCJbZG9tYWluX2Fkc10iOiJodHRwOi8vbG9zdGZpbG03MjAuZnVuIiwiW3R5cGV\/\/PF4qKj58fHw+fCpeKio+fYWRzXSI6IjMiLCJbdXNlcl9pZF0iOiIxNjAiLCJbY291bnRfYWRzXSI6IjIifSwgInJlbW92ZSI6IiJ9","translation":"HDrezka Studio"}},"8":{"85":{"id":"60349","player":"#3eyJ2YXN0X3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LT\/\/PF4qKj58fHw+fCpeKio+EuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W\/\/fF5efCo+Kj4+XnxePHw+fHwq2NvdW50X2Fkc10mbW9kdWxlPXAmZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhv\/\/Xj4qfHxePCp8fF4qKnwqc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPW0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSJ9XSwiZmlsZSI6IiMyLy81T2cwWVR1dkx4c2tJUGNtS1F1d1U4TWk1K3JwN1UrSGZmM2x0N0tIcnhYQTFxU2JhSElOaUQzL\/\/fD4qPl48Kip8fF48Kip80hZZ2s2emh3ZDdub0JpckR3UTNyQUsxTjEwS3RNZ3FSdnZ1bXY5Q1JnbEdMSnZSclY4VWQyelZqcEdCZW9aL2VxaXRndVV3aE1kTnpqMHdNcDhVTzRRNmxFeGdRPT0vL2U3ZTBhZjNlMGI2YzJjMDIzZGU2NDVhZTcxMWM1ODg4Ly9hMDliMmM3Y2FhYzY5MDFmIiwiZm9yYmlkZGVuX3F1YWxpdHkiOiIxMDgwcCxBdXRvIiwi\/\/Pio8XnwqfD58fCo+fHx8PnwqXio=ZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiLCJbZG9tYWluX2Fkc10iOiJodHRwOi8vbG9zdGZpbG03MjAuZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl9pZF0iOiIxNjAiLCJbY291bnRfYWRzXSI6IjIifSwgInJlbW92ZSI6IiJ9","translation":"HDrezka Studio"}},"7":{"85":{"id":"60347","player":"#3eyJ2YXN0X3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZX\/\/fD4qPl48Kip8fF48Kip8IiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPXAmZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2F\/\/PF4qKj58fHw+fCpeKio+kc10mbW9kdWxlPW0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSJ9XSwiZmlsZSI6IiMySFVnZzFvMEdDYWxSVlBzL2hNMVRtbmdIQWJFcytwRHpTT05JMkRpTEwzWTZsSU5UcGJUa1lxeEozSGJmcFkveXcwdEo5Z2NTZkUzSmNnUzloU25TWEpKZ2Q0ajlpRkdjUnZKTEJYcFBpY2E3aWQ0YUFteTRaN0o0a1RBaGFiNjMyOWZnOVNRdEo5OHBXQ1hjMjE0RlBBPT0vL2NlMzAwNTVmNzIxMjAxZjA4ODA0NGZkMGUzMTg4ZThlLy8zMTZhZDFlZTQwZmE3ZWJkIiwiZm9yYmlkZGVuX3F1YWxpdHkiOiIxMDgwcCxBdXRvIiwiZGVmYXVsdF9xdWFsaXR5I\/\/Xj4qfHxePCp8fF4qKnwqjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiLCJbZG9tYWluX2Fkc10iOiJodHRwOi8vbG9zdGZpbG03MjA\/\/fF5efCo+Kj4+XnxePHw+fHwquZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl9pZF0iOiIxNjAiLCJbY291bn\/\/Pio8XnwqfD58fCo+fHx8PnwqXio=RfYWRzXSI6IjIifSwgInJlbW92ZSI6IiJ9","translation":"HDrezka Studio"}},"6":{"85":{"id":"60345","player":"#3eyJ2YXN0X\/\/Xj4qfHxePCp8fF4qKnwq3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPXAmZG9tYWluPVtkb21haW5fYWRzXSZ1c\/\/PF4qKj58fHw+fCpeKio+2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZ\/\/fD4qPl48Kip8fF48Kip8GV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPW0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSJ9XSwiZmlsZSI6IiMyMlRYYlF0blNWaVh5Z214S0V3UEVIQjZuNlVueWtGY1pZSW5vS2N6OFdEZzZDZ1haQ1BGdTFZZnZQakR1QzdaZU4xcHBwL3RZLzdKZk10MWhLaHZwMWIvOWExaU5ZL293VndLYWtvK3Z3WHZtVHNPbXROQlFrWU9UVHprbEdUZEowYjMyMWhVSGF1TXRJTStLRG9XOUpRPT0vLzg2ZmY1ZjAyYTVkZmI1MTRkNDk4OWNkY2Q5Zjc1YzQ5Ly85YTBhYjM5MTdiNmRmYmJkIiwiZm9yYmlkZGVuX3F1YWxpdHk\/\/Pio8XnwqfD58fCo+fHx8PnwqXio=iOiIxMDgwcCxBdXRvIiwiZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiLCJbZG9tYWluX2Fkc10iOiJodHRwOi8vbG9zdGZpbG03MjAuZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl9pZF0iOiIxNjAiLCJbY291bnRfYWRzXSI6IjIifSwgInJl\/\/fF5efCo+Kj4+XnxePHw+fHwqbW92ZSI6IiJ9","translation":"HDrezka Studio"}},"5":{"85":{"id":"60344","player":"#3eyJ2YXN0X3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPXAmZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvX\/\/fD4qPl48Kip8fF48Kip8SIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0Ij\/\/Xj4qfHxePCp8fF4qKnwqoiaHR0cHM6Ly92LTEuYWxsb2hh\/\/fF5efCo+Kj4+XnxePHw+fHwqLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPW0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSJ9XSwiZ\/\/PF4qKj58fHw+fCpeKio+mlsZSI6IiMyQVp4ZXVxTysrZ1JzRUV2ZlFDTWlNZ3FtL1FDdTBmcEdNSnFtTWdaQXZKSDNLN2lrSDMzelJqclNFYmN1YUh0OStVb25uUWN3bnRzWXhmdnIwdm9vWXBmcWEybEo1VkhjMHZtdHlvbFN6T3hXcmZHMVM2bmlFelVLWjNpQVhUNDBrSkprV0RMUmNTNUlIbU5rN0JXaGlRPT0vL2U4Mzk3MzYyMmMwNmIxODI3NzkzN2NlMmI3NThlODg5Ly8wOTllOGIzYzhjNjg0MDVmI\/\/Pio8XnwqfD58fCo+fHx8PnwqXio=iwiZm9yYmlkZGVuX3F1YWxpdHkiOiIxMDgwcCxBdXRvIiwiZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiLCJbZG9tYWluX2Fkc10iOiJodHRwOi8vbG9zdGZpbG03MjAuZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl9pZF0iOiIxNjAiLCJbY291bnRfYWRzXSI6IjIifSwgInJlbW92ZSI6IiJ9","translation":"HDrezka Studio"}},"4":{"85":{"id":"60342","player":"#3eyJ2YXN0X3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPXAmZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c\/\/Xj4qfHxePCp8fF4qKnwq2VyXS\/\/Pio8XnwqfD58fCo+fHx8PnwqXio=Z0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPW0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWR\/\/PF4qKj58fHw+fCpeKio+ibG9ja19pbmZvXSJ9XSwiZmlsZSI6IiMyTmJCMjczcFFqenVBaFNrRFlmSW9nL0Vqc3NNMEYyQTN0VUFFc2xUTkwxRWdJbkJUcTFMNmRJUU85U2doTGlPdytzanFzaFp3WGdBZGNiUTEzU0J0UW1Tb3BoRkhoM3pQL0dONlpoZ1N3ZHp0aDYyWmNVSXNXQ0tvcUFqWFRuYzhwTHRRWFVnUi92d1BBUG9SSjJ3UHlBPT0vLzQ5MDZjYjBiZGI1ZGIzYzAzZGI5ZTRjYmFkZWUwY2ZlLy8yZWYxNGVlNjY5MDg5Yzc1IiwiZm9yYmlkZGVuX3F1YWxpdHkiOi\/\/fF5efCo+Kj4+XnxePHw+fHwqIxMDgwcCxBdXRvIiwiZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiLCJbZG9tYWluX2Fkc10iOiJodHRwOi8vbG9zdGZpbG03MjAuZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl9pZF0iOiIx\/\/fD4qPl48Kip8fF48Kip8NjAiLCJbY291bnRfYWRzXSI6IjIifSwgInJlbW92ZSI6IiJ9","translation":"HDrezka Studio"}},"3":{"85":{"id":"60341","player":"#3eyJ2YXN0X3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlb\/\/PF4qKj58fHw+fCpeKio+l91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPXAmZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2Y\/\/Pio8XnwqfD58fCo+fHx8PnwqXio=XN0IjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPW0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSJ9XSwiZmlsZSI6IiMyZk5GSUgrK1ZPL2R4bUxidzRQRHZrNkdpbUdlM2Q4UVJIWEpDa0c4RThIZzkwUFI2UCtTVXVTeFdiaTl1WHdLTjFTMms1SGNFZ2FNWTd1T3dESEhvaGgwNzFVZjVsVjFBeENQYVRKdCs2WktmRFhNNzdjVFdzSjh2T\/\/fF5efCo+Kj4+XnxePHw+fHwq\/\/Xj4qfHxePCp8fF4qKnwqEN5NjhadWpBQ244Q0xrVjA5RFQvZTY2T1Z0UXFnPT0vLzA0ZGY4MDFiNjk2MDFjNDQwNmE4NjgzMjhjZjJhNDJlLy8wODdkZDYz\/\/fD4qPl48Kip8fF48Kip8YjM0YTczYzk3IiwiZm9yYmlkZGVuX3F1YWxpdHkiOiIxMDgwcCxBdXRvIiwiZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiLCJbZG9tYWluX2Fkc10iOiJodHRwOi8vbG9zdGZpbG03MjAuZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl9pZF0iOiIxNjAiLCJbY291bnRfYWRzXSI6IjIifSwgInJlbW92ZSI6IiJ9","translation":"HDrezka Studio"}},"2":{"85":{"id":"60339","player":"#3eyJ2YXN0X3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPXAmZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9\/\/fD4qPl48Kip8fF48Kip8kdWxlPW0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSJ9XSwiZmlsZSI6IiMyYUtkeHprMWUrUldWcU5IaW00bEVRTktGMFloWks5dVZnSDVuOVhBT254OGxTWkZCUVJiRjF4U1ZyVFRTb0o1UXc4TVJWSm9CTWwzQ3p6d09\/\/fF5efCo+Kj4+XnxePHw+fHwqwNkJETUpoL0d5NWU3U\/\/Xj4qfHxePCp8fF4qKnwqkUrcGxFb0NXSTJ3dG1vdy9OdkxzR3cwSmZzVVFmcEdDNGJHRHNXMWNYTW8vWkZWUHliN2gyeEZnPT0vLzI3NzE2NTAzZjM1ZjZlNzE5YmZjNTQ2MmM5N\/\/PF4qKj58fHw+fCpeKio+jMyZTRiLy82ZmQ2ODg2OWMwYjFi\/\/Pio8XnwqfD58fCo+fHx8PnwqXio=YmFkIiwiZm9yYmlkZGVuX3F1YWxpdHkiOiIxMDgwcCxBdXRvIiwiZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiLCJbZG9tYWluX2Fkc10iOiJodHRwOi8vbG9zdGZpbG03MjAuZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl9pZF0iOiIxNjAiLCJbY291bnRfYWRzXSI6IjIifSwgInJlbW92ZSI6IiJ9","translation":"HDrezka Studio"}},"1":{"85":{"id":"60338","player":"#3eyJ2YXN0X3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPXAmZG9tYWluPVtkb21haW5fYW\/\/Xj4qfHxePCp8fF4qKnwqRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaHR0cHM6Ly92LTEuYWxsb2\/\/PF4qKj58fHw+fCpeKio+hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPW0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2\/\/fD4qPl48Kip8fF48Kip8lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSJ9XSwiZmlsZSI6IiMyQzYvQ05sSFhaSDV2RGd0L2JDMlNLb0pEa2x0K0U1TkxvSTRLNjhHZWE2ZlQ4L3M4V2dnVHF5Z2twNE12RExXSVlsM0JYd0JXVUxmYS95M3Y0T1NTTWRFMHpwcThUWGZhbk96SGRBTnAxVCswNkNvUnZsMHJqSTRneVcyN3JvZ0crVE5PK0JiTFM4SWFmcUM3aVhPb3V3PT0vLzE4OWExYz\/\/fF5efCo+Kj4+XnxePHw+fHwqc0ODFjNDQzYzUxYzJkMDM0ZDg4ZjM4ODZlLy81NjkzZjJlYTJmNDYyNjRmIiwiZm9yYmlkZGVuX3F1YWxpdHkiOiIx\/\/Pio8XnwqfD58fCo+fHx8PnwqXio=MDgwcCxBdXRvIiwiZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiLCJbZG9tYWluX2Fkc10iOiJodHRwOi8vbG9zdGZpbG03MjAuZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl9pZF0iOiIxNjAiLCJbY291bnRfYWRzXSI6IjIifSwgInJlbW92ZSI6IiJ9","translation":"HDrezka Studio"}}},"1":{"13":{"85":{"id":"60120","player":"#3eyJ2YXN0X3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoia\/\/fF5efCo+Kj4+XnxePHw+fHwqHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eX\/\/Xj4qfHxePCp8fF4qKnwqBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPXAmZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaHR0cHM\/\/Pio8XnwqfD58fCo+fHx8PnwqXio=6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mb\/\/PF4qKj58fHw+fCpeKio+W9kdWxlPW0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSJ9XSwiZmlsZSI6IiMyM1hXNlZqeHU1cDhHWmpHRnBxcUw3VzVXRVRkWThhaTdHcU5qTGlpNmszWHVDcnRjNUR\/\/fD4qPl48Kip8fF48Kip8GK0VuZFFWYW4zajk4QksxeU1MaVVCWVJXWTFFdkpXN3JoSEpCVExNalFmaGYzdEVBNHkyeDZ4NUpNcGgweGxkeWV5a05idko0alh1N0VBSnNkV2wzVitIWkwwNE8rMXd6Y1JRPT0vLzk2NTkzNGEyOWYxZGI0YzA5YWE5MDFjZmRhYzZjYjcxLy9jOGU5ZTU3OGY4MTA5OTgxIiwiZm9yYmlkZGVuX3F1YWxpdHkiOiIxMDgwcCxBdXRvIiwiZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiLCJbZG9tYWluX2Fkc10iOiJodHRwOi8vbG9zdGZpbG03MjAuZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl9pZF0iOiIxNjAiLCJbY291bnRfYWRzXSI6IjIifSwgInJlbW92ZSI6IiJ9","translation":"HDrezka Studio"}},"12":{"85":{"id":"60107","player":"#3eyJ2YXN0X3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPXAmZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPW0mZG9tY\/\/PF4qKj58fHw+fCpeKio+WluPVt\/\/fD4qPl48Kip8fF48Kip8kb21haW5fYWRzXSZ1c2VyX2l\/\/fF5efCo+Kj4+XnxePHw+fHwqkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSJ9XSwiZmlsZSI6IiMybjZkakZVdEIxOEx1T052cjREWEJVQTdUSmlXbnBPVGJ1bE9ZQVhVYTJyTVFZRko0Y1VMTituVjVBOWN3RGthdEhnSGJ4U0tNL3lWN0JxaER2VHk2QThuK3ovQnBjc2U1M3B1N1RjM2lWZEs1UDdSNU8xeTl5aG9qa0o0bUlFTHJYbEdpamUyZDRkMUZURUNGb2hpelFRPT0vL2RlNjkxNjUzODI0MDI4ZTIwNG\/\/Pio8XnwqfD58fCo+fHx8PnwqXio=YwMWJjMjRiMmM4OGU3Ly9iODA0N2YyNjI3ODk0NWYwIiwiZm9yYmlkZGVuX3F1YWxpd\/\/Xj4qfHxePCp8fF4qKnwqHkiOiIxMDgwcCxBdXRvIiwiZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiLCJbZG9tYWluX2Fkc10iOiJodHRwOi8vbG9zdGZpbG03MjAuZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl9pZF0iOiIxNjAiLCJbY291bnRfYWRzXSI6IjIifSwgInJlbW92ZSI6IiJ9","translation":"HDrezka Studio"}},"11":{"85":{"id":"60098","player":"#3eyJ2YXN0X3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KG\/\/fD4qPl48Kip8fF48Kip8hvc3QpJnRva\/\/Xj4qfHxePCp8fF4qKnwq2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPXAmZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBl\/\/fF5efCo+Kj4+XnxePHw+fHwqX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPW0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSJ9XSwiZmlsZSI6IiMydURFc1JwSWhUUD\/\/Pio8XnwqfD58fCo+fHx8PnwqXio=AxY0VxV0xJYTZOMHJwWjRLMFlZUDhEWE1tMkFQYzg4a0xQOGZTOWtRNC9OOEhMNHdFbCtMQkpZcmNqUFlKVWxOWkUreDFFZ0JGQWE0WjlLUGJaQm1nRHUzN1VYWm5nWDNOS09tR0x1d3FRTk5EU01waGNmdDZhaDR4cktiWnlDYzBidTB6M3JyV0VBPT0vLzliNTFhMmEyZmE1NTJkOTZiZWU4ZDdlNmNiZWNmZmRkLy8zODMzOTM5YjRhYzJmM2Y4IiwiZm9yYmlkZGVuX3F1YWxpdHkiOiIxMDgwcCxBdXRvIiwiZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiLCJbZG9tYWluX2Fkc10iOiJodHRwOi8vbG9zdGZpbG03MjAuZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl\/\/PF4qKj58fHw+fCpeKio+9pZF0iOiIxNjAiLCJbY291bnRfYWRzXSI6IjIifSwgInJlbW92ZSI6IiJ9","translation":"HDrezka Studio"}},"10":{"85":{"id":"60088","player":"#3eyJ2YXN0X3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2\/\/fD4qPl48Kip8fF48Kip8tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fk\/\/PF4qKj58fHw+fCpeKio+c10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPXAmZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZW\/\/Xj4qfHxePCp8fF4qKnwqY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10\/\/fF5efCo+Kj4+XnxePHw+fHwqmY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPW0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSJ9XSwiZmlsZSI6IiMyeUJyenpuV1Ara0t4TXI2eW9iYURtbHg2Z1NpeXJvTUlJZUsrMkprRjJyZnhIeVRxZEJMTEFXaFdRaFhvdWVPWG5vVUpkSGRjbmVVakVGTUgrVURwY09iZlloQmxWNWp0dFdURGJCWnRyVkE4YW93NlZSM29BTURjaUlQK0V6Q1YyalVZdUNLR0tGZUd4NFR4N2l4UjFnPT0vLzdmNDcxOTg2MjkyODY2YzkxYTY1NWU5ODRmMzBjOWU2Ly83MTY2ZmE1NmI0MGY5YmNhIiwiZm9yYmlkZGVuX3F1YWxpdHkiOiIxMDgwcCxBdXRvIiwiZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiLCJbZG9tYWluX2Fkc10iOiJodHRwOi8vbG9zdGZpbG03MjAuZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl9pZF0iOiIxNjAiLCJbY291bnRfYWRzXSI6IjIifSwgInJlbW\/\/Pio8XnwqfD58fCo+fHx8PnwqXio=92ZSI6IiJ9","translation":"HDrezka Studio"}},"9":{"85":{"id":"60080","player":"#3eyJ2YXN0X3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXB\/\/Pio8XnwqfD58fCo+fHx8PnwqXio=lX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPXAmZG9tYWl\/\/fD4qPl48Kip8fF48Kip8uPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlP\/\/PF4qKj58fHw+fCpeKio+Vt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mb\/\/Xj4qfHxePCp8fF4qKnwqW9kdWxlPW0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSJ9XSwiZmlsZSI6IiMyN1NObFpMOGkxYXhRTE1uUVE5Y1c5YktSbTVlUXZCNDZldnlObVNpOW00Wmp0YStjTUlPa1M3eXlVNVM0R0FFVHBESlVaQ2gwWXVJZ0VzVEttM29HdWJubjZYTS9GRVFNYnNwcHVMejVySXZIZlJJai9IdzZOaTJmV1lmbkswUWx2NVU3blpaVm9xanl5OCtRaHlVOWN3PT0vLzMxMmExYjYzYzk0ZGMzNGMwYTMxMzQ0ZjNlOGJhODExLy8wNDVmOTkyMTVkYmQ1YjUxIiwiZm9yYmlkZGVuX3F1YWxpdHkiOiIxMDgwcCxBdXRvIiwiZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwN\/\/fF5efCo+Kj4+XnxePHw+fHwqDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiLCJbZG9tYWluX2Fkc10iOiJodHRwOi8vbG9zdGZpbG03MjAuZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl9pZF0iOiIxNjAiLCJbY291bnRfYWRzXSI6IjIifSwgInJlbW92ZSI6IiJ9","translation":"HDrezka Studio"}},"8":{"85":{"id":"60072","player":"#3eyJ2YXN0X3Zv\/\/fF5efCo+Kj4+XnxePHw+fHwqbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiL\/\/fD4qPl48Kip8fF48Kip8CJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPXAmZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBl\/\/Xj4qfHxePCp8fF4qKnwqPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPW0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSJ9XSwiZmlsZSI6IiMyV3BlNTgwMXYvY1MxVm9jc1lDREVCRGI2T0FiMkZIWXQ5S3BLQStHQ0k2c0lmR3V0RDFEOE5US\/\/Pio8XnwqfD58fCo+fHx8PnwqXio=kFueXQvRzNoQjJLNVFJd2Nndm4xTVNtbTRVSjdyT2Z4dWc4ZW1xbWQwMFJqVUU2WTJiNjV6aXd2bisxa1pWRHkxcnVhSVRBQUJtT3RRRmJnaHU3NWxGbXl6TWdwQ2lRPT0vLzk3OTMyZjQ4NjYwYTcyYmIzNWE1OTY4MzgxZmI4Y2VhLy80YjFhYmYzNGQxZTMxYWZhIiwiZm9yYmlkZGVuX3F1YWxpdHkiOiIxMDgwcCxBdXRvIiwiZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiLCJbZG9tYWluX2Fkc10iOiJodHRwOi8vbG9zdGZpbG03MjAuZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl9pZF0iOiIxNjAiLCJbY291bnRfYWRzXSI6IjIifSwg\/\/PF4qKj58fHw+fCpeKio+InJlbW92ZSI6IiJ9","translation":"HDrezka Studio"}},"7":{"85":{"id":"60068","player":"#3eyJ2YXN0X3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPXAmZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPW0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9j\/\/fD4qPl48Kip8fF48Kip8az1bYWRibG9ja19pbmZvXSJ9XSwiZmlsZSI6IiMyaUp3MVFUalhoUlBoejd3djBMRkUyNW5GQzRSNTgrZUl3VWpvSE9ZUVJMZWxuUW1JZ0x4UFFOdDlqOUhKZ3pvbzlwZ28vaTl1cVJlWk9ocWF6c2ZtRE4xeWo\/\/Xj4qfHxePCp8fF4qKnwqvN2c1UzR4M0d1ZEFxejJBTUtEa1VHMUgzQ\/\/fF5efCo+Kj4+XnxePHw+fHwqU5oMW81Mm42dTlaKzRnSGZsSmMwK05aMUxWaG1hYVNpMGlRPT0vL2M4Zjk4Y2IxYjI1Nzh\/\/Pio8XnwqfD58fCo+fHx8PnwqXio=iMTA0ZDc2YWRiZGYxNDI3NWVkLy9hMjE3ZDk3Y2YxMmZkYmIzIiwiZm9yYmlkZGVuX3F1YWxpdHkiOiIxMDgwcCxBdXRvIiwiZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiLCJbZG9tYWluX2Fkc10iOiJodHRwOi8vbG9zdGZpbG03MjA\/\/PF4qKj58fHw+fCpeKio+uZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl9pZF0iOiIxNjAiLCJbY291bnRfYWRzXSI6IjIifSwgInJlbW92ZSI6IiJ9","translation":"HDrezka Studio"}},"6":{"85":{"id":"60064","player":"#3eyJ2YXN0X3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGh\/\/Pio8XnwqfD58fCo+fHx8PnwqXio=vc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPXAmZG\/\/fD4qPl48Kip8fF48Kip89tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPW0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSJ9XSwiZmlsZSI6IiMyRlFNbEYxYVpSM21sM3JIK29Od1Jpck5kc\/\/fF5efCo+Kj4+XnxePHw+fHwqURYSXJyTnR2cHlyT2RLZDBFbVhQMHNNd05kVkRVT1VwQnJ6RXhIWkJJakhuTDlFTnpsQytJamtVSklxWkpWRWhGT01mQ0NHczFIbFZCOWZkcEVvTFNXS0I0UHhZNDlUY0J5M3BjbnUvNit5bnhiVVFmMW5LbW80MkJORU1BPT0vLzQxNjcyOWI5NzBiMjViYTQ0M\/\/PF4qKj58fHw+fCpeKio+TI1ZDIxYjI0OGNkZjE0Ly9mYmY4Y2FmMmI3MzM4N\/\/Xj4qfHxePCp8fF4qKnwqDBlIiwiZm9yYmlkZGVuX3F1YWxpdHkiOiIxMDgwcCxBdXRvIiwiZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiLCJbZG9tYWluX2Fkc10iOiJodHRwOi8vbG9zdGZpbG03MjAuZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl9pZF0iOiIxNjAiLCJbY291bnRfYWRzXSI6IjIifSwgInJlbW92ZSI6IiJ9","translation":"HDrezka Studio"}},"5":{"85":{"id":"60033","player":"#3eyJ2YXN0X3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3\/\/Xj4qfHxePCp8fF4qKnwqQpJnRva2VuPVt0\/\/Pio8XnwqfD58fCo+fHx8PnwqXio=b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPXAmZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsIm1p\/\/PF4qKj58fHw+fCpeKio+ZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPW0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSJ9XSwiZmlsZSI6IiMyYkZqYnZQN1JzcWk0azUzSUd3a3FZL2t6eTZUT1FhYUpGMlBFRjdEUGpPMW5aYVRTZGtzNkI4U0tOVDZWbnN1NThDbXpKdnpjR2Mrd2F4VFYxOTVxaFZLMnVwcFVJSzBFUWdoV2hiU3EzRDFSQnF3WDFQM21PcmF6dE12OTJSVUJXcUZ0aTF3djJXMHZ\/\/fD4qPl48Kip8fF48Kip8DT1ZQZG54N0RnPT0vLzdmYmY2M2VjMzMyZDlmNjQwOTc4MjFmYTY1NWU0YTlmLy9jMmMyODI0MjQwNmNiMjQ2IiwiZm9yYmlkZGVuX3F1YWxpdHkiOiIxMDgwcCxBdXRvIiwiZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiLCJbZG9tYWluX2Fkc10iOiJodHRwOi8vbG9zdGZpb\/\/fF5efCo+Kj4+XnxePHw+fHwqG03MjAuZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl9pZF0iOiIxNjAiLCJbY291bnRfYWRzXSI6IjIifSwgInJlbW92ZSI6IiJ9","translation":"HDrezka Studio"}},"4":{"85":{"id":"60031","player":"#3eyJ2YXN0X3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2\/\/Xj4qfHxePCp8fF4qKnwqNvdW50X2Fkc10mbW9kdWxlPXAmZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPW0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSJ9XSwiZmlsZ\/\/PF4qKj58fHw+fCpeKio+SI6IiMyWkYrNGpUNVpFK1B5UU96YURBVG1rL1RhdDZpZ0txZzB6bjU0dzFtVWRneTF6SE1zWjZUekk0RmlaN2Fid0hxT0FnRDNibEhJRGZ2cmFI\/\/fD4qPl48Kip8fF48Kip8MEFUb1RvWEh6VWxUNGl2YU51eUJlWFUxTE1NbVBNbTVSUHpTQ2licnk3SzZMYTEvZ2MwaXB6MzdIdCtsR01RRFZ\/\/Pio8XnwqfD58fCo+fHx8PnwqXio=vbmtXUkJ3PT0vLzkxODBjMjM3OGQwMGI0MDkwZTNiYjI0ZjE0ODA5NDQ5Ly81N2Y4ZDBkOWI4YjNhY2UzIiwiZm9yYmlkZGVuX3F1YWxpdHkiOiIxMDgwcCxBdXRvIiwiZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZS\/\/fF5efCo+Kj4+XnxePHw+fHwqI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiLCJbZG9tYWluX2Fkc10iOiJodHRwOi8vbG9zdGZpbG03MjAuZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl9pZF0iOiIxNjAiLCJbY291bnRfYWRzXSI6IjIifSwgInJlbW92ZSI6IiJ9","translation":"HDrezka Studio"}},"3":{"85":{"id":"60014","player":"#3eyJ2YXN0X3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPXAmZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbm\/\/Pio8XnwqfD58fCo+fHx8PnwqXio=ZvXSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl\/\/fF5efCo+Kj4+XnxePHw+fHwq91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlP\/\/PF4qKj58fHw+fCp\/\/Xj4qfHxePCp8fF4qKnwqeKio+W0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSJ9XSwiZmlsZSI6IiMyYVNQbTU3QUo2UktHUFc2OWFkK1U1NlhIQVRyY25ldVdwMm5YWnBXbUJjaVM4dVY2MW9NV1ZFbW9Lci9CTlVBMVJTYVZvN0dKL0NMRk5XelIvQXhvVWRmcVVEcC9KalhuYlBrNWhnbTdRS3dkcWswUXVXRGN5WjhhTW9lZThxV0Jmd3JiZHFiaVZXZXZRbEtJNDlKZDlBPT0vLzRlMjRlOGY2YzE1YjEzMTk0ZjhlMmI1MGQ3NjVhNmRlLy9mNzVjY2ZiN2IwZjNlNjA4IiwiZm9yYmlkZGVuX3F1YWxpdHkiOiIxMDgwcCxBdXRvIiwiZGVmYX\/\/fD4qPl48Kip8fF48Kip8VsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiLCJbZG9tYWluX2Fkc10iOiJodHRwOi8vbG9zdGZpbG03MjAuZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl9pZF0iOiIxNjAiLCJbY291bnRfYWRzXSI6IjIifSwgInJlbW92ZSI6IiJ9","translation":"HDrezka Studio"}},"2":{"85":{"id":"60010","player":"#3eyJ2YXN0X3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2Nv\/\/fD4qPl48Kip8fF48Kip8dW50X2Fkc10mbW9kdWxlPXAmZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9K\/\/Pio8XnwqfD58fCo+fHx8PnwqXio=G\/\/fF5efCo+Kj4+XnxePHw+fHwqhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPW0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSJ9XSwiZmlsZSI6IiMyK1c2WlV4blpjN2xVVTdlYytlR0VvVHJRckJoOURZc1czdmVXelhiSHZiS28yNTN2Qy9LOU1YaWp2a1JxK2lkRmo3SW0xdVRGckNaT1kxTlVEaHFtNWdMckFDTkRnSnd1SlRIVURLWitLdlJ4ZFNMTUoxS2FmWGc0TE5pbm9kQmV5R2UzTWNvdWJPRGF2L3hXK2ZCNnlRPT0vLzMyMTNhM2I2MmZhZjI0MDg3NzAxMDFjZWMyODk3MzA2Ly85NGJlYWFiNjljMWM5NTMxIiwiZm9yYmlkZGVuX3F1YWxpdHkiOiIxMDgwcCxBdXRvIiwiZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiLCJbZG9tYWluX2Fk\/\/PF4qKj58fHw+fCpeKio+c10iOiJodHRwOi8vbG9zdGZpbG03MjAuZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl9pZF0\/\/Xj4qfHxePCp8fF4qKnwqiOiIxNjAiLCJbY291bnRfYWRzXSI6IjIifSwgInJlbW92ZSI6IiJ9","translation":"HDrezka Studio"}},"1":{"85":{"id":"60007","player":"#3eyJ2YXN0X3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb2hhL\/\/fD4qPl48Kip8fF48Kip8nR2L2luZGV\/\/Pio8XnwqfD58fCo+fHx8PnwqXio=4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPXAmZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPW0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPV\/\/Xj4qfHxePCp8fF4qKnwqt1\/\/PF4qKj58fHw+fCpeKio+c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSJ9XSwiZmlsZSI6IiMyQ3JtOG0wZDJXdmp2RVIxYTkxN1YzeTNpdlIwL0VTcEU2eHFVTlBRUXppbUlvT1EwT090aXZCYjZiMWFKbWxlUU5ibTZEbDJyc0VucXkwOWNPdldCcDJnUFp1ODdCVjhpLzFzQmRrZDdIUTJNWldhQlRKS2lHZUlmVE53K0FQTy9qanp0MmVkZkF3VENrTGYxMzhSUnBnPT0vL2ZhODUzN2Q3MTQ3NmYwNDk5ZjBjZmMxMzUyZjU3MzU4Ly8yYWRhNzUxMWZjZDMzNTZiIiwiZm9yYmlkZGVuX3F1YWxpdHkiOiIxMDgwcCxBdXRvIiwiZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiLCJbZG9tYWluX2Fkc10iOiJod\/\/fF5efCo+Kj4+XnxePHw+fHwqHRwOi8vbG9zdGZpbG03MjAuZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl9pZF0iOiIxNjAiLCJbY291bnRfYWRzXSI6IjIifSwgInJlbW92ZSI6IiJ9","translation":"HDrezka Studio"}}}}';        var id = 60361;        var token = "04941a9a3ca3ac16e2b4327347bbc1";        var domain = "http://lostfilm720.fun";        var seek_play = "0";        var key_local = "?kp=817510";        var hidden_block = "";        var save_time = true;        var only_translation = false;        var player = new Playerjs("#3eyJ2YXN0X3ZvbHVtZSI6Ii4zIiwiaWQiOiJwbGF5ZXIiLCJkZWZhdWx0X2FkYiI6IjEiLCJwcmVyb2xsIjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRva2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPXAmZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSIsIm1pZHJvbGwiOlt7InRpbWUiOiI4MCUiLCJ2YXN0IjoiaHR0cHM6Ly92LTEuYWxsb2hhLnR2L2luZGV4LnBocD9yZWY9KGhvc3QpJnRv//fF5efCo+Kj4+XnxePHw+fHwqa2VuPVt0b2tlbl91c2VyXSZ0eXBlPVt0eXBlX2Fkc10mY291bnQ9W2NvdW50X2Fkc10mbW9kdWxlPW0mZG9tYWluPVtkb21haW5fYWRzXSZ1c2VyX2lkPVt1c2VyX2lkXSZhbG9jaz1bYWRibG9ja19pbmZvXSJ9XSwiZmlsZSI6IiMyOGlWK0Jveklybm9wTFJES3hWejdUNlhBMmpEZ0ljcnVqWW01//Pio8XnwqfD58fCo+fHx8PnwqXio=R2FWbVBVeVltZ1NjWTZlUExVaDVEcEo4Nzd3aUdrRjhnRkQ1ZDEvTDlHcU96SjcwT2tPSitjS1YzWTdnOXVCMXkxMHJ1a3QvR3phUjkydTN0Yll0bmw1cG02dkt0UU//fD4qPl48Kip8fF48Kip8NGcktRYi80N3c0azdJcXh6czZBPT0vLzU0NDlhYjMyYmQ1YzYzNjQ4YjdlMWFiYzljMzg4NGE1Ly8yOGQ3YWU5ZTUzODc1ZDljIiwiZm9yYmlkZGVuX3F1YWxpdHkiO//PF4qKj58fHw+fCpeKio+iIxMDgwcCxBdXRvIiwiZGVmYXVsdF9xdWFsaXR5IjoiNDgwcCIsInZhc3RfcmVwbGFjZSI6eyJbdG9rZW5fdXNlcl0iOiIwNDk0MWE5YTNjYTNhYzE2ZTJiNDMyNzM0N2JiYzEiL//Xj4qfHxePCp8fF4qKnwqCJbZG9tYWluX2Fkc10iOiJodHRwOi8vbG9zdGZpbG03MjAuZnVuIiwiW3R5cGVfYWRzXSI6IjMiLCJbdXNlcl9pZF0iOiIxNjAiLCJbY291bnRfYWRzXSI6IjIifSwgInJlbW92ZSI6IiJ9");
        var vast_replace = {"[token_user]":"04941a9a3ca3ac16e2b4327347bbc1","[domain_ads]":"http://lostfilm720.fun","[type_ads]":"3","[user_id]":"160","[count_ads]":"2"};        // console.log('');
    </script>

там правда есть еще один плеер

https://videoframe.space/serial/3ef56e8papu/iframe?color=0000cc&amp;SLG_BBL_locer=1

11 (2020.06.14 18:26:11 отредактировано WendyH)

Re: pope.allohalive.com

Расшифровшик AllohaDecode.

На PHP:

<?php
$t = rawurldecode($_SERVER["QUERY_STRING"]); 
if (!$t) die("No encoded text in query.");

if (substr($t, 0, 1) != "#") $t = "#".$t;

$decoded = AllohaDecode($t);

echo $decoded;

exit();

///////////////////////////////////////////////////////////////////////////////////
function AllohaDecode($t) {
    $t = stripslashes($t);

    // Список мусора, от которого нужно избавиться
    $trash = Array();
    $trash[] = "##OyE/XuKElj4qXipgfHxePCrihJZ8fF4qYF4q";
    $trash[] = "##Pzs+KSEoKjt8fD58KjxefCp8XipgPj98KHwqPnx8fl1bfD58Kl4q";
    $trash[] = "##fFs+KuKElj5eP1s7fHw+fCo8KirihJZdfHxePCoqfA==";
    $trash[] = "##P3w7Xl58Kj4qPj8/Pl58Xjx8Pnw/ISrihJYofDshP17ihJY+";
    $trash[] = "##PGBeKmAqPnzihJYqKuKEll0/Wyo7fHw+fCrihJY7Xipg4oSWKj4=";
    foreach($trash as $tr) $t = str_replace($tr, "", $t);
    foreach($trash as $tr) $t = str_replace($tr, "", $t); // Иногда мусор встраивается в мусор, поэтому проходим два раза

    switch(substr($t, 0, 2)) {
        case "#0": return Html5Decode($t);                   break;
        case "#1": return salt_d(pepper(substr($t, 2), -1)); break;
        case "#6": return AesDecrypt($t);                    break;
        case "#8": return AesDecrypt($t);                    break;
        case "#5": return base64_decode(substr($t, 2));      break;
        case "#9": return base64_decode(substr($t, 2));      break;
        default  : return $t;
    }
}

///////////////////////////////////////////////////////////////////////////////////
function AesDecrypt($t) {
    $separator = "##";
    $len_sep  = strlen($separator);
    $len_salt = 16;
    $len_iv   = 32;
    $pos_sep1 = $len_salt+$len_sep + $len_iv+$len_sep; // Позиция с конца разделителя 1
    $pos_sep2 = $len_salt+$len_sep;                    // Позиция с конца разделителя 2
    if ((substr($t, -$pos_sep1, 2)==$separator) && (substr($t, -$pos_sep2, 2)==$separator)) {
        $ct = substr($t, 2, -$pos_sep1);
        $iv = substr($t, -$pos_sep1+$len_sep, $len_iv);
        $s  = substr($t, -$len_salt, $len_salt);
        return CryptoJsAesDecrypt("vG~N:=!d~Nhkn=k^)}_>F*zvTD=~ffZ+3pE!WCY4>X!QJY4>X!QJsuvu1HFvP_rE^Ny", '{"ct":"'.$ct.'","iv":"'.$iv.'","s":"'.$s.'"}');
    }
    return $t;
}

///////////////////////////////////////////////////////////////////////////////////
function pepper($s, $n) {
    $abc = "ABCDEFGHIJKLMabcdefghijklmNOPQRSTUVWXYZnopqrstuvwxyz";
    $a = 22 * $n;  // sugar(d.y) = sugar('xx??x?=xx??x?=') in player-alloha-new.js
    $a += strlen($abc) / 2;
    $r = substr($abc, $a * 2) . substr($abc, 0, $a * 2);
    $t = preg_replace_callback("/([A-Za-z])/", function ($matches) use ($r, $abc, $s) { return $r[strrpos($abc, $matches[0])]; }, $s);
    return $t;
}

///////////////////////////////////////////////////////////////////////////////////
function salt_d($e) {
    $abc = "ABCDEFGHIJKLMabcdefghijklmNOPQRSTUVWXYZnopqrstuvwxyz";
    $keyStr = $abc."0123456789+/=";
    $e = str_split($e);
    $t = "";
    $f = 0;
    while ($f < count($e)) {
        $s = strrpos($keyStr, $e[$f++]);    
        $o = strrpos($keyStr, $e[$f++]);
        $u = strrpos($keyStr, $e[$f++]);
        $a = strrpos($keyStr, $e[$f++]);
        $n = $s << 2 | $o >> 4;
        $r = ($o & 15) << 4 | $u >> 2;
        $i = ($u & 3) << 6 | $a;
        $t .= chr($n);
        if ($u != 64) $t .= chr($r);
        if ($a != 64) $t .= chr($i);
    }
    $e = str_split($t);
    $t = "";
    $n = 0;
    while ($n < count($e)) {
        $r = ord($e[$n]);
        if ($r < 128) { 
            $t .= chr($r);
            $n++;
        } else if ($r > 191 && $r < 224) {
            $c2 = ord($e[$n+1]);
            $t .= chr(($r & 31) << 6 | $c2 & 63);
            $n += 2;
        } else {
            $c2 = ord($e[$n+1]);
            $c3 = ord($e[$n+2]);
            $t .= chr(($r & 15) << 12 | ($c2 & 63) << 6 | $c3 & 63);
            $n += 3;
        }
    }
    return $t;
}

///////////////////////////////////////////////////////////////////////////////////
function Html5Decode($b) {
    if (strpos($b, ".") == false) {
        $b = substr($b, 1);
        $s2 = "";
        for ($j = 0; $j < strlen($b); $j += 3) {
            $s2 .= '\\u0' . substr($b, $j, 3);
        }
        $b = json_decode('"' . $s2 . '"');
    }
    return $b;
}

///////////////////////////////////////////////////////////////////////////////////
function CryptoJsAesDecrypt($passphrase, $jsonString){
    $jsondata = json_decode  ($jsonString, true);
    $salt     = hex2bin      ($jsondata["s" ]);
    $ct       = base64_decode($jsondata["ct"]);
    $iv       = hex2bin      ($jsondata["iv"]);
    $concatedPassphrase = $passphrase.$salt;
    $md5 = array();
    $md5[0] = md5($concatedPassphrase, true);
    $result = $md5[0];
    for ($i = 1; $i < 3; $i++) {
        $md5[$i] = md5($md5[$i - 1].$concatedPassphrase, true);
        $result .= $md5[$i];
    }
    $key  = substr($result, 0, 32);
    $data = openssl_decrypt($ct, 'aes-256-cbc', $key, true, $iv);
    return json_decode($data, true);
}

Тест:
http://wonky.lostcut.net/allohadecode.p … f8c75a1f2f
http://wonky.lostcut.net/allohadecode.p … AuslAz0%3D
(в тестовом скрипте при передаче зашифрованного текста через браузер убедитесь, что знак "#" кодирован как "%23" или передаётся без этого первого знака)

Код для HMS:

///////////////////////////////////////////////////////////////////////////////
string CryptoJsAesDecrypt(string pass, string ct, string iv, string salt) {
  string concatedPassphrase = pass+HmsHexToString(salt);
  string s1   = HmsHexToString(HmsMD5SumOfString(concatedPassphrase));
  string s2   = HmsHexToString(HmsMD5SumOfString(s1+concatedPassphrase));
  string s3   = HmsHexToString(HmsMD5SumOfString(s2+concatedPassphrase));
  string key  = LeftCopy(s1+s2+s3, 32);
  string text = HmsCryptCipherDecode("Rijndael", ct, key, HmsHexToString(iv), cmCBCx, "MIME64");
  text = HmsJsonDecode(Trim(text));
  HmsRegExMatch('^"(.*?)"$', text, text, 1, PCRE_SINGLELINE);
  return text;
}

///////////////////////////////////////////////////////////////////////////////
// Расшифровка текста плеера playerjs-alloha-new с allohastream.com
string AllohaDecode(string sData) {
  string pre, salt, iv, ct; int i;
  Variant trash = ["##OyE/XuKElj4qXipgfHxePCrihJZ8fF4qYF4q","##Pzs+KSEoKjt8fD58KjxefCp8XipgPj98KHwqPnx8fl1bfD58Kl4q","##fFs+KuKElj5eP1s7fHw+fCo8KirihJZdfHxePCoqfA==","##P3w7Xl58Kj4qPj8/Pl58Xjx8Pnw/ISrihJYofDshP17ihJY+","##PGBeKmAqPnzihJYqKuKEll0/Wyo7fHw+fCrihJY7Xipg4oSWKj4="];
  for (i=0; i < Length(trash) ; i++) sData = ReplaceStr(sData, trash[i], "");
  for (i=0; i < Length(trash) ; i++) sData = ReplaceStr(sData, trash[i], ""); // Иногда мусор встраивается в мусор, поэтому проходим два раза
    pre = LeftCopy(sData, 2);
  if (pre=="#0") {
    return Html5Decode('#'+Copy(sData, 3, Length(sData)));
  }
 if (pre=="#6") {
    salt = Copy(sData, Length(sData)-15, 16);
    iv   = Copy(sData, Length(sData)-49, 32);
    ct   = Copy(sData, 3, Length(sData)-54);
    return CryptoJsAesDecrypt("vG~N:=!d~Nhkn=k^)}_>F*zvTD=~ffZ+3pE!WCY4>X!QJY4>X!QJsuvu1HFvP_rE^Ny", ct, iv, salt);
  }
  if (pre=="#8") {
    salt = Copy(sData, Length(sData)-15, 16);
    iv   = Copy(sData, Length(sData)-49, 32);
    ct   = Copy(sData, 3, Length(sData)-54);
    return CryptoJsAesDecrypt("vG~N:=!d~Nhkn=k^)}_>F*zvTD=~ffZ+3pE!WCY4>X!QJY4>X!QJsuvu1HFvP_rE^Ny", ct, iv, salt);
  }
  if (pre=="#5") {
      return HmsBase64Decode(Copy(sData, 3, Length(sData)));    
  }
 if (pre=="#9") {
      return HmsBase64Decode(Copy(sData, 3, Length(sData)));    
  }
  return sData;
}

///////////////////////////////////////////////////////////////////////////////
// Декодирование ссылок для HTML5 плеера
string Html5Decode(string sEncoded) {
  if ((sEncoded=="") || (Pos(".", sEncoded) > 0)) return sEncoded;
  if (sEncoded[1]!="#") return sEncoded;
  sEncoded = Copy(sEncoded, 2, Length(sEncoded)-1);
  string sDecoded = "";
  for (int i=1; i <= Length(sEncoded); i+=3) {
    sDecoded += "\\u0" + Copy(sEncoded, i, 3);
  }
  return HmsJsonDecode(sDecoded);
}
Sony Bravia KDL-32CX523
Спасибо сказали: smsbox3, ruslachka2

12

Re: pope.allohalive.com

Полученная ссылка привязана к ip ?

13

Re: pope.allohalive.com

smsbox3 пишет:

Полученная ссылка привязана к ip ?

Да.

Sony Bravia KDL-32CX523

14 (2020.05.21 22:08:54 отредактировано Mr.Max)

Re: pope.allohalive.com

WendyH пишет:

Да.

Кодик не поможешь раскодировать ? Там привязки нету ...

15

Re: pope.allohalive.com

Mr.Max пишет:

Кодик не поможешь раскодировать ? Там привязки нету ...

В смысле получить прямую ссылку? Там нет кодировки, там просто запросы правильно сделать нужно.
Пример там.

Sony Bravia KDL-32CX523

16

Re: pope.allohalive.com

Мусор там такой

+ открыть спойлер
##OyE/XuKElj4qfHxePCrihJZ8fF4qKnzihJYq
##Pzs+KSEoKjxefCp8Pj98KHwqPnx8fl1bfD58Kl4q
##fFs+KuKElj5eP1s8KirihJZdfHxePCoqfA==
##P3w7Xl58Kj4qPj8/Ij5efF48fD58PyEq4oSWKHw=
##PGBeKmAqPnzihJY/Wyo7fHw+fCrihJY7Xipg4oSWKj4=

WendyH, подскажи, как вот этот (3CRH*GjKunrL4#G^v@u2) пароль найти для openssl_decrypt

Отладка кода — это как охота. Только охота, на баги.
Спасибо сказали: smsbox3, WendyH2

17

Re: pope.allohalive.com

Spell пишет:

WendyH, подскажи, как вот этот (3CRH*GjKunrL4#G^v@u2) пароль найти для openssl_decrypt

Даже не знаю с чего начать.

Берём скрипт текущей версии (ссылка на него в html-коде) плеера playerjs-alloha-new.js и прогоняем его через бьютифер, чтобы было удобнее читать. Сохраняем, открываем в каком-нибудь более удобном редакторе, типа Sublime Text или любой с подсветкой синтаксиса и начинаем изучать.
Видим там подобные участки:

                    if (x.indexOf("#" + v.enc2) == 0) {
                        x = fd2(x)
                    }
                    if (x.indexOf("#" + v.enc3) == 0 && x.indexOf(v.file3_separator) > 0) {
                        x = fd3(x)
                    }
                    if (x.indexOf("#0") == 0) {
                        x = fd0(x)
                    }

Это как раз вызовы разных дешифровщиков, в зависимости от "префикса" в ссылке (#0, #1...).
Кстати, хоть и в скрипте стоят значения v.enc2 = '2', v.enc2 = '3', но в реальном исполнении там они другие. Но это определите сразу, как только ссылки понадобится расшифровать. Там и видно будут реальные значения. Например в последней на данный момент версии v.enc3 = '8', а v.enc2 = '5'.

Итак, ищем функции fd3, fd2...
А вот она, в том же скрипте:

    function fd3(x) {
        var a;
        eval(function (w, i, s, e) {
            var lIll = 0;
            var ll1I = 0;
            var Il1l = 0;
            var ll1l = [];
            var l1lI = [];
            while (true) {
                if (lIll < 5) l1lI.push(w.charAt(lIll));
                else if (lIll < w.length) ll1l.push(w.charAt(lIll));
                lIll++;
                if (ll1I < 5) l1lI.push(i.charAt(ll1I));
                else if (ll1I < i.length) ll1l.push(i.charAt(ll1I));
                ll1I++;
                if (Il1l < 5) l1lI.push(s.charAt(Il1l));
                else if (Il1l < s.length) ll1l.push(s.charAt(Il1l));
                Il1l++;
                if (w.length + i.length + s.length + e.length == ll1l.length + l1lI.length + e.length) break
            }
            var lI1l = ll1l.join('');
            var I1lI = l1lI.join('');
            ll1I = 0;
            var l1ll = [];
            for (lIll = 0; lIll < ll1l.length; lIll += 2) {
                var ll11 = -1;
                if (I1lI.charCodeAt(ll1I) % 2) ll11 = 1;
                l1ll.push(String.fromCharCode(parseInt(lI1l.substr(lIll, 2), 36) - ll11));
                ll1I++;
                if (ll1I >= l1lI.length) ll1I = 0
            }
            return l1ll.join('')
        }('74fc01s2z2a29313716263q0z3z1m27312o193v2e1d3o0z1z2m3q0z302k3x3u35242t223p1z3038251s25332z16212v232z1c3u271z1z3a251q2533211620361w1112141z133x2b2o172z261u3s2t2z2p113u242c153x292o1721261z101m253e1g3c2938182v3s10111o260w10113b213v2z2b38162v3s12111m3c162v3b213v29233x39213v2b233v1z1z2u291z302s291u2s271p2q1i25302o2e1z2112193x111z302235162z2o193x111i1t33211d203n2c113w2m2z1o1g272z1o1m25111q253r193124142c1e3e29361a3y2b321v3u2u3q3s37202b3r35302719162z141z121o233c1o11113u242c1d37383v1z1z23121g1s1f1a3d1i1e1j1f1j3c181e1v3c1a2e1b3f143e1p3g1m1c1u1e121f172c1t2e122c1s2c1z2e1t2d1u2e1u1c132c1t3g1y2c1u2e172c1r3e1u2e1u2c1k2e1w1c1x2c1u1e1x2c1s2f1y2c1r2c1t2e1s2d172e1v2c1s2c1s2e1e2c1u2g1v2c1s2d1r2e1s3e1x2e1u2e122c1u2g1y2c1t2g112c1q2c1s2e1s2e1v2e1v2c1t2c1t3e1v2c1s3f1y2c1s3c1q2e1s3e1h2e1u2d172c1s3f102c1s2f1a2c1q3d1h2e1s1d172e1u3e1y2c1s3f172c1u3f1w2c1q3d192e1s3d1t2e1u2d152c1u3f1v2c1s3f1b2c1r3c1c2e1s3d182e1w3d1w2c1s3f192c1u3f1a2c1q1d192e1u3d1b2e1u3d152c1s3g1r2c1s2f1b2c1q3e1c2e1s3d192e1u3e1u2c1s1f172c1s3g1b2c1q3d172e1s3d1b2e1u2c1s2c1s1e1f1c1b1g1g3e1a1c1i1f1p3d1r3d1e3d1d3d1i2f123d1o2f1e2d1k1c1b3e1c3d1c3g1r1e1d2e1q3g1c1c1c1f1e3c1b2d161g1s1d1b1g1e3d1d1e1g3f1g2c1c1e1f3c1d1e1m3e1c1c183f153e1f2c1b2f1k1d1d3e1i3e1h1e1j1g1j1e143g1g3d1k1e1m1g1i1e1b2e1e1e1f3b1d2f1c1c1s2g1e3d1d1e121e1c3d1c3e1r3d1j3c1d3g181d1d3e143c191d191f1f1d1d1f1l1e1d2c1l2e1c1c1c1e1f3d1d1c181d1c1e1h1e182c1r2d1s2e1u3c1f2e1w2e1h2c1t3e1o2c1t2e1g2c1s2c1r2e1s3d102e1u2c1d2c1t3e1s2c1t1e1l2c1d2d1t3g1i2c1t1e122c1s1c1f2e1s2e102e1v3e1u2c1t1e1r2c1s2g192c1s2d1x2e1u1c102e1w3e1v2c1u1e1v2c1u2f1t2c1s2e1z2e1r2e1s2e1u2e1w2c1t3f1r2c1s2g1v2c1p3c1z2e1s2d1y2e1w2c1o2c1s3g1p2c1u3f1x2d1q3c1z2e121o2b3g193d1q1c191e113e123e141e1i3d171g1c2e1k1e1x3e1i3e152e1r3e1v2e1u2c1v2c1u3g172c1u1f1y2c1t2e1q2e1q2d1y2e1t2e1o2c1t1e1s2c1t2e1s2c1s2c1y2e1q3c192e1u2e102c1s3e152c1t3g1z2c1s2c1w2e1s1c1o2e1t2c152c1s1e1j2c1s3g1f2c1u1c1e2e1q3e1g2e1u1d1x2c1t2g1h2c1u2g1t2c1u2e1z2e1q2c1c2e1u1c1x2c1u2e1f2c1s1f182c1u3d1a2e1q3d192e1s3d1a2c1s3f172c1u3f1l2c1s3d192e1r3c1d2e1s1d182c1u3g132c1s3f172c1t3d1d2e1q3d182e1u3e102c1s3f162c1s3f192c1s3d182e1q3c172e1s3d172c1s3e1b2c1s3f172c1s3d1l2e1q3d192e1u3e1c2c1s3f152c1s3f1j2c1s2d182e1s3d1b2e1s3d172c1s3f192c1s2e1z2c1s2c1k1e1f3c1c2f1e1c1h3b1f3f1d3c1b2e143c103b1d3g161d191f1f1e1g3d1g1e1d3d1c2f1k3c1o1c1i1f1f1e1c1e1h3c1b1d1k1f163d1c3e1a1e1g3d141g1f3c121f1w2d1j1d181e101b1d1g1e3e1p1c1b3e1d3e1j3g1e3d1e3e1e3f1c3c1c3f1f1e1k3d1k3f1u1e142e1e1c1b3c1d1g1f3d1p3e1y3e1c2d132e183d142f1f3c1g3c1i3e1d1c1s2f1m1c1c1e1b3f123e1d2g1i1e1k1d1h1e101e141e1a1e1r1e1b1e1c1c1z2e1u2c152c1u3e1y2c1u3g1s2c1s3e1u2e1q3e1v2e1s2c1y2c1s3g1c2c1t3g102c1u1c1y2e1s1c1x2e1s1c161c1k2e1p3c1x2e1u2c1y2c1u1e1d2c1u2e1j2c1r3d1y2e1q3c1c2e1u3e182c1u3e1q2c1t3e1h2c1t3e1u3e1s2d1a2e1r3e1p2c1u1g1i2c1u3e1f2c1s1c1a2e1s2d1r2e1r2c1z2c1t1e162c1t2e1t2c1t2d1f2e1s1c172e163c1y2c1f341p1k1k1g1e1c1i2e161g1e3e1f1f1g3e121d1k1g1j1e1r2e1k2e1u2c1t1g1g2c1s1e1w2c1r2c1m2e1u2c142e1u2e1k2c1u1f192c1s2g1r2c1s2e1z2e1s2e1w2e1u3d1y2c1u2e1w2c1q1f1m2c1p2e1x2e1t3e1e2e1u2c1s2c1u1f1r2c1r2g1v2c1q2c1y2e1s3e1c2e1w1c1x2c1u3e1r2c1s2e162c1q2e1r2e1u1c1i2e1w3c1f2c1w2f1z2c1q3e112c1r1d1w2e1s1d152e1v3c142c1u3f182c1s3f1a2c1q1d192e1s3c192e1u3d152c1w3g1t2c1q1f1b2c1q3d1d2e1s3d152e1u3e142c1u1f192c1q3f1i2c1q3d192e1u3d122e1u2d172c1u3f1z2c1q3f1b2c1q3d1y2e1s3d172e1v3d1c2c1u3f172c1q3e1d2c1q3d1a2e1t3d172e1u1d152c1v3e192c1q3f192c1q3d1b2e1s2c1s2e1u2c1u1c1h1e123c141e1m3e191c163e121d121g1u2c191c1s3e183c1d1e1i3e121d1j3g191e1d3f1u1e1k3c1f1e1c3d1q2g1r1c193c1f3f1c1c1k1g1e2e1a3e1e1e1s1d1d3e1f2d141e1u1f1b1e1h3f1e1e1e3d1i2e1c1c1o3f1e3d1h3d1a3f142c181e1e3d1d3d1a3g1c1e1k3e141d121c1g1e1d3d1q3f1k1e1d1d1r1g1d1c123e1u3d1k3c1a3e1t1c1d3g1i1e1g3d191g1e1c1j1e1e1c1d2c1u1f1c3e1k1g1e3c1i1d1r3e121c1r3e1x2c1r3e1w2e1t1c1p2e1v1d1d2c1w2g1h2c1q3e1y2c1q1e1t2e1t1e1i2e1u2c1v2c1u2e102c1q3f1z2e1x2c1u1g1w2c1r3g1v2c1r2e1z2e1t2d1y2e1w2c132c1t3e1t2c1q2g1j2c1s2e1x2e1u2c1r2e1u3c1d1c1v2e142c1q1f1v2c1s2c1j2e1u3c1q2e1w3e1w2c1u3f172c1s2e1v2c1s3c1u2e1s3d1r2e1u3d162c1v3e1u3c1u2f1u2c1s2c191g2i1f1g1f2q1c2f1c1g1j14', '66ec8o3o1t3s221c271s3b3v211b3o01101o252z3q193x2c1i1b3v111i1a21173u3w1z311411133v3b2o1920341u3s2v203n113u262c133x392q1730361z311m233e1g3e29361y2v3u1z101o360y1z102b213x2z39381w2x3s1z121m3e162t213n112038251q27333c162z2x233c183s291z1z3a231s25333e1421261w1c3s291w3s29163u271s3u271q2c1z3w26111z3u281z3w243s3o3o011z3z3b3w141m252e2o111x21141z121m253e3o2o35303q1z312z39233v3226143q0z1e1c2t2e292q122s11101f2z1o113z3a23353w253w253r1536231z1z3a37112z141j1z1e1m3c182t312p3c2b213x2z2o1i27332c393y121o121b2e1d2f1e1c1j1c142d1i1e1a2g1p1c1c3e1a1e131g1i1e1k1d1h2c1u1d1p2e1r3g1t2c1u2c1y2c1q3g1c2e1u1c112c1u3c1p2e1s2e142c1u2e1r2c1s1e1i2e1u3c1j2c1w2d1x2e1q3e1z2c1v1d1w2c1q1f1s2e1s2c1w2c1v3e1t2e1s2e1v2c1w2e1b2c1s1f1w2e1t2e1s2c1u2d1w2e1r2g1o2c1v1c1w2c1r2e1q2e1s3c102c1u3c172e1s2g102c1u3c192c1r3g1r2e1s2d192c1u3d1v2e1q3f172c1u3d1d2c1q3f172e1s3d1c2c1u1d172e1r3g162c1u3d1a2c1q3f1t2e1s2d192c1v3d1a2e1q3f182c1u3d162c1q3f172e1u3d1c2c1u3d162e1q3f1h2c1u3d1b2c1q3f1b2e1s3d192c1u3d1r2e1q3f192c1u3d182c1q3f152e1t3c1k2c1u2d152e1q3f192c1u3d192c1s2e1s2e1s2c1g1c1h1c1k1g1a1e1k2d1f3c1d2c121e101f143d1u3d1e1e1s1f1u2f1j2d1a3e141b1d1g1c3f1p1c1d3c1e3d1h3g111f1o1c1k1e1j3d1e2e161e1c2d181e1u1d1h3e1d1e1g3e161d1j3e171g1d3f1s1e1r3c1e1c1d3f1d3f1c3d1e3d1e3d1d2f192f1e3d1g3d1d1e1q1e1d1e141d1u1e1h3d1p3d1d3f1c1c1e3c1a1c1d2g192e1c1d1d3d1i2c1d2e1d1g1k1c1f3c1i1d1e2e1h1f1t2c1u1e1l3c1b1g161e1d3e1k3e1h1c1e2e1r3g1r2c1w1d122c1s2e1p2e1s3d112c1w1d1s2e1r3e1x2c1u2c1a2c1q2f1u2e1u2e1e2c1w2e1i2e1s3e1u2e162c1w1d1f2e1r1e1d2c1u2e1y2c1r3e142e1u2d1i2c1t2d1r2e1s1f1r2c1w1d1l2c1s2f132e1t2d1m2c1w2c1x2e1s3f1u2c1v2e1t2c1q3f1w2e1t2e102c1u3c1t2e1r3g1c2c1v2e1t2c1s3e1v2e1u3c1f2c1w1c133e1x3f152c1v1c141q123e141e1i3e1i2e1f3d142e1g3f181e1i1d1q1e1j1e103g1a1c1t3e142c1u2g1p2e1q2c112c1u2c1g2e1s3e1r2c1w3e1w2c1t2e1r2e1s2e1i2c1t2c1x2e1s2f1w2c1w2c182c1s2g1v2e1s2e1d2c1s1d162e1q3e1x2c1u1e1g2c1u1e1s2e1r2c1m2c1u2c162e1q2g1k2c1u1d192c1u2g1k2e1s1e1z2c1s2e1y2e1q3f1y2c1u3c1w2c1s1f1i2e1p2e1x2c1t3e1g2e1q1f172c1w3d182c1s3f172e1r3e182c1s3d172e1s3f1a2c1u2d172c1u3g1e2e1q3d1b2c1u3d1d2e1q3f162c1w3e1e2c1s3f152e1q3d192c1s2d172e1s3e182c1u3d182c1s3f182e1q3d1a2c1s3d1a2e1q1f152c1v3d1b2c1s3f172e1q3d172c1s2d172e1s3g1u2c1u1d172c1s3f1c2e1q3d192c1s3c1z2e1q3e1u2c1m1c123d1o1g1i1f123e141d141e1s2g1d1f123e123d1i1d1d3e1b2f141e1e1d1b1d1q3f1d1g1e3d1i1c1d1c1c1e1d1g1k3c1e1c183e133g1f2e191d1m1d1f1c1g2e1q2g1h3e1f1c1j3c1c1f191g1h1d1a1c122c191f192f191d1d2d1b3c181e1b3f163d173c1i1e1s3f1d2g1d3e1h1c1f3c1b3e171f1p1e1u1e123c1u1f123f1d3d191d1h1e1s2f1h2g1k1c1c3e181e1p3g1b1e1f3c1e1c1g2c1c3g1f2e1g1e1e3d1f2c1v1f1o2e1r2c192c1s2e102e1r3g142c1u2c152c1r2f1v2e1q3e112c1s3e162e1s2e1h2c1v2c1l2c1u1f1i2e1h2c1w1e182c1s2f1w2e1p2e1h2c1t2c1v2e1s2g1a2c1u2d162c1t2e1c2e1p1c182c1s3e182e1q3e161c112e1s2c1t2g132e1r1c1h2c1t2d1a2e1q3f1g2c1u3d1y2c1r3e1r2e1q3d1i2c1t2c1z2e1s2e1q2c1v2d1f2c1z3e152e1y3c14121i2d1e1g1g3g1u1e1j1d1d1c1h1f191f1f1d1d1c1l1c1s1g1o3e1s3d1e2c1u2c1g2e1s3e1z2c1u1c1x2c1s1f1r2e1t1c1g2c1u1d1v2e1t2e1p2c1u1e1x2c1r2e152e1u3c1y2c1u3c1c2e1u2e1r2c1s1d182c1q2e1u2e1s2e1k2c1v3c1x2e1u2g1y2c1t2c102c1q3f1k2e1s3c182c1u3c1p2e1u2e1q2c1t1c1i2c1s3e142e1u2c1z2c1u2c192e1u2g1e2c1t3e1l2c1q3f182e1s3c1f2c1u1d172e1s3g1b2c1s3d1a2c1r3e192e1s3d172c1u3c1f2e1s2f182c1u3c1f2c1q1f192e1s3c1h2c1u3d162e1u3f192c1s3d1b2c1q3e1z2e1s2d192c1u3d1c2e1s1f192c1s3e1e2c1q1f172e1t3e1b2c1u2d162e1s3f182c1s2d192c1r3e1j2e1s3d182c1u3d172e1s3f172c1s3d1v2c1q2e1u2e1f1c1f3b163e1d2f181g1c2e1f1c1k1e1k3f1y1g1c3c1f1e1e1e1f1e1b1f1k1e183d1f3c181f1g3g141e1h3e141e1u2f1j3f181c121b1e1d1c3f1p1e1b3c1d3e1l3d111f1o1e1i1e1h3d1i2c161e1c1f161e1s1d1l3c161e181e181c181c1u1e1h1e1a1e1a1e123b1e1e1a1e1i2f1c3d1f3c141e123g1d3e1c1e1e3e1l1e1d2e192f141d1f1c1e3c1d2f1i3f1a1e1g1d1e1e1i1f1h2e1s3e1j3e172d1c3f142f1e2e1c1c1h2d132e1t1g102c1u2e1j2c1q3g1f2e1s3e1u2c1u1e132e1r3g1b2c1s2c1m2c1q2g1u2e1s3c1w2c1u1e181e1r2e1u3e1h2c1u2c182e1t1g1t2c1u3c1w2c1r3e1t2e1u2e1f2c1t2d1t2e1t2e1r2c1u2c1s2c1s3e102e1f2c1q2c1w3e1f2e1s1e1y2c1t3c1a2c1s1e162e1s3e1e2c1u2c1x2e1t3e152c1s2c102c1s2g102e1s1e1a1c102c1r3e1v2e1x121g1p2k1f2j2s2c1r1c1j2f141', 'ba1e92925333y351w391g27222o1b3x3e1d3o02111o272z2q2o272e2o2o2y253a1e25211i2e29381c2x3u1z211o380y1z213b233x2z2b381c2x3s11311o21162v312p11203a251s27332e16212x232e1y3u291z113a251s25353e1621261y1211161z153x3b2q1721361u3u2t213p113w242e153x3b2o192136121z1o25113w26113w28113u28113w2q2z2b233x2e29233x2b233v27203b3x2c11112435143q02322e293y141o2e1b3q01312m2211311o211z113u29112z1f3b3x2e181y12322x3u2u353e121z1e1o11153v29231v322o14252722332e1828352z1f1g1a2e1421281y111011323u291z121o3u370z21243516332h1s3f1q1e1m1f1f1e1o3f1l2g1s3d1h3g183g1i2g1k1e1j2d1g3e1s3f1i2e1v3e112c1w2g1y2e1r2e102e1u3d1m2e1s2e162e1u3e1t2c1w2e1q2e1r1e1i2e1w2c162e1u2e1x2e1u2e1d2c1w2g1e2e1r3g1l2e1u2c1w2e1s1g122e1w2g1t2c1u2e1z2e1s2e1i2e1w3c1v2e1u2g1u2e1v3e1v2c1w2g1g2e1r2e1z2e1w2d102e1u2e162e1u2g1z2c1w2g1b2e1q1f182e1w3e1x2e1s3f172e1u3f1b2c1u1f182e1q3f112e1u2d1b2e1s3e1g2e1u2f192c1w3f142e1q2f192e1v3d1q2e1s2f172e1w3f162c1u3f192e1s3e1e2e1u2d192e1u3f1b2e1u3f192c1v3f1f2e1q1f192e1u3e1d2e1s2f152e1v3f112c1u3f162e1s3g1c2e1u2d1a2e1u3g1t2e1u3f192c1u3f192e1q3f1w2e1u2c1w2e1f1e1f3f1i1g1i3e1w1f142g1q2g1f1e1k3e141f143f1e2e1i1e1u1e1s3g1f1e1h3e1e2f1d3e1l2f181g101e1b1f1e1e1i3f1g2e1d3f1u3f1m3c1q1e1i1g1f1f1e1e1j3c1d1f1k1g163f1e3e1c1e1i3g141f1f1e141e1c1c1c1e1a1e183f1r1g1u1d1d1f1b1f1k3f1e1f1i1e1f1f1m3e102e161f121c1e3f1f1g1i1f1v2g1u1c1f1f1a3g1q1e1u3e1i3d1g3g141f1g1g1u1f1i3c1w1f1h1f1a1e1e1f1m3c143g1f1f1e1g1t3g122c1u2e1m2e1r1e1y2e1u1c1c2e1u2e1h2e1t1e112c1v2f1r2e1q3f1u2e1v1e1w2e1t2g1q2e1w1g1e1c1s2e1u1g1b2e1v3g1l2c1v1e1q2e1r3e182e1w2e1v2e1s2g1x2e1u3e1k2c1w2g1e2e1s3f1w2e1v2d1w2e1r2e1u2e1v2e182c1v2g1x2e1s2g102e1w2c1s2e1t2f122e1w2f102c1t2f1w2e1s2e162e1w2c162e1t2e1d2e102f182c1u2f1h192d1m143g1h2d183g1t3e183e1u3g1c1e1i3e1l1e1j1e1h2e1a1b1g3f162e1s2g1t2e1w2d1r2e1u3g1v2e1s2g162c1u2g102e1r2g1z2e1u2c1s2e1u2g1t2e1t2e1x2c1t2e1x2e1q3f1w2e1w3c1q2e1u3g1f2e1s2e112c1s2e1g2e1q2e1i2e1u3c1z2e1w1e1t2e1u1f1t2c1t1e1i2e1q1f1x2e1v2c1m2e1w1g1t2e1t2e172c1u2e102e1q3e1e2e1w2c1r2e1u1f142e1u3e1i2c1s3f1b2e1s3g162e1u3d172e1u3f1c2e1s1f1b2c1s3f1x2e1q3f192e1u3c182e1u3f172e1u3g1d2c1s3f1a2e1q3f182e1u3d192e1w3f1t2e1s3f1a2c1s3e1e2e1q3f192e1v3e1d2e1u3f172e1s3g1m2c1s1f192e1s3g1c2e1u1d192e1w3e1o2e1s1f192c1t3e1k2e1q1f172e1u3d1e2e1u3f152e1s2e112c1s1e1m1e161f1k1g1l1e1f3e1k3f1k3g1r3d1e3e1f1f1d3g1f3g133g1q1c1i1f1j3f1e1e181e1e2d161g1e1f1h3e1d1e1i3d141g1j3g171f1f3f1u1e1m3e1e1e1b3f1s2g1r1c1b3e1e3f1a1e1m1g1e2e1j3g1f3e1q1f1m1g1r1e1m1g1r1g1d1g1k3g1a1c181e162f1b3g1d1e1r3c1f1f1i1f122g1f2e1i1c1d3g1e3f1d3e1i3e141c161g1m3f1f2e1s1g1s3d1f3g1a3g1i1g151g1m1c1f1e1f3f1q3e1f3f1u2e1l3e1f1e1u2e1k2e1v3e1x2e1v2g1s2e1s2f122c1t2e1w2e1s2g1x2e1u2d182e1u3g132e1u3e1s2c1u2e1q2e1s2g1j2e1t3c1s1f1d2e1s2g1q2e1u2e1u2e1w1f1w2e1s1f1t2c1u2e1u2e1q1e1t2e1u3c1k2e1v2e142e1t1e1c2c1f2e1y2e1p3f1v2e1w2e1f2e1t1f1p2e1t1g102c1u3e1a2e1q2g1c2e1w2d1a2e1v3e1w2e1u2e1y2c1t1g1z2e1v3e143f1w2c191e192h1q1f1g3g1c1c1k3e1m1g1j1f1m1e1d3c1i1f1g1f1g2e1j1g1b2c172e1u1e1o2e1v2e152c1u1e1l2e1s3g1h2e1u1c1g2e1s3g1g2e1w2f1x2c1v2g1j2e1u2g1v2e1u2e112e1s2e1c2e1w1e1x2c1w2e1h2e1s1e1w2e1s2c1y2e1t2e102e1w2e1z2c1v2f1u2e1s1e172e1t2e102e1u2e152e1v3g1u2c1w2e1k2e1u1e112e1u1c1z2e1s2f1w2e1v3e1t2c1u2f172e1t3e112e1s3d1a2e1s3e1b2e1u3f192c1w3g1d2e1s3f1a2e1s3d1f2e1s2f172e1v3f1z2c1u1f172e1s3e1m2e1s3d192e1s3f162e1u1f192c1u3f152e1s3f1a2e1s3d1x2e1s2f192e1u3g1g2c1u2f192e1s3f1d2e1s3d192e1s3e1q2e1u1f192c1w3f1t2e1s3f1a2e1u3e102e1s3f172e1u3f192c1u3f172e1s2e1w2e1s2e1h1e123g193f1s1e1m3d1t3d1d3f1c3e1d2e1m3c102f1k3g1c3e1e1g1m3c1f1e183f133g1j2e1b1d1m1g1f1e1g2e1u2g1c3e1e1e1j3e1d1f1d1g1j3d1a1e122e193f1e1g1g3d1i2e1f3f1s1f1m1e1l1c1k1g1h1f1c2f1m3g1k1e1m3g1k3f1c3f1e1g1j3e1j3g141e1c1g1h3f1s3c1f1e1f1e1i2f141g143e1e2f1b1f1h3d1u2f1s1d1h3e1d2f143f1q1g1a1e1k3e1j1e1c1g1e1e1x3c142e191f1s1f1d1f1w1e1u2g1f3e1u2e1w2g1k2c1u2e1t2e1s2g182e1u1c112e1t1e1h2e1v2e152c1t2f1r2e1r1e1v2e1s2d122e1s3g1h2e1h2e1s2d1e2e1s2g1s2e1v2g1f2c1v2e162e1u2f182e1u3e1x2e1t2g1z2e1u1g1u2c1w2g1u2e1u2f102e1s1c1y2e1t3e172e1w2e1j2c1w1g152e1u2e1l2e1s2c102e1u3e1t2e1w2f1a2c1u2g1y2e1t2e1y2e1t3d1h2e1k2f1v2e162f1s2c1j141j1t1j1q1s2t1g1i1m1v141o', '336b7d74845a82ccad113b4711983f26'));
        return a
    }

Но не страшно. Копируем весь этот код, начиная от "eval".
Открываем https://lelinhtinh.github.io/de4js/
Ставим там переключатель на "Eval" и вставляем в зону текста. На выходе получаем опять eval. Не волнуйтесь, декодирование прошло, просто он раскодировал текст, который содержит очередной eval. Это видно по символу ; в начале кода.
Копируем получившийся код (у результата в верхнем правом углу для этого есть иконка) и вставляем опять в зону текста.
Получаем ещё один eval и повторяем эту процедуру до тех пор, пока не увидим следующий код:

if (exist(window["sdx57dxck"])) {
    var y = x.split(v.file3_separator);
    var a = "";
    if (y.length == 3) {
        try {
            a = JSON.parse(CryptoJS.AES.decrypt('{"ct":"' + y[0].substr(2) + '","iv":"' + y[1] + '","s":"' + y[2] + '"}', sdx57dxck("1b1@lpN"), {
                format: CryptoJSAesJson
            }).toString(CryptoJS.enc.Utf8));
        } catch (e) {}
    };
}

Ага! Вот оно: sdx57dxck("1b1@lpN")
Но где-же взять объект sdx57dxck?
А как и в прошлой версии, определяется этот объект в другом скрипте: baron.js.

Но тот скрипт тоже обфусцирован не по-детски. Но кто ж нас остановит?
Пытался статический анализ его сделать, но плюнул и сделал иначе.
Открыл страницу просмотра в браузере: https://miyagi.allohastream.com/?kp=817 … p;season=2
Нашёл baron.js в Sources, отформатировал и поставил брекпоинт на строчку

b[_0x7b85[298]] = x._createHelper(_)

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

(function anonymous(
) {
debugger
})

Выходим из функции выше Shift F11
В этот момент смотрим, в какой функции мы находимся и видим, что ловушка в вызове функции b, которая вызывается сама из себя (рекурсия).

function cDpVj(c) {
    function d(e) {
        if (typeof e === b('\x30\x78\x31\x31', '\x63\x28\x63\x6a')) {
            return function(f) {}
            [b('\x30\x78\x31\x38', '\x47\x51\x78\x50')](b('\x30\x78\x63', '\x65\x54\x68\x6f'))[b('\x30\x78\x65', '\x4e\x4d\x5d\x57')](b('\x30\x78\x33\x66', '\x47\x51\x78\x50'))
        } else {
            if (('' + e / e)[b('\x30\x78\x32\x37', '\x6e\x6f\x6e\x77')] !== 0x1 || e % 0x14 === 0x0) {
                (function() {
                    return !![]
                }
                [b('\x30\x78\x62', '\x75\x6e\x68\x25')](b('\x30\x78\x32\x33', '\x36\x49\x53\x70') + b('\x30\x78\x32\x63', '\x5d\x29\x5b\x68'))[b('\x30\x78\x32\x39', '\x6e\x6f\x6e\x77')](b('\x30\x78\x33\x34', '\x59\x23\x73\x71')))
            } else {
                (function() {
                    return ![]
                }
                [b('\x30\x78\x34', '\x65\x54\x68\x6f')](b('\x30\x78\x31\x61', '\x40\x23\x4a\x51') + b('\x30\x78\x33\x63', '\x6f\x52\x78\x39'))[b('\x30\x78\x36', '\x2a\x5a\x39\x44')](b('\x30\x78\x31\x66', '\x6d\x37\x47\x71')))
            }
        }
        d(++e)
    }

Ну что ж. Мы на паузе, идём в консоль и переопределяем функцию d, вставляем следующий код:

d = function (e) {return false;}

И запускаем исполнение дальше F8. Так в функцию d мы попадём раза 4. И всё это время нужно переопределять эту функцию как выше. Но в итоге всё равно выйдем из этого кода дальше и наконец-то попадёт на точку останова - строку
b[_0x7b85[298]] = x._createHelper(_)
Это значит, что код уже нужный отработался и создались нужные объекты.

В консоли набираем:
sdx57dxck("1b1@lpN")
и получаем значение ключа шифрования для текущей версии:
"t4^h2#oumt0L2IQKjl%1b1@lpN%tm!rW5BSSAGoh2E#P1pZCpF"

Sony Bravia KDL-32CX523
Спасибо сказали: ruslachka, Spell, smsbox33

18

Re: pope.allohalive.com

Здесь тоже теперь всё поменялось. Предыдущие советы по поиску уже не актуальны.

Идём на https://lelinhtinh.github.io/de4js/
Ставим переключатель на Eval и вставляем весь код скрипта playerjs-alloha-new.js, который можно открыть по ссылке из html страницы с плеером.

В коде плеера теперь есть свойство fd с массивом пары имён функций декодировщиков.

fd: ["rBQsrhHR", "yRasKAQH"]


Они там рядом. Копируем тело второй функции, вида

+ открыть спойлер
eval(function (w, i, s, e) {
                var lIll = 0;
                var ll1I = 0;
                var Il1l = 0;
                var ll1l = [];
                var l1lI = [];
                while (true) {
                    if (lIll < 5) l1lI.push(w.charAt(lIll));
                    else if (lIll < w.length) ll1l.push(w.charAt(lIll));
                    lIll++;
                    if (ll1I < 5) l1lI.push(i.charAt(ll1I));
                    else if (ll1I < i.length) ll1l.push(i.charAt(ll1I));
                    ll1I++;
                    if (Il1l < 5) l1lI.push(s.charAt(Il1l));
                    else if (Il1l < s.length) ll1l.push(s.charAt(Il1l));
                    Il1l++;
                    if (w.length + i.length + s.length + e.length == ll1l.length + l1lI.length + e.length) break
                }
                var lI1l = ll1l.join('');
                var I1lI = l1lI.join('');
                ll1I = 0;
                var l1ll = [];
                for (lIll = 0; lIll < ll1l.length; lIll += 2) {
                    var ll11 = -1;
                    if (I1lI.charCodeAt(ll1I) % 2) ll11 = 1;
                    l1ll.push(String.fromCharCode(parseInt(lI1l.substr(lIll, 2), 36) - ll11));
                    ll1I++;
                    if (ll1I >= l1lI.length) ll1I = 0
                }
                return l1ll.join('')
            }('986041s2z2a27313716263o0z3z1m272z2o193v2e1b3o0z1z2m3o0z302k3x2s35242t222n1z3038251q25332z162z2v232z1c2s271z1z3a231q2533211420361w1110141z133x292o172z261s3s2t2z2p1z3u242c153v292o1721241z101m252c1g3c2938162v3s10111m260w101139213v2z2b36162v3s121z1m3c162v39213v29233v39213v2b213v1z1z2u271z302s291s2s271p2q1g25302o2e1x2112193x1z1z302235142z2o193x1z1i1t33211b203n2c113u2m2z1o1g252z1o1m251z1q253r192z24142c1e2c29361a3y29321v3u2u3o3s37202b3p35302719142z141z121m233c1o111z3u242c1d35383v1z1z21121g1j2v183d1i1e1j1d1h3c181e1t3c1a1e1b3d123e1p3g1k1c1u1e121d152c1t2e102c1s2c1z2c1r2d1u2e1s1c132c1t2e1w2c1u2e152c1r3e1u2c1s2c1k2e1u1c1x2c1u1c1v2c1s2f1w2c1r2c1t2c1q2d172e1t2c1s2c1s2c1c2c1u2g1t2c1s2d1r2c1q3e1x2e1s2e122c1u2e1w2c1t2g1z2c1q1c1s2c1q2e1v2e1t2c1t2c1t2c1t2c1s3f1w2c1s2c1q2c1q3e1h2e1s2d172c1s3d1y2c1s2f182c1q3d1h2c1q1d172e1s3e1y2c1s3d152c1u3f1u2c1q3d192c1q3d1t2e1s2d152c1u3d1t2c1s3f192c1r3c1c2c1q3d182e1u3d1w2c1s3d172c1u3f182c1q1d192c1s3d1b2e1s3d152c1s3e1p2c1s2f192c1q3d1c2c1q3d192e1s3e1u2c1s1d152c1s3f192c1q3d172c1q3d1b2e1s2c1s2c1s1c1d1c1b1f1e3e1a1c1i1d1k3d1r3d1c3d1d3d1i2d103d1o2f1c2e1k1c1b3c1d3d1c3f1p1e1d1e1q3e1d1c1c1f1c3c1b1d161e1q1d1b1f1c3d1d3e1g3d1e2c1c1e1d3c1d1e1m3c1d1c183f133e1f2c1b2d1i1d1d3e1g3e1h3e1j1e1h1e143f1e3e1k1e1m1e1g1e1b2e1c1e1f3b1d2d1a1c1s2g1c3d1d3d121c1d3d1c3e1p3e1j3c1d3e161d1d3e123c191d191d1d1d1d1f1j1e1d2c1l2c1d1c1c1e1d3d1d1c181b1d1e1h1e102c1s1e1f2c1p1c1p2e1t1e1w2c1u3c142c1s2g1c2c1s2d1t2c1q3d1j2e1t3d1p2c1u2c1j2c1s3g1p2c1s2d1f2c1r2c1r2e1t2d1w2c1u2d1v2c1u2g1p2c1s2c1c2c1r1c1u2e1s1e1w2c1s3e1c2c1r1g1i2c1s1e1t2c1s3c1w2e1t2d1p2c1u3e132c1u2e1d2c1r3c1m2c1q2e1r2e1t3e1j2c1u3d1a2c1t3f1r2c1s1d1u2c1q2e1w2e1r3c132c1u2c1s2c1s2e1v2c1s1e1u2c1q3c182e1t1e1p2c1t2e1r2c1s2g1r2c1s1c1z2c1s3c1r2e1t1c1a2c1u2c1c2c1u2e1s2c1s3e152c1q2e1e2e1s3c1d2c1t2e132c1t2f1f2c1q2e152c1p2d152e1u2c1b2c1t2d1d2c1t2g1h2c1q2c1e2c1s2d1t2e1t2e1p2c1s2e1v2c1s2g182c1r2e1v2c1p1e1t2e1r2e1h2c1t2e1k2c1t3g152c1q2d1h2c1q1e1c2e1r2d142c1u3e1p2c1s2g1y2c1d2c1s2c1q2c1s1g182c1s1c1z2c1r1c1h2e1t2c1y2c1r2d1r2c1t3f192c1q3e1b2c1s1c1y2e1u1d1t2c1t2c1v2c1s2e1p2c1s2c1v2c1r3c1r2e1t3c1w2c1u2d1u2c1t2g1x2c1q3c1r2c1r1d1w2e1r1e1q2c1t2d1f2c1u2f1j2c1s1e1x2c1s1c1w2e1t2d1p2c1s2e1a2c1u1g1h2c1r3d1d2c1s3d152e1s1e1o2c1u2d1f2c1u1e102c1r3e102c1r1c1x2e1s3d1q2c1u3c1w2c1s3e1x2c1s2d1y2c1q1e1y2e1u2d1s2c1u2c1p2c1u2e1z2c1p2e1l2c1r1d1r2e1s1c1j2c1t1c152c1u3g1y2c1s3c1d2c1s3d1y2e1s1e1q2c1u1d132c1r1g1x2c1q2c1x2c1q1d1s2e1t2e1h2c1t1c1c2c1s3e1f2c1q3e1d2c1p2e1k2e1t1e1h2c1s2e1i2c1u2g1o2c1r1e102c1s1e1j2e1u1e1o2c1s2d1f2c1s2e1z2c1p3e172c1s2c1u2e1t2d1p2c1s1c1p2e1q2e1t2e1d2c1t2c142c1u2f162c1s3e1v2c1r2e1x2e1t2e1c2c1t1d1c2c1r3e1r2c1r3c1h2c1r3e1t2e1s2e1r2c1r2c1r2c1s2e1o2c1s2d1h2c1p3c1v2e1t2e1k2c1s2c1j2c1u2g1z2c1r2e102c1r1e1v2e1u3c142c1u2d1s2c1r1e1t2c1s2d1d2c1q3c142e1r1c1t2c1s2c142c1t2e1y2c1q3e1t2c1p3c1v2e1s2c1c2c1u2e1w2c1s2f1j2c1q2d192c1q1c1k2e1s1e152c1u3c1r2c1u1e1p2c1r1c1f2c1p1c1k2e1u2c1b2c1s2e1p2c1t3g152c1r3e1h2c1s2e1t2e1s2d1u2c1s3c1f2c1t1e1t2c1q3e1r2c1q2d152e1u1e1k2c1s2d1u2c1s3g1r2c1q2d1l2c1r2e102e1t3d1h2c1s2e1w2c1r1g1b2c1s2e1k2c1s1e1r2e1s2d1d2c1t2e1c2c1t2f1w2c1p1c1m2c1q3e1z2e1t3c1p2c1t3e1b2c1s1e1y2c1p1d152c1s2c1k3e1x2c132c1t3c1f121k223c141c1i3g1e2e1c3d142c1g3d181g1e1d1q1e1j1c103e1a1e1p3e142c1u2e1p2c1q2e1x2c1u2c1g2c1s3c1r2e1s2e1w2c1t2c1r2c1s2g1e2c1t2c1x2c1s2d1w2e1s2c182c1s2e1v2c1s2g192c1s1d162c1q2c1x2e1q1e1g2c1u1c1s2c1r2e1i2c1u2c162c1q2e1k2e1q1d192c1u2e1k2c1s2g1v2c1s2e1y2c1q3d1y2e1q2c1w2c1s1d1i2c1p2g1t2c1t3e1g2c1q1d172e1s3d182c1s3d172c1r3g142c1s3d172c1s3d1a2e1q2d172c1u3e1e2c1q3f172c1u3d1d2c1q3d162e1s3e1b2c1s3d152c1q3f152c1s2d172c1s3c182e1q3d182c1s3e182c1q3f162c1s3d1a2c1q1d152e1r3d1b2c1s3d172c1q3f132c1s2d172c1s3e1u2e1q1d172c1s3d1c2c1q1f152c1s3c1z2c1q2c1u2e1i1c123d1l1e1i1d121g101d141e1s2e1d3d121g1y3d1i1d1d3c1b1d141g1d1d1b1d1q3d1d3e1e3f1e3c1d1c1f1c1d1e1k3e1d1c183e133e1f2c192f1i3d1c1c1g2c1q1e1h3g1b3c1j3c1f1d193e1h1f161c122c191d191d192f191d1b3c181c1b3d163f133c1i1e1s3d1d1e1d1g1d1c1c3c1b3c171d1p1g1q3e123c1u1e123d1d3f151d1h1e1s2e1h2e1k1e183e181e1m3e1b1c1f1e1d1c1g2c1f3e1f2c1g2g1d3d1f2c1t1d1r2c1s2e1d2c1u3c1s2c1s3e1u2e1q3c172c1u2c1r2c1r2f1a2c1s3e1f2c1r2c1f2e1s2c1s2c1t2d1o2c1r2e1b2c1s3e1y2c1p2e1s2e1s3e1s2c1u1e1j2c1r2g1v2c1t1d1k2c1r2c1e2e1r1d1b2c1t2c1s2c1r2g1u2c1r2d1z2c1q3c1w2e1r2c1u2c1s1e1d2c1s3g1s2c1s2c102c1r2c1v2e1q2e1y2c1t1e1q2c1r3g1p2c1t1e1f2c1q1e1u2e1q2d152c1s2c1p2c1r1e132c1s2e1k2c1p2c1u2e1q2e1s2c1s1c1b2c1q3g1c2c1r2d1h2c1q2c1s2e1p3c1j2c1t2c1i2c1q2e1d2c1u3e1s2c1r2e1p2e1q3c1d2c1t3d132c1q3f1w2c1s2d1f2c1q2e1d2e1q2e1r2c1r2e1s2c1s3f1u2c1u2e1r2c1r3c1a2e1r2d1u2c1s2e1i2c1r3f1c2c1s2c1h2c1q1e182e1s3e1w2c1r2c1c2c1r3g1k2c1t2d1k2c1s2e122e1q2c152c1t2e1i3d1p2e1r1c1y2c1s1c182c1s2e1h2c1r1c1x2c1r2d1r2e1q2e1t2c1s3d1a2c1q3g1i2c1s2c1u2c1q1e1a2e1r1e192c1u2e1c2c1r2g132c1s1c1s2c1r3c1s2e1r1e1r2c1s3e1d2c1s2g1e2c1t1e1h2c1s1e122e1r2e152c1u2e1s2c1q3e1r2c1s3e1q2c1q2c1h2e1q2c152c1t1e1t2c1r1g1r2c1u3d1f2c1q1e1s2e1r2e1y2c1s2e1r2c1q2g1d2c1s3c152c1q2d142e1r1d1u2c1s3c1r2c1s3g182c1t2c1w2c1q2e1f2e1s3c1s2c1s2e152c1r1e1w2c1t2e172c1r2e1d2e1s1d1z2c1s3c152c1s1g1h2c1t1c1d2c1r2e1f2e1q1d1r2c1s1c152c1r3f1u2c1t2c1s2c1r2e1t2e1s2c182c1u1c1r2c1p3g192c1r3e1e2c1r2c1c2e1s2e1t2c1u3e1b2c1r1g1v2c1r1c1d2c1q3e1r2e1q3d192c1u2e152c1q2f1u2c1t3c1r2c1q2d1y2e1t2c1t2e1j2c1r1c1o2e1r2c162c1u2e1r2c1q2g1v2c1s3c102c1q3d1g2e1r3d182c1t2c1o2c1s2e1w2c1t1e1m2c1q3c1x2e1q2c1f2c1t1c1r2c1s2g1d2c1t1e182c1s2c1d2e1r1c1s2c1t3e1a2c1r1f1q2c1s1e1y2c1s1c1u2e1s2c1r2c1u3d1q2c1q3e1s2c1s1e1w2c1q1e1p2e1r3d1j2c1u3d182c1s1e1r2c1t1e1s2c1p1d132e1r1d1v2c1u1c1q2c1s2e132c1r2e1r2c1s2d152e1r2d1s2c1u1e1k2c1s3e1t2c1s2c152c1r2c1f2e1r1e1y2c1s3d1h2c1r1e1q2c1t2d152c1q1c1d2e1s2c1h2c1s2e1t2c1q1g1q2c1s1c1f2c1s1c1w2e1q2d152c1s1d1s2c1s2g1a2c1s2c1c2c1s2c1r2e1p2e1h2c1t3e1u2c1q1g1g2c1s1c1j2c1r3d1r2e1r1c1b2c1u3e1d2c1s3g1s2c1t3c1g2c1q2c1u2e1q3c152c1t2e1p2c1q2g1s2c1f2c182d1u2d173f1f171k1o1f1e3e1a1c1k3c1p1e1j1f1k1c1b3c1i1d1g1d1g2e1h1e192c172c1u1c1o2e1t2c132c1u1c1o2c1s3g1f2c1s2c1g2c1s3e1g2e1u2d1v2c1v2e1j2c1u2g1t2c1s3e112c1s2c1c2e1u1c1v2c1w2c1h2c1s1e1u2c1q2c1y2c1t2c102e1u2c1x2c1v2d1u2c1s1e152c1r2e102c1u2c152e1t3e1s2c1w2c1k2c1u1e1z2c1s1c1z2c1s3d1w2e1t2c1r2c1u2d172c1t3e1z2c1q3d1a2c1s3c1b2e1s3d172c1w3e1d2c1s3f182c1q3d1f2c1s2d172e1t3d1x2c1u1d172c1s3e1k2c1q3d192c1s3d162e1s1d172c1u3d152c1s3f182c1q3d1x2c1s3d192e1s3e1e2c1u2d192c1s3f1b2c1q1d192c1s3c1q2e1s1d172c1w3d1t2c1s3f182c1s3e102c1s3d172e1s3d172c1u3d172c1s2e1u2c1q2e1h1c123e193f1q1c1k3d1t3b1d3d1c3e1b2c1k3c102d1k3e1c3e1c1e1k3c1f1c183d133g1h2c192d1m1e1c1c1g2e1s2e1a3e1e1c1j3c1d1f1b1d1h3d1a1c122c193f1c1e1e3d1i2c1c3d1s1f1k1c1j1c1k1e1h1d1c2f1k3d1i1e1m3e1k3d1c3f1c1e1h1e1j3e141c1c1g1f3d1q3c1f1c1c1c1i2f121d121e1e2d1b1d1h3d1s2d1q2d1h3c1d2d143f1o1e181e1k3c1j1c1c1g1c1c1v1c142c191d1s1f1b1d1u1e1u2e1f3c172e1u2e1v2c1t2e1s2c1s2g1w2c1r2d1t2c1s2e1t2e1r3c1h2c1u1d1b2c1s3f1b2c1q1c1y2c1t3d1f2e1u2c1u2c1w3e1t2c1r2e1f2c1q1e1q2c1u2c102e1s3e1t2c1t1e1a2c1u2g1z2c1q3c1h2c1t1e1q2e1u3e1f2c1w2c1s2c1t2e152c1r2d1y2c1s3e1v2e1t2d1x2c1v3e1o2c1t3f1i2c1s3d1b2c1t2d1y2e1s3e1o2c1v3e1d2c1u2f1y2c1r2c1w2c1s2c152e1t2e1h2c1u2d152c1t2g1w2c1r1c1w2c1s3c1y2e1s2e132c1t1c1x2c1r2g1u2c1r3c1j2c1t1c1t2e1s2d132c1v3c152c1u2f1r2c1s2c1x2c1t2c1c2e1s1c1y2c1v1c1u2c1u2e162c1r2c1f2c1u1c1p2e1t1c1p2c1w2e1c2c1t2e1d2c1p3c1t2c1t1c1j2e1t1c1q2c1t2e1r2c1s2e1g2c1q2c122c1t1d1h2e1s3e1t2c1v1e1y2c1t2g1y2c1p2d182c1r2c1b2e1f2c1s3c172c1u3e1s2e1s3e1s2c1u3e1t2c1s2e102c1q2e1f2c1s3d1c2e1t2d182c1w2e1a2c1u2g1p2c1s2c1t2c1s3c1b2e1u3e1j2c1v2d1f2c1u1f1u2c1s2c1u2c1u2e1t2e1s1d1y2c1u2e1d2c1s1g1h2c1r2c102c1u2c1t2e1u3e1r2c1v3e152c1t3e1x2c1s2e1x2c1s2e1y2e1t2d162c1v2c152c1s2g1b2c1s2c102c1r2e1z2e1r2d132c1w2e1u2c1s1f1e2c1q2d1s2c1t1d172e1t1c1t2c1u2e1z2c1t1e102c1q1c172c1r2e1f2e1r2e1r2c1v2e1v2c1u3g182c1q2e1j2c1s2d1v2e1s2d1p2c1v2c1j2c1s2g1h2c1s3e1x2c1s2e152e1s3c1a2c1v2e1d2c1t2e1q2c1q1e1d2c1u1d1u2e1t2d1s2c1v1e1f2c1r3g142c1r3e1j2c1r3e1d2e1r3e1v2c1v2e1w2c1t2g172c1q3c1h2c1u2e1w2e1s3d1s2c1u3e1o2c1t3g1t2c1r1c1w2c1x2c1u2e1y2c1s1c1h2c1u2c1j2e1r3d1u2c1u3c1c2c1t2e1d2c1q3e1d2c1s2d1y2e1u2d1y2c1v2d1h2c1u3g1q2c1q2c1r2c1s2c142e1s2c1i2c1w1c1s2c1s2e1b2c1s2c172c1u2c1g2e1t1c152c1v2e1t2c1t2f1f2c1s1c1w2c1s3e1z2e1u3e152c1u3c182c1u2g1h2c1q2c102c1t2e1v2e1s3d1p2c1w1c1s2c1t2g1j2c1q2e1w2c1s3c1p2e1u2c1u2c1u1e1o2c1t3g142c1s2d172c1u1e102e1s2e1c2c1u2e1p2c1u1g1r2c1q2e1e2c1s2d1r2e1t2d1d2c1w2c1w2c1s3e1y2c1q3d1x2c1r3e1u2e1s3d1u2c1v2c1s2c1u3g1u2c1q3c1f2c1s2d1w2e1s3e1u2c1v2e1r2c1u2f1f2c1r2c1j2c1s2e1q2e1r2e1o2c1v2e192c1u3g1p2c1p2e1x2c1t1e1k2e1u1e1y2c1v3c1r2c1s2f162c1s1d1u2c1s3e1s2e1s2e1s2c1v2e1d1d103e142c1t3d1h321h1i1s2k2j2g1d2c1v2p2k141', 'f4324o3o1t3q221c271s393v211b3o0z101o252z3o193x2c1i193v111i1a2z173u3w1z3z1411133v392o1920341s3s2v203n1z3u262c133v392q1730341z311m233c1g3e29361w2v3u1z101m260y1z1029213x2z39361w2x3s1z101m3e162t2z2n112038231q27333c142z2x233c162s291z1z38231s25333c1421261w1a2s291w3s27163u271s3s271q2c1z3u26111z3u261z3w243s3m3o011z3z393w141m252c2o111x21121z121m253c2o2o35303o1z312z39213v3226143o0z1e1c2t2c292q122s1z101f2z1o1z2z3a23353u253w253r1336231z1z3837112z141h1z1e1m3c162t312p3c29213x2z2o1g27332c393w121o121s1c1d2f1c1c1h1c142e1i1c1a2g1k1c1a3e1a1e131e1i1e1i1d1f2c1u1d1p2c1r3g1r2c1s2c1y2c1q2e1c2e1s1c1z2c1u3c1p2c1s2e122c1s2e1r2c1s1c1i2e1s3c1h2c1w2d1x2c1q3e1x2c1t1d1w2c1q1d1s2e1q2c1u2c1v3e1t2c1s2e1t2c1u2e1b2c1s1d1w2e1r2e1q2c1u2d1w2c1r2g1j2c1t1c1w2c1r2c1q2e1q3c1y2c1u3c172c1s2g1y2c1s3c192c1r3e1r2e1q2d172c1u3d1v2c1q3f152c1s3d1d2c1q2d172e1q3d1a2c1u1d172c1r3g142c1s3d1a2c1q3d1t2e1q2d172c1v3e1a2c1q3f162c1s3d162c1q3d172e1s3d1a2c1u3d162c1q3f1f2c1s3d1b2c1q3d1b2e1q3d172c1u3d1r2c1q3f172c1s3d182c1q3d152e1r3c1i2c1u2d152c1q3f172c1s3d192c1s2c1s2e1q2c1e1c1h1c1k1e1a1e1i2d1d3c1d2c121c101f123d1s3d1e1e1s1d1u2f1h2d183d141b1d3e1c3f1k1c1b3c1e3d1h3d111f1j1c1i1d1j3d1e2c161e1d2d161e1u1e1h3c1d1e1e3e141d1j3e173d1d3f1q1e1p3c1e1c1d3d1d3f1d3d1c3d1e3d1d1d192f1c3d1e3d1d1e1q3c1d1e121d1s1e1h3e1p3b1d3f1d1c1c3c1a1c1d2e192e1a1d1b3d1i2c1d2c1d1g1i1c1d3c1i1d1e2c1h1f1r2c1s1d1l3c1b3d161e1b3e1i3d1h1c1e2c1p3g1i2c1u1e1m2c1s3c1d2e1q1c182c1w2d1p2c1p2e1v2c1r3d1a2c1q3e172e1r1e1v2c1w3c1b2c1s2g1s2c1t1d1q2c1q2c1s2e1s3c1r2c1v2c1s2c1s2g1r2c1t1c1d2c1q2e1d2e1r3e102c1v1d1d2c1s2e1k2c1u2c112c1s3c1q2e1s2c172c1v3c1p2c1r2g122c1u2c1r2c1r2c172e1r2c162c1u3c172c1s2g1k2c1u1e1v2c1p2e132e1q1c1v2c1u2d1s2c1r2g1k2c1s2d172c1p1e1b2e1s1c1s2c1w3c1r2c1r2g1d2c1u2d102c1q1e1g2e1s2c1v2c1u1e1y2c1q2g132c1s3e1y2c1q2c1a2e1r1c1s2c1u3e1p2c1q1f1u2c1t1c1z2c1q3e1u2e1s3e1r2c1w1c1r2c1s3e1s2c1s2c1r2c1p1e1w2e1r1d1w2c1v1c1q2c1r3g1x2c1s2d1f2c1r1e1s2e1s1d1s2c1u2c132c1p2f1o2c1s2e1h2c1s2e1o2e1s2d1c2c1t1d1s2c1q3e1p3e1u2c1v1c1k2c1r1f1f2c1u2e1l2c1q3c1u2e1q1e1r2c1w1e172c1r1f172c1s2e1g2c1r2c1j2e1s2d1y2c1t2d1s2c1s2f1r2c1s2d1d2c1r3e122e1r1c1u2c1w2e1p2c1q2g152c1u2e1j2c1r2e1k2e1s3d1s2c1w2d1w2c1q3e1k2c1r3c1l2c1s3e1v2e1q1e1s2c1w1d1k2c1q2e122c1t2e102c1q1e1f2e1s1c1u2c1w2c1h2c1s2g132c1u3e1j2c1q1d152e1s2d1c2c1t3c132c1q1g1x2c1u3d1j2c1r3c1y2e1s1e1v2c1u2c1p2c1q2f1r2c1u2c1f2c1r3d1i2e1s2e1d2c1w1c1c2c1q3f182c1t1e102c1q3e1b2e1s1e1f2c1u1e1j2c1s3f1s2c1s1c1f2c1s3c1t2e1r1c1b2c1v2d182c1p2g1c2c1t1d1u2c1s2d1k2e1r2d1s2c1v1e1p2c1s2g1d2c1t3c1h2c1r1e1f2e1q3e1v2c1v2d1o2c1q2f142c1s2c1t2c1p3e1r2e1q2c1f3c1y2c1r3e1r2e1r2e1v2c1v2d1y2c1s2e132c1r3c1v2c1q2c1s2e1q3e1i2c1u3d162c1q3g162c1s3c1a2c1q3e1p2e1q2c1t2c1w3e1v2c1p3g1p2c1s2e112c1r3d1v2e1r1e1v2c1v1c1s2c1s1f1u2c1s1c1m2c1p3c162e1s2c1w2c1w3e1f2c1q3e1p2c1r1c102c1s1c1b2e1p1e1s2c1v1e1q2c1s3f142c1u2c112c1p3c1p2e1p2d1r2c1w2c1s2c1s1e1r2c1u2d1h2c1r2e1i2e1s1d1c2c1u2c1b2c1s2g1f2c1u2c1h2c1r1d1p2e1s3e1r2c1v2c122c1q2g152c1t2c1x2c1q2d1v2e1s3e152c1v2e1g2c1s2e152c1u1c1y2c1s2e1c2e1q2c1r2c1w3d1a2c1s1e1q2c1u3d1q2c1q1d132e1p1e1s2c1w3e1i2c1s1e1r2c1u2e1j2c1s1e1p2e1q1c1r2c1w3e1r2c1s3g1b2c1s1c102c1r3e132e1r2c152c1v3d1b2c1r3g1i2c1t2c1q2c172d1y2e1u3d162c192b1t123e1f2d183e1p3e183c1s3e1a1e1i3c1h1e1j1c1f2c181b1g3d122e1s2e1r2c1u2d1r2c1q3g1v2c1q2e142c1u2e1w2e1r2e1x2c1s1c1s2c1q2g1t2c1r2c1v2c1t2c1t2e1q3d1u2c1u2c1q2c1q3g1f2c1q2c1z2c1s2c1c2e1q1c1g2c1s3c1z2c1s1e1t2c1s1d1r2c1t1c1e2e1q1d1v2c1t2c1p2c1s1g1t2c1r2c152c1u2c1w2e1q3c1c2c1u2c1r2c1q1f142c1s3c1g2c1s3d172e1s3e142c1s3d172c1q3f1c2c1q2d192c1s3d1t2e1q3d172c1s3c182c1q3f172c1s3e1b2c1s3d162e1q3d162c1s2d192c1s3f1t2c1q3d182c1s3c1a2e1q3d172c1t3e1d2c1q3f172c1q3e1k2c1s1d152e1s3e1a2c1s3d192c1s3e1o2c1q1d172c1t3c1g2e1q3d152c1s3d1b2c1q3f152c1q2c1z2c1s1c1i1e163d1i1e1j1e1c3c1g3f1k3e1p3b1f2e1c1d193g1f3e111e1l1c1i1d1f3f1e3c161c1f1d161e1d1g1h3c1b1c1g3d141e1f3g173d1d3d1s1e1p3c1d1e1b3d1q2e1m1c1b3c1d3g1a1c1k1e1f1e1j3e1b3e1q1d1k1e1m1e1p1e1k1g1d3e1i1e181c181c122f1b3e1b1c1m3c1c1d1e1g121e1d2c1g3c1d3e1d3f1d3c1g1c121c161e1i3f1f2c1q2e1q3d1f3e163g1i1e131e1k1c1c1c1b3f1q3c1d3d1s2e1o3c1b1e1u2d1d2c1s1c1y2c1r3e162c1s1c142c1s2e1c2e1q2c1v2c1t3e1p2c1q3f1a2c1q3e1y2c1u2c1u2e1r1e1t2c1t3c1x2c1r3g122c1q3e1x2c1s3e172e1s1c1i2c1t2c1z2c1p2f1f2c1s1c1s2c1s1e1i2e1q1e1s2c1u1e1v2c1q2e1x2c1s3d102c1u1c1w2e1q2c1d2c1u2c1a2c1s2g1p2c1r1e1r2c1u3d1v2e1s3c1i2c1u3e1c2c1q2g1d2c1q2c1d2c1s2c1q2e1q2d1v2c1s1e1k2c1q2f1p2c1q1c1v2c1u2c1y2e1q1c1k2c1u2d1c2c1q2e1s2c1s2c1t2c1s2e132e1r2c1t2c1s1d1w2c1s1f142c1s2e1t2c1t1c132e1q3d182c1u1c102c1s3e1t2c1r2d1r2c1s3e1u2e1q2e1u2c1t2c152c1s3f1r2c1r1e172c1t1e1w2e1s1e1s2c1s1c1c2c1r1g1q2c1s2e1j2c1u1c1a2e1s1e1p2c1s3c152c1s1e1p2c1q3c1v2c1t2d1r2e1p2e1q2c152c1u3d1b2e1s2e1j2c1t2c1q2c1r2e1c2c1s2c1r2c1s3e1w2e1q3d172c1s1d192c1s2f1y2c1q3e1h2c1t2e1d2e1q2d1x2c1s2e1q2c1s2g1k2c1r3c182c1u3e1j2e1r2e1a2c1s2c1p2c1r3g1f2c1s2e1k2c1u3c1q2e1q3e1t2c1s1c192c1s2f122c1q3c1r2c1u2c1w2e1q1c1k2c1t3d1j2c1s3f182c1p1d1f2c1u3c1u2e1r2c1v2c1s1d1w2c1r3e1b2c1q3e1r2c1t2e1g2e1q2d152c1u3c142c1s2e1s2c1r3c1r2c1t2d132e1r2e1v2c1t1c1d2c1p3e1q2c1q2d1u2c1u2e1c2e1s1c152c1s2c1b2c1q3g1b2c1s1e1r2c1u3c1k2e1s2d1f2c1s2d172c1s3g1t2c1s2e1u2c1r2e1v2e1q2c1h2c1t1c1c2c1p1g1c2c1r1d1s2c1t1e1o2e1q2e1c2c1s2c1b2c1r1e1d2c1s2d1c2c1r3e152e1s2c1s2c1s2c1x2c1s2g152c1q3e1v2c1s1c1r1e1y2c1s1c1d2c1s2e1y2e1r3e1u2c1t1c1r2c1q2g152c1r1d182c1s3d192e1q2c1r2c1u2c1y2c1q1g1e2c1r2e1b2c1u2e1w2e1s2d1f2c1s3e1t2c1r3e1k2c1s1e1y2c1t2d1b2e1s1e152c1t2d1f2c1q1e1d2c1q2e1f2c1u3c1o2e1q2c1d2c1u3d152c1r2f1g2c1s2e1f2c1t2c152e1r2c142c1s1e1b2c1r3e1d2c1r2e1f2c1s1c1d2e1q3e1b2c1u3c1u2c1q2g1p2c1r1d1s2c1t2d1s2e1q2c1k2c1u2d152c1r2g1s2c1r2e1z2c1s2d1j2e1s2e152c1s1e1j2c1s1e1u2c1s3c1k2c1s2c1v2e1s2c1q2c1s1c1b2c1s3e1i2c1s2c1d2c1s3e1p2e1s1c1b2c1u3c1w2c1s1g1p2c1q3e1w2c1t1e1s2e1s2e132c1u1e1f2c1q2f1d2c1r3e1c2c1t1c1j2e1r3e122c1t2c152c1p2g142c1q2d1u2c1r2e1c2e1q2c1s2c1t3c1y2c1s2g1v2c1w2d1t2c153c121h1e1k1e1c1e1k2e141e1g3e1f1d1e3g141d1i1e1l1e1r2c1i2g1w2c1r1e1i2c1s1c1u2e1t3c1k2c1w2c142c1s2g1p2c1s1d1b2c1s2e1p2e1u2e1x2c1u2e1w2c1s3f102c1s2c1y2c1q1d1k2e1r2e1v2c1v3e1e2c1s2e1u2c1s1d1t2c1r3e1t2e1s3c1w2c1u2e1c2c1u1e1z2c1s3c1t2c1s2c142e1s2e1p2c1w1c1i2c1u3e1h2c1u2d112c1q3c1z2e1t1d1u2c1u1d152c1t3e162c1s3d1a2c1s3d182e1s1d172c1u3c192c1s3f172c1u3e1v2c1q1d192e1s3d1b2c1u3d152c1s3g162c1s1d1b2c1q3d1g2e1s3d172c1w3d122c1s3f192c1s3d112c1q1d192e1s3d1w2c1u3d172c1t3f1b2c1s3d192c1q3c1b2e1s3d182c1v3d172c1s1f172c1t3c1b2c1q3d172e1s3d192c1u2c1s2c1s2e1w1c1f1c143c141c1k3g1b1c143c141d122e1s3e1b1c1q3c1a3c1d1c1g3g141d1h3e1b1d1d3d1s1g1p3c1d1c1e3d1q2e1p1e1b3c1d3d1e1c1k1e1c2g1c3e1c1c1u1d1d3c1d2f161e1s1d1d1d1h3d1c1g1g3d1g2c1e1c1o3d1c3f1j3d183d162c181c1c3f1c3d183e1e1d1k3c121f141c1e1c1f3d1q3d1i1g1c1d1p1e1f1c121c1s3f1p3c183c1v1c1d1e1g1g1i3d171e1g1c1j1c1c1e1c2c1s1d1e3d1k1e1c3e1k1d1p3c141c1s3c1u2e1t2e1r2c1u2d1u2c1t2g1y2c1s2c1v2c1r3e1c2e1t3d1b2c1u1d1a2c1s2g1f2c1s2d182c1r3c1p2e1r3e142c1t2c1y2c1t2f1j2c1u2c1s2c1q1c142e1u2e1k2c1u3c1t2c1u3f152c1t3e1d2c1s2e102e1s1e1s2c1w3d1w2c1u2e1u2c1s2d192c1r2c1s2e1s1e102c1u2c142c1t2e102c1s2d1t2c1q1c102e1s1e142c1w1c1q2c1s2g1r2c1s3c1z2c1s3c1t2e1u2c1s2c1u2e1s2c1u2g1f2c1u1d172c1q3c1w2e1t1c1e2c1u3e1u2c1u2g162c1s2e1k2c1q3e1u2e1s2d1a2c1w1c1q2c1s1g1r2c1s2d1y2c1q3e1d2e1s3e1b2c1u3d1v2c1s1f1s2c1u1e1h2c1r1c1c2e1s3c1z2c1u1e1v2c1t3g1a2c1t3e1h2c1r2d1f2e1t3e1q2c1v2e1u2c1u1g1y2c1s1c1h2c1q2c152e1r2e1b2c1u3e1t2c1s1e1q2c1u2e1t2c1r1d1x3f152c1s2e172c1r3e182e1s2c152c1t2d1v2c1s3g1x2c1s1e1f2c1q3e1o2e1s1c1t2c1v2e1q2c1u1g1z2c1u1e192c1q1e172e1t2c1z2c1u2d1b2c1s3g1q2c1s1c1y2c1q1c1h2e1s1c1x2c1v1e1i2c1t2f1y2c1u2c1t2c1r2c192e1u3d102c1w1d132c1s2g1t2c1t2e1t2c1q2e1y2e1t2e1v2c1u3e1o2c1r1g1q2c1u1c1u2c1p1c1v2e1s1d1t2c1u2e1f2c1s3e1q2c1u3d1k2c1q2e1k2e1u2d1x2c1w3d1d2c1r1g1g2c1s2e1s2c1s2c1z2e1r2c1u2c1v2d182c1u2e1w2c1u3e1v2c1q2d1z2e1t2e1t2c1t2d1p2c1s1g152c1u3e1u2c1s2d172e1s3e1t2c1u2c1p2c1t2g1j2c1t2c1f2c1q2e1q2e1u1e1d2c1v2c1c2c1t2g192c1t1e1d2c1r2e102e1t1d1o2c1w2e1u2c1t2f142c1u3e1v2c1r2c102e1s3c142c1u3d1a2c1r3g1d1d1z2c1u2d1u2c1r2g1f2c1t2c1x2c1s2e1c2e1s2d162c1v2c1s2c1s3f172c1s3d1z2c1r3d1u2e1t2d1u2c1t2d1a2c1u2g1y2c1t2d1v2c1q3d1t2e1t1c1k2c1w1d1p2c1t2g1x2c1s2e1u2c1s1e1d2e1t3e1v2c1w2d1q2c1t2g1j2c1u2d1c2c1q3c172e1s3e1a2c1w1e1q2c1u2g1s2c1t3e1t2c1s3d1d2e1r2e1b2c1w2c1q2c1s3g1p2c1u3c192c1p2e1t2e1s3c1h2c1w1c132c1u3g1u2c1s3c1h2c1q1c1v2e1u3e1r2c1w2e1d2c1s2f1r2c1u1e1v2c1q3e1u2e1t2c1y2c1u3c132c1u2f152c1u2e102c1p2e152e1u1e1t2c1u2c132c1t2e152c1s3d1x2c1s3e142e1t1d1p2c1v2e1t2c1u2g1t2c1u2d1r2c1s2e1u2e1s1e1q2c1u2e162c1r3g1p2c1u2d1h2c1s2d1g2e1s1e152c1w2d1s2c1t2e1h2c1s2d192c1r1d1u2e1r2e1w2c1h2c153c1t3e193c12122l1k1r1q1o2f1q1f1t2s141m', '6ca032925333w351w391g25222o1b3x2c1d3o02111m272z2q2o252e2o2o2y233a1e25211g2e29381c2v3u1z211o260y1z213b213x2z2b381a2x3s11311m21162v312n11203a251q27332e162z2x232e1y2s291z113a231s25353e1421261y121z161z153x392q1721361s3u2t213p1z3w242e153v3b2o192124121z1o251z3w26113w26113u28113u2q2z2b233v2e29233x29233v2720393x2c11112235143q02202e293y141m2e1b3q012z2m2211311m211z113u27112z1f3b3v2e181y12202x3u2u352c121z1e1o1z153v29231t322o14252522332e1826352z1f1g182e1421281w111011322s291z121o3s370z21243316331f2f3d1q1e1m1f1d1e1o3f1j2e1s3d1h3g163g1i2g1i1c1j2d1g3e1q3f1i2e1t3c112c1w2g1w2e1r2e1y2c1u3d1m2e1q2e162e1s3c1t2c1w2e1o2e1r1e1g2c1w2c162e1s2e1x2e1s2c1d2c1w2g1c2e1r3g1j2c1u2c1w2e1q1g122e1u2e1t2c1u2e1x2e1s2e1g2c1w3c1v2e1s2g1u2e1t2c1v2c1w2g1e2e1r2e1x2c1w2d102e1s2e162e1s2e1z2c1w2g192e1q1f162c1w3e1x2e1q2f172e1s3d1b2c1u1f162e1q3f1z2c1u2d1b2e1q3e1g2e1s2d192c1w3f122e1q2f172c1v3d1q2e1q2f172e1u3d162c1u3f172e1s3e1c2c1u2d192e1s3f1b2e1s3d192c1v3f1d2e1q1f172c1u3e1d2e1q2f152e1t3d112c1u3f142e1s3g1a2c1u2d1a2e1s3g1t2e1s3d192c1u3g172e1q3f1u2c1u2c1w2e1d1e1f3f1g1e1i3e1w1g121g1q2g1d1c1k3d141g123f1e2e1g1c1u1e1s3g1d3e1h3e1f2d1d3d1l2f163f101e191d1e1e1i3f1e2e1d3f1s3d1m3c1q1e1g1f1f1f1c1c1j3c1d1f1i3f163f1f3c1c1d1i3g121f1f1e121c1c1c1c1e181e183f1m1e1u1d1d1f191f1k3f1f1d1i1e1f1g1k3e102e141d121c1e3f1d3f1i1f1t2e1u1c1f1f183g1q1e1s3c1i3d1g3g121f1g1g1s1d1i3c1w1g1f3f1a1e1f1d1m3c143g1d3f1e1g1y3e122c1v1e1d2e1r2f182c1u2d1k2e1q3f1w2e1r3c1t2c1u2g172e1q1f192c1u2c1h2e1s1e122e1t2c1u2c1v1e1k2e1s2f1x2c1v2c172e1r2f1s2e1u2e1v2c1v3e1e2e1s2g1y2c1v2c1a2e1q3g1f2e1t1c1s2c1w2e1q2e1s2e152c1u2c1y2e1s3e152e1r1e1x2c1w1f1o2e1q2e1x2c1v1e1w2e1q3e1a2e1t2e1v2c1w2f1d2e1q2g1w2c1w3e1j2e1s2e1r2e1s2c1u2c1v2g1s2e1q3g1j2c1w2c1f2e1s2e1a2e1r2e1w2c1u2f1w2e1s2e1m2c1v3c1q2e1r3f1k2e1u2c1r2c1u3e1a2e1s1f1x2c1v1c1d2e1r3f1a2e1u1d1f2c1t3e1h2e1q3e152c1w1c1e2e1s1e1i2e1s1c102c1u3f1t2e1r2g1d2c1w2d1h2e1r2e1b2e1u3c182c1v2f1q2e1r2e1i2c1v1e1h2e1q1f1s2e1t3e1w2c1u1f1r2e1s3g1r2c1u3c1y2e1s2e1f2e1s2c1c1d172e1s2g1f2e1s3e1h2c1u2g1q2e1q1g172c1t2e1f2e1q2e1g2e1s3d1d2c1u3f1t2e1r2e1q2c1w2e1q2e1r2g1r2e1s2c1t2c1v2g1q2e1q2g162c1w2d1j2e1r2g1u2e1u2d1z2c1u2g1r2e1q2g1s2c1u2e1c2e1r1e1u2e1s1c102c1v2f182e1r2f172c1u2e1l2e1r3e1d2e1t1e1v2c1v3g1o2e1s3f1d2c1v2e1j2e1r1e1v2e1s3c1t2c1u3e132e1r2f1h2c1w2c1v2e1s2g152e1s2d1h2c1w2f182e1r2e1a2c1u2e1h2e1q2f1p2e1u2c1z2c1u1g1w2e1q2g142c1v1c1y2e1s3g1d2e1t2d172c1u1g1j2e1s2g182c1v2c1h2e1r3g1d2e1s2e182c1w2f1d2e1r2e102c1w1c1j2e1s3e1r2e1u1e1r2c1w1f1f2e1s1f1w2c1u1c1r2e1q1g1h2e1t2d1v2c1v3g182e1s1g1h2c1u2d1d2e1q1f1r2e1s2c1w2c1v3e1t2e1s2f152c1u2c1u2e152e1q2e1a2c1v1e1v2e1s3e1s2e1t3c1t2c1w2g1d2e1p2f1v2c1u3d192e1q3f152e1t2e162c1v1e182e1s2g152c1u2d1r2e1s2e132e1t2e1d2c1u1e1t2e1s2g142c1v1c1f2e1q1g1d2e1u2d1l2c1v3g1h2e1r2g142c1v3e1s2e1q2g132e1u2d102c1u3f1b2e1q3g1l2c1v2e1l2e1r3f1e2e1u2d192c1v2g1p2e1s2g102c1v3e1t2e1s2g1w2e1t1e1f2c1w3e1v2e1s1e1v2c1u3c1e2e1r2e1w2e1s2e1v2c1v1f1p2e1q1e1h2c1w1c1a2e1r2g1p2e1t3d1v2c1v1g1p2e1p2e1y2c1v2e172e1q1e1r2e1t2c1t2c1v2g1b2e1q3g1y2c1v1e1y2e1q2e132e1t2e1h2c1v1e1c2e1s3e1d2c1u1c1f2e1q2e162e1s1d1j2c1u1g1o2e1s2g1m2c1v1d1j2e1r3g1c2e1s2d1c2c1u1f1k2e1s2f172c1v2c1t2e1p3f152e1u2c172c1v3e1p2e1s1e1w2c1w3c102f1u141o1l3g193f1o1e191c131e123e141g1g3f171e1e2e1k1e1x3g1g3g152c1t3e1v2e1u2e1t2e1u2e192c1u1f1y2e1r2g1q2c1s2d1y2e1t2g1j2e1t1c1u2c1t2e1s2e1q2e1y2c1s3c192e1u2g1y2e1s3c172c1t3g1z2e1q2e1w2c1u1c1l2e1t2e132e1s1c1l2c1s3g1f2e1s1e1e2c1s3e1g2e1u1f1v2e1t2e1j2c1u2g1t2e1s2g1z2c1s2c1c2e1u1e1v2e1u2c1h2c1s1f182e1s3f1a2c1s3d192e1s3f182e1s3d192c1u3f1o2e1q3f192c1t3c1d2e1s1f162e1u3e152c1s3f172e1r3f1d2c1s1d182e1u3g1y2e1s3d182c1s3f192e1q3f182c1s3c172e1s3f152e1s3c1d2c1s3f172e1q3g1l2c1s3d192e1u3g1d2e1s3d172c1s3f1j2e1q2f182c1u3d1e2e1s3f152e1s3d1b2c1s2e1z2e1q2e1k1c1h3c1f1f1e1e1f3d1f3d1f3c1b2e143e1y3d1d2e181d191f1c1g1e3f1g3c1f3d1f2f1k3e1j1e1i1d1h1e1c3e1h3e191f1k3d183d1f3e1a1g1e3f141e1h1c121f1w2f1h1f181c121b1d3g1e3g1k1e1b3c1f3e1j3g1e3f1c3g1e3d1e3c1f3f1c1g1i3g1k3d1w1e142e1e1e193e1d1e1h1d1m3e1y3g1d2g132c1a3d142f1c3e1e3e1i3c1f1c1s2f1p1e1a1g1b3d143e1d1g1i1g1i1g1h3c121e143e1a1g1p1g1b3c1e1c1u2e1u2e1h2e1u1e102c1u2e1j2e1q2e1y2c1u3c1r2e1u2f182e1s3e1d2c1t1f172e1s1g1t2c1t2d1d2e1u2g162e1u3d102c1u2e162e1r2g142c1s2e1h2e1t1f1x2e1s2e1v2c1t1e1h2e1q1f1m2c1s3e1i2e1u2e1i2e1r2e1y2c1s2e1d2e1s2e1j2c1u2d1v2e1t1e1u2e1r2c1r2c1t3f1f2e1s2e162c1t2e1c2e1t2e122e1u2d1r2c1u1e1t2e1p2g1v2c1s3c1x2e1t2e1j2e1s3c1v2c1t1e1j2e1q2g1q2c1s2d1f2e1t1e1w2e1t3e1v2c1s1e1y2e1s2f1x2c1u1e1t2e1u1e1b2e1u1d1f2c1s2e1x2e1p2g1m2c1u1c1e2e1s3g1d2e1u2e182c1s1e1r2e1s1e1e2c1r2e1r2e1s2g1u2e1t2c1a2c1t2e1f2e1r3f1f2c1t2e1k2e1t1g1h2e1t3e1f2c1s1e1r2e1r3e1d2c1u2e1e2e1u3f132e1r1e1j2c1s1e152e1s3g1r2c1t3e1q2e1s1e1v2f102c1u2d1r2e1s3f1v2e1u1d1w2c1t2e1z2e1q2e182c1s2d1c2e1s3g1d2e1s1c1z2c1s2e152e1q3e1u2c1t3d1v2e1s3f1w2e1r3c1y2c1s2g102e1r2g1a2c1r2c1q2e1s1g1t2e1t1c172c1s1g1t2e1q3e1a2c1u3e182e1t2f1f2e1u2c1y2c1s2f172e1s1g1s2c1t3e1d2e1s2e132e1t2c142c1s1g1i2e1r2g1a2c1t2c1u2e1r2e1k2e1u1e102c1u3g172e1q3g1y2c1s2e1w2e1u2g1c2e1s3c1q2c1s2g172e1p1g1v2c1s2e1y2e1r3e1d2e1r2c172c1s3f1v2e1s1e1y2c1s2c1d2e1s3e1s2e1u1e1e2c1u1e1b2e1s1f172c1s2c1r2e1u3f1q2e1u2c1e2c1t2g1r2e1r2g1x2c1s3e1y2e1t2g1j2e1s3e1f2c1u3f1h2e1r3f1d2c1u2d1q2e1s1e1p2e1s2e1l2c1t1e1s2e1s2f172c1s3e1v2e1t3e1p2e1s2d1y2c1s2f1a2e1s2g1f2c1h2c1t1e1d2e1q2g1w2c1t3c142e1u2f1e2e1r2d1t2c1u3e1f2e1q1f182c1s3c1w2e1u2e1r2e1s2c1m2c1u1f1r2e1s2e1u2c1u1e1v2e1u2g1c2e1t1e102c1s3g1b2e1q1e1u2c1t2e1i2e1r3g1p2e1t2c1j2c1t2e1w2e1s2g152c1t2d1x2e1t2f1b2e1s2d1w2c1u2g1w2e1p2g1v2c1t1e1s2e1s3f1b2e1t2e102c1t2g1u2e1p3g1k2c1u2d1c2e1s2e172e1s3e1y2c1s2f1g2e1q3e1s2c1t2e1v2e1t1e1p2e1s2e1v2c1u3g1s2e1q1g1r2c1u2e1q2e1u1e1b2e1u2c1h2c1s3f182e1q1f1w2c1s1c1y2e1t2f1d2e1t2c172c1t1f1r2e1s2f162c1s3c1d2e1t2f1a2e1r3e1l2c1u3e152e1s2g1f2c1s1e1r2e1s2e1e2e1t1e1t2c1t1f162e1q2g1j2c1r1e182e1s1g1r2e1s2d1r2c1s1e1y2e1r2g1r2c1u3d1y2e1r2e1c2e1r2c1x1c1y3f1z2e1q3f101c141k2f1i1e1i3e1w1g1h2f1b1e1l1d1b1d1h1f1b1e1j1e1w1e1q3c1u3f1c2e1s2e1k2c1u3c112e1s2e1v2e1w1d1t2c1v1e1e2e1s1f1z2c1v2c1r2e1s1g1v2e1v2c172c1w3e1w2e1s3e1g2c1w2c1t2e1q1f162e1u2c1w2c1u2g1i2e1t3e112c1w2e102e1r2e1y2e1u3d1m2c1u3e162e1s3e1t2c1w2c1s2e1r1e1g2e1w2c162c1w2e1x2e1s2e1d2c1w2e1g2e1r3g1j2e1u2d1a2c1u3e1d2e1s1f1b2c1u3e1d2e1q3f182e1v3c1b2c1u3f152e1s3e1j2c1u2d1a2e1s3e1d2e1u1d1b2c1u3e1f2e1s3f1a2c1w3d1b2e1q3f192e1u3c112c1u2f172e1s3f1d2c1u1d1b2e1q3g1c2e1u1d192c1v3g192e1s2f1a2c1u3d1a2e1q2f172e1v3c1l2c1u3f162e1s3f1b2c1u3d192e1q3f1t2e1u2c1w2c1h1e1d3d143g1h2d1a1e1e2g1d1e1i1g1r3d101e1e3e1d1g1c1g1j1c1d1d1m1f163f1d3e1c1d1i3e161f1f1g121g1y2d1l3d1a1e101d1c1f1g3d1r1c1d3e1b3g1j3f151d1q1c1k1f1f1f1g2e1a1c1e1d181g1q1f1j3e1a1c1a1c1a1e161e1s1g1l1c1c1c1c1g103d1c1g1e1c1k2d1e3f1d1e121g163e1f3c1e1f1c3g1j1g1e2c1b2d161f1d1e1c3e1e2d1k3d1c1g1e1f1c1g1m1d1j2c1u3f1h3g152f1g3d162d1g2f1a1e1f3e182c1w2e1x2e1s2g1y2e1w2c1s2c1v2f1x2e1u2f102c1t1e1d2e1q3g1k2e1u1e1v2c1w2g1w2e1s1g1c2c1u2e102e1q2g1o2e1v1c1q2c1t2e1p2e1s3g1j2c1u2d1t2e1q3e1a2e1t2c102c1w1f1a2e1u2g1u2c1u1c1h2e1r2e1d2e1u3e1u2c1w2f1v2e1r2g1r2c1w2e1h2e1q2g1u2e1v1e1t2c1u3f1p2e1t2g1j2c1u2c1l2e1q1e1d2e1u2d1v2c1u2e132e1u3e102c1w1c1v2e1q3f1q2e1w2c1w2c1w2g1k2e1u2g102c1t3c1l2e1q2e152e1u2d1y2c1t1f1t2e1s2e122c1u3d1x2e1s3g1d2e1v2e1l2c1w2f1r2e1u3g172c1w2d1e2e1q2f152e1u3e1d2c1w1g1j2e1t2g1k2c1v2d172e1q3g1b2e1v1e122c1v2e1a2e1t1f1t2c1v2c1b2e1r2g1u2e1w1e1l2c1v3g1i2e1t1f1u2c1u2e1t2e1s2f152e1u2d1l2c1u3g1t2e1t1e1i1c172c1v3e1s2e1s2f102c1v2c1y2e1s2g1z2e1u3c1a2c1u1g1d2e1s3f1c2c1u3d1k2e1r3e1u2e1v2c1l2c1w2e1d2e1t3g1h2c1t1c1v2e1q1g1s2e1v2c102c1u2e1e2e1t2e1m2c1v2e1l2e1q1e1i2e1w1c1q2c1u3g1o2e1u2g1t2c1w2c112e1s3e1c2e1v2e1z2c1w2f1q2e1s2g1s2c1v3d1r2e1s3f1d2e1w3e1k2c1u3g1j2e1t2e1h2c1w3c1j2e1q2e1u2e1u1c1d2c1v2e1c2e1s3e1x2c1t2c1t2e1p2e102e1u3c1j2c1v3g1w2e1s1e1t2c1v2e1z2e1q2g1t2e1v3e1q2c1w1f142e1u2e1y2c1u2e1t2e1r1e1t2e1w1c1f2c1w2f132e1t3e1z2c1u3c192e1s1e1z2e1u2e1v2c1w1f1q2e1t2g1t2c1w2e1d2e1r1g1q2e1v3e1z2c1t1g1g2e1s1g1v2c1v2c1j2e1s2g1y2e1t3e1v2c1u1g1a2e1r2e1r2c1v2d192e1s2e102e1w2e182c1m2e1s2g1q2e1u2e1w2c1w1f1u2e1s1f1t2c1w2c1u2e1q1e1t2e1u3d1c2c1v3f172e1u2g122c1w2e1z2e1s1e1p2e1w2c1v2c1u2g1t2e1s3g102c1t1e1k2e1r2e1j2e1t1e1w2c1w3g1u2e1s1e1h2c1v3c162e1s2e1p2e1v1d1u2c1v2e1s2e1u2e192c1w3d112e1r3f1d2e1v1c1t2c1v3f182e1u2e192c1t2c1y2e1r2e1t2e1v1d162c1u2e132e1t2g1z2c1w2d122e1s2g1f2e1w3d1d2c1v3g182e1s3g1j2c1t3e122e1s2g1w2e1v2e1z2c1u3g1h2e1u2f1e2c1u1e1v2e1s2e152e1u2c1w2c1u2g1u2e1s2g1q2c1w2c1d2e1q2f1u2e1v2e1z2c1w1e1c2e1t2e1e2c1v2e1m2e1r2e1r2e1u1e1w2c1v1e1p2e1u2g1r2c1v2e1m2e1p3g1s2e1v2e1c2c1u2f1s2e1t1e1r2c1v2e1h2e1q2e1x2e1t3e1y2c1u2f1w2e1t2e1j2c1u2d1s2e1r1e1z3e183d182c1a1e171v1g2j1m1e1r1g1k2f2q1i14', '6f8759e6d79c83a5b225c174f2fbce95'));

Тудаже, в "de4js", где распаковывали основной скрипт.
Копируем результат в поле для распаковки до тех пор, пока не получим что-то вроде:

+ открыть спойлер
var y = x.split(v.file3_separator);
var a = "";
if (y.length == 3) {
    try {
        a = JSON.parse(CryptoJS.AES.decrypt('{"ct":"' + y[0].substr(2) + '","iv":"' + y[1] + '","s":"' + y[2] + '"}', eval(bh("6a64647979353528226b5e297d5f3e462a7a76544422293b")), {
            format: cjsaj
        }).toString(CryptoJS.enc.Utf8));
    } catch (e) {}
}

function bh(h) {
    var a = ["OFVtFxDCp8KMw6XCoBvDsHs=", "wo7CpxsD", "PRPCpMKyTg==", "JsOxCMOTw4LCrA==", "w6fCllsHw4kk"];
    (function (b, c) {
        var f = function (g) {
            while (--g) {
                b["push"](b["shift"]());
            }
        };
        f(++c);
    }(a, 0xfe));
    var c = function (b, d) {
        b = b - 0x0;
        var e = a[b];
        if (c["BczfZv"] === undefined) {
            (function () {
                var h = function () {
                    var k;
                    try {
                        k = Function("return (function() " + "{}.constructor(\"return this\")( )" + ");")();
                    } catch (l) {
                        k = window;
                    }
                    return k;
                };
                var i = h();
                var j = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
                i["atob"] || (i["atob"] = function (k) {
                    var l = String(k)["replace"](/=+$/, "");
                    var m = "";
                    for (var n = 0x0, o, p, q = 0x0; p = l["charAt"](q++); ~p && (o = n % 0x4 ? o * 0x40 + p : p, n++ % 0x4) ? m += String["fromCharCode"](0xff & o >> (-0x2 * n & 0x6)) : 0x0) {
                        p = j["indexOf"](p);
                    }
                    return m;
                });
            }());
            var g = function (h, l) {
                var m = [],
                    n = 0x0,
                    o, p = "",
                    q = "";
                h = atob(h);
                for (var t = 0x0, u = h["length"]; t < u; t++) {
                    q += "%" + ("00" + h["charCodeAt"](t)["toString"](0x10))["slice"](-0x2);
                }
                h = decodeURIComponent(q);
                var r;
                for (r = 0x0; r < 0x100; r++) {
                    m[r] = r;
                }
                for (r = 0x0; r < 0x100; r++) {
                    n = (n + m[r] + l["charCodeAt"](r % l["length"])) % 0x100;
                    o = m[r];
                    m[r] = m[n];
                    m[n] = o;
                }
                r = 0x0;
                n = 0x0;
                for (var v = 0x0; v < h["length"]; v++) {
                    r = (r + 0x1) % 0x100;
                    n = (n + m[r]) % 0x100;
                    o = m[r];
                    m[r] = m[n];
                    m[n] = o;
                    p += String["fromCharCode"](h["charCodeAt"](v) ^ m[(m[r] + m[n]) % 0x100]);
                }
                return p;
            };
            c["mHlDlJ"] = g;
            c["rgspLt"] = {};
            c["BczfZv"] = !![];
        }
        var f = c["rgspLt"][b];
        if (f === undefined) {
            if (c["FXyXkB"] === undefined) {
                c["FXyXkB"] = !![];
            }
            e = c["mHlDlJ"](e, d);
            c["rgspLt"][b] = e;
        } else {
            e = f;
        }
        return e;
    };
    var b = [];
    for (var i = 0x0; i < h[c("0x4", "&Dwp")] - 0x1; i += 0x2) b[c("0x2", "lwiD")](parseInt(h[c("0x0", "GSBZ")](i, 0x2), 0x10));
    return String[c("0x1", "(vKd")][c("0x3", "LCj!")](String, b);
};

Ага, видим, что ключ прячется за строкой eval(bh("6a64647979353528226b5e297d5f3e462a7a76544422293b"))
А функция bh чуть ниже. Ну ок, чё, копируем прям всю функцию bh в буфер обмена и вставляем в консоли браузера.
Ну а потом просто в консоли вставляем код: eval(bh("6a64647979353528226b5e297d5f3e462a7a76544422293b")) и вуаля - у нас есть значение ключа дешифровки: "vG~N:=!d~Nhkn=k^)}_>F*zvTD=~ffZ+3pE!WCY4>X!QJY4>X!QJsuvu1HFvP_rE^Ny".

Но чтобы нормально дешифровать, нам также нужно избавляться от мусора, который напихан в зашифрованные ссылки.
Поизучал код плеера и увидел там возможность достать нужные данные через его API.
Например, если в консоли набрать: player.api("v", "file3_separator")
То можно увидеть текущее значение разделителя для мусора в том числе.
А командами player.api("v", "bk0"), player.api("v", "bk1")... и т.д. получить значения мусора.

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

Архив с исходниками расширения прикрепил.
Как установить:
1) Распаковать в папку
2) В Хроме "Дополнительные инструменты" -> "Расширения" включить "Режим разработчика"
3) Нажать кнопку "Загрузить распакованное расширение"
4) Готово. На сайте с плеером нажать на кнопку расширения "А" и получим весь список мусора.

Вот. Это был очередной пример, как можно добраться до нужных данных.
Текущие значения мусора:
##P3w7Xl58Kj4qPj8/Pl58Xjx8Pnw/ISrihJYofDshP17ihJY+
##Pzs+KSEoKjt8fD58KjxefCp8XipgPj98KHwqPnx8fl1bfD58Kl4q
##PGBeKmAqPnzihJYqKuKEll0/Wyo7fHw+fCrihJY7Xipg4oSWKj4=
##fFs+KuKElj5eP1s7fHw+fCo8KirihJZdfHxePCoqfA==
##OyE/XuKElj4qXipgfHxePCrihJZ8fF4qYF4qKnzihJYqfl1bfD58

Прикреплённые файлы сообщения

AllohaTrash_ChromeExtension.zip 2.04 kb, скачивалось 379 раз, начиная с 2020.06.21

Sony Bravia KDL-32CX523
Спасибо сказали: smsbox3, Spell, Dimon1978pl3

19

Re: pope.allohalive.com

Теперь, key для расшифровки постоянно меняется и запакован в скрипте.

Обновлённый скрипт на PHP для alloha:

<?php
$link = isset($_GET["url"]) ? $_GET["url"] : ""; if (!$link) die("No url!");
$referer = isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : $link;

// Притворяемся браузером, передаём куки, подменяем Referer'а
$opts = Array('http'=>Array(
    'method'=>"GET",
    'header'=>"Referer: $referer\r\n" .
              "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36\r\n"));
// Скачиваем html страницу
$html = file_get_contents($link, false, stream_context_create($opts));

// Получаем значения hash и id
$data = $html;
for ($n=0; $n<9; $n++) if (preg_match('#"(\w+)",(\d+),"(\w+)",(\d+),(\d+),(\d+)#s', $data, $m)) $data = JsUnpack($m[1], $m[2], $m[3], $m[4], $m[5], $m[6]);
$apdjk = "Russkie ne zdautsa!";

$key = preg_match('#.*=\s*["\'](.*?)["\']#', $data, $m) ? $m[1] : "";

if (!$key) die("No key found in loaded html page!");

if (!isset($_GET["info"])) {
  $file3_separator = "##";
  $enc2 = "9";
  $enc3 = "7";
  $trash = [];
  $trash[] = "##P3w7Xl58Kj4qPj8/Pl58Xjx8Pnw/ISrihJYofDshP17ihJY+";
  $trash[] = "##Pzs+KSEoKjt8fD58KjxefCp8XipgPj98KHwqPnx8fl1bfD58Kl4q";
  $trash[] = "##PGBeKmAqPnzihJYqKuKEll0/Wyo7fHw+fCrihJY7Xipg4oSWKj4=";
  $trash[] = "##fFs+KuKElj5eP1s7fHw+fCo8KirihJZdfHxePCoqfA==";
  $trash[] = "##OyE/XuKElj4qXipgfHxePCrihJZ8fF4qYF4qKnzihJYqfl1bfD58";

  $options = preg_match('#Playerjs\("(.*?)"#', $html, $m) ? $m[1] : "";
  $options = AllohaDecode($options, $enc2, $enc3, $trash);

  $file = preg_match('#"file":"(.*?)"#s', $options, $m) ? $m[1] : "";
  $file = AllohaDecode($file, $enc2, $enc3, $trash, $key);

  echo $file;


} else {

  echoInfo($link, $html, $key, $opts);

}



///////////////////////////////////////////////////////////////////////////
// !!!!! Ну что, найдём значение мусора автоматически? !!!!!
function echoInfo($link, $html, $key, $opts) {
    $urlBase = preg_match('#^(.*?//.*?)/#', $link, $m) ? $m[1] : "";
    $jsLink  = preg_match('#src="(/js/playerjs.*?)"#', $html, $m) ? $m[1] : "";

    if (!$jsLink) die("Not found playerjs link in loaded html page!");

    $jscode = file_get_contents($urlBase.$jsLink, false, stream_context_create($opts));

    // Ищем упакованный скрипт в загруженном html
    $jscode = preg_match('#(eval.*?\{\}\)\))#', $jscode, $m) ? $m[1] : $jscode;

    // Создаём распаковщик js-кода
    $unpacker = new JavascriptUnpacker;

    // Распаковываем js
    $unpackedJs = $unpacker->unpack($jscode);

    // Находим зашифрованный конфиг (объект v в Playerjs)
    $encoded = preg_match("/u:'(#1.*?)'/", $unpackedJs, $m) ? $m[1] : "";
    $decoded = AllohaDecode($encoded);

    $file3_separator = preg_match('#"file3_separator":"(.*?)"#', $decoded, $m) ? $m[1] : "";
    $enc2 = preg_match('#"enc2":"(.*?)"#', $decoded, $m) ? $m[1] : "2";
    $enc3 = preg_match('#"enc3":"(.*?)"#', $decoded, $m) ? $m[1] : "3";

    $trash = [];
    for ($i=0; $i<8; $i++) {
        if (preg_match('#"bk'.$i.'":"(.*?)"#', $decoded, $m)) {
            $str = preg_replace_callback('/\\\\u([0-9a-fA-F]{4})/', function ($m) {return mb_convert_encoding(pack('H*', $m[1]), 'UTF-8', 'UCS-2BE');}, $m[1]);
            $str = str_replace("\x0", ">", $str); // Странные дела - чтобы всё работало, нулевых кодов не должно быть
            $str = str_replace("@"  , "~", $str);
            //$trash[] = $str;
            //$trash[] = urlencode($str);
            $trash[] = $file3_separator.base64_encode($str);
        }
    }

    $options = preg_match('#Playerjs\("(.*?)"#', $html, $m) ? $m[1] : "";
    $options = AllohaDecode($options, $enc2, $enc3, $trash);

    $file = preg_match('#"file":"(.*?)"#s', $options, $m) ? $m[1] : "";
    $file = AllohaDecode($file, $enc2, $enc3, $trash, $key);

    $v = Array();
    $v["file3_separator"] = $file3_separator;
    $v["enc2"   ] = $enc2;
    $v["enc3"   ] = $enc3;
    $v["trash"  ] = $trash;
    $v["key"    ] = $key;
    $v["file"   ] = $file;
    //$v["options"] = $options;
    header("Content-Type: application/json");
    echo json_encode($v, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
}

///////////////////////////////////////////////////////////////////////////////////
function AllohaDecode($t, $enc2="2", $enc3="3", $trash=[], $key="") {
    $t = stripslashes($t);

    // Избавляемся от мусора
    foreach($trash as $tr) $t = str_replace($tr, "", $t);
    foreach($trash as $tr) $t = str_replace($tr, "", $t); // Иногда мусор встраивается в мусор, поэтому проходим два раза

    switch(substr($t, 0, 2)) {
        case "#0": return Html5Decode($t);                   break;
        case "#1": return salt_d(pepper(substr($t, 2), -1)); break;
        case "#".$enc2: return base64_decode(substr($t, 2)); break;
        case "#".$enc3: return AesDecrypt($t, $key);         break;
        default  : return $t;
    }
}

///////////////////////////////////////////////////////////////////////////////////
function AesDecrypt($t, $key) {
    $separator = "##";
    $len_sep  = strlen($separator);
    $len_salt = 16;
    $len_iv   = 32;
    $pos_sep1 = $len_salt+$len_sep + $len_iv+$len_sep; // Позиция с конца разделителя 1
    $pos_sep2 = $len_salt+$len_sep;                    // Позиция с конца разделителя 2
    if ((substr($t, -$pos_sep1, 2)==$separator) && (substr($t, -$pos_sep2, 2)==$separator)) {
        $ct = substr($t, 2, -$pos_sep1);
        $iv = substr($t, -$pos_sep1+$len_sep, $len_iv);
        $s  = substr($t, -$len_salt, $len_salt);
        return CryptoJsAesDecrypt($key, '{"ct":"'.$ct.'","iv":"'.$iv.'","s":"'.$s.'"}');
    }
    return $t;
}

///////////////////////////////////////////////////////////////////////////////////
function pepper($s, $n) {
    $abc = "ABCDEFGHIJKLMabcdefghijklmNOPQRSTUVWXYZnopqrstuvwxyz";
    $a = 22 * $n;  // sugar(d.y) = sugar('xx??x?=xx??x?=') in player-alloha-new.js
    $a += strlen($abc) / 2;
    $r = substr($abc, $a * 2) . substr($abc, 0, $a * 2);
    $t = preg_replace_callback("/([A-Za-z])/", function ($matches) use ($r, $abc, $s) { return $r[strrpos($abc, $matches[0])]; }, $s);
    return $t;
}

///////////////////////////////////////////////////////////////////////////////////
function salt_d($e) {
    $abc = "ABCDEFGHIJKLMabcdefghijklmNOPQRSTUVWXYZnopqrstuvwxyz";
    $keyStr = $abc."0123456789+/=";
    $e = str_split($e);
    $t = "";
    $f = 0;
    while ($f < count($e)) {
        $s = strrpos($keyStr, $e[$f++]);    
        $o = strrpos($keyStr, $e[$f++]);
        $u = strrpos($keyStr, $e[$f++]);
        $a = strrpos($keyStr, $e[$f++]);
        $n = $s << 2 | $o >> 4;
        $r = ($o & 15) << 4 | $u >> 2;
        $i = ($u & 3) << 6 | $a;
        $t .= chr($n);
        if ($u != 64) $t .= chr($r);
        if ($a != 64) $t .= chr($i);
    }
    $e = str_split($t);
    $t = "";
    $n = 0;
    while ($n < count($e)) {
        $r = ord($e[$n]);
        if ($r < 128) { 
            $t .= chr($r);
            $n++;
        } else if ($r > 191 && $r < 224) {
            $c2 = ord($e[$n+1]);
            $t .= chr(($r & 31) << 6 | $c2 & 63);
            $n += 2;
        } else {
            $c2 = ord($e[$n+1]);
            $c3 = ord($e[$n+2]);
            $t .= chr(($r & 15) << 12 | ($c2 & 63) << 6 | $c3 & 63);
            $n += 3;
        }
    }
    return $t;
}

///////////////////////////////////////////////////////////////////////////////////
function Html5Decode($b) {
    if (strpos($b, ".") == false) {
        $b = substr($b, 1);
        $s2 = "";
        for ($j = 0; $j < strlen($b); $j += 3) {
            $s2 .= '\\u0' . substr($b, $j, 3);
        }
        $b = json_decode('"' . $s2 . '"');
    }
    return $b;
}

///////////////////////////////////////////////////////////////////////////////////
function CryptoJsAesDecrypt($passphrase, $jsonString){
    $jsondata = json_decode  ($jsonString, true);
    $salt     = hex2bin      ($jsondata["s" ]);
    $ct       = base64_decode($jsondata["ct"]);
    $iv       = hex2bin      ($jsondata["iv"]);
    $concatedPassphrase = $passphrase.$salt;
    $md5 = array();
    $md5[0] = md5($concatedPassphrase, true);
    $result = $md5[0];
    for ($i = 1; $i < 3; $i++) {
        $md5[$i] = md5($md5[$i - 1].$concatedPassphrase, true);
        $result .= $md5[$i];
    }
    $key  = substr($result, 0, 32);
    $data = openssl_decrypt($ct, 'aes-256-cbc', $key, true, $iv);
    return json_decode($data, true);
}

////////////////////////////////////////////////////////////////////////////
function b64c($d, $e, $f) {
    $g = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/';
    $h = substr($g, 0, $e);
    $i = substr($g, 0, $f);
    $d = strrev($d);
    $j = 0;
    for($c=0; $c<strlen($d); $c++) {
        $j += strpos($h, $d[$c]) * pow($e, $c);
    }
    $k = '';
    while ($j > 0) {
        $k = $i[$j % $f] . $k;
        $j = ($j - ($j % $f)) / $f;
    }
    return $k ? $k : '0';
}

////////////////////////////////////////////////////////////////////////////
function JsUnpack($h, $u, $n, $t, $e, $r) {
    $r = "";
    for ($i=0; $i < strlen($h); $i++) {
        $s = "";
        while ($h[$i] !== $n[$e]) {
            $s .= $h[$i];
            $i++;
        }
        for ($j=0; $j < strlen($n); $j++) $s = str_replace($n[$j], $j, $s);
        $ch = chr(b64c($s, $e, 10) - $t);
        $r .= $ch;
    }
    return $r;
}

////////////////////////////////////////////////////////////////////////////
// Распаковщик js-кода https://github.com/ptcong/php-javascript-unpacker
class JavaScriptUnpacker
{
    protected $alphabet = array(
        52 => '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP',
        54 => '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQR',
        62 => '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
        95 => ' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'
    );

    private $base;
    private $map;

    public function unpack($source, $dynamicHeader = true)
    {
        if (! $this->isPacked($source, $dynamicHeader)) return $source;
        preg_match("/}\('(.*)',\s*(\d+),\s*(\d+),\s*'(.*?)'\.split\('\|'\)/", $source, $match);
        $payload = $match[1];
        $this->base = (int) $match[2];
        $count = (int) $match[3];
        $this->map = explode('|', $match[4]);
        if ($count != count($this->map)) return $source;
        $result = preg_replace_callback('#\b\w+\b#', array($this, 'lookup'), $payload);
        $result = strtr($result, array('\\' => ''));
        return $result;
    }

    public function isPacked($source, $dynamicHeader = true)
    {
        $header = $dynamicHeader ? '\w+,\w+,\w+,\w+,\w+,\w+' : 'p,a,c,k,e,[rd]';
        $source = strtr($source, array(' ' => ''));
        return (bool) preg_match('#^eval\(function\('.$header.'\){#i', trim($source));
    }

    protected function lookup($match)
    {
        $word = $match[0];
        $unbased = $this->map[$this->unbase($word, $this->base)];
        return $unbased ? $unbased : $word;
    }

    protected function unbase($value, $base)
    {
        if (2 <= $base && $base <= 36) return intval($value, $base);
        static $dict = array();
        $selector = $this->getSelector($base);
        if (empty($dict[$selector])) {
            $dict[$selector] = array_flip(str_split($this->alphabet[$selector]));
        }
        $result = 0;
        $array = array_reverse(str_split($value));
        for ($i = 0, $count = count($array); $i < $count; $i++) {
            $cipher = $array[$i];
            $result += pow($base, $i) * $dict[$selector][$cipher];
        }
        return $result;
    }

    protected function getSelector($base)
    {
        if ($base > 62) return 95;
        if ($base > 54) return 62;
        if ($base > 52) return 54;
        return 52;
    }
}
Sony Bravia KDL-32CX523
Спасибо сказали: Spell, smsbox3, bond, foks5050, Legioner5

20

Re: pope.allohalive.com

У кого-то работает еще алоха?

21

Re: pope.allohalive.com

привет ни у кого нет рабочего скрипта

22

Re: pope.allohalive.com

FIX

JGtleSA9IHByZWdfbWF0Y2goJyMuKj1ccypbXCddKC4qPylbXCddIycsICRkYXRhLCAkbSkgPyAkbVsxXSA6ICIiOw

23

Re: pope.allohalive.com

Ссылки привязыааются к айпи? Запустил скрипт, а при переводе по ссылке получаю 404 ошибку. Хотя если открыть плеер на каком-нибудь сайте с этим балансером и получить ссылку, то включив после впн ссылка работает, а тут нет, почему? Пробовал передавать в заголовке запроса ip не помогает, такая же картина слржилась и с voidboost, cdnmovies, videoframe

24

Re: pope.allohalive.com

Конечно привязаны 21 век, давно уже не кто прямых ссылок не делает ) по поводу впн-а, он у тебя значит не какой раз после него ссылки работают

25 (2023.06.14 13:38:16 отредактировано Fizer)

Re: pope.allohalive.com

badmike пишет:

Конечно привязаны 21 век, давно уже не кто прямых ссылок не делает ) по поводу впн-а, он у тебя значит не какой раз после него ссылки работают

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

26

Re: pope.allohalive.com

Fizer пишет:

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

я запускаю локально и поригрывается локально.(реферрер сайт откуда береш ссылку)

есть вопрос знатакам , а можно получить ссылку на мп4, а то оттплейер на смарттв не принимает м3у8.
спс

27

Re: pope.allohalive.com

Fizer пишет:

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

Другие балансеры это наверное видеосдн, там нет защиты, да. а то что ты пытаешься прописат свой IP к ссылке тольку 0, там все это херируется md5 base64 url + IP + time, такие ссылки не как не проиграешь с другого IP, если парсишь с сервера то иотдавать надо с сервера

28

Re: pope.allohalive.com

badmike пишет:

Другие балансеры это наверное видеосдн, там нет защиты, да. а то что ты пытаешься прописат свой IP к ссылке тольку 0, там все это херируется md5 base64 url + IP + time, такие ссылки не как не проиграешь с другого IP, если парсишь с сервера то иотдавать надо с сервера

Ну vcdn это классика. Нет есть ещё балансеры с защитой но без привязки к айпи, оам как бы ключ генериься по айпи, но смотреть можно с любого. Я так понимаю что в случае с аллоха, резка, сднмувиес и айфрейм выход только башлять reverse proxy?

29

Re: pope.allohalive.com

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

30

Re: pope.allohalive.com

badmike пишет:

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

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