рдореБрдЭреЗ 600,000 рд╕реЗ рдЕрдзрд┐рдХ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде c ++ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдирд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП, 5,000 рд▓рд╛рдЗрди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╣рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдлрд┐рд░ рднреА, рд╣рд╛рд╕реНрдХреЗрд▓ рдХреЗ рд▓рд┐рдП рдФрд░ рд╕рд┐рд░реНрдл рдордЬрд╝реЗрджрд╛рд░ рдкреНрд░реЗрд░рдгрд╛ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХрд╛рдлреА рдорд╛рддреНрд░рд╛ рд╣реИред
рдпрд╣ рдЫреЛрдЯрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо [1] рдЖрдкрдХреЗ рдЦрд╛рд▓реА рд╕рдордп рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рдирд╣реАрдВ рд╣реИред
рдореИрдВ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рд╣рд╛рд╕реНрдХреЗрд▓ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЫрд╛рдкреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛
рдЖрд▓реЛрдЪрдирд╛ рдереАред рд▓реЗрдХрд┐рди, рдЬреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рднрд╛рд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╢рдмреНрдж рдирд╣реАрдВ рдХрд╣рд╛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдЖрдирдиреНрджрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рдд рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдиреЗ рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреНрдпрд╛ рд▓рд┐рдЦрд╛ рд╣реИред рд╣рд╛рд╕реНрдХреЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдореЗрдВ рдЬреЛ рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓рддрд╛ рд╣реИ рд╡рд╣ рдорд╢реАрди рдХреЛрдб рдореЗрдВ рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдпрд╣ рднреА рдЦреБрд╢реА рд╣реЛрдЧреА рдХрд┐ рдХрд┐рд╕реА рднреА рджреБрднрд╛рд╖рд┐рдпреЛрдВ рдФрд░ рдмрд╛рдпреЛрдЯреЗрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдФрд░ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдЕрд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдХрд╛рд░рдг рдХреЛрдИ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реБрдИред рдХреЗрд╡рд▓ рдорд╛рдореВрд▓реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдХреАрдЬрд╝ рдЕрдХреНрд╖рдо рдХреЗ рд╕рд╛рдеред рдпрд╛, 64-рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рдкрд░, 32-рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рдИ рдЧрдИ рдереАред
рд╣рд╛рд╕реНрдХреЗрд▓ рд╕рдорд╕реНрдпрд╛
рднрд╛рд╖рд╛ рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ
рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдбреЙрдХреНрдЯрд░реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд╕рдЪ рдирд╣реАрдВ рд╣реИред рд╢рд╛рдпрдж рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдЬреЛ рднрд╛рд╖рд╛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдФрд░ рдкрд░рд┐рд╖реНрдХреГрдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд▓реЗрдХрд┐рди рднрд╛рд╖рд╛ рдХрд╛ "рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕" рдмрд╣реБрдд рд╕рд░рд▓ рдФрд░ рд╕рд╣рдЬ рд╣реИред рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдкреИрд░рд┐рд╢ рд╕реНрдХреВрд▓ рдХреА рддреАрди рдХрдХреНрд╖рд╛рдПрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди, рднрд╛рд╖рд╛ рд╕реЗ рдЬреБрдбрд╝реА рдХреЗрд╡рд▓ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдереАред рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдмрд┐рдВрджреБ рдкрд░, рднрд┐рдХреНрд╖реБрдУрдВ [2] рдХреЗ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░ рдХреЗ рдмрдбрд╝реЗ рдвреЗрд░ рдореЗрдВ рдПрдХ рдФрд░ рдореЛрдирдб рдЬреЛрдбрд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдЬреЛ рдПрдХ рдЧреИрд░-рддреБрдЪреНрдЫ рдХрд╛рд░реНрдп рдерд╛ред рдкреНрд░рд▓реЗрдЦрди рдФрд░ irc рдкрд░ рд╣рд╛рд╕реНрдХреЗрд▓рд┐рд╕реНрдЯреЛрдВ рдХреА рдореИрддреНрд░реАрдкреВрд░реНрдг рд╕рд╣рд╛рдпрддрд╛ рдХреЛ рдкрдврд╝рдХрд░, рд╢рд╛рдо рдХреЛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдЗрд╕ рдЬрдЧрд╣ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдРрд╕рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдерд╛ рдЬрд┐рд╕рдиреЗ рд╣рдореЗрдВ рд╕реНрдерд┐рд░ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдПрдХ рдкреВрд░реЗ рд╡рд░реНрдЧ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЦреБрдж рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред рдпрджрд┐ рд╡рд┐рд╡рд░рдг рджрд┐рд▓рдЪрд╕реНрдк рд╣реИрдВ, рддреЛ рдореИрдВ рдПрдХ рдЕрд▓рдЧ рдкреЛрд╕реНрдЯ рд▓рд┐рдЦреВрдВрдЧрд╛ред
рдкреНрд░рд╡реЗрд╢ рджрд╣рд▓реАрдЬ рдФрд░ рд╕реАрдЦрдиреЗ рдХреА рдЕрд╡рд╕реНрдерд╛
рдПрдХ рд░рд╛рдп рдпрд╣ рднреА рд╣реИ рдХрд┐ рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреА рджрд╣рд▓реАрдЬ рдмрд╣реБрдд рдмрдбрд╝реА рд╣реИред рдФрд░ рд╕реАрдЦрдиреЗ рдХреА рдЕрд╡рд╕реНрдерд╛ рдмрд╣реБрдд рд▓рдВрдмреА рд╣реИред рдЗрд╕ рдЕрд╡рд╕рд░ рдкрд░, рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВред
рдЬрдм рдореИрдВ рд╣рд╛рд╕реНрдХреЗрд▓ рд╕реАрдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рдерд╛, рдореИрдВ рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд░рд╣рд╛ рдерд╛ред рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдХреЛрдИ рдмрд╣реБрд╕реНрддрд░реАрдп рд▓рд╛рдЗрдиреЗрдВ рдирд╣реАрдВ рд╣реИрдВред рдпрд╣реА рд╣реИ, рдЖрдк рд╕реНрд░реЛрдд рдореЗрдВ рдмрдбрд╝реЗ рдкрд╛рда рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╡реИрдз рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрдерд┐рд░рд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
-- , text1 = " " -- text2 = unlines ["", ""] -- text3 = "\n\ \"
рдореИрдВрдиреЗ 600 рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрд╛, рдЬрд┐рд╕рдиреЗ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рд▓реА рдФрд░ рдорд▓реНрдЯреА-рд▓рд╛рдЗрди рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд╕рд╛рде рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд░реЛрдд рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ред рдЗрд╕рдиреЗ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рд╣рдореЗрдВ рд╕реАрдзреЗ рдмрд╛рдЗрдирд░реА рдореЗрдВ рд╕рднреА рдЧреНрд░рдВрдереЛрдВ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред
рдЖрдЧреЗ рдореИрдВрдиреЗ рд╣рд╛рд╕реНрдХреЗрд▓ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛, рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рдХреЛрдб рдмрд╣реБрдд рдЦрд░рд╛рдм рд╣реИред рдХреЛрдИ рд░рд╛рдЬрдХреАрдп рдорда рдирд╣реАрдВ рдереЗ, рдкрд╛рд░реНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕реНрдкрд╖реНрдЯ рд╕рдВрдХреЗрдд рдФрд░ рдХреЗрд╡рд▓ рддреБрдЪреНрдЫ рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░рд▓ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕ рдХреЛрдб рдХреЛ 2 рд╕рд╛рд▓ рдмрд╛рдж рднреА рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдордЭрд╛ред рдФрд░ рдЙрд╕рдиреЗ рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓ рдмрдирд╛ рджрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд░рд┐рд╣рд╛рдИ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд░реНрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрд╛рд╣рд░ рдЖрдиреЗ рджреЗрдирд╛ рд╢рд░реНрдордирд╛рдХ рдерд╛ред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдмреИрда рдЧрдпрд╛ рдФрд░ рдЗрд╕реЗ рдЖрдзреЗ рдШрдВрдЯреЗ [3] рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд╕реЗрдХ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ред
рд╢рд╛рдпрдж рдПрдХ рдЪрд┐рдХрдиреА рд╕реАрдЦрдиреЗ рдХреА рдЕрд╡рд╕реНрдерд╛ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╢реБрд░реБрдЖрддреА рдЧрд╛рдЗрдб рдореЗрдВ рд╣рд╛рд╕реНрдХреЗрд▓ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрддреА рдХрд╛рдлреА рдХрд╛рдо рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдФрд░ рдЕрдЧрд░ рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╢реБрд░реБрдЖрдд рдЕрдиреБрднрд╡реА рд╣рд╛рд╕реНрдХреЗрд▓рд┐рд╕реНрдЯреЛрдВ рдХреА рдЯреАрдо рдореЗрдВ рдЖрдПрдЧреА, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдмрд╣реБрдд рдЬрд▓реНрджреА рдЕрдЪреНрдЫрд╛ рдХреЛрдб рд▓рд┐рдЦреЗрдВрдЧреЗред рдХреБрдЫ рд╕рдлрд▓ рдФрджреНрдпреЛрдЧрд┐рдХ рднрд╛рд╖рд╛рдУрдВ, рдЬреИрд╕реЗ рдХрд┐ C ++, рдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд░реНрд╖реЛрдВ рдХреЗ рдЕрдиреБрднрд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЕрдиреНрдп рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ
рдЕрд╕рд▓реА рдореБрд╢реНрдХрд┐рд▓реЗрдВ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ рдЬрд╣рд╛рдВ рд╣рд╛рд╕реНрдХреЗрд▓ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдЙрди рдЬрдЧрд╣реЛрдВ рдкрд░ рдЬрд╣рд╛рдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдХрдареЛрд░ рдмрд╛рддрдЪреАрдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрддред
рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡реЗрдм рдкреЗрдЬ рдмрдирд╛рдиреЗ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рдо рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреНрд░реЙрд╕-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрдЧрддрддрд╛ рд╕рдорд╕реНрдпрд╛рдПрдВ рдФрд░ рдЕрдиреНрдп рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рд╡рд┐рд▓рдВрдм рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рд╕рд┐рд╕реНрдЯрдо рдХреА рддрд░рдл, рдЕрд▓рдЧ рдХрд╛рдо рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди, рд╕рд┐рд╕реНрдЯрдо рдбрд╛рдпрдиреЗрдорд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрд╢рдиред рдпрд╣ рд╕рдм рд▓рд╛рдЗрдирдХреНрд╕ рдХреЗ рддрд╣рдд рдХрд┐рд╕реА рднреА рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рдорд╛рди рдХреМрд╢рд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд▓рд╛рдЗрдмреНрд░реЗрд░реАред рджреЗрд╢реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рд╛рд╕реНрдХреЗрд▓ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд░реИрдкрд░ рдмрдирд╛рдП рдЧрдП рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рднреА рдирд╣реАрдВред рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди, рдореБрдЭреЗ PAM рдкреБрд╕реНрддрдХрд╛рд▓рдп [4] рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЕрдкрдирд╛ рд░реИрдкрд░ рд▓рд┐рдЦрдирд╛ рдкрдбрд╝рд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рддреИрдпрд╛рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рдерд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓рд┐рдЦрдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред
рдЬрдм рд╣рд╛рд╕реНрдХреЗрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдЬрдЧрд░ рдХреЗ рд╕рдорд░реНрдердХ рддрд░реНрдХ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рд▓рдЧрднрдЧ рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдЬрдЧрд░ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рдкрд╛рдпрдерди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдирд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рдореМрдЬреВрджрд╛ рдкреИрдХреЗрдЬ рдХреЛ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдХреНрдпреЛрдВрдХрд┐ рдореМрдЬреВрджрд╛ рдХреЛрдб рднрдпрд╛рдирдХ рдерд╛ред рддреЛ рдПрдХ рдЕрдЬрдЧрд░ рдХрд╛ рдпрд╣ рд▓рд╛рдн рдЗрддрдирд╛ рдорд╣рд╛рди рдирд╣реАрдВ рд╣реИред
рдЕрд▓рдЧ-рдЕрд▓рдЧ, рдпрд╣ рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдпрд╣ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ, рдкреВрд░реЗ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╕рдВрдХрд▓рдХ рдФрд░ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд┐рд▓рд╡рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд╕реНрдХреЗрд▓ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рд╖рдп рдПрдХ рдЕрд▓рдЧ рдкрдж рдХрд╛ рд╣рдХрджрд╛рд░ рд╣реИред рдореБрдЭреЗ рдЦреБрд╢реА рд╣реБрдИ рдХрд┐ рд╣рд╛рд╕реНрдХреЗрд▓ рдХрд╛рд░реНрдпрдХреНрд░рдо рдРрд╕реЗ рд╕рдордп-рдкрд░реАрдХреНрд╖рдгрд┐рдд рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдмрдирд╛рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдЬреИрд╕реЗ Red Hat Enterprise Linux 5ред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд╣рд╛рдВ рдЕрдЬрдЧрд░ рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдЬрдЧрд░ 2.4 рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╛ рд╡рд╣рд╛рдБ рдПрдХ рдирдпрд╛ рджреБрднрд╛рд╖рд┐рдпрд╛ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдФрд░ рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдФрд░ рднреА рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
рд╣реИрдХреНрд╕реЗрд▓ рдХрд┐рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЦрддреНрдо рдХрд░рддрд╛ рд╣реИ
рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ "рдХреНрдпреЛрдВ рд╣рд╛рд╕реНрдХреЗрд▓?" рдкреИрд░рд╛рдЧреНрд░рд╛рдлрд╝ рдХреЛ рднрд╛рд╖рд╛ рдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ [5] рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред
рдореИрдВ рдЗрд╕ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рд╕реЗ рднрд╛рд╖рд╛ рдХреЗ рдлрд╛рдпрджреЛрдВ рдХреА рдПрдХ рдЫреЛрдЯреА рд╕реВрдЪреА рджреВрдВрдЧрд╛:
- рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдк рд╕реЗ рдмрдврд╝реА рд╣реБрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЙрддреНрдкрд╛рджрдХрддрд╛ред
- рдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд, рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдХреЛрдб, рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╕реНрддрд╛ред
- рдХрдо рдмрдЧ, рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдХрд╛рд░реНрдпрдХреНрд░рдоред
- рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдФрд░ рднрд╛рд╖рд╛ рдХреЗ рдмреАрдЪ рдХрдо "рдЕрд░реНрде рд╕рдВрдмрдВрдзреА рдЕрдВрддрд░рд╛рд▓"ред
- рддреЗрдЬреА рд╕реЗ рдЙрддреНрдкрд╛рдж рдЬрд╛рд░реАред
рдЬреИрд╕рд╛ рдХрд┐ рдЕрднреНрдпрд╛рд╕ рдиреЗ рджрд┐рдЦрд╛рдпрд╛ рд╣реИ, рд╡реЗ рдЭреВрда рдирд╣реАрдВ рдмреЛрд▓рддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдЕрдкрдиреЗ рджрдо рдкрд░ рдореИрдВ рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдФрд░ рдЖрдЗрдЯрдо рдЬреЛрдбрд╝реВрдВрдЧрд╛ред рд╣рд╛рд╕реНрдХреЗрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдордЬреЗрджрд╛рд░ рд╣реИред 20 рд╡реАрдВ рд╢рддрд╛рдмреНрджреА рдХреЗ рдордзреНрдп рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░, рд╢рд╛рдпрдж, рдПрдХ рд╣реА рднрд╛рд╡рдирд╛рдПрдВ рдереАрдВ рдЬрдм рдХреЛрдбрд╛рдВрддрд░рдХ рдкрд╣рд▓реА рдмрд╛рд░ рджрд┐рдЦрд╛рдИ рджрд┐рдПред рдХрд╛рдо рдХрд╛ рдПрдХ рд╣реА рд╕рд░рд▓реАрдХрд░рдг рдЕрд╕реЗрдВрдмрд▓рд░ рд╕реЗ рдлреЛрд░рдЯреНрд░рд╛рди рддрдХ рд╕рдВрдХреНрд░рдордг рдореЗрдВ рдерд╛ред
рд╣рд╛рд╕реНрдХреЗрд▓ рдХреЛ рдЕрдм рдирд╛рдорд┐рдд рд╕реНрдореГрддрд┐ рдХреНрд╖реЗрддреНрд░реЛрдВ (рдЪрд░) рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдХреЗрд╡рд▓ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдорд╛рди рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╕рдВрдХрд▓рдХ рд╕реНрдореГрддрд┐ рдореЗрдВ рдХрд┐рд╕рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд╛ рдЦреНрдпрд╛рд▓ рд░рдЦрддрд╛ рд╣реИред рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдХрд╛рдо рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реНрд╡рдЪрд╛рд▓рди рд╣реИред
рдареАрдХ рд╣реИ, рдЪрд▓реЛ рддрдм рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдЬрдм рддрдХ рдХрд┐ рд╡реНрдпрд╡рд╕рд╛рдп рд╣рд╛рд╕реНрдХреЗрд▓ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрддрд╛ред рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╣рд╛рд╕реНрдХреЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЬреЛрдЦрд┐рдо рдкрд░, рдЖрдк
рд╕рдм рдХреБрдЫ рдЦреЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рдХрд░
рд╕рдХрддреЗ рд╣реИрдВ ред
[рез]
http://iptadmin.confmgr.org[реи]
рд╕реНрд░реЛрдд рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВ, рдЕрдзрд┐рдХреГрдд рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдХреЛрдб[рей]
http://patch-tag.com/r/etarasov/iptadmin/snapshot/current/content/pretty/util/ptmpl/src/Main.hs[рек]
http://hackage.haskell.org/package/pam-0.1[рел]
http://haskell.org/haskellwiki/Introduction#Why_use_Haskell.3F