рд░рд╕реНрдЯ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЯреАрдо, рд░реВрд╕реНрдЯ рдХреЗ рдПрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг, 1.33.0 рдХреА рд░рд┐рд▓реАрдЬрд╝ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реБрдП рдкреНрд░рд╕рдиреНрди рд╣реИред рд░рд╕реНрдЯ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИ рдЬреЛ рд╕рднреА рдХреЛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдФрд░ рдХреБрд╢рд▓ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддреА рд╣реИред
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЬрдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдЬрдВрдЧ рдХрд╛ рдкрд┐рдЫрд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рддреЛ рдЬрдВрдЧ рдХреЛ рд╕рдВрд╕реНрдХрд░рдг 1.33.0 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдмрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
$ rustup update stable
рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ rustup
рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рд╣рдорд╛рд░реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреГрд╖реНрда рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред Rust 1.33.0 рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддреГрдд рд░рд┐рд▓реАрдЬрд╝ рдиреЛрдЯреНрд╕ GitHub рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг 1.33.0 рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ
рдЗрд╕ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рдкреНрд░рдореБрдЦ рд╕реБрдзрд╛рд░: рдирдП рдкрд┐рди рдПрдкреАрдЖрдИ рдХреА const fn
рдХреНрд╖рдорддрд╛рдУрдВ рдФрд░ рд╕реНрдерд┐рд░реАрдХрд░рдг рдХрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╕реНрддрд╛рд░ред
const fn
рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛
const fn
рдЕрдм рдФрд░ рдЕрдзрд┐рдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ , рдЕрд░реНрдерд╛рддреН:
- рдмрд┐рдирд╛ рд╢рд░реНрдд (рдЕрдХрд╛рдЯреНрдп) рдкреИрдЯрд░реНрди рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реБрдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
const fn foo((x, y): (u8, u8)) { ... }
) - рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛ред
let x = 1;
) - mutable
let
рдмрд╛рдЗрдВрдбрд┐рдВрдЧ (рдЙрджрд╛ред let mut x = 1;
) - рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
x = y
) рдФрд░ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдСрдкрд░реЗрдЯрд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП x += y
), рдЕрдиреБрдорд╛рдиреЛрдВ рдХреЛ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╕рд╣рд┐рдд (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдлреАрд▓реНрдб рдпрд╛ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдкрд░рд┐рдгрд╛рдо - x[3] = 42
) - рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрдерди (рдЬреИрд╕реЗ
3;
)
рдЕрдм рдЖрдк "const fn" рд╕реЗ "const fn" рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ , рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
const unsafe fn foo() -> i32 { 5 } const fn bar() -> i32 { unsafe { foo() } }
рдЗрди рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдирд┐рд░рдВрддрд░ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ред рд╡реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдиреАрдЪреЗ рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВред
рдкрд┐рди рдПрдкреАрдЖрдИ
рдпрд╣ рд╕рдорд╕реНрдпрд╛ рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рдирдП рддрдВрддреНрд░ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддреА рд╣реИ, рдкреЗрд╢ рдХреА рдЬрд╛рддреА рд╣реИ type std :: pin :: рдкрд┐рди рдФрд░ рдорд╛рд░реНрдХрд░ рдЯрд╛рдЗрдк рдЕрдирдкрд┐рди ред рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреНрд░рд▓реЗрдЦрди "std :: pin" рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ :
рдХрднреА-рдХрднреА рдпрд╣ рдПрдХ рд╡рд╕реНрддреБ рдХреЗ рдЖрдВрджреЛрд▓рди рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рд╕реНрдореГрддрд┐ рдореЗрдВ рдЗрд╕рдХреЗ рдкрддреЗ рдХреА рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдпрддрд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрдВред рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдкрд░рд┐рджреГрд╢реНрдп рд╕реНрд╡рдпрдВ-рд╕рдВрджрд░реНрднрд┐рдд рд╕рдВрд░рдЪрдирд╛рдПрдВ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдРрд╕реА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЕрдорд╛рдиреНрдп рдкреЙрдЗрдВрдЯрд░реНрд╕ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ, рдЬрд┐рд╕рд╕реЗ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ (рдпреВрдмреА) рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
Pin<P>
рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ Pin<P>
рдХрд┐рд╕реА рднреА рдкреЙрдЗрдВрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдореЗрдореЛрд░реА рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрдерд╛рди рд╣реИ, рдЕрд░реНрдерд╛рддред рдЙрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрд╕рдХреА рд╕реНрдореГрддрд┐ рдХреЛ рдореБрдХреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ "рдкрд┐рди рдХрд┐рдпрд╛ рдЧрдпрд╛" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рдЙрдореНрдореАрдж рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЗрд╕ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓реЗрдЦрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЕрдм рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдПрдВрдЧреЗ (рдЬреЛ рдКрдкрд░ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдкрд░ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ API рдХрд╛ рд╕реНрдерд┐рд░реАрдХрд░рдг рд╕рднреА Rust рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдШрдЯрдирд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдкреНрд░рддреАрдХреНрд╖рд┐рдд async
/ await
рджрд┐рд╢рд╛ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрджрдо рд╣реИред рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рд╢реЗрд╖ рдХрд╛рд░реНрдп рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА areweasyncyet.rs рдкрд░ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
"_" рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд рдХрд░реЗрдВ
рдЕрдм рдЖрдк рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ "_" рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдпрд╣ рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдЕрдкрдирд╛ рдирд╛рдо рджрд░реНрдЬ рдХрд┐рдП рдмрд┐рдирд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
use std::io::Read as _;
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд░рд┐рд▓реАрдЬрд╝ рдиреЛрдЯ рджреЗрдЦреЗрдВред
рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рд╕реНрдерд┐рд░реАрдХрд░рдг
рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ рдЬреЛ рдирд┐рд░рдВрддрд░ рдмрди рдЧрдИ рд╣реИ:
- рд╕рднреА рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣_ {рдЬреЛрдбрд╝, рдЙрдк, mul, shl, shr} рд╡рд┐рдзрд┐рдпрд╛рдБ рдЕрдм рд╕реНрдерд┐рд░ рд╣реИрдВред
- рд╕рднреА рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реАрдХреЗ рд░реЛрдЯ_рд▓реЗрдлреНрдЯ, рд░реЛрдЯреЗрдЯ, рд░рд╛рдЗрдЯ рдФрд░ рд░реИрдкрд┐рдВрдЧ_ {рдРрдб, рд╕рдм, рдореНрдпреВ, рд╢рд▓, рд╢реНрд░реБ} рдЕрдм рд╕реНрдерд┐рд░ рд╣реИрдВред
- рд╕рднреА рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ is_positive рдФрд░ is_negative рд╡рд┐рдзрд┐рдпрд╛рдВ рдЕрдм рд╕реНрдерд┐рд░ рд╣реИрдВред
- рд╕рднреА рдиреЙрдирдЬреЗрд░реЛ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд┐рдзрд┐ рдЕрдм рд╕реНрдерд┐рд░ рд╣реИред
- рд╕рднреА рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЧрдгрдХ_рд╕рдВрдЦреНрдпрд╛рдПрдВ, рдЧрдгрдирд╛рдПрдВ, рдЧрдгрдирд╛_рдЬрд░реЛрдЬ, рдЕрдЧреНрд░рдгреА_рдЬрд░реЛрдЬ, рдЯреНрд░реЗрд▓рд┐рдВрдЧ_рдЬрд░реЛрдЬ, рд╕реНрд╡реИрдк_рдмрд╛рдЗрдЯреНрд╕, from_be, from_le, to_be, to_le рдЕрдм рдирд┐рд░рдВрддрд░ рд╣реИрдВред
- IPv4Addr :: рдирдИ рд╡рд┐рдзрд┐ рдЕрдм рд╕реНрдерд┐рд░ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд API рд╕реНрдерд┐рд░ рд╣реИрдВ:
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд░рд┐рд▓реАрдЬрд╝ рдиреЛрдЯ рджреЗрдЦреЗрдВред
рдХрд╛рд░реНрдЧреЛ рд╕рдВрд╡рд░реНрджреНрдзрди
рдХрд╛рд░реНрдЧреЛ рдЕрдм рдЯреЛрдХрд░рд╛ рдХреЛ рдЖрд╢реНрд╡рд╕реНрдд рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдЗрд╕рдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд░рд┐рд▓реАрдЬрд╝ рдиреЛрдЯ рджреЗрдЦреЗрдВред
Crates.io
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдШреЛрд╖рдгрд╛ рдХреА рдЧрдИ рдереА , рдЗрд╕ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, crates.io рдХреЛ рдкреЛрд╕реНрдЯрд┐рдВрдЧ рдмрдХреНрд╕реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╖реНрдЯрд┐рдХрд░рдг рдИрдореЗрд▓ рдкрддреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред 2019-03-01 00:00 рдпреВрдЯреАрд╕реА рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░, рд╕рддреНрдпрд╛рдкрд┐рдд рдореЗрд▓ рдХреЗ рдмрд┐рдирд╛ рдЦрд╛рддреЛрдВ рдХреЗ рд╕рд╛рде cargo publish
рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
DMCA рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпрджрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рдиреЛрдЯрд┐рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдЧреЛ рдиреЗ рд╣рд╛рд▓рд┐рдпрд╛ рд░рд┐рд▓реАрдЬ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ, рддреЛ рдЕрдкрдиреЗ рдореЗрд▓ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП crates.io/me рдкрд░ рдЬрд╛рдПрдВред рдпрд╣ рдореЗрд▓рд┐рдВрдЧ рдкрддрд╛ рдХрднреА рдкреНрд░рдХрд╛рд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ crates.io рдХреА рдкреНрд░рддреНрдпрдХреНрд╖ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдбреЗрд╡рд▓рдкрд░реНрд╕ 1.33.0
рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЛрдЧреЛрдВ рдиреЗ рдорд┐рд▓рдХрд░ 1.33 рд░рд╕реНрдЯ рдмрдирд╛рдпрд╛ред рд╣рдо рдЖрдк рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдереЗред рдзрдиреНрдпрд╡рд╛рдж!