Π¦Π΅Π»Ρ:
ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π° turnstile Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ SG.
ΠΠΈΠ·Π½Π΅Ρ Π·Π°Π΄Π°ΡΠ°:
Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ Π±ΠΎΡΠΎΠ²ΡΠ΅ ΠΈ ΡΠ΅ΠΉΠΊΠΎΠ²ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠ°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π±ΠΎΡ Π»ΠΎΠ³ΠΈΠ½Ρ. ΠΡΠΈΡΠΈΠ½Π° Π² ΡΠΎΠΌ ΡΡΠΎ Π±ΠΎΡ Π»ΠΎΠ³ΠΈΠ½Ρ Π°Π±ΡΠ·ΡΡ ΠΏΠ»Π°ΡΠ΅ΠΆΠΊΠΈ, ΡΡΠΎ Π½Π΅ΡΠ΅Ρ ΡΠΈΡΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
Π Π΅ΡΠ΅Π½ΠΈΠ΅: ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» turnstile.
ΠΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅:
ΠΌΡ ΡΠΆΠ΅ ΠΏΠ»ΠΎΡΠ½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Ρ Ρ CloudFlare. ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π½Π΅ ΡΡ ΡΠ΄ΡΠΈΡ ΠΎΠ±ΡΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΈΡ ΡΡΠ»ΡΠ³.
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
- ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈ Π²ΡΠΊΠ»ΡΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΏΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ (ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠΈΠ³ΠΈ ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ).
- ΠΡ Ρ ΠΎΡΠΈΠΌ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ sitekey Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ api.hostnames.
- ΠΡ Ρ ΠΎΡΠΈΠΌ Π²ΡΠ·ΡΠ²Π°ΡΡ turnstile ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π»ΠΎΠ³ΠΈΠ½Π°.
- ΠΡ Ρ ΠΎΡΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠΎΠΊΠ΅Π½Π° turnstile Π½Π° ΠΌΠ΅ΡΠΎΠ΄Ρ Π»ΠΎΠ³ΠΈΠ½Π° ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ
- ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ: ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π΄Π΅ΠΏΠΎΠ·ΠΈΡΠ°.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π°ΠΊΠΊΠ°ΡΠ½ΡΠΎΠ²:
ΠΡ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΈΠΌΠ΅Π΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π½ΡΡ
Π°ΠΊΠΊΠ°ΡΠ½ΡΠΎΠ² cloudflare Π½Π° ΠΊΠΎΡΠΎΡΡΡ
Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ ΡΠ°Π·Π½ΡΠ΅ Π΄ΠΎΠΌΠ΅Π½Ρ. ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ Π°ΠΊΠΊΠ°ΡΠ½Ρ cloudflare, ΠΏΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π»ΠΈΠΌΠΈΡΡ cloudflare Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π·Π°ΡΡΠ½ΡΡΡ Π²ΡΠ΅ Π½Π°ΡΠΈ Π΄ΠΎΠΌΠ΅Π½Ρ ΠΈ pages Π² ΠΎΠ΄ΠΈΠ½ Π°ΠΊΠΊΠ°ΡΠ½Ρ. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ cloudflare ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° - turnstile public key + turnstile secret key = 10 domain names.
ΠΡΠΎ Π·Π½Π°ΡΠΈΡ ΡΡΠΎ ΠΌΡ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ Π½Π°ΡΠΈ Π»Π΅Π½Π΄ΠΈΠ½Π³ΠΈ Ρ turnstile, Ρ.ΠΊ. ΠΌΡ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΠΌ Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΡΡ turnstile Π·Π°ΡΡΠ½ΡΡΡ Π²ΡΠ΅ Π½Π°ΡΠΈ Π΄ΠΎΠΌΠ΅Π½Ρ ΡΠ°Π·Π±ΡΠΎΡΠ°Π½Π½ΡΠ΅ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°ΠΌ.
ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ Ρ ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ turnstile public key ΠΏΠΎΠ»ΡΡΠ°Π»ΡΡ Ρ Π±Π΅ΠΊΠ΅Π½Π΄Π°. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π΅ ΠΌΡ Π±Ρ Ρ ΠΎΡΠ΅Π»ΠΈ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠ°ΡΡ public/secret key Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ hostname (ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡΠ° ΡΠ΅Π³ΡΠ»ΡΡΠΎΠΊ ΠΈΠ»ΠΈ Π³Π»ΠΎΠ±ΠΎΠ², Π½ΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠΎΠΆΠ΅ ΠΎΠΊ).
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΡΡ Π΅ΠΌΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ:
Π ΠΊΠΎΠ½ΡΠΈΠ³ ΡΠ°ΠΉΡΠ° Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΡ ΠΎΠΏΡΠΈΡ:
$cfg['turnstile'] = true; // enable turnstile integration
$cfg['turnstileKeys'] => [
'alev.casino' => ['publicKey','privateKey'],
'*.alev.casino' => ['publicKey','privateKey'],
'*.alevcasino.com' => ['publicKey','privateKey'],
'*' => ['publicKey','privateKey'], // default key, used when no match
];
$cfg['turnstile_login'] = true; // server validation for login
$cfg['turnstile_signup'] = true; // for signup
$cfg['turnstile_deposit'] = true; // for deposit
Π’Π°ΠΊ ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄:
GET /api/v1/turnstile
{
publicKey: "key",
}
ΠΠΎΡΠΎΡΡΠΉ Π±Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π» ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ, ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° Π΄ΠΎΠΌΠ΅Π½Π΅ Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ» Π·Π°ΠΏΡΠΎΡ. Π ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° Ρ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° β ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ΄Π°Π²Π°ΡΡ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ.
ΠΠ°ΠΆΠ½ΠΎ: ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΎΠ±Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»Π° Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π΅Π΅ ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ Π½Π° Π»Π΅Π½Π΄ΠΈΠ½Π³Π°Ρ , Π΄Π΅Π»Π°Ρ ΠΎΠ΄ΠΈΠ½ Π΄Π΅ΡΠ΅Π²ΡΠΉ Π·Π°ΠΏΡΠΎΡ (Π° Π½Π΅ Π²ΡΡΡΠ³ΠΈΠ²Π°Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°)
ΠΡ Π½Π΅ Ρ ΠΎΡΠΈΠΌ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ turnstile Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΡΠΈΡΠΈΠ½Π° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΡΠΎΠΆΠ΅ ΡΡΠΎΠΈΡ Π΄Π΅Π½Π΅Π³. ΠΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ Π½Π°Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΡΠΎΡΠΌΡ Π»ΠΎΠ³ΠΈΠ½Π°/ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ. Π’Π°ΠΊΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π°ΡΡΠ΅ΡΡΠ°ΡΠΈΡ turnstile ΠΈΠΌΠ΅Π΅Ρ Π²ΡΠ΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ, ΠΎΠΊΠΎΠ»ΠΎ 5ΠΈ ΠΌΠΈΠ½ΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π²ΡΠ·ΡΠ²Π°ΡΡ Π°ΡΡΠ΅ΡΡΠ°ΡΠΈΡ (ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ) ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅Π»Π΅Π²ΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ ΠΈ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΌ Π±ΡΠ΄ΠΆΠ΅Ρ Π½Π° Π·Π°ΠΏΡΡΠΊΠ°Ρ Π°ΡΡΠ΅ΡΡΠ°ΡΠΈΠΈ ΠΈ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ Π»ΠΈΡΠ½ΠΈΠΉ ΡΠ°Π· Π½Π°Π³ΡΡΠΆΠ°ΡΡ Π±ΡΠ°ΡΠ·Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
Π’ΠΎ Π΅ΡΡΡ ΠΏΡΠΈ ΡΠ΅Π½Π΄Π΅ΡΠ΅ ΡΠΎΡΠΌΡ Π»ΠΎΠ³ΠΈΠ½Π° ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΌΡ Π±Ρ Ρ ΠΎΡΠ΅Π»ΠΈ Π²Π½ΡΡΡΠΈ ΡΠΎΡΠΌΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ turnstile, ΠΊΠΎΡΠΎΡΡΠΉ Π±Ρ ΡΡΠ°Π·Ρ Π·Π°ΠΏΡΡΠΊΠ°Π» Π°ΡΡΠ΅ΡΡΠ°ΡΠΈΡ ΠΈ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π» ΡΠΎΠΊΠ΅Π½ Π°ΡΡΠ΅ΡΡΠ°ΡΠΈΠΈ Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π·Π°ΠΏΡΠΎΡΠ° Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄.
ΠΠ΅ΠΊΠ΅Π½Π΄, ΠΎΠ±Π»Π°Π΄Π°Ρ private key, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π°ΡΡΠΎΡΡΠΈΠΉ Π»ΠΈ Π±ΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΡΠΎΠΊΠ΅Π½. ΠΡΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠΏΠ΅ΡΠ½Π° ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π»ΠΎΠ³ΠΈΠ½ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ.
ΡΡΠΎΠ½ΡΠ΅Π½Π΄ ΡΠ°ΡΡΡ
Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΡΠΈΠΌΠ΅Ρ ΡΠΊΡΠΈΠΏΡΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ Π·Π°ΠΏΡΡΠΊΠ° turnstile:
<script>
Β Β (function() {
Β Β Β console.log("ts loaded");
Β Β Β var tsblock = document.createElement("div");
Β Β Β tsblock.id = "ts";
Β Β Β var modal = document.createElement("div");
Β Β Β modal.style.display = "none";
Β Β Β modal.appendChild(tsblock);
Β Β Β document.body.appendChild(modal);
Β Β Β var onloadTurnstileCallback = function () {
Β Β Β Β var tsid = turnstile.render(tsblock, {
Β Β Β Β Β appearance: "interaction-only",
Β Β Β Β Β sitekey: "3x00000000000000000000FF",
Β Β Β Β Β action: window.location.hostname.replaceAll('.','_'),
Β Β Β Β Β callback: function (token) {
Β Β Β Β Β Β console.log("Challenge Success token", token);
Β Β Β Β Β Β modal.style.display = "none";
Β Β Β Β Β Β turnstile.remove(tsid);
Β Β Β Β Β Β sessionStorage.setItem("ts", true);
Β Β Β Β Β },
Β Β Β Β Β "before-interactive-callback": function (before) {
Β Β Β Β Β Β Β modal.style =
Β Β Β Β Β Β Β Β "position: fixed;width: 100vw;height: 100vh;left: 0;top: 0;z-index: 9999;background-color: #00000076;display: flex;justify-content: center;align-items: center;backdrop-filter: blur(6px);";
Β Β Β Β Β Β Β dataLayer.push({ event: "turnStyleLaunched" });
Β Β Β Β Β },
Β Β Β Β Β "error-callback": function (err) {
Β Β Β Β Β Β dataLayer.push({ event: "turnStyleError", turnStyleError: err });
Β Β Β Β Β Β console.log("error", err);
Β Β Β Β Β },
Β Β Β });
Β Β };
Β Β const script = document.createElement('script');
Β Β script.src = 'https://challenges.cloudflare.com/turnstile/v0/api.js??render=explicit';
Β Β script.type = 'text/javascript';
Β Β script.onload=onloadTurnstileCallback;
Β Β script.defer = true;
Β Β document.head.appendChild(script);
Β })();
Β </script>
Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΊΡΠΈΠΏΡ Π±Π»ΠΈΠ·ΠΊΠΈΠΉ ΠΊ Π²ΡΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ turnstile Π½Π° ΡΠ°ΠΉΡ. ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΡΠ°ΠΉΡΠ΅ β ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΡΠ΅ΡΡΠΎΠ²Π°Ρ Π°ΡΡΠ΅ΡΡΠ°ΡΠΈΡ.
ΠΠ°ΠΆΠ½ΡΠ΅ Π΄Π»Ρ Π½Π°Ρ ΠΌΠΎΠΌΠ΅Π½ΡΡ:
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ turnstyle Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ ΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ render=explicit. ΠΠ½ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ turnstile Π½Π΅ Π»Π΅Π· Π² Π½Π°Ρ Π΄ΠΎΠΌ ΠΈ Π½Π΅ Π½Π°ΡΠΈΠ½Π°Π» ΡΠ°ΠΌ ΡΡΠΎ-ΡΠΎ Π² Π½Π΅Π³ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ. ΠΡ Ρ
ΠΎΡΠΈΠΌ ΡΠ°ΠΌΠΈ Π²ΡΠ·Π²Π°ΡΡ Π΅Π³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½.
ΠΠ° ΠΏΡΠΎΠ΄ΡΠΊΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π΅Π³ΠΎ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ, ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ·ΠΆΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ°, Π½ΠΎ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠΎΡΠΌΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ/Π»ΠΎΠ³ΠΈΠ½Π°.
ΠΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΡΠΎΡΠΌΡ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² Π½Π΅Π΅ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π²Π½ΡΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠ΅Π½ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ Π±Π»ΠΎΠΊ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΊΠ°ΠΏΡΡΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΡΡΡΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ DOM ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ turnstile.render(domElement, options), Π³Π΄Π΅ domElement ΡΡΠΎ ΡΠΊΡΡΡΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π²Π½ΡΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠΌ turnstile. Π’Π°ΠΊ ΠΆΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ°:
appearance: "interaction-only": Π΄Π»Ρ Π½Π°Ρ ΡΡΠΎ ΡΠ°ΠΌΠ°Ρ Π²Π°ΠΆΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°. ΠΠ½Π° Π³ΠΎΠ²ΠΎΡΠΈΡ Π½Π΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ turnstile, Π΅ΡΠ»ΠΈ Π°ΡΡΠ΅ΡΡΠ°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΠΏΠ΅ΡΠ½Π°. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π½Π΅ΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΏΠΎΠ»ΡΡΠ°Ρ Π·Π°ΠΏΡΠΎΡ Π½Π° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ½ΠΎΡΡΠΈ.sitekey: "xxx",: ΡΡΠ΄Π° ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ Π½Π°ΡΠΈΠΌ Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ (ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΠ· api ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π½Π΅Π΅)action: window.location.hostname.replaceAll('.','_'): ΡΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠ΅Π΄Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ Π²ΠΈΠ΄Π½ΠΎ Π²Π½ΡΡΡΠΈ Π°Π΄ΠΌΠΈΠ½ ΠΏΠ°Π½Π΅Π»ΠΈ cloudflare. Π£Π΄ΠΎΠ±Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΡΠ΄Π° hostname Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°ΠΏΡΡΠ΅Π½ turnstile, ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ Π² ΡΠ°Π·ΡΠ΅Π·Π΅ ΡΠ°Π·Π½ΡΡ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ².
Π’Π°ΠΊ ΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ», ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΡΠ΄Π° ΡΠΈΠΏ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ, login, signup ΠΈΠ»ΠΈ deposit. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ ΠΊΠ»ΡΡ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ Π²Π½ΡΡΡΠΈ Π°Π΄ΠΌΠΈΠ½ ΠΏΠ°Π½Π΅Π»ΠΈ cloudlare.callback: function (token)- ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΊΠΎΡΠΎΡΡΡ Π½Π°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ ΡΠΎΠΊΠ΅Π½. ΠΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ΅ΠΏΠΈΡΡ ΠΊ ΡΠΏΠΈΡΠΊΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠΎΡΠΌΠΎΠΉ. Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠΎΡ ΡΠΎΠΊΠ΅Π½ ΡΡΠΎ ΠΈ Π΅ΡΡΡ ΠΏΡΠΈΠ·Π½Π°ΠΊ Π°ΡΡΠ΅ΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄Π°Π»Π΅Π΅ Π²Π°Π»ΠΈΠ΄ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π΅."before-interactive-callback": function (before): ΡΡΠΎΡ Π²ΡΠ·ΠΎΠ² ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ Π²ΡΠ΅ ΠΆΠ΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΠΎΡΡ. Π ΡΡΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΡΠ°Π½Π½Π΅Π΅ ΡΠΊΡΡΡΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠ΅Π½ Π±Π»ΠΎΠΊ turnstile"error-callback": function (err): ΡΡΡ Π±ΡΠ΄ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΏΡΠΈΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π°ΡΡΠ΅ΡΡΠ°ΡΠΈΠΈ, ΡΠ°ΠΊ ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°.
ΠΠ½Π°Π»ΠΈΡΠΈΠΊΠ°
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π² Π°Π½Π°Π»ΠΈΡΠΈΠΊΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ:
turnStyleLaunched: Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅, ΡΡΠΎΠ±Ρ Π² Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ΅ Π²ΠΈΠ΄Π΅ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠΈΠ³Π΅ΡΠΈΠ»ΠΈ ΡΡΡΠ½ΡΡ Π°ΡΡΠ΅ΡΡΠ°ΡΠΈΡ.turnStyleError: Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅, Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΠΎΠ»Π΅ΠΌ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠΎ Ρ Π»ΡΠ΄Π΅ΠΉ ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ. Π‘ΠΏΠΈΡΠΎΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ
ΠΠ°ΠΌ ΠΠΠΠΠ ΠΈΠΌΠ΅ΡΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π² Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ΅.
Π‘Π΅ΡΠ²Π΅ΡΠ½Π°Ρ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΡΠΎΠΊΠ΅Π½Π° Π°ΡΡΠ΅ΡΡΠ°ΡΠΈΠΈ
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΏΡΠΈΠΌΠ΅Ρ Π½Π° php. Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ: ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ, ΡΠΎΠΊΠ΅Π½ ΠΈ ip Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΈΡΠ΅Π» Π·Π°ΠΏΡΠΎΡ. ΠΠ° Π±Π°Π·Π΅ ΡΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π°ΡΡΠ΅ΡΡΠ°ΡΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ.
ΠΠΠΠΠ: Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π°ΡΡΠ΅ΡΡΠΎΠ²Π°Π½Ρ, Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° cfray. Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΠΠΠΠ₯ΠΠΠΠΠ«Π Π£Π‘ΠΠΠΠΠΠ Π΄Π»Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ CF ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠΎΠ² ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΏΡΡΠΊΠ°ΠΌΠΈ ΠΎΠ±ΠΎΠΉΡΠΈ turnstile. ΠΠ°ΠΌ Π²Π°ΠΆΠ½ΠΎ Π²Π΅ΡΡΠΈ Π»ΠΎΠ³, Π²ΡΠ΅Ρ ΡΡΠΏΠ΅ΡΠ½ΡΡ Π°ΡΡΠ΅ΡΡΠ°ΡΠΈΠΉ ΠΈ ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΡ ΠΈΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² CFRay.
ΠΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅: CF ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΡΡΠΎΡΠ½ΠΈΠ»ΠΈ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ hostname ΠΏΡΠΈ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΡΠ²Π΅ΡΠ°. ΠΠ°ΠΆΠ½ΠΎ ΡΡΠΎ Π½Π΅ Π·Π°Π±ΡΡΡ (Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠΎΠ³ΠΎ Π½Π΅Ρ)
ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ
ΠΠΎΡΠ»Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π·Π°ΡΠΈΡΡ Π»ΠΎΠ³ΠΈΠ½Π° ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π½ΡΡΡΡΡ Π·Π°ΡΠΈΡΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° Π΄Π΅ΠΏΠΎΠ·ΠΈΡΠ°.