WWDC 2012 рдореЗрдВ, рдЬреЛ рдЗрд╕ рд╕рд╛рд▓ рдЬреВрди рдореЗрдВ рд╣реБрдЖ рдерд╛, рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреЗ рдмреАрдЪ рд╕рд╛рдорд╛рдЬрд┐рдХ рд░реВрдкрд░реЗрдЦрд╛ рдкреЗрд╢ рдХреА рдЧрдИ рдереАред рдпрд╣ рдврд╛рдВрдЪрд╛ рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд╕рд╛рдЭрд╛ рдмрдЯрди рдХреЛ рдЬрд▓реНрджреА рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХреАрдХреГрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдЬрд┐рдХ рдврд╛рдВрдЪреЗ рдиреЗ iOS 5 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдП рдЧрдП рдЯреНрд╡рд┐рдЯрд░ рдврд╛рдВрдЪреЗ рдХреЛ рджрдмрд╛ рджрд┐рдпрд╛ рд╣реИред рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкрд░реЗрд╢рд╛рдиреА рдХреЗ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рди рдХреЗрд╡рд▓ рдЯреНрд╡рд┐рдЯрд░, рдмрд▓реНрдХрд┐ рдлреЗрд╕рдмреБрдХ рдФрд░ рд╡реАрдмреЛ (рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рдЪреАрдиреА рд╕рдордХрдХреНрд╖) рдХреЛ рднреА рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИред
рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ Xcode рдореЗрдВ рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдк рдХреЛрдИ рднреА рдирд╛рдо рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░ - рдПрдХрд▓ рджреГрд╢реНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕рдореЗрдВ рдПрдХ рдЪрд┐рддреНрд░ рд╡рд┐рдВрдбреЛ, рдПрдХ рдкрд╛рда рдЗрдирдкреБрдЯ рдлрд╝реЙрд░реНрдо рдФрд░ рджреЛ рдмрдЯрди рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗред
рдЪрд┐рддреНрд░ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдПрдХ рдЫрд╡рд┐ рджрд┐рдЦрд╛рдИ рдЬрд╛рдПрдЧреА рдЬреЛ рдЖрдкрдХреЗ рдкреЛрд╕реНрдЯ рд╕реЗ рдЬреБрдбрд╝реА рд╣реЛрдЧреА, рдЗрдирдкреБрдЯ рдлреЙрд░реНрдо рдореЗрдВ рдЖрдк рдЙрд╕ рд▓рд┐рдВрдХ рдХреЛ рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдк рднреА рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ 2 рдмрдЯрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рд╕реЛрд╢рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, ViewController.h рдЦреЛрд▓реЗрдВ рдФрд░ UIImageView рдФрд░ UITextField рдХреА рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВред рд╣рдореЗрдВ рдЕрдкрдиреЗ рд╡реНрдпреВ рдХреЙрдиреНрдЯреНрд░реЛрд▓рд░ рдХреЛ UITextField рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рд╕рдм рдмрд╣реБрдд рд╕рд░рд▓рддрд╛ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реА рдкреНрд░рдХрд╛рд░ ViewController.h рдХреЛрдб рдХреЛ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
#import <UIKit/UIKit.h> @interface ViewController : UIViewController <UITextFieldDelegate>{ UITextField *textField; UIImage *shareImage; } @end
рдЕрдм рд╣рдо рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣рд┐рд╕реНрд╕рд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдирд╛ред
рд╡реИрд╕реЗ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрд┐рд╕реА рднреА рдЫрд╡рд┐ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛ - рдпрд╣ рд╕реЛрд╢рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЖрдкрдХреЗ рдкреЛрд╕реНрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрдЧрд╛ред
ViewController.m рдЦреЛрд▓реЗрдВ рдФрд░ viewDidLoad рд╡рд┐рдзрд┐ рдЦреЛрдЬреЗрдВред ViewController рд▓реЛрдб рд╣реЛрдиреЗ рдкрд░ рдЗрд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрддреНрд╡реЛрдВ рдХреЛ "рдЬреЛрдбрд╝реЗрдВрдЧреЗ"ред рдпрд╣рд╛рдВ рд╡рд╣ рдХреЛрдб рд╣реИ рдЬреЛ рдкреВрд░реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- (void)viewDidLoad { shareImage = [UIImage imageNamed:[NSString stringWithFormat:@"48X48.jpg"]]; UIImageView *imageView = [[UIImageView alloc]initWithImage:shareImage]; imageView.frame = CGRectMake(138, 40, 48, 48); [self.view addSubview:imageView]; CGRect textFieldFrame = CGRectMake(20.0f, 100.0f, 280.0f, 31.0f); textField = [[UITextField alloc] initWithFrame:textFieldFrame]; textField.placeholder = @""; textField.backgroundColor = [UIColor whiteColor]; textField.textColor = [UIColor blackColor]; textField.font = [UIFont systemFontOfSize:14.0f]; textField.borderStyle = UITextBorderStyleRoundedRect; textField.clearButtonMode = UITextFieldViewModeWhileEditing; textField.returnKeyType = UIReturnKeyDone; textField.textAlignment = UITextAlignmentCenter; textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; textField.delegate = self; [self.view addSubview:textField]; UIButton *twitterButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [twitterButton addTarget:self action:@selector(twiShare:) forControlEvents:UIControlEventTouchDown]; [twitterButton setTitle:@"Share on Twitter" forState:UIControlStateNormal]; twitterButton.frame = CGRectMake(80.0, 170.0, 160.0, 40.0); [self.view addSubview:twitterButton]; UIButton *facebookButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [facebookButton addTarget:self action:@selector(fbShare:) forControlEvents:UIControlEventTouchDown]; [facebookButton setTitle:@"Share on Facebook" forState:UIControlStateNormal]; facebookButton.frame = CGRectMake(80.0, 240.0, 160.0, 40.0); [self.view addSubview:facebookButton]; [super viewDidLoad];
рдЕрдм рдЖрдк рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдмрдбрд╝рд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рднреА рдмрдЯрди рдХреЛ рджрдмрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдЕрднреА рддрдХ рдЯреНрд╡реАрдЯрд░ рдФрд░ fbShare рддрд░реАрдХреЛрдВ рдХреЛ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рд╕рдВрдмрдВрдзрд┐рдд рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рдХрд╣рддреЗ рд╣реИрдВред рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
-(void)twiShare:(id)sender{ } -(void)fbShare:(id)sender{ }
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ, рдЕрдм рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдХреНрд░реИрд╢ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдЖрдк "рд╕рд╛рдорд╛рдЬрд┐рдХ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВред
рдЬрдм рдЖрдк рдкрд╛рда рдЗрдирдкреБрдЯ рд╡рд┐рдВрдбреЛ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреАрдмреЛрд░реНрдб рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк "рд╕рдВрдкрдиреНрди" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреАрдмреЛрд░реНрдб рдмрдВрдж рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХреАрдмреЛрд░реНрдб рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
- (BOOL)textFieldShouldReturn:(UITextField *)textField{ [textField resignFirstResponder]; return YES; }
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреЙрдкреА рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдЕрдм "рдбрди" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рдХреАрдмреЛрд░реНрдб рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддреИрдпрд╛рд░ рд╣реИ, рдЕрдм рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдкрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВ - рдПрдХ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд╕рд╛рдЭрд╛рдХрд░рдг рд╕реЗрдЯ рдХрд░рдирд╛ред
рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ Social.framework рдЬреЛрдбрд╝реЗрдВред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдлреНрд░реЗрдорд╡рд░реНрдХ рдлрд╝реЛрд▓реНрдбрд░ рдЦреЛрд▓реЗрдВ, рдЬреЛрдбрд╝реЗ рдЧрдП рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ "рд╢реЛ рдЗрди рдлрд╛рдЗрдВрдбрд░" рдЪреБрдиреЗрдВред рдЕрдм рд╕рднреА рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рд╡рд╛рд▓рд╛ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдЦреБрд▓ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ Social.framework рдХреЛ рдвреВрдВрдврдирд╛ рдФрд░ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред
ViewController рдореЗрдВ Social.framework рдЖрдпрд╛рдд рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ, рдЕрдиреНрдпрдерд╛ рдмрдЯрди рдкрд░ рд╕рд╛рдЭрд╛рдХрд░рдг рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
#import "Social/Social.h"
рдЕрдм рд╣рдореЗрдВ рдмрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕рд╛рдЭрд╛рдХрд░рдг рдмрдЯрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред TwiShare рдФрд░ fbShare рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ, рдЗрд╕ рдХреЛрдб рдХреЛ рдЬреЛрдбрд╝реЗрдВ:
SLComposeViewController *composeController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; [composeController setInitialText:@" iOS 6"]; [composeController addImage:shareImage]; [composeController addURL: [NSURL URLWithString: [NSString stringWithFormat:@"%@",textField.text]]]; [self presentViewController:composeController animated:YES completion:nil];
ред
рдЕрдм, рдЬрдм рдЖрдк рд╕рд╛рдЭрд╛рдХрд░рдг рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдЯреНрд╡рд┐рдЯрд░ рд╡рд┐рдВрдбреЛ рдЦреБрд▓реЗрдЧреАред рдЬрдм рдЖрдк "рдлреЗрд╕рдмреБрдХ рдкрд░ рд╢реЗрдпрд░" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдлреЗрд╕рдмреБрдХ рд╡рд┐рдВрдбреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ SLServiceTypeTwitter рдХреЛ SLServiceTypeFacebook рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рдЯреНрд╡рд┐рдЯрд░ / рд╡реАрдмреЛ рдХреЗ рдЪреАрдиреА рдПрдирд╛рд▓реЙрдЧ рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдПрд╕рдПрд▓рдПрд╕ рд╕рд░реНрд╡рд┐рд╕рдЯрд╛рдЗрдкрд╕рд┐рдирд╛ рд╡реЗрдмрд┐рдмреЛ рдореЗрдВ рднреА рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдЕрдм рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдкрдиреЗ рд╕реЛрд╢рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЬрдм рдЖрдк рд╕рдВрдмрдВрдзрд┐рдд рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдкреНрд░рд╡реЗрд╢ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд╛ рдмрдбрд╝рд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ рдХрд┐ рдЯреНрд╡рд┐рдЯрд░ рдФрд░ рдлреЗрд╕рдмреБрдХ рдкрд░ рдорд╛рдирдХ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ рдХреИрд╕реА рджрд┐рдЦрддреА рд╣реИрдВ:
рд╢реЗрдпрд░рд┐рдВрдЧ рд╡рд┐рдВрдбреЛ рдХреЗ рдмрдбрд╝реЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЖрдк
рдпрд╣рд╛рдВ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ
рд╣реИрдВ ред