рд╡рд┐рдиреАрдд рдкрдВрдЬреАрдХрд░рдг рдФрд░ рд╕рд╛рдЗрдЯ рддрдХ рдкрд╣реБрдВрдЪ


рдИрдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рдиреБрдХрд╕рд╛рди рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд╛рддрд╛ рдкреБрд╖реНрдЯрд┐ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рд░реАрд╕реЗрдЯ рднреЗрдЬрдиреЗ рд╕реЗ рдердХ рдЧрдП?
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдирд╛ рдкрдВрдЬреАрдХрд░рдг рдлрд╝реЙрд░реНрдо рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрдерд╛рди рдХрд░рддреЗ рд╣реИрдВ?
рдХреНрдпрд╛ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рдкрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЖрдЧрдВрддреБрдХреЛрдВ рдХрд╛ рдлреЗрд╕рдмреБрдХ рдпрд╛ Vkontakte рдкрд░ рдХреЛрдИ рдЦрд╛рддрд╛ рд╣реИ?
рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
рдХреНрдпрд╛ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд░рдиреЗ рд╕реЗ рдердХ рдЧрдП рд╣реИрдВ?
рдХреНрдпрд╛ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "рд▓реЙрдЧрд┐рди" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рд╣реИрдВ?
рджреЗрдЦрд╛ рдЧрдпрд╛ рдХрд┐ рдпрд╣ рд╕реНрдЯреИрдХрдУрд╡рд░рдлреНрд▓реЛ рдкрд░ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╡рд╣реА рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд╕реЗ рднреА рдмреЗрд╣рддрд░?

рдиреАрдЪреЗ рдпрд╣ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рддрдХ рдкрд╣реБрдБрдЪ рдХреЛ рд╡рд┐рдиреАрдд, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдФрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд▓рд╛рдЧрдд рдХреЗ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рдмрд╛рд░ рдЬрдм рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ - рддреЛ рд╕рдм рдПрдХ рдмрд╛рд░ред

рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдИ-рдореЗрд▓ рд╕реЗ рдиреБрдХрд╕рд╛рди рдХреА рдкреБрд╖реНрдЯрд┐ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рд░реАрд╕реЗрдЯ рдирд╣реАрдВ рднреЗрдЬреЗрдВрдЧреЗред
рд╣рдо рдкрдВрдЬреАрдХрд░рдг рдлреЙрд░реНрдо рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВред
рд╣рдо рдХреЛрдИ рднреА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
рд▓реЙрдЧрд┐рди рдлреЙрд░реНрдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдирд┐рдХрд╛рд▓реЗрдВред

рд╡рд╣рд╛рдБ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд░рд╛рд╕реНрддрд╛ рд╣реИ - OpenID рдпрд╛ OAuth рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╛рдЗрдЯ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрджрд┐ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ Facebook рдпрд╛ Vkontakte рдкрд░ рдкрдВрдЬреАрдХрд░рдг рд╣реИ, рддреЛ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐ рдЙрдкрдпреБрдХреНрдд рд╣реИред

рдлреЗрд╕рдмреБрдХ рдФрд░ Vkontakte рдкрд░ OAuth рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЗ рдЙрдкрдпреБрдХреНрдд рдкреГрд╖реНрдареЛрдВ рдкрд░ рдЬрд╛рдиреЗ рдФрд░ рд╡рд╣рд╛рдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рд╕рд╛рдЗрдЯ рдХреЗ рдбреЛрдореЗрди рдирд╛рдо рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдлреЗрд╕рдмреБрдХ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╕реНрдерд╛рдиреАрдпрд╣реЛрд╕реНрдЯ рдкрд░ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИред
рд╡рд╣рд╛рдВ рд╕реЗ рдЬреЛ рдХреБрдЫ рднреА рдХрд╛рдо рдЖрддрд╛ рд╣реИ рд╡рд╣ рд╣реИ Facebook рдХреЗ рд▓рд┐рдП AppID рдФрд░ Vkontakte рдХреЗ рд▓рд┐рдП "рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдИрдбреА", рдЙрдиреНрд╣реЗрдВ рдпрд╛рдж рд░рдЦреЗрдВред рдпрджрд┐ рдЖрдк рдПрдХ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рджреЛ Vkontakte рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рд╣реЛрдВрдЧреЗ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд╕реНрдерд╛рдиреАрдпрд╣реЛрд╕реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рдЗрдЯ рд╕реЗ рджреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХреБрдЫ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рд╣рдо рд╕рдм рдХреБрдЫ рдЬрд▓реНрджреА рд╕реЗ рдЬрд▓реНрджреА рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рдореЗрдХрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рдирд╛рдВрддрд░ рдмреВрдЯрд▓реЛрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:

//Facebook yepnope({ load: ['//connect.facebook.net/ru_RU/all.js'], complete: function(){ FB.init({appId: '   AppID Facebook', xfbml: true, cookie: true, oauth: true}) FB.Event.subscribe('auth.statusChange', facebook_auth) } }) function facebook_auth(response) { if (response.authResponse) { var uid = response.authResponse.userID; var token = response.authResponse.accessToken; $.get("/auth/facebook?token="+token+"&uid="+uid, function(data, status){ $('.loggingin').removeClass('loggingfb') if(status == 'success') $('#logins .fb').append($('<span>'+data+'</span>')) }) } else $('.loggingin').removeClass('loggingfb') } //  yepnope({ load: ['//vkontakte.ru/js/api/openapi.js'], complete: function(){ if(location.href.match(/localhost/)) VK.init({apiId: '   ID   localhost'}) else VK.init({apiId: '   ID   '}) VK.Auth.getLoginStatus(vk_auth, true) } }) function vk_auth(response) { if (response.status === 'connected') { var uid = response.session.mid var sid = response.session.sid var name = response.session.user.first_name + ' ' + response.session.user.last_name $.get("/auth/vk?sid="+sid+"&uid="+uid+"&name="+name, function(data, status){ $('.loggingin').removeClass('loggingvk') if(status == 'success') $('#logins .vk').append($('<span>'+data+'</span>')) }) } else $('.loggingin').removeClass('loggingvk') } 


рдЗрдирдкреБрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдЕрднреНрдпрд╛рд╕ рдХреЗ рджреЛ рд╡рд┐рдХрд▓реНрдк, рдкрд╣рд▓рд╛ - рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рджреЛ рд╡рд┐рдВрдбреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд╕рд╛рде, рджреВрд╕рд░рд╛ - рдЕрд▓рдЧ рд╕реЗред
  $('.login').click(function(){ FB.login(function(){}, {scope : 'user_relationships,publish_stream,offline_access'}) VK.Auth.login(vk_auth, 1027) return false }) 


  $('.login .vk').click(function(){ VK.Auth.login(vk_auth, 1027) return false }) $('.login .fb').click(function(){ FB.login(function(){}, {scope : 'user_relationships,publish_stream,offline_access'}) return false }) 


рдЦреИрд░, рдФрд░ HTML рдХрд╛ рдПрдХ рд╕рд╛, рдЬреЛ рд╣рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред
 <body> <div id="fb-root"></div> <div class="top"> <div id="logins"> <div class="login"> <span id="not_logged_in"> <span class="loggingin loggingfb loggingvk"> <img src="/images/loading.gif" /> </span> <span> <a></a> </span> </span> <span class="fb"> <img class="nano" src="/images/facebook.png" /> <span class="name"></span> </span> <span class="vk"> <img class="nano" src="/images/vkontakte.png" /> <span class="name"></span> </span> </div> </div> ... 

рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд╕реАрдПрд╕рдПрд╕ред
 #logins { float: right; margin-top: -10px; padding: .5em; background-color: #ffffaa; cursor: pointer; border: 1px solid #eeeeaa; border-radius: 0 0 5px 5px; } #logins a {text-decoration: none; } #logins .prompt span {padding: .5em; } #logins span {font-weight: bold; } #not_logged_in, #logins .vk, #logins .fb {margin: .5em; } .loggedinvk.loggedinfb #not_logged_in {display: none; } .loggedinvk .inputs_not_logged, .loggedinfb .inputs_not_logged {display: none; } .loggingin {display: none; padding-right: .5em; } .loggingin.loggingfb, .loggingin.loggingvk {display: inline; } .add .inputs {display: none; } .loggedinvk .add .inputs, .loggedinfb .add .inputs {display: block; } 


рд╣рдореЗрдВ рдЖрдЦрд┐рд░ рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рд╛ рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдкрд░ рд╕рдм рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрддрд╛ рд╣реИред рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рд▓реА рдмрд╛рд░ рд╕рд╛рдЗрдЯ рдкрд░ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЕрднреА рддрдХ рдлреЗрд╕рдмреБрдХ рдФрд░ Vkontakte рдХреА рд╕рд╣рдорддрд┐ рдирд╣реАрдВ рджреА рд╣реИ, рддреЛ рд╕рд╛рдЗрдЯ рдкрд░ рдЕрдкрдиреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрд╕рдХреЗ рд▓реЙрдЧрд┐рди рдмрдЯрди рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдХрдо рд╕рдордп рдХреЗ рдмрд╛рдж, рдЬрдм рдлреЗрд╕рдмреБрдХ рдФрд░ Vkontakte рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ img loading.gif рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдирддреАрдЬрддрди, рд╡рд╣ рддреБрд░рдВрдд рджреЛ рдкреЙрдк-рдЕрдк рд╡рд┐рдВрдбреЛ рдЦреЛрд▓реЗрдЧрд╛ - рдПрдХ рд╕рд╛рдЗрдЯ, рдкреНрд░рддрд┐ рдПрдХреНрд╕реЗрд╕ рдХреЛ рдЕрдзрд┐рдХреГрдд рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рдеред
рдЬреИрд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЕрдкрдиреА рд╕рд╣рдорддрд┐ рд╡реНрдпрдХреНрдд рдХреА рд╣реИ, рддрд░реАрдХреЗ facebook_auth рдФрд░ vk_auth рдХрд╣рд▓рд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ (рдФрд░ рдЙрд╕рдХреЗ рдирд╛рдо) рдХреЛ рдкрддреЗ / рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ / vk рдФрд░ / рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ / facebook рдкрд░ рд╣рдорд╛рд░реА рд╕рд╛рдЗрдЯ рдкрд░ рднреЗрдЬрддреЗ рд╣реИрдВред

рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдЙрдкрдпреЛрдЧреА рдмрд╛рдд рд╕рд╛рдЗрдЯ рдкрд░ рдЕрдЧрд▓реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдпрд╛рддреНрд░рд╛ рдХреЗ рджреМрд░рд╛рди рд╣реЛрддреА рд╣реИ, рдЬрдм рдЙрд╕рдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╣рдорд╛рд░реА рд╕рд╛рдЗрдЯ рдХреА рдкрд╣реБрдВрдЪ рдХреЛ рдлреЗрд╕рдмреБрдХ рдФрд░ Vkontakte рдкрд░ рдЕрдкрдиреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХреГрдд рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдереЛрдбрд╝рд╛ рдореЛрдбрд╝рдХрд░, loading.gif рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдФрд░ facebook_auth рдФрд░ vk_auth рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреЗ, рдЬреЛ рдХрд┐ рд╣рдо рдЪрд╛рд╣рддреЗ рдереЗред рдпрд╣реА рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╣рдорд╛рд░реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╡реЗрд╢ (рд▓реЙрдЧрд┐рди) рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдФрд░ рдкрдВрдЬреАрдХрд░рдг (рдкреНрд░рд╛рдердорд┐рдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐) рдХреЗ рд▓рд┐рдП рдпрд╣ рд╣рдорд╛рд░реА рд╕рд╛рдЗрдЯ рдкрд░ рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдЖрдкрдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕рд╣рдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рдЖрдк рдпрд╣рд╛рдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ ( рдзреНрдпрд╛рди рд╕реЗ, рдЕрдкрдиреЗ рдкреГрд╖реНрда рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлреЗрд╕рдмреБрдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рдВрд╡рд╛рдж рдореЗрдВ рдЖрдк рдЗрд╕ рдЕрдиреБрдорддрд┐ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ ) рдФрд░ рдпрд╣рд╛рдВ, рдХреЗрд╡рд▓ рдлреЗрд╕рдмреБрдХ рдХреЛ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЧрдпрд╛ ред рд╣реИрдмрд░рдлреЗрдХрдЯ рдЦрдбрд╝рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдзреИрд░реНрдп рд░рдЦреЗрдВред рд╕реНрд░реЛрдд рдХреЛрдб рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЬреАрдердм рдХреЗ рд▓рд┐рдВрдХ рдкрд░ рд╣реИред

Source: https://habr.com/ru/post/In138538/


All Articles