7 Commits
0.1.0 ... 1.4.0

19 changed files with 630 additions and 383 deletions

View File

@@ -1 +1,15 @@
# site-repression # How I was kidnapped by PMC Wagner
In the morning i was kidnapped **with a bag over my head and in handcuffs**, in the afternoon there was a **fake trial** with my acquittal, and in the evening i was already **drinking my coffee at home** 🥲
## Description
This is an educational and entertaining article about **real events** that happened to me in **2023**. Initially, i planned to structure the story in order to **request political asylum in Estonia**, but the situation became such that I was forced to **abandon this idea** *(to my regret)*, and remade the site into a more humorous one.
Reading the article you may be impressed by these incredible incidents, but in reality these are **trifles** and **commonplace**. I was not surprised when this happened. This is a harsh reality, but it is not as harsh as in the movies.
*In life, even the most terrible tragedies happen in a boring, ordinary way.*
## Afterword
My psychological state is **absolutely normal** *(2024.01.04)*, however, i am **still scared** of cars stopping next to me at night, and i also do not feel safe *(more than before)*.
*This is not my most interesting story in life and not the most memorable. It just so happened that i shared it with you about it. **I hope you will enjoy*** 😼⏎

View File

@@ -1,82 +0,0 @@
<?php
declare(strict_types=1);
namespace mirzaev\site\repression\controllers;
// Файлы проекта
use mirzaev\site\repression\controllers\core;
/**
* Контроллер бегущей строки
*
* @package mirzaev\site\repression\controllers
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
*/
final class hotline_controller extends core
{
/**
* Страница с бегущей строкой
*
* Можно использовать совместно с элементом <iframe> для изоляции
* содержимого бегущей строки от поисковых роботов
*
* @param array $parameters
*/
public function index(array $parameters = []): ?string
{
// Инициализация элементов для генерации в головном элементе
$this->variables['head'] = [
'title' => 'Бегущая строка',
'metas' => [
[
'attributes' => [
'name' => 'robots',
'content' => 'nofollow'
]
]
]
];
// Инициализация бегущей строки
$this->variables['hotline'] = [
'id' => $this->variables['request']['id'] ?? 'hotline'
];
// Инициализация параметров бегущей строки
$this->variables['hotline']['parameters'] = [
// 'step' => 2
];
// Инициализация аттрибутов бегущей строки
$this->variables['hotline']['attributes'] = [
];
// Инициализация элементов бегущей строки
$this->variables['hotline']['elements'] = [
['content' => '1'],
[
'tag' => 'article',
'content' => '2'
],
['content' => '3'],
['content' => '4'],
['content' => '5'],
['content' => '6'],
['content' => '7'],
['content' => '8'],
['content' => '9'],
['content' => '10'],
['content' => '11'],
['content' => '12'],
['content' => '13'],
['content' => '14'],
['content' => '15']
];
// Генерация представления
return $this->view->render(DIRECTORY_SEPARATOR . 'hotline' . DIRECTORY_SEPARATOR . 'index.html', $this->variables);
}
}

View File

@@ -8,6 +8,12 @@ namespace mirzaev\site\repression\controllers;
use mirzaev\site\repression\controllers\core, use mirzaev\site\repression\controllers\core,
mirzaev\site\repression\models\views; mirzaev\site\repression\models\views;
// Фреймворк для сайта ipinfo.io
use ipinfo\ipinfo\IPinfo;
// Встроенные библиотеки
use exception;
/** /**
* Контроллер основной страницы * Контроллер основной страницы
* *
@@ -32,8 +38,22 @@ final class index_controller extends core
'iphone' => (bool) rand(0, 1), 'iphone' => (bool) rand(0, 1),
]; ];
try {
// Запрос дополнительных данных
$data = (array) (new IPinfo(require '../settings/ipinfo.php'))->getDetails($_SERVER['cf-connecting-ip'] ?? $_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['REMOTE_ADDR']);
// Генерация строки для запугивания пользователя
$this->variables['creepy'] = "{$data['continent']['name']}, {$data['country_name']}, {$data['city']}, {$data['latitude']}, {$data['longitude']}, {$data['org']}, {$data['ip']}, seen in extremist chats, seen in LGBTQ+ chats, anti-state activities, problems with studies, was in contact with a criminal group (2017), wears strange pants, suspect in the case of January 15, 2024 No. 2360501";
} catch (exception $e) {
// Инициализация заглушки дополнительных данных
$data = [];
// Инициализация заглушки строки для запугивания пользователя
$this->variables['creepy'] = 'check your DM';
}
// Запись просмотра // Запись просмотра
views::increase(); views::increase($data);
// Инициализация счётчика просмотров // Инициализация счётчика просмотров
$this->variables['views'] = [ $this->variables['views'] = [
@@ -44,6 +64,7 @@ final class index_controller extends core
'last' => views::last(10) 'last' => views::last(10)
]; ];
// Генерация представления // Генерация представления
return $this->view->render(DIRECTORY_SEPARATOR . 'index.html', $this->variables); return $this->view->render(DIRECTORY_SEPARATOR . 'index.html', $this->variables);
} }

View File

@@ -8,9 +8,6 @@ namespace mirzaev\site\repression\models;
use mirzaev\arangodb\collection, use mirzaev\arangodb\collection,
mirzaev\arangodb\document; mirzaev\arangodb\document;
// Фреймворк для сайта ipinfo.io
use ipinfo\ipinfo\IPinfo;
// Библиотека для ArangoDB // Библиотека для ArangoDB
use ArangoDBClient\Document as _document; use ArangoDBClient\Document as _document;
@@ -30,17 +27,25 @@ class views extends core
*/ */
final public const COLLECTION = 'views'; final public const COLLECTION = 'views';
public static function increase(array &$errors = []): ?bool /**
* Увеличить счётчик посещений используя данные пользователя из запроса
*
* @param ?array $data Дополнительные данные пользователя
*
* @return bool Записано в базу данных?
*/
public static function increase(?array $data = null, array &$errors = []): bool
{ {
try { try {
if (collection::init(static::$arangodb->session, self::COLLECTION)) if (collection::init(static::$arangodb->session, self::COLLECTION))
if ($_SERVER['HTTP_USER_AGENT'] === 'nginx-ssl early hints') return null; if ($_SERVER['HTTP_USER_AGENT'] === 'nginx-ssl early hints') return null;
else if (document::write(static::$arangodb->session, self::COLLECTION, [ else if (document::write(static::$arangodb->session, self::COLLECTION, [
'ip' => $_SERVER['REMOTE_ADDR'] ?? null, 'ip' => $_SERVER['REMOTE_ADDR'] ?? null,
'cf-connecting-ip' => $_SERVER['cf-connecting-ip'] ?? null,
'x-forwarded-for' => $_SERVER['HTTP_X_FORWARDED_FOR'] ?? null, 'x-forwarded-for' => $_SERVER['HTTP_X_FORWARDED_FOR'] ?? null,
'referer' => $_SERVER['HTTP_REFERER'] ?? null, 'referer' => $_SERVER['HTTP_REFERER'] ?? null,
'useragent' => $_SERVER['HTTP_USER_AGENT'] ?? null 'useragent' => $_SERVER['HTTP_USER_AGENT'] ?? null
] + (array) (new IPinfo(require '../settings/ipinfo.php'))->getDetails($_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['REMOTE_ADDR']))) return true; ] + ($data ?? []))) return true;
else throw new exception('Не удалось создать аккаунт'); else throw new exception('Не удалось создать аккаунт');
else throw new exception('Не удалось инициализировать коллекцию'); else throw new exception('Не удалось инициализировать коллекцию');
} catch (exception $e) { } catch (exception $e) {
@@ -200,8 +205,11 @@ class views extends core
// Инициализация буфера обработанных последних просмотров // Инициализация буфера обработанных последних просмотров
$buffer = []; $buffer = [];
// Универсализация
if ($response instanceof _document) $response = [$response];
// Обработка последних просмотров // Обработка последних просмотров
foreach ($response as $view) $buffer[] = $view->getAll()[0]; foreach ($response ?? [] as $view) $buffer[] = $view->getAll()[0];
return $buffer; return $buffer;
} else throw new exception('Не удалось инициализировать коллекцию'); } else throw new exception('Не удалось инициализировать коллекцию');

View File

@@ -81,11 +81,16 @@ button[disabled]:is(:hover, :active) {
background-color: var(--button-light-red); background-color: var(--button-light-red);
} }
body { body {
--padding-vertical: min(200px, 20vh);
margin: 0; margin: 0;
position: relative; position: relative;
height: 100vh; width: 100vw;
overflow-x: hidden; height: 100%;
padding-top: var(--padding-vertical);
padding-bottom: var(--padding-vertical);
overflow-x: clip;
background-color: black; background-color: black;
} }
@@ -120,7 +125,7 @@ body > aside {
body>article { body>article {
position: relative !important; position: relative !important;
margin: 20vh auto 0 !important; margin: 0 auto !important;
width: 800px !important; width: 800px !important;
border-radius: 10px; border-radius: 10px;
background-color: var(--background-dark); background-color: var(--background-dark);
@@ -153,6 +158,7 @@ body > article > header {
clip-path: border-box; clip-path: border-box;
border-radius: 0px 0px 10px 10px; border-radius: 0px 0px 10px 10px;
background-color: var(--background-dark); background-color: var(--background-dark);
} }
body>article>header>section { body>article>header>section {
@@ -166,6 +172,7 @@ body > article > header > section {
body>article>header>section>h1 { body>article>header>section>h1 {
font-size: 2.5rem; font-size: 2.5rem;
margin: auto; margin: auto;
text-align: center;
color: red; color: red;
} }
@@ -183,18 +190,17 @@ body > section.block {
} }
body>section.block { body>section.block {
box-sizing: border-box;
border-radius: 10px; border-radius: 10px;
margin: 20px auto 0; margin: 20px auto 0;
width: 700px; width: 800px;
padding: 30px 50px; padding: 30px 50px;
display: block;
} }
body>article>main { body>article>main {
padding-top: 10px; padding-top: 10px;
border-radius: 0 0 10px 10px; border-radius: 0 0 10px 10px;
/* box-shadow: 1px 6px 11px 3px rgba(0,0,0,0.6);
-webkit-box-shadow: 1px 6px 11px 3px rgba(0,0,0,0.6);
-moz-box-shadow: 1px 6px 11px 3px rgba(0,0,0,0.6); */
} }
body>article>main>section { body>article>main>section {
@@ -313,7 +319,7 @@ body > article > main > section > img {
} }
body>article>main>section#conclusion { body>article>main>section#conclusion {
height: 425px; margin-bottom: 50px;
} }
body>article>main>section#conclusion>h2 { body>article>main>section#conclusion>h2 {
@@ -410,8 +416,11 @@ body > section#contacts > section#author > section#avatar {
margin-left: 10px; margin-left: 10px;
margin-right: 25px; margin-right: 25px;
position: relative; position: relative;
max-width: 100px;
max-height: 100px;
width: 100px; width: 100px;
height: 100px; height: 100px;
flex-shrink: 0;
clip-path: circle(50px); clip-path: circle(50px);
} }
@@ -458,17 +467,24 @@ body > section#contacts > section#links {
} }
body>section#views { body>section#views {
display: flow-root;
}
body>section#views>h3 {
margin: 0 0 15px;
height: 1.4rem;
display: flex; display: flex;
gap: 25px;
} }
body>section#views>section { body>section#views>section {
float: left;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
overflow: hidden; overflow: hidden;
} }
body>section#views>section:first-of-type { body>section#views>section:first-of-type {
margin-right: 25px;
width: calc(80% - 25px); width: calc(80% - 25px);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@@ -479,16 +495,6 @@ body > section#views > section:last-of-type {
width: 20% width: 20%
} }
body > section#views > section:last-of-type > p:first-of-type {
margin-top: calc(1.3rem + 15px);
}
body > section#views > section > h3 {
margin: 0 0 15px;
height: 1.4rem;
display: flex;
}
body>section#views>section>h3>i.icon { body>section#views>section>h3>i.icon {
margin-left: auto; margin-left: auto;
} }
@@ -507,6 +513,7 @@ body > section#views > section > p:not(:last-of-type) {
body>section#views>section:first-of-type>p>span:nth-of-type(2) { body>section#views>section:first-of-type>p>span:nth-of-type(2) {
margin-right: auto; margin-right: auto;
max-width: 150px; max-width: 150px;
min-width: 50px;
} }
body>section#views>section>p>span, body>section#views>section>p>span,
@@ -579,8 +586,134 @@ body > section#license > img {
transition: 5s; transition: 5s;
} }
@media (max-width: 800px) { body>svg#navalny2 {
width: 800px;
height: 300px;
padding: unset;
}
body>section#navalny {
width: 800px;
height: 190px;
padding: unset;
cursor: pointer;
-webkit-transform: translateZ(0);
transform: translateZ(0);
-webkit-mask-image: url(#NAVALNY);
-webkit-mask-size: contain;
-webkit-mask-position: center;
-webkit-mask-repeat: no-repeat;
mask-image: url(#NAVALNY);
mask-size: contain;
mask-position: center;
mask-repeat: no-repeat;
-webkit-backdrop-filter: saturate(100%) hue-rotate(230deg) blur(22px);
backdrop-filter: saturate(100%) hue-rotate(230deg) blur(22px);
background-color: rgba(0, 3, 210, 0.05);
}
body>section#navalny:hover {
-webkit-backdrop-filter: saturate(600%) hue-rotate(240deg) blur(18px);
backdrop-filter: saturate(600%) hue-rotate(240deg) blur(18px);
background-color: rgba(0, 3, 210, 0.1);
}
@media (max-width: 840px) {
body { body {
padding-bottom: unset; padding-top: unset;
padding-bottom: 20px;
}
body>article>header {
position: relative;
}
body>article {
width: 100% !important;
margin: unset;
border-radius: unset;
}
body>article>div#cover,
body>article>main {
border-radius: unset;
}
body>article>main {
box-shadow: 1px 6px 11px 3px rgba(0, 0, 0, 0.6);
-webkit-box-shadow: 1px 6px 11px 3px rgba(0, 0, 0, 0.6);
-moz-box-shadow: 1px 6px 11px 3px rgba(0, 0, 0, 0.6);
}
body>section.block {
width: calc(100% - 40px) !important;
margin-left: 20px !important;
margin-right: 20px !important;
}
mask#NAVALNY>text {
font-size: calc(5rem - (5rem - 17vw)) !important;
transform: translate(0, 120px) !important;
}
}
@media (max-width: 710px) {
body>article>header {
height: calc(140px + (110px - 20vw));
}
body>article>header>section>h1 {
padding: 0 10vw;
}
}
@media (max-width: 690px) {
body>section#contacts>section {
flex-direction: column;
}
body>section#contacts>section#author>section#avatar {
margin-left: auto;
margin-right: auto;
margin-bottom: 25px;
position: relative;
max-width: 120px;
max-height: 120px;
width: 120px;
height: 120px;
flex-shrink: 0;
clip-path: circle(60px);
}
body>section#contacts>section#author>section#name {
text-align: center;
}
}
@media (max-width: 600px) {
body>section.block#views>h3 {
display: block;
text-align: center;
}
body>section.block#views>section:first-of-type>p>span:nth-of-type(3) {
display: none;
}
body>section.block#views>section:first-of-type {
margin-right: 0;
margin-bottom: 15px;
width: 100%;
}
body>section.block#views>section:last-of-type {
width: 100%;
}
}
@media (max-width: 430px) {
body>article>header>section>h1 {
padding: 0 5vw;
} }
} }

View File

@@ -12,7 +12,7 @@ section.popup {
} }
section.popup>div.wrap { section.popup>div.wrap {
width: 320px; width: 330px;
padding: 30px 25px; padding: 30px 25px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@@ -23,11 +23,12 @@ section.popup>div.wrap {
section.popup>div.wrap>h4 { section.popup>div.wrap>h4 {
margin: auto; margin: auto;
margin-bottom: 8px;
padding-top: 8px; padding-top: 8px;
font-size: 1.6rem; font-size: 1.8rem;
} }
section.popup>div.wrap>p { section.popup>div.wrap>:is(p, ul) {
margin: 0px 20px; margin: 0px 20px;
} }
@@ -49,8 +50,24 @@ section.popup>div.wrap>div.row>button:first-child {
section.popup>div.wrap>div.row>button:last-child { section.popup>div.wrap>div.row>button:last-child {
margin-right: auto; margin-right: auto;
flex-grow: 1;
} }
section.popup>div.wrap>div.row>button[disabled]:is(:hover, :active) { section.popup>div.wrap>div.row>button[disabled]:is(:hover, :active) {
cursor: none; cursor: none;
} }
@media (max-width: 430px) {
section.popup>div.wrap {
width: 100vw;
margin: auto 25px;
}
}
@media (max-width: 330px) {
section.popup>div.wrap {
width: 100vw;
margin: unset;
border-radius: unset;
}
}

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<!-- Created using Krita: https://krita.org -->
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:krita="http://krita.org/namespaces/svg/krita"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
width="648.72pt"
height="98.16pt"
viewBox="0 0 648.72 98.16">
<defs/>
<text id="shape0" krita:useRichText="true" text-rendering="auto" krita:textVersion="3" transform="translate(25.679998194793, 33.4399986334414)" fill="#000000" stroke-opacity="0" stroke="#000000" stroke-width="0" stroke-linecap="square" stroke-linejoin="bevel" letter-spacing="0" text-anchor="middle" word-spacing="0" style="text-align: start;text-align-last: auto;font-family: Gidugu;font-size: 200;"><tspan x="329.0390625">NAVALNY</tspan></text>
</svg>

After

Width:  |  Height:  |  Size: 950 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -0,0 +1,2 @@
User-agent: *
Allow: /

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<url><loc>https://repression.mirzaev.sexy/</loc><changefreq>monthly</changefreq><priority>1.00</priority></url>
</urlset>

Binary file not shown.

View File

@@ -4,9 +4,9 @@
{% endblock %} {% endblock %}
{% block body %} {% block body %}
<section id="account"> <!-- <section id="account">
<button id="login" title="Authentication" onclick="return account.authentication()"><i class='icon authentication'></i></button> <button id="login" title="Authentication" onclick="return account.authentication()"><i class='icon authentication'></i></button>
</section> </section> -->
{% endblock %} {% endblock %}
{% block js %} {% block js %}

View File

@@ -83,28 +83,28 @@
everything that I wrote then, even though it looks ridiculous. everything that I wrote then, even though it looks ridiculous.
</p> </p>
<p> <p>
<b><q><a href="https://vk.com/wall-190567356_5263" title="just my little blog">Source</a></q></b>, <b><q><a href="https://vk.com/wall-190567356_5263" title="just my little blog" rel="nofollow">Source</a></q></b>,
<a href="https://web.archive.org/web/20230527081923/https://vk.com/wall-190567356_5263" title="web archive">(web <a href="https://web.archive.org/web/20230527081923/https://vk.com/wall-190567356_5263" title="web archive" rel="nofollow">(web
archive)</a>, archive)</a>,
<a href="images/reasons/0.png">(screenshot)</a>, <a href="images/reasons/0.png" alt="screenshot of a post where i mock a Russian passport">(screenshot)</a>,
<a href="videos/reasons/0.mp4">(video)</a> <a href="videos/reasons/0.mp4">(video)</a>
</br> </br>
<b><q><a href="https://vk.com/wall-190567356_5356" title="just my little blog">Source</a></q></b>, <b><q><a href="https://vk.com/wall-190567356_5356" title="just my little blog" rel="nofollow">Source</a></q></b>,
<a href="https://web.archive.org/web/20230527081702/https://vk.com/wall-190567356_5356" title="web archive">(web <a href="https://web.archive.org/web/20230527081702/https://vk.com/wall-190567356_5356" title="web archive" rel="nofollow">(web
archive)</a>, archive)</a>,
<a href="images/reasons/1.png">(screenshot)</a>, <a href="images/reasons/1.png" alt="screenshot of a post with a provocative video about the cops mocking my grandmother">(screenshot)</a>,
<a href="videos/reasons/1.mp4">(video 😿)</a> <a href="videos/reasons/1.mp4">(video 😿)</a>
</br> </br>
<b><q><a href="https://vk.com/wall-190567356_5409" title="just my little blog">Source</a></q></b>, <b><q><a href="https://vk.com/wall-190567356_5409" title="just my little blog" rel="nofollow">Source</a></q></b>,
<a href="https://web.archive.org/web/20230527081406/https://vk.com/wall-190567356_5409" title="web archive">(web <a href="https://web.archive.org/web/20230527081406/https://vk.com/wall-190567356_5409" title="web archive" rel="nofollow">(web
archive)</a>, archive)</a>,
<a href="images/reasons/2.png">(screenshot)</a> <a href="images/reasons/2.png" alt="screenshot of a publication in support of Maxim Smolnikov">(screenshot)</a>
</p> </p>
<img src="/images/suck2.png" alt="Repressions by PMC Wagner in Russia" class="unselectable" <img src="/images/suck2.png" alt="Repressions by PMC Wagner in Russia" class="unselectable"
ondragstart="return false"> ondragstart="return false">
</section> </section>
<section id="car"> <section id="car">
<h2>In car</h2> <h2>In the car</h2>
<h3>Are you gay? We'll put you on a bottle</h3> <h3>Are you gay? We'll put you on a bottle</h3>
<p> <p>
For the first few minutes we were silent, probably due to the fact that we were leaving my area, where there was a For the first few minutes we were silent, probably due to the fact that we were leaving my area, where there was a
@@ -579,13 +579,12 @@
This is my story of the abduction by employees of PMC Wagner. It may seem ridiculous, but it radically changed This is my story of the abduction by employees of PMC Wagner. It may seem ridiculous, but it radically changed
my life, of course, for the better. my life, of course, for the better.
</strong> </strong>
<a href="https://twitter.com/gatodelfuturo" title="you should see"> <a href="https://twitter.com/gatodelfuturo" rel="nofollow" title="you should see" ondragstart="return false">
<img src="/images/bebra.png" alt="PMC Wagner MIRZAEV" height="300px" class="unselectable" <img src="/images/bebra.png" alt="PMC Wagner MIRZAEV" height="300px" class="unselectable">
ondragstart="return false">
</a> </a>
<p> <p>
The article is being written a few months after the incident, so many details were missed, and something may have The article is being written a few months after the incident, so many details were missed, and something may have
been exaggerated or underestimated. Chronological order broken in chapter "<a href="#car">In car</a>" been exaggerated or underestimated. Chronological order broken in chapter "<a href="#car">In the car</a>"
</p> </p>
<p> <p>
This story is not unusual. In a sense, I myself am to blame for what happened, however, the question remains <b>why This story is not unusual. In a sense, I myself am to blame for what happened, however, the question remains <b>why

View File

@@ -4,7 +4,7 @@
{% block meta %} {% block meta %}
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=800px" /> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=3" />
<meta name="HandheldFriendly" content="true" /> <meta name="HandheldFriendly" content="true" />
<meta name="MobileOptimized" content="width" /> <meta name="MobileOptimized" content="width" />
<meta content='yes' name='apple-mobile-web-app-capable' /> <meta content='yes' name='apple-mobile-web-app-capable' />
@@ -14,6 +14,7 @@
<meta name="author" content="MIRZAEV" /> <meta name="author" content="MIRZAEV" />
<meta name="revised" content="29-05-2023" /> <meta name="revised" content="29-05-2023" />
<meta property="og:title" content="PMC WAGNER KIDNAPPED ME" /> <meta property="og:title" content="PMC WAGNER KIDNAPPED ME" />
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="article" /> <meta property="og:type" content="article" />
<meta property="article:published_time" content="2023-06-01" /> <meta property="article:published_time" content="2023-06-01" />
<meta property="article:author" content="MIRZAEV" /> <meta property="article:author" content="MIRZAEV" />
@@ -35,13 +36,27 @@
<meta property="twitter:description" <meta property="twitter:description"
content="I was kidnapped and recruited by Wagner PMC in Khabarovsk due to anti-government posts on my blog"> content="I was kidnapped and recruited by Wagner PMC in Khabarovsk due to anti-government posts on my blog">
<meta property="twitter:image" content="https://repression.mirzaev.sexy/images/mirzaev.jpg"> <meta property="twitter:image" content="https://repression.mirzaev.sexy/images/mirzaev.jpg">
<link rel="icon" type="image/gif" href="/images/favicon/favicon.gif"> <link rel="icon" type="image/gif" href="/images/favicon/favicon_alternative.gif">
<link href="https://repression.mirzaev.sexy/" rel="canonical"/>
<script> <script>
if (!/Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|Opera Mini/i.test(navigator.userAgent)) {
// Не смартфон
const e = document.querySelector('link[rel=icon]'); const e = document.querySelector('link[rel=icon]');
let i = 0; // let i = 0;
setTimeout(fn => setInterval("e.href = '/images/favicon_2/' + (++i > 69 ? i = 0 : i) + '.gif'", 150), 5000); // setTimeout(fn => setInterval(fn => e.href = '/images/favicon_2/' + (++i > 69 ? i = 0 : i) + '.gif', 150), 60000);
if (/Firefox/i.test(navigator.userAgent)) {
// Firefox
e.href = '/images/favicon/favicon.gif';
}
}
</script> </script>
<script> <script>
if (!/Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|Opera Mini/i.test(navigator.userAgent)) {
// Не смартфон
setTimeout(fn => { setTimeout(fn => {
const buffer = document.title; const buffer = document.title;
const length = buffer.length; const length = buffer.length;
@@ -54,8 +69,9 @@
setInterval(fn => { setInterval(fn => {
for(let i = 8; --i > 0;) document.title = document.title.replaceAt(Math.random() * length, symbols[Math.floor(Math.random() * _length)]); for(let i = 8; --i > 0;) document.title = document.title.replaceAt(Math.random() * length, symbols[Math.floor(Math.random() * _length)]);
setTimeout(fn => document.title = buffer, 20); setTimeout(fn => document.title = buffer, 20);
}, 600); }, 300);
}, 5000); }, 20000);
}
</script> </script>
{% for meta in head.metas %} {% for meta in head.metas %}
<meta {% for name, value in meta.attributes %}{{name}}="{{value}}" {% endfor %} /> <meta {% for name, value in meta.attributes %}{{name}}="{{value}}" {% endfor %} />

View File

@@ -3,12 +3,12 @@
{% block body %} {% block body %}
<div id="cover" class="unselectable"> <div id="cover" class="unselectable">
<img src="/images/suck.jpg" alt="Dmitry Medvedev 2023 private photo funny in kitchen with family" <img src="/images/suck.jpg" alt="Dmitry Medvedev 2023 private photo funny on the kitchen with family"
ondragstart="return false"> ondragstart="return false">
</div> </div>
<header> <header>
<section> <section>
<h1>PMC WAGNER KIDNAPPED ME</h1> <h1 class="unselectable">PMC WAGNER KIDNAPPED ME</h1>
<canvas id="title"></canvas> <canvas id="title"></canvas>
</section> </section>
</header> </header>

View File

@@ -39,50 +39,51 @@
ondragstart="return false"> ondragstart="return false">
</section> </section>
<section id="name"> <section id="name">
<h3><a href="https://twitter.com/mirzaev_sexy">Arsen Mirzaev Tatyano-Muradovich</a></h3> <h3><a href="https://twitter.com/mirzaev_sexy" rel="author">Arsen Mirzaev Tatyano-Muradovich</a></h3>
<p>programmer, ethologist , anarchist and vegetarian</p> <p>programmer, ethologist , anarchist and vegetarian</p>
</section> </section>
</section> </section>
<section id="links"> <section id="links">
<section id="mail"> <section id="mail">
<span><b>Mails:</b></span> <span><b>Mails:</b></span>
<a href="mailto:arsen@mirzaev.sexy?subject=PMC%20Wagner">arsen@mirzaev.sexy</a> <span>(safely, but can be <a href="mailto:arsen@mirzaev.sexy?subject=PMC%20Wagner" rel="author">arsen@mirzaev.sexy</a>,
offline)</span>, <a href="mailto:red@hood.su?subject=PMC%20Wagner" rel="author">red@hood.su</a> <span>(reserve)</span>
<a href="mailto:red@hood.su?subject=PMC%20Wagner">red@hood.su</a> <span>(reserve)</span>
</section> </section>
<section id="messengers"> <section id="messengers">
<span><b>Messengers:</b></span> <span><b>Messengers:</b></span>
<a href="https://t.me/redloser">Telegram</a> <span>(@redloser)</span> <a href="https://t.me/redloser" rel="author">Telegram</a> <span>(@redloser)</span>
</section> </section>
<section id="projects"> <section id="projects">
<span><b>Projects:</b></span> <span><b>Projects:</b></span>
<a href="https://mirzaev.sexy">mirzaev.sexy</a>, <a href="https://mirzaev.sexy" rel="external">mirzaev.sexy</a>,
<a href="https://git.mirzaev.sexy">git.mirzaev.sexy</a> <span>(repositories)</span>, <a href="https://git.mirzaev.sexy" rel="external">git.mirzaev.sexy</a>,
<a href="https://git.mirzaev.sexy/mirzaev/site-repression">Repository of this site</a> <a href="https://git.mirzaev.sexy/mirzaev/site-repression" rel="help">Repository of this site</a>
</section> </section>
<section id="social"> <section id="social">
<span><b>Socials:</b></span> <span><b>Socials:</b></span>
<a href="https://twitter.com/mirzaev_sexy">Twitter</a> <span>(@mirzaev_sexy)</span>, <a href="https://twitter.com/mirzaev_sexy" rel="author">Twitter</a> <span>(@mirzaev_sexy)</span>,
<a href="https://github.com/mature-woman">GitHub</a> <span>(mature-woman)</span>, <a href="https://github.com/mature-woman" rel="author">GitHub</a> <span>(mature-woman)</span>,
<a href="https://github.com/mature-woman/site-repression">Repository of this site</a> <span>(github <b><a href="https://discord.bebra.team" rel="nofollow" title="We will be glad to see you!">Discord server ⚡ (RU+EN)</a></b>
mirror)</span>,
<a href="https://discord.gg/zAe3C5fyev">Discord server</a> <span>(message me if the link is deactivated)</span>
</section> </section>
</section> </section>
</section> </section>
<section id="views" class="block"> <section id="views" class="block">
<section>
<h3> <h3>
Last 10 unique views Last 10 unique views
<!-- <i class="icon eye"></i> --> <!-- <i class="icon eye"></i> -->
</h3> </h3>
<section>
{% for view in views.last %} {% for view in views.last %}
<p> <p>
<span title="{{ view.country_name }}" class="unselectable">{{ view.country_flag.emoji }}</span> <span title="{{ view.country_name }}" class="unselectable">{{ view.country_flag.emoji }}</span>
<span title="{{ view.region }}">{{ view.region }}</span> <span title="{{ view.region }}">{{ view.region }}</span>
{% if view.referer is not null %}<samp>(<small title="{{ view.referer }}">{{ view.referer }}</small>)</samp>{% endif %} {% if view.referer is not null %}<samp>(<small title="{{ view.referer }}&lrm;">{{ view.referer
}}&lrm;</small>)</samp>{% endif %}
<span title="{{ view.useragent }}">{{ view['x-forwarded-for'] ?? view.ip }}</span> <span title="{{ view.useragent }}">{{ view['x-forwarded-for'] ?? view.ip }}</span>
<span title="{{ view.created|date('Y.m.d H:i:s') }}"><b>{{ view.created|date('H:i:s') }}</b></span> <span title="{{ view.created }}" data-date-convert="title"
data-date-convert-format="year.month.day hour:minute:second">
<b data-date-convert="value">{{ view.created }}</b>
</span>
</p> </p>
{% endfor %} {% endfor %}
</section> </section>
@@ -108,10 +109,29 @@
<span>0. You just DO WHAT THE FUCK YOU WANT TO.</span> <span>0. You just DO WHAT THE FUCK YOU WANT TO.</span>
</p> </p>
<img src="/images/pmc_boykisser.png" alt="PMC Boykisser Group" class="unselectable" ondragstart="return false"> <img style="rotate: 30deg" src="/images/pmc_boykisser.png" alt="PMC Boykisser Group" class="unselectable"
ondragstart="return false">
</section> </section>
<section id="navalny" class="block unselectable">
<a style="eight: 100%; display: block;" href="https://en.wikipedia.org/wiki/Death_and_funeral_of_Alexei_Navalny"
hreflang="en" rel="nofollow" ondragstart="return false;">
<svg style="width: 100%;">
<mask id="NAVALNY" width="100%" height="100%" x="0%" y="0%">
<text fill="#ffffff"
style="font-family: commissioner;font-size: 9.5rem;font-weight: bold; transform: translate(0px, 150px)"
x="50%" text-anchor="middle">
<tspan>NAVALNY</tspan>
</text>
</mask>
</svg>
</a>
</section>
<!-- <section data-layer><video src="/videos/bahmut.mp4" poster="/images/misha.png" width="100%" muted="false" loop="true" autoplay></video></section> --> <!-- <section data-layer><video src="/videos/bahmut.mp4" poster="/images/misha.png" width="100%" muted="false" loop="true" autoplay></video></section> -->
<section data-layer-color="red" data-layer-width="50" data-layer-height="35" data-layer-speed="0.003" data-layer> <section
style="scale: 1; z-index: -100; width: calc(110%); height: calc(110%); left: calc(-5%); top: calc(-5%); pointer-events: none;"
data-layer-color="red" data-layer-width="70" data-layer-height="50" data-layer-speed="0.0006" data-layer>
<canvas class="shell"></canvas> <canvas class="shell"></canvas>
</section> </section>
<!-- <section data-layer-color="blue" data-layer-width="100" data-layer-height="160" data-layer-speed="0.004" data-layer> <!-- <section data-layer-color="blue" data-layer-width="100" data-layer-height="160" data-layer-speed="0.004" data-layer>
@@ -120,7 +140,7 @@
<canvas class="shell"></canvas></section> <canvas class="shell"></canvas></section>
--> -->
<svg> <svg style="position: absolute; width: 0px; height: 0px; opacity: 0;">
<defs> <defs>
<filter id="blob"> <filter id="blob">
<feGaussianBlur in="SourceGraphic" stdDeviation="24" result="blur"></feGaussianBlur> <feGaussianBlur in="SourceGraphic" stdDeviation="24" result="blur"></feGaussianBlur>
@@ -137,7 +157,6 @@
{{ block('header_js') }} {{ block('header_js') }}
{{ block('account_js') }} {{ block('account_js') }}
<script src="/js/bloodchaos.js" defer></script> <script src="/js/bloodchaos.js" defer></script>
<script src="/js/hollow.js" defer></script>
<script src="/js/womb3-simplex.js" type="module" defer></script> <script src="/js/womb3-simplex.js" type="module" defer></script>
{% endblock %} {% endblock %}
@@ -146,34 +165,76 @@
{{ block('header_js_init') }} {{ block('header_js_init') }}
{{ block('troller_js_init') }} {{ block('troller_js_init') }}
<script> <script>
// Generate dates with user timezone
for (const element of document.body.querySelectorAll('[data-date-convert]')) {
// Enumerating elements to convert
// Initializing a format of convertation
const format = element.getAttribute('data-date-convert-format') ?? 'hour:minute:second';
if (element.getAttribute('data-date-convert') === 'title') {
// Title
// Initializing a date with timezone
const date = new Date(element.getAttribute('title') * 1000);
// Initializing parts of the date
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDay();
let hour = date.getHours();
let minute = date.getMinutes();
let second = date.getSeconds();
// Convertation parts of the date to double symbols
month = (month < 10 ? "0" : '') + month;
day = (day < 10 ? "0" : '') + day;
hour = (hour < 10 ? "0" : '') + hour;
minute = (minute < 10 ? "0" : '') + minute;
second = (second < 10 ? "0" : '') + second;
if (format === 'hour:minute:second') element.setAttribute('title', `${hour}:${minute}:${second}`);
else if (format === 'year.month.day hour:minute:second') element.setAttribute('title', `${year}.${month}.${day} ${hour}:${minute}:${second}`);
} else {
// Value (implied)
// Initializin a date with timezone
const date = new Date(element.innerText * 1000);
// Initializing parts of the date
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDay();
let hour = date.getHours();
let minute = date.getMinutes();
let second = date.getSeconds();
// Convertation parts of the date to double symbols
month = (month < 10 ? "0" : '') + month;
day = (day < 10 ? "0" : '') + day;
hour = (hour < 10 ? "0" : '') + hour;
minute = (minute < 10 ? "0" : '') + minute;
second = (second < 10 ? "0" : '') + second;
if (format === 'hour:minute:second') element.innerText = `${hour}:${minute}:${second}`;
else if (format === 'year.month.day hour:minute:second') element.innerText = `${year}.${month}.${day} ${hour}:${minute}:${second}`;
}
}
document.addEventListener('bloodchaos.loaded', function(e) { document.addEventListener('bloodchaos.loaded', function(e) {
const bloodchaos = e.detail.bloodchaos; const bloodchaos = e.detail.bloodchaos;
bloodchaos.shell = document.getElementById('title'); bloodchaos.shell = document.getElementById('title');
bloodchaos.block.width = bloodchaos.block.height = 12; bloodchaos.block.width = bloodchaos.block.height = 16;
bloodchaos.init(800, 80); bloodchaos.init(bloodchaos.shell.offsetWidth, bloodchaos.shell.offsetHeight);
bloodchaos.generate('#444'); bloodchaos.generate('#444');
window.addEventListener('resize', function(e) {
bloodchaos.init(bloodchaos.shell.offsetWidth, bloodchaos.shell.offsetHeight);
});
}); });
document.addEventListener('hollow.loaded', function(h) {
document.addEventListener('womb.loaded', function(w) { document.addEventListener('womb.loaded', function(w) {
// Инициализация слоёв
const layers = new h.detail.hollow();
layers.opacity = false;
layers.blackout = false;
layers.expand = true;
layers.blur = false;
layers.generate(0);
window.addEventListener("wheel", function(e) {
const layer = document.querySelectorAll('[data-layer]')[layers.current()].lastElementChild.getBoundingClientRect();
// У слоёв есть отрицательный margin а так же height за пределами 100%
//const offset = window.innerHeight * 12.5 / 100;
//if (e.wheelDelta > 0 && layer.bottom - offset * 2 <= window.innerHeight) layers.next();
//else if (layer.top + offset >= 0) layers.previous();
});
for (const shell of document.querySelectorAll('section[data-layer]>[class=shell]')) { for (const shell of document.querySelectorAll('section[data-layer]>[class=shell]')) {
// Перебор оболочек // Перебор оболочек
@@ -181,19 +242,19 @@
if (layer instanceof w.detail.womb) { if (layer instanceof w.detail.womb) {
// Перебор слоёв // Перебор слоёв
// Инициализация цвета слоя // Инициализация цвета
const color = shell.parentElement.getAttribute('data-layer-color'); const color = shell.parentElement.getAttribute('data-layer-color');
// Инициализация цвета слоя // Инициализация ширины
const width = +shell.parentElement.getAttribute('data-layer-width'); const width = +shell.parentElement.getAttribute('data-layer-width');
// Инициализация цвета слоя // Инициализация высоты
const height = +shell.parentElement.getAttribute('data-layer-height'); const height = +shell.parentElement.getAttribute('data-layer-height');
// Инициализация цвета слоя // Инициализация скорости
const speed = +shell.parentElement.getAttribute('data-layer-speed'); const speed = +shell.parentElement.getAttribute('data-layer-speed');
// Инициализация динамичности слоя // Инициализация динамичности
let offset = Math.random() * 100; let offset = Math.random() * 100;
// Удалось инициализировать слой // Удалось инициализировать слой
@@ -202,11 +263,15 @@
layer.block.height = height; layer.block.height = height;
layer.generate(offset += speed, color); layer.generate(offset += speed, color);
if (!/Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|Opera Mini/i.test(navigator.userAgent)) {
// Не смартфон
// Инициализация сдвига // Инициализация сдвига
setInterval(function() { setInterval(function() {
layer.dump(); layer.dump();
layer.generate(offset += speed, color); layer.generate(offset += speed, color);
}, 30); }, 120);
window.addEventListener('resize', function(e) { window.addEventListener('resize', function(e) {
layer.init(); layer.init();
@@ -215,7 +280,7 @@
}, true); }, true);
} }
} }
}); }
}); });
function glitch(element, amount = 8, reset = 20, duration = 12, sleep = 10000) { function glitch(element, amount = 8, reset = 20, duration = 12, sleep = 10000) {
@@ -249,6 +314,9 @@
const boykisser = document.getElementById('license').getElementsByTagName('img')[0]; const boykisser = document.getElementById('license').getElementsByTagName('img')[0];
//if (!/Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|Opera Mini/i.test(navigator.userAgent)) {
// Не смартфон
// Initialize iterator // Initialize iterator
let r = 0; let r = 0;
@@ -256,7 +324,8 @@
// Found element // Found element
// Rotate // Rotate
setInterval('boykisser.style.rotate = --r + "deg"', 240); setInterval(fn => boykisser.style.rotate = --r + "deg", 240);
} }
//} else boykisser.remove();
</script> </script>
{% endblock %} {% endblock %}

View File

@@ -3,23 +3,51 @@
{% endblock %} {% endblock %}
{% block body %} {% block body %}
<section class="popup"> <video style="z-index: 999999; position: fixed; left: 0; top: 0; right: 0; bottom: 0; width: 100vw; height: 100vh; display: none; object-fit: cover;
cursor: none;" id="end" class="unselectable"src="/videos/end.mp4" poster="/images/misha.png" ondragstart="return false"></video>
<video style="z-index: 999999; position: fixed; left: 0; top: 0; right: 0; bottom: 0; width: 100vw; height: 100vh; display: none; object-fit: cover;
cursor: none;" id="end_post" class="unselectable"src="/videos/end_post.mp4" poster="/images/misha.png" ondragstart="return false"></video>
<section id="welcome" class="popup" style="display: none">
<div class="wrap"> <div class="wrap">
<h4>WARNING</h4> <h4 class="unselectable">WARNING</h4>
<ul>
<li><b>Bright</b> graphics libraries</li>
<li>Can be <b>screamers</b></li>
<li>Political content</li>
<li>Sounds and music</li>
<li><b>Cruel</b> information</li>
<li><b>Cringe</b> information</li>
</ul>
<p> <p>
My site uses my <b>bright</b> graphics libraries, be careful. If you are from Russia, then <b>refrain</b> from distributing this material
</p>
<p>
If you are from Russia, then refrain from distributing this material - it is <b>dangerous for your life</b>
</p> </p>
<div class="row separated"> <div class="row separated">
<button <button
onclick="this.parentElement.parentElement.parentElement.remove();"> onclick="this.parentElement.parentElement.parentElement.remove(); document.body.style.removeProperty('overflow-y');">
I understand I understand
</button> </button>
<button onclick="bebra.what.play(); alert('I know your geolocation'); this.disabled = true">I didn't <button
onclick="bebra.what.play(); this.innerText = 'I see you'; setTimeout(fn => {alert('{{ creepy }}'); this.removeAttribute('onmouseover'); this.removeAttribute('onmouseleave'); setTimeout(fn => this.innerText = 'you have 5 minutes', 10); setTimeout(fn => this.innerText = 'you have 4 minutes', 60010); setTimeout(fn => this.innerText = 'you have 3 minutes', 120010); setTimeout(fn => this.innerText = 'you have 2 minutes', 180010); setTimeout(fn => this.innerText = 'you have 1 minute', 240010); setTimeout(fn => { const end = document.getElementById('end'); end.style.display = 'block'; this.parentElement.parentElement.parentElement.remove(); end.play(); end.onended = fn => {end.remove(); const end_post = document.getElementById('end_post'); end_post.style.display = 'block'; end_post.play(); end_post.onended = fn => {end_post.remove(); document.body.innerText = 'теперь посмотри на свою страницу вконтакте'; document.body.classList.add('unselectable'); document.body.setAttribute('style', 'color: #1f2631; text-align: end; margin-right: 10vw; width: 90vw; margin-top: 60vh; overflow-y: hidden;')};}}, 320010); this.disabled = true; }, 10);"
onmouseover="this.innerText = 'Are you sure?'"
onmouseleave="this.innerText = 'I did not understand'"
>I did not
understand</button> understand</button>
</div> </div>
</div> </div>
</section> </section>
<script>
const welcome = fn => {
clearTimeout(sex);
window.removeEventListener('scroll', welcome);
document.getElementById('welcome').removeAttribute('style');
document.body.style.setProperty('overflow-y', 'hidden');
};
window.addEventListener("scroll", welcome);
const sex = setTimeout(welcome, 6000);
</script>
{% endblock %} {% endblock %}

View File

@@ -6,7 +6,7 @@
<img id="troller_image_what" class="hide unselectable" src="/images/what2.jpg" ondragstart="return false" /> <img id="troller_image_what" class="hide unselectable" src="/images/what2.jpg" ondragstart="return false" />
<img id="troller_image_furgal" class="hide unselectable" src="/images/furgal.jpg" onclick="return bebra.furgal.stop();" <img id="troller_image_furgal" class="hide unselectable" src="/images/furgal.jpg" onclick="return bebra.furgal.stop();"
ondragstart="return false" /> ondragstart="return false" />
<img id="troller_image_misha" class="unselectable" width="80" height="50" src="/images/misha.png" <img style="opacity: 0;" id="troller_image_misha" class="unselectable" width="80" height="50" src="/images/misha.png"
ondragstart="return false" /> ondragstart="return false" />
<audio id="troller_sound_furgal" class="hide" src="/sounds/putin.mp3" preload="true"></audio> <audio id="troller_sound_furgal" class="hide" src="/sounds/putin.mp3" preload="true"></audio>
<audio id="troller_sound_what" class="hide" src="/sounds/what.mp3" preload="true"></audio> <audio id="troller_sound_what" class="hide" src="/sounds/what.mp3" preload="true"></audio>
@@ -31,8 +31,12 @@
// Вызов события о том, что шутник инициализирован // Вызов события о том, что шутник инициализирован
document.dispatchEvent(new CustomEvent("troller.initialized")); document.dispatchEvent(new CustomEvent("troller.initialized"));
if (!/Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|Opera Mini/i.test(navigator.userAgent)) {
// Не смартфон
// Активация изображения при потере фокуса с окна // Активация изображения при потере фокуса с окна
setTimeout(() => bebra.what.enable(), 300000); setTimeout(() => bebra.what.enable(), 300000);
}
setTimeout(() => bebra.furgal.start(true), 120000); setTimeout(() => bebra.furgal.start(true), 120000);
@@ -46,7 +50,7 @@
misha.style.top = Math.random() * (window.innerHeight - 50) + 50 + 'px'; misha.style.top = Math.random() * (window.innerHeight - 50) + 50 + 'px';
onmousemove = function(e) { onmousemove = function(e) {
misha.style.left = e.pageX + 20 + 'px'; misha.style.left = e.pageX + 20 + 'px';
misha.style.top = e.pageY - 250 + 'px'; misha.style.top = e.pageY - 40 + 'px';
} }
const misha_repeat = (value) => { const misha_repeat = (value) => {
misha.style.opacity = value; misha.style.opacity = value;