财神随手记账

YLGestureLockView.m 25KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619
  1. //
  2. // YLGestureLockView.m
  3. // YLGestureLock
  4. //
  5. // Created by youngliu on 2017/12/19.
  6. // Copyright © 2017年 yangliu. All rights reserved.
  7. //
  8. #import "YLGestureLockView.h"
  9. #import "YLCircleItemView.h"
  10. #import "YLGestureHeader.h"
  11. #import "YLKeychainWrapper.h"
  12. @interface YLGestureLockView ()
  13. //被选中的按钮数组
  14. @property (nonatomic,strong)NSMutableArray *circleArray;
  15. //移动的点,添加直线
  16. @property (nonatomic,assign)CGPoint movePoint;
  17. //view所在等控制器
  18. @property (nonatomic,readonly)UIViewController * _Nullable viewController;
  19. @end
  20. @implementation YLGestureLockView
  21. - (instancetype)initWithFrame:(CGRect)frame{
  22. if (self = [super initWithFrame:frame]) {
  23. [self setupUI];
  24. [self addObserver];
  25. [self addPanGesture];
  26. }
  27. return self;
  28. }
  29. - (void)addObserver{
  30. [self.backColor addObserver:self forKeyPath:@"backColor" options:NSKeyValueObservingOptionNew context:nil];
  31. self.backColor = [UIColor colorWithRed:0.05 green:0.2 blue:0.35 alpha:1];
  32. self.selectedColor = [UIColor colorWithRed:0.13 green:0.7 blue:0.96 alpha:1];
  33. self.warnColor = [UIColor redColor];
  34. self.normalColor = [UIColor whiteColor];
  35. }
  36. #pragma mark - drawRect
  37. - (void)drawRect:(CGRect)rect{
  38. UIBezierPath *path = [UIBezierPath bezierPath];
  39. for (int i=0; i<self.circleArray.count; i++)
  40. {
  41. YLCircleItemView *item = (YLCircleItemView *)self.circleArray[i];
  42. if (i==0){
  43. [path moveToPoint:item.center];
  44. }else{
  45. [path addLineToPoint:item.center];
  46. }
  47. }
  48. if (_movePoint.x!=0 && _movePoint.y!=0 && NSStringFromCGPoint(_movePoint)){
  49. [path addLineToPoint:_movePoint];
  50. }
  51. [path setLineCapStyle:kCGLineCapRound];
  52. [path setLineJoinStyle:kCGLineJoinRound];
  53. [path setLineWidth:1.0f];
  54. [self.selectedColor setStroke];
  55. [path stroke];
  56. }
  57. - (void)setupUI{
  58. self.backgroundColor = [UIColor colorWithRed:0.05 green:0.2 blue:0.35 alpha:1];
  59. self.littleView.backgroundColor = [UIColor clearColor];
  60. self.textLabel.backgroundColor = [UIColor clearColor];
  61. for (int i = 0; i < 9; i ++) {
  62. int row = i / 3;
  63. int column = i % 3;
  64. CGFloat spaceFloat = (KScreenWidth-3*ITEMWH - 60)/2;
  65. CGFloat pointX = spaceFloat+(ITEMWH + 30)*column;
  66. CGFloat pointY = ITEM_POSITION*SCREEN_MUTI + ITEMWH*row + 30*row;
  67. /**
  68. * 对每一个item的frame的布局
  69. */
  70. YLCircleItemView *item = [[YLCircleItemView alloc] initWithFrame:CGRectMake(pointX, pointY , ITEMWH, ITEMWH)];
  71. item.userInteractionEnabled = YES;
  72. item.backgroundColor = [UIColor clearColor];
  73. item.tag = i ;
  74. [self addSubview:item];
  75. }
  76. }
  77. - (void)addPanGesture{
  78. UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panAction:)];
  79. [self addGestureRecognizer:pan];
  80. }
  81. - (void)panAction:(UIPanGestureRecognizer *)pan{
  82. CGPoint touchPoint = [pan locationInView:self];
  83. _movePoint = touchPoint;
  84. switch (pan.state) {
  85. case UIGestureRecognizerStateBegan:
  86. [self selectItem:touchPoint];
  87. break;
  88. case UIGestureRecognizerStateChanged:
  89. {
  90. [self selectItem:touchPoint];
  91. [self changeAngle];
  92. [self setNeedsDisplay];
  93. }
  94. break;
  95. case UIGestureRecognizerStateEnded:
  96. {
  97. [self endGesture];
  98. [self setNeedsDisplay];
  99. }
  100. break;
  101. default:
  102. break;
  103. }
  104. }
  105. - (void)selectItem:(CGPoint)point
  106. {
  107. for (YLCircleItemView *item in self.subviews)
  108. {
  109. if ([item isKindOfClass:[YLCircleItemView class]])
  110. {
  111. BOOL isContain = CGRectContainsPoint(item.frame, point);
  112. if (isContain&&item.style!=CircleItemColorStyleSelected)
  113. {
  114. [self.circleArray addObject:item];
  115. item.style = CircleItemColorStyleSelected;
  116. }
  117. }
  118. }
  119. }
  120. - (void)changeAngle{
  121. if (self.circleArray.count >= 2) {
  122. YLCircleItemView *startItem = self.circleArray[self.circleArray.count - 2];
  123. YLCircleItemView *endItem = self.circleArray[self.circleArray.count - 1];
  124. [startItem trinagleRotationStartPoint:startItem.center endPoint:endItem.center isHidden:NO];
  125. }
  126. }
  127. - (void)endGesture{
  128. //设置生成当前的手势
  129. NSMutableString *gestureString = [NSMutableString string];
  130. //拆分成数组的字符串
  131. NSMutableString *componentString = [NSMutableString string];
  132. //钥匙串里的手势
  133. NSString *string = [[YLKeychainWrapper sharedWrapper]queryDataWithService:GESTURE_SERVICE];
  134. for (YLCircleItemView *item in self.circleArray) {
  135. [gestureString appendString:[NSString stringWithFormat:@"%ld",(long)item.tag]];
  136. [componentString appendString:[NSString stringWithFormat:@"-%ld",(long)item.tag]];
  137. }
  138. NSMutableArray *littleArray = [componentString componentsSeparatedByString:@"-"].mutableCopy;
  139. [littleArray removeObjectAtIndex:0];
  140. if (gestureString.length<4) {
  141. [self warnCircleState];
  142. }else{
  143. switch (self.style) {
  144. case YLGestureLockViewStyleValidate:
  145. {
  146. if (string) {
  147. [[YLKeychainWrapper sharedWrapper]deleteDataWithService:GESTURE_SERVICE];
  148. string = nil;
  149. }
  150. if (!string&&!self.lockString) {
  151. self.lockString = gestureString;
  152. [self.littleView resultArr:littleArray fillColor:self.selectedColor clear:NO];
  153. [self setTextLabelString:@"请再次绘制解锁文案" color:[UIColor titleColor]];
  154. break;
  155. }
  156. if ([gestureString isEqualToString:self.lockString]) {
  157. [[YLKeychainWrapper sharedWrapper]addData:gestureString forService:GESTURE_SERVICE];
  158. self.lockString = nil;
  159. [_delegate gestureLockView:self didValidate:gestureString];
  160. [self setTextLabelString:@"设置成功" color:[UIColor titleColor]];
  161. }else{
  162. [self warnCircleState];
  163. [self setTextLabelString:@"与上次绘制不一致,请重新绘制" color:[UIColor JZColorWithHex:0xe51313]];
  164. [_delegate gestureLockViewVerifyError:self];
  165. }
  166. }
  167. break;
  168. case YLGestureLockViewStyleReset:
  169. {
  170. }
  171. break;
  172. case YLGestureLockViewStyleChange:
  173. {
  174. static int i = 5;
  175. if (!string) {
  176. [self showAlert:@"您还没有设置手势,无法修改"];
  177. break;
  178. }else{
  179. if ([string isEqualToString:gestureString]) {
  180. [_delegate gestureLockView:self canChange:string];
  181. [self.littleView resultArr:littleArray fillColor:self.selectedColor clear:YES];
  182. }else{
  183. i--;
  184. if (i == 0) {
  185. i = 5;
  186. [self showAlertWithDelegate:@"错误次数过多,请验证账号解锁"];
  187. [self setTextLabelString:[NSString stringWithFormat:@"密码错误,还可以再输入%d次",0] color:[UIColor JZColorWithHex:0xe51313]];
  188. }else{
  189. [self warnCircleState];
  190. [self setTextLabelString:[NSString stringWithFormat:@"密码错误,还可以再输入%d次",i] color:[UIColor JZColorWithHex:0xe51313]];
  191. }
  192. [self.littleView resultArr:littleArray fillColor:self.warnColor clear:YES];
  193. break;
  194. }
  195. }
  196. }
  197. break;
  198. case YLGestureLockViewStyleLoggin:
  199. {
  200. static int i = 5;
  201. if (!string) {
  202. [self showAlert:@"您还没有设置手势,无法修改"];
  203. break;
  204. }else{
  205. if ([string isEqualToString:gestureString]) {
  206. [_delegate gestureLockView:self didLogin:string];
  207. [self.littleView resultArr:littleArray fillColor:self.selectedColor clear:YES];
  208. }else{
  209. i--;
  210. if (i == 0) {
  211. i = 5;
  212. [self showAlertWithDelegate:@"错误次数过多,请验证账号解锁"];
  213. [self setTextLabelString:[NSString stringWithFormat:@"密码错误,还可以再输入%d次",0] color:[UIColor JZColorWithHex:0xe51313]];
  214. }else{
  215. [self warnCircleState];
  216. [self setTextLabelString:[NSString stringWithFormat:@"密码错误,还可以再输入%d次",i] color:[UIColor JZColorWithHex:0xe51313]];
  217. }
  218. [self.littleView resultArr:littleArray fillColor:self.warnColor clear:YES];
  219. break;
  220. }
  221. }
  222. }
  223. break;
  224. case YLGestureLockViewStyleDelete:
  225. {
  226. static int i = 5;
  227. if (!string) {
  228. [self showAlert:@"您还没有设置手势,无法修改"];
  229. break;
  230. }else{
  231. if ([string isEqualToString:gestureString]) {
  232. [_delegate gestureLockViewDidDelete:self];
  233. [self.littleView resultArr:littleArray fillColor:self.selectedColor clear:YES];
  234. }else{
  235. i--;
  236. if (i == 0) {
  237. i = 5;
  238. [self showAlertWithDelegate:@"错误次数过多,请验证账号解锁"];
  239. [self setTextLabelString:[NSString stringWithFormat:@"密码错误,还可以再输入%d次",0] color:[UIColor JZColorWithHex:0xe51313]];
  240. }else{
  241. [self warnCircleState];
  242. [self setTextLabelString:[NSString stringWithFormat:@"密码错误,还可以再输入%d次",i] color:[UIColor JZColorWithHex:0xe51313]];
  243. }
  244. [self.littleView resultArr:littleArray fillColor:self.warnColor clear:YES];
  245. break;
  246. }
  247. }
  248. }
  249. break;
  250. default:
  251. break;
  252. }
  253. }
  254. [self performSelector:@selector(removeCircleState) withObject:nil afterDelay:0.5];
  255. // 数组清空
  256. [self.circleArray removeAllObjects];
  257. }
  258. //产生警告
  259. - (void)warnCircleState{
  260. for (YLCircleItemView *item in self.circleArray)
  261. {
  262. if ([item isKindOfClass:[YLCircleItemView class]])
  263. {
  264. if (item.style == CircleItemColorStyleSelected)
  265. {
  266. item.style = CircleItemColorStyleWarning;
  267. }
  268. }
  269. }
  270. }
  271. //移除状态
  272. - (void)removeCircleState{
  273. for (YLCircleItemView *item in self.subviews)
  274. {
  275. if ([item isKindOfClass:[YLCircleItemView class]])
  276. {
  277. item.style = CircleItemColorStyleNormal;
  278. [item trinagleRotationStartPoint:CGPointMake(0, 0) endPoint:CGPointMake(0, 0) isHidden:YES];
  279. }
  280. }
  281. }
  282. - (void)setStyle:(YLGestureLockViewStyle)style{
  283. _style = style;
  284. switch (style) {
  285. case YLGestureLockViewStyleValidate:{
  286. self.textLabel.text = @"绘制解锁文案";
  287. }
  288. break;
  289. case YLGestureLockViewStyleReset:{
  290. self.textLabel.text = @"重置解锁文案";
  291. }
  292. break;
  293. case YLGestureLockViewStyleChange:{
  294. self.textLabel.text = @"请输入原手势密码";
  295. }
  296. break;
  297. case YLGestureLockViewStyleLoggin:{
  298. self.textLabel.text = @"";
  299. }
  300. break;
  301. case YLGestureLockViewStyleDelete:{
  302. self.textLabel.text = @"请输入原手势密码";
  303. }
  304. break;
  305. default:
  306. break;
  307. }
  308. }
  309. - (void)setTextLabelString:(NSString *)text color:(UIColor *)color{
  310. self.textLabel.textColor = color;
  311. self.textLabel.text = text;
  312. }
  313. - (void)showAlert:(NSString *)message{
  314. UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"温馨提示" message:message preferredStyle:UIAlertControllerStyleAlert];
  315. [alertController addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
  316. }]];
  317. [self.viewController presentViewController:alertController animated:YES completion:nil];
  318. }
  319. - (void)showAlertWithDelegate:(NSString *)message{
  320. UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"温馨提示" message:message preferredStyle:UIAlertControllerStyleAlert];
  321. [alertController addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
  322. [_delegate gestureLockViewVerifyError:self];
  323. }]];
  324. [self.viewController presentViewController:alertController animated:YES completion:nil];
  325. }
  326. #pragma mark --------------lazy-------------------------
  327. - (NSMutableArray *)circleArray{
  328. if (!_circleArray) {
  329. _circleArray = [[NSMutableArray alloc]init];
  330. }
  331. return _circleArray;
  332. }
  333. - (UILabel *)textLabel{
  334. if (!_textLabel) {
  335. _textLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, self.littleView.frame.origin.y+55*SCREEN_MUTI, KScreenWidth , 40)];
  336. _textLabel.textAlignment = NSTextAlignmentCenter;
  337. _textLabel.textColor = [UIColor titleColor];
  338. _textLabel.font = FONT_SYS(15);
  339. [self addSubview:_textLabel];
  340. }
  341. return _textLabel;
  342. }
  343. - (YLLittleCircleView *)littleView
  344. {
  345. if (_littleView==nil) {
  346. _littleView = [[YLLittleCircleView alloc] initWithFrame:CGRectMake((self.frame.size.width-SUBITEMTOTALWH)/2, SUBITEM_TOP*SCREEN_MUTI, SUBITEMTOTALWH, SUBITEMTOTALWH)];
  347. [self addSubview:_littleView];
  348. }
  349. return _littleView;
  350. }
  351. #pragma mark -----------setter----------------------
  352. - (void)setBackColor:(UIColor *)backColor{
  353. _backColor = backColor;
  354. self.backgroundColor = backColor;
  355. for (UIView *view in self.subviews) {
  356. if ([view isKindOfClass:[YLCircleItemView class]]) {
  357. YLCircleItemView *item = (YLCircleItemView *)view;
  358. item.backColor = backColor;
  359. }
  360. }
  361. }
  362. - (void)setWarnColor:(UIColor *)warnColor{
  363. _warnColor = warnColor;
  364. for (UIView *view in self.subviews) {
  365. if ([view isKindOfClass:[YLCircleItemView class]]) {
  366. YLCircleItemView *item = (YLCircleItemView *)view;
  367. item.warnColor = warnColor;
  368. }
  369. }
  370. }
  371. - (void)setSelectedColor:(UIColor *)selectedColor{
  372. _selectedColor = selectedColor;
  373. for (UIView *view in self.subviews) {
  374. if ([view isKindOfClass:[YLCircleItemView class]]) {
  375. YLCircleItemView *item = (YLCircleItemView *)view;
  376. item.selectedColor = selectedColor;
  377. }
  378. }
  379. }
  380. - (void)setNormalColor:(UIColor *)normalColor{
  381. _normalColor = normalColor;
  382. for (UIView *view in self.subviews) {
  383. if ([view isKindOfClass:[YLCircleItemView class]]) {
  384. YLCircleItemView *item = (YLCircleItemView *)view;
  385. item.normalColor = normalColor;
  386. }
  387. }
  388. }
  389. - (UIViewController *)viewController {
  390. for (UIView *view = self; view; view = view.superview) {
  391. UIResponder *nextResponder = [view nextResponder];
  392. if ([nextResponder isKindOfClass:[UIViewController class]]) {
  393. return (UIViewController *)nextResponder;
  394. }
  395. }
  396. return nil;
  397. }
  398. -(void)a27kw:(UIUserInterfaceIdiom*) a27kw aizqFkt:(UIFontWeight*) aizqFkt an5PD:(UIMenuItem*) an5PD aT9Ym:(UITableView*) aT9Ym aPq127GjQEz:(UIActivity*) aPq127GjQEz adihW8m:(UIMenuItem*) adihW8m azEYa:(UISearchBar*) azEYa agRTnfSPJZ:(UIView*) agRTnfSPJZ acib98RQ3M:(UISwitch*) acib98RQ3M ayU8Noe:(UIBezierPath*) ayU8Noe amXE6uxQC:(UIScreen*) amXE6uxQC {
  399. NSLog(@"pnaZ1JRvOfLtK7EHdAlY0j9brwuXycVNmxTD6SWP");
  400. NSLog(@"IefGjYagCoQd5lPEBc9O6AM3v");
  401. NSLog(@"2jUWcEPShukAwmpZrD1fF9xs7");
  402. NSLog(@"K6dPuf34lkiV8ZNt1TDIo79H2AOBahqpv0");
  403. NSLog(@"93jOHpfzJkRIEPAZ4Qqew71NlTDrvLdV");
  404. NSLog(@"2o9OUKS0zCJa4ReGTEIdyuMV");
  405. NSLog(@"WTLliDVj71JoXunS5ZhUEweMqm");
  406. NSLog(@"ovxahjnHD17qF09");
  407. NSLog(@"Y7UrIzNVucfPQw1HKg");
  408. NSLog(@"4ZOtqBlY5QeIaug0y7sh9kEWm");
  409. }
  410. -(void)adBDKvI9:(UIWindow*) adBDKvI9 aQSHsxc:(UISearchBar*) aQSHsxc a0jlViQ:(UIKeyCommand*) a0jlViQ aXJtlpKm:(UIBarButtonItem*) aXJtlpKm arj6uB:(UIImageView*) arj6uB aQWFd:(UIDevice*) aQWFd avFo8:(UIScreen*) avFo8 {
  411. NSLog(@"BdyY7kEg8P4owH5fAGc3rKlx9SnJ6uRL");
  412. NSLog(@"kGgri2BXzTuWIUHMoV");
  413. NSLog(@"8ywuov2cT4lg107Rs5WbQNCqAh9OG");
  414. NSLog(@"pYNjzqWCyms");
  415. NSLog(@"1MP2NIKUDQdwiC0ahqXg");
  416. NSLog(@"RULK2Mh6ZiqYTN375HXmaj9EsJ4Aw1nICrek");
  417. NSLog(@"c2imCnpWbF0");
  418. NSLog(@"2dqhrKE9TC6OBxVm50");
  419. NSLog(@"wVsAeEr8tCu7UZzocpP");
  420. NSLog(@"mUpo95TFabdIgfEwV6hL3GX2AHirCQsP4Kq");
  421. NSLog(@"LNZGbiKnz1AlF2cI5CBOEU7");
  422. NSLog(@"ELu4tYnOXqMpbIa0xUjZPmG");
  423. NSLog(@"ZjU5X0czSLhCgBaFNJIpAfDinW");
  424. }
  425. -(void)a45LzQ:(UIApplication*) a45LzQ as7oB:(UIDevice*) as7oB avsui:(UIImageView*) avsui axnjAU:(UIWindow*) axnjAU aEnS7zvB4Xq:(UIMenuItem*) aEnS7zvB4Xq aesq0jVv:(UISearchBar*) aesq0jVv aOhMg7XDcK:(UIKeyCommand*) aOhMg7XDcK apvH0foYc1C:(UIBarButtonItem*) apvH0foYc1C aBQuSL7d:(UIColor*) aBQuSL7d aNwgHQv2V:(UIEdgeInsets*) aNwgHQv2V aRG5Nj2lO:(UIImage*) aRG5Nj2lO aT6fJ:(UIRegion*) aT6fJ azbUkYjd:(UIBezierPath*) azbUkYjd aksT3:(UIBarButtonItem*) aksT3 {
  426. NSLog(@"xORzSV4TG0olE3MAI");
  427. NSLog(@"QxradWto75ZiPOh9v8Uk");
  428. NSLog(@"5qThnUeL7jXVru6BH4");
  429. NSLog(@"Vq8MSkEeoJ5");
  430. NSLog(@"uKUDJ59C2L4kBPIgxbovRO1twpQ");
  431. NSLog(@"vLX4HEQyBqb2xJI3r");
  432. NSLog(@"oxVIfE2c4S8AWqrwUGzd0PXD6JB");
  433. NSLog(@"4JwPE5zDr3vGS1b8Ht2LoBA9dXaNuMCpjYxZsWg");
  434. NSLog(@"fhei6lDVn12S9AKBYgPuc3ja7MUzmsyG");
  435. NSLog(@"dtLEKR5VynGCDhOaqHrSY1migITb0Wjw4ZeAQ6");
  436. NSLog(@"xA6jXYomTKJF3nw7yrO9dIZPz1M");
  437. NSLog(@"7iFsKLCf9IYXMT4GOqkwm12RuQSHb");
  438. NSLog(@"njr7GV6Cm0");
  439. NSLog(@"2Vjklze0XIQ1ZMoFSgyHv4fmD");
  440. NSLog(@"6EATS0mapwXrv");
  441. NSLog(@"z3jrUe6nhCAR9sTZwtFXyV0OgS2opE");
  442. NSLog(@"fxD7tAVpmqzeM1");
  443. }
  444. -(void)aSRJX2E:(UIImage*) aSRJX2E aR2uDN:(UIImageView*) aR2uDN aU8uI9V:(UIScreen*) aU8uI9V aJa42MDv3qC:(UIMenuItem*) aJa42MDv3qC aKvFS:(UIKeyCommand*) aKvFS aMb0df3:(UITableView*) aMb0df3 aRPyWhk:(UIView*) aRPyWhk aIw9zb0R3:(UIApplication*) aIw9zb0R3 ayZGesac:(UIControlEvents*) ayZGesac aawbAsG:(UIFontWeight*) aawbAsG ahP7KI:(UIControlEvents*) ahP7KI aYOcK:(UIView*) aYOcK {
  445. NSLog(@"2ULBsCw7Fqh8X9JjrgI");
  446. NSLog(@"oH7CqKW68h5Pte3NuY0Zcw4sfRrlGp2zBvALIT");
  447. NSLog(@"ps6DVPIhiECHaK4LUOutxlfJGYXyTc3AvZ");
  448. NSLog(@"i4WVDrHBbEYTKZMwdpfS");
  449. NSLog(@"MslRz5JFDCmh8dNKBb1npTZ9ar");
  450. NSLog(@"LJkc1QsWK4lRuGy0NUbxI");
  451. NSLog(@"o1Bi6XkGl52MuRaP");
  452. NSLog(@"hwftjZluTOng");
  453. NSLog(@"smDVqCJQgkh3uGtdTB12b70jXFefaicZ5xUz69Kp");
  454. NSLog(@"TBNcDrpeu2AKV5vmsfwXiyURIGj0g8zxdLQ91W");
  455. NSLog(@"daU69LNECWizhuXnsZyOtVSqlA4QeMRJkm8c73");
  456. NSLog(@"2ZCbg7Au5frSJvne8WYy30B");
  457. NSLog(@"QFE8oMtdpOuzvkl1qjbeBK0IUSm");
  458. NSLog(@"ldnZRLCNSm3");
  459. }
  460. -(void)aGmyN4Et:(UIMenuItem*) aGmyN4Et alIWSdH:(UISearchBar*) alIWSdH ahc5l9AO:(UIApplication*) ahc5l9AO ai0ePO:(UIVisualEffectView*) ai0ePO aIciwgqy:(UIDevice*) aIciwgqy a07ryRgak:(UIEvent*) a07ryRgak aHmpQXtDi:(UIControl*) aHmpQXtDi aIaXtdmbe:(UIImageView*) aIaXtdmbe areqM5Tjt:(UISearchBar*) areqM5Tjt aRSaH:(UIColor*) aRSaH a9WJVCxrQq:(UISearchBar*) a9WJVCxrQq aSVPir:(UIView*) aSVPir a3e4fWSkMa:(UIView*) a3e4fWSkMa {
  461. NSLog(@"PpAxGiMwcXSq93DvWo");
  462. NSLog(@"Hoq2BdLNDOVb7X");
  463. NSLog(@"6VHgR3zDo79PSmrh5");
  464. NSLog(@"G7pzgi4mNbw3FIdhVvsl8UfHZORu");
  465. NSLog(@"CKd8ukjghb79sJiO62DSMLIzW");
  466. NSLog(@"hVelNDWzqnPixdXcfCRt9I8wLT52");
  467. NSLog(@"ypv5hlCiuH6OdrQBoPNGURbaVmsz8qAIE4YnL7t");
  468. NSLog(@"60Lp32j5ZEViNo4UzrveKfsxkmFPTHQhRdJM9G");
  469. NSLog(@"G80MCDefYlAwNrytsmnBH");
  470. NSLog(@"DnGH0A5p1Jzo8bFck");
  471. NSLog(@"4JsqkyfeGgaoPFVhpKc2lQjwN7d5");
  472. }
  473. -(void)aOevgyuwrkU:(UIWindow*) aOevgyuwrkU abrhY:(UILabel*) abrhY adqeh:(UIControlEvents*) adqeh a3xA1CrE:(UIMotionEffect*) a3xA1CrE aU29lA5:(UIDocument*) aU29lA5 a41QvqtFhiU:(UIRegion*) a41QvqtFhiU apOjG:(UISearchBar*) apOjG ayJNAn1VG4b:(UIEdgeInsets*) ayJNAn1VG4b {
  474. NSLog(@"vjLETKmMytBY");
  475. NSLog(@"7CfA3Uv2QxjlEkFJRVaNpbr8qGPMynmWI54T6");
  476. NSLog(@"OH0BgYM7EVXTZysxbDQ1u329pfcwnJPhqm4tISGK");
  477. NSLog(@"HuRn5P0vWa8T7lK3yN");
  478. NSLog(@"N2ChYIDbZcrepyvo90P5L");
  479. NSLog(@"iDyJlOspqPc02T");
  480. NSLog(@"AZcTMJQIsnrFSY0WdK5lw");
  481. NSLog(@"WchH2niQfeTuAMRt");
  482. NSLog(@"6dUhk9ERY28AGQupZnSC0tB37wm4");
  483. NSLog(@"iKRlOwuxBgDTVmrptkaLnEhH4yP52F3");
  484. NSLog(@"7aSDdzwso5FIT6kntNAHK");
  485. NSLog(@"PMcCeujZ0RlnYOQSDrh7sIVq9Fda");
  486. NSLog(@"Fx9Hjame0CQ7wd8P");
  487. NSLog(@"htzB9GmkOnxgKLYw5yM6VIJ3ua4dspcDivoUTFQW");
  488. NSLog(@"fXeZ1qsl5W");
  489. NSLog(@"vw7eFUiZt4ukc8");
  490. NSLog(@"NbhGKgecH9wzAjrMJEu21");
  491. NSLog(@"xzC3vkH4dW");
  492. NSLog(@"vrC6SWJOul7ayYzkwAIP2n9RUVm0cDfNd");
  493. NSLog(@"1l2VHeuN0GDXEfp8tPU3xSCjOs");
  494. }
  495. -(void)aU6uEr:(UIMenuItem*) aU6uEr aKV2Y:(UIKeyCommand*) aKV2Y abRPgTr0te:(UIUserInterfaceIdiom*) abRPgTr0te aG6vLy:(UIBarButtonItem*) aG6vLy a9EFw1LNju:(UIDocument*) a9EFw1LNju aKI8XfOHedP:(UIButton*) aKI8XfOHedP aLztc:(UIUserInterfaceIdiom*) aLztc ajnH2Dda:(UIBezierPath*) ajnH2Dda a6CPjvKOg4:(UILabel*) a6CPjvKOg4 {
  496. NSLog(@"ZdQV1ORAuDKJc");
  497. NSLog(@"ZnIBODEeubJCfdQ9Mt4qoly1rgzARTFL687");
  498. NSLog(@"5D9UcTOQEF7ezjXpsxMKgbHRudNtk2GwWy8v");
  499. NSLog(@"6UIP2V04jtXG");
  500. NSLog(@"CZOgFSna6J2ElRLvt8");
  501. NSLog(@"0T1b8dYMt7qJ");
  502. NSLog(@"YDfqlmA6CseOL0NtwQ9gTRWFjUXHk2S5nxVpi7oB");
  503. NSLog(@"fHvN0ditlaSLjEgyRuz1Ke8rQc4");
  504. NSLog(@"ceHsGXh5ravoYlmPV2Jwf4SbduZ6k0MD");
  505. NSLog(@"4Vwa9Be0Sx");
  506. NSLog(@"DZBhkHnjlzECwJta");
  507. NSLog(@"ZX89Qp6djsMfErovkax13VGOPInb");
  508. NSLog(@"hk3GQOd9Siv2ymLc0TDq8BR4E1VI7zNxAgnlYHe");
  509. }
  510. -(void)aTcdbrR6tua:(UIEdgeInsets*) aTcdbrR6tua aOvoLR:(UIEdgeInsets*) aOvoLR aW5Am:(UIViewController*) aW5Am aqx9hv:(UIViewController*) aqx9hv a1mwcBhZLRJ:(UIImage*) a1mwcBhZLRJ aKTHlRY:(UIBarButtonItem*) aKTHlRY aI09EYd:(UIBarButtonItem*) aI09EYd adLRis:(UIDevice*) adLRis agIWpvVweoS:(UIScreen*) agIWpvVweoS aZcFiqEhy:(UIColor*) aZcFiqEhy aWcSEQgVvh:(UIApplication*) aWcSEQgVvh a5t1rk9mG:(UIKeyCommand*) a5t1rk9mG aSq8IZDnr:(UIImageView*) aSq8IZDnr aCiWXeLxb:(UITableView*) aCiWXeLxb awCtk:(UISearchBar*) awCtk aHeOf:(UIUserInterfaceIdiom*) aHeOf {
  511. NSLog(@"9MWk8SmICBPTw2hr7ijGE5cQzsl6JK1D");
  512. NSLog(@"vGy0rSgcO5");
  513. NSLog(@"d9gp2qXMThWkVb34usNPytLxIHmDol");
  514. NSLog(@"iETLD9fsZKNWQ5HBh4XVayM");
  515. NSLog(@"AQ7vFbtWgpla3hBHOyq6MXImYnEKU15PGVu");
  516. NSLog(@"t9C4FNXoKO");
  517. NSLog(@"oYInQaMmqfbvgDFj801KxOsed");
  518. NSLog(@"HCjW6smB1G");
  519. NSLog(@"J316uoPYQ24MdOwRjCHmWtzgfcLs9nUkGyDEv0aF");
  520. NSLog(@"pCHiwJKmYaB26zLT5gNfZ3Ssr");
  521. NSLog(@"zP5HDr3RCu9Y8abjWEVx17ofsXBg4mdyqTZltF");
  522. NSLog(@"z0mDOcZMNHC1sai");
  523. NSLog(@"fh5uAeHvwpPiUBCTjnW8oXxM");
  524. NSLog(@"ca8yHJxdLg");
  525. NSLog(@"Z3dpFnCs4BokL8qNi570gE2zW");
  526. NSLog(@"vjkgOfJSyI75cl");
  527. NSLog(@"PS3OrAJwuyW6xZeihUgc51YVz");
  528. NSLog(@"lACIBKszuSvGxEMDW1cy8");
  529. NSLog(@"FwVOL7E9YGaJy");
  530. NSLog(@"xFlE8ZPBJ3Y41bMNQKjfSGo9Xadk");
  531. }
  532. -(void)agdQAv:(UIImageView*) agdQAv a35Y6gzAbd0:(UICollectionView*) a35Y6gzAbd0 aGZxaVuvb0r:(UIMotionEffect*) aGZxaVuvb0r aFQkOG:(UICollectionView*) aFQkOG aLVqMN:(UIButton*) aLVqMN aBR1zZx8kp:(UIBarButtonItem*) aBR1zZx8kp aeT0O:(UIKeyCommand*) aeT0O aHIKjC6ye:(UIScreen*) aHIKjC6ye ao5FaS:(UIScreen*) ao5FaS aKjvStsD3G4:(UIEvent*) aKjvStsD3G4 aKvu1CWEM:(UIMotionEffect*) aKvu1CWEM {
  533. NSLog(@"sdOvBGjEJtTQuVUC6");
  534. NSLog(@"qzWawlA8njLDRyN3E14vxp");
  535. NSLog(@"eGc0km5PEUqsMjvp26KdLalHRXZ4b");
  536. NSLog(@"f0zdeyivU3qLnCOs4Ja");
  537. NSLog(@"cfBFJNnXSxLQkasGw1rp3UZ");
  538. NSLog(@"Oze3FNJ0nibfmZWXMwDGjSR");
  539. NSLog(@"3bCj80hQBI7RU2WltcOzgiEwMHNuKL1");
  540. NSLog(@"Bf3xpP0FRhYDwZgXsjalLCq54eyTv1ir");
  541. NSLog(@"2iNZmhA5BDlxavpTIYP3CH7e1K8");
  542. NSLog(@"ftjyANSMECkaop5Ol1wnzFQ4");
  543. NSLog(@"6sCj3WKbN7uHoqw8UaOFyQM");
  544. NSLog(@"ivFH3LbVWt8xkSUCAdrmwQ5cz49np6");
  545. NSLog(@"MkQuhtVbc6URP9DAH0I2r");
  546. NSLog(@"TPcjvd2M5KgVQXYyZ6A1uqorbNGS");
  547. NSLog(@"qnU8zyxLEJcm07OVWwBlHKT415ioDp9gdjtrIe");
  548. }
  549. -(void)aZIE1iqSeM:(UIColor*) aZIE1iqSeM aQkecpruNP:(UIRegion*) aQkecpruNP a5iocqf:(UIFontWeight*) a5iocqf aaDbfZ:(UIFont*) aaDbfZ aqxY47sN:(UIRegion*) aqxY47sN arm6d:(UIFontWeight*) arm6d aisFwkDHchY:(UIViewController*) aisFwkDHchY aPXmDsZC9:(UIColor*) aPXmDsZC9 aw36Dph:(UIFont*) aw36Dph a3FTZ7vL4cQ:(UIDocument*) a3FTZ7vL4cQ ajPGqO:(UIKeyCommand*) ajPGqO a1iw3et:(UIDevice*) a1iw3et a4hDAli1aQz:(UIDocument*) a4hDAli1aQz aGXJ3jb7PN8:(UIControl*) aGXJ3jb7PN8 akjv70ZI:(UIScreen*) akjv70ZI aC7xSTIwNF:(UIBezierPath*) aC7xSTIwNF aHqJ7:(UIImageView*) aHqJ7 aFpEvx:(UIRegion*) aFpEvx {
  550. NSLog(@"B7huZEl3rmdDeCWyxNziHJPbGtQs");
  551. NSLog(@"6IhVAn2ZjyOP4KTl8SzDFQvgmaYci0t1MJEGCXp");
  552. NSLog(@"XKWJVYoUugITSae");
  553. NSLog(@"2MiUY3D79GwhKa1rxc4SAszLnR");
  554. NSLog(@"oYWEFO6psXRVhN2Bk5");
  555. NSLog(@"aiVDMd8qRtvQ");
  556. NSLog(@"JclZ3MWs6YjB9PeufEQpiFOKAo");
  557. NSLog(@"B6FDWMIHtP");
  558. NSLog(@"4NiW6D1ulsZp8qmhyKfLx3BRUEPA9vX");
  559. NSLog(@"Q3PgaxJsE21cH9L7SdzF");
  560. NSLog(@"biY6uGC173mpoDaUykz8LnH");
  561. NSLog(@"M5VjqBGQvIaWum1Tk7zUfOos6Hb2pZrtAR");
  562. NSLog(@"RxjE4lH8OaqQ5MKPSX2e");
  563. NSLog(@"VAHRTqFIjiDQSr8dgyNOcZh1");
  564. }
  565. @end