JSR 223 рдХреЗ рд╕рд╛рде рдЬрд╛рд╡рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ - рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрднрд╡ рд╕реЗ 20-рд▓рд╛рдЗрди рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рд▓рд┐рдЦрдиреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг

рд▓реЗрдЦ рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЬреАрд╡рди рдиреЗ рдмрдирд╛рдпрд╛ рд╣реИ рдпрд╛ рдЕрднреА рддрдХ рдХреЗрд╡рд▓ рдЙрдЬреНрдЬреНрд╡рд▓ рдЪреБрд╕реНрдд рднрд╡рд┐рд╖реНрдп рдХреА рдУрд░ рдЕрдЧреНрд░рд╕рд░ рд╣реИред рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд╛рдардХ рдЬрд╛рд╡рд╛, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИ рдФрд░ рдЬреЗрдПрд╕рдЖрд░ 223 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реИред

рдХрдИ рдмрд╛рд░ "рдЬреЛ рдмреЗрд╣рддрд░ рд╣реИ, рдПрдХреНрд╕ рдпрд╛ рд╡рд╛рдИ" рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рдмрд╣рд╕ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдкрд╣рд▓реЗ, рдпрд╣ рдПрдХ рдЬрд╛рд╡рд╛ / рд╕реА ++ рдЬреЛрдбрд╝реА рдереА, рдЕрдм рдЬреЛрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреА рдУрд░ рдЕрдзрд┐рдХ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИред

рджреВрд╕рд░реЗ рджрд┐рди, рдореЗрд░реЗ рд╕рд╣рдХрд░реНрдореА рдФрд░ рдореИрдВ рдЪрд░реНрдЪрд╛ рдХрд░ рд░рд╣реЗ рдереЗ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЙрди рд╕рднреА рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреЛ рд╕рд┐рдЦрд╛рдирд╛ рд╕рд╛рд░реНрдердХ рд╣реЛрдЧрд╛, рдЬреЛ рдЕрдкрдиреА рдкрд╕рдВрджреАрджрд╛ рднрд╛рд╖рд╛ (рдЪрд╛рд╣реЗ рдЬрд╛рд╡рд╛ рдпрд╛ рд╕реА ++) рдХреЗ рд╕рд╛рде, рдЖрдЧ, рдкрд╛рдиреА рдФрд░ рддрд╛рдВрдмреЗ рдХреЗ рдкрд╛рдЗрдкреЛрдВ рд╕реЗ рдЧреБрдЬрд░реЗ рд╣реЛрдВ рдФрд░ рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИред

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

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдХрд╛рдлреА рдЬрдЯрд┐рд▓ HTML рдмрдирд╛рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдерд╛ред рдбреЗрдЯрд╛ рдореЙрдбрд▓ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рдпрд╣рд╛рдВ рдЖрдк рд╡реЗрд▓реЛрд╕рд┐рдЯреА рдпрд╛ рдлрд╝реНрд░реАрдорд╛рд░реНрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реЛрдЪрдХрд░ рдХрд┐ рдореИрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕реИрдХрдбрд╝реЛрдВ рдХрдХреНрд╖рд╛рдПрдВ рдЬреЛрдбрд╝реВрдВрдЧрд╛ рдмрд╕ рд╕реБрдВрджрд░ рд░реВрдк рд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрда рдиреЗ рдореБрдЭреЗ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ред рджреВрд╕рд░реА рдУрд░, рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЦреБрдж рдХреЛ рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рдЖрдзреЗ рдШрдВрдЯреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ, рдкреНрд▓рд╕ рдкрд░реАрдХреНрд╖рдг ... рд╣рд╛рд▓рд╛рдВрдХрд┐ рд░реЛрдХ! рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЗрд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ JRE рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Java7 рдореЗрдВ рдЗрд╕рдореЗрдВ рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ 1.8 рдХреЛ рдЬрд╛рдирддрд╛ рд╣реИ рдФрд░ рдЬрд╛рдирддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдмрд╣реБрдд рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯ "рдЕрдЪреНрдЫрд╛рдИред" рдФрд░ рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ JSP рдХреА рддрд░рд╣ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ: <%%> рдХреНрд░рдорд╢рдГ рдХрдердиреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ, рдФрд░ <% =%> рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИред рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ jrunscript рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрд╕реЛрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рд╡рд┐рдЪрд╛рд░ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИ рдХрд┐ рдЬреЗрдПрд╕рдкреА рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ: рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреЛрдб рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕реЗ рд╕рдорд╛рдкреНрдд рдкреГрд╖реНрда рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг:

js> var string = "Variable x is <% if ( 'undefined' == typeof x ) { %> undefined <%} else { %> <%= x %><%}%>" 

рдЗрд╕ рддрд░рд╣ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡рд┐рднрд╛рдЬрди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:

 js> string.split(/<%(.*?)%>/).forEach(function(x,i)print((i+1)+': '+x)) 1: Variable x is 2: if ( 'undefined' == typeof x ) { 3: undefined 4: } else { 5: 6: = x 7: 8: } 9: 


рдХреЗрд╡рд▓ рдХреЙрд▓ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП forEach рдХреЙрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓рд╛рдЗрдиреЗрдВ рд╡рд┐рд╖рдо рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ - рдЙрдирдХреЗ рдмреАрдЪ рдХреЗ рднрд╛рд╡ред рдФрд░ рд╣рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреА рдмреЙрдбреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдПрд░реЗ рд╕реЗ рддрдХрдиреАрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

 js> string.split(/<%(.*?)%>/).map(function(s,i) (i % 2 > ? (s[0] == '=' ? 'this.push(' + s.slice(1) + ');' : s) > : (s && 'this.push(' + uneval(s) + ');') > )).join('\n') this.push("Variable x is "); if ( 'undefined' == typeof x ) { this.push(" undefined "); } else { this.push(" "); this.push( x ); } 


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

 js> function compile(template) new Function(template.split(/<%(.*?)%>/).map(function(s,i) (i % 2 > ? (s[0] == '=' ? ['this.push(', ');'].join(s.slice(1)) : s) > : (s && ['this.push(', ');'].join(uneval(s))) > )).join('\n')) js> compiled = compile(string) function anonymous() { this.push("Variable x is "); if ("undefined" == typeof x) { this.push(" undefined "); } else { this.push(" "); this.push(x); } } 


рд╣рдорд╛рд░реА рдХрд╣рд╛рдиреА рдПрдХ рдХрд░реАрдмреА рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд░рд╣реА рд╣реИ, рдПрдХ рдЕрдиреБрднрд╡реА рдкрд╛рдардХ рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рд╣реИ рдХрд┐ рд╣рдо рдкреБрд╢ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдгрд╛рдореА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред
рдпрд╣ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ:

 js> var array = []; compiled.call(array); array.join('') Variable x is undefined js> x = 5 js> compiled.call(array = []); array.join('') Variable x is 5 


рдпрд╣ рдХреЛрдб рдХреЛ рд╕рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИрдВрдбрд▓рд░ рддреИрдпрд╛рд░ рд╣реЛред

рдирд┐рд╖реНрдХрд░реНрд╖: рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рдХрд╛рдлреА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИрдВрдбрд▓рд░ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдореБрдЭреЗ рд▓рдЧрднрдЧ рдЖрдзреЗ рдШрдВрдЯреЗ рдХрд╛ рд╕рдордп рд▓рдЧрд╛, рдЬрд╛рд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдореБрдЭреЗ рдпрд╣ рдХрд╣рдирд╛ рднреА рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдПрдХ рджрд┐рди рдпрд╛ рдПрдХ рд╕рдкреНрддрд╛рд╣ рд▓рдЧреЗрдЧрд╛ред рд╕рдкреНрддрд╛рд╣ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдордЬрд╛рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдЪреНрдЪрд╛рдИ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рдирд╣реАрдВ рд╣реИред

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


All Articles