[
  {
    "path": ".travis.yml",
    "content": "language: objective-c\nxcode_workspace: HYBHelperkit.xcworkspace\nxcode_scheme: HYBHelperKit\nscript: \n  - date\n\n"
  },
  {
    "path": "HYBHelperKit/AppDelegate.h",
    "content": "//\n//  AppDelegate.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n@interface AppDelegate : UIResponder <UIApplicationDelegate>\n\n@property (strong, nonatomic) UIWindow *window;\n@property (nonatomic, copy) NSString *baseURL;\n\n@end\n\n"
  },
  {
    "path": "HYBHelperKit/AppDelegate.m",
    "content": "//\n//  AppDelegate.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"AppDelegate.h\"\n#import \"HYBHelperKit.h\"\n#import \"ViewController.h\"\n\n@interface AppDelegate ()\n\n@end\n\n@implementation AppDelegate\n\n\n- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\n  self.window = [[UIWindow alloc] initWithFrame:kScreenBounds];\n  self.window.backgroundColor = kWhiteColor;\n  \n  BOOL product = NO;\n  if (!product) {\n    HYBHelperKitBaseURLController *vc = [HYBHelperKitBaseURLController createWithBaseURLs:^NSArray *{\n      return @[@\"http://101.200.209.244\",\n               @\"http://www.huangyibiao.com\",\n               ];\n    } onCallback:^(NSString *result) {\n      self.baseURL = result;\n      // 选好base url后，修改root window\n      UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:[ViewController new]];\n      self.window.rootViewController = nav;\n    }];\n    \n    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];\n    self.window.rootViewController = nav;\n  } else {\n    //\n  }\n  \n  [self.window makeKeyAndVisible];\n  \n  return YES;\n}\n\n- (void)applicationWillResignActive:(UIApplication *)application {\n  // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.\n  // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.\n}\n\n- (void)applicationDidEnterBackground:(UIApplication *)application {\n  // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.\n  // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.\n}\n\n- (void)applicationWillEnterForeground:(UIApplication *)application {\n  // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.\n}\n\n- (void)applicationDidBecomeActive:(UIApplication *)application {\n  // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.\n}\n\n- (void)applicationWillTerminate:(UIApplication *)application {\n  // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKit/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"29x29\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"29x29\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"40x40\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"40x40\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"60x60\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"60x60\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "HYBHelperKit/Base.lproj/LaunchScreen.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"10117\" systemVersion=\"15C47a\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" launchScreen=\"YES\" useTraitCollections=\"YES\" initialViewController=\"01J-lp-oVM\">\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"10085\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"EHf-IW-A2E\">\n            <objects>\n                <viewController id=\"01J-lp-oVM\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"Llm-lL-Icb\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"xb3-aO-Qok\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"Ze5-6b-2t3\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"600\" height=\"600\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"calibratedWhite\"/>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"iYj-Kq-Ea1\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"53\" y=\"375\"/>\n        </scene>\n    </scenes>\n</document>\n"
  },
  {
    "path": "HYBHelperKit/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UILaunchStoryboardName</key>\n\t<string>LaunchScreen</string>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>armv7</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "HYBHelperKit/TestViewController1.h",
    "content": "//\n//  TestViewController1.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/9.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"HYBHelperKitBaseController.h\"\n\n@interface TestViewController1 : HYBHelperKitBaseController\n\n@end\n"
  },
  {
    "path": "HYBHelperKit/TestViewController1.m",
    "content": "//\n//  TestViewController1.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/9.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"TestViewController1.h\"\n\n@implementation TestViewController1\n\n- (void)viewDidLoad {\n  [super viewDidLoad];\n  \n//  [self hyb_setNavTitle:@\"测试1\"];\n//  [self hyb_setNavTitle:@\"Test2\" rightTitle:@\"Right button\" rightBlock:^(UIButton *sender) {\n//    NSLog(@\"clicked\");\n//  }];\n//  [self.hyb_rightButtonItem setTitleColor:kBlueColor forState:UIControlStateNormal];\n  \n  // 非系统返回按钮\n  kWeakObject(self);\n  [self hyb_setNavLeftButtonTitle:@\"Back\" onCliked:^(UIButton *sender) {\n    [weakObject.navigationController popViewControllerAnimated:YES];\n  }];\n  [self.hyb_leftButtonItem setTitleColor:kBlueColor forState:UIControlStateNormal];\n \n  // 一行搞定导航条\n  [self hyb_setNavTitle:@\"Test1\" rightTitles:@[@\"btton1\", @\"button2\"] rightBlock:^(NSUInteger index, UIButton *sender) {\n    NSLog(@\"clicked at index: %ld\", index);\n  }];\n  \n  [self.hyb_rightButtonItems enumerateObjectsUsingBlock:^(UIButton * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {\n    [obj setTitleColor:kPurpleColor forState:UIControlStateNormal];\n  }];\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKit/ViewController.h",
    "content": "//\n//  ViewController.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n@interface ViewController : UIViewController\n\n\n@end\n\n"
  },
  {
    "path": "HYBHelperKit/ViewController.m",
    "content": "//\n//  ViewController.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"ViewController.h\"\n#import \"HYBHelperKit.h\"\n#import \"TestViewController1.h\"\n\n@interface ViewController ()\n\n@end\n\n@implementation ViewController\n\n- (void)viewDidLoad {\n  [super viewDidLoad];\n  \n  self.view.backgroundColor = kWhiteColor;\n  \n  UIButton *button = [UIButton hyb_buttonWithTitle:@\"enter to test\" superView:self.view constraints:^(MASConstraintMaker *make) {\n    make.left.mas_offset(20);\n    make.right.mas_offset(-20);\n    make.height.mas_offset(50);\n    make.top.mas_offset(80);\n  } touchUp:^(UIButton *sender) {\n    [self onEnterToTestCenter:sender];\n  }];\n  \n  [button setBackgroundColor:kOrangeColor];\n  [button setTitleColor:kWhiteColor forState:UIControlStateNormal];\n}\n\n- (IBAction)onEnterToTestCenter:(id)sender {\n  HYBHelperKitTestEntranceController *vc = [[HYBHelperKitTestEntranceController alloc] initWithItems:^NSArray *{\n    return @[[HYBHelperKitTestEntranceModel modelWithClass:[TestViewController1 class] title:@\"Test1\"],\n            [HYBHelperKitTestEntranceModel modelWithClass:[UIViewController class] title:@\"Test2\"]\n    ];\n  }];\n  [self.navigationController pushViewController:vc animated:YES];\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKit/main.m",
    "content": "//\n//  main.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"AppDelegate.h\"\n\nint main(int argc, char * argv[]) {\n  @autoreleasepool {\n      return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));\n  }\n}\n"
  },
  {
    "path": "HYBHelperKit.podspec",
    "content": "Pod::Spec.new do |s|\n\n  s.name         = \"HYBHelperKit\"\n  s.version      = \"0.2.0\"\n  s.summary      = \"日常开发必不可少的神器之一，UIBlockKit、UIMakerKit、UIHelperKit、CommonKit、FoundationKit、Controllers、Constants等集于一身的神器！\"\n\n  s.description  = <<-DESC\n                   日常开发必不可少的神器之一，UIBlockKit、UIMakerKit、UIHelperKit、CommonKit、FoundationKit、Controllers等集于一身的神器，简化日常开发，提高开发效率！\n                   DESC\n\n  s.homepage     = \"https://github.com/CoderJackyHuang/HYBHelperKit\"\n  s.license      = \"MIT\"\n  s.author             = { \"huangyibiao\" => \"huangyibiao@163.com\" }\n  s.social_media_url   = \"http://www.huangyibiao.com/\"\n  s.platform     = :ios, \"7.0\"\n  s.source       = { :git => \"https://github.com/CoderJackyHuang/HYBHelperKit.git\", :tag => \"v#{s.version}\" }\n  s.source_files  = \"HYBHelperKitSources/*\"\n#s.public_header_files = 'HYBHelperKitSources/HYBHelperKit.h'\n  s.requires_arc = true\n s.dependency \"Masonry\", \"~> 1.0.1\"\n\nend\n"
  },
  {
    "path": "HYBHelperKit.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t5EE55DF079058957C1D7C04F /* libPods-HYBHelperKit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B9F4AC97535142014D9B17F /* libPods-HYBHelperKit.a */; };\n\t\t6920F68B1D320E9600D89D07 /* TestViewController1.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F68A1D320E9600D89D07 /* TestViewController1.m */; };\n\t\t6920F84A1D3351DB00D89D07 /* HYBCommonKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F80C1D3351DB00D89D07 /* HYBCommonKit.m */; };\n\t\t6920F84B1D3351DB00D89D07 /* HYBHelperKitBaseController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8101D3351DB00D89D07 /* HYBHelperKitBaseController.m */; };\n\t\t6920F84C1D3351DB00D89D07 /* HYBHelperKitBaseURLController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8121D3351DB00D89D07 /* HYBHelperKitBaseURLController.m */; };\n\t\t6920F84D1D3351DB00D89D07 /* HYBHelperKitTestEntranceController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8141D3351DB00D89D07 /* HYBHelperKitTestEntranceController.m */; };\n\t\t6920F84E1D3351DB00D89D07 /* NSArray+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8171D3351DB00D89D07 /* NSArray+HYBHelperKit.m */; };\n\t\t6920F84F1D3351DB00D89D07 /* NSDictionary+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8191D3351DB00D89D07 /* NSDictionary+HYBHelperKit.m */; };\n\t\t6920F8501D3351DB00D89D07 /* NSFileManager+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F81B1D3351DB00D89D07 /* NSFileManager+HYBHelperKit.m */; };\n\t\t6920F8511D3351DB00D89D07 /* NSMutableArray+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F81D1D3351DB00D89D07 /* NSMutableArray+HYBHelperKit.m */; };\n\t\t6920F8521D3351DB00D89D07 /* NSMutableDictionary+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F81F1D3351DB00D89D07 /* NSMutableDictionary+HYBHelperKit.m */; };\n\t\t6920F8531D3351DB00D89D07 /* NSObject+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8211D3351DB00D89D07 /* NSObject+HYBHelperKit.m */; };\n\t\t6920F8541D3351DB00D89D07 /* NSString+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8231D3351DB00D89D07 /* NSString+HYBHelperKit.m */; };\n\t\t6920F8551D3351DB00D89D07 /* NSTimer+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8251D3351DB00D89D07 /* NSTimer+HYBHelperKit.m */; };\n\t\t6920F8561D3351DB00D89D07 /* NSUserDefaults+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8271D3351DB00D89D07 /* NSUserDefaults+HYBHelperKit.m */; };\n\t\t6920F85B1D3351DB00D89D07 /* UICollectionView+HYBMaonsryKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8331D3351DB00D89D07 /* UICollectionView+HYBMaonsryKit.m */; };\n\t\t6920F85C1D3351DB00D89D07 /* UIImageView+HYBMasonryKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8351D3351DB00D89D07 /* UIImageView+HYBMasonryKit.m */; };\n\t\t6920F8601D3351DB00D89D07 /* UILabel+HYBMasonryKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F83F1D3351DB00D89D07 /* UILabel+HYBMasonryKit.m */; };\n\t\t6920F8611D3351DB00D89D07 /* UIScrollView+HYBMasonryKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8411D3351DB00D89D07 /* UIScrollView+HYBMasonryKit.m */; };\n\t\t6920F8621D3351DB00D89D07 /* UITableView+HYBMasonryKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8431D3351DB00D89D07 /* UITableView+HYBMasonryKit.m */; };\n\t\t6920F8631D3351DB00D89D07 /* UITextField+HYBMasonryKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8451D3351DB00D89D07 /* UITextField+HYBMasonryKit.m */; };\n\t\t6920F8641D3351DB00D89D07 /* UIView+HYBMasonryKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8471D3351DB00D89D07 /* UIView+HYBMasonryKit.m */; };\n\t\t6920F8651D3351DB00D89D07 /* UIWebView+HYBMasonryKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8491D3351DB00D89D07 /* UIWebView+HYBMasonryKit.m */; };\n\t\t6920F8711D33522F00D89D07 /* UIButton+HYBHelperBlockKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F86A1D33522F00D89D07 /* UIButton+HYBHelperBlockKit.m */; };\n\t\t6920F8721D33522F00D89D07 /* UIControl+HYBHelperBlockKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F86C1D33522F00D89D07 /* UIControl+HYBHelperBlockKit.m */; };\n\t\t6920F8731D33522F00D89D07 /* UIGestureRecognizer+HYBHelperBlockKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F86E1D33522F00D89D07 /* UIGestureRecognizer+HYBHelperBlockKit.m */; };\n\t\t6920F8741D33522F00D89D07 /* UIView+HYBHelperBlockKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8701D33522F00D89D07 /* UIView+HYBHelperBlockKit.m */; };\n\t\t6920F87C1D33526B00D89D07 /* UIColor+HYBHelperKitUIKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8771D33526B00D89D07 /* UIColor+HYBHelperKitUIKit.m */; };\n\t\t6920F87D1D33526B00D89D07 /* UIDevice+HYBHelperKitUIKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8791D33526B00D89D07 /* UIDevice+HYBHelperKitUIKit.m */; };\n\t\t6920F87E1D33526B00D89D07 /* UIView+HYBHelperKitUIKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F87B1D33526B00D89D07 /* UIView+HYBHelperKitUIKit.m */; };\n\t\t6920F8841D339D3D00D89D07 /* NSDate+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8831D339D3D00D89D07 /* NSDate+HYBHelperKit.m */; };\n\t\t6932F8D11D24D12600F2D2F0 /* DictionaryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6932F8D01D24D12600F2D2F0 /* DictionaryTests.m */; };\n\t\t69489E851D23790E00F90205 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 69489E841D23790E00F90205 /* main.m */; };\n\t\t69489E881D23790E00F90205 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 69489E871D23790E00F90205 /* AppDelegate.m */; };\n\t\t69489E8B1D23790E00F90205 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 69489E8A1D23790E00F90205 /* ViewController.m */; };\n\t\t69489E901D23790E00F90205 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 69489E8F1D23790E00F90205 /* Assets.xcassets */; };\n\t\t69489E931D23790E00F90205 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 69489E911D23790E00F90205 /* LaunchScreen.storyboard */; };\n\t\t69489E9E1D23790E00F90205 /* HYBHelperKitTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 69489E9D1D23790E00F90205 /* HYBHelperKitTests.m */; };\n\t\t69489EC91D23BCDC00F90205 /* NSTimerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 69489EC71D23BCDC00F90205 /* NSTimerTests.m */; };\n\t\t69489ECC1D23BEEF00F90205 /* NSUserDefaultsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 69489ECA1D23BEEF00F90205 /* NSUserDefaultsTests.m */; };\n\t\t69489ED11D23C11200F90205 /* NSStringTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 69489ED01D23C11200F90205 /* NSStringTests.m */; };\n\t\t695029101D366C2800773B69 /* NSNumber+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6950290F1D366C2800773B69 /* NSNumber+HYBHelperKit.m */; };\n\t\t6950297C1D3929B800773B69 /* UIAlertView+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6950297B1D3929B800773B69 /* UIAlertView+HYBHelperKit.m */; };\n\t\t6950297F1D39332B00773B69 /* UIActionSheet+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6950297E1D39332B00773B69 /* UIActionSheet+HYBHelperKit.m */; };\n\t\t69C383191D23C7FB00176B00 /* NSObjectTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 69C383181D23C7FB00176B00 /* NSObjectTests.m */; };\n\t\t69C383291D23DA4100176B00 /* ArrayTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 69C383271D23DA4100176B00 /* ArrayTests.m */; };\n\t\tDC82BC5B03DBD5DC59B883D8 /* libPods-HYBHelperKitTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 880E538D3E79C9676BE1490E /* libPods-HYBHelperKitTests.a */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\t69489E9A1D23790E00F90205 /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = 69489E781D23790E00F90205 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 69489E7F1D23790E00F90205;\n\t\t\tremoteInfo = HYBHelperKit;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXFileReference section */\n\t\t27E98AAFD6B6C8A744E7B36C /* Pods-HYBHelperKitTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = \"Pods-HYBHelperKitTests.debug.xcconfig\"; path = \"Pods/Target Support Files/Pods-HYBHelperKitTests/Pods-HYBHelperKitTests.debug.xcconfig\"; sourceTree = \"<group>\"; };\n\t\t2B9F4AC97535142014D9B17F /* libPods-HYBHelperKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = \"libPods-HYBHelperKit.a\"; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t3D2427DF68D165E6D41371A3 /* Pods-HYBHelperKit.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = \"Pods-HYBHelperKit.release.xcconfig\"; path = \"Pods/Target Support Files/Pods-HYBHelperKit/Pods-HYBHelperKit.release.xcconfig\"; sourceTree = \"<group>\"; };\n\t\t3E988714FC5DCCC6FE572EC4 /* Pods-HYBHelperKit.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = \"Pods-HYBHelperKit.debug.xcconfig\"; path = \"Pods/Target Support Files/Pods-HYBHelperKit/Pods-HYBHelperKit.debug.xcconfig\"; sourceTree = \"<group>\"; };\n\t\t6920F6891D320E9600D89D07 /* TestViewController1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestViewController1.h; sourceTree = \"<group>\"; };\n\t\t6920F68A1D320E9600D89D07 /* TestViewController1.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestViewController1.m; sourceTree = \"<group>\"; };\n\t\t6920F80B1D3351DB00D89D07 /* HYBCommonKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HYBCommonKit.h; sourceTree = \"<group>\"; };\n\t\t6920F80C1D3351DB00D89D07 /* HYBCommonKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HYBCommonKit.m; sourceTree = \"<group>\"; };\n\t\t6920F80E1D3351DB00D89D07 /* HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HYBHelperKit.h; sourceTree = \"<group>\"; };\n\t\t6920F80F1D3351DB00D89D07 /* HYBHelperKitBaseController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HYBHelperKitBaseController.h; sourceTree = \"<group>\"; };\n\t\t6920F8101D3351DB00D89D07 /* HYBHelperKitBaseController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HYBHelperKitBaseController.m; sourceTree = \"<group>\"; };\n\t\t6920F8111D3351DB00D89D07 /* HYBHelperKitBaseURLController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HYBHelperKitBaseURLController.h; sourceTree = \"<group>\"; };\n\t\t6920F8121D3351DB00D89D07 /* HYBHelperKitBaseURLController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HYBHelperKitBaseURLController.m; sourceTree = \"<group>\"; };\n\t\t6920F8131D3351DB00D89D07 /* HYBHelperKitTestEntranceController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HYBHelperKitTestEntranceController.h; sourceTree = \"<group>\"; };\n\t\t6920F8141D3351DB00D89D07 /* HYBHelperKitTestEntranceController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HYBHelperKitTestEntranceController.m; sourceTree = \"<group>\"; };\n\t\t6920F8151D3351DB00D89D07 /* HYBHelperMasonryMaker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HYBHelperMasonryMaker.h; sourceTree = \"<group>\"; };\n\t\t6920F8161D3351DB00D89D07 /* NSArray+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = \"NSArray+HYBHelperKit.h\"; sourceTree = \"<group>\"; };\n\t\t6920F8171D3351DB00D89D07 /* NSArray+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = \"NSArray+HYBHelperKit.m\"; sourceTree = \"<group>\"; };\n\t\t6920F8181D3351DB00D89D07 /* NSDictionary+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = \"NSDictionary+HYBHelperKit.h\"; sourceTree = \"<group>\"; };\n\t\t6920F8191D3351DB00D89D07 /* NSDictionary+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = \"NSDictionary+HYBHelperKit.m\"; sourceTree = \"<group>\"; };\n\t\t6920F81A1D3351DB00D89D07 /* NSFileManager+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = \"NSFileManager+HYBHelperKit.h\"; sourceTree = \"<group>\"; };\n\t\t6920F81B1D3351DB00D89D07 /* NSFileManager+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = \"NSFileManager+HYBHelperKit.m\"; sourceTree = \"<group>\"; };\n\t\t6920F81C1D3351DB00D89D07 /* NSMutableArray+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = \"NSMutableArray+HYBHelperKit.h\"; sourceTree = \"<group>\"; };\n\t\t6920F81D1D3351DB00D89D07 /* NSMutableArray+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = \"NSMutableArray+HYBHelperKit.m\"; sourceTree = \"<group>\"; };\n\t\t6920F81E1D3351DB00D89D07 /* NSMutableDictionary+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = \"NSMutableDictionary+HYBHelperKit.h\"; sourceTree = \"<group>\"; };\n\t\t6920F81F1D3351DB00D89D07 /* NSMutableDictionary+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = \"NSMutableDictionary+HYBHelperKit.m\"; sourceTree = \"<group>\"; };\n\t\t6920F8201D3351DB00D89D07 /* NSObject+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = \"NSObject+HYBHelperKit.h\"; sourceTree = \"<group>\"; };\n\t\t6920F8211D3351DB00D89D07 /* NSObject+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = \"NSObject+HYBHelperKit.m\"; sourceTree = \"<group>\"; };\n\t\t6920F8221D3351DB00D89D07 /* NSString+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = \"NSString+HYBHelperKit.h\"; sourceTree = \"<group>\"; };\n\t\t6920F8231D3351DB00D89D07 /* NSString+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = \"NSString+HYBHelperKit.m\"; sourceTree = \"<group>\"; };\n\t\t6920F8241D3351DB00D89D07 /* NSTimer+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = \"NSTimer+HYBHelperKit.h\"; sourceTree = \"<group>\"; };\n\t\t6920F8251D3351DB00D89D07 /* NSTimer+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = \"NSTimer+HYBHelperKit.m\"; sourceTree = \"<group>\"; };\n\t\t6920F8261D3351DB00D89D07 /* NSUserDefaults+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = \"NSUserDefaults+HYBHelperKit.h\"; sourceTree = \"<group>\"; };\n\t\t6920F8271D3351DB00D89D07 /* NSUserDefaults+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = \"NSUserDefaults+HYBHelperKit.m\"; sourceTree = \"<group>\"; };\n\t\t6920F8321D3351DB00D89D07 /* UICollectionView+HYBMaonsryKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = \"UICollectionView+HYBMaonsryKit.h\"; sourceTree = \"<group>\"; };\n\t\t6920F8331D3351DB00D89D07 /* UICollectionView+HYBMaonsryKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = \"UICollectionView+HYBMaonsryKit.m\"; sourceTree = \"<group>\"; };\n\t\t6920F8341D3351DB00D89D07 /* UIImageView+HYBMasonryKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = \"UIImageView+HYBMasonryKit.h\"; sourceTree = \"<group>\"; };\n\t\t6920F8351D3351DB00D89D07 /* UIImageView+HYBMasonryKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = \"UIImageView+HYBMasonryKit.m\"; sourceTree = \"<group>\"; };\n\t\t6920F83E1D3351DB00D89D07 /* UILabel+HYBMasonryKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = \"UILabel+HYBMasonryKit.h\"; sourceTree = \"<group>\"; };\n\t\t6920F83F1D3351DB00D89D07 /* UILabel+HYBMasonryKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = \"UILabel+HYBMasonryKit.m\"; sourceTree = \"<group>\"; };\n\t\t6920F8401D3351DB00D89D07 /* UIScrollView+HYBMasonryKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = \"UIScrollView+HYBMasonryKit.h\"; sourceTree = \"<group>\"; };\n\t\t6920F8411D3351DB00D89D07 /* UIScrollView+HYBMasonryKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = \"UIScrollView+HYBMasonryKit.m\"; sourceTree = \"<group>\"; };\n\t\t6920F8421D3351DB00D89D07 /* UITableView+HYBMasonryKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = \"UITableView+HYBMasonryKit.h\"; sourceTree = \"<group>\"; };\n\t\t6920F8431D3351DB00D89D07 /* UITableView+HYBMasonryKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = \"UITableView+HYBMasonryKit.m\"; sourceTree = \"<group>\"; };\n\t\t6920F8441D3351DB00D89D07 /* UITextField+HYBMasonryKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = \"UITextField+HYBMasonryKit.h\"; sourceTree = \"<group>\"; };\n\t\t6920F8451D3351DB00D89D07 /* UITextField+HYBMasonryKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = \"UITextField+HYBMasonryKit.m\"; sourceTree = \"<group>\"; };\n\t\t6920F8461D3351DB00D89D07 /* UIView+HYBMasonryKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = \"UIView+HYBMasonryKit.h\"; sourceTree = \"<group>\"; };\n\t\t6920F8471D3351DB00D89D07 /* UIView+HYBMasonryKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = \"UIView+HYBMasonryKit.m\"; sourceTree = \"<group>\"; };\n\t\t6920F8481D3351DB00D89D07 /* UIWebView+HYBMasonryKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = \"UIWebView+HYBMasonryKit.h\"; sourceTree = \"<group>\"; };\n\t\t6920F8491D3351DB00D89D07 /* UIWebView+HYBMasonryKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = \"UIWebView+HYBMasonryKit.m\"; sourceTree = \"<group>\"; };\n\t\t6920F8691D33522F00D89D07 /* UIButton+HYBHelperBlockKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = \"UIButton+HYBHelperBlockKit.h\"; path = \"HYBHelperKitSources/UIButton+HYBHelperBlockKit.h\"; sourceTree = SOURCE_ROOT; };\n\t\t6920F86A1D33522F00D89D07 /* UIButton+HYBHelperBlockKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = \"UIButton+HYBHelperBlockKit.m\"; path = \"HYBHelperKitSources/UIButton+HYBHelperBlockKit.m\"; sourceTree = SOURCE_ROOT; };\n\t\t6920F86B1D33522F00D89D07 /* UIControl+HYBHelperBlockKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = \"UIControl+HYBHelperBlockKit.h\"; path = \"HYBHelperKitSources/UIControl+HYBHelperBlockKit.h\"; sourceTree = SOURCE_ROOT; };\n\t\t6920F86C1D33522F00D89D07 /* UIControl+HYBHelperBlockKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = \"UIControl+HYBHelperBlockKit.m\"; path = \"HYBHelperKitSources/UIControl+HYBHelperBlockKit.m\"; sourceTree = SOURCE_ROOT; };\n\t\t6920F86D1D33522F00D89D07 /* UIGestureRecognizer+HYBHelperBlockKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = \"UIGestureRecognizer+HYBHelperBlockKit.h\"; path = \"HYBHelperKitSources/UIGestureRecognizer+HYBHelperBlockKit.h\"; sourceTree = SOURCE_ROOT; };\n\t\t6920F86E1D33522F00D89D07 /* UIGestureRecognizer+HYBHelperBlockKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = \"UIGestureRecognizer+HYBHelperBlockKit.m\"; path = \"HYBHelperKitSources/UIGestureRecognizer+HYBHelperBlockKit.m\"; sourceTree = SOURCE_ROOT; };\n\t\t6920F86F1D33522F00D89D07 /* UIView+HYBHelperBlockKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = \"UIView+HYBHelperBlockKit.h\"; path = \"HYBHelperKitSources/UIView+HYBHelperBlockKit.h\"; sourceTree = SOURCE_ROOT; };\n\t\t6920F8701D33522F00D89D07 /* UIView+HYBHelperBlockKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = \"UIView+HYBHelperBlockKit.m\"; path = \"HYBHelperKitSources/UIView+HYBHelperBlockKit.m\"; sourceTree = SOURCE_ROOT; };\n\t\t6920F8761D33526B00D89D07 /* UIColor+HYBHelperKitUIKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = \"UIColor+HYBHelperKitUIKit.h\"; path = \"HYBHelperKitSources/UIColor+HYBHelperKitUIKit.h\"; sourceTree = SOURCE_ROOT; };\n\t\t6920F8771D33526B00D89D07 /* UIColor+HYBHelperKitUIKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = \"UIColor+HYBHelperKitUIKit.m\"; path = \"HYBHelperKitSources/UIColor+HYBHelperKitUIKit.m\"; sourceTree = SOURCE_ROOT; };\n\t\t6920F8781D33526B00D89D07 /* UIDevice+HYBHelperKitUIKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = \"UIDevice+HYBHelperKitUIKit.h\"; path = \"HYBHelperKitSources/UIDevice+HYBHelperKitUIKit.h\"; sourceTree = SOURCE_ROOT; };\n\t\t6920F8791D33526B00D89D07 /* UIDevice+HYBHelperKitUIKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = \"UIDevice+HYBHelperKitUIKit.m\"; path = \"HYBHelperKitSources/UIDevice+HYBHelperKitUIKit.m\"; sourceTree = SOURCE_ROOT; };\n\t\t6920F87A1D33526B00D89D07 /* UIView+HYBHelperKitUIKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = \"UIView+HYBHelperKitUIKit.h\"; path = \"HYBHelperKitSources/UIView+HYBHelperKitUIKit.h\"; sourceTree = SOURCE_ROOT; };\n\t\t6920F87B1D33526B00D89D07 /* UIView+HYBHelperKitUIKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = \"UIView+HYBHelperKitUIKit.m\"; path = \"HYBHelperKitSources/UIView+HYBHelperKitUIKit.m\"; sourceTree = SOURCE_ROOT; };\n\t\t6920F8801D3352B200D89D07 /* HYBHelperBlocksKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HYBHelperBlocksKit.h; path = HYBHelperKitSources/HYBHelperBlocksKit.h; sourceTree = SOURCE_ROOT; };\n\t\t6920F8811D3352B200D89D07 /* HYBHelperUIKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HYBHelperUIKit.h; path = HYBHelperKitSources/HYBHelperUIKit.h; sourceTree = SOURCE_ROOT; };\n\t\t6920F8821D339D3D00D89D07 /* NSDate+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = \"NSDate+HYBHelperKit.h\"; sourceTree = \"<group>\"; };\n\t\t6920F8831D339D3D00D89D07 /* NSDate+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = \"NSDate+HYBHelperKit.m\"; sourceTree = \"<group>\"; };\n\t\t6932F8D01D24D12600F2D2F0 /* DictionaryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DictionaryTests.m; sourceTree = \"<group>\"; };\n\t\t69489E801D23790E00F90205 /* HYBHelperKit.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HYBHelperKit.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t69489E841D23790E00F90205 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = \"<group>\"; };\n\t\t69489E861D23790E00F90205 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = \"<group>\"; };\n\t\t69489E871D23790E00F90205 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = \"<group>\"; };\n\t\t69489E891D23790E00F90205 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = \"<group>\"; };\n\t\t69489E8A1D23790E00F90205 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = \"<group>\"; };\n\t\t69489E8F1D23790E00F90205 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\t69489E921D23790E00F90205 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = \"<group>\"; };\n\t\t69489E941D23790E00F90205 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\t69489E991D23790E00F90205 /* HYBHelperKitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HYBHelperKitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t69489E9D1D23790E00F90205 /* HYBHelperKitTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HYBHelperKitTests.m; sourceTree = \"<group>\"; };\n\t\t69489E9F1D23790E00F90205 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\t69489EC71D23BCDC00F90205 /* NSTimerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSTimerTests.m; sourceTree = \"<group>\"; };\n\t\t69489ECA1D23BEEF00F90205 /* NSUserDefaultsTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSUserDefaultsTests.m; sourceTree = \"<group>\"; };\n\t\t69489ED01D23C11200F90205 /* NSStringTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSStringTests.m; sourceTree = \"<group>\"; };\n\t\t6950290E1D366C2800773B69 /* NSNumber+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = \"NSNumber+HYBHelperKit.h\"; sourceTree = \"<group>\"; };\n\t\t6950290F1D366C2800773B69 /* NSNumber+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = \"NSNumber+HYBHelperKit.m\"; sourceTree = \"<group>\"; };\n\t\t6950297A1D3929B800773B69 /* UIAlertView+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = \"UIAlertView+HYBHelperKit.h\"; path = \"HYBHelperKitSources/UIAlertView+HYBHelperKit.h\"; sourceTree = SOURCE_ROOT; };\n\t\t6950297B1D3929B800773B69 /* UIAlertView+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = \"UIAlertView+HYBHelperKit.m\"; path = \"HYBHelperKitSources/UIAlertView+HYBHelperKit.m\"; sourceTree = SOURCE_ROOT; };\n\t\t6950297D1D39332B00773B69 /* UIActionSheet+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = \"UIActionSheet+HYBHelperKit.h\"; path = \"HYBHelperKitSources/UIActionSheet+HYBHelperKit.h\"; sourceTree = SOURCE_ROOT; };\n\t\t6950297E1D39332B00773B69 /* UIActionSheet+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = \"UIActionSheet+HYBHelperKit.m\"; path = \"HYBHelperKitSources/UIActionSheet+HYBHelperKit.m\"; sourceTree = SOURCE_ROOT; };\n\t\t69C383181D23C7FB00176B00 /* NSObjectTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSObjectTests.m; sourceTree = \"<group>\"; };\n\t\t69C383271D23DA4100176B00 /* ArrayTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ArrayTests.m; sourceTree = \"<group>\"; };\n\t\t880E538D3E79C9676BE1490E /* libPods-HYBHelperKitTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = \"libPods-HYBHelperKitTests.a\"; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tD4190D82170077172A8B3795 /* Pods-HYBHelperKitTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = \"Pods-HYBHelperKitTests.release.xcconfig\"; path = \"Pods/Target Support Files/Pods-HYBHelperKitTests/Pods-HYBHelperKitTests.release.xcconfig\"; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t69489E7D1D23790E00F90205 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t5EE55DF079058957C1D7C04F /* libPods-HYBHelperKit.a in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t69489E961D23790E00F90205 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tDC82BC5B03DBD5DC59B883D8 /* libPods-HYBHelperKitTests.a in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t6920F80A1D3351DB00D89D07 /* HYBHelperKitSources */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t6920F87F1D33527200D89D07 /* UIKit */,\n\t\t\t\t6920F8661D3351E000D89D07 /* CommonKit */,\n\t\t\t\t6920F80E1D3351DB00D89D07 /* HYBHelperKit.h */,\n\t\t\t\t6920F8671D3351EA00D89D07 /* ControllerKit */,\n\t\t\t\t6920F8681D3351F500D89D07 /* FoudationKit */,\n\t\t\t\t6920F8281D3351DB00D89D07 /* UIBlocksKit */,\n\t\t\t\t6920F8751D33523F00D89D07 /* MasonryKit */,\n\t\t\t);\n\t\t\tpath = HYBHelperKitSources;\n\t\t\tsourceTree = SOURCE_ROOT;\n\t\t};\n\t\t6920F8281D3351DB00D89D07 /* UIBlocksKit */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t6920F8801D3352B200D89D07 /* HYBHelperBlocksKit.h */,\n\t\t\t\t6920F8691D33522F00D89D07 /* UIButton+HYBHelperBlockKit.h */,\n\t\t\t\t6920F86A1D33522F00D89D07 /* UIButton+HYBHelperBlockKit.m */,\n\t\t\t\t6920F86B1D33522F00D89D07 /* UIControl+HYBHelperBlockKit.h */,\n\t\t\t\t6920F86C1D33522F00D89D07 /* UIControl+HYBHelperBlockKit.m */,\n\t\t\t\t6920F86D1D33522F00D89D07 /* UIGestureRecognizer+HYBHelperBlockKit.h */,\n\t\t\t\t6920F86E1D33522F00D89D07 /* UIGestureRecognizer+HYBHelperBlockKit.m */,\n\t\t\t\t6920F86F1D33522F00D89D07 /* UIView+HYBHelperBlockKit.h */,\n\t\t\t\t6920F8701D33522F00D89D07 /* UIView+HYBHelperBlockKit.m */,\n\t\t\t);\n\t\t\tpath = UIBlocksKit;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t6920F8661D3351E000D89D07 /* CommonKit */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t6920F80B1D3351DB00D89D07 /* HYBCommonKit.h */,\n\t\t\t\t6920F80C1D3351DB00D89D07 /* HYBCommonKit.m */,\n\t\t\t);\n\t\t\tname = CommonKit;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t6920F8671D3351EA00D89D07 /* ControllerKit */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t6920F80F1D3351DB00D89D07 /* HYBHelperKitBaseController.h */,\n\t\t\t\t6920F8101D3351DB00D89D07 /* HYBHelperKitBaseController.m */,\n\t\t\t\t6920F8111D3351DB00D89D07 /* HYBHelperKitBaseURLController.h */,\n\t\t\t\t6920F8121D3351DB00D89D07 /* HYBHelperKitBaseURLController.m */,\n\t\t\t\t6920F8131D3351DB00D89D07 /* HYBHelperKitTestEntranceController.h */,\n\t\t\t\t6920F8141D3351DB00D89D07 /* HYBHelperKitTestEntranceController.m */,\n\t\t\t);\n\t\t\tname = ControllerKit;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t6920F8681D3351F500D89D07 /* FoudationKit */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t6920F8161D3351DB00D89D07 /* NSArray+HYBHelperKit.h */,\n\t\t\t\t6920F8171D3351DB00D89D07 /* NSArray+HYBHelperKit.m */,\n\t\t\t\t6920F8181D3351DB00D89D07 /* NSDictionary+HYBHelperKit.h */,\n\t\t\t\t6920F8191D3351DB00D89D07 /* NSDictionary+HYBHelperKit.m */,\n\t\t\t\t6920F81A1D3351DB00D89D07 /* NSFileManager+HYBHelperKit.h */,\n\t\t\t\t6920F81B1D3351DB00D89D07 /* NSFileManager+HYBHelperKit.m */,\n\t\t\t\t6920F81C1D3351DB00D89D07 /* NSMutableArray+HYBHelperKit.h */,\n\t\t\t\t6920F81D1D3351DB00D89D07 /* NSMutableArray+HYBHelperKit.m */,\n\t\t\t\t6920F81E1D3351DB00D89D07 /* NSMutableDictionary+HYBHelperKit.h */,\n\t\t\t\t6920F81F1D3351DB00D89D07 /* NSMutableDictionary+HYBHelperKit.m */,\n\t\t\t\t6920F8201D3351DB00D89D07 /* NSObject+HYBHelperKit.h */,\n\t\t\t\t6920F8211D3351DB00D89D07 /* NSObject+HYBHelperKit.m */,\n\t\t\t\t6920F8221D3351DB00D89D07 /* NSString+HYBHelperKit.h */,\n\t\t\t\t6920F8231D3351DB00D89D07 /* NSString+HYBHelperKit.m */,\n\t\t\t\t6920F8241D3351DB00D89D07 /* NSTimer+HYBHelperKit.h */,\n\t\t\t\t6920F8251D3351DB00D89D07 /* NSTimer+HYBHelperKit.m */,\n\t\t\t\t6920F8261D3351DB00D89D07 /* NSUserDefaults+HYBHelperKit.h */,\n\t\t\t\t6920F8271D3351DB00D89D07 /* NSUserDefaults+HYBHelperKit.m */,\n\t\t\t\t6920F8821D339D3D00D89D07 /* NSDate+HYBHelperKit.h */,\n\t\t\t\t6920F8831D339D3D00D89D07 /* NSDate+HYBHelperKit.m */,\n\t\t\t\t6950290E1D366C2800773B69 /* NSNumber+HYBHelperKit.h */,\n\t\t\t\t6950290F1D366C2800773B69 /* NSNumber+HYBHelperKit.m */,\n\t\t\t);\n\t\t\tname = FoudationKit;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t6920F8751D33523F00D89D07 /* MasonryKit */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t6920F83E1D3351DB00D89D07 /* UILabel+HYBMasonryKit.h */,\n\t\t\t\t6920F83F1D3351DB00D89D07 /* UILabel+HYBMasonryKit.m */,\n\t\t\t\t6920F8151D3351DB00D89D07 /* HYBHelperMasonryMaker.h */,\n\t\t\t\t6920F8321D3351DB00D89D07 /* UICollectionView+HYBMaonsryKit.h */,\n\t\t\t\t6920F8331D3351DB00D89D07 /* UICollectionView+HYBMaonsryKit.m */,\n\t\t\t\t6920F8341D3351DB00D89D07 /* UIImageView+HYBMasonryKit.h */,\n\t\t\t\t6920F8351D3351DB00D89D07 /* UIImageView+HYBMasonryKit.m */,\n\t\t\t\t6920F8401D3351DB00D89D07 /* UIScrollView+HYBMasonryKit.h */,\n\t\t\t\t6920F8411D3351DB00D89D07 /* UIScrollView+HYBMasonryKit.m */,\n\t\t\t\t6920F8421D3351DB00D89D07 /* UITableView+HYBMasonryKit.h */,\n\t\t\t\t6920F8431D3351DB00D89D07 /* UITableView+HYBMasonryKit.m */,\n\t\t\t\t6920F8441D3351DB00D89D07 /* UITextField+HYBMasonryKit.h */,\n\t\t\t\t6920F8451D3351DB00D89D07 /* UITextField+HYBMasonryKit.m */,\n\t\t\t\t6920F8461D3351DB00D89D07 /* UIView+HYBMasonryKit.h */,\n\t\t\t\t6920F8471D3351DB00D89D07 /* UIView+HYBMasonryKit.m */,\n\t\t\t\t6920F8481D3351DB00D89D07 /* UIWebView+HYBMasonryKit.h */,\n\t\t\t\t6920F8491D3351DB00D89D07 /* UIWebView+HYBMasonryKit.m */,\n\t\t\t);\n\t\t\tname = MasonryKit;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t6920F87F1D33527200D89D07 /* UIKit */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t6920F8811D3352B200D89D07 /* HYBHelperUIKit.h */,\n\t\t\t\t6920F8761D33526B00D89D07 /* UIColor+HYBHelperKitUIKit.h */,\n\t\t\t\t6920F8771D33526B00D89D07 /* UIColor+HYBHelperKitUIKit.m */,\n\t\t\t\t6920F8781D33526B00D89D07 /* UIDevice+HYBHelperKitUIKit.h */,\n\t\t\t\t6920F8791D33526B00D89D07 /* UIDevice+HYBHelperKitUIKit.m */,\n\t\t\t\t6920F87A1D33526B00D89D07 /* UIView+HYBHelperKitUIKit.h */,\n\t\t\t\t6920F87B1D33526B00D89D07 /* UIView+HYBHelperKitUIKit.m */,\n\t\t\t\t6950297A1D3929B800773B69 /* UIAlertView+HYBHelperKit.h */,\n\t\t\t\t6950297B1D3929B800773B69 /* UIAlertView+HYBHelperKit.m */,\n\t\t\t\t6950297D1D39332B00773B69 /* UIActionSheet+HYBHelperKit.h */,\n\t\t\t\t6950297E1D39332B00773B69 /* UIActionSheet+HYBHelperKit.m */,\n\t\t\t);\n\t\t\tname = UIKit;\n\t\t\tpath = UIBlocksKit;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t69489E771D23790E00F90205 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t69489E821D23790E00F90205 /* HYBHelperKit */,\n\t\t\t\t69489E9C1D23790E00F90205 /* HYBHelperKitTests */,\n\t\t\t\t69489E811D23790E00F90205 /* Products */,\n\t\t\t\tA0654A6FA263E139658F66F9 /* Pods */,\n\t\t\t\tEABF94265F022B8CD7ECFEC0 /* Frameworks */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t69489E811D23790E00F90205 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t69489E801D23790E00F90205 /* HYBHelperKit.app */,\n\t\t\t\t69489E991D23790E00F90205 /* HYBHelperKitTests.xctest */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t69489E821D23790E00F90205 /* HYBHelperKit */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t6920F80A1D3351DB00D89D07 /* HYBHelperKitSources */,\n\t\t\t\t6920F6891D320E9600D89D07 /* TestViewController1.h */,\n\t\t\t\t6920F68A1D320E9600D89D07 /* TestViewController1.m */,\n\t\t\t\t69489E861D23790E00F90205 /* AppDelegate.h */,\n\t\t\t\t69489E871D23790E00F90205 /* AppDelegate.m */,\n\t\t\t\t69489E891D23790E00F90205 /* ViewController.h */,\n\t\t\t\t69489E8A1D23790E00F90205 /* ViewController.m */,\n\t\t\t\t69489E8F1D23790E00F90205 /* Assets.xcassets */,\n\t\t\t\t69489E911D23790E00F90205 /* LaunchScreen.storyboard */,\n\t\t\t\t69489E941D23790E00F90205 /* Info.plist */,\n\t\t\t\t69489E831D23790E00F90205 /* Supporting Files */,\n\t\t\t);\n\t\t\tpath = HYBHelperKit;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t69489E831D23790E00F90205 /* Supporting Files */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t69489E841D23790E00F90205 /* main.m */,\n\t\t\t);\n\t\t\tname = \"Supporting Files\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t69489E9C1D23790E00F90205 /* HYBHelperKitTests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t69489EC11D23BB9A00F90205 /* FoundationKitTests */,\n\t\t\t\t69489E9D1D23790E00F90205 /* HYBHelperKitTests.m */,\n\t\t\t\t69489E9F1D23790E00F90205 /* Info.plist */,\n\t\t\t);\n\t\t\tpath = HYBHelperKitTests;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t69489EC11D23BB9A00F90205 /* FoundationKitTests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t69489EC71D23BCDC00F90205 /* NSTimerTests.m */,\n\t\t\t\t69489ECA1D23BEEF00F90205 /* NSUserDefaultsTests.m */,\n\t\t\t\t69489ED01D23C11200F90205 /* NSStringTests.m */,\n\t\t\t\t69C383181D23C7FB00176B00 /* NSObjectTests.m */,\n\t\t\t\t69C383271D23DA4100176B00 /* ArrayTests.m */,\n\t\t\t\t6932F8D01D24D12600F2D2F0 /* DictionaryTests.m */,\n\t\t\t);\n\t\t\tname = FoundationKitTests;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tA0654A6FA263E139658F66F9 /* Pods */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t3E988714FC5DCCC6FE572EC4 /* Pods-HYBHelperKit.debug.xcconfig */,\n\t\t\t\t3D2427DF68D165E6D41371A3 /* Pods-HYBHelperKit.release.xcconfig */,\n\t\t\t\t27E98AAFD6B6C8A744E7B36C /* Pods-HYBHelperKitTests.debug.xcconfig */,\n\t\t\t\tD4190D82170077172A8B3795 /* Pods-HYBHelperKitTests.release.xcconfig */,\n\t\t\t);\n\t\t\tname = Pods;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tEABF94265F022B8CD7ECFEC0 /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t2B9F4AC97535142014D9B17F /* libPods-HYBHelperKit.a */,\n\t\t\t\t880E538D3E79C9676BE1490E /* libPods-HYBHelperKitTests.a */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\t69489E7F1D23790E00F90205 /* HYBHelperKit */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 69489EA21D23790E00F90205 /* Build configuration list for PBXNativeTarget \"HYBHelperKit\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t44B2C4371B8E5D8CEAC74A1D /* 📦 Check Pods Manifest.lock */,\n\t\t\t\t69489E7C1D23790E00F90205 /* Sources */,\n\t\t\t\t69489E7D1D23790E00F90205 /* Frameworks */,\n\t\t\t\t69489E7E1D23790E00F90205 /* Resources */,\n\t\t\t\t1EFDCD21E8E8ECA0267B1586 /* 📦 Embed Pods Frameworks */,\n\t\t\t\t81534C734CCEF3F4035504D7 /* 📦 Copy Pods Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = HYBHelperKit;\n\t\t\tproductName = HYBHelperKit;\n\t\t\tproductReference = 69489E801D23790E00F90205 /* HYBHelperKit.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n\t\t69489E981D23790E00F90205 /* HYBHelperKitTests */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 69489EA51D23790E00F90205 /* Build configuration list for PBXNativeTarget \"HYBHelperKitTests\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tD6C81BFCA53864F8884FFE81 /* 📦 Check Pods Manifest.lock */,\n\t\t\t\t69489E951D23790E00F90205 /* Sources */,\n\t\t\t\t69489E961D23790E00F90205 /* Frameworks */,\n\t\t\t\t69489E971D23790E00F90205 /* Resources */,\n\t\t\t\t6B8615C290B3105DB77F07FD /* 📦 Embed Pods Frameworks */,\n\t\t\t\t2A2189E2041806595439F32F /* 📦 Copy Pods Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\t69489E9B1D23790E00F90205 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = HYBHelperKitTests;\n\t\t\tproductName = HYBHelperKitTests;\n\t\t\tproductReference = 69489E991D23790E00F90205 /* HYBHelperKitTests.xctest */;\n\t\t\tproductType = \"com.apple.product-type.bundle.unit-test\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\t69489E781D23790E00F90205 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastUpgradeCheck = 0730;\n\t\t\t\tORGANIZATIONNAME = huangyibiao;\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\t69489E7F1D23790E00F90205 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 7.3.1;\n\t\t\t\t\t};\n\t\t\t\t\t69489E981D23790E00F90205 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 7.3.1;\n\t\t\t\t\t\tTestTargetID = 69489E7F1D23790E00F90205;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = 69489E7B1D23790E00F90205 /* Build configuration list for PBXProject \"HYBHelperKit\" */;\n\t\t\tcompatibilityVersion = \"Xcode 3.2\";\n\t\t\tdevelopmentRegion = English;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t);\n\t\t\tmainGroup = 69489E771D23790E00F90205;\n\t\t\tproductRefGroup = 69489E811D23790E00F90205 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t69489E7F1D23790E00F90205 /* HYBHelperKit */,\n\t\t\t\t69489E981D23790E00F90205 /* HYBHelperKitTests */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t69489E7E1D23790E00F90205 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t69489E931D23790E00F90205 /* LaunchScreen.storyboard in Resources */,\n\t\t\t\t69489E901D23790E00F90205 /* Assets.xcassets in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t69489E971D23790E00F90205 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXShellScriptBuildPhase section */\n\t\t1EFDCD21E8E8ECA0267B1586 /* 📦 Embed Pods Frameworks */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = \"📦 Embed Pods Frameworks\";\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"\\\"${SRCROOT}/Pods/Target Support Files/Pods-HYBHelperKit/Pods-HYBHelperKit-frameworks.sh\\\"\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n\t\t2A2189E2041806595439F32F /* 📦 Copy Pods Resources */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = \"📦 Copy Pods Resources\";\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"\\\"${SRCROOT}/Pods/Target Support Files/Pods-HYBHelperKitTests/Pods-HYBHelperKitTests-resources.sh\\\"\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n\t\t44B2C4371B8E5D8CEAC74A1D /* 📦 Check Pods Manifest.lock */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = \"📦 Check Pods Manifest.lock\";\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"diff \\\"${PODS_ROOT}/../Podfile.lock\\\" \\\"${PODS_ROOT}/Manifest.lock\\\" > /dev/null\\nif [[ $? != 0 ]] ; then\\n    cat << EOM\\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\\nEOM\\n    exit 1\\nfi\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n\t\t6B8615C290B3105DB77F07FD /* 📦 Embed Pods Frameworks */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = \"📦 Embed Pods Frameworks\";\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"\\\"${SRCROOT}/Pods/Target Support Files/Pods-HYBHelperKitTests/Pods-HYBHelperKitTests-frameworks.sh\\\"\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n\t\t81534C734CCEF3F4035504D7 /* 📦 Copy Pods Resources */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = \"📦 Copy Pods Resources\";\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"\\\"${SRCROOT}/Pods/Target Support Files/Pods-HYBHelperKit/Pods-HYBHelperKit-resources.sh\\\"\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n\t\tD6C81BFCA53864F8884FFE81 /* 📦 Check Pods Manifest.lock */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = \"📦 Check Pods Manifest.lock\";\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"diff \\\"${PODS_ROOT}/../Podfile.lock\\\" \\\"${PODS_ROOT}/Manifest.lock\\\" > /dev/null\\nif [[ $? != 0 ]] ; then\\n    cat << EOM\\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\\nEOM\\n    exit 1\\nfi\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n/* End PBXShellScriptBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t69489E7C1D23790E00F90205 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t6920F8621D3351DB00D89D07 /* UITableView+HYBMasonryKit.m in Sources */,\n\t\t\t\t6920F8611D3351DB00D89D07 /* UIScrollView+HYBMasonryKit.m in Sources */,\n\t\t\t\t6920F8601D3351DB00D89D07 /* UILabel+HYBMasonryKit.m in Sources */,\n\t\t\t\t6920F8511D3351DB00D89D07 /* NSMutableArray+HYBHelperKit.m in Sources */,\n\t\t\t\t6920F8711D33522F00D89D07 /* UIButton+HYBHelperBlockKit.m in Sources */,\n\t\t\t\t6920F8501D3351DB00D89D07 /* NSFileManager+HYBHelperKit.m in Sources */,\n\t\t\t\t6920F8531D3351DB00D89D07 /* NSObject+HYBHelperKit.m in Sources */,\n\t\t\t\t6920F8631D3351DB00D89D07 /* UITextField+HYBMasonryKit.m in Sources */,\n\t\t\t\t695029101D366C2800773B69 /* NSNumber+HYBHelperKit.m in Sources */,\n\t\t\t\t6920F87D1D33526B00D89D07 /* UIDevice+HYBHelperKitUIKit.m in Sources */,\n\t\t\t\t6920F8841D339D3D00D89D07 /* NSDate+HYBHelperKit.m in Sources */,\n\t\t\t\t69489E8B1D23790E00F90205 /* ViewController.m in Sources */,\n\t\t\t\t6920F8651D3351DB00D89D07 /* UIWebView+HYBMasonryKit.m in Sources */,\n\t\t\t\t6920F85B1D3351DB00D89D07 /* UICollectionView+HYBMaonsryKit.m in Sources */,\n\t\t\t\t6920F8561D3351DB00D89D07 /* NSUserDefaults+HYBHelperKit.m in Sources */,\n\t\t\t\t6920F84C1D3351DB00D89D07 /* HYBHelperKitBaseURLController.m in Sources */,\n\t\t\t\t6920F87E1D33526B00D89D07 /* UIView+HYBHelperKitUIKit.m in Sources */,\n\t\t\t\t6920F8641D3351DB00D89D07 /* UIView+HYBMasonryKit.m in Sources */,\n\t\t\t\t6920F8741D33522F00D89D07 /* UIView+HYBHelperBlockKit.m in Sources */,\n\t\t\t\t6920F84A1D3351DB00D89D07 /* HYBCommonKit.m in Sources */,\n\t\t\t\t6920F84F1D3351DB00D89D07 /* NSDictionary+HYBHelperKit.m in Sources */,\n\t\t\t\t6920F8731D33522F00D89D07 /* UIGestureRecognizer+HYBHelperBlockKit.m in Sources */,\n\t\t\t\t6920F68B1D320E9600D89D07 /* TestViewController1.m in Sources */,\n\t\t\t\t6920F84E1D3351DB00D89D07 /* NSArray+HYBHelperKit.m in Sources */,\n\t\t\t\t6950297C1D3929B800773B69 /* UIAlertView+HYBHelperKit.m in Sources */,\n\t\t\t\t6920F8551D3351DB00D89D07 /* NSTimer+HYBHelperKit.m in Sources */,\n\t\t\t\t6950297F1D39332B00773B69 /* UIActionSheet+HYBHelperKit.m in Sources */,\n\t\t\t\t6920F8541D3351DB00D89D07 /* NSString+HYBHelperKit.m in Sources */,\n\t\t\t\t6920F8521D3351DB00D89D07 /* NSMutableDictionary+HYBHelperKit.m in Sources */,\n\t\t\t\t6920F85C1D3351DB00D89D07 /* UIImageView+HYBMasonryKit.m in Sources */,\n\t\t\t\t6920F84B1D3351DB00D89D07 /* HYBHelperKitBaseController.m in Sources */,\n\t\t\t\t69489E881D23790E00F90205 /* AppDelegate.m in Sources */,\n\t\t\t\t6920F8721D33522F00D89D07 /* UIControl+HYBHelperBlockKit.m in Sources */,\n\t\t\t\t6920F84D1D3351DB00D89D07 /* HYBHelperKitTestEntranceController.m in Sources */,\n\t\t\t\t69489E851D23790E00F90205 /* main.m in Sources */,\n\t\t\t\t6920F87C1D33526B00D89D07 /* UIColor+HYBHelperKitUIKit.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t69489E951D23790E00F90205 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t69489EC91D23BCDC00F90205 /* NSTimerTests.m in Sources */,\n\t\t\t\t69489ED11D23C11200F90205 /* NSStringTests.m in Sources */,\n\t\t\t\t69489ECC1D23BEEF00F90205 /* NSUserDefaultsTests.m in Sources */,\n\t\t\t\t69C383191D23C7FB00176B00 /* NSObjectTests.m in Sources */,\n\t\t\t\t6932F8D11D24D12600F2D2F0 /* DictionaryTests.m in Sources */,\n\t\t\t\t69489E9E1D23790E00F90205 /* HYBHelperKitTests.m in Sources */,\n\t\t\t\t69C383291D23DA4100176B00 /* ArrayTests.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXTargetDependency section */\n\t\t69489E9B1D23790E00F90205 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 69489E7F1D23790E00F90205 /* HYBHelperKit */;\n\t\t\ttargetProxy = 69489E9A1D23790E00F90205 /* PBXContainerItemProxy */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin PBXVariantGroup section */\n\t\t69489E911D23790E00F90205 /* LaunchScreen.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t69489E921D23790E00F90205 /* Base */,\n\t\t\t);\n\t\t\tname = LaunchScreen.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\t69489EA01D23790E00F90205 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 9.3;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t69489EA11D23790E00F90205 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 9.3;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t69489EA31D23790E00F90205 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 3E988714FC5DCCC6FE572EC4 /* Pods-HYBHelperKit.debug.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tINFOPLIST_FILE = HYBHelperKit/Info.plist;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 7.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.huangyibiao.HYBHelperKit;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t69489EA41D23790E00F90205 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 3D2427DF68D165E6D41371A3 /* Pods-HYBHelperKit.release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tINFOPLIST_FILE = HYBHelperKit/Info.plist;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 7.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.huangyibiao.HYBHelperKit;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t69489EA61D23790E00F90205 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 27E98AAFD6B6C8A744E7B36C /* Pods-HYBHelperKitTests.debug.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tINFOPLIST_FILE = HYBHelperKitTests/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.huangyibiao.HYBHelperKitTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/HYBHelperKit.app/HYBHelperKit\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t69489EA71D23790E00F90205 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = D4190D82170077172A8B3795 /* Pods-HYBHelperKitTests.release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tINFOPLIST_FILE = HYBHelperKitTests/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.huangyibiao.HYBHelperKitTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/HYBHelperKit.app/HYBHelperKit\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t69489E7B1D23790E00F90205 /* Build configuration list for PBXProject \"HYBHelperKit\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t69489EA01D23790E00F90205 /* Debug */,\n\t\t\t\t69489EA11D23790E00F90205 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t69489EA21D23790E00F90205 /* Build configuration list for PBXNativeTarget \"HYBHelperKit\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t69489EA31D23790E00F90205 /* Debug */,\n\t\t\t\t69489EA41D23790E00F90205 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t69489EA51D23790E00F90205 /* Build configuration list for PBXNativeTarget \"HYBHelperKitTests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t69489EA61D23790E00F90205 /* Debug */,\n\t\t\t\t69489EA71D23790E00F90205 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = 69489E781D23790E00F90205 /* Project object */;\n}\n"
  },
  {
    "path": "HYBHelperKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:HYBHelperKit.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "HYBHelperKit.xcodeproj/xcuserdata/huangyibiao.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Bucket\n   type = \"1\"\n   version = \"2.0\">\n</Bucket>\n"
  },
  {
    "path": "HYBHelperKit.xcodeproj/xcuserdata/huangyibiao.xcuserdatad/xcschemes/HYBHelperKit.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"0730\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"69489E7F1D23790E00F90205\"\n               BuildableName = \"HYBHelperKit.app\"\n               BlueprintName = \"HYBHelperKit\"\n               ReferencedContainer = \"container:HYBHelperKit.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <Testables>\n         <TestableReference\n            skipped = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"69489E981D23790E00F90205\"\n               BuildableName = \"HYBHelperKitTests.xctest\"\n               BlueprintName = \"HYBHelperKitTests\"\n               ReferencedContainer = \"container:HYBHelperKit.xcodeproj\">\n            </BuildableReference>\n         </TestableReference>\n      </Testables>\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"69489E7F1D23790E00F90205\"\n            BuildableName = \"HYBHelperKit.app\"\n            BlueprintName = \"HYBHelperKit\"\n            ReferencedContainer = \"container:HYBHelperKit.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"69489E7F1D23790E00F90205\"\n            BuildableName = \"HYBHelperKit.app\"\n            BlueprintName = \"HYBHelperKit\"\n            ReferencedContainer = \"container:HYBHelperKit.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"69489E7F1D23790E00F90205\"\n            BuildableName = \"HYBHelperKit.app\"\n            BlueprintName = \"HYBHelperKit\"\n            ReferencedContainer = \"container:HYBHelperKit.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "HYBHelperKit.xcodeproj/xcuserdata/huangyibiao.xcuserdatad/xcschemes/xcschememanagement.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>SchemeUserState</key>\n\t<dict>\n\t\t<key>HYBHelperKit.xcscheme</key>\n\t\t<dict>\n\t\t\t<key>orderHint</key>\n\t\t\t<integer>0</integer>\n\t\t</dict>\n\t</dict>\n\t<key>SuppressBuildableAutocreation</key>\n\t<dict>\n\t\t<key>69489E7F1D23790E00F90205</key>\n\t\t<dict>\n\t\t\t<key>primary</key>\n\t\t\t<true/>\n\t\t</dict>\n\t\t<key>69489E981D23790E00F90205</key>\n\t\t<dict>\n\t\t\t<key>primary</key>\n\t\t\t<true/>\n\t\t</dict>\n\t</dict>\n</dict>\n</plist>\n"
  },
  {
    "path": "HYBHelperKit.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"group:HYBHelperKit.xcodeproj\">\n   </FileRef>\n   <FileRef\n      location = \"group:Pods/Pods.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "HYBHelperKit.xcworkspace/xcuserdata/huangyibiao.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Bucket\n   type = \"0\"\n   version = \"2.0\">\n</Bucket>\n"
  },
  {
    "path": "HYBHelperKitSources/HYBCommonKit.h",
    "content": "//\n//  HYBCommonKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/10.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"Masonry.h\"\n\n// Get weak reference object.\n#define kWeakObject(object) __weak __typeof(object) weakObject = object;\n\n// Get weak reference object.\n#define kWeak(caller, object) __weak __typeof(object) caller = object;\n\n// Get strong reference object.\n#define kStrongObject(object) __strong __typedef(object) strongObject = object;\n\n// Get dispatch_get_main_queue()\n#define kMainThread (dispatch_get_main_queue())\n\n// Get default dispatch_get_global_queue\n#define kGlobalThread dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)\n\n// Radians convert to degress.\n#define kRadiansToDegrees(radians) ((radians) * (180.0 / M_PI))\n\n// Degrees convert to randians.\n#define kDegreesToRadians(angle) ((angle) / 180.0 * M_PI)\n\n// Fast to get iOS system version\n#define kIOSVersion ([UIDevice currentDevice].systemVersion.floatValue)\n\n// More fast way to get app delegate\n#define kAppDelegate ((AppDelegate *)[[UIApplication  sharedApplication] delegate])\n\n#pragma mark - Device Frame\n// Get the screen's height.\n#define kScreenHeight ([UIScreen mainScreen].bounds.size.height)\n\n// Get the screen's width.\n#define kScreenWidth ([UIScreen mainScreen].bounds.size.width)\n\n// Get the screen's bounds.\n#define kScreenBounds ([UIScreen mainScreen].bounds)\n\n#pragma mark - Generate Color\n\n// color\n///< format：0xFFFFFF\n#define k16RGBColor(rgbValue) \\\n[UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16)) / 255.0 \\\ngreen:((float)((rgbValue & 0xFF00) >> 8)) / 255.0 \\\nblue:((float)(rgbValue & 0xFF)) / 255.0 alpha:1.0]\n\n///< format：22,22,22\n#define kRGBColor(r, g, b) ([UIColor colorWithRed:(r) / 255.0  \\\ngreen:(g) / 255.0  \\\nblue:(b) / 255.0  \\\nalpha:1])\n\n///< format：22,22,22,0.5\n#define kRGBAColor(r, g, b, a) ([UIColor colorWithRed:(r) / 255.0  \\\ngreen:(g) / 255.0  \\\nblue:(b) / 255.0  \\\nalpha:(a)])\n\n// More easy way to use hex color to generate color.\n#define kHexRGB(rgb) k16RGBColor(rgb)\n\n// More easy way to generate a color object.\n#define kRGB(r,g,b) kRGBColor(r,g,b)\n\n// More easy way to generate a color object with rgb and alpha.\n#define kRGBA(r,g,b,a) kRGBAColor(r, g, b, a)\n\n#pragma mark - Load Font\n// Generate font with size\n#define kFontWithSize(size) [UIFont systemFontOfSize:size]\n\n// Generate bold font with size.\n#define kBoldFontWithSize(size) [UIFont boldSystemFontOfSize:size]\n\n#pragma mark - Load Image\n\n// More easy way to load an image.\n#define kImage(Name) ([UIImage imageNamed:Name])\n\n// More easy to load an image from file.\n#define kImageOfFile(Name) ([UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:Name ofType:nil]])\n\n#pragma mark - System Singletons\n\n// More easy way to get user default object.\n#define kUserDefaults [NSUserDefaults standardUserDefaults]\n\n// More easy way to get NSNotificationCenter object.\n#define kNotificationCenter  [NSNotificationCenter defaultCenter]\n\n// More easy way to get [NSFileManager defaultManager]\n#define kFileManager [NSFileManager defaultManager]\n\n// More easy way to post a notification from notification center.\n#define kPostNotificationWithName(notificationName) \\\n[kNotificationCenter postNotificationName:notificationName object:nil userInfo:nil]\n\n// More easy way to post a notification with user info from notification center.\n#define kPostNotificationWithNameAndUserInfo(notificationName, userInfo) \\\n[kNotificationCenter postNotificationName:notificationName object:nil userInfo:userInfo]\n\n#pragma mark - Judge\n\n// Judge whether it is an empty string.\n#define kIsEmptyString(s) (s == nil || [s isKindOfClass:[NSNull class]] || ([s isKindOfClass:[NSString class]] && s.length == 0))\n\n// Judge whether it is a nil or null object.\n#define kIsEmptyObject(obj) (obj == nil || [obj isKindOfClass:[NSNull class]])\n\n// Judge whether it is a vaid dictionary.\n#define kIsDictionary(objDict) (objDict != nil && [objDict isKindOfClass:[NSDictionary class]])\n\n// Judge whether it is a valid array.\n#define kIsArray(objArray) (objArray != nil && [objArray isKindOfClass:[NSArray class]])\n\n// Judge whether the device it is ipad.\n#define kIsIPad \\\n([[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)]\\\n&& [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)\n\n// Judge whether current orientation is landscape.\n#define kIsLandscape (UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation]))\n\n#pragma makr - Color\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tThe following macros are system colors.\n */\n#define kBlackColor       [UIColor blackColor]\n#define kDarkGrayColor    [UIColor darkGrayColor]\n#define kLightGrayColor   [UIColor lightGrayColor]\n#define kWhiteColor       [UIColor whiteColor]\n#define kRedColor         [UIColor redColor]\n#define kBlueColor        [UIColor blueColor]\n#define kGreenColor       [UIColor greenColor]\n#define kCyanColor        [UIColor cyanColor]\n#define kYellowColor      [UIColor yellowColor]\n#define kMagentaColor     [UIColor magentaColor]\n#define kOrangeColor      [UIColor orangeColor]\n#define kPurpleColor      [UIColor purpleColor]\n#define kBrownColor       [UIColor brownColor]\n#define kClearColor       [UIColor clearColor]\n\n// Black opaque color, with rgba: 0, 0, 0, 0.5\n#define kBlackOpaqueColor kHexColor(0, 0, 0, 0.5)\n\n#pragma mark - Blocks\n/**\n *\tThis is a common block for handling error.\n */\ntypedef void (^HYBErrorBlock)(NSError *error);\n\n/**\n * This is a void block.\n */\ntypedef void (^HYBVoidBlock)(void);\n\n/**\n *\tThis is a common block for handling to return a string value.\n */\ntypedef void (^HYBStringBlock)(NSString *result);\n\n/**\n * For notification block.\n */\ntypedef void (^HYBNotificationBlock)(NSNotification *sender);\n\n/**\n *\tFor return a bool block.\n */\ntypedef void (^HYBBOOLBlock)(BOOL result);\n\n/**\n * For return a array block.\n */\ntypedef void (^HYBArrayBlock)(NSArray *list);\n\n/**\n * For return a array and msg block.\n */\ntypedef void (^HYBArrayMessageBlock)(NSArray *list, NSString *msg);\n\n/**\n * For return a dictionary block.\n */\ntypedef void (^HYBDictionaryBlock)(NSDictionary *response);\n\n/**\n * For return a dictionary and a message block.\n */\ntypedef void (^HYBDictionaryMessageBlock)(NSDictionary *response, NSString *msg);\n\n/**\n * For only return number block.\n */\ntypedef void (^HYBNumberBlock)(NSNumber *resultNumber);\n\n/**\n * For number and message block.\n */\ntypedef void (^HYBNumberMessageBlock)(NSNumber *resultNumber, NSString *msg);\n\n/**\n * Common return object block.\n */\ntypedef void (^HYBIdBlock)(id result);\n\n/**\n * For single button block.\n */\ntypedef void(^HYBButtonBlock)(UIButton *sender);\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCommon value change block.\n *\n *\t@param sender\tThe responder\n */\ntypedef void(^HYBValueChangedBlock)(id sender);\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCommon edit change block, eg: UITextField.\n *\n *\t@param sender\tThe responder.\n */\ntypedef void(^HYBEditChangedBlock)(id sender);\n\n/**\n * For button array block.\n *\n * @param index  index in the array.\n * @param sender The responder.\n */\ntypedef void(^HYBButtonIndexBlock)(NSUInteger index, UIButton *sender);\n\n/**\n * Gesture block callback.\n */\ntypedef void(^HYBGestureBlock)(UIGestureRecognizer *sender);\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tThe long press gesture callback block.\n *\n *\t@param sender\tThe long press gesture.\n */\ntypedef void(^HYBLongGestureBlock)(UILongPressGestureRecognizer *sender);\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tThe tap gesture callback block.\n *\n *\t@param sender\tThe tap gesture.\n */\ntypedef void(^HYBTapGestureBlock)(UITapGestureRecognizer *sender);\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tMasonry Kit Need To Use It.\n */\ntypedef void(^HYBConstraintMaker)(MASConstraintMaker *make);\n\n#pragma mark - Cell\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tThe common cell identifier\n */\nstatic NSString *kHYBCellIdentifier = @\"HYBCommonCellIdentifier\";\n\n@interface HYBCommonKit : NSObject\n\n@end"
  },
  {
    "path": "HYBHelperKitSources/HYBCommonKit.m",
    "content": "//\n//  HYBCommonKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/11.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"HYBCommonKit.h\"\n\n@implementation HYBCommonKit\n\n\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/HYBHelperBlocksKit.h",
    "content": "//\n//  HYBHelperBlocksKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n\n#import \"UIButton+HYBHelperBlockKit.h\"\n#import \"UIControl+HYBHelperBlockKit.h\"\n#import \"UIGestureRecognizer+HYBHelperBlockKit.h\"\n#import \"UIView+HYBHelperBlockKit.h\"\n\n"
  },
  {
    "path": "HYBHelperKitSources/HYBHelperKit.h",
    "content": "//\n//  HYBHelperKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n/**\n *\t使用此库的入口，可以通过引入此文件，达到统一引入全部文件的上的\n */\n\n#import \"HYBHelperBlocksKit.h\"\n#import \"HYBHelperMasonryMaker.h\"\n#import \"HYBHelperUIKit.h\"\n#import \"HYBCommonKit.h\"\n\n#import \"HYBHelperKitBaseController.h\"\n#import \"HYBHelperKitBaseURLController.h\"\n#import \"HYBHelperKitTestEntranceController.h\"\n\n// FoundationKit\n#import \"NSNumber+HYBHelperKit.h\"\n#import \"NSObject+HYBHelperKit.h\"\n#import \"NSString+HYBHelperKit.h\"\n#import \"NSUserDefaults+HYBHelperKit.h\"\n#import \"NSTimer+HYBHelperKit.h\"\n#import \"NSMutableArray+HYBHelperKit.h\"\n#import \"NSArray+HYBHelperKit.h\"\n#import \"NSDictionary+HYBHelperKit.h\"\n#import \"NSMutableDictionary+HYBHelperKit.h\"\n#import \"NSFileManager+HYBHelperKit.h\"\n#import \"NSDate+HYBHelperKit.h\"\n\n"
  },
  {
    "path": "HYBHelperKitSources/HYBHelperKitBaseController.h",
    "content": "//\n//  HYBHelperKitBaseController.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/5.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"HYBCommonKit.h\"\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tThis is an very useful view controller, that it will support many kinds of\n *  base APIs of UINavigationBar items and so no.\n */\n@interface HYBHelperKitBaseController : UIViewController\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tGet the left item which using a button as custom view. It may be nil if\n *  navigation item left items are empty.\n */\n@property (nonatomic, strong, readonly) UIButton *hyb_leftButtonItem;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tGet all of left items that using button as custom view. It may be nil if\n *  navigation item left items are empty.\n */\n@property (nonatomic, strong, readonly) NSArray<UIButton *> *hyb_leftButtonItems;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tGet the first right button item. When using it to access right button, it usually\n *  just has a right item. It may be nil if there is no navigation right items.\n */\n@property (nonatomic, strong, readonly) UIButton *hyb_rightButtonItem;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tGet all right button items. When using ti to access right buttons. It may be nil if\n *  there is no navigation right items.\n */\n@property (nonatomic, strong, readonly) NSArray<UIButton *> *hyb_rightButtonItems;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tAdjust navigation title view to center, when it shows margin right, just because\n *  the previous navigation item's title is too long.\n */\n- (void)hyb_adjustNavigationTitleToCenter;\n\n#pragma mark - Config Navigaiton Item\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tSet the navigation title or title view.\n *\n *\t@param title\tTitle, titleView or a UIImage instance will be automatically\n *                created a title view.\n */\n- (void)hyb_setNavTitle:(id)title;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tAdd a title or title view to the navigation item, and add a button to the\n *  navigation item right item with callback.\n *\n *\t@param title\t\t\tThe title view or a title.\n *\t@param rightTitle\tThe right button item title.\n *\t@param rightBlock\tThe button event callback.\n */\n- (void)hyb_setNavTitle:(id)title\n             rightTitle:(NSString *)rightTitle\n             rightBlock:(HYBButtonBlock)rightBlock;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tAdd a title or title view, right items with titles to the navigation item.\n *\n *\t@param title\t\t\t\tThe title view\n *\t@param rightTitles\tThe right item button titles\n *\t@param rightBlock\tThe callback of button touch up event.\n */\n- (void)hyb_setNavTitle:(id)title\n            rightTitles:(NSArray<NSString *> *)rightTitles\n             rightBlock:(HYBButtonIndexBlock)rightBlock;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tAdd a title or title view, right items with images to the navigation item.\n *\n *\t@param title        The title view\n *\t@param rightImages\tThe right item button normal images.\n *\t@param rightBlock\t  The callback of button touch up event.\n */\n- (void)hyb_setNavTitle:(id)title\n            rightImages:(NSArray *)rightImages\n             rightBlock:(HYBButtonIndexBlock)rightBlock;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tAdd a title or title view, right items with images to the navigation item.\n *\n *\t@param title        The title view\n *\t@param rightImages\tThe right item button  normal images.\n *  @param rightHgImages The right item button highlighted images.\n *\t@param rightBlock\t  The callback of button touch up event.\n */\n- (void)hyb_setNavTitle:(id)title\n            rightImages:(NSArray *)rightImages\n          rightHgImages:(NSArray *)rightHgImages\n             rightBlock:(HYBButtonIndexBlock)rightBlock;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tSet navigation left item with button title.\n *\n *\t@param title\tThe title of left item button.\n *\t@param block\tThe button touch up event callback.\n */\n- (void)hyb_setNavLeftButtonTitle:(NSString *)title onCliked:(HYBButtonBlock)block;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tConfig navigation left item with a image or image name.\n *\n *\t@param image\tUIImage instance or an image name.\n *\t@param block\tThe callback of item clicked.\n */\n- (void)hyb_setNavLeftImage:(id)image block:(HYBButtonBlock)block;\n\n#pragma mark - About indicator animating\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate an UIActivityIndicatorView view with UIActivityIndicatorViewStyleGray style\n *\n *\t@return The instance of UIActivityIndicatorView\n */\n- (UIActivityIndicatorView *)hyb_startIndicatorAnimating;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate an UIActivityIndicatorView view with specified style.\n *\n *\t@param style\tThe indicator view style\n *\n *\t@return The instance of UIActivityIndicatorView\n */\n- (UIActivityIndicatorView *)hyb_startIndicatorAnimatingWithStyle:(UIActivityIndicatorViewStyle)style;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tStop animating of indicator and remove from super view.\n */\n- (void)hyb_stopIndicatorAnimating;\n\n#pragma mark - Notification\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tAdd a notification to the notification center with notification name.\n *\n *\t@param notificationName\tThe name of notification\n *\t@param callback\t\t\t\t\tThe callback when received the notification.\n */\n- (void)hyb_addObserverWithNotificationName:(NSString *)notificationName\n                                   callback:(HYBNotificationBlock)callback;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tRemove all notifications of the view controller.\n */\n- (void)hyb_removeAllNotifications;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tRemove the specified notification with notification name from notification\n *  center.\n *\n *\t@param nofiticationName\tThe notification name.\n */\n- (void)hyb_removeAllNotificationWithName:(NSString *)nofiticationName;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/HYBHelperKitBaseController.m",
    "content": "//\n//  HYBHelperKitBaseController.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/5.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"HYBHelperKitBaseController.h\"\n#import <objc/runtime.h>\n#import \"HYBHelperKit.h\"\n\n@interface HYBHelperKitBaseController ()\n\n@property (nonatomic, strong) NSMutableArray *hyb_notificationNames;\n@property (nonatomic, strong) UIActivityIndicatorView *hyb_loadingView;\n\n@end\n\n@implementation HYBHelperKitBaseController\n\n- (void)dealloc {\n  [self hyb_removeAllNotifications];\n  \n#if DEBUG\n  NSLog(@\"%@ dealloc\", [[self class] description]);\n#endif\n}\n\n- (void)viewDidLoad {\n  [super viewDidLoad];\n  \n  self.edgesForExtendedLayout = UIRectEdgeNone;\n  self.automaticallyAdjustsScrollViewInsets = NO;\n  self.view.backgroundColor = kWhiteColor;\n}\n\n- (void)viewDidAppear:(BOOL)animated {\n  [super viewDidAppear:animated];\n  \n#if DEBUG\n  NSLog(@\"%@ viewDidAppear\", [[self class] description]);\n#endif\n}\n\n- (void)viewDidDisappear:(BOOL)animated {\n  [super viewDidDisappear:animated];\n  \n#if DEBUG\n  NSLog(@\"%@ viewDidDisappear\", [[self class] description]);\n#endif\n}\n\n- (UIButton *)hyb_leftButtonItem {\n  return [[self hyb_leftButtonItems] hyb_objectAtIndex:0];\n}\n\n- (NSArray<UIButton *> *)hyb_leftButtonItems {\n  NSMutableArray *array = [[NSMutableArray alloc] init];\n  \n  NSArray *leftItems = self.navigationItem.leftBarButtonItems;\n  for (UIBarButtonItem *item in leftItems) {\n    if ([item isKindOfClass:[UIBarButtonItem class]]) {\n      if ([item.customView isKindOfClass:[UIButton class]]) {\n        [array addObject:item.customView];\n      }\n    }\n  }\n  \n  return array;\n}\n\n- (UIButton *)hyb_rightButtonItem {\n  return [[self hyb_rightButtonItems] hyb_objectAtIndex:0];\n}\n\n- (NSArray<UIButton *> *)hyb_rightButtonItems {\n  NSMutableArray *array = [[NSMutableArray alloc] init];\n  \n  NSArray *rightItems = self.navigationItem.rightBarButtonItems;\n  for (UIBarButtonItem *item in rightItems) {\n    if ([item isKindOfClass:[UIBarButtonItem class]]) {\n      if ([item.customView isKindOfClass:[UIButton class]]) {\n        [array addObject:item.customView];\n      }\n    }\n  }\n  \n  return array;\n}\n\n- (void)hyb_adjustNavigationTitleToCenter {\n  NSArray *viewControllerArray = [self.navigationController viewControllers];\n  \n  long previousViewControllerIndex = [viewControllerArray indexOfObject:self] - 1;\n  UIViewController *previous;\n  \n  if (previousViewControllerIndex >= 0) {\n    previous = [viewControllerArray objectAtIndex:previousViewControllerIndex];\n    previous.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]\n                                                 initWithTitle:@\" \"\n                                                 style:UIBarButtonItemStylePlain\n                                                 target:self\n                                                 action:nil];\n  }\n}\n\n- (void)hyb_setNavTitle:(id)title\n             rightTitle:(NSString *)rightTitle\n             rightBlock:(HYBButtonBlock)rightBlock {\n  if (kIsEmptyString(rightTitle)) {\n    return [self hyb_setNavTitle:title];\n  }\n  \n  return [self hyb_setNavTitle:title rightTitles:@[rightTitle] rightBlock:^(NSUInteger index, UIButton *sender) {\n    if (rightBlock) {\n      rightBlock(sender);\n    }\n  }];\n}\n\n- (void)hyb_setNavTitle:(id)title\n            rightTitles:(NSArray<NSString *> *)rightTitles\n             rightBlock:(HYBButtonIndexBlock)rightBlock {\n  [self hyb_setNavTitle:title];\n  \n  if (kIsArray(rightTitles) && rightTitles.count >= 1) {\n    NSUInteger i = 0;\n    NSMutableArray *rightButtons = [[NSMutableArray alloc] init];\n    for (NSString *title in rightTitles) {\n      UIButton *btn = [UIButton hyb_buttonWithTitle:title superView:nil constraints:nil touchUp:^(UIButton *sender) {\n        if (rightBlock) {\n          rightBlock(i, sender);\n        }\n      }];\n      \n      [rightButtons addObject:btn];\n      i++;\n    }\n    \n    [self _hyb_setNavItems:rightButtons isLeft:NO];\n  }\n}\n\n- (void)hyb_setNavTitle:(id)title\n            rightImages:(NSArray *)rightImages\n             rightBlock:(HYBButtonIndexBlock)rightBlock {\n  return [self hyb_setNavTitle:title\n                   rightImages:rightImages\n                 rightHgImages:nil\n                    rightBlock:rightBlock];\n}\n\n- (void)hyb_setNavTitle:(id)title\n            rightImages:(NSArray *)rightImages\n          rightHgImages:(NSArray *)rightHgImages\n             rightBlock:(HYBButtonIndexBlock)rightBlock {\n  [self hyb_setNavTitle:title];\n  \n  if (kIsArray(rightImages) && rightHgImages.count >= 1) {\n    NSUInteger i = 0;\n    NSMutableArray *rightButtons = [[NSMutableArray alloc] init];\n    for (NSString *imgName in rightImages) {\n      NSString *last = [rightHgImages hyb_objectAtIndex:i];\n      \n      UIButton *btn = [UIButton hyb_buttonWithImage:imgName superView:nil constraints:nil touchUp:^(UIButton *sender) {\n        if (rightBlock) {\n          rightBlock(i, sender);\n        }\n      }];\n      \n      UIImage *hgImage = nil;\n      if ([last isKindOfClass:[UIImage class]]) {\n        hgImage = (UIImage *)last;\n      } else if ([last isKindOfClass:[NSString class]]) {\n        hgImage = kImage(last);\n      }\n      \n      if (hgImage) {\n        [btn setImage:hgImage forState:UIControlStateHighlighted];\n      }\n      \n      [rightButtons addObject:btn];\n      i++;\n    }\n    \n    [self _hyb_setNavItems:rightButtons isLeft:NO];\n  }\n}\n\n- (void)hyb_setNavLeftButtonTitle:(NSString *)title onCliked:(HYBButtonBlock)block {\n  UIButton *btn = [UIButton hyb_buttonWithTitle:title\n                                      superView:nil\n                                    constraints:nil\n                                        touchUp:block];\n  \n  [self _hyb_setNavItems:@[btn] isLeft:YES];\n}\n\n- (void)hyb_setNavLeftImage:(id)image block:(HYBButtonBlock)block {\n  UIImage *normalImage = image;\n  \n  if ([normalImage isKindOfClass:[NSString class]]) {\n    normalImage = kImage(image);\n  }\n  \n  UIButton *btn = [UIButton hyb_buttonWithImage:image\n                                      superView:nil\n                                    constraints:nil\n                                        touchUp:block];\n  \n  [self _hyb_setNavItems:@[btn] isLeft:YES];\n}\n\n- (void)hyb_setNavTitle:(id)title {\n  if ([title isKindOfClass:[NSString class]]) {\n    self.navigationItem.title = title;\n  } else if ([title isKindOfClass:[UIView class]]) {\n    self.navigationItem.titleView = title;\n  } else if ([title isKindOfClass:[UIImage class]]) {\n    UIImageView *imageView = [[UIImageView alloc] initWithImage:(UIImage *)title];\n    self.navigationItem.titleView = imageView;\n    [imageView sizeToFit];\n  }\n}\n\n#pragma mark - Notification\n- (void)hyb_addObserverWithNotificationName:(NSString *)notificationName\n                                   callback:(HYBNotificationBlock)callback {\n  if (kIsEmptyString(notificationName)) {\n    return;\n  }\n  \n  [self hyb_addNotificationName:notificationName];\n  \n  [kNotificationCenter addObserver:self\n                          selector:@selector(hyb_onRecievedNotification:)\n                              name:notificationName\n                            object:nil];\n  objc_setAssociatedObject(self,\n                           (__bridge const void *)(notificationName),\n                           callback,\n                           OBJC_ASSOCIATION_COPY_NONATOMIC);\n}\n\n- (void)hyb_removeAllNotifications {\n  // 移除监听\n  for (NSString *name in self.hyb_notificationNames) {\n    [kNotificationCenter removeObserver:self name:name object:nil];\n    // 取消关联\n    objc_setAssociatedObject(self,\n                             (__bridge const void *)(name),\n                             nil,\n                             OBJC_ASSOCIATION_COPY_NONATOMIC);\n  }\n  \n  [kNotificationCenter removeObserver:self];\n}\n\n- (void)hyb_removeAllNotificationWithName:(NSString *)nofiticationName {\n  if (kIsEmptyString(nofiticationName)) {\n    return;\n  }\n  \n  // 移除监听\n  for (NSString *name in self.hyb_notificationNames) {\n    if ([name isEqualToString:nofiticationName]) {\n      [kNotificationCenter removeObserver:self name:name object:nil];\n      // 取消关联\n      objc_setAssociatedObject(self,\n                               (__bridge const void *)(name),\n                               nil,\n                               OBJC_ASSOCIATION_COPY_NONATOMIC);\n      break;\n    }\n  }\n}\n\n- (UIActivityIndicatorView *)hyb_startIndicatorAnimating {\n  return [self hyb_startIndicatorAnimatingWithStyle:UIActivityIndicatorViewStyleGray];\n}\n\n- (UIActivityIndicatorView *)hyb_startIndicatorAnimatingWithStyle:(UIActivityIndicatorViewStyle)style {\n  if (self.hyb_loadingView == nil) {\n    self.hyb_loadingView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:style];\n    [self.view addSubview:self.hyb_loadingView];\n    \n    kWeakObject(self);\n    if (self.navigationController && self.navigationController.navigationBarHidden == NO) {\n      [self.hyb_loadingView mas_makeConstraints:^(MASConstraintMaker *make) {\n        make.centerX.equalTo(weakObject.view);\n        make.centerY.equalTo(weakObject.view).offset(-64 / 2);\n      }];\n    } else {\n      [self.hyb_loadingView mas_makeConstraints:^(MASConstraintMaker *make) {\n        make.center.equalTo(weakObject.view);\n      }];\n    }\n  }\n  \n  [self.view bringSubviewToFront:self.hyb_loadingView];\n  [self.hyb_loadingView startAnimating];\n  \n  return self.hyb_loadingView;\n}\n\n- (void)hyb_stopIndicatorAnimating {\n  [self.hyb_loadingView stopAnimating];\n  \n  [self.hyb_loadingView removeFromSuperview];\n  self.hyb_loadingView = nil;\n}\n\n#pragma mark - Private\n- (void)_hyb_setNavItems:(NSArray *)buttons isLeft:(BOOL)isLeft {\n  UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc]\n                                     initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace\n                                     target:nil\n                                     action:nil];\n  negativeSpacer.width = -8;\n  if (kIOSVersion < 7) {\n    negativeSpacer.width = 0;\n  }\n  \n  NSMutableArray *items = [[NSMutableArray alloc] initWithCapacity:buttons.count];\n  [items addObject:negativeSpacer];\n  \n  for (NSUInteger i = 0; i < buttons.count; ++i) {\n    UIButton *btn = [buttons hyb_objectAtIndex:i];\n    [btn sizeToFit];\n    UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:btn];\n    [items addObject:item];\n  }\n  \n  if (isLeft) {\n    self.navigationItem.leftBarButtonItems = items;\n  } else {\n    self.navigationItem.rightBarButtonItems = items;\n  }\n}\n\n- (void)hyb_addNotificationName:(NSString *)name {\n  for (NSString *notificationName in self.hyb_notificationNames) {\n    if ([notificationName isEqualToString:name]) {\n      return;\n    }\n  }\n  \n  [self.hyb_notificationNames addObject:name];\n}\n\n- (void)hyb_onRecievedNotification:(NSNotification *)notification {\n  for (NSString *name in self.hyb_notificationNames) {\n    if ([name isEqualToString:notification.name]) {\n      HYBNotificationBlock block = objc_getAssociatedObject(self,\n                                                            (__bridge const void *)(notification.name));\n      if (block) {\n        block(notification);\n      }\n      \n      break;\n    }\n  }\n}\n\n- (NSMutableArray *)hyb_notificationNames {\n  if (_hyb_notificationNames == nil) {\n    _hyb_notificationNames = [[NSMutableArray alloc] init];\n  }\n  \n  return _hyb_notificationNames;\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/HYBHelperKitBaseURLController.h",
    "content": "//\n//  HYBHelperKitBaseURLController.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"HYBHelperKitBaseController.h\"\n#import \"HYBCommonKit.h\"\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tThis is a helper controller, for developers showing a base url list\n *  in the tabbar controller, and need to select one url before any \n *  HTTP/HTTPS request is sent.\n *\n *  @Note This class is only used in the debug mode.\n */\n@interface HYBHelperKitBaseURLController : HYBHelperKitBaseController\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tShow the base url list view controller to developers with selected callback.\n *\n *  @param baseURLSources The base url list sources.\n *\t@param callback\tThe callback block when select one or input one.\n *\n *\t@return The controller instance.\n */\n+ (instancetype)createWithBaseURLs:(NSArray *(^)(void))baseURLSources\n                      onCallback:(HYBStringBlock)callback;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/HYBHelperKitBaseURLController.m",
    "content": "//\n//  HYBHelperKitBaseURLController.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"HYBHelperKit.h\"\n\n@interface HYBHelperKitBaseURLController () <UITableViewDelegate, UITableViewDataSource>\n\n@property (nonatomic, strong) UITableView *tableView;\n@property (nonatomic, strong) UITextField *textField;\n\n@property (nonatomic, copy) NSArray *baseURLs;\n@property (nonatomic, copy) HYBStringBlock callback;\n\n@end\n\n@implementation HYBHelperKitBaseURLController\n\n+ (instancetype)createWithBaseURLs:(NSArray *(^)(void))baseURLSources\n                      onCallback:(HYBStringBlock)callback {\n#ifdef DEBUG\n  HYBHelperKitBaseURLController *vc = [[HYBHelperKitBaseURLController alloc] init];\n  \n  if (baseURLSources) {\n    vc.baseURLs = baseURLSources();\n  }\n  \n  vc.callback = callback;\n  \n  return vc;\n#endif\n  \n  return nil;\n}\n\n- (instancetype)init {\n  if (self = [super init]) {\n    \n  }\n  \n  return self;\n}\n\n- (void)viewDidLoad {\n  [super viewDidLoad];\n  \n  self.title = @\"Base URL List\";\n  \n  self.tableView = [UITableView hyb_tableViewWithSuperview:self.view delegate:self];\n  [self.tableView registerClass:[UITableViewCell class]\n         forCellReuseIdentifier:kHYBCellIdentifier];\n  self.tableView.backgroundColor = kWhiteColor;\n  UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 44)];\n  \n  self.textField = [UITextField hyb_textFieldWithHolder:@\"Enter base url\" delegate:nil superView:headerView constraints:^(MASConstraintMaker *make) {\n    make.left.mas_equalTo(10);\n    make.height.mas_equalTo(30);\n    make.width.mas_equalTo(kScreenWidth - 100);\n    make.centerY.mas_equalTo(headerView);\n  }];\n  self.textField.borderStyle = UITextBorderStyleRoundedRect;\n  \n  UIButton *button = [UIButton hyb_buttonWithTitle:@\"Go\" superView:headerView constraints:^(MASConstraintMaker *make) {\n    make.right.mas_equalTo(headerView).offset(-10);\n    make.width.mas_equalTo(100 - 20);\n    make.centerY.mas_equalTo(self.textField);\n    make.height.mas_equalTo(30);\n  } touchUp:^(UIButton *sender) {\n    if (!kIsEmptyObject(self.textField.text)) {\n      if (self.callback) {\n        self.callback(self.textField.text);\n      }\n    }\n  }];\n  button.layer.cornerRadius = 3;\n  button.layer.masksToBounds = YES;\n  button.backgroundColor = kBlueColor;\n  \n  headerView.backgroundColor = kHexRGB(0xf0f0f0);\n  self.tableView.tableHeaderView = headerView;\n}\n\n#pragma mark - UITableViewDelegate & UITableViewDataSource\n- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {\n  return self.baseURLs.count;\n}\n\n- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {\n  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kHYBCellIdentifier];\n  \n  NSString *baseUrl = [self.baseURLs hyb_objectAtIndex:indexPath.row];\n  cell.textLabel.text = baseUrl;\n  \n  return cell;\n}\n\n- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {\n  NSString *baseUrl = [self.baseURLs hyb_objectAtIndex:indexPath.row];\n  \n  if (self.callback) {\n    self.callback(baseUrl);\n  }\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/HYBHelperKitTestEntranceController.h",
    "content": "//\n//  HYBHelperKitTestEntranceController.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/1.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"HYBHelperKit.h\"\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tThe model for HYBHelperKitTestEntranceController, we use it to add test controller\n *  to the test center.\n */\n@interface HYBHelperKitTestEntranceModel : NSObject\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tThe view controller's Class\n */\n@property (nonatomic, unsafe_unretained) Class vcClass;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tThe title to show in the list, if it is nil, it will show the class name.\n */\n@property (nonatomic, copy) NSString *title;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tUse this to create a model will be more convenience.\n *\n *\t@param vcClass\tThe view controller's Class\n *\t@param title\t\tThe title\n *\n *\t@return The HYBHelperKitTestEntranceModel instance.\n */\n+ (instancetype)modelWithClass:(Class)vcClass title:(NSString *)title;\n\n@end\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tWhen a team is going to develop a project, usually we will divide\n *  works into more detail task and assign to different team members.\n *\n *  And the question is? We don't have test entrance, before each task \n *  links together. So, here I try to support a common test center entrance\n *  view controller, and each team member can use it to add current controller\n *  entrance.\n *\n *  @Note Auto push to the next veiw controller when select an item. \n */\n@interface HYBHelperKitTestEntranceController : HYBHelperKitBaseController\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tDesigned initialized.\n *\n *\t@param items\tTo get HYBHelperKitTestEntranceModel items to show in the list.\n *\n *\t@return The HYBHelperKitTestEntranceController instance.\n */\n- (instancetype)initWithItems:(NSArray<HYBHelperKitTestEntranceModel *> *(^)(void))items;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/HYBHelperKitTestEntranceController.m",
    "content": "//\n//  HYBHelperKitTestEntranceController.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/1.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"HYBHelperKitTestEntranceController.h\"\n\n@implementation HYBHelperKitTestEntranceModel\n\n+ (instancetype)modelWithClass:(Class)vcClass title:(NSString *)title {\n  HYBHelperKitTestEntranceModel *model = [[HYBHelperKitTestEntranceModel alloc] init];\n  \n  model.vcClass = vcClass;\n  model.title = title;\n  \n  return model;\n}\n\n@end\n\n@interface HYBHelperKitTestEntranceController () <UITableViewDelegate, UITableViewDataSource>\n\n@property (nonatomic, strong) NSArray *sources;\n@property (nonatomic, strong) UITableView *tableView;\n\n@end\n\n@implementation HYBHelperKitTestEntranceController\n\n- (instancetype)initWithItems:(NSArray<HYBHelperKitTestEntranceModel *> *(^)(void))items {\n  if (self = [super init]) {\n    if (items) {\n      self.sources = items();\n    }\n  }\n  \n  return self;\n}\n\n- (void)viewDidLoad {\n  [super viewDidLoad];\n  \n  self.title = @\"Test Center Entrance\";\n  \n  self.tableView = [UITableView hyb_tableViewWithSuperview:self.view delegate:self];\n  [self.tableView registerClass:[UITableViewCell class]\n         forCellReuseIdentifier:kHYBCellIdentifier];\n  self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;\n}\n\n#pragma mark - UITableViewDelegate & UITableViewDataSource\n- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {\n  return self.sources.count;\n}\n\n- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {\n  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kHYBCellIdentifier];\n  \n  HYBHelperKitTestEntranceModel *model = [self.sources hyb_objectAtIndex:indexPath.row];\n  \n  if ([model isKindOfClass:[HYBHelperKitTestEntranceModel class]]) {\n    if (kIsEmptyObject(model.title)) {\n      cell.textLabel.text = [model.vcClass description];\n    } else {\n      cell.textLabel.text = model.title;\n    }\n  }\n  \n  return cell;\n}\n\n- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {\n  HYBHelperKitTestEntranceModel *model = [self.sources hyb_objectAtIndex:indexPath.row];\n  \n  if ([model isKindOfClass:[HYBHelperKitTestEntranceModel class]]) {\n    if (model.vcClass) {\n      UIViewController *vc = [[model.vcClass alloc] init];\n      [self.navigationController pushViewController:vc animated:YES];\n    }\n  }\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/HYBHelperMasonryMaker.h",
    "content": "//\n//  HYBHelperMasonryMaker.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"UITableView+HYBMasonryKit.h\"\n#import \"UITextField+HYBMasonryKit.h\"\n#import \"UIImageView+HYBMasonryKit.h\"\n#import \"UILabel+HYBMasonryKit.h\"\n#import \"UIScrollView+HYBMasonryKit.h\"\n#import \"UIView+HYBMasonryKit.h\"\n#import \"UICollectionView+HYBMaonsryKit.h\"\n#import \"UIWebView+HYBMasonryKit.h\"\n"
  },
  {
    "path": "HYBHelperKitSources/HYBHelperUIKit.h",
    "content": "//\n//  HYBHelperUIKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"UIView+HYBHelperKitUIKit.h\"\n#import \"UIDevice+HYBHelperKitUIKit.h\"\n#import \"UIColor+HYBHelperKitUIKit.h\"\n#import \"UIAlertView+HYBHelperKit.h\"\n#import \"UIActionSheet+HYBHelperKit.h\"\n\n"
  },
  {
    "path": "HYBHelperKitSources/NSArray+HYBHelperKit.h",
    "content": "//\n//  NSArray+HYBHelperKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <Foundation/Foundation.h>\n\n@interface NSArray (HYBHelperKit)\n\n/**\n *  It is safe to call this method to retrieve element.\n *\n *\t@param index\tThe index.\n *\n *\t@return The element in the index if index is valid, otherwise nil.\n */\n- (id)hyb_objectAtIndex:(NSUInteger)index;\n\n/**\n *\tJudge whether the array contains the string.\n *\n *\t@param string\tThe specified string to be checked.\n *\n *\t@return YES if found, otherwise NO.\n */\n- (BOOL)hyb_isContainsString:(NSString *)string;\n\n/**\n *\tMake the array elements reverse.\n *\n *\t@return The reversed array.\n */\n- (NSArray *)hyb_reverseArray;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/NSArray+HYBHelperKit.m",
    "content": "//\n//  NSArray+HYBHelperKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"NSArray+HYBHelperKit.h\"\n\n@implementation NSArray (HYBHelperKit)\n\n- (id)hyb_objectAtIndex:(NSUInteger)index {\n  NSUInteger count = [self count];\n  \n  if (count > 0 && index < count) {\n    return [self objectAtIndex:index];\n  }\n  \n  return nil;\n}\n\n- (BOOL)hyb_isContainsString:(NSString *)string {\n  for (NSString *element in self) {\n    if ([element isKindOfClass:[NSString class]] && [element isEqualToString:string]) {\n      return true;\n    }\n  }\n  \n  return false;\n}\n\n- (NSArray *)hyb_reverseArray {\n  NSMutableArray *arrayTemp = [NSMutableArray arrayWithCapacity:[self count]];\n  NSEnumerator *enumerator = [self reverseObjectEnumerator];\n  \n  for (id element in enumerator) {\n    [arrayTemp addObject:element];\n  }\n  \n  return arrayTemp;\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/NSDate+HYBHelperKit.h",
    "content": "//\n//  NSDate+HYBHelperKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/11.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <Foundation/Foundation.h>\n\n@interface NSDate (HYBHelperKit)\n\n//--------------------------------------------//\n// Get day, month, year, hour, minute, second\n//--------------------------------------------//\n- (NSUInteger)hyb_day;\n- (NSUInteger)hyb_month;\n- (NSUInteger)hyb_year;\n- (NSUInteger)hyb_hour;\n- (NSUInteger)hyb_minute;\n- (NSUInteger)hyb_second;\n+ (NSUInteger)hyb_day:(NSDate *)hyb_date;\n+ (NSUInteger)hyb_month:(NSDate *)hyb_date;\n+ (NSUInteger)hyb_year:(NSDate *)hyb_date;\n+ (NSUInteger)hyb_hour:(NSDate *)hyb_date;\n+ (NSUInteger)hyb_minute:(NSDate *)hyb_date;\n+ (NSUInteger)hyb_second:(NSDate *)hyb_date;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tGet how many days in the year.\n *\n *\t@return The days of the year.\n */\n- (NSUInteger)hyb_daysInYear;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tGet how many days in the specified year.\n *\n *\t@param hyb_date\tThe specified date\n *\n *\t@return The days of the year.\n */\n+ (NSUInteger)hyb_daysInYear:(NSDate *)hyb_date;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tJudge whether this year is leap year or not.\n *\n *\t@return YES means leap year, otherwise NO.\n */\n- (BOOL)hyb_isLeapYear;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tJudge whether the specified date of year is leap year or not.\n *\n *\t@param hyb_date\tThe specified date.\n *\n *\t@return YES means leap year, otherwise NO.\n */\n+ (BOOL)hyb_isLeapYear:(NSDate *)hyb_date;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tJudge whether this year is leap year or not.\n *\n *\t@param year\tThe specified year\n *\n *\t@return YES means leap year, otherwise NO.\n */\n+ (BOOL)hyb_isLeapYearWithYear:(int)year;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tGet which week in the year.\n *\n *\t@return Current week of year.\n */\n- (NSUInteger)hyb_weekOfYear;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tGet which week in the specified date.\n *\n *\t@param hyb_date\tThe specified date to get which week.\n *\n *\t@return Current week of the specified year.\n */\n+ (NSUInteger)hyb_weekOfYear:(NSDate *)hyb_date;\n\n/**\n * 获取格式化为YYYY-MM-dd格式的日期字符串\n */\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tConvert the date to a time string with yyyy-MM-dd format.\n *\n *\t@return The time string with yyyy-MM-dd\n */\n- (NSString *)hyb_toStringWithFormatYMD;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *  Convert the date to a time string with yyyy-MM-dd format.\n *\n *\t@param hyb_date\tThe specified date to be converted to time string.\n *\n *\t@return The time string with yyyy-MM-dd\n */\n+ (NSString *)hyb_toStringWithFormatYMD:(NSDate *)hyb_date;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tGet how many weeks in the month. It might have 4, 5, or 6 weeks.\n *\n *\t@return The weeks in the month.\n */\n- (NSUInteger)hyb_howManyWeeksOfMonth;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tGet how many weeks in the month. It might have 4, 5, or 6 weeks.\n *\n *\t@param hyb_date The specified date\n *\n *\t@return The weeks in the month of the specified date.\n */\n+ (NSUInteger)hyb_howManyWeeksOfMonth:(NSDate *)hyb_date;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tGet the first date of this month.\n *\n *\t@return The first date of this month.\n */\n- (NSDate *)hyb_beginDayOfMonth;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tGet the first date of this month.\n *\n *\t@param hyb_date\tThe specified date.\n *\n *\t@return The first date of this month.\n */\n+ (NSDate *)hyb_beginDayOfMonth:(NSDate *)hyb_date;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tGet the last date of this month.\n *\n *\t@return The last date of this month.\n */\n- (NSDate *)hyb_lastDayOfMonth;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tGet the last date of the specified month.\n *\n *\t@param hyb_date\tThe specified date.\n *\n *\t@return The last date of this month.\n */\n+ (NSDate *)hyb_lastDayOfMonth:(NSDate *)hyb_date;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tAdd days\n *\n *\t@param days\tThe added days.\n *\n *\t@return The new date after add days.\n */\n- (NSDate *)hyb_dateAfterDay:(NSUInteger)days;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tAdd days to the specified date.\n *\n *\t@param hyb_date\tThe spcified date.\n *\t@param days\t\t\tThe added days.\n *\n *\t@return The new date after adding days.\n */\n+ (NSDate *)hyb_dateAfterDate:(NSDate *)hyb_date day:(NSInteger)days;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tAdd months to the date.\n *\n *\t@param months\tThe added months.\n *\n *\t@return The new date after adding months.\n */\n- (NSDate *)hyb_dateAfterMonth:(NSUInteger)months;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tAdd months to the date.\n *\n *\t@param hyb_date The specified date.\n *\t@param months\tThe added months.\n *\n *\t@return The new date after adding months.\n */\n+ (NSDate *)hyb_dateAfterDate:(NSDate *)hyb_date month:(NSInteger)months;\n\n/**\n * 返回numYears年后的日期\n */\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tGet new date offset numYears.\n *\n *\t@param numYears\tThe\n *\n */\n- (NSDate *)hyb_offsetYears:(int)numYears;\n+ (NSDate *)hyb_offsetYears:(int)hyb_numYears fromDate:(NSDate *)hyb_fromDate;\n- (NSDate *)hyb_offsetMonths:(int)hyb_numMonths;\n+ (NSDate *)hyb_offsetMonths:(int)hyb_numMonths fromDate:(NSDate *)hyb_fromDate;\n- (NSDate *)hyb_offsetDays:(int)hyb_numDays;\n+ (NSDate *)hyb_offsetDays:(int)hyb_numDays fromDate:(NSDate *)hyb_fromDate;\n- (NSDate *)hyb_offsetHours:(int)hyb_hours;\n+ (NSDate *)hyb_offsetHours:(int)hyb_numHours fromDate:(NSDate *)hyb_fromDate;\n- (NSUInteger)hyb_daysAgo;\n+ (NSUInteger)hyb_daysAgo:(NSDate *)hyb_date;\n\n/**\n *  获取星期几\n *\n *  @return Return weekday number\n *  [1 - Sunday]\n *  [2 - Monday]\n *  [3 - Tuerday]\n *  [4 - Wednesday]\n *  [5 - Thursday]\n *  [6 - Friday]\n *  [7 - Saturday]\n */\n- (NSInteger)hyb_weekday;\n+ (NSInteger)hyb_weekday:(NSDate *)hyb_date;\n\n/**\n *  获取星期几(名称)hyb_\n *\n *  @return Return weekday as a localized string\n *  [1 - Sunday]\n *  [2 - Monday]\n *  [3 - Tuerday]\n *  [4 - Wednesday]\n *  [5 - Thursday]\n *  [6 - Friday]\n *  [7 - Saturday]\n */\n- (NSString *)hyb_dayFromWeekday;\n+ (NSString *)hyb_dayFromWeekday:(NSDate *)hyb_date;\n\n/**\n *  Is the same date?\n *\n *  @param anotherDate The another date to compare as NSDate\n *  @return Return YES if is same day, NO if not\n */\n- (BOOL)hyb_isSameDate:(NSDate *)hyb_anotherDate;\n\n/**\n *  Is today?\n *\n *  @return Return if self is today\n */\n- (BOOL)hyb_isToday;\n\n/**\n *  Add days to self\n *\n *  @param days The number of days to add\n *  @return Return self by adding the gived days number\n */\n- (NSDate *)hyb_dateByAddingDays:(NSUInteger)hyb_days;\n\n/**\n *  Get the month as a localized string from the given month number\n *\n *  @param month The month to be converted in string\n *  [1 - January]\n *  [2 - February]\n *  [3 - March]\n *  [4 - April]\n *  [5 - May]\n *  [6 - June]\n *  [7 - July]\n *  [8 - August]\n *  [9 - September]\n *  [10 - October]\n *  [11 - November]\n *  [12 - December]\n *\n *  @return Return the given month as a localized string\n */\n+ (NSString *)hyb_monthWithMonthNumber:(NSInteger)hyb_month;\n\n/**\n *  Convert date to string with format.\n */\n+ (NSString *)hyb_stringWithDate:(NSDate *)hyb_date format:(NSString *)hyb_format;\n- (NSString *)hyb_stringWithFormat:(NSString *)hyb_format;\n\n/**\n * Convert date string to NSDate instance.\n */\n+ (NSDate *)hyb_dateWithString:(NSString *)hyb_string format:(NSString *)hyb_format;\n\n/**\n * Get how many days in the month.\n */\n- (NSUInteger)hyb_daysInMonth:(NSUInteger)hyb_month;\n+ (NSUInteger)hyb_daysInMonth:(NSDate *)hyb_date month:(NSUInteger)hyb_month;\n+ (NSUInteger)hyb_dayInYear:(NSUInteger)year month:(NSUInteger)month;\n\n/**\n * Get how many days in the month.\n */\n- (NSUInteger)hyb_daysInMonth;\n+ (NSUInteger)hyb_daysInMonth:(NSDate *)hyb_date;\n\n/**\n * 返回x分钟前/x小时前/昨天/x天前/x个月前/x年前\n */\n- (NSString *)hyb_timeInfo;\n+ (NSString *)hyb_timeInfoWithDate:(NSDate *)hyb_date;\n+ (NSString *)hyb_timeInfoWithDateString:(NSString *)hyb_dateString;\n\n/**\n * yyyy-MM-dd/HH:mm:ss/yyyy-MM-dd HH:mm:ss\n */\n- (NSString *)hyb_ymdFormat;\n- (NSString *)hyb_hmsFormat;\n- (NSString *)hyb_ymdHmsFormat;\n+ (NSString *)hyb_ymdFormat;\n+ (NSString *)hyb_hmsFormat;\n+ (NSString *)hyb_ymdHmsFormat;\n\n+ (NSDateComponents *)hyb_dateComponentsWithDate:(NSDate *)date;\n\n/**\n * Convert date to time stamp.\n */\n- (NSString *)hyb_toTimeStamp;\n\n/**\n * Convert time stamp to date.\n */\n+ (NSDate *)hyb_toDateWithTimeStamp:(NSString *)timeStamp;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/NSDate+HYBHelperKit.m",
    "content": "//\n//  NSDate+HYBHelperKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/11.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"NSDate+HYBHelperKit.h\"\n\n@implementation NSDate (HYBHelperKit)\n\n- (NSUInteger)hyb_day {\n  return [NSDate hyb_day:self];\n}\n\n- (NSUInteger)hyb_month {\n  return [NSDate hyb_month:self];\n}\n\n- (NSUInteger)hyb_year {\n  return [NSDate hyb_year:self];\n}\n\n- (NSUInteger)hyb_hour {\n  return [NSDate hyb_hour:self];\n}\n\n- (NSUInteger)hyb_minute {\n  return [NSDate hyb_minute:self];\n}\n\n- (NSUInteger)hyb_second {\n  return [NSDate hyb_second:self];\n}\n\n+ (NSUInteger)hyb_day:(NSDate *)hyb_date {\n  return [[self hyb_dateComponentsWithDate:hyb_date] day];\n}\n\n+ (NSUInteger)hyb_month:(NSDate *)hyb_date {\n  NSCalendar *calendar = [NSCalendar currentCalendar];\n  \n#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0\n  // NSDayCalendarUnit\n  NSDateComponents *dayComponents = [calendar components:(NSCalendarUnitMonth)fromDate:hyb_date];\n#else\n  NSDateComponents *dayComponents = [calendar components:(NSMonthCalendarUnit)fromDate:hyb_date];\n#endif\n  \n  return [dayComponents month];\n}\n\n+ (NSUInteger)hyb_year:(NSDate *)hyb_date {\n  NSCalendar *calendar = [NSCalendar currentCalendar];\n  \n#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0\n  // NSDayCalendarUnit\n  NSDateComponents *dayComponents = [calendar components:(NSCalendarUnitYear)fromDate:hyb_date];\n#else\n  NSDateComponents *dayComponents = [calendar components:(NSYearCalendarUnit)fromDate:hyb_date];\n#endif\n  \n  return [dayComponents year];\n}\n\n+ (NSUInteger)hyb_hour:(NSDate *)hyb_date {\n  NSCalendar *calendar = [NSCalendar currentCalendar];\n  \n#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0\n  // NSDayCalendarUnit\n  NSDateComponents *dayComponents = [calendar components:(NSCalendarUnitHour)fromDate:hyb_date];\n#else\n  NSDateComponents *dayComponents = [calendar components:(NSHourCalendarUnit)fromDate:hyb_date];\n#endif\n  \n  return [dayComponents hour];\n}\n\n+ (NSUInteger)hyb_minute:(NSDate *)hyb_date {\n  NSCalendar *calendar = [NSCalendar currentCalendar];\n  \n#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0\n  // NSDayCalendarUnit\n  NSDateComponents *dayComponents = [calendar components:(NSCalendarUnitMinute)fromDate:hyb_date];\n#else\n  NSDateComponents *dayComponents = [calendar components:(NSMinuteCalendarUnit)fromDate:hyb_date];\n#endif\n  \n  return [dayComponents minute];\n}\n\n+ (NSUInteger)hyb_second:(NSDate *)hyb_date {\n  NSCalendar *calendar = [NSCalendar currentCalendar];\n  \n#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0\n  // NSDayCalendarUnit\n  NSDateComponents *dayComponents = [calendar components:(NSCalendarUnitSecond)fromDate:hyb_date];\n#else\n  NSDateComponents *dayComponents = [calendar components:(NSSecondCalendarUnit)fromDate:hyb_date];\n#endif\n  \n  return [dayComponents second];\n}\n\n- (NSUInteger)hyb_daysInYear {\n  return [NSDate hyb_daysInYear:self];\n}\n\n+ (NSUInteger)hyb_daysInYear:(NSDate *)hyb_date {\n  return [self hyb_isLeapYear:hyb_date] ? 366 : 365;\n}\n\n- (BOOL)hyb_isLeapYear {\n  return [NSDate hyb_isLeapYear:self];\n}\n\n+ (BOOL)hyb_isLeapYear:(NSDate *)hyb_date {\n  int year = (int)[hyb_date hyb_year];\n  return [self hyb_isLeapYearWithYear:year];\n}\n\n+ (BOOL)hyb_isLeapYearWithYear:(int)year {\n  if ((year % 4  == 0 && year % 100 != 0) || year % 400 == 0) {\n    return YES;\n  }\n  \n  return NO;\n}\n\n- (NSString *)hyb_toStringWithFormatYMD {\n  return [NSDate hyb_toStringWithFormatYMD:self];\n}\n\n+ (NSString *)hyb_toStringWithFormatYMD:(NSDate *)hyb_date {\n  return [NSString stringWithFormat:@\"%ld-%02ld-%02ld\",\n          (long)[hyb_date hyb_year],\n          (long)[hyb_date hyb_month],\n          (long)[hyb_date hyb_day]];\n}\n\n- (NSUInteger)hyb_howManyWeeksOfMonth {\n  return [NSDate hyb_howManyWeeksOfMonth:self];\n}\n\n+ (NSUInteger)hyb_howManyWeeksOfMonth:(NSDate *)hyb_date {\n  return [[hyb_date hyb_lastDayOfMonth] hyb_weekOfYear] - [[hyb_date hyb_beginDayOfMonth] hyb_weekOfYear] + 1;\n}\n\n- (NSUInteger)hyb_weekOfYear {\n  return [NSDate hyb_weekOfYear:self];\n}\n\n+ (NSUInteger)hyb_weekOfYear:(NSDate *)hyb_date {\n  NSUInteger i;\n  NSUInteger year = [hyb_date hyb_year];\n  \n  NSDate *lastdate = [hyb_date hyb_lastDayOfMonth];\n  \n  for (i = 1;[[lastdate hyb_dateAfterDay:-7 * i] hyb_year] == year; i++) {\n    \n  }\n  \n  return i;\n}\n\n- (NSDate *)hyb_dateAfterDay:(NSUInteger)hyb_day {\n  return [NSDate hyb_dateAfterDate:self day:hyb_day];\n}\n\n+ (NSDate *)hyb_dateAfterDate:(NSDate *)hyb_date day:(NSInteger)hyb_day {\n  NSCalendar *calendar = [NSCalendar currentCalendar];\n  NSDateComponents *componentsToAdd = [[NSDateComponents alloc] init];\n  [componentsToAdd setDay:hyb_day];\n  \n  NSDate *dateAfterDay = [calendar dateByAddingComponents:componentsToAdd toDate:hyb_date options:0];\n  \n  return dateAfterDay;\n}\n\n- (NSDate *)hyb_dateAfterMonth:(NSUInteger)hyb_month {\n  return [NSDate hyb_dateAfterDate:self month:hyb_month];\n}\n\n+ (NSDate *)hyb_dateAfterDate:(NSDate *)hyb_date month:(NSInteger)hyb_month {\n  NSCalendar *calendar = [NSCalendar currentCalendar];\n  NSDateComponents *componentsToAdd = [[NSDateComponents alloc] init];\n  [componentsToAdd setMonth:hyb_month];\n  NSDate *dateAfterMonth = [calendar dateByAddingComponents:componentsToAdd toDate:hyb_date options:0];\n  \n  return dateAfterMonth;\n}\n\n- (NSDate *)hyb_beginDayOfMonth {\n  return [NSDate hyb_beginDayOfMonth:self];\n}\n\n+ (NSDate *)hyb_beginDayOfMonth:(NSDate *)hyb_date {\n  return [self hyb_dateAfterDate:hyb_date day:-[hyb_date hyb_day] + 1];\n}\n\n- (NSDate *)hyb_lastDayOfMonth {\n  return [NSDate hyb_lastDayOfMonth:self];\n}\n\n+ (NSDate *)hyb_lastDayOfMonth:(NSDate *)hyb_date {\n  NSDate *lastDate = [self hyb_beginDayOfMonth:hyb_date];\n  return [[lastDate hyb_dateAfterMonth:1] hyb_dateAfterDay:-1];\n}\n\n- (NSUInteger)hyb_daysAgo {\n  return [NSDate hyb_daysAgo:self];\n}\n\n+ (NSUInteger)hyb_daysAgo:(NSDate *)hyb_date {\n  NSCalendar *calendar = [NSCalendar currentCalendar];\n  \n#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0\n  NSDateComponents *components = [calendar components:(NSCalendarUnitDay)\n                                             fromDate:hyb_date\n                                               toDate:[NSDate date]\n                                              options:0];\n#else\n  NSDateComponents *components = [calendar components:(NSDayCalendarUnit)\n                                             fromDate:hyb_date\n                                               toDate:[NSDate date]\n                                              options:0];\n#endif\n  \n  return [components day];\n}\n\n- (NSInteger)hyb_weekday {\n  return [NSDate hyb_weekday:self];\n}\n\n+ (NSInteger)hyb_weekday:(NSDate *)hyb_date {\n  NSCalendar *gregorian = [[NSCalendar alloc]\n                           initWithCalendarIdentifier:NSCalendarIdentifierGregorian];\n  NSDateComponents *comps = [gregorian components:(NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear | NSCalendarUnitWeekday) fromDate:hyb_date];\n  NSInteger weekday = [comps weekday];\n  \n  return weekday;\n}\n\n- (NSString *)hyb_dayFromWeekday {\n  return [NSDate hyb_dayFromWeekday:self];\n}\n\n+ (NSString *)hyb_dayFromWeekday:(NSDate *)hyb_date {\n  switch([hyb_date hyb_weekday]) {\n    case 1:\n      return @\"星期天\";\n      break;\n    case 2:\n      return @\"星期一\";\n      break;\n    case 3:\n      return @\"星期二\";\n      break;\n    case 4:\n      return @\"星期三\";\n      break;\n    case 5:\n      return @\"星期四\";\n      break;\n    case 6:\n      return @\"星期五\";\n      break;\n    case 7:\n      return @\"星期六\";\n      break;\n    default:\n      break;\n  }\n  return @\"\";\n}\n\n- (BOOL)hyb_isSameDate:(NSDate *)hyb_anotherDate {\n  NSCalendar *calendar = [NSCalendar currentCalendar];\n  NSDateComponents *components1 = [calendar components:(NSCalendarUnitYear\n                                                        | NSCalendarUnitMonth\n                                                        | NSCalendarUnitDay)\n                                              fromDate:self];\n  NSDateComponents *components2 = [calendar components:(NSCalendarUnitYear\n                                                        | NSCalendarUnitMonth\n                                                        | NSCalendarUnitDay)\n                                              fromDate:hyb_anotherDate];\n  return ([components1 year] == [components2 year]\n          && [components1 month] == [components2 month]\n          && [components1 day] == [components2 day]);\n}\n\n- (BOOL)hyb_isToday {\n  return [self hyb_isSameDate:[NSDate date]];\n}\n\n- (NSDate *)hyb_dateByAddingDays:(NSUInteger)hyb_days {\n  NSDateComponents *c = [[NSDateComponents alloc] init];\n  c.day = hyb_days;\n  return [[NSCalendar currentCalendar] dateByAddingComponents:c toDate:self options:0];\n}\n\n/**\n *  Get the month as a localized string from the given month number\n *\n *  @param month The month to be converted in string\n *  [1 - January]\n *  [2 - February]\n *  [3 - March]\n *  [4 - April]\n *  [5 - May]\n *  [6 - June]\n *  [7 - July]\n *  [8 - August]\n *  [9 - September]\n *  [10 - October]\n *  [11 - November]\n *  [12 - December]\n *\n *  @return Return the given month as a localized string\n */\n+ (NSString *)hyb_monthWithMonthNumber:(NSInteger)hyb_month {\n  switch(hyb_month) {\n    case 1:\n      return @\"January\";\n      break;\n    case 2:\n      return @\"February\";\n      break;\n    case 3:\n      return @\"March\";\n      break;\n    case 4:\n      return @\"April\";\n      break;\n    case 5:\n      return @\"May\";\n      break;\n    case 6:\n      return @\"June\";\n      break;\n    case 7:\n      return @\"July\";\n      break;\n    case 8:\n      return @\"August\";\n      break;\n    case 9:\n      return @\"September\";\n      break;\n    case 10:\n      return @\"October\";\n      break;\n    case 11:\n      return @\"November\";\n      break;\n    case 12:\n      return @\"December\";\n      break;\n    default:\n      break;\n  }\n  return @\"\";\n}\n\n+ (NSString *)hyb_stringWithDate:(NSDate *)hyb_date format:(NSString *)hyb_format {\n  return [hyb_date hyb_stringWithFormat:hyb_format];\n}\n\n- (NSString *)hyb_stringWithFormat:(NSString *)hyb_format {\n  NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];\n  [outputFormatter setDateFormat:hyb_format];\n  [outputFormatter setTimeZone:[NSTimeZone systemTimeZone]];\n  NSString *retStr = [outputFormatter stringFromDate:self];\n  \n  return retStr;\n}\n\n+ (NSDate *)hyb_dateWithString:(NSString *)hyb_string format:(NSString *)hyb_format {\n  NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];\n  [inputFormatter setDateFormat:hyb_format];\n  [inputFormatter setTimeZone:[NSTimeZone systemTimeZone]];\n  NSDate *date = [inputFormatter dateFromString:hyb_string];\n  \n  return date;\n}\n\n- (NSUInteger)hyb_daysInMonth:(NSUInteger)hyb_month {\n  return [NSDate hyb_daysInMonth:self month:hyb_month];\n}\n\n+ (NSUInteger)hyb_dayInYear:(NSUInteger)year month:(NSUInteger)month {\n  switch (month) {\n    case 1: case 3: case 5: case 7: case 8: case 10: case 12:\n      return 31;\n    case 2:\n      return [self hyb_isLeapYearWithYear:(int)year] ? 29 : 28;\n  }\n  \n  return 30;\n}\n\n+ (NSUInteger)hyb_daysInMonth:(NSDate *)hyb_date month:(NSUInteger)hyb_month {\n  switch (hyb_month) {\n    case 1: case 3: case 5: case 7: case 8: case 10: case 12:\n      return 31;\n    case 2:\n      return [hyb_date hyb_isLeapYear] ? 29 : 28;\n  }\n  return 30;\n}\n\n- (NSUInteger)hyb_daysInMonth {\n  return [NSDate hyb_daysInMonth:self];\n}\n\n+ (NSUInteger)hyb_daysInMonth:(NSDate *)hyb_date {\n  return [self hyb_daysInMonth:hyb_date month:[hyb_date hyb_month]];\n}\n\n- (NSString *)hyb_timeInfo {\n  return [NSDate hyb_timeInfoWithDate:self];\n}\n\n+ (NSString *)hyb_timeInfoWithDate:(NSDate *)hyb_date {\n  return [self hyb_timeInfoWithDateString:[self hyb_stringWithDate:hyb_date format:[self hyb_ymdHmsFormat]]];\n}\n\n+ (NSString *)hyb_timeInfoWithDateString:(NSString *)hyb_dateString {\n  NSDate *date = [self hyb_dateWithString:hyb_dateString format:[self hyb_ymdHmsFormat]];\n  \n  NSDate *curDate = [NSDate date];\n  NSTimeInterval time = -[date timeIntervalSinceDate:curDate];\n  \n  int month = (int)([curDate hyb_month] - [date hyb_month]);\n  int year = (int)([curDate hyb_year] - [date hyb_year]);\n  int day = (int)([curDate hyb_day] - [date hyb_day]);\n  \n  NSTimeInterval retTime = 1.0;\n  if (time < 3600) { // 小于一小时\n    retTime = time / 60;\n    retTime = retTime <= 0.0 ? 1.0 : retTime;\n    return [NSString stringWithFormat:@\"%.0f分钟前\", retTime];\n  } else if (time < 3600 * 24) { // 小于一天，也就是今天\n    retTime = time / 3600;\n    retTime = retTime <= 0.0 ? 1.0 : retTime;\n    return [NSString stringWithFormat:@\"%.0f小时前\", retTime];\n  } else if (time < 3600 * 24 * 2) {\n    return @\"昨天\";\n  }\n  // 第一个条件是同年，且相隔时间在一个月内\n  // 第二个条件是隔年，对于隔年，只能是去年12月与今年1月这种情况\n  else if ((abs(year) == 0 && abs(month) <= 1)\n           || (abs(year) == 1 && [curDate hyb_month] == 1 && [date hyb_month] == 12)) {\n    int retDay = 0;\n    if (year == 0) { // 同年\n      if (month == 0) { // 同月\n        retDay = day;\n      }\n    }\n    \n    if (retDay <= 0) {\n      // 获取发布日期中，该月有多少天\n      int totalDays = (int)[self hyb_daysInMonth:date month:[date hyb_month]];\n      \n      // 当前天数 + （发布日期月中的总天数-发布日期月中发布日，即等于距离今天的天数）\n      retDay = (int)[curDate hyb_day] + (totalDays - (int)[date hyb_day]);\n    }\n    \n    return [NSString stringWithFormat:@\"%d天前\", (abs)(retDay)];\n  } else  {\n    if (abs(year) <= 1) {\n      if (year == 0) { // 同年\n        return [NSString stringWithFormat:@\"%d个月前\", abs(month)];\n      }\n      \n      // 隔年\n      int month = (int)[curDate hyb_month];\n      int preMonth = (int)[date hyb_month];\n      if (month == 12 && preMonth == 12) {// 隔年，但同月，就作为满一年来计算\n        return @\"1年前\";\n      }\n      return [NSString stringWithFormat:@\"%d个月前\", (abs)(12 - preMonth + month)];\n    }\n    \n    return [NSString stringWithFormat:@\"%d年前\", abs(year)];\n  }\n  \n  return @\"1小时前\";\n}\n\n- (NSString *)hyb_ymdFormat {\n  return [NSDate hyb_ymdFormat];\n}\n\n- (NSString *)hyb_hmsFormat {\n  return [NSDate hyb_hmsFormat];\n}\n\n- (NSString *)hyb_ymdHmsFormat {\n  return [NSDate hyb_ymdHmsFormat];\n}\n\n+ (NSString *)hyb_ymdFormat {\n  return @\"yyyy-MM-dd\";\n}\n\n+ (NSString *)hyb_hmsFormat {\n  return @\"HH:mm:ss\";\n}\n\n+ (NSString *)hyb_ymdHmsFormat {\n  return [NSString stringWithFormat:@\"%@ %@\", [self hyb_ymdFormat], [self hyb_hmsFormat]];\n}\n\n- (NSDate *)hyb_offsetYears:(int)hyb_numYears {\n  return [NSDate hyb_offsetYears:hyb_numYears fromDate:self];\n}\n\n+ (NSDate *)hyb_offsetYears:(int)hyb_numYears fromDate:(NSDate *)hyb_fromDate {\n  if (hyb_fromDate == nil) {\n    return nil;\n  }\n  \n#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0\n  // NSDayCalendarUnit\n  NSCalendar *gregorian = [[NSCalendar alloc]\n                           initWithCalendarIdentifier:NSCalendarIdentifierGregorian];\n#else\n  NSCalendar *gregorian = [[NSCalendar alloc]\n                           initWithCalendarIdentifier:NSGregorianCalendar];\n#endif\n  \n  \n  NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];\n  [offsetComponents setYear:hyb_numYears];\n  \n  return [gregorian dateByAddingComponents:offsetComponents\n                                    toDate:hyb_fromDate\n                                   options:0];\n}\n\n- (NSDate *)hyb_offsetMonths:(int)hyb_numMonths {\n  return [NSDate hyb_offsetMonths:hyb_numMonths fromDate:self];\n}\n\n+ (NSDate *)hyb_offsetMonths:(int)hyb_numMonths fromDate:(NSDate *)hyb_fromDate {\n  if (hyb_fromDate == nil) {\n    return nil;\n  }\n  \n#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0\n  // NSDayCalendarUnit\n  NSCalendar *gregorian = [[NSCalendar alloc]\n                           initWithCalendarIdentifier:NSCalendarIdentifierGregorian];\n#else\n  NSCalendar *gregorian = [[NSCalendar alloc]\n                           initWithCalendarIdentifier:NSGregorianCalendar];\n#endif\n  \n  NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];\n  [offsetComponents setMonth:hyb_numMonths];\n  \n  return [gregorian dateByAddingComponents:offsetComponents\n                                    toDate:hyb_fromDate\n                                   options:0];\n}\n\n- (NSDate *)hyb_offsetDays:(int)hyb_numDays {\n  return [NSDate hyb_offsetDays:hyb_numDays fromDate:self];\n}\n\n+ (NSDate *)hyb_offsetDays:(int)hyb_numDays fromDate:(NSDate *)hyb_fromDate {\n  if (hyb_fromDate == nil) {\n    return nil;\n  }\n  \n#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0\n  // NSDayCalendarUnit\n  NSCalendar *gregorian = [[NSCalendar alloc]\n                           initWithCalendarIdentifier:NSCalendarIdentifierGregorian];\n#else\n  NSCalendar *gregorian = [[NSCalendar alloc]\n                           initWithCalendarIdentifier:NSGregorianCalendar];\n#endif\n  \n  \n  NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];\n  [offsetComponents setDay:hyb_numDays];\n  \n  return [gregorian dateByAddingComponents:offsetComponents\n                                    toDate:hyb_fromDate\n                                   options:0];\n}\n\n- (NSDate *)hyb_offsetHours:(int)hyb_hours {\n  return [NSDate hyb_offsetHours:hyb_hours fromDate:self];\n}\n\n+ (NSDate *)hyb_offsetHours:(int)hyb_numHours fromDate:(NSDate *)hyb_fromDate {\n  if (hyb_fromDate == nil) {\n    return nil;\n  }\n  \n#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0\n  // NSDayCalendarUnit\n  NSCalendar *gregorian = [[NSCalendar alloc]\n                           initWithCalendarIdentifier:NSCalendarIdentifierGregorian];\n#else\n  NSCalendar *gregorian = [[NSCalendar alloc]\n                           initWithCalendarIdentifier:NSGregorianCalendar];\n#endif\n  \n  \n  NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];\n  [offsetComponents setHour:hyb_numHours];\n  \n  return [gregorian dateByAddingComponents:offsetComponents\n                                    toDate:hyb_fromDate\n                                   options:0];\n}\n\n+ (NSDateComponents *)hyb_dateComponentsWithDate:(NSDate *)date {\n  NSCalendar *calendar = nil;\n  NSUInteger flags = 0;\n#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0\n  calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];\n  flags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour\n  | NSCalendarUnitMinute | NSCalendarUnitSecond;\n#else\n  calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];\n  flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit\n  | NSMinuteCalendarUnit | NSSecondCalendarUnit;\n#endif\n  [calendar setTimeZone:[NSTimeZone systemTimeZone]];\n  \n  return [calendar components:flags fromDate:date];\n}\n\n- (NSString *)hyb_toTimeStamp {\n  return [NSString stringWithFormat:@\"%lf\", [self timeIntervalSince1970]];\n}\n\n+ (NSDate *)hyb_toDateWithTimeStamp:(NSString *)timeStamp {\n  NSString *arg = timeStamp;\n  \n  if (![timeStamp isKindOfClass:[NSString class]]) {\n    arg = [NSString stringWithFormat:@\"%@\", timeStamp];\n  }\n  \n  if (arg.length > 10) {\n    arg = [arg substringToIndex:10];\n  }\n  \n  NSTimeInterval time = [arg doubleValue];\n  return [NSDate dateWithTimeIntervalSince1970:time];\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/NSDictionary+HYBHelperKit.h",
    "content": "//\n//  NSDictionary+HYBHelperKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <Foundation/Foundation.h>\n\n@interface NSDictionary (HYBHelperKit)\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *  Get object from dictionary by key.\n *\n *\t@param key\tkey\n *\n *\t@return object of key, or nil if key doesn't exist\n */\n- (id)hyb_objectForKey:(id<NSCopying>)key;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *  Get int value from dictionary by key.\n *\n *\t@param key\tkey\n *\n *\t@return int value of key, or zero if key doesn't exist\n */\n- (int)hyb_intForKey:(id<NSCopying>)key;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *  Get double value from dictionary by key.\n *\n *\t@param key\tkey\n *\n *\t@return double value of key, or zero if key doesn't exist\n */\n- (double)hyb_doubleForKey:(id<NSCopying>)key;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *  Get float value from dictionary by key.\n *\n *\t@param key\tkey\n *\n *\t@return float value of key, or zero if key doesn't exist\n */\n- (float)hyb_floatForKey:(id<NSCopying>)key;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *  Get NSInteger value from dictionary by key.\n *\n *\t@param key\tkey\n *\n *\t@return NSInteger value of key, or zero if key doesn't exist\n */\n- (NSInteger)hyb_integerForKey:(id<NSCopying>)key;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *  Get NSString value from dictionary by key.\n *\n *\t@param key\tkey\n *\n *\t@return NSString value of key, or nil if key doesn't exist\n */\n- (NSString *)hyb_stringForKey:(id<NSCopying>)key;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *  Get NSDictionary value from dictionary by key.\n *\n *\t@param key\tkey\n *\n *\t@return NSDictionary value of key, or nil if key doesn't exist\n */\n- (NSDictionary *)hyb_dictionaryForKey:(id<NSCopying>)key;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *  Get NSArray value from dictionary by key.\n *\n *\t@param key\tkey\n *\n *\t@return NSArray value of key, or nil if key doesn't exist\n */\n- (NSArray *)hyb_arrayForKey:(id<NSCopying>)key;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *  Get NSNumber value from dictionary by key.\n *\n *\t@param key\tkey\n *\n *\t@return NSNumber value of key, or nil if key doesn't exist\n */\n- (NSNumber *)hyb_numberForKey:(id<NSCopying>)key;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *  Get BOOL value from dictionary by key.\n *\n *\t@param key\tkey\n *\n *\t@return BOOL value of key, or false if key doesn't exist\n */\n- (BOOL)hyb_boolForKey:(id<NSCopying>)key;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tGet the unsigned long long value form dict by key.\n *\n *\t@param key\tThe key\n *\n *\t@return unsigned long long value of key, or 0 if key doesn't exist.\n */\n- (unsigned long long)hyb_unsignedLongLongValue:(id<NSCopying>)key;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/NSDictionary+HYBHelperKit.m",
    "content": "//\n//  NSDictionary+HYBHelperKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"NSDictionary+HYBHelperKit.h\"\n#import \"HYBCommonKit.h\"\n\n@implementation NSDictionary (HYBHelperKit)\n\n- (id)hyb_objectForKey:(id<NSCopying>)key {\n  if (key == nil) {\n    return nil;\n  }\n  \n  return [self objectForKey:key];\n}\n\n- (int)hyb_intForKey:(id)key {\n  if (key == nil) {\n    return 0;\n  }\n  \n  NSNumber *number = [self hyb_numberForKey:key];\n  \n  return [number intValue];\n}\n\n- (double)hyb_doubleForKey:(id)key {\n  if (key == nil) {\n    return 0;\n  }\n  \n  NSNumber *number = [self hyb_numberForKey:key];\n  \n  return [number doubleValue];\n}\n\n- (float)hyb_floatForKey:(id)key {\n  if (key == nil) {\n    return 0;\n  }\n  \n  NSNumber *number = [self hyb_numberForKey:key];\n  \n  return [number floatValue];\n}\n\n- (NSInteger)hyb_integerForKey:(id)key {\n  if (key == nil) {\n    return 0;\n  }\n  \n  NSNumber *number = [self hyb_numberForKey:key];\n  \n  return [number integerValue];\n}\n\n- (NSString *)hyb_stringForKey:(id)key {\n  if (key == nil) {\n    return 0;\n  }\n  \n  id obj = [self hyb_objectForKey:key];\n  \n  if ([obj isKindOfClass:[NSString class]]) {\n    return (NSString *)obj;\n  } else if ([obj isKindOfClass:[NSNumber class]]) {\n    return [NSString stringWithFormat:@\"%@\", obj];\n  }\n  \n  return nil;\n}\n\n\n- (NSDictionary *)hyb_dictionaryForKey:(id)key {\n  if (key == nil) {\n    return 0;\n  }\n  \n  id obj = [self hyb_objectForKey:key];\n  if ([obj isKindOfClass:[NSDictionary class]]) {\n    return (NSDictionary *)obj;\n  }\n  \n  return nil;\n}\n\n- (NSArray *)hyb_arrayForKey:(id)key {\n  if (key == nil) {\n    return 0;\n  }\n  \n  id obj = [self hyb_objectForKey:key];\n  if ([obj isKindOfClass:[NSArray class]]) {\n    return (NSArray *)obj;\n  }\n  \n  return nil;\n}\n\n- (NSNumber *)hyb_numberForKey:(id)key {\n  if (key == nil) {\n    return 0;\n  }\n  \n  id obj = [self hyb_objectForKey:key];\n  if ([obj isKindOfClass:[NSNumber class]]) {\n    return (NSNumber *)obj;\n  }\n  \n  return nil;\n}\n\n- (BOOL)hyb_boolForKey:(id)key {\n  if (key == nil) {\n    return NO;\n  }\n  \n  id number = [self hyb_objectForKey:key];\n  if ([number respondsToSelector:@selector(boolValue)]) {\n    return [number boolValue];\n  }\n  \n  return NO;\n}\n\n- (unsigned long long)hyb_unsignedLongLongValue:(id<NSCopying>)key {\n  if (key == nil) {\n    return 0;\n  }\n  \n  id number = [self hyb_objectForKey:key];\n  if ([number respondsToSelector:@selector(unsignedLongLongValue)]) {\n    return [number unsignedLongLongValue];\n  }\n  \n  return 0;\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/NSFileManager+HYBHelperKit.h",
    "content": "//\n//  NSFileManager+HYBHelperKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <Foundation/Foundation.h>\n\n@interface NSFileManager (HYBHelperKit)\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tJudge whether file at path exists and check time out or not.\n *\n *\t@param filePath\tThe file absolute path\n *\t@param timeout\tThe specified time out.\n *\n *\t@return NO if file exists and hasn't exceeded the specified time, otherwise YES.\n */\n- (BOOL)hyb_isFileAtPath:(NSString *)filePath hasTimeOut:(NSTimeInterval)timeout;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tGet attributes of file at path.\n *\n *\t@param path\tThe file path\n *\n *\t@return The file attributes if file exists, otherwise nil.\n */\n- (NSDictionary *)hyb_fileAttributesAtPath:(NSString *)path;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tGet file size at path\n *\n *\t@param path\tThe file path\n *\n *\t@return File real size at path, or 0 if file doesn't exist.\n */\n- (unsigned long long)hyb_fileSizeAtPath:(NSString *)path;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/NSFileManager+HYBHelperKit.m",
    "content": "//\n//  NSFileManager+HYBHelperKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"NSFileManager+HYBHelperKit.h\"\n#import \"NSDictionary+HYBHelperKit.h\"\n\n@implementation NSFileManager (HYBHelperKit)\n\n- (BOOL)hyb_isFileAtPath:(NSString *)filePath hasTimeOut:(NSTimeInterval)timeout {\n  if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {\n    NSError *error = nil;\n    NSDictionary *attributes = [[NSFileManager defaultManager] attributesOfItemAtPath:filePath\n                                                                                error:&error];\n    if (error) {\n      return YES;\n    }\n    \n    if ([attributes isKindOfClass:[NSDictionary class]] && attributes) {\n      NSString *createDate = [attributes objectForKey:@\"NSFileModificationDate\"];\n      createDate = [NSString stringWithFormat:@\"%@\", createDate];\n      if (createDate.length >= 19) {\n        createDate = [createDate substringToIndex:19];\n        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];\n        formatter.dateFormat = @\"yyyy-MM-dd HH:mm:ss\";\n        \n        NSDate *sinceDate = [formatter dateFromString:createDate];\n        NSTimeInterval interval = [[NSDate date] timeIntervalSinceDate:sinceDate];\n        BOOL isTimeOut = (long)interval > timeout;\n        \n        return isTimeOut;\n      }\n    }\n  }\n  \n  return YES;\n}\n\n- (NSDictionary *)hyb_fileAttributesAtPath:(NSString *)path {\n  NSError *error = nil;\n  NSDictionary *attrs = [[NSFileManager defaultManager] attributesOfItemAtPath:path\n                                                                         error:&error];\n  if (error) {\n    return nil;\n  }\n  \n  return attrs;\n}\n\n- (unsigned long long)hyb_fileSizeAtPath:(NSString *)path {\n  NSDictionary *attrs = [self hyb_fileAttributesAtPath:path];\n\n  if (attrs == nil) {\n    return 0;\n  }\n\n  return [attrs hyb_unsignedLongLongValue:NSFileSize];\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/NSMutableArray+HYBHelperKit.h",
    "content": "//\n//  NSMutableArray+HYBHelperKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <Foundation/Foundation.h>\n\n@interface NSMutableArray (HYBHelperKit)\n\n/**\n *\tIt is more safe to add object to the array.\n *\n *\t@param object\tThe object to be added.\n *\n *\t@return YES if object can be added, otherwise NO.\n */\n- (BOOL)hyb_addObject:(id)object;\n\n/**\n *\tIt is more safe to insert object to the array.\n *\n *\t@param anObject\tThe object to be inserted.\n *\t@param index\t\tIndex.\n *\n *\t@return YES if inserted successfully, otherwise NO.\n */\n- (BOOL)hyb_insertObject:(id)anObject atIndex:(NSUInteger)index;\n\n/**\n *\tIt it safe to remove object from the array.\n *\n *\t@param index\tThe index\n *\n *\t@return YES if remove successfully, otherwise NO.\n */\n- (BOOL)hyb_removeObjectAtIndex:(NSUInteger)index;\n\n/**\n *  Exchange double elements.\n *\n *  @param fromIndex The index to move from\n *  @param toIndex   The index to move to\n *\n *  @return YES if exchange successfully, otherwise NO.\n */\n- (BOOL)hyb_exchangeObjectFromIndex:(NSUInteger)fromIndex\n                            toIndex:(NSUInteger)toIndex;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/NSMutableArray+HYBHelperKit.m",
    "content": "//\n//  NSMutableArray+HYBHelperKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"NSMutableArray+HYBHelperKit.h\"\n#import \"NSArray+HYBHelperKit.h\"\n\n@implementation NSMutableArray (HYBHelperKit)\n\n- (BOOL)hyb_addObject:(id)object {\n  BOOL ret = NO;\n  if (object) {\n    ret = YES;\n    [self addObject:object];\n  }\n  \n  return ret;\n}\n\n- (BOOL)hyb_insertObject:(id)anObject atIndex:(NSUInteger)index {\n  if (anObject == nil|| index > [self count] ) {\n    return NO;\n  }\n  \n  if ([self containsObject:anObject]) {\n    return NO;\n  }\n  \n  [self insertObject:anObject atIndex:index];\n  \n  return YES;\n}\n\n- (BOOL)hyb_removeObjectAtIndex:(NSUInteger)index {\n  if (index >= [self count]) {\n    return NO;\n  }\n  \n  [self removeObjectAtIndex:index];\n  \n  return YES;\n}\n\n- (BOOL)hyb_exchangeObjectFromIndex:(NSUInteger)fromIndex toIndex:(NSUInteger)toIndex {\n  if ([self count] != 0 && toIndex != fromIndex\n      && fromIndex < [self count] && toIndex < [self count]) {\n    [self exchangeObjectAtIndex:fromIndex withObjectAtIndex:toIndex];\n    \n    return YES;\n  }\n  \n  return NO;\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/NSMutableDictionary+HYBHelperKit.h",
    "content": "//\n//  NSMutableDictionary+HYBHelperKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <Foundation/Foundation.h>\n\n@interface NSMutableDictionary (HYBHelperKit)\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tIt is safe to use it to set object for key.\n *\n *\t@param anObject\tObject to be set.\n *\t@param aKey\t\t\tThe unique key of key-value\n *\n *\t@return YES if set object successfully, otherwise NO.\n */\n- (BOOL)hyb_setObject:(id)anObject forKey:(id<NSCopying>)aKey;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tIt is safe to use it to set value for key.\n *\n *\t@param value Value to be set.\n *\t@param key\t The unique key of key-value.\n *\n *  @return YES if set value successfully, otherwise NO.\n */\n- (BOOL)hyb_setValue:(id)value forKey:(NSString *)key;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/NSMutableDictionary+HYBHelperKit.m",
    "content": "//\n//  NSMutableDictionary+HYBHelperKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"NSMutableDictionary+HYBHelperKit.h\"\n\n@implementation NSMutableDictionary (HYBHelperKit)\n\n- (BOOL)hyb_setObject:(id)anObject forKey:(id<NSCopying>)aKey {\n  if (aKey == nil || anObject == nil) {\n    return NO;\n  }\n  \n  [self setObject:anObject forKey:aKey];\n  \n  return YES;\n}\n\n- (BOOL)hyb_setValue:(id)value forKey:(NSString *)key {\n  if (key == nil || value == nil) {\n    return NO;\n  }\n  \n  [self setValue:value forKey:key];\n  \n  return YES;\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/NSNumber+HYBHelperKit.h",
    "content": "//\n//  NSNumber+HYBHelperKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/13.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <Foundation/Foundation.h>\n\n@interface NSNumber (HYBHelperKit)\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tConvert NSNumber object to a string object.\n *\n *\t@return A string.\n */\n- (NSString *)hyb_toString;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/NSNumber+HYBHelperKit.m",
    "content": "//\n//  NSNumber+HYBHelperKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/13.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"NSNumber+HYBHelperKit.h\"\n\n@implementation NSNumber (HYBHelperKit)\n\n- (NSString *)hyb_toString {\n  return [NSString stringWithFormat:@\"%@\", self];\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/NSObject+HYBHelperKit.h",
    "content": "//\n//  NSObject+HYBHelperKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <Foundation/Foundation.h>\n#import <UIKit/UIKit.h>\n\n@interface NSObject (HYBHelperKit)\n\n/**\n *\tGet the name of currnet object's class.\n */\n- (NSString *)hyb_className;\n\n#pragma mark - Json to object and object to jason\n/**\n *\tTransform an object to json data.\n *\n *\t@param object\tAny kind of object.\n *\n *\t@return json data object if transform successfully, otherwise return nil.\n */\n+ (NSMutableData *)hyb_toJsonDataWithObject:(id)object;\n\n/**\n *\tTransform self to json data.\n *\n *\t@return json data if transform successfully, otherwise return nil.\n */\n- (NSMutableData *)hyb_toJsonData;\n\n/**\n *\tTransform an object to json string.\n *\n *\t@param object\tAny kind of object\n *\n *\t@return json string if transform successfully, otherwise return nil.\n */\n+ (NSString *)hyb_toJsonStringWithObject:(id)object;\n\n/**\n *\tTransform self to json string.\n *\n *\t@return json string if transform successfully, otherwise return nil.\n */\n- (NSString *)hyb_toJsonString;\n\n#pragma mark - Filter Null and nil\n/**\n *\tFilter all nil and null object.\n */\n- (id)hyb_filterNullNil;\n\n/**\n *\tFilter all nil and null object.\n *\n *\t@param object\tThe object to be filtered.\n */\n+ (id)hyb_filterNullNilFromObject:(id)object;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/NSObject+HYBHelperKit.m",
    "content": "//\n//  NSObject+HYBHelperKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"NSObject+HYBHelperKit.h\"\n\n@implementation NSObject (HYBHelperKit)\n\n- (NSString *)hyb_className {\n  return NSStringFromClass([self class]);\n}\n\n- (NSMutableData *)hyb_toJsonData {\n  return [NSObject hyb_toJsonDataWithObject:self];\n}\n\n- (NSString *)hyb_toJsonString {\n  return [NSObject hyb_toJsonStringWithObject:self];\n}\n\n+ (NSMutableData *)hyb_toJsonDataWithObject:(id)object {\n  NSMutableData *jsonData = nil;\n  \n  if ([NSJSONSerialization isValidJSONObject:object]) {\n    NSError *error = nil;\n    NSData *data = [NSJSONSerialization dataWithJSONObject:object\n                                                   options:NSJSONWritingPrettyPrinted\n                                                     error:&error];\n    if (error) {\n      NSLog(@\"error: %@\", error.description);\n    } else {\n      jsonData = [[NSMutableData alloc] initWithData:data];\n    }\n  }\n  \n  return jsonData;\n}\n\n+ (NSString *)hyb_toJsonStringWithObject:(id)object {\n  NSMutableData *data = [self hyb_toJsonDataWithObject:object];\n  \n  if (data.length) {\n    return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];\n  }\n  \n  return nil;\n}\n\n- (id)hyb_filterNullNil {\n  return [NSObject hyb_filterNullNilFromObject:self];\n}\n\n+ (id)hyb_filterNullNilFromObject:(id)object {\n  if ([object isKindOfClass:[NSDictionary class]]) {\n    return [self _removeNullNilFromDict:(NSDictionary *)object];\n  } else if ([object isKindOfClass:[NSArray class]]) {\n    return [self _removeNullFromArray:(NSArray *)object];\n  } else if ([object isKindOfClass:[NSSet class]]) {\n    return [self _removeNullFromSet:(NSSet *)object];\n  } else if ([object isKindOfClass:[NSNull class]] || object == nil) {\n    return nil;\n  }\n  \n  return object;\n}\n\n#pragma mark - Private\n+ (NSDictionary *)_removeNullNilFromDict:(NSDictionary *)dict {\n  if (dict == nil || [dict isKindOfClass:[NSNull class]]) {\n    return nil;\n  }\n  \n  NSMutableDictionary *resultDict = [NSMutableDictionary dictionaryWithCapacity:dict.count];\n  for (id key in dict.allKeys) {\n    id object = [dict objectForKey:key];\n    \n    if ([object isKindOfClass:[NSNull class]] || object == nil) {\n      // 不添加\n    } else if ([object isKindOfClass:[NSDictionary class]]) {\n      object = [self _removeNullNilFromDict:(NSDictionary *)object];\n      \n      if (object != nil) {\n        [resultDict setObject:object forKey:key];\n      }\n    } else if ([object isKindOfClass:[NSArray class]]) {\n      object = [self _removeNullFromArray:(NSArray *)object];\n      \n      if (object != nil) {\n        [resultDict setObject:object forKey:key];\n      }\n    } else if ([object isKindOfClass:[NSSet class]]) {\n      object = [self _removeNullFromSet:(NSSet *)object];\n      \n      if (object != nil && ![object isKindOfClass:[NSNull class]]) {\n        [resultDict setObject:object forKey:key];\n      }\n    } else {\n      [resultDict setObject:object forKey:key];\n    }\n  }\n  \n  return resultDict;\n}\n\n+ (NSArray *)_removeNullFromArray:(NSArray *)array {\n  if (array == nil || [array isKindOfClass:[NSNull class]]) {\n    return nil;\n  }\n  \n  if (array.count == 0) {\n    return array;\n  }\n  \n  NSMutableArray *resultArray = [[NSMutableArray alloc] initWithCapacity:array.count];\n  \n  for (NSUInteger i = 0; i < array.count; ++i) {\n    id object = array[i];\n    \n    if ([object isKindOfClass:[NSNull class]] || object == nil) {\n      // 不添加\n    } else if ([object isKindOfClass:[NSDictionary class]]) {\n      object = [self _removeNullNilFromDict:(NSDictionary *)object];\n      \n      if (object != nil && ![object isKindOfClass:[NSNull class]]) {\n        [resultArray addObject:object];\n      }\n    } else if ([object isKindOfClass:[NSArray class]]) {\n      object = [self _removeNullFromArray:(NSArray *)object];\n      \n      if (object != nil && ![object isKindOfClass:[NSNull class]]) {\n        [resultArray addObject:object];\n      }\n    } else if ([object isKindOfClass:[NSSet class]]) {\n      object = [self _removeNullFromSet:(NSSet *)object];\n      \n      if (object != nil && ![object isKindOfClass:[NSNull class]]) {\n        [resultArray addObject:object];\n      }\n    } else {\n      [resultArray addObject:object];\n    }\n  }\n  \n  return resultArray;\n}\n\n+ (NSSet *)_removeNullFromSet:(NSSet *)set {\n  if (set == nil || [set isKindOfClass:[NSNull class]]) {\n    return nil;\n  }\n  \n  if (set.count == 0) {\n    return set;\n  }\n  \n  NSMutableSet *resultSet = [[NSMutableSet alloc] initWithCapacity:set.count];\n\n  [set enumerateObjectsUsingBlock:^(id  _Nonnull obj, BOOL * _Nonnull stop) {\n    id object = obj;\n    \n    if ([object isKindOfClass:[NSNull class]] || object == nil) {\n      // 不添加\n    } else if ([object isKindOfClass:[NSDictionary class]]) {\n      object = [self _removeNullNilFromDict:(NSDictionary *)object];\n      \n      if (object != nil && ![object isKindOfClass:[NSNull class]]) {\n        [resultSet addObject:object];\n      }\n    } else if ([object isKindOfClass:[NSArray class]]) {\n      object = [self _removeNullFromArray:(NSArray *)object];\n      \n      if (object != nil && ![object isKindOfClass:[NSNull class]]) {\n        [resultSet addObject:object];\n      }\n    } else if ([object isKindOfClass:[NSSet class]]) {\n      object = [self _removeNullFromSet:(NSSet *)object];\n      \n      if (object != nil && ![object isKindOfClass:[NSNull class]]) {\n        [resultSet addObject:object];\n      }\n    } else {\n      [resultSet addObject:object];\n    }\n  }];\n  \n  return resultSet;\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/NSString+HYBHelperKit.h",
    "content": "//\n//  NSString+HYBHelperKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <Foundation/Foundation.h>\n\n@interface NSString (HYBHelperKit)\n\n#pragma mark - Encrypt and decrypt\n/**\n *\tConvert the string to 32bit md5 string.\n *\n *\t@return 32bit md5\n */\n- (NSString *)hyb_toMD5;\n\n/**\n *\tConvert the string to 16bit md5 string.\n *\n *\t@return 16bit md5\n */\n- (NSString *)hyb_to16MD5;\n\n/**\n *\tEncrypt the string with sha1 argorithm.\n *\n *\t@return The sha1 string.\n */\n- (NSString *)hyb_sha1;\n\n/**\n *\tEncrypt the string with sha256 argorithm.\n *\n *\t@return The sha256 string.\n */\n- (NSString *)hyb_sha256;\n\n/**\n *\tEncrypt the string with sha512 argorithm.\n *\n *\t@return The sha512 string.\n */\n- (NSString *)hyb_sha512;\n\n#pragma mark - Data convert to string or string to data.\n/**\n *\tConvert the current string to data.\n *\n *\t@return data object if convert successfully, otherwise nil.\n */\n- (NSData *)hyb_toData;\n\n/**\n *\tConvert a data object to string.\n *\n *\t@param data\tThe data will be converted.\n *\n *\t@return string object if convert successfully, otherwise nil.\n */\n+ (NSString *)hyb_toStringWithData:(NSData *)data;\n\n#pragma mark - Check email, phone, tel, or persion id.\n/**\n *\tCheck whether the string is a valid kind of email format.\n *\n *\t@return YES if it is a valid format, otherwise false.\n */\n- (BOOL)hyb_isEmail;\n\n/**\n *\tCheck whether the string is a valid kind of email format.\n *\n *\t@param email The string to be checked.\n *\n *\t@return YES if it is a valid format, otherwise false.\n */\n+ (BOOL)hyb_isEmail:(NSString *)email;\n\n/**\n *\tCheck whether the string is a valid kind of mobile phone format.\n *  Now only check 11 numbers and begin with 1.\n *\n *\t@return YES if passed, otherwise false.\n */\n- (BOOL)hyb_isMobilePhone;\n\n/**\n *\tCheck whether the string is a valid kind of mobile phone format.\n *\n *  @param phone The phone to be checked.\n *\n *\t@return YES if passed, otherwise false.\n */\n+ (BOOL)hyb_isMobilePhone:(NSString *)phone;\n\n/**\n *\tCheck whether it is a valid kind of tel number format.\n *\n *\t@return YES if passed, otherwise false.\n */\n- (BOOL)hyb_isTelNumber;\n\n/**\n *\tCheck whether it is a valid kind of tel number format.\n *\n *\t@param telNumber\tThe tel number to be checked.\n *\n *\t@return YES if passed, otherwise false.\n */\n+ (BOOL)hyb_isTelNumber:(NSString *)telNumber;\n\n/**\n *\tCheck whether it is a valid kind of Chinese Persion ID\n *\n *\t@return YES if it is valid kind of PID, otherwise false.\n */\n- (BOOL)hyb_isPersonID;\n\n/**\n *\tCheck whether it is a valid kind of Chinese Persion ID\n *\n *\t@param PID\tThe Chinese Persion ID to be checked.\n *\n *\t@return YES if it is valid kind of PID, otherwise false.\n */\n+ (BOOL)hyb_isPersonID:(NSString *)PID;\n\n#pragma mark - Trim Character\n/**\n *\tTrim the left blank space\n *\n *\t@return The new string without left blank space.\n */\n- (NSString *)hyb_trimLeft;\n\n/**\n *\tTrim the right blank space\n *\n *\t@return The new string without right blank space.\n */\n- (NSString *)hyb_trimRight;\n\n/**\n *\tTrim the left and the right blank space\n *\n *\t@return The new string without left and right blank space.\n */\n- (NSString *)hyb_trim;\n\n/**\n *\tTrim all blank space in the string.\n *\n *\t@return The new string without blank space.\n */\n- (NSString *)hyb_trimAll;\n\n/**\n *\tTrim letters.\n *\n *\t@return The new string without letters.\n */\n- (NSString *)hyb_trimLetters;\n\n/**\n *\tTrim all the specified characters.\n *\n *\t@param character\tThe character to be trimed.\n *\n *\t@return The new string without the specified character.\n */\n- (NSString *)hyb_trimCharacter:(unichar)character;\n\n/**\n *\tTrim white space.\n *\n *\t@return The new string without white space.\n */\n- (NSString *)hyb_trimWhitespace;\n\n/**\n *\tTrim all whitespace and new line.\n *\n *\t@return The new string without white space and new line.\n */\n- (NSString *)hyb_trimWhitespaceAndNewLine;\n\n#pragma mark - Check letters, numbers or letter and numbers\n/**\n *\tCheck whether it only contains letters.\n *\n *\t@return YES if only containing letters, otherwise NO.\n */\n- (BOOL)hyb_isOnlyLetters;\n\n/**\n *\tCheck whether it only contains digit numbers.\n *\n *\t@return YES if only containing digit numbers, otherwise NO.\n */\n- (BOOL)hyb_isOnlyDigits;\n\n/**\n *\tCheck whether it only contains letters and digit numbers.\n *\n *\t@return YES if only containing letters and digit numbers, otherwise NO.\n */\n- (BOOL)hyb_isOnlyAlphaNumeric;\n\n#pragma mark - URL\n/**\n *\tTry to convert the string to a NSURL object.\n *\n *\t@return NSURL object if converts successfully, otherwise nil.\n */\n- (NSURL *)hyb_toURL;\n\n/**\n *\tTry to do a url encode.\n *\n *\t@return Encoded string.\n */\n- (NSString *)hyb_URLEncode;\n\n#pragma mark - HTML\n/**\n *\tFilter html tags in the string.\n *\n *\t@return A new string without html tags.\n */\n- (NSString *)hyb_filterHtml;\n\n/**\n *\tFileter html tags in the specified string.\n *\n *\t@param html\tThe specified html string.\n *\n *\t@return A new string without html tags.\n */\n+ (NSString *)hyb_filterHTML:(NSString *)html;\n\n#pragma mark - Get document/tmp/Cache path\n/**\n *\tGet the absolute path of the document.\n *\n *\t@return Document path.\n */\n+ (NSString *)hyb_documentPath;\n\n/**\n *\tGet the absolute path of tmp\n *\n *\t@return Tmp path\n */\n+ (NSString *)hyb_tmpPath;\n\n/**\n *\tGet the absolute path of Cache.\n *\n *\t@return Cache absolute path\n */\n+ (NSString *)hyb_cachePath;\n\n#pragma mark - String operation\n/**\n *\tCheck whether current string contains the substring.\n *\n *\t@param substring\tSubstring\n *\n *\t@return YES if containing, otherwise NO.\n */\n- (BOOL)hyb_isContainString:(NSString *)substring;\n\n\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/NSString+HYBHelperKit.m",
    "content": "//\n//  NSString+HYBHelperKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"NSString+HYBHelperKit.h\"\n#import <CommonCrypto/CommonDigest.h>\n\n@implementation NSString (HYBHelperKit)\n\n- (NSString *)hyb_toMD5 {\n  if (self == nil || [self length] == 0) {\n    return nil;\n  }\n  \n  unsigned char digest[CC_MD5_DIGEST_LENGTH], i;\n  CC_MD5([self UTF8String], (int)[self lengthOfBytesUsingEncoding:NSUTF8StringEncoding], digest);\n  NSMutableString *ms = [NSMutableString string];\n  \n  for (i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {\n    [ms appendFormat:@\"%02x\", (int)(digest[i])];\n  }\n  \n  return [ms copy];\n}\n\n- (NSString *)hyb_to16MD5 {\n  if (self == nil || [self length] == 0) {\n    return nil;\n  }\n  \n  return [[self hyb_toMD5] substringWithRange:NSMakeRange(8, 16)];\n}\n\n- (NSString *)hyb_sha1 {\n  if (self == nil || [self length] == 0) {\n    return nil;\n  }\n  \n  unsigned char digest[CC_SHA1_DIGEST_LENGTH], i;\n  CC_SHA1([self UTF8String], (int)[self lengthOfBytesUsingEncoding:NSUTF8StringEncoding], digest);\n  NSMutableString *ms = [NSMutableString string];\n  \n  for ( i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) {\n    [ms appendFormat:@\"%02x\", (int)(digest[i])];\n  }\n  \n  return [ms copy];\n}\n\n- (NSString *)hyb_sha256 {\n  if (self == nil || [self length] == 0) {\n    return nil;\n  }\n  \n  unsigned char digest[CC_SHA256_DIGEST_LENGTH], i;\n  CC_SHA256([self UTF8String], (int)[self lengthOfBytesUsingEncoding:NSUTF8StringEncoding], digest);\n  NSMutableString *ms = [NSMutableString string];\n  \n  for (i = 0; i < CC_SHA256_DIGEST_LENGTH; i++) {\n    [ms appendFormat: @\"%02x\", (int)(digest[i])];\n  }\n  \n  return [ms copy];\n}\n\n- (NSString *)hyb_sha512 {\n  if (self == nil || [self length] == 0) {\n    return nil;\n  }\n  \n  unsigned char digest[CC_SHA512_DIGEST_LENGTH], i;\n  CC_SHA512([self UTF8String], (int)[self lengthOfBytesUsingEncoding:NSUTF8StringEncoding], digest);\n  NSMutableString *ms = [NSMutableString string];\n  \n  for (i = 0; i < CC_SHA512_DIGEST_LENGTH; i++) {\n    [ms appendFormat: @\"%02x\", (int)(digest[i])];\n  }\n  \n  return [ms copy];\n}\n\n- (NSData *)hyb_toData {\n  return [self dataUsingEncoding:NSUTF8StringEncoding];\n}\n\n+ (NSString *)hyb_toStringWithData:(NSData *)data {\n  if (data && [data isKindOfClass:[NSData class]]) {\n    return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];\n  }\n  \n  return nil;\n}\n\n- (BOOL)hyb_isEmail {\n  return [NSString hyb_isEmail:self];\n}\n\n+ (BOOL)hyb_isEmail:(NSString *)email {\n  NSString *reg =\n  @\"(?:[a-z0-9!#$%\\\\&'*+/=?\\\\^_`{|}~-]+(?:\\\\.[a-z0-9!#$%\\\\&'*+/=?\\\\^_`{|}\"\n  @\"~-]+)*|\\\"(?:[\\\\x01-\\\\x08\\\\x0b\\\\x0c\\\\x0e-\\\\x1f\\\\x21\\\\x23-\\\\x5b\\\\x5d-\\\\\"\n  @\"x7f]|\\\\\\\\[\\\\x01-\\\\x09\\\\x0b\\\\x0c\\\\x0e-\\\\x7f])*\\\")@(?:(?:[a-z0-9](?:[a-\"\n  @\"z0-9-]*[a-z0-9])?\\\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\\\[(?:(?:25[0-5\"\n  @\"]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-\"\n  @\"9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\\\x01-\\\\x08\\\\x0b\\\\x0c\\\\x0e-\\\\x1f\\\\x21\"\n  @\"-\\\\x5a\\\\x53-\\\\x7f]|\\\\\\\\[\\\\x01-\\\\x09\\\\x0b\\\\x0c\\\\x0e-\\\\x7f])+)\\\\])\";\n  \n  NSPredicate *predicate = [NSPredicate predicateWithFormat:@\"SELF MATCHES %@\", reg];\n  return [predicate evaluateWithObject:[email lowercaseString]];\n}\n\n- (BOOL)hyb_isMobilePhone {\n  return [NSString hyb_isMobilePhone:self];\n}\n\n+ (BOOL)hyb_isMobilePhone:(NSString *)phone {\n  NSString *pattern = @\"^((13[0-9])|(15[^4,\\\\D])|(18[0,0-9])|(17[0,0-9]))\\\\d{8}$\";\n  NSPredicate *mobilePredicate = [NSPredicate predicateWithFormat:@\"SELF MATCHES %@\", pattern];\n  if ([mobilePredicate evaluateWithObject:phone]) {\n    return YES;\n  }\n  \n  return NO;\n}\n\n- (BOOL)hyb_isTelNumber {\n  return [NSString hyb_isTelNumber:self];\n}\n\n+ (BOOL)hyb_isTelNumber:(NSString *)telNumber {\n  NSString *pattern = @\"^0(10|2[0-5789]|\\\\d{3})\\\\d{7,8}$\";\n  NSPredicate *predicate = [NSPredicate predicateWithFormat:@\"SELF MATCHES %@\", pattern];\n  \n  return [predicate evaluateWithObject:telNumber];\n}\n\n- (BOOL)hyb_isPersonID {\n  return [NSString hyb_isPersonID:self];\n}\n\n+ (BOOL)hyb_isPersonID:(NSString *)PID {\n  // 判断位数\n  if (PID.length != 15 && PID.length != 18) {\n    return NO;\n  }\n  NSString *carid = PID;\n  long lSumQT = 0;\n  // 加权因子\n  int R[] ={7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };\n  // 校验码\n  unsigned char sChecker[11]={'1','0','X', '9', '8', '7', '6', '5', '4', '3', '2'};\n  \n  // 将15位身份证号转换成18位\n  NSMutableString *mString = [NSMutableString stringWithString:PID];\n  if (PID.length == 15) {\n    [mString insertString:@\"19\" atIndex:6];\n    long p = 0;\n    const char *pid = [mString UTF8String];\n    \n    for (int i = 0; i<= 16; i++) {\n      p += (pid[i] - 48) * R[i];\n    }\n    \n    int o = p % 11;\n    NSString *string_content = [NSString stringWithFormat:@\"%c\", sChecker[o]];\n    [mString insertString:string_content atIndex:[mString length]];\n    carid = mString;\n  }\n  \n  // 判断地区码\n  NSString * sProvince = [carid substringToIndex:2];\n  if (![self _areaCode:sProvince]) {\n    return NO;\n  }\n  \n  // 判断年月日是否有效\n  // 年份\n  int strYear = [[self _substringWithString:carid begin:6 end:4] intValue];\n  // 月份\n  int strMonth = [[self _substringWithString:carid begin:10 end:2] intValue];\n  // 日\n  int strDay = [[self _substringWithString:carid begin:12 end:2] intValue];\n  \n  NSTimeZone *localZone = [NSTimeZone localTimeZone];\n  NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];\n  [dateFormatter setDateStyle:NSDateFormatterMediumStyle];\n  [dateFormatter setTimeStyle:NSDateFormatterNoStyle];\n  [dateFormatter setTimeZone:localZone];\n  [dateFormatter setDateFormat:@\"yyyy-MM-dd HH:mm:ss\"];\n  NSDate *date = [dateFormatter dateFromString:[NSString stringWithFormat:@\"%d-%d-%d 12:01:01\",\n                                              strYear, strMonth, strDay]];\n  if (date == nil) {\n    return NO;\n  }\n  \n  const char *PaperId  = [carid UTF8String];\n  // 检验长度\n  if(18 != strlen(PaperId)) return NO;\n  // 校验数字\n  for (int i = 0; i < 18; i++) {\n    if ( !isdigit(PaperId[i]) && !(('X' == PaperId[i] || 'x' == PaperId[i]) && 17 == i) ) {\n      return NO;\n    }\n  }\n  \n  // 验证最末的校验码\n  for (int i=0; i<=16; i++) {\n    lSumQT += (PaperId[i]-48) * R[i];\n  }\n  \n  if (sChecker[lSumQT%11] != PaperId[17] ) {\n    return NO;\n  }\n  return YES;\n}\n\n- (NSString *)hyb_trimLeft {\n  NSInteger len = 0;\n  \n  while (len < self.length) {\n    if ([self characterAtIndex:len] != ' ') {\n      break;\n    }\n    \n    len++;\n  }\n  \n  if (len >= self.length) {\n    len = self.length - 1;\n  }\n  \n  if (len <= 0) {\n    return self;\n  }\n  \n  return [self substringFromIndex:len];\n}\n\n- (NSString *)hyb_trimRight {\n  NSInteger index = self.length - 1;\n  for (NSInteger i = self.length - 1; i >= 0; --i) {\n    if ([self characterAtIndex:i] != ' ') {\n      break;\n    } else {\n      index--;\n    }\n  }\n  \n  if (index + 1 < self.length) {\n    index++;\n  }\n  \n  if (index + 1 >= self.length) {\n    return self;\n  }\n  \n  return [self substringToIndex:index];\n}\n\n- (NSString *)hyb_trim {\n  NSString *str = [self hyb_trimLeft];\n  return [str hyb_trimRight];\n}\n\n- (NSString *)hyb_trimAll {\n  return [self stringByReplacingOccurrencesOfString:@\" \" withString:@\"\"];\n}\n\n- (NSString *)hyb_trimLetters {\n  return [self stringByTrimmingCharactersInSet:[NSCharacterSet letterCharacterSet]];\n}\n\n- (NSString *)hyb_trimCharacter:(unichar)character {\n  NSString *str = [NSString stringWithFormat:@\"%c\", character];\n  return [self stringByReplacingOccurrencesOfString:str withString:@\"\"];\n}\n\n- (NSString *)hyb_trimWhitespace {\n  return [self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];\n}\n\n- (NSString *)hyb_trimWhitespaceAndNewLine {\n return [self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];\n}\n\n- (BOOL)hyb_isOnlyLetters {\n  NSCharacterSet *letterCharacterset = [[NSCharacterSet letterCharacterSet] invertedSet];\n  return ([self rangeOfCharacterFromSet:letterCharacterset].location == NSNotFound);\n}\n\n- (BOOL)hyb_isOnlyDigits {\n  NSCharacterSet *numSet = [[NSCharacterSet characterSetWithCharactersInString:@\"0123456789\"] invertedSet];\n  return ([self rangeOfCharacterFromSet:numSet].location == NSNotFound);\n}\n\n- (BOOL)hyb_isOnlyAlphaNumeric {\n  NSCharacterSet *numAndLetterCharSet = [[NSCharacterSet alphanumericCharacterSet] invertedSet];\n  return ([self rangeOfCharacterFromSet:numAndLetterCharSet].location == NSNotFound);\n}\n\n- (NSURL *)hyb_toURL {\n  return [NSURL URLWithString:self];\n}\n\n- (NSString *)hyb_URLEncode {\n  NSString *result =\n  CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,\n                                                            (CFStringRef)self,\n                                                            NULL,\n                                                            CFSTR(\"!*'();:@&;=+$,/?%#[] \"),\n                                                            kCFStringEncodingUTF8));\n  return result;\n}\n\n- (NSString *)hyb_filterHtml {\n  return [NSString hyb_filterHTML:self];\n}\n\n+ (NSString *)hyb_filterHTML:(NSString *)html {\n  if (html == nil) {\n    return nil;\n  }\n  \n  NSScanner *scanner = [NSScanner scannerWithString:html];\n  NSString *text = nil;\n  \n  while ([scanner isAtEnd] == NO) {\n    [scanner scanUpToString:@\"<\" intoString:nil];\n    [scanner scanUpToString:@\">\" intoString:&text];\n    html = [html stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@\"%@>\",text]\n                                           withString:@\"\"];\n  }\n  \n  return html;\n}\n\n+ (NSString *)hyb_documentPath {\n  return [NSHomeDirectory() stringByAppendingPathComponent:@\"Documents\"];\n}\n\n+ (NSString *)hyb_tmpPath {\n  return [NSHomeDirectory() stringByAppendingPathComponent:@\"tmp\"];\n}\n\n+ (NSString *)hyb_cachePath {\n  return [NSHomeDirectory() stringByAppendingPathComponent:@\"Library/Caches\"];\n}\n\n- (BOOL)hyb_isContainString:(NSString *)substring {\n  return [self rangeOfString:substring].location != NSNotFound;\n}\n\n#pragma mark - Private\n/**\n * 功能:判断是否在地区码内\n * 参数:地区码\n */\n+ (BOOL)_areaCode:(NSString *)code {\n  NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];\n  [dic setObject:@\"北京\" forKey:@\"11\"];\n  [dic setObject:@\"天津\" forKey:@\"12\"];\n  [dic setObject:@\"河北\" forKey:@\"13\"];\n  [dic setObject:@\"山西\" forKey:@\"14\"];\n  [dic setObject:@\"内蒙古\" forKey:@\"15\"];\n  [dic setObject:@\"辽宁\" forKey:@\"21\"];\n  [dic setObject:@\"吉林\" forKey:@\"22\"];\n  [dic setObject:@\"黑龙江\" forKey:@\"23\"];\n  [dic setObject:@\"上海\" forKey:@\"31\"];\n  [dic setObject:@\"江苏\" forKey:@\"32\"];\n  [dic setObject:@\"浙江\" forKey:@\"33\"];\n  [dic setObject:@\"安徽\" forKey:@\"34\"];\n  [dic setObject:@\"福建\" forKey:@\"35\"];\n  [dic setObject:@\"江西\" forKey:@\"36\"];\n  [dic setObject:@\"山东\" forKey:@\"37\"];\n  [dic setObject:@\"河南\" forKey:@\"41\"];\n  [dic setObject:@\"湖北\" forKey:@\"42\"];\n  [dic setObject:@\"湖南\" forKey:@\"43\"];\n  [dic setObject:@\"广东\" forKey:@\"44\"];\n  [dic setObject:@\"广西\" forKey:@\"45\"];\n  [dic setObject:@\"海南\" forKey:@\"46\"];\n  [dic setObject:@\"重庆\" forKey:@\"50\"];\n  [dic setObject:@\"四川\" forKey:@\"51\"];\n  [dic setObject:@\"贵州\" forKey:@\"52\"];\n  [dic setObject:@\"云南\" forKey:@\"53\"];\n  [dic setObject:@\"西藏\" forKey:@\"54\"];\n  [dic setObject:@\"陕西\" forKey:@\"61\"];\n  [dic setObject:@\"甘肃\" forKey:@\"62\"];\n  [dic setObject:@\"青海\" forKey:@\"63\"];\n  [dic setObject:@\"宁夏\" forKey:@\"64\"];\n  [dic setObject:@\"新疆\" forKey:@\"65\"];\n  [dic setObject:@\"台湾\" forKey:@\"71\"];\n  [dic setObject:@\"香港\" forKey:@\"81\"];\n  [dic setObject:@\"澳门\" forKey:@\"82\"];\n  [dic setObject:@\"国外\" forKey:@\"91\"];\n  \n  if ([dic objectForKey:code] == nil) {\n    return NO;\n  }\n  return YES;\n}\n\n+ (NSString *)_substringWithString:(NSString *)str begin:(NSInteger)begin end:(NSInteger )end {\n  return [str substringWithRange:NSMakeRange(begin, end)];\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/NSTimer+HYBHelperKit.h",
    "content": "//\n//  NSTimer+HYBHelperKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <Foundation/Foundation.h>\n\ntypedef void(^HYBTimerCallback)(NSTimer *timer);\n\n@interface NSTimer (HYBHelperKit)\n\n/**\n *\tCreate a timer with time interval, repeat or not, and callback.\n *\n *\t@param interval\tTime interval\n *\t@param repeats\tWhether repeat to schedule.\n *\t@param callback The callback block.\n *\n *\t@return Timer object.\n */\n+ (NSTimer *)hyb_scheduledTimerWithTimeInterval:(NSTimeInterval)interval\n                               repeats:(BOOL)repeats\n                              callback:(HYBTimerCallback)callback;\n\n/**\n *\tCreate a timer with time interval, repeat count, and callback.\n *\n *\t@param interval\tTime interval\n *\t@param count\t\tWhen count <= 0, it means repeat.\n *\t@param callback\tThe callback block\n *\n *\t@return Timer object\n */\n+ (NSTimer *)hyb_scheduledTimerWithTimeInterval:(NSTimeInterval)interval\n                                          count:(NSInteger)count\n                                       callback:(HYBTimerCallback)callback;\n\n/**\n *\tStart timer immediately.\n */\n- (void)hyb_fireTimer;\n\n/**\n *\tPause timer immediately\n */\n- (void)hyb_unfireTimer;\n\n/**\n *\tMake timer invalidate.\n */\n- (void)hyb_invalidate;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/NSTimer+HYBHelperKit.m",
    "content": "//\n//  NSTimer+HYBHelperKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"NSTimer+HYBHelperKit.h\"\n#import <objc/runtime.h>\n\nstatic const void *s_hyb_private_currentCountTime = \"s_hyb_private_currentCountTime\";\n\n@implementation NSTimer (HYBHelperKit)\n\n- (NSNumber *)hyb_private_currentCountTime {\n  NSNumber *obj = objc_getAssociatedObject(self, s_hyb_private_currentCountTime);\n  \n  if (obj == nil) {\n    obj = @(0);\n    \n    [self setHyb_private_currentCountTime:obj];\n  }\n  \n  return obj;\n}\n\n- (void)setHyb_private_currentCountTime:(NSNumber *)time {\n  objc_setAssociatedObject(self,\n                           s_hyb_private_currentCountTime,\n                           time, OBJC_ASSOCIATION_RETAIN_NONATOMIC);\n}\n\n+ (NSTimer *)hyb_scheduledTimerWithTimeInterval:(NSTimeInterval)interval\n                                          count:(NSInteger)count\n                                       callback:(HYBTimerCallback)callback {\n  if (count <= 0) {\n    return [self hyb_scheduledTimerWithTimeInterval:interval\n                                            repeats:YES\n                                           callback:callback];\n  }\n  \n  NSDictionary *userInfo = @{@\"callback\"     : callback,\n                             @\"count\"        : @(count)};\n  return [NSTimer scheduledTimerWithTimeInterval:interval\n                                          target:self\n                                        selector:@selector(hyb_onTimerUpdateCountBlock:)\n                                        userInfo:userInfo\n                                         repeats:YES];\n}\n\n+ (NSTimer *)hyb_scheduledTimerWithTimeInterval:(NSTimeInterval)interval\n                                        repeats:(BOOL)repeats\n                                       callback:(HYBTimerCallback)callback {\n  return [NSTimer scheduledTimerWithTimeInterval:interval\n                                          target:self\n                                        selector:@selector(hyb_onTimerUpdateBlock:)\n                                        userInfo:callback\n                                         repeats:repeats];\n}\n\n- (void)hyb_fireTimer {\n    [self setFireDate:[NSDate distantPast]];\n}\n\n- (void)hyb_unfireTimer {\n    [self setFireDate:[NSDate distantFuture]];\n}\n\n- (void)hyb_invalidate {\n  if (self.isValid) {\n    [self invalidate];\n  }\n}\n\n#pragma mark - Private\n+ (void)hyb_onTimerUpdateBlock:(NSTimer *)timer {\n  HYBTimerCallback block = timer.userInfo;\n  \n  if (block) {\n    block(timer);\n  }\n}\n\n+ (void)hyb_onTimerUpdateCountBlock:(NSTimer *)timer {\n  NSInteger currentCount = [[timer hyb_private_currentCountTime] integerValue];\n  \n  NSDictionary *userInfo = timer.userInfo;\n  HYBTimerCallback callback = userInfo[@\"callback\"];\n  NSNumber *count = userInfo[@\"count\"];\n  \n  if (currentCount < count.integerValue) {\n    currentCount++;\n    [timer setHyb_private_currentCountTime:@(currentCount)];\n    \n    if (callback) {\n      callback(timer);\n    }\n  } else {\n    currentCount = 0;\n    [timer setHyb_private_currentCountTime:@(currentCount)];\n    \n    [timer hyb_unfireTimer];\n    [timer hyb_invalidate];\n  }\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/NSUserDefaults+HYBHelperKit.h",
    "content": "//\n//  NSUserDefaults+HYBHelperKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <Foundation/Foundation.h>\n\n@interface NSUserDefaults (HYBHelperKit)\n\n/**\n *\tSet safe object to the user defaults, it will filter all nil or Null object,\n *  to prevent app crashing.\n *\n *\t@param value\t\t\t\tThe object to be saved.\n *\t@param key          The only key.\n */\n- (BOOL)hyb_setSafeObject:(id)value forKey:(NSString *)key;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/NSUserDefaults+HYBHelperKit.m",
    "content": "//\n//  NSUserDefaults+HYBHelperKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"NSUserDefaults+HYBHelperKit.h\"\n#import \"NSObject+HYBHelperKit.h\"\n\n@implementation NSUserDefaults (HYBHelperKit)\n\n- (BOOL)hyb_setSafeObject:(id)value forKey:(NSString *)key {\n  if (key == nil) {\n    return NO;\n  }\n  \n  if (value == nil || [value isKindOfClass:[NSNull class]]) {\n    [self removeObjectForKey:key];\n    \n    return YES;\n  }\n  \n  if ([value isKindOfClass:[NSString class]] || [value isKindOfClass:[NSNumber class]]) {\n    [self setObject:value forKey:key];\n    [self synchronize];\n    return YES;\n  } else {\n    id result = [value hyb_filterNullNil];\n    if (result) {\n      [self setObject:result forKey:key];\n      [self synchronize];\n      \n      return YES;\n    }\n  }\n  \n  return NO;\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIActionSheet+HYBHelperKit.h",
    "content": "//\n//  UIActionSheet+HYBHelperKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/15.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\ntypedef void(^HYBActionSheetClickedButtonBlock)(UIActionSheet *actionSheet, NSUInteger buttonIndex);\n\n@interface UIActionSheet (HYBHelperKit)\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tThe action sheet callback block\n */\n@property (nonatomic, copy) HYBActionSheetClickedButtonBlock hyb_clickedButtonBlock;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tShow an action sheet in the view with a title, cancel button title,\n *  destructive title and other button titles.\n *\n *\t@param inView\t\t\t\t\t\tWhich view show the action sheet.\n *\t@param title\t\t\t\t\t\tThe action sheet's title.\n *\t@param cancelTitle\t\t\tThe cancel button's title.\n *\t@param destructiveTitle\tThe destructive button title.\n *\t@param otherTitles\t\t\tOther buton titles.\n *\t@param callback\t\t\t\t\tThe callback block\n *\n *\t@return The UIActionSheet instance.\n */\n+ (instancetype)hyb_showInView:(UIView *)inView\n                         title:(NSString *)title\n                   cancelTitle:(NSString *)cancelTitle\n              destructiveTitle:(NSString *)destructiveTitle\n                   otherTitles:(NSArray *)otherTitles\n                      callback:(HYBActionSheetClickedButtonBlock)callback;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIActionSheet+HYBHelperKit.m",
    "content": "//\n//  UIActionSheet+HYBHelperKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/15.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"UIActionSheet+HYBHelperKit.h\"\n#import <objc/runtime.h>\n#import \"NSArray+HYBHelperKit.h\"\n\n@interface UIApplication (HDFActionSheet) <UIActionSheetDelegate>\n\n@end\n\n@implementation UIApplication (HDFActionSheet)\n\n- (void)actionSheet:(nonnull UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {\n  if (actionSheet.hyb_clickedButtonBlock) {\n    actionSheet.hyb_clickedButtonBlock(actionSheet, buttonIndex);\n  }\n}\n\n@end\n\nstatic const void *s_HdfActionSheetClickedButtonBlock = \"s_HdfActionSheetClickedButtonBlock\";\n\n@implementation UIActionSheet (HYBHelperKit)\n\n- (void)setHyb_clickedButtonBlock:(HYBActionSheetClickedButtonBlock)hyb_clickedButtonBlock {\n  objc_setAssociatedObject(self,\n                           s_HdfActionSheetClickedButtonBlock,\n                           hyb_clickedButtonBlock,\n                           OBJC_ASSOCIATION_COPY_NONATOMIC);\n}\n\n- (HYBActionSheetClickedButtonBlock)hyb_clickedButtonBlock {\n  return objc_getAssociatedObject(self, s_HdfActionSheetClickedButtonBlock);\n}\n\n+ (instancetype)hyb_showInView:(UIView *)inView\n                            title:(NSString *)title\n                      cancelTitle:(NSString *)cancelTitle\n                 destructiveTitle:(NSString *)destructiveTitle\n                      otherTitles:(NSArray *)otherTitles\n                         callback:(HYBActionSheetClickedButtonBlock)callback {\n  UIActionSheet *as = [[UIActionSheet alloc] initWithTitle:title\n                                                  delegate:[UIApplication sharedApplication]\n                                         cancelButtonTitle:cancelTitle\n                                    destructiveButtonTitle:destructiveTitle\n                                         otherButtonTitles:\n                       [otherTitles hyb_objectAtIndex:0],\n                       [otherTitles hyb_objectAtIndex:1],\n                       [otherTitles hyb_objectAtIndex:2],\n                       [otherTitles hyb_objectAtIndex:3],\n                       [otherTitles hyb_objectAtIndex:4],\n                       [otherTitles hyb_objectAtIndex:5],\n                       [otherTitles hyb_objectAtIndex:6],\n                       [otherTitles hyb_objectAtIndex:7],\n                       [otherTitles hyb_objectAtIndex:8],\n                       [otherTitles hyb_objectAtIndex:9],\n                       [otherTitles hyb_objectAtIndex:10],\n                       [otherTitles hyb_objectAtIndex:11],\n                       [otherTitles hyb_objectAtIndex:12],\n                       [otherTitles hyb_objectAtIndex:13],\n                       [otherTitles hyb_objectAtIndex:14],\n                       [otherTitles hyb_objectAtIndex:15],\n                       [otherTitles hyb_objectAtIndex:16],\n                       [otherTitles hyb_objectAtIndex:17],\n                       [otherTitles hyb_objectAtIndex:18],\n                       [otherTitles hyb_objectAtIndex:19],\n                       [otherTitles hyb_objectAtIndex:20],\n                       [otherTitles hyb_objectAtIndex:21],\n                       [otherTitles hyb_objectAtIndex:22],\n                       [otherTitles hyb_objectAtIndex:23],\n                       [otherTitles hyb_objectAtIndex:24],\n                       [otherTitles hyb_objectAtIndex:25],\n                       [otherTitles hyb_objectAtIndex:26],\n                       [otherTitles hyb_objectAtIndex:27],\n                       [otherTitles hyb_objectAtIndex:28],\n                       [otherTitles hyb_objectAtIndex:29],nil];\n  as.hyb_clickedButtonBlock = callback;\n  \n  [as showInView:inView];\n  \n  return as;\n}\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIAlertView+HYBHelperKit.h",
    "content": "//\n//  UIAlertView+HYBHelperKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/15.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\ntypedef void(^HYBAlertClickedButtonBlock)(UIAlertView *alertView,\n                                          NSUInteger buttonIndex);\n\n\n@interface UIAlertView (HYBHelperKit)\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tThe action callback block\n */\n@property (nonatomic, copy) HYBAlertClickedButtonBlock  hyb_clickedButtonBlock;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tShow an alert view with a title, message and button titles.\n *\n *\t@param title\t\t\t\tTitle\n *\t@param message\t\t\tThe content message\n *\t@param buttonTitles\tThe buttion titles array.\n *\t@param block\t\t\t\tThe callbac when clicked.\n *\n *\t@return The UIAlertView instance.\n */\n+ (instancetype)hyb_showWithTitle:(NSString *)title\n                          message:(NSString *)message\n                     buttonTitles:(NSArray *)buttonTitles\n                            block:(HYBAlertClickedButtonBlock)block;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIAlertView+HYBHelperKit.m",
    "content": "//\n//  UIAlertView+HYBHelperKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/15.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"UIAlertView+HYBHelperKit.h\"\n#import <objc/runtime.h>\n#import \"HYBCommonKit.h\"\n#import \"NSArray+HYBHelperKit.h\"\n\nstatic const void *s_privateAlertViewKey = \"s_privateAlertViewKey\";\n\n@interface UIApplication (HDFAlertView) <UIAlertViewDelegate>\n\n@end\n\n@implementation UIApplication (HDFAlertView)\n\n#pragma mark - UIAlertViewDelegate\n- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {\n  if (alertView.hyb_clickedButtonBlock) {\n    alertView.hyb_clickedButtonBlock(alertView, buttonIndex);\n  }\n}\n\n@end\n\n@implementation UIAlertView (HYBHelperKit)\n\n- (void)setHyb_clickedButtonBlock:(HYBAlertClickedButtonBlock)clickedButtonBlock {\n  objc_setAssociatedObject(self,\n                           s_privateAlertViewKey,\n                           clickedButtonBlock,\n                           OBJC_ASSOCIATION_COPY);\n}\n\n- (HYBAlertClickedButtonBlock)hyb_clickedButtonBlock {\n  return objc_getAssociatedObject(self, s_privateAlertViewKey);\n}\n\n+ (instancetype)hyb_showWithTitle:(NSString *)title\n                          message:(NSString *)message\n                     buttonTitles:(NSArray *)buttonTitles\n                            block:(HYBAlertClickedButtonBlock)block {\n  NSString *ok = nil;\n  if (kIsArray(buttonTitles) && buttonTitles.count > 0) {\n    ok = [buttonTitles hyb_objectAtIndex:0];\n  }\n  \n  UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:title\n                                                      message:message\n                                                     delegate:[UIApplication sharedApplication]\n                                            cancelButtonTitle:ok\n                                            otherButtonTitles:\n                            [buttonTitles hyb_objectAtIndex:1],\n                            [buttonTitles hyb_objectAtIndex:2],\n                            [buttonTitles hyb_objectAtIndex:3],\n                            [buttonTitles hyb_objectAtIndex:4],\n                            [buttonTitles hyb_objectAtIndex:5],\n                            [buttonTitles hyb_objectAtIndex:6],\n                            [buttonTitles hyb_objectAtIndex:7],\n                            [buttonTitles hyb_objectAtIndex:8],\n                            [buttonTitles hyb_objectAtIndex:9],\n                            [buttonTitles hyb_objectAtIndex:10],\n                            [buttonTitles hyb_objectAtIndex:11],\n                            [buttonTitles hyb_objectAtIndex:12],\n                            [buttonTitles hyb_objectAtIndex:13],\n                            [buttonTitles hyb_objectAtIndex:14],\n                            nil];\n  alertView.hyb_clickedButtonBlock = block;\n  \n  [alertView show];\n  \n  return alertView;\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIButton+HYBHelperBlockKit.h",
    "content": "//\n//  UIButton+HYBHelperBlockKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"HYBHelperBlocksKit.h\"\n#import \"HYBCommonKit.h\"\n\n@interface UIButton (HYBHelperBlockKit)\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tThe most easy way to create a button with a touch up event callback block.\n *\n *\t@param onTouchUp\tThe touch up event callback block.\n *\n *\t@return UIButton instance.\n */\n+ (instancetype)hyb_buttonWithTouchUp:(HYBButtonBlock)onTouchUp;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a button with super view, masonry auto layout, and touch up callback.\n *\n *\t@param superView\t\tAdd the button to the superView.\n *\t@param constraints\tUsing Masonry to add constraints.\n *\t@param touchUp\t\t\tThe callback of touching up event.\n *\n *\t@return UIButton instance.\n */\n+ (instancetype)hyb_buttonWithSuperView:(UIView *)superView\n                            constraints:(HYBConstraintMaker)constraints\n                                touchUp:(HYBButtonBlock)touchUp;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a button with title, super view, masonry auto layout, and touch up callback.\n *\n *\t@param title\t\t\t\tSet title for the button.\n *\t@param superView\t\tAdd the button to the superView.\n *\t@param constraints\tUsing Masonry to add constraints.\n *\t@param touchUp\t\t\tThe callback of touching up event.\n *\n *\t@return UIButton instance.\n */\n+ (instancetype)hyb_buttonWithTitle:(NSString *)title\n                          superView:(UIView *)superView\n                        constraints:(HYBConstraintMaker)constraints\n                            touchUp:(HYBButtonBlock)touchUp;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a button with image, super view, masonry auto layout, and touch up callback.\n *\n *\t@param image\t\t\t\tSet normal state image for the button, it can be\n *                      a image name or a real UIImage.\n *\t@param superView\t\tAdd the button to the superView.\n *\t@param constraints\tUsing Masonry to add constraints.\n *\t@param touchUp\t\t\tThe callback of touching up event.\n *\n *\t@return UIButton instance.\n */\n+ (instancetype)hyb_buttonWithImage:(id)image\n                          superView:(UIView *)superView\n                        constraints:(HYBConstraintMaker)constraints\n                            touchUp:(HYBButtonBlock)touchUp;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a button with normal image, selected image, super view, \n *  masonry auto layout, and touch up callback.\n *\n *\t@param image\t\t\t\tSet normal state image for the button, it can be\n *                      a image name or a real UIImage.\n *  @param selectedImage Set selected state image for the button, it can be\n *                      a image name or a real UIImage.\n *\t@param superView\t\tAdd the button to the superView.\n *\t@param constraints\tUsing Masonry to add constraints.\n *\t@param touchUp\t\t\tThe callback of touching up event.\n *\n *\t@return UIButton instance.\n */\n+ (instancetype)hyb_buttonWithImage:(id)image\n                      selectedImage:(id)selectedImage\n                          superView:(UIView *)superView\n                        constraints:(HYBConstraintMaker)constraints\n                            touchUp:(HYBButtonBlock)touchUp;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIButton+HYBHelperBlockKit.m",
    "content": "//\n//  UIButton+HYBHelperBlockKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"UIButton+HYBHelperBlockKit.h\"\n\n@implementation UIButton (HYBHelperBlockKit)\n\n+ (instancetype)hyb_buttonWithTouchUp:(HYBButtonBlock)onTouchUp {\n  return [self hyb_buttonWithSuperView:nil constraints:nil touchUp:onTouchUp];\n}\n\n+ (instancetype)hyb_buttonWithSuperView:(UIView *)superView\n                            constraints:(HYBConstraintMaker)constraints\n                                touchUp:(HYBButtonBlock)touchUp {\n  return [self hyb_buttonWithTitle:nil\n                         superView:superView\n                       constraints:constraints\n                           touchUp:touchUp];\n}\n\n+ (instancetype)hyb_buttonWithTitle:(NSString *)title\n                          superView:(UIView *)superView\n                        constraints:(HYBConstraintMaker)constraints\n                            touchUp:(HYBButtonBlock)touchUp {\n  return [self private_hyb_buttonWithTitle:title\n                                     image:nil\n                                  selImage:nil\n                                 superView:superView\n                               constraints:constraints\n                                   touchUp:touchUp];\n}\n\n+ (instancetype)hyb_buttonWithImage:(id)image\n                          superView:(UIView *)superView\n                        constraints:(HYBConstraintMaker)constraints\n                            touchUp:(HYBButtonBlock)touchUp {\n  return [self hyb_buttonWithImage:image\n                     selectedImage:nil\n                         superView:superView\n                       constraints:constraints\n                           touchUp:touchUp];\n}\n\n+ (instancetype)hyb_buttonWithImage:(id)image\n                      selectedImage:(id)selectedImage\n                          superView:(UIView *)superView\n                        constraints:(HYBConstraintMaker)constraints\n                            touchUp:(HYBButtonBlock)touchUp {\n  return [self private_hyb_buttonWithTitle:nil\n                                     image:image\n                                  selImage:selectedImage\n                                 superView:superView\n                               constraints:constraints\n                                   touchUp:touchUp];\n}\n\n#pragma mark - Private\n+ (instancetype)private_hyb_buttonWithTitle:(NSString *)title\n                                      image:(id)image\n                                   selImage:(id)selImage\n                                  superView:(UIView *)superView\n                                constraints:(HYBConstraintMaker)constaints\n                                    touchUp:(HYBButtonBlock)touchUp {\n  UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];\n  button.hyb_onTouchUp = touchUp;\n  \n  if (!kIsEmptyString(title)) {\n    [button setTitle:title forState:UIControlStateNormal];\n  }\n  \n  UIImage *normalImage = nil;\n  if ([image isKindOfClass:[NSString class]]) {\n    normalImage = kImage(image);\n  } else if ([image isKindOfClass:[UIImage class]]) {\n    normalImage = image;\n  }\n  \n  UIImage *selectedImage = nil;\n  if ([selImage isKindOfClass:[NSString class]]) {\n    selectedImage = kImage(selImage);\n  } else if ([selImage isKindOfClass:[UIImage class]]) {\n    selectedImage = selImage;\n  }\n  \n  if (normalImage) {\n    [button setImage:normalImage forState:UIControlStateNormal];\n  }\n  \n  if (selectedImage) {\n    [button setImage:selectedImage forState:UIControlStateSelected];\n  }\n  \n  [superView addSubview:button];\n  \n  if (superView && constaints) {\n    [button mas_makeConstraints:^(MASConstraintMaker *make) {\n      constaints(make);\n    }];\n  }\n  \n  return button;\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UICollectionView+HYBMaonsryKit.h",
    "content": "//\n//  UICollectionView+HYBMaonsryKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/7.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"HYBHelperKit.h\"\n\n@interface UICollectionView (HYBMaonsryKit)\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a colellection view with flow layout, scroll horizontal or vertical,\n *  set item size, delegate, data source, item spacing and line spacing and so on.\n *\n *  When super view is not nil, it will be automatically added constraints with edges of\n *  super view.\n *\n *\t@param delegate\t\t\t\t\t\t\t\tDelegate and data source.\n *\t@param isHorizontal\t\t\t\t\t\t@see UICollectionViewScrollDirection\n *\t@param superView\t\t\t\t\t\t\t\tThe super view of collection view.\n *\n *\t@return The instance of UICollectionView.\n */\n+ (instancetype)hyb_collectionViewWithDelegate:(id)delegate\n                                    horizontal:(BOOL)isHorizontal\n                                     superView:(UIView *)superView;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a colellection view with flow layout, scroll horizontal or vertical,\n *  set item size, delegate, data source, item spacing and line spacing and so on.\n *\n *  When super view is not nil, it will be automatically added constraints with edges of\n *  super view.\n *\n *\t@param delegate\t\t\t\t\t\t\t\tDelegate and data source.\n *\t@param isHorizontal\t\t\t\t\t\t@see UICollectionViewScrollDirection\n *\t@param itemSize\t\t\t\t\t\t\t\tThe size of collection view cell.\n *\t@param superView\t\t\t\t\t\t\t\tThe super view of collection view.\n *\n *\t@return The instance of UICollectionView.\n */\n+ (instancetype)hyb_collectionViewWithDelegate:(id)delegate\n                                    horizontal:(BOOL)isHorizontal\n                                          size:(CGSize)itemSize\n                                     superView:(UIView *)superView;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a colellection view with flow layout, scroll horizontal or vertical,\n *  set item size, delegate, data source, item spacing and line spacing and so on.\n *\n *  When super view is not nil, it will be automatically added constraints with edges of\n *  super view.\n *\n *\t@param delegate\t\t\t\t\t\t\t\tDelegate and data source.\n *\t@param isHorizontal\t\t\t\t\t\t@see UICollectionViewScrollDirection\n *\t@param itemSize\t\t\t\t\t\t\t\tThe size of collection view cell.\n *\t@param minimumInteritemSpacing\tThe minunum interitem spacing.\n *\t@param minimumLineSpacing\t\t\tThe mininum line spacing.\n *\t@param superView\t\t\t\t\t\t\t\tThe super view of collection view.\n *\n *\t@return The instance of UICollectionView.\n */\n+ (instancetype)hyb_collectionViewWithDelegate:(id)delegate\n                                    horizontal:(BOOL)isHorizontal\n                                          size:(CGSize)itemSize\n                                   itemSpacing:(CGFloat)minimumInteritemSpacing\n                                   lineSpacing:(CGFloat)minimumLineSpacing\n                                     superView:(UIView *)superView;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a colellection view with flow layout, scroll horizontal or vertical,\n *  set item size, delegate, data source, item spacing and line spacing and so on.\n *\n *\t@param delegate\t\t\t\t\t\t\t\tDelegate and data source.\n *\t@param isHorizontal\t\t\t\t\t\t@see UICollectionViewScrollDirection\n *\t@param itemSize\t\t\t\t\t\t\t\tThe size of collection view cell.\n *\t@param minimumInteritemSpacing\tThe minunum interitem spacing.\n *\t@param minimumLineSpacing\t\t\tThe mininum line spacing.\n *\t@param superView\t\t\t\t\t\t\t\tThe super view of collection view.\n *\t@param constraints\t\t\t\t\t\t\tThe constraints added to the collection view.\n *\n *\t@return The instance of UICollectionView.\n */\n+ (instancetype)hyb_collectionViewWithDelegate:(id)delegate\n                                    horizontal:(BOOL)isHorizontal\n                                          size:(CGSize)itemSize\n                                   itemSpacing:(CGFloat)minimumInteritemSpacing\n                                   lineSpacing:(CGFloat)minimumLineSpacing\n                                     superView:(UIView *)superView\n                                   constraints:(HYBConstraintMaker)constraints;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UICollectionView+HYBMaonsryKit.m",
    "content": "//\n//  UICollectionView+HYBMaonsryKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/7.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"UICollectionView+HYBMaonsryKit.h\"\n\n@implementation UICollectionView (HYBMaonsryKit)\n\n+ (instancetype)hyb_collectionViewWithDelegate:(id)delegate\n                                    horizontal:(BOOL)isHorizontal\n                                     superView:(UIView *)superView {\n  return [self hyb_collectionViewWithDelegate:delegate\n                                   horizontal:isHorizontal\n                                         size:CGSizeZero\n                                  itemSpacing:0\n                                  lineSpacing:0\n                                    superView:superView\n                                  constraints:nil];\n}\n\n+ (instancetype)hyb_collectionViewWithDelegate:(id)delegate\n                                    horizontal:(BOOL)isHorizontal\n                                          size:(CGSize)itemSize\n                                     superView:(UIView *)superView {\n  return [self hyb_collectionViewWithDelegate:delegate\n                                   horizontal:isHorizontal\n                                         size:itemSize\n                                  itemSpacing:0\n                                  lineSpacing:0\n                                    superView:superView\n                                  constraints:nil];\n}\n\n+ (instancetype)hyb_collectionViewWithDelegate:(id)delegate\n                                    horizontal:(BOOL)isHorizontal\n                                          size:(CGSize)itemSize\n                                   itemSpacing:(CGFloat)minimumInteritemSpacing\n                                   lineSpacing:(CGFloat)minimumLineSpacing\n                                     superView:(UIView *)superView {\n  return [self hyb_collectionViewWithDelegate:delegate\n                                   horizontal:isHorizontal\n                                         size:itemSize\n                                  itemSpacing:minimumInteritemSpacing\n                                  lineSpacing:minimumLineSpacing\n                                    superView:superView\n                                  constraints:nil];\n}\n\n+ (instancetype)hyb_collectionViewWithDelegate:(id)delegate\n                                    horizontal:(BOOL)isHorizontal\n                                          size:(CGSize)itemSize\n                                   itemSpacing:(CGFloat)minimumInteritemSpacing\n                                   lineSpacing:(CGFloat)minimumLineSpacing\n                                     superView:(UIView *)superView\n                                   constraints:(HYBConstraintMaker)constraints {\n  UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init];\n  layout.itemSize = itemSize;\n  layout.minimumInteritemSpacing = minimumInteritemSpacing;\n  layout.minimumLineSpacing = minimumLineSpacing;\n  \n  UICollectionView *collection = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];\n  collection.backgroundColor = [UIColor whiteColor];\n  collection.pagingEnabled = YES;\n  collection.delegate = delegate;\n  collection.dataSource = delegate;\n  collection.showsHorizontalScrollIndicator = NO;\n  [superView addSubview:collection];\n  \n  if (isHorizontal) {\n    [layout setScrollDirection:UICollectionViewScrollDirectionHorizontal];\n    collection.showsVerticalScrollIndicator = NO;\n    collection.showsHorizontalScrollIndicator = YES;\n  } else {\n    [layout setScrollDirection:UICollectionViewScrollDirectionVertical];\n    collection.showsVerticalScrollIndicator = YES;\n    collection.showsHorizontalScrollIndicator = NO;\n  }\n  \n  if (superView) {\n    if (constraints) {\n      [collection mas_makeConstraints:^(MASConstraintMaker *make) {\n        constraints(make);\n      }];\n    } else {\n      [collection mas_makeConstraints:^(MASConstraintMaker *make) {\n        make.edges.mas_equalTo(superView);\n      }];\n    }\n  }\n  \n  return collection;\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIColor+HYBHelperKitUIKit.h",
    "content": "//\n//  UIColor+HYBHelperKitUIKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n@interface UIColor (HYBHelperKitUIKit)\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tGenerate an image with current color, and the image size will be set to {1, 1}\n *\n *\t@return UIImage instance.\n */\n- (UIImage *)hyb_toImage;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tGenerate an image with the color and size will be {1, 1}\n *\n *\t@param color\tThe color to generate image.\n *\n *\t@return UIImage instance.\n */\n+ (UIImage *)hyb_imageWithColor:(UIColor *)color;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tGenerate an image to the specified size with current color.\n *\n *\t@param size\tThe returning image size.\n *\n *\t@return The image instance.\n */\n- (UIImage *)hyb_toImageWithSize:(CGSize)size;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tGenerate an image to the specified size with specified color.\n *\n *\t@param color\tThe color to be used to generate an image.\n *\t@param size\tThe result image size.\n *\n *\t@return The image instance.\n */\n+ (UIImage *)hyb_imageWithColor:(UIColor *)color size:(CGSize)size;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIColor+HYBHelperKitUIKit.m",
    "content": "//\n//  UIColor+HYBHelperKitUIKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"UIColor+HYBHelperKitUIKit.h\"\n\n@implementation UIColor (HYBHelperKitUIKit)\n\n- (UIImage *)hyb_toImage {\n  return [UIColor hyb_imageWithColor:self];\n}\n\n+ (UIImage *)hyb_imageWithColor:(UIColor *)color {\n  return [self hyb_imageWithColor:color size:CGSizeMake(1, 1)];\n}\n\n- (UIImage *)hyb_toImageWithSize:(CGSize)size {\n  return [UIColor hyb_imageWithColor:self size:size];\n}\n\n+ (UIImage *)hyb_imageWithColor:(UIColor *)color size:(CGSize)size {\n  CGRect rect = CGRectMake(0, 0, size.width, size.height);\n  \n  UIGraphicsBeginImageContext(size);\n  CGContextRef context = UIGraphicsGetCurrentContext();\n  CGContextSetFillColorWithColor(context, color.CGColor);\n  CGContextFillRect(context, rect);\n  UIImage *image = UIGraphicsGetImageFromCurrentImageContext();\n  UIGraphicsEndImageContext();\n  \n  return image;\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIControl+HYBHelperBlockKit.h",
    "content": "//\n//  UIControl+HYBHelperBlockKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"HYBCommonKit.h\"\n\n@interface UIControl (HYBHelperBlockKit)\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tMake it support block callback of touch up event.\n */\n@property (nonatomic, copy) HYBButtonBlock hyb_onTouchUp;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tMake it support block callback of touch down event.\n */\n@property (nonatomic, copy) HYBButtonBlock hyb_onTouchDown;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tMake it support block callback of value change event.\n */\n@property (nonatomic, copy) HYBValueChangedBlock hyb_onValueChanged;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tMake it support block callback of editing changed event.\n */\n@property (nonatomic, copy) HYBEditChangedBlock hyb_onEditChanged;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIControl+HYBHelperBlockKit.m",
    "content": "//\n//  UIControl+HYBHelperBlockKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"UIControl+HYBHelperBlockKit.h\"\n#import <objc/runtime.h>\n\nstatic const void *s_HYBButtonTouchUpKey = \"s_HYBButtonTouchUpKey\";\nstatic const void *s_HYBButtonTouchDownKey = \"s_HYBButtonTouchDownKey\";\nstatic const void *s_HYBOnValueChangedKey = \"s_HYBOnValueChangedKey\";\nstatic const void *s_HYBOnEditChangedKey = \"s_HYBOnEditChangedKey\";\n\n@implementation UIControl (HYBHelperBlockKit)\n\n- (HYBButtonBlock)hyb_onTouchUp {\n  return objc_getAssociatedObject(self, s_HYBButtonTouchUpKey);\n}\n\n- (void)setHyb_onTouchUp:(HYBButtonBlock)hyb_onTouchUp {\n  objc_setAssociatedObject(self, s_HYBButtonTouchUpKey, hyb_onTouchUp, OBJC_ASSOCIATION_COPY_NONATOMIC);\n  \n  [self removeTarget:self\n              action:@selector(hyb_private_onTouchUp:)\n    forControlEvents:UIControlEventTouchUpInside];\n  \n  if (hyb_onTouchUp) {\n    [self addTarget:self\n             action:@selector(hyb_private_onTouchUp:)\n   forControlEvents:UIControlEventTouchUpInside];\n  }\n}\n\n- (HYBButtonBlock)hyb_onTouchDown {\n  return objc_getAssociatedObject(self, s_HYBButtonTouchDownKey);\n}\n\n- (void)setHyb_onTouchDown:(HYBButtonBlock)hyb_onTouchDown {\n  [self removeTarget:self\n              action:@selector(hyb_private_onTouchDown:)\n    forControlEvents:UIControlEventTouchDown];\n  \n  if (hyb_onTouchDown) {\n    [self addTarget:self\n             action:@selector(hyb_private_onTouchDown:)\n   forControlEvents:UIControlEventTouchDown];\n  }\n  \n  objc_setAssociatedObject(self,\n                           s_HYBButtonTouchDownKey,\n                           hyb_onTouchDown,\n                           OBJC_ASSOCIATION_COPY_NONATOMIC);\n}\n\n- (HYBValueChangedBlock)hyb_onValueChanged {\n  return objc_getAssociatedObject(self, s_HYBOnValueChangedKey);\n}\n\n- (void)setHyb_onValueChanged:(HYBValueChangedBlock)hyb_onValueChanged {\n  objc_setAssociatedObject(self,\n                           s_HYBOnValueChangedKey,\n                           hyb_onValueChanged,\n                           OBJC_ASSOCIATION_COPY_NONATOMIC);\n  \n  [self removeTarget:self\n              action:@selector(hyb_private_onValueChanged:)\n    forControlEvents:UIControlEventValueChanged];\n  \n  if (hyb_onValueChanged) {\n    [self addTarget:self\n             action:@selector(hyb_private_onValueChanged:)\n   forControlEvents:UIControlEventValueChanged];\n  }\n}\n\n- (HYBEditChangedBlock)hyb_onEditChanged {\n  return objc_getAssociatedObject(self, s_HYBOnEditChangedKey);\n}\n\n- (void)setHyb_onEditChanged:(HYBEditChangedBlock)hyb_onEditChanged {\n  objc_setAssociatedObject(self,\n                           s_HYBOnEditChangedKey,\n                           hyb_onEditChanged,\n                           OBJC_ASSOCIATION_COPY_NONATOMIC);\n  \n  [self removeTarget:self\n              action:@selector(hyb_private_onEditChanged:)\n    forControlEvents:UIControlEventEditingChanged];\n  \n  if (hyb_onEditChanged) {\n    [self addTarget:self\n             action:@selector(hyb_private_onEditChanged:)\n   forControlEvents:UIControlEventEditingChanged];\n  }\n}\n\n#pragma mark - Private\n- (void)hyb_private_onTouchUp:(id)sender {\n  HYBButtonBlock block = [self hyb_onTouchUp];\n  \n  if (block) {\n    block(sender);\n  }\n}\n\n- (void)hyb_private_onTouchDown:(id)sender {\n  HYBButtonBlock block = [self hyb_onTouchDown];\n  \n  if (block) {\n    block(sender);\n  }\n}\n\n- (void)hyb_private_onValueChanged:(id)sender {\n  HYBValueChangedBlock block = [self hyb_onValueChanged];\n  \n  if (block) {\n    block(sender);\n  }\n}\n\n- (void)hyb_private_onEditChanged:(id)sender {\n  HYBEditChangedBlock block = [self hyb_onEditChanged];\n  \n  if (block) {\n    block(sender);\n  }\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIDevice+HYBHelperKitUIKit.h",
    "content": "//\n//  UIDevice+HYBHelperKitUIKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n@interface UIDevice (HYBHelperKitUIKit)\n\n/**\n *  Return the device platform string\n *  Example: \"iPhone3,2\"\n *\n *  @return Return the device platform string\n */\n+ (NSString *)hyb_devicePlatform;\n\n/**\n *  Return the user-friendly device platform string\n *  Example: \"iPad Air (Cellular)\"\n *\n *  @return Return the user-friendly device platform string\n */\n+ (NSString *)hyb_devicePlatformString;\n\n/**\n *  Check if the current device is an iPad\n *\n *  @return Return YES if it's an iPad, NO if not\n */\n+ (BOOL)hyb_isiPad;\n\n/**\n *  Check if the current device is an iPhone\n *\n *  @return Return YES if it's an iPhone, NO if not\n */\n+ (BOOL)hyb_isiPhone;\n\n/**\n *  Check if the current device is an iPod\n *\n *  @return Return YES if it's an iPod, NO if not\n */\n+ (BOOL)hyb_isiPod;\n\n/**\n *  Check if the current device is the simulator\n *\n *  @return Return YES if it's the simulator, NO if not\n */\n+ (BOOL)hyb_isSimulator;\n\n/**\n *  Check if the current device has a Retina display\n *\n *  @return Return YES if it has a Retina display, NO if not\n */\n+ (BOOL)hyb_isRetina;\n\n/**\n *  Check if the current device has a Retina HD display\n *\n *  @return Return YES if it has a Retina HD display, NO if not\n */\n+ (BOOL)hyb_isRetinaHD;\n\n/**\n *  Return the iOS version without the subversion\n *  Example: 7\n *\n *  @return Return the iOS version\n */\n+ (NSInteger)hyb_iOSVersion;\n\n/**\n *  Return the current device CPU frequency\n *\n *  @return Return the current device CPU frequency\n */\n+ (NSUInteger)hyb_cpuFrequency;\n\n/**\n *  Return the current device BUS frequency\n *\n *  @return Return the current device BUS frequency\n */\n+ (NSUInteger)hyb_busFrequency;\n\n/**\n *  Return the current device RAM size\n *\n *  @return Return the current device RAM size\n */\n+ (NSUInteger)hyb_ramSize;\n\n/**\n *  Return the current device CPU number\n *\n *  @return Return the current device CPU number\n */\n+ (NSUInteger)hyb_cpuNumber;\n\n/**\n *  Return the current device total memory\n *\n *  @return Return the current device total memory\n */\n+ (NSUInteger)hyb_totalMemory;\n\n/**\n *  Return the current device non-kernel memory\n *\n *  @return Return the current device non-kernel memory\n */\n+ (NSUInteger)hyb_userMemory;\n\n/**\n *  Return the current device total disk space\n *\n *  @return Return the current device total disk space\n */\n+ (NSNumber *)hyb_totalDiskSpace;\n\n/**\n *  Return the current device free disk space\n *\n *  @return Return the current device free disk space\n */\n+ (NSNumber *)hyb_freeDiskSpace;\n\n/**\n *  Return the current device MAC address\n *\n *  @return Return the current device MAC address\n */\n+ (NSString *)hyb_macAddress;\n\n/**\n *  Generate an unique identifier and store it into standardUserDefaults\n *\n *  @return Return a unique identifier as a NSString\n */\n+ (NSString *)hyb_uniqueIdentifier;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIDevice+HYBHelperKitUIKit.m",
    "content": "//\n//  UIDevice+HYBHelperKitUIKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"UIDevice+HYBHelperKitUIKit.h\"\n#include <sys/types.h>\n#include <sys/sysctl.h>\n#include <sys/socket.h>\n#include <net/if.h>\n#include <net/if_dl.h>\n\nstatic NSString * const BFUniqueIdentifierDefaultsKey = @\"BFUniqueIdentifier\";\n\n@implementation UIDevice (HYBHelperKitUIKit)\n\n+ (NSString *)hyb_devicePlatform {\n  size_t size;\n  sysctlbyname(\"hw.machine\", NULL, &size, NULL, 0);\n  char *machine = malloc(size);\n  sysctlbyname(\"hw.machine\", machine, &size, NULL, 0);\n  NSString *platform = [NSString stringWithUTF8String:machine];\n  free(machine);\n  \n  return platform;\n}\n\n+ (NSString *)hyb_devicePlatformString {\n  NSString *platform = [self hyb_devicePlatform];\n  // iPhone\n  if ([platform isEqualToString:@\"iPhone1,1\"])    return @\"iPhone 2G\";\n  if ([platform isEqualToString:@\"iPhone1,2\"])    return @\"iPhone 3G\";\n  if ([platform isEqualToString:@\"iPhone2,1\"])    return @\"iPhone 3GS\";\n  if ([platform isEqualToString:@\"iPhone3,1\"])    return @\"iPhone 4\";\n  if ([platform isEqualToString:@\"iPhone3,3\"])    return @\"iPhone 4 (CDMA)\";\n  if ([platform isEqualToString:@\"iPhone4,1\"])    return @\"iPhone 4S\";\n  if ([platform isEqualToString:@\"iPhone5,1\"])    return @\"iPhone 5 (GSM)\";\n  if ([platform isEqualToString:@\"iPhone5,2\"])    return @\"iPhone 5 (CDMA)\";\n  if ([platform isEqualToString:@\"iPhone5,3\"])    return @\"iPhone 5C (GSM)\";\n  if ([platform isEqualToString:@\"iPhone5,4\"])    return @\"iPhone 5C (Global)\";\n  if ([platform isEqualToString:@\"iPhone6,1\"])    return @\"iPhone 5S (GSM)\";\n  if ([platform isEqualToString:@\"iPhone6,2\"])    return @\"iPhone 5S (Global)\";\n  if ([platform isEqualToString:@\"iPhone7,1\"])    return @\"iPhone 6 Plus\";\n  if ([platform isEqualToString:@\"iPhone7,2\"])    return @\"iPhone 6\";\n  if ([platform isEqualToString:@\"iPhone8,1\"])    return @\"iPhone 6s\";\n  if ([platform isEqualToString:@\"iPhone8,2\"])    return @\"iPhone 6s Plus\";\n  // iPod\n  if ([platform isEqualToString:@\"iPod1,1\"])      return @\"iPod Touch 1G\";\n  if ([platform isEqualToString:@\"iPod2,1\"])      return @\"iPod Touch 2G\";\n  if ([platform isEqualToString:@\"iPod3,1\"])      return @\"iPod Touch 3G\";\n  if ([platform isEqualToString:@\"iPod4,1\"])      return @\"iPod Touch 4G\";\n  if ([platform isEqualToString:@\"iPod5,1\"])      return @\"iPod Touch 5G\";\n  // iPad\n  if ([platform isEqualToString:@\"iPad1,1\"])      return @\"iPad 1\";\n  if ([platform isEqualToString:@\"iPad2,1\"])      return @\"iPad 2 (WiFi)\";\n  if ([platform isEqualToString:@\"iPad2,2\"])      return @\"iPad 2 (GSM)\";\n  if ([platform isEqualToString:@\"iPad2,3\"])      return @\"iPad 2 (CDMA)\";\n  if ([platform isEqualToString:@\"iPad2,4\"])      return @\"iPad 2 (32nm)\";\n  if ([platform isEqualToString:@\"iPad2,5\"])      return @\"iPad mini (WiFi)\";\n  if ([platform isEqualToString:@\"iPad2,6\"])      return @\"iPad mini (GSM)\";\n  if ([platform isEqualToString:@\"iPad2,7\"])      return @\"iPad mini (CDMA)\";\n  if ([platform isEqualToString:@\"iPad3,1\"])      return @\"iPad 3 (WiFi)\";\n  if ([platform isEqualToString:@\"iPad3,2\"])      return @\"iPad 3 (CDMA)\";\n  if ([platform isEqualToString:@\"iPad3,3\"])      return @\"iPad 3 (GSM)\";\n  if ([platform isEqualToString:@\"iPad3,4\"])      return @\"iPad 4 (WiFi)\";\n  if ([platform isEqualToString:@\"iPad3,5\"])      return @\"iPad 4 (GSM)\";\n  if ([platform isEqualToString:@\"iPad3,6\"])      return @\"iPad 4 (CDMA)\";\n  if ([platform isEqualToString:@\"iPad4,1\"])      return @\"iPad Air (WiFi)\";\n  if ([platform isEqualToString:@\"iPad4,2\"])      return @\"iPad Air (Cellular)\";\n  if ([platform isEqualToString:@\"iPad4,3\"])      return @\"iPad Air (China)\";\n  if ([platform isEqualToString:@\"iPad5,3\"])      return @\"iPad Air 2 (WiFi)\";\n  if ([platform isEqualToString:@\"iPad5,4\"])      return @\"iPad Air 2 (Cellular)\";\n  // iPad mini\n  if ([platform isEqualToString:@\"iPad4,4\"])      return @\"iPad mini 2 (WiFi)\";\n  if ([platform isEqualToString:@\"iPad4,5\"])      return @\"iPad mini 2 (Cellular)\";\n  if ([platform isEqualToString:@\"iPad4,6\"])      return @\"iPad mini 2 (China)\";\n  if ([platform isEqualToString:@\"iPad4,7\"])      return @\"iPad mini 3 (WiFi)\";\n  if ([platform isEqualToString:@\"iPad4,8\"])      return @\"iPad mini 3 (Cellular)\";\n  if ([platform isEqualToString:@\"iPad4,9\"])      return @\"iPad mini 3 (China)\";\n  // Simulator\n  if ([platform isEqualToString:@\"i386\"])         return @\"Simulator\";\n  if ([platform isEqualToString:@\"x86_64\"])       return @\"Simulator\";\n  return platform;\n}\n\n+ (BOOL)hyb_isiPad {\n  return [[[self hyb_devicePlatform] substringToIndex:4] isEqualToString:@\"iPad\"];\n}\n\n+ (BOOL)hyb_isiPhone {\n  return [[[self hyb_devicePlatform] substringToIndex:6] isEqualToString:@\"iPhone\"];\n}\n\n+ (BOOL)hyb_isiPod {\n  return [[[self hyb_devicePlatform] substringToIndex:4] isEqualToString:@\"iPod\"];\n}\n\n+ (BOOL)hyb_isSimulator {\n  return [[self hyb_devicePlatform] isEqualToString:@\"i386\"]\n  || [[self hyb_devicePlatform] isEqualToString:@\"x86_64\"];\n}\n\n+ (BOOL)hyb_isRetina {\n  return [[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)]\n  && ([UIScreen mainScreen].scale == 2.0 || [UIScreen mainScreen].scale == 3.0);\n}\n\n+ (BOOL)hyb_isRetinaHD {\n  return [[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)]\n  && ([UIScreen mainScreen].scale == 3.0);\n}\n\n+ (NSInteger)hyb_iOSVersion {\n  return [[[UIDevice currentDevice] systemVersion] integerValue];\n}\n\n+ (NSUInteger)hyb_cpuFrequency {\n  return [self _getSysInfo:HW_CPU_FREQ];\n}\n\n+ (NSUInteger)hyb_busFrequency {\n  return [self _getSysInfo:HW_BUS_FREQ];\n}\n\n+ (NSUInteger)hyb_ramSize {\n  return [self _getSysInfo:HW_MEMSIZE];\n}\n\n+ (NSUInteger)hyb_cpuNumber {\n  return [self _getSysInfo:HW_NCPU];\n}\n\n+ (NSUInteger)hyb_totalMemory {\n  return [self _getSysInfo:HW_PHYSMEM];\n}\n\n+ (NSUInteger)hyb_userMemory {\n  return [self _getSysInfo:HW_USERMEM];\n}\n\n+ (NSNumber *)hyb_totalDiskSpace {\n  NSDictionary *fattributes = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:nil];\n  return [fattributes objectForKey:NSFileSystemSize];\n}\n\n+ (NSNumber *)hyb_freeDiskSpace {\n  NSDictionary *fattributes = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:nil];\n  return [fattributes objectForKey:NSFileSystemFreeSize];\n}\n\n+ (NSString *)hyb_macAddress {\n  int                 mib[6];\n  size_t              len;\n  char                *buf;\n  unsigned char       *ptr;\n  struct if_msghdr    *ifm;\n  struct sockaddr_dl  *sdl;\n  \n  mib[0] = CTL_NET;\n  mib[1] = AF_ROUTE;\n  mib[2] = 0;\n  mib[3] = AF_LINK;\n  mib[4] = NET_RT_IFLIST;\n  \n  if((mib[5] = if_nametoindex(\"en0\")) == 0) {\n    printf(\"Error: if_nametoindex error\\n\");\n    return NULL;\n  }\n  \n  if(sysctl(mib, 6, NULL, &len, NULL, 0) < 0) {\n    printf(\"Error: sysctl, take 1\\n\");\n    return NULL;\n  }\n  \n  if((buf = malloc(len)) == NULL) {\n    printf(\"Could not allocate memory. Rrror!\\n\");\n    return NULL;\n  }\n  \n  if(sysctl(mib, 6, buf, &len, NULL, 0) < 0) {\n    printf(\"Error: sysctl, take 2\");\n    return NULL;\n  }\n  \n  ifm = (struct if_msghdr *)buf;\n  sdl = (struct sockaddr_dl *)(ifm + 1);\n  ptr = (unsigned char *)LLADDR(sdl);\n  NSString *outstring = [NSString stringWithFormat:@\"%02X:%02X:%02X:%02X:%02X:%02X\",\n                         *ptr, *(ptr+1), *(ptr+2), *(ptr+3), *(ptr+4), *(ptr+5)];\n  free(buf);\n  \n  return outstring;\n}\n\n+ (NSString *)hyb_uniqueIdentifier {\n  NSString *uuid;\n  if([[UIDevice currentDevice] respondsToSelector:@selector(identifierForVendor)]) {\n    uuid = [[[UIDevice currentDevice] identifierForVendor] UUIDString];\n  } else {\n    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];\n    uuid = [defaults objectForKey:BFUniqueIdentifierDefaultsKey];\n    if (!uuid) {\n      uuid = [self _generateUUID];\n      [defaults setObject:uuid forKey:BFUniqueIdentifierDefaultsKey];\n      [defaults synchronize];\n    }\n  }\n  return uuid;\n}\n\n\n#pragma mark - Private\n+ (NSUInteger)_getSysInfo:(uint)typeSpecifier {\n  size_t size = sizeof(int);\n  int results;\n  int mib[2] = {CTL_HW, typeSpecifier};\n  sysctl(mib, 2, &results, &size, NULL, 0);\n  return (NSUInteger) results;\n}\n\n+ (NSString *)_generateUUID {\n  CFUUIDRef theUUID = CFUUIDCreate(NULL);\n  CFStringRef string = CFUUIDCreateString(NULL, theUUID);\n  CFRelease(theUUID);\n  return (__bridge_transfer NSString *)string;\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIGestureRecognizer+HYBHelperBlockKit.h",
    "content": "//\n//  UIGestureRecognizer+HYBHelperBlockKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"HYBCommonKit.h\"\n\n@interface UIGestureRecognizer (HYBHelperBlockKit)\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tMake all gestures support block callback.\n *  This will support all kinds of gestures.\n */\n@property (nonatomic, copy) HYBGestureBlock hyb_onGesture;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tMake tap gesture support block callback.\n */\n@property (nonatomic, copy) HYBTapGestureBlock hyb_onTaped;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tMake long press gesture support block callback.\n */\n@property (nonatomic, copy) HYBLongGestureBlock hyb_onLongPressed;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIGestureRecognizer+HYBHelperBlockKit.m",
    "content": "//\n//  UIGestureRecognizer+HYBHelperBlockKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"UIGestureRecognizer+HYBHelperBlockKit.h\"\n#import <objc/runtime.h>\n\nstatic const void *s_hyb_gestureKey = \"s_hyb_gestureKey\";\nstatic const void *s_hyb_tap_gestureKey = \"s_hyb_tap_gestureKey\";\nstatic const void *s_hyb_long_gestureKey = \"s_hyb_long_gestureKey\";\n\n@implementation UIGestureRecognizer (HYBHelperBlockKit)\n\n- (HYBGestureBlock)hyb_onGesture {\n  return objc_getAssociatedObject(self, s_hyb_gestureKey);\n}\n\n- (void)setHyb_onGesture:(HYBGestureBlock)hyb_onGesture {\n  objc_setAssociatedObject(self,\n                           s_hyb_gestureKey,\n                           hyb_onGesture,\n                           OBJC_ASSOCIATION_COPY_NONATOMIC);\n \n  [self removeTarget:self action:@selector(hyb_private_onGesture:)];\n  \n  if (hyb_onGesture) {\n    [self addTarget:self action:@selector(hyb_private_onGesture:)];\n  }\n}\n\n- (HYBTapGestureBlock)hyb_onTaped {\n  return objc_getAssociatedObject(self, s_hyb_tap_gestureKey);\n}\n\n- (void)setHyb_onTaped:(HYBTapGestureBlock)hyb_onTaped {\n  objc_setAssociatedObject(self,\n                           s_hyb_tap_gestureKey,\n                           hyb_onTaped,\n                           OBJC_ASSOCIATION_COPY_NONATOMIC);\n  \n  [self removeTarget:self action:@selector(hyb_private_onTaped:)];\n  \n  if (hyb_onTaped) {\n    [self addTarget:self action:@selector(hyb_private_onTaped:)];\n  }\n}\n\n- (HYBLongGestureBlock)hyb_onLongPressed {\n  return objc_getAssociatedObject(self, s_hyb_long_gestureKey);\n}\n\n- (void)setHyb_onLongPressed:(HYBLongGestureBlock)hyb_onLongPressed {\n  objc_setAssociatedObject(self,\n                           s_hyb_long_gestureKey,\n                           hyb_onLongPressed,\n                           OBJC_ASSOCIATION_COPY_NONATOMIC);\n  \n  [self removeTarget:self action:@selector(hyb_private_onLongPressed:)];\n  \n  if (hyb_onLongPressed) {\n    [self addTarget:self action:@selector(hyb_private_onLongPressed:)];\n  }\n}\n\n#pragma mark - Private\n- (void)hyb_private_onGesture:(UIGestureRecognizer *)sender {\n  HYBGestureBlock block = [self hyb_onGesture];\n  \n  if (block) {\n    block(sender);\n  }\n}\n\n- (void)hyb_private_onTaped:(UITapGestureRecognizer *)sender {\n  HYBTapGestureBlock block = [self hyb_onTaped];\n  \n  if (block) {\n    block(sender);\n  }\n}\n\n- (void)hyb_private_onLongPressed:(UILongPressGestureRecognizer *)sender {\n  HYBLongGestureBlock block = [self hyb_onLongPressed];\n  \n  if (block) {\n    block(sender);\n  }\n}\n\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIImageView+HYBMasonryKit.h",
    "content": "//\n//  UIImageView+HYBMasonryKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/6.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"HYBHelperKit.h\"\n\n@interface UIImageView (HYBMasonryKit)\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a default image view with scale to fill content mode\n *\n *\t@return Instance of UIImageView.\n */\n+ (instancetype)hyb_imageView;\n\n+ (instancetype)hyb_imageViewWithSuperView:(UIView *)superView\n                               constraints:(HYBConstraintMaker)constraints;\n+ (instancetype)hyb_imageViewWithSuperView:(UIView *)superView\n                           constraints:(HYBConstraintMaker)constraints\n                               onTaped:(HYBTapGestureBlock)onTaped;\n\n+ (instancetype)hyb_imageViewWithImage:(id)image\n                             superView:(UIView *)superView\n                           constraints:(HYBConstraintMaker)constraints;\n\n+ (instancetype)hyb_imageViewWithImage:(id)image\n                             superView:(UIView *)superView\n                           constraints:(HYBConstraintMaker)constraints\n                               onTaped:(HYBTapGestureBlock)onTaped;\n\n+ (instancetype)hyb_imageViewWithImage:(id)image\n                              isCircle:(BOOL)isCircle\n                             superView:(UIView *)superView\n                           constraints:(HYBConstraintMaker)constraints\n                               onTaped:(HYBTapGestureBlock)onTaped;\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIImageView+HYBMasonryKit.m",
    "content": "//\n//  UIImageView+HYBMasonryKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/6.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"UIImageView+HYBMasonryKit.h\"\n\n@implementation UIImageView (HYBMasonryKit)\n\n+ (instancetype)hyb_imageView {\n  return [self hyb_imageViewWithSuperView:nil constraints:nil];\n}\n\n+ (instancetype)hyb_imageViewWithSuperView:(UIView *)superView\n                               constraints:(HYBConstraintMaker)constraints {\n  return [self hyb_imageViewWithSuperView:superView\n                              constraints:constraints\n                                  onTaped:nil];\n}\n\n+ (instancetype)hyb_imageViewWithSuperView:(UIView *)superView\n                               constraints:(HYBConstraintMaker)constraints\n                                   onTaped:(HYBTapGestureBlock)onTaped {\n  return [self hyb_imageViewWithImage:nil\n                             isCircle:NO\n                            superView:superView\n                          constraints:constraints\n                              onTaped:onTaped];\n}\n\n+ (instancetype)hyb_imageViewWithImage:(id)image\n                             superView:(UIView *)superView\n                           constraints:(HYBConstraintMaker)constraints {\n  return [self hyb_imageViewWithImage:image\n                            superView:superView\n                          constraints:constraints\n                              onTaped:nil];\n}\n\n+ (instancetype)hyb_imageViewWithImage:(id)image\n                             superView:(UIView *)superView\n                           constraints:(HYBConstraintMaker)constraints\n                               onTaped:(HYBTapGestureBlock)onTaped {\n  return [self hyb_imageViewWithImage:image\n                             isCircle:NO\n                            superView:superView\n                          constraints:constraints\n                              onTaped:onTaped];\n}\n\n+ (instancetype)hyb_imageViewWithImage:(id)image\n                              isCircle:(BOOL)isCircle\n                             superView:(UIView *)superView\n                           constraints:(HYBConstraintMaker)constraints\n                               onTaped:(HYBTapGestureBlock)onTaped {\n  UIImageView *imgView = [[UIImageView alloc] init];\n  if (image != nil) {\n    if ([image isKindOfClass:[NSString class]]) {\n      imgView.image = kImage(image);\n    } else {\n      imgView.image = image;\n    }\n  }\n  imgView.contentMode = UIViewContentModeScaleToFill;\n  \n  [superView addSubview:imgView];\n  \n  if (onTaped) {\n    [imgView hyb_addTapGestureWithCallback:onTaped];\n  }\n  \n  if (constraints && superView) {\n      [imgView mas_makeConstraints:^(MASConstraintMaker *make) {\n        constraints(make);\n      }];\n  }\n  \n  if (isCircle) {\n    [imgView performSelector:@selector(updateLayerToCircle:)\n                  withObject:imgView\n                  afterDelay:0.0];\n  }\n  \n  return imgView;\n}\n\n- (void)updateLayerToCircle:(UIImageView *)imgView {\n  imgView.layer.cornerRadius = imgView.hyb_width / 2.0;\n  imgView.layer.masksToBounds = YES;\n  imgView.clipsToBounds = YES;\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UILabel+HYBMasonryKit.h",
    "content": "//\n//  UILabel+HYBMasonryKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/6.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"HYBHelperKit.h\"\n\n@interface UILabel (HYBMasonryKit)\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tBy default, create a label which it has black text color, and the font size.\n *  Label will be aligned to left, and set to only one line, no constraints.\n *\n *\t@return Instance of UILabel.\n */\n+ (instancetype)hyb_labelWithFont:(CGFloat)font;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tBy default, create a label which it has black text color, and the font size.\n *  Label will be aligned to left, and set to only one line, no constraints.\n *\n *\n *\t@param text\tThe default text\n *\t@param font\tThe font size\n *\n *\t@return Instance of UILabel.\n */\n+ (instancetype)hyb_labelWithText:(NSString *)text\n                             font:(CGFloat)font;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a label with font, super view and constraints.\n *\n *\t@param font\t\t\t\t  The font size of UILabel.\n *\t@param superView\t\tThe label's super view.\n *\t@param constraints\tThe constraints added to the label.\n *\n *\t@return The instance of UILabel.\n */\n+ (instancetype)hyb_labelWithFont:(CGFloat)font\n                        superView:(UIView *)superView\n                      constraints:(HYBConstraintMaker)constraints;\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a label with text, font size, super view and constraints.\n *  It will only have one line.\n *\n *\t@param text\t\t\t\tThe default text\n *\t@param font\t\t\t\tThe font size\n *\t@param superView\t\tThe super view of label.\n *\t@param constraints\tThe constraints.\n *\n *\t@return Instance of UILabel.\n */\n+ (instancetype)hyb_labelWithText:(NSString *)text\n                             font:(CGFloat)font\n                        superView:(UIView *)superView\n                      constraints:(HYBConstraintMaker)constraints;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a label with text, font size, super view and constraints.\n *\n *\t@param text\t\t\t\tThe default text\n *\t@param font\t\t\t\tThe font size\n *  @param lines      How many lines.\n *\t@param superView\t\tThe super view of label.\n *\t@param constraints\tThe constraints.\n *\n *\t@return Instance of UILabel.\n */\n+ (instancetype)hyb_labelWithText:(NSString *)text\n                             font:(CGFloat)font\n                            lines:(NSInteger)lines\n                        superView:(UIView *)superView\n                      constraints:(HYBConstraintMaker)constraints;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UILabel+HYBMasonryKit.m",
    "content": "//\n//  UILabel+HYBMasonryKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/6.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"UILabel+HYBMasonryKit.h\"\n\n@implementation UILabel (HYBMasonryKit)\n\n+ (instancetype)hyb_labelWithFont:(CGFloat)font {\n  return [self hyb_labelWithText:nil font:font];\n}\n\n+ (instancetype)hyb_labelWithText:(NSString *)text font:(CGFloat)font {\n  return [self hyb_labelWithText:text font:font superView:nil constraints:nil];\n}\n\n+ (instancetype)hyb_labelWithText:(NSString *)text\n                             font:(CGFloat)font\n                        superView:(UIView *)superView\n                      constraints:(HYBConstraintMaker)constraints {\n  return [self hyb_labelWithText:text\n                            font:font\n                           lines:1\n                       superView:superView\n                     constraints:constraints];\n}\n\n+ (instancetype)hyb_labelWithFont:(CGFloat)font\n                        superView:(UIView *)superView\n                      constraints:(HYBConstraintMaker)constraints {\n  return [self hyb_labelWithText:nil\n                            font:font\n                       superView:superView\n                     constraints:constraints];\n}\n\n+ (instancetype)hyb_labelWithText:(NSString *)text\n                             font:(CGFloat)font\n                            lines:(NSInteger)lines\n                        superView:(UIView *)superView\n                      constraints:(HYBConstraintMaker)constraints {\n  UILabel *label = [[UILabel alloc] init];\n  label.text = text;\n  label.font = kFontWithSize(font);\n  label.textAlignment = NSTextAlignmentLeft;\n  label.textColor = kBlackColor;\n  label.backgroundColor = kClearColor;\n  label.numberOfLines = lines;\n  \n  if (lines <= 0) {\n    label.lineBreakMode = NSLineBreakByWordWrapping;\n  } else {\n    label.lineBreakMode = NSLineBreakByTruncatingTail;\n  }\n  \n  [superView addSubview:label];\n  \n  if (superView && constraints) {\n    [label mas_makeConstraints:^(MASConstraintMaker *make) {\n      constraints(make);\n    }];\n  }\n  \n  return label;\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIScrollView+HYBMasonryKit.h",
    "content": "//\n//  UIScrollView+HYBMasonryKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/6.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"HYBHelperKit.h\"\n\n@interface UIScrollView (HYBMasonryKit)\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a scroll view with delegate, without layout.\n *\n *\t@param delegate\tThe scroll view delegate\n *\n *\t@return Instance of UIScrollView.\n */\n+ (instancetype)hyb_scrollViewWithDelegate:(id)delegate;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a scroll view with delegate and superview, and will make it \n *  hold it's super view's edges.\n *\n *\t@param delegate\tThe scroll view delegate\n *\t@param superView\tThe scroll view's super view.\n *\n *\t@return Instance of UIScrollView.\n */\n+ (instancetype)hyb_scrollViewWithDelegate:(id)delegate\n                                 superView:(UIView *)superView;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a scroll view with delegate, superview, and add constraints to it.\n *  If super view is nil, constraints will be ignored.\n *\n *\t@param delegate\t\tThe scroll view delegate\n *\t@param superView\t\tThe scroll view's super view.\n *\t@param constraints\tAdd constraints to the scroll view.\n *\n *\t@return Instance of UIScrollView.\n */\n+ (instancetype)hyb_scrollViewWithDelegate:(id)delegate\n                                 superView:(UIView *)superView\n                               constraints:(HYBConstraintMaker)constraints;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIScrollView+HYBMasonryKit.m",
    "content": "//\n//  UIScrollView+HYBMasonryKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/6.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"UIScrollView+HYBMasonryKit.h\"\n\n@implementation UIScrollView (HYBMasonryKit)\n\n+ (instancetype)hyb_scrollViewWithDelegate:(id)delegate {\n  return [self hyb_scrollViewWithDelegate:delegate superView:nil];\n}\n\n+ (instancetype)hyb_scrollViewWithDelegate:(id)delegate superView:(UIView *)superView {\n  if (superView == nil) {\n    return [self hyb_scrollViewWithDelegate:delegate superView:superView constraints:nil];\n  }\n  \n  return [self hyb_scrollViewWithDelegate:delegate superView:superView constraints:^(MASConstraintMaker *make) {\n    make.edges.mas_equalTo(superView);\n  }];\n}\n\n+ (instancetype)hyb_scrollViewWithDelegate:(id)delegate\n                                 superView:(UIView *)superView\n                               constraints:(HYBConstraintMaker)constraints {\n  UIScrollView *scrollView = [[UIScrollView alloc] init];\n  [superView addSubview:scrollView];\n  \n  if (superView && constraints) {\n    [scrollView mas_makeConstraints:^(MASConstraintMaker *make) {\n      constraints(make);\n    }];\n  }\n  \n  scrollView.delegate = delegate;\n  scrollView.pagingEnabled = YES;\n  scrollView.showsHorizontalScrollIndicator = YES;\n  scrollView.showsVerticalScrollIndicator = NO;\n  \n  return scrollView;\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UITableView+HYBMasonryKit.h",
    "content": "//\n//  UITableView+HYBMasonryKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"HYBCommonKit.h\"\n#import \"HYBHelperBlocksKit.h\"\n\n@interface UITableView (HYBMasonryKit)\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a table view, if superview is not nil, it will be added constraints\n *  and it's edge will be always equal to super view.\n *\n *\t@param superView\tThe super view for table view.\n *\n *\t@return The table view instance.\n */\n+ (instancetype)hyb_tableViewWithSuperview:(UIView *)superView;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a table view, if superview is nil, constraints will be ignored.\n *\n *\t@param superView\t\tThe super view for table view.\n *\t@param constraints\tMake constraints for table view.\n *\n *\t@return The table view instance.\n */\n+ (instancetype)hyb_tableViewWithSuperview:(UIView *)superView\n                               constraints:(HYBConstraintMaker)constraints;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a table view, if superview is not nil, it will be added constraints\n *  and it's edge will be always equal to super view.\n *\n *\t@param superView\tThe super view for table view.\n *\t@param delegate   Delgate and dataSource.\n *\n *\t@return The table view instance.\n */\n+ (instancetype)hyb_tableViewWithSuperview:(UIView *)superView delegate:(id)delegate;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a table view, if superview is nil, constraints will be ignored.\n *\n *\t@param superView\t\tThe super view for table view.\n *\t@param delegate     Delgate and dataSource.\n *\t@param constraints\tMake constraints for table view.\n *\n *\t@return The table view instance.\n */\n+ (instancetype)hyb_tableViewWithSuperview:(UIView *)superView\n                                  delegate:(id)delegate\n                               constraints:(HYBConstraintMaker)constraints;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a table view, if superview is nil, constraints will be ignored. Can \n *  specify table view style.\n *\n *\t@param superView\t\tThe super view for table view.\n *\t@param delegate     Delgate and dataSource.\n *\t@param style        @see UITableViewStyle.\n *\t@param constraints\tMake constraints for table view.\n *\n *\t@return The table view instance.\n */\n+ (instancetype)hyb_tableViewWithSuperview:(UIView *)superView\n                                  delegate:(id)delegate\n                                     style:(UITableViewStyle)style\n                               constraints:(HYBConstraintMaker)constraints;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UITableView+HYBMasonryKit.m",
    "content": "//\n//  UITableView+HYBMasonryKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"UITableView+HYBMasonryKit.h\"\n\n@implementation UITableView (HYBMasonryKit)\n\n+ (instancetype)hyb_tableViewWithSuperview:(UIView *)superView {\n  return [self hyb_tableViewWithSuperview:superView delegate:nil];\n}\n\n+ (instancetype)hyb_tableViewWithSuperview:(UIView *)superView\n                               constraints:(HYBConstraintMaker)constraints {\n  return [self hyb_tableViewWithSuperview:superView delegate:nil constraints:constraints];\n}\n\n+ (instancetype)hyb_tableViewWithSuperview:(UIView *)superView delegate:(id)delegate {\n  return [self hyb_tableViewWithSuperview:superView\n                                 delegate:delegate\n                              constraints:^(MASConstraintMaker *make) {\n                                if (superView) {\n                                  make.edges.mas_equalTo(superView);\n                                }\n                              }];\n}\n\n+ (instancetype)hyb_tableViewWithSuperview:(UIView *)superView\n                                  delegate:(id)delegate\n                               constraints:(HYBConstraintMaker)constraints {\n  return [self hyb_tableViewWithSuperview:superView\n                                 delegate:delegate\n                                    style:UITableViewStylePlain\n                              constraints:constraints];\n}\n\n+ (instancetype)hyb_tableViewWithSuperview:(UIView *)superView\n                                  delegate:(id)delegate\n                                     style:(UITableViewStyle)style\n                               constraints:(HYBConstraintMaker)constraints {\n  UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectZero style:style];\n  tableView.delegate = delegate;\n  tableView.dataSource = delegate;\n  tableView.separatorStyle = UITableViewCellSeparatorStyleNone;\n  \n  [superView addSubview:tableView];\n  \n  if (superView && constraints) {\n    [tableView mas_makeConstraints:^(MASConstraintMaker *make) {\n      constraints(make);\n    }];\n  }\n  \n  return tableView;\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UITextField+HYBMasonryKit.h",
    "content": "//\n//  UITextField+HYBMasonryKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"HYBHelperBlocksKit.h\"\n\n@interface UITextField (HYBMasonryKit)\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tIf you want to specify a left margin before cursor, just define this.\n *\n *  @default The default value is 8px.\n */\n@property (nonatomic, assign) CGFloat hyb_leftMarginOfCursor;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a text field with holder, super view and constraints.\n *\n *\t@param holder\t\t\t  The place holder.\n *\t@param superView\t\tThe super view of created text field.\n *\t@param constraints\tAdd constraints to the text field, if superview is nil, it will be ignored.\n *\n *\t@return The text field instance.\n */\n+ (instancetype)hyb_textFieldWithHolder:(NSString *)holder\n                              superView:(UIView *)superView\n                            constraints:(HYBConstraintMaker)constraints;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a text field with holder, super view and constraints.\n *\n *\t@param holder\t\t\t  The place holder.\n *\t@param delegate\t\t\tThe text field delegate.\n *\t@param superView\t\tThe super view of created text field.\n *\t@param constraints\tAdd constraints to the text field, if superview is nil, it will be ignored.\n *\n *\t@return The text field instance.\n */\n+ (UITextField *)hyb_textFieldWithHolder:(NSString *)holder\n                                delegate:(id<UITextFieldDelegate>)delegate\n                               superView:(UIView *)superView\n                             constraints:(HYBConstraintMaker)constraints;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a text field with holder, text, super view and constraints.\n *\n *\t@param holder\t\t\t  The place holder.\n *\t@param text\t\t     \tThe text field default text.\n *\t@param superView\t\tThe super view of created text field.\n *\t@param constraints\tAdd constraints to the text field, if superview is nil, it will be ignored.\n *\n *\t@return The text field instance.\n */\n+ (UITextField *)hyb_textFieldWithHolder:(NSString *)holder\n                                    text:(NSString *)text\n                               superView:(UIView *)superView\n                             constraints:(HYBConstraintMaker)constraints;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a text field with holder, text, super view and constraints.\n *\n *\t@param holder\t\t\t  The place holder.\n *\t@param text\t\t     \tThe text field default text.\n *\t@param delegate\t\t\tThe text field delegate.\n *\t@param superView\t\tThe super view of created text field.\n *\t@param constraints\tAdd constraints to the text field, if superview is nil, it will be ignored.\n *\n *\t@return The text field instance.\n */\n+ (UITextField *)hyb_textFieldWithHolder:(NSString *)holder\n                                    text:(NSString *)text\n                                delegate:(id<UITextFieldDelegate>)delegate\n                               superView:(UIView *)superView\n                             constraints:(HYBConstraintMaker)constraints;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UITextField+HYBMasonryKit.m",
    "content": "//\n//  UITextField+HYBMasonryKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"UITextField+HYBMasonryKit.h\"\n#import <objc/runtime.h>\n#import \"UIView+HYBHelperKitUIKit.h\"\n\nstatic const void *s_leftMarginOfCursorKey = \"s_leftMarginOfCursor\";\n\n@implementation UITextField (HYBMasonryKit)\n\n- (CGFloat)hyb_leftMarginOfCursor {\n  NSNumber *number = objc_getAssociatedObject(self, s_leftMarginOfCursorKey);\n  \n  if ([number respondsToSelector:@selector(floatValue)]) {\n    return [number floatValue];\n  }\n  \n  return 8.0;\n}\n\n- (void)setHyb_leftMarginOfCursor:(CGFloat)hyb_leftMarginOfCursor {\n  objc_setAssociatedObject(self,\n                           s_leftMarginOfCursorKey,\n                           @(hyb_leftMarginOfCursor),\n                           OBJC_ASSOCIATION_RETAIN_NONATOMIC);\n  \n  if (self.leftView) {\n    self.leftView.hyb_width = hyb_leftMarginOfCursor;\n  }\n}\n\n+ (instancetype)hyb_textFieldWithHolder:(NSString *)holder\n                              superView:(UIView *)superView\n                            constraints:(HYBConstraintMaker)constraints {\n  return [self hyb_textFieldWithHolder:holder\n                                  text:nil\n                             superView:superView\n                           constraints:constraints];\n}\n\n+ (UITextField *)hyb_textFieldWithHolder:(NSString *)holder\n                                    text:(NSString *)text\n                               superView:(UIView *)superView\n                             constraints:(HYBConstraintMaker)constraints {\n  return [self hyb_textFieldWithHolder:holder\n                                  text:text\n                              delegate:nil\n                             superView:superView\n                           constraints:constraints];\n}\n\n+ (UITextField *)hyb_textFieldWithHolder:(NSString *)holder\n                                delegate:(id<UITextFieldDelegate>)delegate\n                               superView:(UIView *)superView\n                             constraints:(HYBConstraintMaker)constraints {\n  return [self hyb_textFieldWithHolder:holder\n                                  text:nil\n                              delegate:delegate\n                             superView:superView\n                           constraints:constraints];\n}\n\n+ (UITextField *)hyb_textFieldWithHolder:(NSString *)holder\n                                    text:(NSString *)text\n                                delegate:(id<UITextFieldDelegate>)delegate\n                               superView:(UIView *)superView\n                             constraints:(HYBConstraintMaker)constraints {\n  UITextField *textField = [[UITextField alloc] init];\n  textField.borderStyle = UITextBorderStyleNone;\n  textField.leftView = [[UIView alloc] init];\n  textField.leftView.backgroundColor = [UIColor clearColor];\n  textField.leftView.hyb_width = textField.hyb_leftMarginOfCursor;\n  textField.autocapitalizationType = UITextAutocapitalizationTypeNone;\n  textField.autocorrectionType = UITextAutocorrectionTypeNo;\n  textField.spellCheckingType = UITextSpellCheckingTypeNo;\n  textField.delegate = delegate;\n  [superView addSubview:textField];\n  \n  textField.placeholder = holder;\n  textField.text = text;\n  \n  if (superView && constraints) {\n    [textField mas_makeConstraints:^(MASConstraintMaker *make) {\n      constraints(make);\n    }];\n  }\n  \n  return textField;\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIView+HYBHelperBlockKit.h",
    "content": "//\n//  UIView+HYBHelperBlockKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/6.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"HYBhelperkit.h\"\n\n@interface UIView (HYBHelperBlockKit)\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *  The tap gesture getter. @see hyb_addTapGestureWithCallback\n */\n@property (nonatomic, strong, readonly) UITapGestureRecognizer *hyb_tapGesture;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tThe long press gesture getter, @see hyb_addLongGestureWithCallback\n */\n@property (nonatomic, strong, readonly) UILongPressGestureRecognizer *hyb_longGesure;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tAdd a tap gesture with callback. It will automatically open userInterface to YES.\n *\n *\t@param onTaped\tThe callback block when taped.\n */\n- (void)hyb_addTapGestureWithCallback:(HYBTapGestureBlock)onTaped;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tAdd long press gesture with callback. It will automatically open userInterface to YES.\n *\n *\t@param onLongPressed\tThe long press callback when long pressed.\n */\n- (void)hyb_addLongGestureWithCallback:(HYBLongGestureBlock)onLongPressed;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIView+HYBHelperBlockKit.m",
    "content": "//\n//  UIView+HYBHelperBlockKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/6.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"UIView+HYBHelperBlockKit.h\"\n#import <objc/runtime.h>\n\nstatic const void *s_hyb_tapGestureKey = \"s_hyb_tapGestureKey\";\nstatic const void *s_hyb_longGestureKey = \"s_hyb_longGestureKey\";\n\n@implementation UIView (HYBHelperBlockKit)\n\n- (UITapGestureRecognizer *)hyb_tapGesture {\n  return objc_getAssociatedObject(self, s_hyb_tapGestureKey);\n}\n\n- (UILongPressGestureRecognizer *)hyb_longGesure {\n  return objc_getAssociatedObject(self, s_hyb_longGestureKey);\n}\n\n- (void)hyb_addTapGestureWithCallback:(HYBTapGestureBlock)onTaped {\n  self.userInteractionEnabled = YES;\n  \n  UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init];\n  tap.hyb_onTaped = onTaped;\n  [self addGestureRecognizer:tap];\n  \n  objc_setAssociatedObject(self,\n                           s_hyb_tapGestureKey,\n                           tap,\n                           OBJC_ASSOCIATION_RETAIN_NONATOMIC);\n}\n\n- (void)hyb_addLongGestureWithCallback:(HYBLongGestureBlock)onLongPressed {\n  self.userInteractionEnabled = YES;\n  \n  UILongPressGestureRecognizer *gesture = [[UILongPressGestureRecognizer alloc] init];\n  gesture.hyb_onLongPressed = onLongPressed;\n  [self addGestureRecognizer:gesture];\n  \n  objc_setAssociatedObject(self,\n                           s_hyb_longGestureKey,\n                           gesture,\n                           OBJC_ASSOCIATION_COPY_NONATOMIC);\n}\n\n#pragma mark - Private\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIView+HYBHelperKitUIKit.h",
    "content": "//\n//  UIView+HYBHelperKitUIKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n@interface UIView (HYBHelperKitUIKit)\n\n#pragma mark - Convenience frame api\n/**\n * view.frame.origin.x\n */\n@property (nonatomic, assign) CGFloat hyb_originX;\n\n/**\n * view.frame.origin.y\n */\n@property (nonatomic, assign) CGFloat hyb_originY;\n\n/**\n * view.frame.origin\n */\n@property (nonatomic, assign) CGPoint hyb_origin;\n\n/**\n * view.center.x\n */\n@property (nonatomic, assign) CGFloat hyb_centerX;\n\n/**\n * view.center.y\n */\n@property (nonatomic, assign) CGFloat hyb_centerY;\n\n/**\n * view.center\n */\n@property (nonatomic, assign) CGPoint hyb_center;\n\n/**\n * view.frame.size.width\n */\n@property (nonatomic, assign) CGFloat hyb_width;\n\n/**\n * view.frame.size.height\n */\n@property (nonatomic, assign) CGFloat hyb_height;\n\n/**\n * view.frame.size\n */\n@property (nonatomic, assign) CGSize  hyb_size;\n\n/**\n * view.frame.size.height + view.frame.origin.y\n */\n@property (nonatomic, assign) CGFloat hyb_bottomY;\n\n/**\n * view.frame.size.width + view.frame.origin.x\n */\n@property (nonatomic, assign) CGFloat hyb_rightX;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIView+HYBHelperKitUIKit.m",
    "content": "//\n//  UIView+HYBHelperKitUIKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"UIView+HYBHelperKitUIKit.h\"\n\n@implementation UIView (HYBHelperKitUIKit)\n\n- (void)setHyb_origin:(CGPoint)hyb_origin {\n  CGRect frame = self.frame;\n  frame.origin = hyb_origin;\n  self.frame = frame;\n}\n\n- (CGPoint)hyb_origin {\n  return self.frame.origin;\n}\n\n- (void)setHyb_originX:(CGFloat)hyb_originX {\n  [self setHyb_origin:CGPointMake(hyb_originX, self.hyb_originY)];\n}\n\n- (CGFloat)hyb_originX {\n  return self.hyb_origin.x;\n}\n\n- (void)setHyb_originY:(CGFloat)hyb_originY {\n  [self setHyb_origin:CGPointMake(self.hyb_originX, hyb_originY)];\n}\n\n- (CGFloat)hyb_originY {\n  return self.hyb_origin.y;\n}\n\n- (void)setHyb_center:(CGPoint)hyb_center {\n  self.center = hyb_center;\n}\n\n- (CGPoint)hyb_center {\n  return self.center;\n}\n\n- (void)setHyb_centerX:(CGFloat)hyb_centerX {\n  [self setHyb_center:CGPointMake(hyb_centerX, self.hyb_centerY)];\n}\n\n- (CGFloat)hyb_centerX {\n  return self.hyb_center.x;\n}\n\n- (void)setHyb_centerY:(CGFloat)hyb_centerY {\n  [self setHyb_center:CGPointMake(self.hyb_centerX, hyb_centerY)];\n}\n\n- (CGFloat)hyb_centerY {\n  return self.hyb_center.y;\n}\n\n- (void)setHyb_size:(CGSize)hyb_size {\n  CGRect frame = self.frame;\n  frame.size = hyb_size;\n  self.frame = frame;\n}\n\n- (CGSize)hyb_size {\n  return self.frame.size;\n}\n\n- (void)setHyb_width:(CGFloat)hyb_width {\n  self.hyb_size = CGSizeMake(hyb_width, self.hyb_height);\n}\n\n- (CGFloat)hyb_width {\n  return self.hyb_size.width;\n}\n\n- (void)setHyb_height:(CGFloat)hyb_height {\n  self.hyb_size = CGSizeMake(self.hyb_width, hyb_height);\n}\n\n- (CGFloat)hyb_height {\n  return self.hyb_size.height;\n}\n\n- (CGFloat)hyb_bottomY {\n  return self.hyb_originY + self.hyb_height;\n}\n\n- (void)setHyb_bottomY:(CGFloat)hyb_bottomY {\n  self.hyb_originY = hyb_bottomY - self.hyb_height;\n}\n\n- (CGFloat)hyb_rightX {\n  return self.hyb_originX + self.hyb_width;\n}\n\n- (void)setHyb_rightX:(CGFloat)hyb_rightX {\n  self.hyb_originX = hyb_rightX - self.hyb_width;\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIView+HYBMasonryKit.h",
    "content": "//\n//  UIView+HYBMasonryKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/6.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"HYBHelperKit.h\"\n\n@interface UIView (HYBMasonryKit)\n\n#pragma mark - Create view\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate an empty view with super view, if superView is not nil,\n *  it will be added constraints to the view which edges equal to superView.\n *\n *\t@param superView\tThe super view of created view.\n *\n *\t@return The view instance.\n */\n+ (instancetype)hyb_viewWithSuperView:(UIView *)superView;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate an empty view with super view, if superView is not nil,\n *  it will be added constraints to the view which edges equal to superView.\n *  When onTaped is not nil, tap gesture will be added to it.\n *\n *\t@param superView\tThe super view of created view.\n *  @param onTaped    The tap gesture callback.\n *\n *\t@return The view instance.\n */\n+ (instancetype)hyb_viewWithSuperView:(UIView *)superView\n                              onTaped:(HYBTapGestureBlock)onTaped;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate an empty view with super view, if superView is not nil,\n *  it will be added constraints to the view which edges equal to superView.\n *\n *\t@param superView\tThe super view of created view.\n *  @param constraints The added contraints of view.\n *\n *\t@return The view instance.\n */\n+ (instancetype)hyb_viewWithSuperView:(UIView *)superView\n                          constraints:(HYBConstraintMaker)constraints;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate an empty view with super view, if superView is not nil,\n *  it will be added constraints to the view which edges equal to superView.\n *  When onTaped is not nil, tap gesture will be added to it.\n *\n *\t@param superView\tThe super view of created view.\n *  @param constraints The added contraints of view.\n *  @param onTaped    The tap gesture callback.\n *\n *\t@return The view instance.\n */\n+ (instancetype)hyb_viewWithSuperView:(UIView *)superView\n                          constraints:(HYBConstraintMaker)constraints\n                              onTaped:(HYBTapGestureBlock)onTaped;\n\n#pragma mark - Horizontal Line\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tAdd a line to the view of top.\n *\n *\t@param toView\tThe view that needs to add a line.\n *\t@param height\tThe line height\n *\t@param color\tThe color of line.\n *\n *\t@return The instance of UILabel.\n */\n+ (instancetype)hyb_addTopLineToView:(UIView *)toView\n                                 height:(CGFloat)height\n                                  color:(UIColor *)color;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tAdd a line to the view of top and add a distance to top.\n *\n *\t@param toView\tThe view that needs to add a line.\n *  @param distance The distance to the top.\n *\t@param height\tThe line height\n *\t@param color\tThe color of line.\n *\n *\t@return The instance of UILabel.\n\n */\n+ (instancetype)hyb_addTopLineToView:(UIView *)toView\n                            distance:(CGFloat)distance\n                              height:(CGFloat)height\n                               color:(UIColor *)color;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tAdd a line to the view of bottom.\n *\n *\t@param toView\tThe view that needs to add a line.\n *\t@param height\tThe line height\n *\t@param color\tThe color of line.\n *\n *\t@return The instance of UILabel.\n */\n+ (instancetype)hyb_addBottomLineToView:(UIView *)toView\n                           height:(CGFloat)height\n                            color:(UIColor *)color;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tAdd a line to the view of bottom with a distance of top.\n *\n *\t@param toView\t\tThe view that needs to add a line.\n *\t@param distance\tThe distance to the top.\n *\t@param height\t\tThe line height.\n *\t@param color\t\tThe line's background color.\n *\n *\t@return The instance of UILabel.\n */\n+ (instancetype)hyb_addBottomLineToView:(UIView *)toView\n                               distance:(CGFloat)distance\n                                 height:(CGFloat)height\n                                  color:(UIColor *)color;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tAdd a line to the view of top with left and right padding.\n *\n *\t@param toView\t\t\t\tThe view that needs to add a line.\n *\t@param leftPadding\tThe padding of left.\n *\t@param rightPadding\tThe padding of right.\n *\t@param height\t\t\t\tThe line height.\n *\t@param color\t\t\t\tThe line's color.\n *\n *\t@return The instance of UILabel.\n */\n+ (instancetype)hyb_addTopLineToView:(UIView *)toView\n                            leftPadding:(CGFloat)leftPadding\n                           rightPadding:(CGFloat)rightPadding\n                                 height:(CGFloat)height\n                                  color:(UIColor *)color;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tAdd a line to the view of Bottom with left and right padding.\n *\n *\t@param toView\t\t\t\tThe view that needs to add a line.\n *\t@param leftPadding\tThe padding of left.\n *\t@param rightPadding\tThe padding of right.\n *\t@param height\t\t\t\tThe line height.\n *\t@param color\t\t\t\tThe line's color.\n *\n *\t@return The instance of UILabel.\n */\n+ (instancetype)hyb_addBottomLineToView:(UIView *)toView\n                      leftPadding:(CGFloat)leftPadding\n                     rightPadding:(CGFloat)rightPadding\n                           height:(CGFloat)height\n                            color:(UIColor *)color;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIView+HYBMasonryKit.m",
    "content": "//\n//  UIView+HYBMasonryKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/6.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"UIView+HYBMasonryKit.h\"\n\n@implementation UIView (HYBMasonryKit)\n\n+ (instancetype)hyb_viewWithSuperView:(UIView *)superView {\n  return [self hyb_viewWithSuperView:superView onTaped:nil];\n}\n\n+ (instancetype)hyb_viewWithSuperView:(UIView *)superView\n                              onTaped:(HYBTapGestureBlock)onTaped {\n  return [self hyb_viewWithSuperView:superView constraints:nil onTaped:onTaped];\n}\n\n+ (instancetype)hyb_viewWithSuperView:(UIView *)superView\n                          constraints:(HYBConstraintMaker)constraints {\n  return [self hyb_viewWithSuperView:superView constraints:constraints onTaped:nil];\n}\n\n+ (instancetype)hyb_viewWithSuperView:(UIView *)superView\n                          constraints:(HYBConstraintMaker)constraints\n                              onTaped:(HYBTapGestureBlock)onTaped {\n  UIView *view = [[[self class] alloc] init];\n  if (onTaped) {\n    [view hyb_addTapGestureWithCallback:onTaped];\n  }\n  \n  view.backgroundColor = kWhiteColor;\n  [superView addSubview:view];\n  \n  if (superView) {\n    if (constraints) {\n      [view mas_makeConstraints:^(MASConstraintMaker *make) {\n        constraints(make);\n      }];\n    } else {\n      [view mas_makeConstraints:^(MASConstraintMaker *make) {\n        make.edges.mas_equalTo(superView);\n      }];\n    }\n  }\n  \n  return view;\n}\n\n+ (instancetype)hyb_addTopLineToView:(UIView *)toView\n                              height:(CGFloat)height\n                               color:(UIColor *)color {\n  return [self hyb_addTopLineToView:toView\n                        leftPadding:0\n                       rightPadding:0\n                             height:height\n                              color:color];\n}\n\n+ (instancetype)hyb_addTopLineToView:(UIView *)toView\n                            distance:(CGFloat)distance\n                              height:(CGFloat)height\n                               color:(UIColor *)color {\n  return [self hyb_private_addLineToView:toView\n                                   isTop:YES\n                                distance:distance\n                             leftPadding:0\n                            rightPadding:0\n                                  height:height\n                                   color:color];\n}\n\n+ (instancetype)hyb_addTopLineToView:(UIView *)toView\n                         leftPadding:(CGFloat)leftPadding\n                        rightPadding:(CGFloat)rightPadding\n                              height:(CGFloat)height\n                               color:(UIColor *)color {\n  return [self hyb_private_addLineToView:toView\n                                   isTop:YES\n                                distance:0\n                             leftPadding:leftPadding\n                            rightPadding:rightPadding\n                                  height:height\n                                   color:color];\n}\n\n+ (instancetype)hyb_addBottomLineToView:(UIView *)toView\n                                 height:(CGFloat)height\n                                  color:(UIColor *)color {\n  return [self hyb_addBottomLineToView:toView\n                           leftPadding:0\n                          rightPadding:0\n                                height:height\n                                 color:color];\n}\n\n+ (instancetype)hyb_addBottomLineToView:(UIView *)toView\n                               distance:(CGFloat)distance\n                                 height:(CGFloat)height\n                                  color:(UIColor *)color {\n  return [self hyb_private_addLineToView:toView\n                                   isTop:NO\n                                distance:distance\n                             leftPadding:0\n                            rightPadding:0\n                                  height:height\n                                   color:color];\n}\n\n+ (instancetype)hyb_addBottomLineToView:(UIView *)toView\n                            leftPadding:(CGFloat)leftPadding\n                           rightPadding:(CGFloat)rightPadding\n                                 height:(CGFloat)height\n                                  color:(UIColor *)color {\n  return [self hyb_private_addLineToView:toView\n                                   isTop:NO\n                                distance:0\n                             leftPadding:leftPadding\n                            rightPadding:rightPadding\n                                  height:height\n                                   color:color];\n}\n\n#pragma mark - Private\n+ (instancetype)hyb_private_addLineToView:(UIView *)toView\n                                    isTop:(BOOL)isTop\n                                 distance:(CGFloat)distance\n                              leftPadding:(CGFloat)leftPadding\n                             rightPadding:(CGFloat)rightPadding\n                                   height:(CGFloat)height\n                                    color:(UIColor *)color {\n  UIView *lineView = [[UIView alloc] init];\n  lineView.backgroundColor = color;\n  [toView addSubview:lineView];\n  \n  if (toView) {\n    [lineView mas_makeConstraints:^(MASConstraintMaker *make) {\n      make.left.mas_equalTo(leftPadding);\n      \n      if (isTop) {\n        make.top.mas_equalTo(distance);\n      } else {\n        make.bottom.mas_equalTo(distance);\n      }\n      \n      make.right.mas_equalTo(rightPadding);\n      make.height.mas_equalTo(height);\n    }];\n  }\n  \n  return lineView;\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIWebView+HYBMasonryKit.h",
    "content": "//\n//  HYBMasonryKit.h\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/9.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"HYBHelperKit.h\"\n\n@interface  UIWebView (HYBMasonryKit)\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a web view without layout.\n *\n *\t@param delegate\tUIWebViewDelegate\n *\n *\t@return The instance of UIWebView.\n */\n+ (instancetype)hyb_webViewWithDelegate:(id)delegate;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a web view with a super view and add edges as layout.\n *\n *\t@param delegate\tUIWebViewDelegate\n *\t@param superView\tThe super view of web view.\n *\n *\t@return The instance of UIWebView.\n */\n+ (instancetype)hyb_webViewWithDelegate:(id)delegate superView:(UIView *)superView;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a web view with a super view and add edges as layout.\n *\n *\t@param delegate\tUIWebViewDelegate\n *\t@param superView\tThe super view of web view.\n *\t@param edges\t\t\tThe edges inset.\n *\n *\t@return The instance of UIWebView.\n */\n+ (instancetype)hyb_webViewWithDelegate:(id)delegate\n                          superView:(UIView *)superView\n                              edges:(UIEdgeInsets)edges;\n\n/**\n *\t@author https://github.com/CoderJackyHuang\n *\n *\tCreate a web view with a super view and specify layout.\n *\n *\t@param delegate\tUIWebViewDelegate\n *\t@param superView\tThe super view of web view.\n *\t@param constraints\tThe constraints added to the web view.\n *\n *\t@return The instance of UIWebView.\n */\n+ (instancetype)hyb_webViewWithDelegate:(id)delegate\n                          superView:(UIView *)superView\n                        constraints:(HYBConstraintMaker)constraints;\n\n@end\n"
  },
  {
    "path": "HYBHelperKitSources/UIWebView+HYBMasonryKit.m",
    "content": "//\n//  HYBMasonryKit.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/7/9.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import \"UIWebView+HYBMasonryKit.h\"\n\n@implementation UIWebView (HYBMasonryKit)\n\n+ (instancetype)hyb_webViewWithDelegate:(id)delegate {\n  return [self hyb_webViewWithDelegate:delegate superView:nil];\n}\n\n+ (instancetype)hyb_webViewWithDelegate:(id)delegate superView:(UIView *)superView {\n  return [self hyb_webViewWithDelegate:delegate superView:superView edges:UIEdgeInsetsZero];\n}\n\n+ (instancetype)hyb_webViewWithDelegate:(id)delegate superView:(UIView *)superView edges:(UIEdgeInsets)edges {\n  return [self hyb_webViewWithDelegate:delegate superView:superView constraints:^(MASConstraintMaker *make) {\n    make.edges.mas_equalTo(superView).insets(edges);\n  }];\n}\n\n+ (instancetype)hyb_webViewWithDelegate:(id)delegate\n                              superView:(UIView *)superView\n                            constraints:(HYBConstraintMaker)constraints {\n  UIWebView *webView = [[UIWebView alloc] init];\n  \n  // 自适应屏幕大小进行缩放\n  webView.userInteractionEnabled = YES;\n  webView.delegate = delegate;\n  webView.scalesPageToFit = YES;\n  webView.scrollView.showsVerticalScrollIndicator = NO;\n [superView addSubview:webView];\n  \n  if (superView) {\n    if (constraints) {\n      [webView mas_makeConstraints:^(MASConstraintMaker *make) {\n        constraints(make);\n      }];\n    } else {\n      [webView mas_makeConstraints:^(MASConstraintMaker *make) {\n        make.edges.equalTo(superView);\n      }];\n    }\n  }\n  \n  return webView;\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitTests/ArrayTests.m",
    "content": "//\n//  ArrayTests.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <XCTest/XCTest.h>\n#import \"NSArray+HYBHelperKit.h\"\n#import \"NSMutableArray+HYBHelperKit.h\"\n\n@interface ArrayTests : XCTestCase\n\n@end\n\n@implementation ArrayTests\n\n- (void)setUp {\n    [super setUp];\n    // Put setup code here. This method is called before the invocation of each test method in the class.\n}\n\n- (void)tearDown {\n    // Put teardown code here. This method is called after the invocation of each test method in the class.\n    [super tearDown];\n}\n\n- (void)testExample {\n  NSArray *array = @[@\"sdf\", @\"s\"];\n  XCTAssert([[array hyb_objectAtIndex:0] isEqualToString:@\"sdf\"]);\n  XCTAssert([[array hyb_objectAtIndex:1] isEqualToString:@\"s\"]);\n  XCTAssert([array hyb_objectAtIndex:2] == nil);\n  \n  XCTAssert([array hyb_isContainsString:@\"sdf\"]);\n  XCTAssert([array hyb_isContainsString:@\"sdfs\"] == NO);\n  \n  NSMutableArray *anotherArray = [[NSMutableArray alloc] init];\n  XCTAssert([anotherArray hyb_addObject:nil] == NO);\n XCTAssert([anotherArray hyb_addObject:@\"sdf\"]);\n  \n  XCTAssert([anotherArray hyb_insertObject:@\"sdf2\" atIndex:0] == YES);\n  XCTAssert([anotherArray hyb_insertObject:@\"sdf5\" atIndex:anotherArray.count] == YES);\n  XCTAssert([anotherArray hyb_insertObject:@\"sdf1\" atIndex:anotherArray.count+1] == NO);\n  \n  XCTAssert([anotherArray hyb_removeObjectAtIndex:0] == YES);\n  XCTAssert([anotherArray hyb_removeObjectAtIndex:10] == NO);\n  XCTAssert([anotherArray hyb_removeObjectAtIndex:[anotherArray count]] == NO);\n}\n\n- (void)testPerformanceExample {\n    // This is an example of a performance test case.\n    [self measureBlock:^{\n        // Put the code you want to measure the time of here.\n    }];\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitTests/DictionaryTests.m",
    "content": "//\n//  DictionaryTests.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/30.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <XCTest/XCTest.h>\n#import \"NSDictionary+HYBHelperKit.h\"\n#import \"NSMutableDictionary+HYBHelperKit.h\"\n\n@interface DictionaryTests : XCTestCase\n\n@end\n\n@implementation DictionaryTests\n\n- (void)setUp {\n    [super setUp];\n    // Put setup code here. This method is called before the invocation of each test method in the class.\n}\n\n- (void)tearDown {\n    // Put teardown code here. This method is called after the invocation of each test method in the class.\n    [super tearDown];\n}\n\n- (void)testExample {\n  XCTAssertNotNil([@{@\"1\": @\"23\"} hyb_objectForKey:@\"1\"]);\n  XCTAssertEqual([@{@\"1\": @\"23\"} hyb_objectForKey:@\"1\"], @\"23\");\n  XCTAssertNil([@{@\"1\": @\"23\"} hyb_objectForKey:@\"23\"]);\n   XCTAssertNil([@{@\"1\": @\"23\"} hyb_objectForKey:@\"\"]);\n  XCTAssertNil([@{@\"1\": @\"23\"} hyb_objectForKey:nil]);\n  \n  NSDictionary *dict = @{@\"key\" : @\"value1\",\n                         @\"key1\" : @(2),\n                         @\"key2\" : @(1),\n                         @\"key3\" : @(YES),\n                         @\"key4\" : @(NO),\n                         @\"key5\" : @{@\"s\": @\"sdf\"},\n                         @\"key6\" : @[@1, @2, @3]};\n  XCTAssertEqual([dict hyb_integerForKey:@\"key\"], 0);\n  XCTAssertEqual([dict hyb_integerForKey:@\"key1\"], 2);\n  XCTAssertEqual([dict hyb_integerForKey:@\"key2\"], 1);\n  XCTAssertEqual([dict hyb_integerForKey:@\"key3\"], 1);\n  XCTAssertEqual([dict hyb_integerForKey:@\"key4\"], 0);\n  \n  XCTAssertEqual([dict hyb_numberForKey:@\"key\"], nil);\n  XCTAssertEqual([dict hyb_numberForKey:@\"key1\"], @(2));\n  XCTAssertEqual([dict hyb_numberForKey:@\"key2\"], @1);\n  XCTAssertEqual([dict hyb_numberForKey:@\"key3\"], @YES);\n  XCTAssertEqual([dict hyb_numberForKey:@\"key4\"], @NO);\n  \n  XCTAssertEqual([dict hyb_floatForKey:@\"key\"], 0);\n  XCTAssertEqual([dict hyb_floatForKey:@\"key1\"], 2);\n  XCTAssertEqual([dict hyb_floatForKey:@\"key2\"], 1);\n  XCTAssertEqual([dict hyb_floatForKey:@\"key3\"], 1);\n  XCTAssertEqual([dict hyb_floatForKey:@\"key4\"], 0);\n \n  XCTAssertEqual([dict hyb_doubleForKey:@\"key\"], 0);\n  XCTAssertEqual([dict hyb_doubleForKey:@\"key1\"], 2);\n  XCTAssertEqual([dict hyb_doubleForKey:@\"key2\"], 1);\n  XCTAssertEqual([dict hyb_doubleForKey:@\"key3\"], 1);\n  XCTAssertEqual([dict hyb_doubleForKey:@\"key4\"], 0);\n  \n  XCTAssert([[dict hyb_stringForKey:@\"key\"] isEqualToString:@\"value1\"]);\n  XCTAssert([[dict hyb_stringForKey:@\"key1\"] isEqualToString:@\"2\"]);\n  XCTAssert([[dict hyb_stringForKey:@\"key2\"] isEqualToString: @\"1\"]);\n  XCTAssert([[dict hyb_stringForKey:@\"key3\"] isEqualToString:@\"1\"]);\n  XCTAssert([[dict hyb_stringForKey:@\"key4\"] isEqualToString: @\"0\"]);\n\n  XCTAssertEqual([dict hyb_dictionaryForKey:@\"key\"], nil);\n  XCTAssertEqual([dict hyb_dictionaryForKey:@\"key1\"], nil);\n  XCTAssertEqual([dict hyb_dictionaryForKey:@\"key2\"], nil);\n  XCTAssertEqual([dict hyb_dictionaryForKey:@\"key3\"], nil);\n  XCTAssertEqual([dict hyb_dictionaryForKey:@\"key4\"], nil);\n  XCTAssert([[[dict hyb_dictionaryForKey:@\"key5\"] objectForKey:@\"s\"] isEqualToString: @\"sdf\"]);\n  XCTAssertEqual([dict hyb_dictionaryForKey:@\"key6\"], nil);\n\n  XCTAssertEqual([dict hyb_arrayForKey:@\"key\"], nil);\n  XCTAssertEqual([dict hyb_arrayForKey:@\"key1\"], nil);\n  XCTAssertEqual([dict hyb_arrayForKey:@\"key2\"], nil);\n  XCTAssertEqual([dict hyb_arrayForKey:@\"key3\"], nil);\n  XCTAssertEqual([dict hyb_arrayForKey:@\"key4\"], nil);\n  XCTAssertEqual([dict hyb_arrayForKey:@\"key5\"], nil);\n  XCTAssertEqual([[dict hyb_arrayForKey:@\"key6\"] objectAtIndex:0], @1);\n\n  XCTAssertEqual([dict hyb_boolForKey:@\"key\"], NO);\n  XCTAssertEqual([dict hyb_boolForKey:@\"key1\"], YES);\n  XCTAssertEqual([dict hyb_boolForKey:@\"key2\"], YES);\n  XCTAssertEqual([dict hyb_boolForKey:@\"key3\"], YES);\n  XCTAssertEqual([dict hyb_boolForKey:@\"key4\"], NO);\n  XCTAssertEqual([dict hyb_boolForKey:@\"key5\"], NO);\n  XCTAssertEqual([dict hyb_boolForKey:@\"key6\"], NO);\n\n}\n\n- (void)testPerformanceExample {\n    // This is an example of a performance test case.\n    [self measureBlock:^{\n        // Put the code you want to measure the time of here.\n    }];\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitTests/HYBHelperKitTests.m",
    "content": "//\n//  HYBHelperKitTests.m\n//  HYBHelperKitTests\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <XCTest/XCTest.h>\n#import \"NSTimer+HYBHelperKit.h\"\n#import \"NSNumber+HYBHelperKit.h\"\n\n@interface HYBHelperKitTests : XCTestCase\n\n@property (nonatomic, strong) NSTimer *timer;\n@property (nonatomic, strong) NSTimer *timer1;\n\n@end\n\n@implementation HYBHelperKitTests\n\n- (void)setUp {\n    [super setUp];\n  \n  NSUInteger count = 10;\n  self.timer = [NSTimer hyb_scheduledTimerWithTimeInterval:0.5 repeats:YES callback:^(NSTimer *timer) {\n    if (count <= 0) {\n      [timer hyb_invalidate];\n    }\n  }];\n}\n\n- (void)tearDown {\n    // Put teardown code here. This method is called after the invocation of each test method in the class.\n    [super tearDown];\n  \n  [self.timer hyb_invalidate];\n}\n\n- (void)testNumber {\n  NSNumber *v = @(10);\n  XCTAssert([v.hyb_toString isEqualToString:@\"10\"]);\n}\n\n- (void)testTimerCount {\n  NSUInteger count = 0;\n  self.timer1 = [NSTimer hyb_scheduledTimerWithTimeInterval:0.5 count:2 callback:^(NSTimer *timer) {\n    XCTAssert(count <= 2);\n  }];\n}\n\n- (void)testPerformanceExample {\n    // This is an example of a performance test case.\n    [self measureBlock:^{\n        // Put the code you want to measure the time of here.\n    }];\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitTests/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>BNDL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "HYBHelperKitTests/NSObjectTests.m",
    "content": "//\n//  NSObjectTests.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <XCTest/XCTest.h>\n#import \"NSObject+HYBHelperKit.h\"\n\n@interface NSObjectTests : XCTestCase\n\n@end\n\n@implementation NSObjectTests\n\n- (void)setUp {\n    [super setUp];\n    // Put setup code here. This method is called before the invocation of each test method in the class.\n}\n\n- (void)tearDown {\n    // Put teardown code here. This method is called after the invocation of each test method in the class.\n    [super tearDown];\n}\n\n- (void)testExample {\n  XCTAssert([[self hyb_className] isEqualToString:@\"NSObjectTests\"]);\n  \n}\n\n- (void)testPerformanceExample {\n    // This is an example of a performance test case.\n    [self measureBlock:^{\n        // Put the code you want to measure the time of here.\n    }];\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitTests/NSStringTests.m",
    "content": "//\n//  NSStringTests.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <XCTest/XCTest.h>\n#import \"NSString+HYBHelperKit.h\"\n\n@interface NSStringTests : XCTestCase\n\n@end\n\n@implementation NSStringTests\n\n- (void)setUp {\n  [super setUp];\n  // Put setup code here. This method is called before the invocation of each test method in the class.\n}\n\n- (void)tearDown {\n  // Put teardown code here. This method is called after the invocation of each test method in the class.\n  [super tearDown];\n}\n\n- (void)testExample {\n  XCTAssert([[@\"123456\" hyb_toMD5] isEqualToString:@\"e10adc3949ba59abbe56e057f20f883e\"]);\n  XCTAssert([[@\"123456\" hyb_to16MD5] isEqualToString:@\"49ba59abbe56e057\"]);\n  \n  XCTAssert([[@\"123456\" hyb_sha1] isEqualToString:@\"7c4a8d09ca3762af61e59520943dc26494f8941b\"]);\n  XCTAssert([[@\"123456\" hyb_sha256] isEqualToString:@\"8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92\"]);\n  XCTAssert([[@\"123456\" hyb_sha512] isEqualToString:@\"ba3253876aed6bc22d4a6ff53d8406c6ad864195ed144ab5c87621b6c233b548baeae6956df346ec8c17f5ea10f35ee3cbc514797ed7ddd3145464e2a0bab413\"]);\n  \n  XCTAssert([@\"123456\" hyb_toData] != nil);\n  XCTAssert([[NSString hyb_toStringWithData:[@\"123456\" hyb_toData]] isEqualToString:@\"123456\"]);\n  \n  XCTAssert([@\"123\" hyb_isEmail] == NO);\n  XCTAssert([@\"123@123\" hyb_isEmail] == NO);\n  XCTAssert([@\"123@163.com\" hyb_isEmail] == YES);\n  \n  XCTAssert([@\"15001112099\" hyb_isMobilePhone] == YES);\n  XCTAssert([@\"13001112099\" hyb_isMobilePhone] == YES);\n  XCTAssert([@\"11001112099\" hyb_isMobilePhone] == NO);\n  XCTAssert([@\"12001112099\" hyb_isMobilePhone] == NO);\n  XCTAssert([@\"17001112099\" hyb_isMobilePhone] == YES);\n  \n  XCTAssert([@\"1235232\" hyb_isContainString:@\"123\"] == YES);\n  XCTAssert([@\"1235232\" hyb_isContainString:@\"123s\"] == NO);\n}\n\n- (void)testPerformanceExample {\n  // This is an example of a performance test case.\n  [self measureBlock:^{\n    // Put the code you want to measure the time of here.\n  }];\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitTests/NSTimerTests.m",
    "content": "//\n//  NSTimerTests.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <XCTest/XCTest.h>\n\n@interface NSTimerTests : XCTestCase\n\n@end\n\n@implementation NSTimerTests\n\n- (void)setUp {\n    [super setUp];\n    // Put setup code here. This method is called before the invocation of each test method in the class.\n}\n\n- (void)tearDown {\n    // Put teardown code here. This method is called after the invocation of each test method in the class.\n    [super tearDown];\n}\n\n- (void)testExample {\n    // This is an example of a functional test case.\n    // Use XCTAssert and related functions to verify your tests produce the correct results.\n}\n\n- (void)testPerformanceExample {\n    // This is an example of a performance test case.\n    [self measureBlock:^{\n        // Put the code you want to measure the time of here.\n    }];\n}\n\n@end\n"
  },
  {
    "path": "HYBHelperKitTests/NSUserDefaultsTests.m",
    "content": "//\n//  NSUserDefaultsTests.m\n//  HYBHelperKit\n//\n//  Created by huangyibiao on 16/6/29.\n//  Copyright © 2016年 huangyibiao. All rights reserved.\n//\n\n#import <XCTest/XCTest.h>\n#import \"NSUserDefaults+HYBHelperKit.h\"\n\n@interface NSUserDefaultsTests : XCTestCase\n\n@end\n\n@implementation NSUserDefaultsTests\n\n- (void)setUp {\n    [super setUp];\n    // Put setup code here. This method is called before the invocation of each test method in the class.\n}\n\n- (void)tearDown {\n    // Put teardown code here. This method is called after the invocation of each test method in the class.\n    [super tearDown];\n}\n\n- (void)testNullNilObject {\n  NSDictionary *dict = @{@\"key1\" : [NSNull null],\n                         @\"key2\" : @[@\"s\", @\"df\", @\"null\"]};\n  BOOL ok = [[NSUserDefaults standardUserDefaults] hyb_setSafeObject:dict forKey:@\"s\"];\n  XCTAssert(ok);\n  \n  ok = [[NSUserDefaults standardUserDefaults] hyb_setSafeObject:dict forKey:@\"\"];\n  XCTAssert(ok);\n\n  ok = [[NSUserDefaults standardUserDefaults] hyb_setSafeObject:dict forKey:nil];\n  XCTAssert(ok == NO);\n\n  ok = [[NSUserDefaults standardUserDefaults] hyb_setSafeObject:nil forKey:@\"s\"];\n  XCTAssert(ok == NO);\n\n  ok = [[NSUserDefaults standardUserDefaults] hyb_setSafeObject:[NSNull null] forKey:@\"s\"];\n  XCTAssert(ok == NO);\n}\n\n- (void)testPerformanceExample {\n    // This is an example of a performance test case.\n    [self measureBlock:^{\n        // Put the code you want to measure the time of here.\n    }];\n}\n\n@end\n"
  },
  {
    "path": "LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2016 JackyHuang\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "Podfile",
    "content": "source 'https://github.com/CocoaPods/Specs.git'\n\nplatform :ios, '7.0'\n\ntarget 'HYBHelperKit' do\n\npod 'Masonry', '~> 1.0.1'\n\nend\n\ntarget 'HYBHelperKitTests' do\n\nend\n"
  },
  {
    "path": "Pods/Masonry/LICENSE",
    "content": "Copyright (c) 2011-2012 Masonry Team - https://github.com/Masonry\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE."
  },
  {
    "path": "Pods/Masonry/Masonry/MASCompositeConstraint.h",
    "content": "//\n//  MASCompositeConstraint.h\n//  Masonry\n//\n//  Created by Jonas Budelmann on 21/07/13.\n//  Copyright (c) 2013 cloudling. All rights reserved.\n//\n\n#import \"MASConstraint.h\"\n#import \"MASUtilities.h\"\n\n/**\n *\tA group of MASConstraint objects\n */\n@interface MASCompositeConstraint : MASConstraint\n\n/**\n *\tCreates a composite with a predefined array of children\n *\n *\t@param\tchildren\tchild MASConstraints\n *\n *\t@return\ta composite constraint\n */\n- (id)initWithChildren:(NSArray *)children;\n\n@end\n"
  },
  {
    "path": "Pods/Masonry/Masonry/MASCompositeConstraint.m",
    "content": "//\n//  MASCompositeConstraint.m\n//  Masonry\n//\n//  Created by Jonas Budelmann on 21/07/13.\n//  Copyright (c) 2013 cloudling. All rights reserved.\n//\n\n#import \"MASCompositeConstraint.h\"\n#import \"MASConstraint+Private.h\"\n\n@interface MASCompositeConstraint () <MASConstraintDelegate>\n\n@property (nonatomic, strong) id mas_key;\n@property (nonatomic, strong) NSMutableArray *childConstraints;\n\n@end\n\n@implementation MASCompositeConstraint\n\n- (id)initWithChildren:(NSArray *)children {\n    self = [super init];\n    if (!self) return nil;\n\n    _childConstraints = [children mutableCopy];\n    for (MASConstraint *constraint in _childConstraints) {\n        constraint.delegate = self;\n    }\n\n    return self;\n}\n\n#pragma mark - MASConstraintDelegate\n\n- (void)constraint:(MASConstraint *)constraint shouldBeReplacedWithConstraint:(MASConstraint *)replacementConstraint {\n    NSUInteger index = [self.childConstraints indexOfObject:constraint];\n    NSAssert(index != NSNotFound, @\"Could not find constraint %@\", constraint);\n    [self.childConstraints replaceObjectAtIndex:index withObject:replacementConstraint];\n}\n\n- (MASConstraint *)constraint:(MASConstraint __unused *)constraint addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute {\n    id<MASConstraintDelegate> strongDelegate = self.delegate;\n    MASConstraint *newConstraint = [strongDelegate constraint:self addConstraintWithLayoutAttribute:layoutAttribute];\n    newConstraint.delegate = self;\n    [self.childConstraints addObject:newConstraint];\n    return newConstraint;\n}\n\n#pragma mark - NSLayoutConstraint multiplier proxies \n\n- (MASConstraint * (^)(CGFloat))multipliedBy {\n    return ^id(CGFloat multiplier) {\n        for (MASConstraint *constraint in self.childConstraints) {\n            constraint.multipliedBy(multiplier);\n        }\n        return self;\n    };\n}\n\n- (MASConstraint * (^)(CGFloat))dividedBy {\n    return ^id(CGFloat divider) {\n        for (MASConstraint *constraint in self.childConstraints) {\n            constraint.dividedBy(divider);\n        }\n        return self;\n    };\n}\n\n#pragma mark - MASLayoutPriority proxy\n\n- (MASConstraint * (^)(MASLayoutPriority))priority {\n    return ^id(MASLayoutPriority priority) {\n        for (MASConstraint *constraint in self.childConstraints) {\n            constraint.priority(priority);\n        }\n        return self;\n    };\n}\n\n#pragma mark - NSLayoutRelation proxy\n\n- (MASConstraint * (^)(id, NSLayoutRelation))equalToWithRelation {\n    return ^id(id attr, NSLayoutRelation relation) {\n        for (MASConstraint *constraint in self.childConstraints.copy) {\n            constraint.equalToWithRelation(attr, relation);\n        }\n        return self;\n    };\n}\n\n#pragma mark - attribute chaining\n\n- (MASConstraint *)addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute {\n    [self constraint:self addConstraintWithLayoutAttribute:layoutAttribute];\n    return self;\n}\n\n#pragma mark - Animator proxy\n\n#if TARGET_OS_MAC && !(TARGET_OS_IPHONE || TARGET_OS_TV)\n\n- (MASConstraint *)animator {\n    for (MASConstraint *constraint in self.childConstraints) {\n        [constraint animator];\n    }\n    return self;\n}\n\n#endif\n\n#pragma mark - debug helpers\n\n- (MASConstraint * (^)(id))key {\n    return ^id(id key) {\n        self.mas_key = key;\n        int i = 0;\n        for (MASConstraint *constraint in self.childConstraints) {\n            constraint.key([NSString stringWithFormat:@\"%@[%d]\", key, i++]);\n        }\n        return self;\n    };\n}\n\n#pragma mark - NSLayoutConstraint constant setters\n\n- (void)setInsets:(MASEdgeInsets)insets {\n    for (MASConstraint *constraint in self.childConstraints) {\n        constraint.insets = insets;\n    }\n}\n\n- (void)setOffset:(CGFloat)offset {\n    for (MASConstraint *constraint in self.childConstraints) {\n        constraint.offset = offset;\n    }\n}\n\n- (void)setSizeOffset:(CGSize)sizeOffset {\n    for (MASConstraint *constraint in self.childConstraints) {\n        constraint.sizeOffset = sizeOffset;\n    }\n}\n\n- (void)setCenterOffset:(CGPoint)centerOffset {\n    for (MASConstraint *constraint in self.childConstraints) {\n        constraint.centerOffset = centerOffset;\n    }\n}\n\n#pragma mark - MASConstraint\n\n- (void)activate {\n    for (MASConstraint *constraint in self.childConstraints) {\n        [constraint activate];\n    }\n}\n\n- (void)deactivate {\n    for (MASConstraint *constraint in self.childConstraints) {\n        [constraint deactivate];\n    }\n}\n\n- (void)install {\n    for (MASConstraint *constraint in self.childConstraints) {\n        constraint.updateExisting = self.updateExisting;\n        [constraint install];\n    }\n}\n\n- (void)uninstall {\n    for (MASConstraint *constraint in self.childConstraints) {\n        [constraint uninstall];\n    }\n}\n\n@end\n"
  },
  {
    "path": "Pods/Masonry/Masonry/MASConstraint+Private.h",
    "content": "//\n//  MASConstraint+Private.h\n//  Masonry\n//\n//  Created by Nick Tymchenko on 29/04/14.\n//  Copyright (c) 2014 cloudling. All rights reserved.\n//\n\n#import \"MASConstraint.h\"\n\n@protocol MASConstraintDelegate;\n\n\n@interface MASConstraint ()\n\n/**\n *  Whether or not to check for an existing constraint instead of adding constraint\n */\n@property (nonatomic, assign) BOOL updateExisting;\n\n/**\n *\tUsually MASConstraintMaker but could be a parent MASConstraint\n */\n@property (nonatomic, weak) id<MASConstraintDelegate> delegate;\n\n/**\n *  Based on a provided value type, is equal to calling:\n *  NSNumber - setOffset:\n *  NSValue with CGPoint - setPointOffset:\n *  NSValue with CGSize - setSizeOffset:\n *  NSValue with MASEdgeInsets - setInsets:\n */\n- (void)setLayoutConstantWithValue:(NSValue *)value;\n\n@end\n\n\n@interface MASConstraint (Abstract)\n\n/**\n *\tSets the constraint relation to given NSLayoutRelation\n *  returns a block which accepts one of the following:\n *    MASViewAttribute, UIView, NSValue, NSArray\n *  see readme for more details.\n */\n- (MASConstraint * (^)(id, NSLayoutRelation))equalToWithRelation;\n\n/**\n *\tOverride to set a custom chaining behaviour\n */\n- (MASConstraint *)addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute;\n\n@end\n\n\n@protocol MASConstraintDelegate <NSObject>\n\n/**\n *\tNotifies the delegate when the constraint needs to be replaced with another constraint. For example\n *  A MASViewConstraint may turn into a MASCompositeConstraint when an array is passed to one of the equality blocks\n */\n- (void)constraint:(MASConstraint *)constraint shouldBeReplacedWithConstraint:(MASConstraint *)replacementConstraint;\n\n- (MASConstraint *)constraint:(MASConstraint *)constraint addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute;\n\n@end\n"
  },
  {
    "path": "Pods/Masonry/Masonry/MASConstraint.h",
    "content": "//\n//  MASConstraint.h\n//  Masonry\n//\n//  Created by Jonas Budelmann on 22/07/13.\n//  Copyright (c) 2013 cloudling. All rights reserved.\n//\n\n#import \"MASUtilities.h\"\n\n/**\n *\tEnables Constraints to be created with chainable syntax\n *  Constraint can represent single NSLayoutConstraint (MASViewConstraint) \n *  or a group of NSLayoutConstraints (MASComposisteConstraint)\n */\n@interface MASConstraint : NSObject\n\n// Chaining Support\n\n/**\n *\tModifies the NSLayoutConstraint constant,\n *  only affects MASConstraints in which the first item's NSLayoutAttribute is one of the following\n *  NSLayoutAttributeTop, NSLayoutAttributeLeft, NSLayoutAttributeBottom, NSLayoutAttributeRight\n */\n- (MASConstraint * (^)(MASEdgeInsets insets))insets;\n\n/**\n *\tModifies the NSLayoutConstraint constant,\n *  only affects MASConstraints in which the first item's NSLayoutAttribute is one of the following\n *  NSLayoutAttributeWidth, NSLayoutAttributeHeight\n */\n- (MASConstraint * (^)(CGSize offset))sizeOffset;\n\n/**\n *\tModifies the NSLayoutConstraint constant,\n *  only affects MASConstraints in which the first item's NSLayoutAttribute is one of the following\n *  NSLayoutAttributeCenterX, NSLayoutAttributeCenterY\n */\n- (MASConstraint * (^)(CGPoint offset))centerOffset;\n\n/**\n *\tModifies the NSLayoutConstraint constant\n */\n- (MASConstraint * (^)(CGFloat offset))offset;\n\n/**\n *  Modifies the NSLayoutConstraint constant based on a value type\n */\n- (MASConstraint * (^)(NSValue *value))valueOffset;\n\n/**\n *\tSets the NSLayoutConstraint multiplier property\n */\n- (MASConstraint * (^)(CGFloat multiplier))multipliedBy;\n\n/**\n *\tSets the NSLayoutConstraint multiplier to 1.0/dividedBy\n */\n- (MASConstraint * (^)(CGFloat divider))dividedBy;\n\n/**\n *\tSets the NSLayoutConstraint priority to a float or MASLayoutPriority\n */\n- (MASConstraint * (^)(MASLayoutPriority priority))priority;\n\n/**\n *\tSets the NSLayoutConstraint priority to MASLayoutPriorityLow\n */\n- (MASConstraint * (^)())priorityLow;\n\n/**\n *\tSets the NSLayoutConstraint priority to MASLayoutPriorityMedium\n */\n- (MASConstraint * (^)())priorityMedium;\n\n/**\n *\tSets the NSLayoutConstraint priority to MASLayoutPriorityHigh\n */\n- (MASConstraint * (^)())priorityHigh;\n\n/**\n *\tSets the constraint relation to NSLayoutRelationEqual\n *  returns a block which accepts one of the following:\n *    MASViewAttribute, UIView, NSValue, NSArray\n *  see readme for more details.\n */\n- (MASConstraint * (^)(id attr))equalTo;\n\n/**\n *\tSets the constraint relation to NSLayoutRelationGreaterThanOrEqual\n *  returns a block which accepts one of the following:\n *    MASViewAttribute, UIView, NSValue, NSArray\n *  see readme for more details.\n */\n- (MASConstraint * (^)(id attr))greaterThanOrEqualTo;\n\n/**\n *\tSets the constraint relation to NSLayoutRelationLessThanOrEqual\n *  returns a block which accepts one of the following:\n *    MASViewAttribute, UIView, NSValue, NSArray\n *  see readme for more details.\n */\n- (MASConstraint * (^)(id attr))lessThanOrEqualTo;\n\n/**\n *\tOptional semantic property which has no effect but improves the readability of constraint\n */\n- (MASConstraint *)with;\n\n/**\n *\tOptional semantic property which has no effect but improves the readability of constraint\n */\n- (MASConstraint *)and;\n\n/**\n *\tCreates a new MASCompositeConstraint with the called attribute and reciever\n */\n- (MASConstraint *)left;\n- (MASConstraint *)top;\n- (MASConstraint *)right;\n- (MASConstraint *)bottom;\n- (MASConstraint *)leading;\n- (MASConstraint *)trailing;\n- (MASConstraint *)width;\n- (MASConstraint *)height;\n- (MASConstraint *)centerX;\n- (MASConstraint *)centerY;\n- (MASConstraint *)baseline;\n\n#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)\n\n- (MASConstraint *)firstBaseline;\n- (MASConstraint *)lastBaseline;\n\n#endif\n\n#if TARGET_OS_IPHONE || TARGET_OS_TV\n\n- (MASConstraint *)leftMargin;\n- (MASConstraint *)rightMargin;\n- (MASConstraint *)topMargin;\n- (MASConstraint *)bottomMargin;\n- (MASConstraint *)leadingMargin;\n- (MASConstraint *)trailingMargin;\n- (MASConstraint *)centerXWithinMargins;\n- (MASConstraint *)centerYWithinMargins;\n\n#endif\n\n\n/**\n *\tSets the constraint debug name\n */\n- (MASConstraint * (^)(id key))key;\n\n// NSLayoutConstraint constant Setters\n// for use outside of mas_updateConstraints/mas_makeConstraints blocks\n\n/**\n *\tModifies the NSLayoutConstraint constant,\n *  only affects MASConstraints in which the first item's NSLayoutAttribute is one of the following\n *  NSLayoutAttributeTop, NSLayoutAttributeLeft, NSLayoutAttributeBottom, NSLayoutAttributeRight\n */\n- (void)setInsets:(MASEdgeInsets)insets;\n\n/**\n *\tModifies the NSLayoutConstraint constant,\n *  only affects MASConstraints in which the first item's NSLayoutAttribute is one of the following\n *  NSLayoutAttributeWidth, NSLayoutAttributeHeight\n */\n- (void)setSizeOffset:(CGSize)sizeOffset;\n\n/**\n *\tModifies the NSLayoutConstraint constant,\n *  only affects MASConstraints in which the first item's NSLayoutAttribute is one of the following\n *  NSLayoutAttributeCenterX, NSLayoutAttributeCenterY\n */\n- (void)setCenterOffset:(CGPoint)centerOffset;\n\n/**\n *\tModifies the NSLayoutConstraint constant\n */\n- (void)setOffset:(CGFloat)offset;\n\n\n// NSLayoutConstraint Installation support\n\n#if TARGET_OS_MAC && !(TARGET_OS_IPHONE || TARGET_OS_TV)\n/**\n *  Whether or not to go through the animator proxy when modifying the constraint\n */\n@property (nonatomic, copy, readonly) MASConstraint *animator;\n#endif\n\n/**\n *  Activates an NSLayoutConstraint if it's supported by an OS. \n *  Invokes install otherwise.\n */\n- (void)activate;\n\n/**\n *  Deactivates previously installed/activated NSLayoutConstraint.\n */\n- (void)deactivate;\n\n/**\n *\tCreates a NSLayoutConstraint and adds it to the appropriate view.\n */\n- (void)install;\n\n/**\n *\tRemoves previously installed NSLayoutConstraint\n */\n- (void)uninstall;\n\n@end\n\n\n/**\n *  Convenience auto-boxing macros for MASConstraint methods.\n *\n *  Defining MAS_SHORTHAND_GLOBALS will turn on auto-boxing for default syntax.\n *  A potential drawback of this is that the unprefixed macros will appear in global scope.\n */\n#define mas_equalTo(...)                 equalTo(MASBoxValue((__VA_ARGS__)))\n#define mas_greaterThanOrEqualTo(...)    greaterThanOrEqualTo(MASBoxValue((__VA_ARGS__)))\n#define mas_lessThanOrEqualTo(...)       lessThanOrEqualTo(MASBoxValue((__VA_ARGS__)))\n\n#define mas_offset(...)                  valueOffset(MASBoxValue((__VA_ARGS__)))\n\n\n#ifdef MAS_SHORTHAND_GLOBALS\n\n#define equalTo(...)                     mas_equalTo(__VA_ARGS__)\n#define greaterThanOrEqualTo(...)        mas_greaterThanOrEqualTo(__VA_ARGS__)\n#define lessThanOrEqualTo(...)           mas_lessThanOrEqualTo(__VA_ARGS__)\n\n#define offset(...)                      mas_offset(__VA_ARGS__)\n\n#endif\n\n\n@interface MASConstraint (AutoboxingSupport)\n\n/**\n *  Aliases to corresponding relation methods (for shorthand macros)\n *  Also needed to aid autocompletion\n */\n- (MASConstraint * (^)(id attr))mas_equalTo;\n- (MASConstraint * (^)(id attr))mas_greaterThanOrEqualTo;\n- (MASConstraint * (^)(id attr))mas_lessThanOrEqualTo;\n\n/**\n *  A dummy method to aid autocompletion\n */\n- (MASConstraint * (^)(id offset))mas_offset;\n\n@end\n"
  },
  {
    "path": "Pods/Masonry/Masonry/MASConstraint.m",
    "content": "//\n//  MASConstraint.m\n//  Masonry\n//\n//  Created by Nick Tymchenko on 1/20/14.\n//\n\n#import \"MASConstraint.h\"\n#import \"MASConstraint+Private.h\"\n\n#define MASMethodNotImplemented() \\\n    @throw [NSException exceptionWithName:NSInternalInconsistencyException \\\n                                   reason:[NSString stringWithFormat:@\"You must override %@ in a subclass.\", NSStringFromSelector(_cmd)] \\\n                                 userInfo:nil]\n\n@implementation MASConstraint\n\n#pragma mark - Init\n\n- (id)init {\n\tNSAssert(![self isMemberOfClass:[MASConstraint class]], @\"MASConstraint is an abstract class, you should not instantiate it directly.\");\n\treturn [super init];\n}\n\n#pragma mark - NSLayoutRelation proxies\n\n- (MASConstraint * (^)(id))equalTo {\n    return ^id(id attribute) {\n        return self.equalToWithRelation(attribute, NSLayoutRelationEqual);\n    };\n}\n\n- (MASConstraint * (^)(id))mas_equalTo {\n    return ^id(id attribute) {\n        return self.equalToWithRelation(attribute, NSLayoutRelationEqual);\n    };\n}\n\n- (MASConstraint * (^)(id))greaterThanOrEqualTo {\n    return ^id(id attribute) {\n        return self.equalToWithRelation(attribute, NSLayoutRelationGreaterThanOrEqual);\n    };\n}\n\n- (MASConstraint * (^)(id))mas_greaterThanOrEqualTo {\n    return ^id(id attribute) {\n        return self.equalToWithRelation(attribute, NSLayoutRelationGreaterThanOrEqual);\n    };\n}\n\n- (MASConstraint * (^)(id))lessThanOrEqualTo {\n    return ^id(id attribute) {\n        return self.equalToWithRelation(attribute, NSLayoutRelationLessThanOrEqual);\n    };\n}\n\n- (MASConstraint * (^)(id))mas_lessThanOrEqualTo {\n    return ^id(id attribute) {\n        return self.equalToWithRelation(attribute, NSLayoutRelationLessThanOrEqual);\n    };\n}\n\n#pragma mark - MASLayoutPriority proxies\n\n- (MASConstraint * (^)())priorityLow {\n    return ^id{\n        self.priority(MASLayoutPriorityDefaultLow);\n        return self;\n    };\n}\n\n- (MASConstraint * (^)())priorityMedium {\n    return ^id{\n        self.priority(MASLayoutPriorityDefaultMedium);\n        return self;\n    };\n}\n\n- (MASConstraint * (^)())priorityHigh {\n    return ^id{\n        self.priority(MASLayoutPriorityDefaultHigh);\n        return self;\n    };\n}\n\n#pragma mark - NSLayoutConstraint constant proxies\n\n- (MASConstraint * (^)(MASEdgeInsets))insets {\n    return ^id(MASEdgeInsets insets){\n        self.insets = insets;\n        return self;\n    };\n}\n\n- (MASConstraint * (^)(CGSize))sizeOffset {\n    return ^id(CGSize offset) {\n        self.sizeOffset = offset;\n        return self;\n    };\n}\n\n- (MASConstraint * (^)(CGPoint))centerOffset {\n    return ^id(CGPoint offset) {\n        self.centerOffset = offset;\n        return self;\n    };\n}\n\n- (MASConstraint * (^)(CGFloat))offset {\n    return ^id(CGFloat offset){\n        self.offset = offset;\n        return self;\n    };\n}\n\n- (MASConstraint * (^)(NSValue *value))valueOffset {\n    return ^id(NSValue *offset) {\n        NSAssert([offset isKindOfClass:NSValue.class], @\"expected an NSValue offset, got: %@\", offset);\n        [self setLayoutConstantWithValue:offset];\n        return self;\n    };\n}\n\n- (MASConstraint * (^)(id offset))mas_offset {\n    // Will never be called due to macro\n    return nil;\n}\n\n#pragma mark - NSLayoutConstraint constant setter\n\n- (void)setLayoutConstantWithValue:(NSValue *)value {\n    if ([value isKindOfClass:NSNumber.class]) {\n        self.offset = [(NSNumber *)value doubleValue];\n    } else if (strcmp(value.objCType, @encode(CGPoint)) == 0) {\n        CGPoint point;\n        [value getValue:&point];\n        self.centerOffset = point;\n    } else if (strcmp(value.objCType, @encode(CGSize)) == 0) {\n        CGSize size;\n        [value getValue:&size];\n        self.sizeOffset = size;\n    } else if (strcmp(value.objCType, @encode(MASEdgeInsets)) == 0) {\n        MASEdgeInsets insets;\n        [value getValue:&insets];\n        self.insets = insets;\n    } else {\n        NSAssert(NO, @\"attempting to set layout constant with unsupported value: %@\", value);\n    }\n}\n\n#pragma mark - Semantic properties\n\n- (MASConstraint *)with {\n    return self;\n}\n\n- (MASConstraint *)and {\n    return self;\n}\n\n#pragma mark - Chaining\n\n- (MASConstraint *)addConstraintWithLayoutAttribute:(NSLayoutAttribute __unused)layoutAttribute {\n    MASMethodNotImplemented();\n}\n\n- (MASConstraint *)left {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLeft];\n}\n\n- (MASConstraint *)top {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeTop];\n}\n\n- (MASConstraint *)right {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeRight];\n}\n\n- (MASConstraint *)bottom {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeBottom];\n}\n\n- (MASConstraint *)leading {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLeading];\n}\n\n- (MASConstraint *)trailing {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeTrailing];\n}\n\n- (MASConstraint *)width {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeWidth];\n}\n\n- (MASConstraint *)height {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeHeight];\n}\n\n- (MASConstraint *)centerX {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeCenterX];\n}\n\n- (MASConstraint *)centerY {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeCenterY];\n}\n\n- (MASConstraint *)baseline {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeBaseline];\n}\n\n#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)\n\n- (MASConstraint *)firstBaseline {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeFirstBaseline];\n}\n- (MASConstraint *)lastBaseline {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLastBaseline];\n}\n\n#endif\n\n#if TARGET_OS_IPHONE || TARGET_OS_TV\n\n- (MASConstraint *)leftMargin {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLeftMargin];\n}\n\n- (MASConstraint *)rightMargin {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeRightMargin];\n}\n\n- (MASConstraint *)topMargin {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeTopMargin];\n}\n\n- (MASConstraint *)bottomMargin {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeBottomMargin];\n}\n\n- (MASConstraint *)leadingMargin {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLeadingMargin];\n}\n\n- (MASConstraint *)trailingMargin {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeTrailingMargin];\n}\n\n- (MASConstraint *)centerXWithinMargins {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeCenterXWithinMargins];\n}\n\n- (MASConstraint *)centerYWithinMargins {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeCenterYWithinMargins];\n}\n\n#endif\n\n#pragma mark - Abstract\n\n- (MASConstraint * (^)(CGFloat multiplier))multipliedBy { MASMethodNotImplemented(); }\n\n- (MASConstraint * (^)(CGFloat divider))dividedBy { MASMethodNotImplemented(); }\n\n- (MASConstraint * (^)(MASLayoutPriority priority))priority { MASMethodNotImplemented(); }\n\n- (MASConstraint * (^)(id, NSLayoutRelation))equalToWithRelation { MASMethodNotImplemented(); }\n\n- (MASConstraint * (^)(id key))key { MASMethodNotImplemented(); }\n\n- (void)setInsets:(MASEdgeInsets __unused)insets { MASMethodNotImplemented(); }\n\n- (void)setSizeOffset:(CGSize __unused)sizeOffset { MASMethodNotImplemented(); }\n\n- (void)setCenterOffset:(CGPoint __unused)centerOffset { MASMethodNotImplemented(); }\n\n- (void)setOffset:(CGFloat __unused)offset { MASMethodNotImplemented(); }\n\n#if TARGET_OS_MAC && !(TARGET_OS_IPHONE || TARGET_OS_TV)\n\n- (MASConstraint *)animator { MASMethodNotImplemented(); }\n\n#endif\n\n- (void)activate { MASMethodNotImplemented(); }\n\n- (void)deactivate { MASMethodNotImplemented(); }\n\n- (void)install { MASMethodNotImplemented(); }\n\n- (void)uninstall { MASMethodNotImplemented(); }\n\n@end\n"
  },
  {
    "path": "Pods/Masonry/Masonry/MASConstraintMaker.h",
    "content": "//\n//  MASConstraintBuilder.h\n//  Masonry\n//\n//  Created by Jonas Budelmann on 20/07/13.\n//  Copyright (c) 2013 cloudling. All rights reserved.\n//\n\n#import \"MASConstraint.h\"\n#import \"MASUtilities.h\"\n\ntypedef NS_OPTIONS(NSInteger, MASAttribute) {\n    MASAttributeLeft = 1 << NSLayoutAttributeLeft,\n    MASAttributeRight = 1 << NSLayoutAttributeRight,\n    MASAttributeTop = 1 << NSLayoutAttributeTop,\n    MASAttributeBottom = 1 << NSLayoutAttributeBottom,\n    MASAttributeLeading = 1 << NSLayoutAttributeLeading,\n    MASAttributeTrailing = 1 << NSLayoutAttributeTrailing,\n    MASAttributeWidth = 1 << NSLayoutAttributeWidth,\n    MASAttributeHeight = 1 << NSLayoutAttributeHeight,\n    MASAttributeCenterX = 1 << NSLayoutAttributeCenterX,\n    MASAttributeCenterY = 1 << NSLayoutAttributeCenterY,\n    MASAttributeBaseline = 1 << NSLayoutAttributeBaseline,\n    \n#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)\n    \n    MASAttributeFirstBaseline = 1 << NSLayoutAttributeFirstBaseline,\n    MASAttributeLastBaseline = 1 << NSLayoutAttributeLastBaseline,\n    \n#endif\n    \n#if TARGET_OS_IPHONE || TARGET_OS_TV\n    \n    MASAttributeLeftMargin = 1 << NSLayoutAttributeLeftMargin,\n    MASAttributeRightMargin = 1 << NSLayoutAttributeRightMargin,\n    MASAttributeTopMargin = 1 << NSLayoutAttributeTopMargin,\n    MASAttributeBottomMargin = 1 << NSLayoutAttributeBottomMargin,\n    MASAttributeLeadingMargin = 1 << NSLayoutAttributeLeadingMargin,\n    MASAttributeTrailingMargin = 1 << NSLayoutAttributeTrailingMargin,\n    MASAttributeCenterXWithinMargins = 1 << NSLayoutAttributeCenterXWithinMargins,\n    MASAttributeCenterYWithinMargins = 1 << NSLayoutAttributeCenterYWithinMargins,\n\n#endif\n    \n};\n\n/**\n *  Provides factory methods for creating MASConstraints.\n *  Constraints are collected until they are ready to be installed\n *\n */\n@interface MASConstraintMaker : NSObject\n\n/**\n *\tThe following properties return a new MASViewConstraint\n *  with the first item set to the makers associated view and the appropriate MASViewAttribute\n */\n@property (nonatomic, strong, readonly) MASConstraint *left;\n@property (nonatomic, strong, readonly) MASConstraint *top;\n@property (nonatomic, strong, readonly) MASConstraint *right;\n@property (nonatomic, strong, readonly) MASConstraint *bottom;\n@property (nonatomic, strong, readonly) MASConstraint *leading;\n@property (nonatomic, strong, readonly) MASConstraint *trailing;\n@property (nonatomic, strong, readonly) MASConstraint *width;\n@property (nonatomic, strong, readonly) MASConstraint *height;\n@property (nonatomic, strong, readonly) MASConstraint *centerX;\n@property (nonatomic, strong, readonly) MASConstraint *centerY;\n@property (nonatomic, strong, readonly) MASConstraint *baseline;\n\n#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)\n\n@property (nonatomic, strong, readonly) MASConstraint *firstBaseline;\n@property (nonatomic, strong, readonly) MASConstraint *lastBaseline;\n\n#endif\n\n#if TARGET_OS_IPHONE || TARGET_OS_TV\n\n@property (nonatomic, strong, readonly) MASConstraint *leftMargin;\n@property (nonatomic, strong, readonly) MASConstraint *rightMargin;\n@property (nonatomic, strong, readonly) MASConstraint *topMargin;\n@property (nonatomic, strong, readonly) MASConstraint *bottomMargin;\n@property (nonatomic, strong, readonly) MASConstraint *leadingMargin;\n@property (nonatomic, strong, readonly) MASConstraint *trailingMargin;\n@property (nonatomic, strong, readonly) MASConstraint *centerXWithinMargins;\n@property (nonatomic, strong, readonly) MASConstraint *centerYWithinMargins;\n\n#endif\n\n/**\n *  Returns a block which creates a new MASCompositeConstraint with the first item set\n *  to the makers associated view and children corresponding to the set bits in the\n *  MASAttribute parameter. Combine multiple attributes via binary-or.\n */\n@property (nonatomic, strong, readonly) MASConstraint *(^attributes)(MASAttribute attrs);\n\n/**\n *\tCreates a MASCompositeConstraint with type MASCompositeConstraintTypeEdges\n *  which generates the appropriate MASViewConstraint children (top, left, bottom, right)\n *  with the first item set to the makers associated view\n */\n@property (nonatomic, strong, readonly) MASConstraint *edges;\n\n/**\n *\tCreates a MASCompositeConstraint with type MASCompositeConstraintTypeSize\n *  which generates the appropriate MASViewConstraint children (width, height)\n *  with the first item set to the makers associated view\n */\n@property (nonatomic, strong, readonly) MASConstraint *size;\n\n/**\n *\tCreates a MASCompositeConstraint with type MASCompositeConstraintTypeCenter\n *  which generates the appropriate MASViewConstraint children (centerX, centerY)\n *  with the first item set to the makers associated view\n */\n@property (nonatomic, strong, readonly) MASConstraint *center;\n\n/**\n *  Whether or not to check for an existing constraint instead of adding constraint\n */\n@property (nonatomic, assign) BOOL updateExisting;\n\n/**\n *  Whether or not to remove existing constraints prior to installing\n */\n@property (nonatomic, assign) BOOL removeExisting;\n\n/**\n *\tinitialises the maker with a default view\n *\n *\t@param\tview\tany MASConstrait are created with this view as the first item\n *\n *\t@return\ta new MASConstraintMaker\n */\n- (id)initWithView:(MAS_VIEW *)view;\n\n/**\n *\tCalls install method on any MASConstraints which have been created by this maker\n *\n *\t@return\tan array of all the installed MASConstraints\n */\n- (NSArray *)install;\n\n- (MASConstraint * (^)(dispatch_block_t))group;\n\n@end\n"
  },
  {
    "path": "Pods/Masonry/Masonry/MASConstraintMaker.m",
    "content": "//\n//  MASConstraintBuilder.m\n//  Masonry\n//\n//  Created by Jonas Budelmann on 20/07/13.\n//  Copyright (c) 2013 cloudling. All rights reserved.\n//\n\n#import \"MASConstraintMaker.h\"\n#import \"MASViewConstraint.h\"\n#import \"MASCompositeConstraint.h\"\n#import \"MASConstraint+Private.h\"\n#import \"MASViewAttribute.h\"\n#import \"View+MASAdditions.h\"\n\n@interface MASConstraintMaker () <MASConstraintDelegate>\n\n@property (nonatomic, weak) MAS_VIEW *view;\n@property (nonatomic, strong) NSMutableArray *constraints;\n\n@end\n\n@implementation MASConstraintMaker\n\n- (id)initWithView:(MAS_VIEW *)view {\n    self = [super init];\n    if (!self) return nil;\n    \n    self.view = view;\n    self.constraints = NSMutableArray.new;\n    \n    return self;\n}\n\n- (NSArray *)install {\n    if (self.removeExisting) {\n        NSArray *installedConstraints = [MASViewConstraint installedConstraintsForView:self.view];\n        for (MASConstraint *constraint in installedConstraints) {\n            [constraint uninstall];\n        }\n    }\n    NSArray *constraints = self.constraints.copy;\n    for (MASConstraint *constraint in constraints) {\n        constraint.updateExisting = self.updateExisting;\n        [constraint install];\n    }\n    [self.constraints removeAllObjects];\n    return constraints;\n}\n\n#pragma mark - MASConstraintDelegate\n\n- (void)constraint:(MASConstraint *)constraint shouldBeReplacedWithConstraint:(MASConstraint *)replacementConstraint {\n    NSUInteger index = [self.constraints indexOfObject:constraint];\n    NSAssert(index != NSNotFound, @\"Could not find constraint %@\", constraint);\n    [self.constraints replaceObjectAtIndex:index withObject:replacementConstraint];\n}\n\n- (MASConstraint *)constraint:(MASConstraint *)constraint addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute {\n    MASViewAttribute *viewAttribute = [[MASViewAttribute alloc] initWithView:self.view layoutAttribute:layoutAttribute];\n    MASViewConstraint *newConstraint = [[MASViewConstraint alloc] initWithFirstViewAttribute:viewAttribute];\n    if ([constraint isKindOfClass:MASViewConstraint.class]) {\n        //replace with composite constraint\n        NSArray *children = @[constraint, newConstraint];\n        MASCompositeConstraint *compositeConstraint = [[MASCompositeConstraint alloc] initWithChildren:children];\n        compositeConstraint.delegate = self;\n        [self constraint:constraint shouldBeReplacedWithConstraint:compositeConstraint];\n        return compositeConstraint;\n    }\n    if (!constraint) {\n        newConstraint.delegate = self;\n        [self.constraints addObject:newConstraint];\n    }\n    return newConstraint;\n}\n\n- (MASConstraint *)addConstraintWithAttributes:(MASAttribute)attrs {\n    __unused MASAttribute anyAttribute = (MASAttributeLeft | MASAttributeRight | MASAttributeTop | MASAttributeBottom | MASAttributeLeading\n                                          | MASAttributeTrailing | MASAttributeWidth | MASAttributeHeight | MASAttributeCenterX\n                                          | MASAttributeCenterY | MASAttributeBaseline\n#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)\n                                          | MASAttributeFirstBaseline | MASAttributeLastBaseline\n#endif\n#if TARGET_OS_IPHONE || TARGET_OS_TV\n                                          | MASAttributeLeftMargin | MASAttributeRightMargin | MASAttributeTopMargin | MASAttributeBottomMargin\n                                          | MASAttributeLeadingMargin | MASAttributeTrailingMargin | MASAttributeCenterXWithinMargins\n                                          | MASAttributeCenterYWithinMargins\n#endif\n                                          );\n    \n    NSAssert((attrs & anyAttribute) != 0, @\"You didn't pass any attribute to make.attributes(...)\");\n    \n    NSMutableArray *attributes = [NSMutableArray array];\n    \n    if (attrs & MASAttributeLeft) [attributes addObject:self.view.mas_left];\n    if (attrs & MASAttributeRight) [attributes addObject:self.view.mas_right];\n    if (attrs & MASAttributeTop) [attributes addObject:self.view.mas_top];\n    if (attrs & MASAttributeBottom) [attributes addObject:self.view.mas_bottom];\n    if (attrs & MASAttributeLeading) [attributes addObject:self.view.mas_leading];\n    if (attrs & MASAttributeTrailing) [attributes addObject:self.view.mas_trailing];\n    if (attrs & MASAttributeWidth) [attributes addObject:self.view.mas_width];\n    if (attrs & MASAttributeHeight) [attributes addObject:self.view.mas_height];\n    if (attrs & MASAttributeCenterX) [attributes addObject:self.view.mas_centerX];\n    if (attrs & MASAttributeCenterY) [attributes addObject:self.view.mas_centerY];\n    if (attrs & MASAttributeBaseline) [attributes addObject:self.view.mas_baseline];\n    \n#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)\n    \n    if (attrs & MASAttributeFirstBaseline) [attributes addObject:self.view.mas_firstBaseline];\n    if (attrs & MASAttributeLastBaseline) [attributes addObject:self.view.mas_lastBaseline];\n    \n#endif\n    \n#if TARGET_OS_IPHONE || TARGET_OS_TV\n    \n    if (attrs & MASAttributeLeftMargin) [attributes addObject:self.view.mas_leftMargin];\n    if (attrs & MASAttributeRightMargin) [attributes addObject:self.view.mas_rightMargin];\n    if (attrs & MASAttributeTopMargin) [attributes addObject:self.view.mas_topMargin];\n    if (attrs & MASAttributeBottomMargin) [attributes addObject:self.view.mas_bottomMargin];\n    if (attrs & MASAttributeLeadingMargin) [attributes addObject:self.view.mas_leadingMargin];\n    if (attrs & MASAttributeTrailingMargin) [attributes addObject:self.view.mas_trailingMargin];\n    if (attrs & MASAttributeCenterXWithinMargins) [attributes addObject:self.view.mas_centerXWithinMargins];\n    if (attrs & MASAttributeCenterYWithinMargins) [attributes addObject:self.view.mas_centerYWithinMargins];\n    \n#endif\n    \n    NSMutableArray *children = [NSMutableArray arrayWithCapacity:attributes.count];\n    \n    for (MASViewAttribute *a in attributes) {\n        [children addObject:[[MASViewConstraint alloc] initWithFirstViewAttribute:a]];\n    }\n    \n    MASCompositeConstraint *constraint = [[MASCompositeConstraint alloc] initWithChildren:children];\n    constraint.delegate = self;\n    [self.constraints addObject:constraint];\n    return constraint;\n}\n\n#pragma mark - standard Attributes\n\n- (MASConstraint *)addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute {\n    return [self constraint:nil addConstraintWithLayoutAttribute:layoutAttribute];\n}\n\n- (MASConstraint *)left {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLeft];\n}\n\n- (MASConstraint *)top {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeTop];\n}\n\n- (MASConstraint *)right {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeRight];\n}\n\n- (MASConstraint *)bottom {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeBottom];\n}\n\n- (MASConstraint *)leading {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLeading];\n}\n\n- (MASConstraint *)trailing {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeTrailing];\n}\n\n- (MASConstraint *)width {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeWidth];\n}\n\n- (MASConstraint *)height {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeHeight];\n}\n\n- (MASConstraint *)centerX {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeCenterX];\n}\n\n- (MASConstraint *)centerY {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeCenterY];\n}\n\n- (MASConstraint *)baseline {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeBaseline];\n}\n\n- (MASConstraint *(^)(MASAttribute))attributes {\n    return ^(MASAttribute attrs){\n        return [self addConstraintWithAttributes:attrs];\n    };\n}\n\n#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)\n\n- (MASConstraint *)firstBaseline {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeFirstBaseline];\n}\n\n- (MASConstraint *)lastBaseline {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLastBaseline];\n}\n\n#endif\n\n\n#if TARGET_OS_IPHONE || TARGET_OS_TV\n\n- (MASConstraint *)leftMargin {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLeftMargin];\n}\n\n- (MASConstraint *)rightMargin {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeRightMargin];\n}\n\n- (MASConstraint *)topMargin {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeTopMargin];\n}\n\n- (MASConstraint *)bottomMargin {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeBottomMargin];\n}\n\n- (MASConstraint *)leadingMargin {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLeadingMargin];\n}\n\n- (MASConstraint *)trailingMargin {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeTrailingMargin];\n}\n\n- (MASConstraint *)centerXWithinMargins {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeCenterXWithinMargins];\n}\n\n- (MASConstraint *)centerYWithinMargins {\n    return [self addConstraintWithLayoutAttribute:NSLayoutAttributeCenterYWithinMargins];\n}\n\n#endif\n\n\n#pragma mark - composite Attributes\n\n- (MASConstraint *)edges {\n    return [self addConstraintWithAttributes:MASAttributeTop | MASAttributeLeft | MASAttributeRight | MASAttributeBottom];\n}\n\n- (MASConstraint *)size {\n    return [self addConstraintWithAttributes:MASAttributeWidth | MASAttributeHeight];\n}\n\n- (MASConstraint *)center {\n    return [self addConstraintWithAttributes:MASAttributeCenterX | MASAttributeCenterY];\n}\n\n#pragma mark - grouping\n\n- (MASConstraint *(^)(dispatch_block_t group))group {\n    return ^id(dispatch_block_t group) {\n        NSInteger previousCount = self.constraints.count;\n        group();\n\n        NSArray *children = [self.constraints subarrayWithRange:NSMakeRange(previousCount, self.constraints.count - previousCount)];\n        MASCompositeConstraint *constraint = [[MASCompositeConstraint alloc] initWithChildren:children];\n        constraint.delegate = self;\n        return constraint;\n    };\n}\n\n@end\n"
  },
  {
    "path": "Pods/Masonry/Masonry/MASLayoutConstraint.h",
    "content": "//\n//  MASLayoutConstraint.h\n//  Masonry\n//\n//  Created by Jonas Budelmann on 3/08/13.\n//  Copyright (c) 2013 Jonas Budelmann. All rights reserved.\n//\n\n#import \"MASUtilities.h\"\n\n/**\n *\tWhen you are debugging or printing the constraints attached to a view this subclass\n *  makes it easier to identify which constraints have been created via Masonry\n */\n@interface MASLayoutConstraint : NSLayoutConstraint\n\n/**\n *\ta key to associate with this constraint\n */\n@property (nonatomic, strong) id mas_key;\n\n@end\n"
  },
  {
    "path": "Pods/Masonry/Masonry/MASLayoutConstraint.m",
    "content": "//\n//  MASLayoutConstraint.m\n//  Masonry\n//\n//  Created by Jonas Budelmann on 3/08/13.\n//  Copyright (c) 2013 Jonas Budelmann. All rights reserved.\n//\n\n#import \"MASLayoutConstraint.h\"\n\n@implementation MASLayoutConstraint\n\n@end\n"
  },
  {
    "path": "Pods/Masonry/Masonry/MASUtilities.h",
    "content": "//\n//  MASUtilities.h\n//  Masonry\n//\n//  Created by Jonas Budelmann on 19/08/13.\n//  Copyright (c) 2013 Jonas Budelmann. All rights reserved.\n//\n\n#import <Foundation/Foundation.h>\n\n\n\n#if TARGET_OS_IPHONE || TARGET_OS_TV\n\n    #import <UIKit/UIKit.h>\n    #define MAS_VIEW UIView\n    #define MAS_VIEW_CONTROLLER UIViewController\n    #define MASEdgeInsets UIEdgeInsets\n\n    typedef UILayoutPriority MASLayoutPriority;\n    static const MASLayoutPriority MASLayoutPriorityRequired = UILayoutPriorityRequired;\n    static const MASLayoutPriority MASLayoutPriorityDefaultHigh = UILayoutPriorityDefaultHigh;\n    static const MASLayoutPriority MASLayoutPriorityDefaultMedium = 500;\n    static const MASLayoutPriority MASLayoutPriorityDefaultLow = UILayoutPriorityDefaultLow;\n    static const MASLayoutPriority MASLayoutPriorityFittingSizeLevel = UILayoutPriorityFittingSizeLevel;\n\n#elif TARGET_OS_MAC\n\n    #import <AppKit/AppKit.h>\n    #define MAS_VIEW NSView\n    #define MASEdgeInsets NSEdgeInsets\n\n    typedef NSLayoutPriority MASLayoutPriority;\n    static const MASLayoutPriority MASLayoutPriorityRequired = NSLayoutPriorityRequired;\n    static const MASLayoutPriority MASLayoutPriorityDefaultHigh = NSLayoutPriorityDefaultHigh;\n    static const MASLayoutPriority MASLayoutPriorityDragThatCanResizeWindow = NSLayoutPriorityDragThatCanResizeWindow;\n    static const MASLayoutPriority MASLayoutPriorityDefaultMedium = 501;\n    static const MASLayoutPriority MASLayoutPriorityWindowSizeStayPut = NSLayoutPriorityWindowSizeStayPut;\n    static const MASLayoutPriority MASLayoutPriorityDragThatCannotResizeWindow = NSLayoutPriorityDragThatCannotResizeWindow;\n    static const MASLayoutPriority MASLayoutPriorityDefaultLow = NSLayoutPriorityDefaultLow;\n    static const MASLayoutPriority MASLayoutPriorityFittingSizeCompression = NSLayoutPriorityFittingSizeCompression;\n\n#endif\n\n/**\n *\tAllows you to attach keys to objects matching the variable names passed.\n *\n *  view1.mas_key = @\"view1\", view2.mas_key = @\"view2\";\n *\n *  is equivalent to:\n *\n *  MASAttachKeys(view1, view2);\n */\n#define MASAttachKeys(...)                                                        \\\n    {                                                                             \\\n        NSDictionary *keyPairs = NSDictionaryOfVariableBindings(__VA_ARGS__);     \\\n        for (id key in keyPairs.allKeys) {                                        \\\n            id obj = keyPairs[key];                                               \\\n            NSAssert([obj respondsToSelector:@selector(setMas_key:)],             \\\n                     @\"Cannot attach mas_key to %@\", obj);                        \\\n            [obj setMas_key:key];                                                 \\\n        }                                                                         \\\n    }\n\n/**\n *  Used to create object hashes\n *  Based on http://www.mikeash.com/pyblog/friday-qa-2010-06-18-implementing-equality-and-hashing.html\n */\n#define MAS_NSUINT_BIT (CHAR_BIT * sizeof(NSUInteger))\n#define MAS_NSUINTROTATE(val, howmuch) ((((NSUInteger)val) << howmuch) | (((NSUInteger)val) >> (MAS_NSUINT_BIT - howmuch)))\n\n/**\n *  Given a scalar or struct value, wraps it in NSValue\n *  Based on EXPObjectify: https://github.com/specta/expecta\n */\nstatic inline id _MASBoxValue(const char *type, ...) {\n    va_list v;\n    va_start(v, type);\n    id obj = nil;\n    if (strcmp(type, @encode(id)) == 0) {\n        id actual = va_arg(v, id);\n        obj = actual;\n    } else if (strcmp(type, @encode(CGPoint)) == 0) {\n        CGPoint actual = (CGPoint)va_arg(v, CGPoint);\n        obj = [NSValue value:&actual withObjCType:type];\n    } else if (strcmp(type, @encode(CGSize)) == 0) {\n        CGSize actual = (CGSize)va_arg(v, CGSize);\n        obj = [NSValue value:&actual withObjCType:type];\n    } else if (strcmp(type, @encode(MASEdgeInsets)) == 0) {\n        MASEdgeInsets actual = (MASEdgeInsets)va_arg(v, MASEdgeInsets);\n        obj = [NSValue value:&actual withObjCType:type];\n    } else if (strcmp(type, @encode(double)) == 0) {\n        double actual = (double)va_arg(v, double);\n        obj = [NSNumber numberWithDouble:actual];\n    } else if (strcmp(type, @encode(float)) == 0) {\n        float actual = (float)va_arg(v, double);\n        obj = [NSNumber numberWithFloat:actual];\n    } else if (strcmp(type, @encode(int)) == 0) {\n        int actual = (int)va_arg(v, int);\n        obj = [NSNumber numberWithInt:actual];\n    } else if (strcmp(type, @encode(long)) == 0) {\n        long actual = (long)va_arg(v, long);\n        obj = [NSNumber numberWithLong:actual];\n    } else if (strcmp(type, @encode(long long)) == 0) {\n        long long actual = (long long)va_arg(v, long long);\n        obj = [NSNumber numberWithLongLong:actual];\n    } else if (strcmp(type, @encode(short)) == 0) {\n        short actual = (short)va_arg(v, int);\n        obj = [NSNumber numberWithShort:actual];\n    } else if (strcmp(type, @encode(char)) == 0) {\n        char actual = (char)va_arg(v, int);\n        obj = [NSNumber numberWithChar:actual];\n    } else if (strcmp(type, @encode(bool)) == 0) {\n        bool actual = (bool)va_arg(v, int);\n        obj = [NSNumber numberWithBool:actual];\n    } else if (strcmp(type, @encode(unsigned char)) == 0) {\n        unsigned char actual = (unsigned char)va_arg(v, unsigned int);\n        obj = [NSNumber numberWithUnsignedChar:actual];\n    } else if (strcmp(type, @encode(unsigned int)) == 0) {\n        unsigned int actual = (unsigned int)va_arg(v, unsigned int);\n        obj = [NSNumber numberWithUnsignedInt:actual];\n    } else if (strcmp(type, @encode(unsigned long)) == 0) {\n        unsigned long actual = (unsigned long)va_arg(v, unsigned long);\n        obj = [NSNumber numberWithUnsignedLong:actual];\n    } else if (strcmp(type, @encode(unsigned long long)) == 0) {\n        unsigned long long actual = (unsigned long long)va_arg(v, unsigned long long);\n        obj = [NSNumber numberWithUnsignedLongLong:actual];\n    } else if (strcmp(type, @encode(unsigned short)) == 0) {\n        unsigned short actual = (unsigned short)va_arg(v, unsigned int);\n        obj = [NSNumber numberWithUnsignedShort:actual];\n    }\n    va_end(v);\n    return obj;\n}\n\n#define MASBoxValue(value) _MASBoxValue(@encode(__typeof__((value))), (value))\n"
  },
  {
    "path": "Pods/Masonry/Masonry/MASViewAttribute.h",
    "content": "//\n//  MASAttribute.h\n//  Masonry\n//\n//  Created by Jonas Budelmann on 21/07/13.\n//  Copyright (c) 2013 cloudling. All rights reserved.\n//\n\n#import \"MASUtilities.h\"\n\n/**\n *  An immutable tuple which stores the view and the related NSLayoutAttribute.\n *  Describes part of either the left or right hand side of a constraint equation\n */\n@interface MASViewAttribute : NSObject\n\n/**\n *  The view which the reciever relates to. Can be nil if item is not a view.\n */\n@property (nonatomic, weak, readonly) MAS_VIEW *view;\n\n/**\n *  The item which the reciever relates to.\n */\n@property (nonatomic, weak, readonly) id item;\n\n/**\n *  The attribute which the reciever relates to\n */\n@property (nonatomic, assign, readonly) NSLayoutAttribute layoutAttribute;\n\n/**\n *  Convenience initializer.\n */\n- (id)initWithView:(MAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute;\n\n/**\n *  The designated initializer.\n */\n- (id)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute;\n\n/**\n *\tDetermine whether the layoutAttribute is a size attribute\n *\n *\t@return\tYES if layoutAttribute is equal to NSLayoutAttributeWidth or NSLayoutAttributeHeight\n */\n- (BOOL)isSizeAttribute;\n\n@end\n"
  },
  {
    "path": "Pods/Masonry/Masonry/MASViewAttribute.m",
    "content": "//\n//  MASAttribute.m\n//  Masonry\n//\n//  Created by Jonas Budelmann on 21/07/13.\n//  Copyright (c) 2013 cloudling. All rights reserved.\n//\n\n#import \"MASViewAttribute.h\"\n\n@implementation MASViewAttribute\n\n- (id)initWithView:(MAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute {\n    self = [self initWithView:view item:view layoutAttribute:layoutAttribute];\n    return self;\n}\n\n- (id)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute {\n    self = [super init];\n    if (!self) return nil;\n    \n    _view = view;\n    _item = item;\n    _layoutAttribute = layoutAttribute;\n    \n    return self;\n}\n\n- (BOOL)isSizeAttribute {\n    return self.layoutAttribute == NSLayoutAttributeWidth\n        || self.layoutAttribute == NSLayoutAttributeHeight;\n}\n\n- (BOOL)isEqual:(MASViewAttribute *)viewAttribute {\n    if ([viewAttribute isKindOfClass:self.class]) {\n        return self.view == viewAttribute.view\n            && self.layoutAttribute == viewAttribute.layoutAttribute;\n    }\n    return [super isEqual:viewAttribute];\n}\n\n- (NSUInteger)hash {\n    return MAS_NSUINTROTATE([self.view hash], MAS_NSUINT_BIT / 2) ^ self.layoutAttribute;\n}\n\n@end\n"
  },
  {
    "path": "Pods/Masonry/Masonry/MASViewConstraint.h",
    "content": "//\n//  MASConstraint.h\n//  Masonry\n//\n//  Created by Jonas Budelmann on 20/07/13.\n//  Copyright (c) 2013 cloudling. All rights reserved.\n//\n\n#import \"MASViewAttribute.h\"\n#import \"MASConstraint.h\"\n#import \"MASLayoutConstraint.h\"\n#import \"MASUtilities.h\"\n\n/**\n *  A single constraint.\n *  Contains the attributes neccessary for creating a NSLayoutConstraint and adding it to the appropriate view\n */\n@interface MASViewConstraint : MASConstraint <NSCopying>\n\n/**\n *\tFirst item/view and first attribute of the NSLayoutConstraint\n */\n@property (nonatomic, strong, readonly) MASViewAttribute *firstViewAttribute;\n\n/**\n *\tSecond item/view and second attribute of the NSLayoutConstraint\n */\n@property (nonatomic, strong, readonly) MASViewAttribute *secondViewAttribute;\n\n/**\n *\tinitialises the MASViewConstraint with the first part of the equation\n *\n *\t@param\tfirstViewAttribute\tview.mas_left, view.mas_width etc.\n *\n *\t@return\ta new view constraint\n */\n- (id)initWithFirstViewAttribute:(MASViewAttribute *)firstViewAttribute;\n\n/**\n *  Returns all MASViewConstraints installed with this view as a first item.\n *\n *  @param  view  A view to retrieve constraints for.\n *\n *  @return An array of MASViewConstraints.\n */\n+ (NSArray *)installedConstraintsForView:(MAS_VIEW *)view;\n\n@end\n"
  },
  {
    "path": "Pods/Masonry/Masonry/MASViewConstraint.m",
    "content": "//\n//  MASConstraint.m\n//  Masonry\n//\n//  Created by Jonas Budelmann on 20/07/13.\n//  Copyright (c) 2013 cloudling. All rights reserved.\n//\n\n#import \"MASViewConstraint.h\"\n#import \"MASConstraint+Private.h\"\n#import \"MASCompositeConstraint.h\"\n#import \"MASLayoutConstraint.h\"\n#import \"View+MASAdditions.h\"\n#import <objc/runtime.h>\n\n@interface MAS_VIEW (MASConstraints)\n\n@property (nonatomic, readonly) NSMutableSet *mas_installedConstraints;\n\n@end\n\n@implementation MAS_VIEW (MASConstraints)\n\nstatic char kInstalledConstraintsKey;\n\n- (NSMutableSet *)mas_installedConstraints {\n    NSMutableSet *constraints = objc_getAssociatedObject(self, &kInstalledConstraintsKey);\n    if (!constraints) {\n        constraints = [NSMutableSet set];\n        objc_setAssociatedObject(self, &kInstalledConstraintsKey, constraints, OBJC_ASSOCIATION_RETAIN_NONATOMIC);\n    }\n    return constraints;\n}\n\n@end\n\n\n@interface MASViewConstraint ()\n\n@property (nonatomic, strong, readwrite) MASViewAttribute *secondViewAttribute;\n@property (nonatomic, weak) MAS_VIEW *installedView;\n@property (nonatomic, weak) MASLayoutConstraint *layoutConstraint;\n@property (nonatomic, assign) NSLayoutRelation layoutRelation;\n@property (nonatomic, assign) MASLayoutPriority layoutPriority;\n@property (nonatomic, assign) CGFloat layoutMultiplier;\n@property (nonatomic, assign) CGFloat layoutConstant;\n@property (nonatomic, assign) BOOL hasLayoutRelation;\n@property (nonatomic, strong) id mas_key;\n@property (nonatomic, assign) BOOL useAnimator;\n\n@end\n\n@implementation MASViewConstraint\n\n- (id)initWithFirstViewAttribute:(MASViewAttribute *)firstViewAttribute {\n    self = [super init];\n    if (!self) return nil;\n    \n    _firstViewAttribute = firstViewAttribute;\n    self.layoutPriority = MASLayoutPriorityRequired;\n    self.layoutMultiplier = 1;\n    \n    return self;\n}\n\n#pragma mark - NSCoping\n\n- (id)copyWithZone:(NSZone __unused *)zone {\n    MASViewConstraint *constraint = [[MASViewConstraint alloc] initWithFirstViewAttribute:self.firstViewAttribute];\n    constraint.layoutConstant = self.layoutConstant;\n    constraint.layoutRelation = self.layoutRelation;\n    constraint.layoutPriority = self.layoutPriority;\n    constraint.layoutMultiplier = self.layoutMultiplier;\n    constraint.delegate = self.delegate;\n    return constraint;\n}\n\n#pragma mark - Public\n\n+ (NSArray *)installedConstraintsForView:(MAS_VIEW *)view {\n    return [view.mas_installedConstraints allObjects];\n}\n\n#pragma mark - Private\n\n- (void)setLayoutConstant:(CGFloat)layoutConstant {\n    _layoutConstant = layoutConstant;\n\n#if TARGET_OS_MAC && !(TARGET_OS_IPHONE || TARGET_OS_TV)\n    if (self.useAnimator) {\n        [self.layoutConstraint.animator setConstant:layoutConstant];\n    } else {\n        self.layoutConstraint.constant = layoutConstant;\n    }\n#else\n    self.layoutConstraint.constant = layoutConstant;\n#endif\n}\n\n- (void)setLayoutRelation:(NSLayoutRelation)layoutRelation {\n    _layoutRelation = layoutRelation;\n    self.hasLayoutRelation = YES;\n}\n\n- (BOOL)supportsActiveProperty {\n    return [self.layoutConstraint respondsToSelector:@selector(isActive)];\n}\n\n- (BOOL)isActive {\n    BOOL active = YES;\n    if ([self supportsActiveProperty]) {\n        active = [self.layoutConstraint isActive];\n    }\n\n    return active;\n}\n\n- (BOOL)hasBeenInstalled {\n    return (self.layoutConstraint != nil) && [self isActive];\n}\n\n- (void)setSecondViewAttribute:(id)secondViewAttribute {\n    if ([secondViewAttribute isKindOfClass:NSValue.class]) {\n        [self setLayoutConstantWithValue:secondViewAttribute];\n    } else if ([secondViewAttribute isKindOfClass:MAS_VIEW.class]) {\n        _secondViewAttribute = [[MASViewAttribute alloc] initWithView:secondViewAttribute layoutAttribute:self.firstViewAttribute.layoutAttribute];\n    } else if ([secondViewAttribute isKindOfClass:MASViewAttribute.class]) {\n        _secondViewAttribute = secondViewAttribute;\n    } else {\n        NSAssert(NO, @\"attempting to add unsupported attribute: %@\", secondViewAttribute);\n    }\n}\n\n#pragma mark - NSLayoutConstraint multiplier proxies\n\n- (MASConstraint * (^)(CGFloat))multipliedBy {\n    return ^id(CGFloat multiplier) {\n        NSAssert(!self.hasBeenInstalled,\n                 @\"Cannot modify constraint multiplier after it has been installed\");\n        \n        self.layoutMultiplier = multiplier;\n        return self;\n    };\n}\n\n\n- (MASConstraint * (^)(CGFloat))dividedBy {\n    return ^id(CGFloat divider) {\n        NSAssert(!self.hasBeenInstalled,\n                 @\"Cannot modify constraint multiplier after it has been installed\");\n\n        self.layoutMultiplier = 1.0/divider;\n        return self;\n    };\n}\n\n#pragma mark - MASLayoutPriority proxy\n\n- (MASConstraint * (^)(MASLayoutPriority))priority {\n    return ^id(MASLayoutPriority priority) {\n        NSAssert(!self.hasBeenInstalled,\n                 @\"Cannot modify constraint priority after it has been installed\");\n        \n        self.layoutPriority = priority;\n        return self;\n    };\n}\n\n#pragma mark - NSLayoutRelation proxy\n\n- (MASConstraint * (^)(id, NSLayoutRelation))equalToWithRelation {\n    return ^id(id attribute, NSLayoutRelation relation) {\n        if ([attribute isKindOfClass:NSArray.class]) {\n            NSAssert(!self.hasLayoutRelation, @\"Redefinition of constraint relation\");\n            NSMutableArray *children = NSMutableArray.new;\n            for (id attr in attribute) {\n                MASViewConstraint *viewConstraint = [self copy];\n                viewConstraint.secondViewAttribute = attr;\n                [children addObject:viewConstraint];\n            }\n            MASCompositeConstraint *compositeConstraint = [[MASCompositeConstraint alloc] initWithChildren:children];\n            compositeConstraint.delegate = self.delegate;\n            [self.delegate constraint:self shouldBeReplacedWithConstraint:compositeConstraint];\n            return compositeConstraint;\n        } else {\n            NSAssert(!self.hasLayoutRelation || self.layoutRelation == relation && [attribute isKindOfClass:NSValue.class], @\"Redefinition of constraint relation\");\n            self.layoutRelation = relation;\n            self.secondViewAttribute = attribute;\n            return self;\n        }\n    };\n}\n\n#pragma mark - Semantic properties\n\n- (MASConstraint *)with {\n    return self;\n}\n\n- (MASConstraint *)and {\n    return self;\n}\n\n#pragma mark - attribute chaining\n\n- (MASConstraint *)addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute {\n    NSAssert(!self.hasLayoutRelation, @\"Attributes should be chained before defining the constraint relation\");\n\n    return [self.delegate constraint:self addConstraintWithLayoutAttribute:layoutAttribute];\n}\n\n#pragma mark - Animator proxy\n\n#if TARGET_OS_MAC && !(TARGET_OS_IPHONE || TARGET_OS_TV)\n\n- (MASConstraint *)animator {\n    self.useAnimator = YES;\n    return self;\n}\n\n#endif\n\n#pragma mark - debug helpers\n\n- (MASConstraint * (^)(id))key {\n    return ^id(id key) {\n        self.mas_key = key;\n        return self;\n    };\n}\n\n#pragma mark - NSLayoutConstraint constant setters\n\n- (void)setInsets:(MASEdgeInsets)insets {\n    NSLayoutAttribute layoutAttribute = self.firstViewAttribute.layoutAttribute;\n    switch (layoutAttribute) {\n        case NSLayoutAttributeLeft:\n        case NSLayoutAttributeLeading:\n            self.layoutConstant = insets.left;\n            break;\n        case NSLayoutAttributeTop:\n            self.layoutConstant = insets.top;\n            break;\n        case NSLayoutAttributeBottom:\n            self.layoutConstant = -insets.bottom;\n            break;\n        case NSLayoutAttributeRight:\n        case NSLayoutAttributeTrailing:\n            self.layoutConstant = -insets.right;\n            break;\n        default:\n            break;\n    }\n}\n\n- (void)setOffset:(CGFloat)offset {\n    self.layoutConstant = offset;\n}\n\n- (void)setSizeOffset:(CGSize)sizeOffset {\n    NSLayoutAttribute layoutAttribute = self.firstViewAttribute.layoutAttribute;\n    switch (layoutAttribute) {\n        case NSLayoutAttributeWidth:\n            self.layoutConstant = sizeOffset.width;\n            break;\n        case NSLayoutAttributeHeight:\n            self.layoutConstant = sizeOffset.height;\n            break;\n        default:\n            break;\n    }\n}\n\n- (void)setCenterOffset:(CGPoint)centerOffset {\n    NSLayoutAttribute layoutAttribute = self.firstViewAttribute.layoutAttribute;\n    switch (layoutAttribute) {\n        case NSLayoutAttributeCenterX:\n            self.layoutConstant = centerOffset.x;\n            break;\n        case NSLayoutAttributeCenterY:\n            self.layoutConstant = centerOffset.y;\n            break;\n        default:\n            break;\n    }\n}\n\n#pragma mark - MASConstraint\n\n- (void)activate {\n    [self install];\n}\n\n- (void)deactivate {\n    [self uninstall];\n}\n\n- (void)install {\n    if (self.hasBeenInstalled) {\n        return;\n    }\n    \n    if ([self supportsActiveProperty] && self.layoutConstraint) {\n        self.layoutConstraint.active = YES;\n        [self.firstViewAttribute.view.mas_installedConstraints addObject:self];\n        return;\n    }\n    \n    MAS_VIEW *firstLayoutItem = self.firstViewAttribute.item;\n    NSLayoutAttribute firstLayoutAttribute = self.firstViewAttribute.layoutAttribute;\n    MAS_VIEW *secondLayoutItem = self.secondViewAttribute.item;\n    NSLayoutAttribute secondLayoutAttribute = self.secondViewAttribute.layoutAttribute;\n\n    // alignment attributes must have a secondViewAttribute\n    // therefore we assume that is refering to superview\n    // eg make.left.equalTo(@10)\n    if (!self.firstViewAttribute.isSizeAttribute && !self.secondViewAttribute) {\n        secondLayoutItem = self.firstViewAttribute.view.superview;\n        secondLayoutAttribute = firstLayoutAttribute;\n    }\n    \n    MASLayoutConstraint *layoutConstraint\n        = [MASLayoutConstraint constraintWithItem:firstLayoutItem\n                                        attribute:firstLayoutAttribute\n                                        relatedBy:self.layoutRelation\n                                           toItem:secondLayoutItem\n                                        attribute:secondLayoutAttribute\n                                       multiplier:self.layoutMultiplier\n                                         constant:self.layoutConstant];\n    \n    layoutConstraint.priority = self.layoutPriority;\n    layoutConstraint.mas_key = self.mas_key;\n    \n    if (self.secondViewAttribute.view) {\n        MAS_VIEW *closestCommonSuperview = [self.firstViewAttribute.view mas_closestCommonSuperview:self.secondViewAttribute.view];\n        NSAssert(closestCommonSuperview,\n                 @\"couldn't find a common superview for %@ and %@\",\n                 self.firstViewAttribute.view, self.secondViewAttribute.view);\n        self.installedView = closestCommonSuperview;\n    } else if (self.firstViewAttribute.isSizeAttribute) {\n        self.installedView = self.firstViewAttribute.view;\n    } else {\n        self.installedView = self.firstViewAttribute.view.superview;\n    }\n\n\n    MASLayoutConstraint *existingConstraint = nil;\n    if (self.updateExisting) {\n        existingConstraint = [self layoutConstraintSimilarTo:layoutConstraint];\n    }\n    if (existingConstraint) {\n        // just update the constant\n        existingConstraint.constant = layoutConstraint.constant;\n        self.layoutConstraint = existingConstraint;\n    } else {\n        [self.installedView addConstraint:layoutConstraint];\n        self.layoutConstraint = layoutConstraint;\n        [firstLayoutItem.mas_installedConstraints addObject:self];\n    }\n}\n\n- (MASLayoutConstraint *)layoutConstraintSimilarTo:(MASLayoutConstraint *)layoutConstraint {\n    // check if any constraints are the same apart from the only mutable property constant\n\n    // go through constraints in reverse as we do not want to match auto-resizing or interface builder constraints\n    // and they are likely to be added first.\n    for (NSLayoutConstraint *existingConstraint in self.installedView.constraints.reverseObjectEnumerator) {\n        if (![existingConstraint isKindOfClass:MASLayoutConstraint.class]) continue;\n        if (existingConstraint.firstItem != layoutConstraint.firstItem) continue;\n        if (existingConstraint.secondItem != layoutConstraint.secondItem) continue;\n        if (existingConstraint.firstAttribute != layoutConstraint.firstAttribute) continue;\n        if (existingConstraint.secondAttribute != layoutConstraint.secondAttribute) continue;\n        if (existingConstraint.relation != layoutConstraint.relation) continue;\n        if (existingConstraint.multiplier != layoutConstraint.multiplier) continue;\n        if (existingConstraint.priority != layoutConstraint.priority) continue;\n\n        return (id)existingConstraint;\n    }\n    return nil;\n}\n\n- (void)uninstall {\n    if ([self supportsActiveProperty]) {\n        self.layoutConstraint.active = NO;\n        [self.firstViewAttribute.view.mas_installedConstraints removeObject:self];\n        return;\n    }\n    \n    [self.installedView removeConstraint:self.layoutConstraint];\n    self.layoutConstraint = nil;\n    self.installedView = nil;\n    \n    [self.firstViewAttribute.view.mas_installedConstraints removeObject:self];\n}\n\n@end\n"
  },
  {
    "path": "Pods/Masonry/Masonry/Masonry.h",
    "content": "//\n//  Masonry.h\n//  Masonry\n//\n//  Created by Jonas Budelmann on 20/07/13.\n//  Copyright (c) 2013 cloudling. All rights reserved.\n//\n\n#import <Foundation/Foundation.h>\n\n//! Project version number for Masonry.\nFOUNDATION_EXPORT double MasonryVersionNumber;\n\n//! Project version string for Masonry.\nFOUNDATION_EXPORT const unsigned char MasonryVersionString[];\n\n#import \"MASUtilities.h\"\n#import \"View+MASAdditions.h\"\n#import \"View+MASShorthandAdditions.h\"\n#import \"ViewController+MASAdditions.h\"\n#import \"NSArray+MASAdditions.h\"\n#import \"NSArray+MASShorthandAdditions.h\"\n#import \"MASConstraint.h\"\n#import \"MASCompositeConstraint.h\"\n#import \"MASViewAttribute.h\"\n#import \"MASViewConstraint.h\"\n#import \"MASConstraintMaker.h\"\n#import \"MASLayoutConstraint.h\"\n#import \"NSLayoutConstraint+MASDebugAdditions.h\"\n"
  },
  {
    "path": "Pods/Masonry/Masonry/NSArray+MASAdditions.h",
    "content": "//\n//  NSArray+MASAdditions.h\n//\n//\n//  Created by Daniel Hammond on 11/26/13.\n//\n//\n\n#import \"MASUtilities.h\"\n#import \"MASConstraintMaker.h\"\n#import \"MASViewAttribute.h\"\n\ntypedef NS_ENUM(NSUInteger, MASAxisType) {\n    MASAxisTypeHorizontal,\n    MASAxisTypeVertical\n};\n\n@interface NSArray (MASAdditions)\n\n/**\n *  Creates a MASConstraintMaker with each view in the callee.\n *  Any constraints defined are added to the view or the appropriate superview once the block has finished executing on each view\n *\n *  @param block scope within which you can build up the constraints which you wish to apply to each view.\n *\n *  @return Array of created MASConstraints\n */\n- (NSArray *)mas_makeConstraints:(void (^)(MASConstraintMaker *make))block;\n\n/**\n *  Creates a MASConstraintMaker with each view in the callee.\n *  Any constraints defined are added to each view or the appropriate superview once the block has finished executing on each view.\n *  If an existing constraint exists then it will be updated instead.\n *\n *  @param block scope within which you can build up the constraints which you wish to apply to each view.\n *\n *  @return Array of created/updated MASConstraints\n */\n- (NSArray *)mas_updateConstraints:(void (^)(MASConstraintMaker *make))block;\n\n/**\n *  Creates a MASConstraintMaker with each view in the callee.\n *  Any constraints defined are added to each view or the appropriate superview once the block has finished executing on each view.\n *  All constraints previously installed for the views will be removed.\n *\n *  @param block scope within which you can build up the constraints which you wish to apply to each view.\n *\n *  @return Array of created/updated MASConstraints\n */\n- (NSArray *)mas_remakeConstraints:(void (^)(MASConstraintMaker *make))block;\n\n/**\n *  distribute with fixed spacing\n *\n *  @param axisType     which axis to distribute items along\n *  @param fixedSpacing the spacing between each item\n *  @param leadSpacing  the spacing before the first item and the container\n *  @param tailSpacing  the spacing after the last item and the container\n */\n- (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType withFixedSpacing:(CGFloat)fixedSpacing leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing;\n\n/**\n *  distribute with fixed item size\n *\n *  @param axisType        which axis to distribute items along\n *  @param fixedItemLength the fixed length of each item\n *  @param leadSpacing     the spacing before the first item and the container\n *  @param tailSpacing     the spacing after the last item and the container\n */\n- (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType withFixedItemLength:(CGFloat)fixedItemLength leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing;\n\n@end\n"
  },
  {
    "path": "Pods/Masonry/Masonry/NSArray+MASAdditions.m",
    "content": "//\n//  NSArray+MASAdditions.m\n//  \n//\n//  Created by Daniel Hammond on 11/26/13.\n//\n//\n\n#import \"NSArray+MASAdditions.h\"\n#import \"View+MASAdditions.h\"\n\n@implementation NSArray (MASAdditions)\n\n- (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *make))block {\n    NSMutableArray *constraints = [NSMutableArray array];\n    for (MAS_VIEW *view in self) {\n        NSAssert([view isKindOfClass:[MAS_VIEW class]], @\"All objects in the array must be views\");\n        [constraints addObjectsFromArray:[view mas_makeConstraints:block]];\n    }\n    return constraints;\n}\n\n- (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *make))block {\n    NSMutableArray *constraints = [NSMutableArray array];\n    for (MAS_VIEW *view in self) {\n        NSAssert([view isKindOfClass:[MAS_VIEW class]], @\"All objects in the array must be views\");\n        [constraints addObjectsFromArray:[view mas_updateConstraints:block]];\n    }\n    return constraints;\n}\n\n- (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block {\n    NSMutableArray *constraints = [NSMutableArray array];\n    for (MAS_VIEW *view in self) {\n        NSAssert([view isKindOfClass:[MAS_VIEW class]], @\"All objects in the array must be views\");\n        [constraints addObjectsFromArray:[view mas_remakeConstraints:block]];\n    }\n    return constraints;\n}\n\n- (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType withFixedSpacing:(CGFloat)fixedSpacing leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing {\n    if (self.count < 2) {\n        NSAssert(self.count>1,@\"views to distribute need to bigger than one\");\n        return;\n    }\n    \n    MAS_VIEW *tempSuperView = [self mas_commonSuperviewOfViews];\n    if (axisType == MASAxisTypeHorizontal) {\n        MAS_VIEW *prev;\n        for (int i = 0; i < self.count; i++) {\n            MAS_VIEW *v = self[i];\n            [v mas_makeConstraints:^(MASConstraintMaker *make) {\n                if (prev) {\n                    make.width.equalTo(prev);\n                    make.left.equalTo(prev.mas_right).offset(fixedSpacing);\n                    if (i == self.count - 1) {//last one\n                        make.right.equalTo(tempSuperView).offset(-tailSpacing);\n                    }\n                }\n                else {//first one\n                    make.left.equalTo(tempSuperView).offset(leadSpacing);\n                }\n                \n            }];\n            prev = v;\n        }\n    }\n    else {\n        MAS_VIEW *prev;\n        for (int i = 0; i < self.count; i++) {\n            MAS_VIEW *v = self[i];\n            [v mas_makeConstraints:^(MASConstraintMaker *make) {\n                if (prev) {\n                    make.height.equalTo(prev);\n                    make.top.equalTo(prev.mas_bottom).offset(fixedSpacing);\n                    if (i == self.count - 1) {//last one\n                        make.bottom.equalTo(tempSuperView).offset(-tailSpacing);\n                    }                    \n                }\n                else {//first one\n                    make.top.equalTo(tempSuperView).offset(leadSpacing);\n                }\n                \n            }];\n            prev = v;\n        }\n    }\n}\n\n- (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType withFixedItemLength:(CGFloat)fixedItemLength leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing {\n    if (self.count < 2) {\n        NSAssert(self.count>1,@\"views to distribute need to bigger than one\");\n        return;\n    }\n    \n    MAS_VIEW *tempSuperView = [self mas_commonSuperviewOfViews];\n    if (axisType == MASAxisTypeHorizontal) {\n        MAS_VIEW *prev;\n        for (int i = 0; i < self.count; i++) {\n            MAS_VIEW *v = self[i];\n            [v mas_makeConstraints:^(MASConstraintMaker *make) {\n                if (prev) {\n                    CGFloat offset = (1-(i/((CGFloat)self.count-1)))*(fixedItemLength+leadSpacing)-i*tailSpacing/(((CGFloat)self.count-1));\n                    make.width.equalTo(@(fixedItemLength));\n                    if (i == self.count - 1) {//last one\n                        make.right.equalTo(tempSuperView).offset(-tailSpacing);\n                    }\n                    else {\n                        make.right.equalTo(tempSuperView).multipliedBy(i/((CGFloat)self.count-1)).with.offset(offset);\n                    }\n                }\n                else {//first one\n                    make.left.equalTo(tempSuperView).offset(leadSpacing);\n                    make.width.equalTo(@(fixedItemLength));\n                }\n            }];\n            prev = v;\n        }\n    }\n    else {\n        MAS_VIEW *prev;\n        for (int i = 0; i < self.count; i++) {\n            MAS_VIEW *v = self[i];\n            [v mas_makeConstraints:^(MASConstraintMaker *make) {\n                if (prev) {\n                    CGFloat offset = (1-(i/((CGFloat)self.count-1)))*(fixedItemLength+leadSpacing)-i*tailSpacing/(((CGFloat)self.count-1));\n                    make.height.equalTo(@(fixedItemLength));\n                    if (i == self.count - 1) {//last one\n                        make.bottom.equalTo(tempSuperView).offset(-tailSpacing);\n                    }\n                    else {\n                        make.bottom.equalTo(tempSuperView).multipliedBy(i/((CGFloat)self.count-1)).with.offset(offset);\n                    }\n                }\n                else {//first one\n                    make.top.equalTo(tempSuperView).offset(leadSpacing);\n                    make.height.equalTo(@(fixedItemLength));\n                }\n            }];\n            prev = v;\n        }\n    }\n}\n\n- (MAS_VIEW *)mas_commonSuperviewOfViews\n{\n    MAS_VIEW *commonSuperview = nil;\n    MAS_VIEW *previousView = nil;\n    for (id object in self) {\n        if ([object isKindOfClass:[MAS_VIEW class]]) {\n            MAS_VIEW *view = (MAS_VIEW *)object;\n            if (previousView) {\n                commonSuperview = [view mas_closestCommonSuperview:commonSuperview];\n            } else {\n                commonSuperview = view;\n            }\n            previousView = view;\n        }\n    }\n    NSAssert(commonSuperview, @\"Can't constrain views that do not share a common superview. Make sure that all the views in this array have been added into the same view hierarchy.\");\n    return commonSuperview;\n}\n\n@end\n"
  },
  {
    "path": "Pods/Masonry/Masonry/NSArray+MASShorthandAdditions.h",
    "content": "//\n//  NSArray+MASShorthandAdditions.h\n//  Masonry\n//\n//  Created by Jonas Budelmann on 22/07/13.\n//  Copyright (c) 2013 Jonas Budelmann. All rights reserved.\n//\n\n#import \"NSArray+MASAdditions.h\"\n\n#ifdef MAS_SHORTHAND\n\n/**\n *\tShorthand array additions without the 'mas_' prefixes,\n *  only enabled if MAS_SHORTHAND is defined\n */\n@interface NSArray (MASShorthandAdditions)\n\n- (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *make))block;\n- (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *make))block;\n- (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *make))block;\n\n@end\n\n@implementation NSArray (MASShorthandAdditions)\n\n- (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *))block {\n    return [self mas_makeConstraints:block];\n}\n\n- (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *))block {\n    return [self mas_updateConstraints:block];\n}\n\n- (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *))block {\n    return [self mas_remakeConstraints:block];\n}\n\n@end\n\n#endif\n"
  },
  {
    "path": "Pods/Masonry/Masonry/NSLayoutConstraint+MASDebugAdditions.h",
    "content": "//\n//  NSLayoutConstraint+MASDebugAdditions.h\n//  Masonry\n//\n//  Created by Jonas Budelmann on 3/08/13.\n//  Copyright (c) 2013 Jonas Budelmann. All rights reserved.\n//\n\n#import \"MASUtilities.h\"\n\n/**\n *\tmakes debug and log output of NSLayoutConstraints more readable\n */\n@interface NSLayoutConstraint (MASDebugAdditions)\n\n@end\n"
  },
  {
    "path": "Pods/Masonry/Masonry/NSLayoutConstraint+MASDebugAdditions.m",
    "content": "//\n//  NSLayoutConstraint+MASDebugAdditions.m\n//  Masonry\n//\n//  Created by Jonas Budelmann on 3/08/13.\n//  Copyright (c) 2013 Jonas Budelmann. All rights reserved.\n//\n\n#import \"NSLayoutConstraint+MASDebugAdditions.h\"\n#import \"MASConstraint.h\"\n#import \"MASLayoutConstraint.h\"\n\n@implementation NSLayoutConstraint (MASDebugAdditions)\n\n#pragma mark - description maps\n\n+ (NSDictionary *)layoutRelationDescriptionsByValue {\n    static dispatch_once_t once;\n    static NSDictionary *descriptionMap;\n    dispatch_once(&once, ^{\n        descriptionMap = @{\n            @(NSLayoutRelationEqual)                : @\"==\",\n            @(NSLayoutRelationGreaterThanOrEqual)   : @\">=\",\n            @(NSLayoutRelationLessThanOrEqual)      : @\"<=\",\n        };\n    });\n    return descriptionMap;\n}\n\n+ (NSDictionary *)layoutAttributeDescriptionsByValue {\n    static dispatch_once_t once;\n    static NSDictionary *descriptionMap;\n    dispatch_once(&once, ^{\n        descriptionMap = @{\n            @(NSLayoutAttributeTop)      : @\"top\",\n            @(NSLayoutAttributeLeft)     : @\"left\",\n            @(NSLayoutAttributeBottom)   : @\"bottom\",\n            @(NSLayoutAttributeRight)    : @\"right\",\n            @(NSLayoutAttributeLeading)  : @\"leading\",\n            @(NSLayoutAttributeTrailing) : @\"trailing\",\n            @(NSLayoutAttributeWidth)    : @\"width\",\n            @(NSLayoutAttributeHeight)   : @\"height\",\n            @(NSLayoutAttributeCenterX)  : @\"centerX\",\n            @(NSLayoutAttributeCenterY)  : @\"centerY\",\n            @(NSLayoutAttributeBaseline) : @\"baseline\",\n            \n#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)\n            @(NSLayoutAttributeFirstBaseline) : @\"firstBaseline\",\n            @(NSLayoutAttributeLastBaseline) : @\"lastBaseline\",\n#endif\n            \n#if TARGET_OS_IPHONE || TARGET_OS_TV\n            @(NSLayoutAttributeLeftMargin)           : @\"leftMargin\",\n            @(NSLayoutAttributeRightMargin)          : @\"rightMargin\",\n            @(NSLayoutAttributeTopMargin)            : @\"topMargin\",\n            @(NSLayoutAttributeBottomMargin)         : @\"bottomMargin\",\n            @(NSLayoutAttributeLeadingMargin)        : @\"leadingMargin\",\n            @(NSLayoutAttributeTrailingMargin)       : @\"trailingMargin\",\n            @(NSLayoutAttributeCenterXWithinMargins) : @\"centerXWithinMargins\",\n            @(NSLayoutAttributeCenterYWithinMargins) : @\"centerYWithinMargins\",\n#endif\n            \n        };\n    \n    });\n    return descriptionMap;\n}\n\n\n+ (NSDictionary *)layoutPriorityDescriptionsByValue {\n    static dispatch_once_t once;\n    static NSDictionary *descriptionMap;\n    dispatch_once(&once, ^{\n#if TARGET_OS_IPHONE || TARGET_OS_TV\n        descriptionMap = @{\n            @(MASLayoutPriorityDefaultHigh)      : @\"high\",\n            @(MASLayoutPriorityDefaultLow)       : @\"low\",\n            @(MASLayoutPriorityDefaultMedium)    : @\"medium\",\n            @(MASLayoutPriorityRequired)         : @\"required\",\n            @(MASLayoutPriorityFittingSizeLevel) : @\"fitting size\",\n        };\n#elif TARGET_OS_MAC\n        descriptionMap = @{\n            @(MASLayoutPriorityDefaultHigh)                 : @\"high\",\n            @(MASLayoutPriorityDragThatCanResizeWindow)     : @\"drag can resize window\",\n            @(MASLayoutPriorityDefaultMedium)               : @\"medium\",\n            @(MASLayoutPriorityWindowSizeStayPut)           : @\"window size stay put\",\n            @(MASLayoutPriorityDragThatCannotResizeWindow)  : @\"drag cannot resize window\",\n            @(MASLayoutPriorityDefaultLow)                  : @\"low\",\n            @(MASLayoutPriorityFittingSizeCompression)      : @\"fitting size\",\n            @(MASLayoutPriorityRequired)                    : @\"required\",\n        };\n#endif\n    });\n    return descriptionMap;\n}\n\n#pragma mark - description override\n\n+ (NSString *)descriptionForObject:(id)obj {\n    if ([obj respondsToSelector:@selector(mas_key)] && [obj mas_key]) {\n        return [NSString stringWithFormat:@\"%@:%@\", [obj class], [obj mas_key]];\n    }\n    return [NSString stringWithFormat:@\"%@:%p\", [obj class], obj];\n}\n\n- (NSString *)description {\n    NSMutableString *description = [[NSMutableString alloc] initWithString:@\"<\"];\n\n    [description appendString:[self.class descriptionForObject:self]];\n\n    [description appendFormat:@\" %@\", [self.class descriptionForObject:self.firstItem]];\n    if (self.firstAttribute != NSLayoutAttributeNotAnAttribute) {\n        [description appendFormat:@\".%@\", self.class.layoutAttributeDescriptionsByValue[@(self.firstAttribute)]];\n    }\n\n    [description appendFormat:@\" %@\", self.class.layoutRelationDescriptionsByValue[@(self.relation)]];\n\n    if (self.secondItem) {\n        [description appendFormat:@\" %@\", [self.class descriptionForObject:self.secondItem]];\n    }\n    if (self.secondAttribute != NSLayoutAttributeNotAnAttribute) {\n        [description appendFormat:@\".%@\", self.class.layoutAttributeDescriptionsByValue[@(self.secondAttribute)]];\n    }\n    \n    if (self.multiplier != 1) {\n        [description appendFormat:@\" * %g\", self.multiplier];\n    }\n    \n    if (self.secondAttribute == NSLayoutAttributeNotAnAttribute) {\n        [description appendFormat:@\" %g\", self.constant];\n    } else {\n        if (self.constant) {\n            [description appendFormat:@\" %@ %g\", (self.constant < 0 ? @\"-\" : @\"+\"), ABS(self.constant)];\n        }\n    }\n\n    if (self.priority != MASLayoutPriorityRequired) {\n        [description appendFormat:@\" ^%@\", self.class.layoutPriorityDescriptionsByValue[@(self.priority)] ?: [NSNumber numberWithDouble:self.priority]];\n    }\n\n    [description appendString:@\">\"];\n    return description;\n}\n\n@end\n"
  },
  {
    "path": "Pods/Masonry/Masonry/View+MASAdditions.h",
    "content": "//\n//  UIView+MASAdditions.h\n//  Masonry\n//\n//  Created by Jonas Budelmann on 20/07/13.\n//  Copyright (c) 2013 cloudling. All rights reserved.\n//\n\n#import \"MASUtilities.h\"\n#import \"MASConstraintMaker.h\"\n#import \"MASViewAttribute.h\"\n\n/**\n *\tProvides constraint maker block\n *  and convience methods for creating MASViewAttribute which are view + NSLayoutAttribute pairs\n */\n@interface MAS_VIEW (MASAdditions)\n\n/**\n *\tfollowing properties return a new MASViewAttribute with current view and appropriate NSLayoutAttribute\n */\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_left;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_top;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_right;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_bottom;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_leading;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_trailing;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_width;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_height;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_centerX;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_centerY;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_baseline;\n@property (nonatomic, strong, readonly) MASViewAttribute *(^mas_attribute)(NSLayoutAttribute attr);\n\n#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)\n\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_firstBaseline;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_lastBaseline;\n\n#endif\n\n#if TARGET_OS_IPHONE || TARGET_OS_TV\n\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_leftMargin;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_rightMargin;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_topMargin;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomMargin;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_leadingMargin;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_trailingMargin;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_centerXWithinMargins;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_centerYWithinMargins;\n\n#endif\n\n/**\n *\ta key to associate with this view\n */\n@property (nonatomic, strong) id mas_key;\n\n/**\n *\tFinds the closest common superview between this view and another view\n *\n *\t@param\tview\tother view\n *\n *\t@return\treturns nil if common superview could not be found\n */\n- (instancetype)mas_closestCommonSuperview:(MAS_VIEW *)view;\n\n/**\n *  Creates a MASConstraintMaker with the callee view.\n *  Any constraints defined are added to the view or the appropriate superview once the block has finished executing\n *\n *  @param block scope within which you can build up the constraints which you wish to apply to the view.\n *\n *  @return Array of created MASConstraints\n */\n- (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *make))block;\n\n/**\n *  Creates a MASConstraintMaker with the callee view.\n *  Any constraints defined are added to the view or the appropriate superview once the block has finished executing.\n *  If an existing constraint exists then it will be updated instead.\n *\n *  @param block scope within which you can build up the constraints which you wish to apply to the view.\n *\n *  @return Array of created/updated MASConstraints\n */\n- (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *make))block;\n\n/**\n *  Creates a MASConstraintMaker with the callee view.\n *  Any constraints defined are added to the view or the appropriate superview once the block has finished executing.\n *  All constraints previously installed for the view will be removed.\n *\n *  @param block scope within which you can build up the constraints which you wish to apply to the view.\n *\n *  @return Array of created/updated MASConstraints\n */\n- (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block;\n\n@end\n"
  },
  {
    "path": "Pods/Masonry/Masonry/View+MASAdditions.m",
    "content": "//\n//  UIView+MASAdditions.m\n//  Masonry\n//\n//  Created by Jonas Budelmann on 20/07/13.\n//  Copyright (c) 2013 cloudling. All rights reserved.\n//\n\n#import \"View+MASAdditions.h\"\n#import <objc/runtime.h>\n\n@implementation MAS_VIEW (MASAdditions)\n\n- (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *))block {\n    self.translatesAutoresizingMaskIntoConstraints = NO;\n    MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithView:self];\n    block(constraintMaker);\n    return [constraintMaker install];\n}\n\n- (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *))block {\n    self.translatesAutoresizingMaskIntoConstraints = NO;\n    MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithView:self];\n    constraintMaker.updateExisting = YES;\n    block(constraintMaker);\n    return [constraintMaker install];\n}\n\n- (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block {\n    self.translatesAutoresizingMaskIntoConstraints = NO;\n    MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithView:self];\n    constraintMaker.removeExisting = YES;\n    block(constraintMaker);\n    return [constraintMaker install];\n}\n\n#pragma mark - NSLayoutAttribute properties\n\n- (MASViewAttribute *)mas_left {\n    return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeLeft];\n}\n\n- (MASViewAttribute *)mas_top {\n    return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeTop];\n}\n\n- (MASViewAttribute *)mas_right {\n    return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeRight];\n}\n\n- (MASViewAttribute *)mas_bottom {\n    return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeBottom];\n}\n\n- (MASViewAttribute *)mas_leading {\n    return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeLeading];\n}\n\n- (MASViewAttribute *)mas_trailing {\n    return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeTrailing];\n}\n\n- (MASViewAttribute *)mas_width {\n    return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeWidth];\n}\n\n- (MASViewAttribute *)mas_height {\n    return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeHeight];\n}\n\n- (MASViewAttribute *)mas_centerX {\n    return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeCenterX];\n}\n\n- (MASViewAttribute *)mas_centerY {\n    return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeCenterY];\n}\n\n- (MASViewAttribute *)mas_baseline {\n    return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeBaseline];\n}\n\n- (MASViewAttribute *(^)(NSLayoutAttribute))mas_attribute\n{\n    return ^(NSLayoutAttribute attr) {\n        return [[MASViewAttribute alloc] initWithView:self layoutAttribute:attr];\n    };\n}\n\n#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)\n\n- (MASViewAttribute *)mas_firstBaseline {\n    return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeFirstBaseline];\n}\n- (MASViewAttribute *)mas_lastBaseline {\n    return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeLastBaseline];\n}\n\n#endif\n\n#if TARGET_OS_IPHONE || TARGET_OS_TV\n\n- (MASViewAttribute *)mas_leftMargin {\n    return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeLeftMargin];\n}\n\n- (MASViewAttribute *)mas_rightMargin {\n    return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeRightMargin];\n}\n\n- (MASViewAttribute *)mas_topMargin {\n    return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeTopMargin];\n}\n\n- (MASViewAttribute *)mas_bottomMargin {\n    return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeBottomMargin];\n}\n\n- (MASViewAttribute *)mas_leadingMargin {\n    return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeLeadingMargin];\n}\n\n- (MASViewAttribute *)mas_trailingMargin {\n    return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeTrailingMargin];\n}\n\n- (MASViewAttribute *)mas_centerXWithinMargins {\n    return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeCenterXWithinMargins];\n}\n\n- (MASViewAttribute *)mas_centerYWithinMargins {\n    return [[MASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeCenterYWithinMargins];\n}\n\n#endif\n\n#pragma mark - associated properties\n\n- (id)mas_key {\n    return objc_getAssociatedObject(self, @selector(mas_key));\n}\n\n- (void)setMas_key:(id)key {\n    objc_setAssociatedObject(self, @selector(mas_key), key, OBJC_ASSOCIATION_RETAIN_NONATOMIC);\n}\n\n#pragma mark - heirachy\n\n- (instancetype)mas_closestCommonSuperview:(MAS_VIEW *)view {\n    MAS_VIEW *closestCommonSuperview = nil;\n\n    MAS_VIEW *secondViewSuperview = view;\n    while (!closestCommonSuperview && secondViewSuperview) {\n        MAS_VIEW *firstViewSuperview = self;\n        while (!closestCommonSuperview && firstViewSuperview) {\n            if (secondViewSuperview == firstViewSuperview) {\n                closestCommonSuperview = secondViewSuperview;\n            }\n            firstViewSuperview = firstViewSuperview.superview;\n        }\n        secondViewSuperview = secondViewSuperview.superview;\n    }\n    return closestCommonSuperview;\n}\n\n@end\n"
  },
  {
    "path": "Pods/Masonry/Masonry/View+MASShorthandAdditions.h",
    "content": "//\n//  UIView+MASShorthandAdditions.h\n//  Masonry\n//\n//  Created by Jonas Budelmann on 22/07/13.\n//  Copyright (c) 2013 Jonas Budelmann. All rights reserved.\n//\n\n#import \"View+MASAdditions.h\"\n\n#ifdef MAS_SHORTHAND\n\n/**\n *\tShorthand view additions without the 'mas_' prefixes,\n *  only enabled if MAS_SHORTHAND is defined\n */\n@interface MAS_VIEW (MASShorthandAdditions)\n\n@property (nonatomic, strong, readonly) MASViewAttribute *left;\n@property (nonatomic, strong, readonly) MASViewAttribute *top;\n@property (nonatomic, strong, readonly) MASViewAttribute *right;\n@property (nonatomic, strong, readonly) MASViewAttribute *bottom;\n@property (nonatomic, strong, readonly) MASViewAttribute *leading;\n@property (nonatomic, strong, readonly) MASViewAttribute *trailing;\n@property (nonatomic, strong, readonly) MASViewAttribute *width;\n@property (nonatomic, strong, readonly) MASViewAttribute *height;\n@property (nonatomic, strong, readonly) MASViewAttribute *centerX;\n@property (nonatomic, strong, readonly) MASViewAttribute *centerY;\n@property (nonatomic, strong, readonly) MASViewAttribute *baseline;\n@property (nonatomic, strong, readonly) MASViewAttribute *(^attribute)(NSLayoutAttribute attr);\n\n#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)\n\n@property (nonatomic, strong, readonly) MASViewAttribute *firstBaseline;\n@property (nonatomic, strong, readonly) MASViewAttribute *lastBaseline;\n\n#endif\n\n#if TARGET_OS_IPHONE || TARGET_OS_TV\n\n@property (nonatomic, strong, readonly) MASViewAttribute *leftMargin;\n@property (nonatomic, strong, readonly) MASViewAttribute *rightMargin;\n@property (nonatomic, strong, readonly) MASViewAttribute *topMargin;\n@property (nonatomic, strong, readonly) MASViewAttribute *bottomMargin;\n@property (nonatomic, strong, readonly) MASViewAttribute *leadingMargin;\n@property (nonatomic, strong, readonly) MASViewAttribute *trailingMargin;\n@property (nonatomic, strong, readonly) MASViewAttribute *centerXWithinMargins;\n@property (nonatomic, strong, readonly) MASViewAttribute *centerYWithinMargins;\n\n#endif\n\n- (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *make))block;\n- (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *make))block;\n- (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *make))block;\n\n@end\n\n#define MAS_ATTR_FORWARD(attr)  \\\n- (MASViewAttribute *)attr {    \\\n    return [self mas_##attr];   \\\n}\n\n@implementation MAS_VIEW (MASShorthandAdditions)\n\nMAS_ATTR_FORWARD(top);\nMAS_ATTR_FORWARD(left);\nMAS_ATTR_FORWARD(bottom);\nMAS_ATTR_FORWARD(right);\nMAS_ATTR_FORWARD(leading);\nMAS_ATTR_FORWARD(trailing);\nMAS_ATTR_FORWARD(width);\nMAS_ATTR_FORWARD(height);\nMAS_ATTR_FORWARD(centerX);\nMAS_ATTR_FORWARD(centerY);\nMAS_ATTR_FORWARD(baseline);\n\n#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)\n\nMAS_ATTR_FORWARD(firstBaseline);\nMAS_ATTR_FORWARD(lastBaseline);\n\n#endif\n\n#if TARGET_OS_IPHONE || TARGET_OS_TV\n\nMAS_ATTR_FORWARD(leftMargin);\nMAS_ATTR_FORWARD(rightMargin);\nMAS_ATTR_FORWARD(topMargin);\nMAS_ATTR_FORWARD(bottomMargin);\nMAS_ATTR_FORWARD(leadingMargin);\nMAS_ATTR_FORWARD(trailingMargin);\nMAS_ATTR_FORWARD(centerXWithinMargins);\nMAS_ATTR_FORWARD(centerYWithinMargins);\n\n#endif\n\n- (MASViewAttribute *(^)(NSLayoutAttribute))attribute {\n    return [self mas_attribute];\n}\n\n- (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *))block {\n    return [self mas_makeConstraints:block];\n}\n\n- (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *))block {\n    return [self mas_updateConstraints:block];\n}\n\n- (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *))block {\n    return [self mas_remakeConstraints:block];\n}\n\n@end\n\n#endif\n"
  },
  {
    "path": "Pods/Masonry/Masonry/ViewController+MASAdditions.h",
    "content": "//\n//  UIViewController+MASAdditions.h\n//  Masonry\n//\n//  Created by Craig Siemens on 2015-06-23.\n//\n//\n\n#import \"MASUtilities.h\"\n#import \"MASConstraintMaker.h\"\n#import \"MASViewAttribute.h\"\n\n#ifdef MAS_VIEW_CONTROLLER\n\n@interface MAS_VIEW_CONTROLLER (MASAdditions)\n\n/**\n *\tfollowing properties return a new MASViewAttribute with appropriate UILayoutGuide and NSLayoutAttribute\n */\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuide;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuide;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuideTop;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuideBottom;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuideTop;\n@property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuideBottom;\n\n\n@end\n\n#endif\n"
  },
  {
    "path": "Pods/Masonry/Masonry/ViewController+MASAdditions.m",
    "content": "//\n//  UIViewController+MASAdditions.m\n//  Masonry\n//\n//  Created by Craig Siemens on 2015-06-23.\n//\n//\n\n#import \"ViewController+MASAdditions.h\"\n\n#ifdef MAS_VIEW_CONTROLLER\n\n@implementation MAS_VIEW_CONTROLLER (MASAdditions)\n\n- (MASViewAttribute *)mas_topLayoutGuide {\n    return [[MASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeBottom];\n}\n- (MASViewAttribute *)mas_topLayoutGuideTop {\n    return [[MASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeTop];\n}\n- (MASViewAttribute *)mas_topLayoutGuideBottom {\n    return [[MASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeBottom];\n}\n\n- (MASViewAttribute *)mas_bottomLayoutGuide {\n    return [[MASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeTop];\n}\n- (MASViewAttribute *)mas_bottomLayoutGuideTop {\n    return [[MASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeTop];\n}\n- (MASViewAttribute *)mas_bottomLayoutGuideBottom {\n    return [[MASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeBottom];\n}\n\n\n\n@end\n\n#endif\n"
  },
  {
    "path": "Pods/Masonry/README.md",
    "content": "#Masonry [![Build Status](https://travis-ci.org/SnapKit/Masonry.svg?branch=master)](https://travis-ci.org/SnapKit/Masonry) [![Coverage Status](https://img.shields.io/coveralls/SnapKit/Masonry.svg?style=flat-square)](https://coveralls.io/r/SnapKit/Masonry) [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)\n\n**Masonry is still actively maintained, we are committed to fixing bugs and merging good quality PRs from the wider community. However if you're using Swift in your project, we recommend using [SnapKit](https://github.com/SnapKit/SnapKit) as it provides better type safety with a simpler API.**\n\nMasonry is a light-weight layout framework which wraps AutoLayout with a nicer syntax. Masonry has its own layout DSL which provides a chainable way of describing your NSLayoutConstraints which results in layout code that is more concise and readable.\nMasonry supports iOS and Mac OS X.\n\nFor examples take a look at the **Masonry iOS Examples** project in the Masonry workspace. You will need to run `pod install` after downloading.\n\n## What's wrong with NSLayoutConstraints?\n\nUnder the hood Auto Layout is a powerful and flexible way of organising and laying out your views. However creating constraints from code is verbose and not very descriptive.\nImagine a simple example in which you want to have a view fill its superview but inset by 10 pixels on every side\n```obj-c\nUIView *superview = self.view;\n\nUIView *view1 = [[UIView alloc] init];\nview1.translatesAutoresizingMaskIntoConstraints = NO;\nview1.backgroundColor = [UIColor greenColor];\n[superview addSubview:view1];\n\nUIEdgeInsets padding = UIEdgeInsetsMake(10, 10, 10, 10);\n\n[superview addConstraints:@[\n\n    //view1 constraints\n    [NSLayoutConstraint constraintWithItem:view1\n                                 attribute:NSLayoutAttributeTop\n                                 relatedBy:NSLayoutRelationEqual\n                                    toItem:superview\n                                 attribute:NSLayoutAttributeTop\n                                multiplier:1.0\n                                  constant:padding.top],\n\n    [NSLayoutConstraint constraintWithItem:view1\n                                 attribute:NSLayoutAttributeLeft\n                                 relatedBy:NSLayoutRelationEqual\n                                    toItem:superview\n                                 attribute:NSLayoutAttributeLeft\n                                multiplier:1.0\n                                  constant:padding.left],\n\n    [NSLayoutConstraint constraintWithItem:view1\n                                 attribute:NSLayoutAttributeBottom\n                                 relatedBy:NSLayoutRelationEqual\n                                    toItem:superview\n                                 attribute:NSLayoutAttributeBottom\n                                multiplier:1.0\n                                  constant:-padding.bottom],\n\n    [NSLayoutConstraint constraintWithItem:view1\n                                 attribute:NSLayoutAttributeRight\n                                 relatedBy:NSLayoutRelationEqual\n                                    toItem:superview\n                                 attribute:NSLayoutAttributeRight\n                                multiplier:1\n                                  constant:-padding.right],\n\n ]];\n```\nEven with such a simple example the code needed is quite verbose and quickly becomes unreadable when you have more than 2 or 3 views.\nAnother option is to use Visual Format Language (VFL), which is a bit less long winded.\nHowever the ASCII type syntax has its own pitfalls and its also a bit harder to animate as `NSLayoutConstraint constraintsWithVisualFormat:` returns an array.\n\n## Prepare to meet your Maker!\n\nHeres the same constraints created using MASConstraintMaker\n\n```obj-c\nUIEdgeInsets padding = UIEdgeInsetsMake(10, 10, 10, 10);\n\n[view1 mas_makeConstraints:^(MASConstraintMaker *make) {\n    make.top.equalTo(superview.mas_top).with.offset(padding.top); //with is an optional semantic filler\n    make.left.equalTo(superview.mas_left).with.offset(padding.left);\n    make.bottom.equalTo(superview.mas_bottom).with.offset(-padding.bottom);\n    make.right.equalTo(superview.mas_right).with.offset(-padding.right);\n}];\n```\nOr even shorter\n\n```obj-c\n[view1 mas_makeConstraints:^(MASConstraintMaker *make) {\n    make.edges.equalTo(superview).with.insets(padding);\n}];\n```\n\nAlso note in the first example we had to add the constraints to the superview `[superview addConstraints:...`.\nMasonry however will automagically add constraints to the appropriate view.\n\nMasonry will also call `view1.translatesAutoresizingMaskIntoConstraints = NO;` for you.\n\n## Not all things are created equal\n\n> `.equalTo` equivalent to **NSLayoutRelationEqual**\n\n> `.lessThanOrEqualTo` equivalent to **NSLayoutRelationLessThanOrEqual**\n\n> `.greaterThanOrEqualTo` equivalent to **NSLayoutRelationGreaterThanOrEqual**\n\nThese three equality constraints accept one argument which can be any of the following:\n\n#### 1. MASViewAttribute\n\n```obj-c\nmake.centerX.lessThanOrEqualTo(view2.mas_left);\n```\n\nMASViewAttribute           |  NSLayoutAttribute\n-------------------------  |  --------------------------\nview.mas_left              |  NSLayoutAttributeLeft\nview.mas_right             |  NSLayoutAttributeRight\nview.mas_top               |  NSLayoutAttributeTop\nview.mas_bottom            |  NSLayoutAttributeBottom\nview.mas_leading           |  NSLayoutAttributeLeading\nview.mas_trailing          |  NSLayoutAttributeTrailing\nview.mas_width             |  NSLayoutAttributeWidth\nview.mas_height            |  NSLayoutAttributeHeight\nview.mas_centerX           |  NSLayoutAttributeCenterX\nview.mas_centerY           |  NSLayoutAttributeCenterY\nview.mas_baseline          |  NSLayoutAttributeBaseline\n\n#### 2. UIView/NSView\n\nif you want view.left to be greater than or equal to label.left :\n```obj-c\n//these two constraints are exactly the same\nmake.left.greaterThanOrEqualTo(label);\nmake.left.greaterThanOrEqualTo(label.mas_left);\n```\n\n#### 3. NSNumber\n\nAuto Layout allows width and height to be set to constant values.\nif you want to set view to have a minimum and maximum width you could pass a number to the equality blocks:\n```obj-c\n//width >= 200 && width <= 400\nmake.width.greaterThanOrEqualTo(@200);\nmake.width.lessThanOrEqualTo(@400)\n```\n\nHowever Auto Layout does not allow alignment attributes such as left, right, centerY etc to be set to constant values.\nSo if you pass a NSNumber for these attributes Masonry will turn these into constraints relative to the view&rsquo;s superview ie:\n```obj-c\n//creates view.left = view.superview.left + 10\nmake.left.lessThanOrEqualTo(@10)\n```\n\nInstead of using NSNumber, you can use primitives and structs to build your constraints, like so:\n```obj-c\nmake.top.mas_equalTo(42);\nmake.height.mas_equalTo(20);\nmake.size.mas_equalTo(CGSizeMake(50, 100));\nmake.edges.mas_equalTo(UIEdgeInsetsMake(10, 0, 10, 0));\nmake.left.mas_equalTo(view).mas_offset(UIEdgeInsetsMake(10, 0, 10, 0));\n```\n\nBy default, macros which support [autoboxing](https://en.wikipedia.org/wiki/Autoboxing#Autoboxing) are prefixed with `mas_`. Unprefixed versions are available by defining `MAS_SHORTHAND_GLOBALS` before importing Masonry.\n\n#### 4. NSArray\n\nAn array of a mixture of any of the previous types\n```obj-c\nmake.height.equalTo(@[view1.mas_height, view2.mas_height]);\nmake.height.equalTo(@[view1, view2]);\nmake.left.equalTo(@[view1, @100, view3.right]);\n````\n\n## Learn to prioritize\n\n> `.priority` allows you to specify an exact priority\n\n> `.priorityHigh` equivalent to **UILayoutPriorityDefaultHigh**\n\n> `.priorityMedium` is half way between high and low\n\n> `.priorityLow` equivalent to **UILayoutPriorityDefaultLow**\n\nPriorities are can be tacked on to the end of a constraint chain like so:\n```obj-c\nmake.left.greaterThanOrEqualTo(label.mas_left).with.priorityLow();\n\nmake.top.equalTo(label.mas_top).with.priority(600);\n```\n\n## Composition, composition, composition\n\nMasonry also gives you a few convenience methods which create multiple constraints at the same time. These are called MASCompositeConstraints\n\n#### edges\n\n```obj-c\n// make top, left, bottom, right equal view2\nmake.edges.equalTo(view2);\n\n// make top = superview.top + 5, left = superview.left + 10,\n//      bottom = superview.bottom - 15, right = superview.right - 20\nmake.edges.equalTo(superview).insets(UIEdgeInsetsMake(5, 10, 15, 20))\n```\n\n#### size\n\n```obj-c\n// make width and height greater than or equal to titleLabel\nmake.size.greaterThanOrEqualTo(titleLabel)\n\n// make width = superview.width + 100, height = superview.height - 50\nmake.size.equalTo(superview).sizeOffset(CGSizeMake(100, -50))\n```\n\n#### center\n```obj-c\n// make centerX and centerY = button1\nmake.center.equalTo(button1)\n\n// make centerX = superview.centerX - 5, centerY = superview.centerY + 10\nmake.center.equalTo(superview).centerOffset(CGPointMake(-5, 10))\n```\n\nYou can chain view attributes for increased readability:\n\n```obj-c\n// All edges but the top should equal those of the superview\nmake.left.right.and.bottom.equalTo(superview);\nmake.top.equalTo(otherView);\n```\n\n## Hold on for dear life\n\nSometimes you need modify existing constraints in order to animate or remove/replace constraints.\nIn Masonry there are a few different approaches to updating constraints.\n\n#### 1. References\nYou can hold on to a reference of a particular constraint by assigning the result of a constraint make expression to a local variable or a class property.\nYou could also reference multiple constraints by storing them away in an array.\n\n```obj-c\n// in public/private interface\n@property (nonatomic, strong) MASConstraint *topConstraint;\n\n...\n\n// when making constraints\n[view1 mas_makeConstraints:^(MASConstraintMaker *make) {\n    self.topConstraint = make.top.equalTo(superview.mas_top).with.offset(padding.top);\n    make.left.equalTo(superview.mas_left).with.offset(padding.left);\n}];\n\n...\n// then later you can call\n[self.topConstraint uninstall];\n```\n\n#### 2. mas_updateConstraints\nAlternatively if you are only updating the constant value of the constraint you can use the convience method `mas_updateConstraints` instead of `mas_makeConstraints`\n\n```obj-c\n// this is Apple's recommended place for adding/updating constraints\n// this method can get called multiple times in response to setNeedsUpdateConstraints\n// which can be called by UIKit internally or in your code if you need to trigger an update to your constraints\n- (void)updateConstraints {\n    [self.growingButton mas_updateConstraints:^(MASConstraintMaker *make) {\n        make.center.equalTo(self);\n        make.width.equalTo(@(self.buttonSize.width)).priorityLow();\n        make.height.equalTo(@(self.buttonSize.height)).priorityLow();\n        make.width.lessThanOrEqualTo(self);\n        make.height.lessThanOrEqualTo(self);\n    }];\n\n    //according to apple super should be called at end of method\n    [super updateConstraints];\n}\n```\n\n### 3. mas_remakeConstraints\n`mas_updateConstraints` is useful for updating a set of constraints, but doing anything beyond updating constant values can get exhausting. That's where `mas_remakeConstraints` comes in.\n\n`mas_remakeConstraints` is similar to `mas_updateConstraints`, but instead of updating constant values, it will remove all of its constraints before installing them again. This lets you provide different constraints without having to keep around references to ones which you want to remove.\n\n```obj-c\n- (void)changeButtonPosition {\n    [self.button mas_remakeConstraints:^(MASConstraintMaker *make) {\n        make.size.equalTo(self.buttonSize);\n\n        if (topLeft) {\n        \tmake.top.and.left.offset(10);\n        } else {\n        \tmake.bottom.and.right.offset(-10);\n        }\n    }];\n}\n```\n\nYou can find more detailed examples of all three approaches in the **Masonry iOS Examples** project.\n\n## When the ^&*!@ hits the fan!\n\nLaying out your views doesn't always goto plan. So when things literally go pear shaped, you don't want to be looking at console output like this:\n\n```obj-c\nUnable to simultaneously satisfy constraints.....blah blah blah....\n(\n    \"<NSLayoutConstraint:0x7189ac0 V:[UILabel:0x7186980(>=5000)]>\",\n    \"<NSAutoresizingMaskLayoutConstraint:0x839ea20 h=--& v=--& V:[MASExampleDebuggingView:0x7186560(416)]>\",\n    \"<NSLayoutConstraint:0x7189c70 UILabel:0x7186980.bottom == MASExampleDebuggingView:0x7186560.bottom - 10>\",\n    \"<NSLayoutConstraint:0x7189560 V:|-(1)-[UILabel:0x7186980]   (Names: '|':MASExampleDebuggingView:0x7186560 )>\"\n)\n\nWill attempt to recover by breaking constraint\n<NSLayoutConstraint:0x7189ac0 V:[UILabel:0x7186980(>=5000)]>\n```\n\nMasonry adds a category to NSLayoutConstraint which overrides the default implementation of `- (NSString *)description`.\nNow you can give meaningful names to views and constraints, and also easily pick out the constraints created by Masonry.\n\nwhich means your console output can now look like this:\n\n```obj-c\nUnable to simultaneously satisfy constraints......blah blah blah....\n(\n    \"<NSAutoresizingMaskLayoutConstraint:0x8887740 MASExampleDebuggingView:superview.height == 416>\",\n    \"<MASLayoutConstraint:ConstantConstraint UILabel:messageLabel.height >= 5000>\",\n    \"<MASLayoutConstraint:BottomConstraint UILabel:messageLabel.bottom == MASExampleDebuggingView:superview.bottom - 10>\",\n    \"<MASLayoutConstraint:ConflictingConstraint[0] UILabel:messageLabel.top == MASExampleDebuggingView:superview.top + 1>\"\n)\n\nWill attempt to recover by breaking constraint\n<MASLayoutConstraint:ConstantConstraint UILabel:messageLabel.height >= 5000>\n```\n\nFor an example of how to set this up take a look at the **Masonry iOS Examples** project in the Masonry workspace.\n\n## Where should I create my constraints?\n\n```objc\n@implementation DIYCustomView\n\n- (id)init {\n    self = [super init];\n    if (!self) return nil;\n\n    // --- Create your views here ---\n    self.button = [[UIButton alloc] init];\n\n    return self;\n}\n\n// tell UIKit that you are using AutoLayout\n+ (BOOL)requiresConstraintBasedLayout {\n    return YES;\n}\n\n// this is Apple's recommended place for adding/updating constraints\n- (void)updateConstraints {\n\n    // --- remake/update constraints here\n    [self.button remakeConstraints:^(MASConstraintMaker *make) {\n        make.width.equalTo(@(self.buttonSize.width));\n        make.height.equalTo(@(self.buttonSize.height));\n    }];\n    \n    //according to apple super should be called at end of method\n    [super updateConstraints];\n}\n\n- (void)didTapButton:(UIButton *)button {\n    // --- Do your changes ie change variables that affect your layout etc ---\n    self.buttonSize = CGSize(200, 200);\n\n    // tell constraints they need updating\n    [self setNeedsUpdateConstraints];\n}\n\n@end\n```\n\n## Installation\nUse the [orsome](http://www.youtube.com/watch?v=YaIZF8uUTtk) [CocoaPods](http://github.com/CocoaPods/CocoaPods).\n\nIn your Podfile\n>`pod 'Masonry'`\n\nIf you want to use masonry without all those pesky 'mas_' prefixes. Add #define MAS_SHORTHAND to your prefix.pch before importing Masonry\n>`#define MAS_SHORTHAND`\n\nGet busy Masoning\n>`#import \"Masonry.h\"`\n\n## Code Snippets\n\nCopy the included code snippets to ``~/Library/Developer/Xcode/UserData/CodeSnippets`` to write your masonry blocks at lightning speed!\n\n`mas_make` -> `[<view> mas_makeConstraints:^(MASConstraintMaker *make){<code>}];`\n\n`mas_update` -> `[<view> mas_updateConstraints:^(MASConstraintMaker *make){<code>}];`\n\n`mas_remake` -> `[<view> mas_remakeConstraints:^(MASConstraintMaker *make){<code>}];`\n\n## Features\n* Not limited to subset of Auto Layout. Anything NSLayoutConstraint can do, Masonry can do too!\n* Great debug support, give your views and constraints meaningful names.\n* Constraints read like sentences.\n* No crazy macro magic. Masonry won't pollute the global namespace with macros.\n* Not string or dictionary based and hence you get compile time checking.\n\n## TODO\n* Eye candy\n* Mac example project\n* More tests and examples\n\n"
  },
  {
    "path": "Pods/Pods.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t2905381350CEFFBFFA9BC8B5D027F190 /* MASConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 3162AC8E29FA7F3BF0D8641F7F4D9B60 /* MASConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\t2979E54C4AFD27076576E82ADEED2F00 /* NSLayoutConstraint+MASDebugAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = E158FC65C5404E098F16E26F478DA504 /* NSLayoutConstraint+MASDebugAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\t331718BFB4A91CFFE026492905231562 /* ViewController+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = FA891F8E85C079B4FB101DDD5BC7A477 /* ViewController+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\t335DCBC17D2469F228020EF6C7B41F7C /* MASConstraintMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = F8AB44751192F0AA8DA5F75A06138D15 /* MASConstraintMaker.m */; };\n\t\t3F63C119F95A6735AE627BBB1BEBC4B1 /* MASViewAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = 915A6FF0E04F5A5C0ACDE0E32BD2F193 /* MASViewAttribute.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\t432BD50F1E699EDF2EA007E850FFCEF7 /* View+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A9F610CB90E57B81F8F7DCA2176E0FD /* View+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\t5457FCC2699281B5A4203BA1559F593F /* NSArray+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 8229525E7067F22D3977D2628DF5F2C3 /* NSArray+MASAdditions.m */; };\n\t\t62DAADF0C9FB03DB4EF37E440795779D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A2A6FF208CEC4C2861F1E9D42D651453 /* Foundation.framework */; };\n\t\t81403CAF6C4C1D3DC8B199289C3A6F59 /* View+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2FCC2A09AC3DCD0E4A3D268DAABC5135 /* View+MASAdditions.m */; };\n\t\t81599471BAB0420D54E1ADF8507A5113 /* Masonry-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A231E76AF7DC6CB887B5B2C522A7A /* Masonry-dummy.m */; };\n\t\t9205037BA8C22574B33FC96C5EA829A3 /* Masonry.h in Headers */ = {isa = PBXBuildFile; fileRef = EC0384F145CF471A951BA8E9486AD626 /* Masonry.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\t945EB2145BBD46F041D00A85AD7DA1DC /* Pods-HYBHelperKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 70FA6792CD93759BDF34C503FC36015A /* Pods-HYBHelperKit-dummy.m */; };\n\t\t99D8C610BC84BE231C5D3D280F3B12AF /* MASCompositeConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 475326F2A929CD1AFFB74850961F32C0 /* MASCompositeConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\tA44AF130E4C5313CD193D9BF68853026 /* MASViewAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = 82F28AEAAF722BC62BF5B37D6663BBC2 /* MASViewAttribute.m */; };\n\t\tA7D31BD1F3AD4ED4612467FAD332F388 /* NSArray+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = FBE23E70FF64ACC81816A368E171B903 /* NSArray+MASShorthandAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\tAF4E7187E09A5AF3A0758991203153DC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E86668F20F252C440D1015B816BE59C5 /* UIKit.framework */; };\n\t\tAF62B956405F7734F5A9B8F3FD4B1B96 /* ViewController+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 25CED739CF35B6D0A1D95AE17D712A7F /* ViewController+MASAdditions.m */; };\n\t\tB2B7C90BA9C4DBD9851C75AC801B0E8E /* MASConstraint+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 22E2395DA2EBCF6241A0DA0E1859FF45 /* MASConstraint+Private.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\tBCD4B362C6194513150915437754E2D4 /* MASCompositeConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = D5EC6EDDDD3E503C5B2E967D3FEECFEB /* MASCompositeConstraint.m */; };\n\t\tBDD210D7537DD15CFE59AE126005E5F8 /* MASLayoutConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 807FFD255E8235D5B42FE078299B5F1B /* MASLayoutConstraint.m */; };\n\t\tBE024118D329F8F566BD1811A1DC16CB /* MASConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F937BDEB8DF93A08D20C5355C0FDB5C /* MASConstraint.m */; };\n\t\tC18632AD31935503078B89057E3E906A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A2A6FF208CEC4C2861F1E9D42D651453 /* Foundation.framework */; };\n\t\tC6EE194D232E9FE87097C0F1DF91B9FA /* MASLayoutConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = B48867DE203BCF3BB3DFCAB8FDC7516B /* MASLayoutConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\tCAE1578107F1A837277105016305211C /* Pods-HYBHelperKitTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = EE1C220A5860721F1AAA1830A2A8EA0C /* Pods-HYBHelperKitTests-dummy.m */; };\n\t\tD3D9F12613E23AD64C1FA5F7081A3668 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = C762C4F3A304C10AF7EBEA6AAA8508A0 /* NSLayoutConstraint+MASDebugAdditions.m */; };\n\t\tDD1F717B0527C71229B3339324E35E55 /* View+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E7E17DB5590A8C4D9625D67E6FBD243 /* View+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\tDE31B168D9197213CEB7B90E3ADEB4CC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A2A6FF208CEC4C2861F1E9D42D651453 /* Foundation.framework */; };\n\t\tE6B49FBCE3957DB67F691ACCC4CAF4BE /* MASViewConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = C7C02266037F030E22468AC86802DB57 /* MASViewConstraint.m */; };\n\t\tEB02AEF303313F801392DE8D90AFF0F7 /* MASViewConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 043FB94CF93050E20D8E4C071ACFA5D2 /* MASViewConstraint.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\tEC6CCC98505D2067BC98B4E6223C9DF8 /* MASConstraintMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = 780A86CEB0A0131C88BE12414D500734 /* MASConstraintMaker.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\tFD39EBE3398E1A99965AC003B273450D /* NSArray+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = B179F4D3D34A3CE25A698B8D9AC9D6C2 /* NSArray+MASAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\tFF682E8B083BAEBBDF38C52D89D45E37 /* MASUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 1321572A3ED9C894C94A131BE29B81B2 /* MASUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\tB27D35E3A05CDD0911272D11A48878BE /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 53480ED0BE09FF49E34B1702D485CAAB;\n\t\t\tremoteInfo = Masonry;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXFileReference section */\n\t\t043FB94CF93050E20D8E4C071ACFA5D2 /* MASViewConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASViewConstraint.h; path = Masonry/MASViewConstraint.h; sourceTree = \"<group>\"; };\n\t\t1321572A3ED9C894C94A131BE29B81B2 /* MASUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASUtilities.h; path = Masonry/MASUtilities.h; sourceTree = \"<group>\"; };\n\t\t1B39B777C639471DA1577E21933D04EA /* libPods-HYBHelperKitTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = \"libPods-HYBHelperKitTests.a\"; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t215515CAD9991A91DD3F9770980BC722 /* Pods-HYBHelperKit-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = \"Pods-HYBHelperKit-resources.sh\"; sourceTree = \"<group>\"; };\n\t\t22E2395DA2EBCF6241A0DA0E1859FF45 /* MASConstraint+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = \"MASConstraint+Private.h\"; path = \"Masonry/MASConstraint+Private.h\"; sourceTree = \"<group>\"; };\n\t\t25CED739CF35B6D0A1D95AE17D712A7F /* ViewController+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = \"ViewController+MASAdditions.m\"; path = \"Masonry/ViewController+MASAdditions.m\"; sourceTree = \"<group>\"; };\n\t\t2E4DF2D22770A60F9CCEC443AB877D93 /* Pods-HYBHelperKit-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = \"Pods-HYBHelperKit-frameworks.sh\"; sourceTree = \"<group>\"; };\n\t\t2FCC2A09AC3DCD0E4A3D268DAABC5135 /* View+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = \"View+MASAdditions.m\"; path = \"Masonry/View+MASAdditions.m\"; sourceTree = \"<group>\"; };\n\t\t3162AC8E29FA7F3BF0D8641F7F4D9B60 /* MASConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASConstraint.h; path = Masonry/MASConstraint.h; sourceTree = \"<group>\"; };\n\t\t440C106000E67FB628FF5B14691C1757 /* Pods-HYBHelperKitTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = \"Pods-HYBHelperKitTests-acknowledgements.markdown\"; sourceTree = \"<group>\"; };\n\t\t475326F2A929CD1AFFB74850961F32C0 /* MASCompositeConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASCompositeConstraint.h; path = Masonry/MASCompositeConstraint.h; sourceTree = \"<group>\"; };\n\t\t480E43D5D83BB182BC97D90FC9AE1262 /* Pods-HYBHelperKitTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = \"Pods-HYBHelperKitTests-resources.sh\"; sourceTree = \"<group>\"; };\n\t\t4A3B844C12D52EA22748806384A329C6 /* Pods-HYBHelperKitTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = \"Pods-HYBHelperKitTests-acknowledgements.plist\"; sourceTree = \"<group>\"; };\n\t\t4FE404CFCFBDEF12F83661822F0E0F0B /* libMasonry.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMasonry.a; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t5BAB376A6866A8C00AD546C8D96CECCF /* Pods-HYBHelperKitTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = \"Pods-HYBHelperKitTests.release.xcconfig\"; sourceTree = \"<group>\"; };\n\t\t7036F598DB6570810910F466DF8CC974 /* Pods-HYBHelperKitTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = \"Pods-HYBHelperKitTests.debug.xcconfig\"; sourceTree = \"<group>\"; };\n\t\t70FA6792CD93759BDF34C503FC36015A /* Pods-HYBHelperKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = \"Pods-HYBHelperKit-dummy.m\"; sourceTree = \"<group>\"; };\n\t\t780A86CEB0A0131C88BE12414D500734 /* MASConstraintMaker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASConstraintMaker.h; path = Masonry/MASConstraintMaker.h; sourceTree = \"<group>\"; };\n\t\t7882AB8492CA4F59F730C76CC3BBF57A /* Masonry.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Masonry.xcconfig; sourceTree = \"<group>\"; };\n\t\t7B5A231E76AF7DC6CB887B5B2C522A7A /* Masonry-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = \"Masonry-dummy.m\"; sourceTree = \"<group>\"; };\n\t\t807FFD255E8235D5B42FE078299B5F1B /* MASLayoutConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASLayoutConstraint.m; path = Masonry/MASLayoutConstraint.m; sourceTree = \"<group>\"; };\n\t\t8229525E7067F22D3977D2628DF5F2C3 /* NSArray+MASAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = \"NSArray+MASAdditions.m\"; path = \"Masonry/NSArray+MASAdditions.m\"; sourceTree = \"<group>\"; };\n\t\t82F28AEAAF722BC62BF5B37D6663BBC2 /* MASViewAttribute.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASViewAttribute.m; path = Masonry/MASViewAttribute.m; sourceTree = \"<group>\"; };\n\t\t85F3055099D8EFE97A7FF054AA8E3042 /* Pods-HYBHelperKitTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = \"Pods-HYBHelperKitTests-frameworks.sh\"; sourceTree = \"<group>\"; };\n\t\t8A9F610CB90E57B81F8F7DCA2176E0FD /* View+MASShorthandAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = \"View+MASShorthandAdditions.h\"; path = \"Masonry/View+MASShorthandAdditions.h\"; sourceTree = \"<group>\"; };\n\t\t8E7E17DB5590A8C4D9625D67E6FBD243 /* View+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = \"View+MASAdditions.h\"; path = \"Masonry/View+MASAdditions.h\"; sourceTree = \"<group>\"; };\n\t\t915A6FF0E04F5A5C0ACDE0E32BD2F193 /* MASViewAttribute.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASViewAttribute.h; path = Masonry/MASViewAttribute.h; sourceTree = \"<group>\"; };\n\t\t93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };\n\t\t9F937BDEB8DF93A08D20C5355C0FDB5C /* MASConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASConstraint.m; path = Masonry/MASConstraint.m; sourceTree = \"<group>\"; };\n\t\tA01C92C418752C9213688B928FC8B390 /* Pods-HYBHelperKit.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = \"Pods-HYBHelperKit.debug.xcconfig\"; sourceTree = \"<group>\"; };\n\t\tA2A6FF208CEC4C2861F1E9D42D651453 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };\n\t\tA2F75C96947B2651F82FC18F66C43B49 /* Masonry-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = \"Masonry-prefix.pch\"; sourceTree = \"<group>\"; };\n\t\tA83EA4C93EC8C99D31AA72BA94C08894 /* Pods-HYBHelperKit.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = \"Pods-HYBHelperKit.release.xcconfig\"; sourceTree = \"<group>\"; };\n\t\tA8FCF496D7716B2CF602747F4F360FD1 /* libPods-HYBHelperKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = \"libPods-HYBHelperKit.a\"; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tB179F4D3D34A3CE25A698B8D9AC9D6C2 /* NSArray+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = \"NSArray+MASAdditions.h\"; path = \"Masonry/NSArray+MASAdditions.h\"; sourceTree = \"<group>\"; };\n\t\tB48867DE203BCF3BB3DFCAB8FDC7516B /* MASLayoutConstraint.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MASLayoutConstraint.h; path = Masonry/MASLayoutConstraint.h; sourceTree = \"<group>\"; };\n\t\tC762C4F3A304C10AF7EBEA6AAA8508A0 /* NSLayoutConstraint+MASDebugAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = \"NSLayoutConstraint+MASDebugAdditions.m\"; path = \"Masonry/NSLayoutConstraint+MASDebugAdditions.m\"; sourceTree = \"<group>\"; };\n\t\tC7C02266037F030E22468AC86802DB57 /* MASViewConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASViewConstraint.m; path = Masonry/MASViewConstraint.m; sourceTree = \"<group>\"; };\n\t\tCC90903A199CF2D32B201A52EB14C14C /* Pods-HYBHelperKit-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = \"Pods-HYBHelperKit-acknowledgements.plist\"; sourceTree = \"<group>\"; };\n\t\tD218B968E2DCF5F23B48155930C8905D /* Pods-HYBHelperKit-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = \"Pods-HYBHelperKit-acknowledgements.markdown\"; sourceTree = \"<group>\"; };\n\t\tD5EC6EDDDD3E503C5B2E967D3FEECFEB /* MASCompositeConstraint.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASCompositeConstraint.m; path = Masonry/MASCompositeConstraint.m; sourceTree = \"<group>\"; };\n\t\tE158FC65C5404E098F16E26F478DA504 /* NSLayoutConstraint+MASDebugAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = \"NSLayoutConstraint+MASDebugAdditions.h\"; path = \"Masonry/NSLayoutConstraint+MASDebugAdditions.h\"; sourceTree = \"<group>\"; };\n\t\tE86668F20F252C440D1015B816BE59C5 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };\n\t\tEC0384F145CF471A951BA8E9486AD626 /* Masonry.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Masonry.h; path = Masonry/Masonry.h; sourceTree = \"<group>\"; };\n\t\tEE1C220A5860721F1AAA1830A2A8EA0C /* Pods-HYBHelperKitTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = \"Pods-HYBHelperKitTests-dummy.m\"; sourceTree = \"<group>\"; };\n\t\tF8AB44751192F0AA8DA5F75A06138D15 /* MASConstraintMaker.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MASConstraintMaker.m; path = Masonry/MASConstraintMaker.m; sourceTree = \"<group>\"; };\n\t\tFA891F8E85C079B4FB101DDD5BC7A477 /* ViewController+MASAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = \"ViewController+MASAdditions.h\"; path = \"Masonry/ViewController+MASAdditions.h\"; sourceTree = \"<group>\"; };\n\t\tFBE23E70FF64ACC81816A368E171B903 /* NSArray+MASShorthandAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = \"NSArray+MASShorthandAdditions.h\"; path = \"Masonry/NSArray+MASShorthandAdditions.h\"; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t053FE9E0000AE1D98A4C99091D08E612 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tC18632AD31935503078B89057E3E906A /* Foundation.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tFAB9E9D9BBDB93399D3C2B91469EC4B6 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tDE31B168D9197213CEB7B90E3ADEB4CC /* Foundation.framework in Frameworks */,\n\t\t\t\tAF4E7187E09A5AF3A0758991203153DC /* UIKit.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tFDFBAEB90756D26D0B783764468B9041 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t62DAADF0C9FB03DB4EF37E440795779D /* Foundation.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t3B9FAC5BAEA75CAB3E20372C4D27D7EE /* Masonry */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t475326F2A929CD1AFFB74850961F32C0 /* MASCompositeConstraint.h */,\n\t\t\t\tD5EC6EDDDD3E503C5B2E967D3FEECFEB /* MASCompositeConstraint.m */,\n\t\t\t\t3162AC8E29FA7F3BF0D8641F7F4D9B60 /* MASConstraint.h */,\n\t\t\t\t9F937BDEB8DF93A08D20C5355C0FDB5C /* MASConstraint.m */,\n\t\t\t\t22E2395DA2EBCF6241A0DA0E1859FF45 /* MASConstraint+Private.h */,\n\t\t\t\t780A86CEB0A0131C88BE12414D500734 /* MASConstraintMaker.h */,\n\t\t\t\tF8AB44751192F0AA8DA5F75A06138D15 /* MASConstraintMaker.m */,\n\t\t\t\tB48867DE203BCF3BB3DFCAB8FDC7516B /* MASLayoutConstraint.h */,\n\t\t\t\t807FFD255E8235D5B42FE078299B5F1B /* MASLayoutConstraint.m */,\n\t\t\t\tEC0384F145CF471A951BA8E9486AD626 /* Masonry.h */,\n\t\t\t\t1321572A3ED9C894C94A131BE29B81B2 /* MASUtilities.h */,\n\t\t\t\t915A6FF0E04F5A5C0ACDE0E32BD2F193 /* MASViewAttribute.h */,\n\t\t\t\t82F28AEAAF722BC62BF5B37D6663BBC2 /* MASViewAttribute.m */,\n\t\t\t\t043FB94CF93050E20D8E4C071ACFA5D2 /* MASViewConstraint.h */,\n\t\t\t\tC7C02266037F030E22468AC86802DB57 /* MASViewConstraint.m */,\n\t\t\t\tB179F4D3D34A3CE25A698B8D9AC9D6C2 /* NSArray+MASAdditions.h */,\n\t\t\t\t8229525E7067F22D3977D2628DF5F2C3 /* NSArray+MASAdditions.m */,\n\t\t\t\tFBE23E70FF64ACC81816A368E171B903 /* NSArray+MASShorthandAdditions.h */,\n\t\t\t\tE158FC65C5404E098F16E26F478DA504 /* NSLayoutConstraint+MASDebugAdditions.h */,\n\t\t\t\tC762C4F3A304C10AF7EBEA6AAA8508A0 /* NSLayoutConstraint+MASDebugAdditions.m */,\n\t\t\t\t8E7E17DB5590A8C4D9625D67E6FBD243 /* View+MASAdditions.h */,\n\t\t\t\t2FCC2A09AC3DCD0E4A3D268DAABC5135 /* View+MASAdditions.m */,\n\t\t\t\t8A9F610CB90E57B81F8F7DCA2176E0FD /* View+MASShorthandAdditions.h */,\n\t\t\t\tFA891F8E85C079B4FB101DDD5BC7A477 /* ViewController+MASAdditions.h */,\n\t\t\t\t25CED739CF35B6D0A1D95AE17D712A7F /* ViewController+MASAdditions.m */,\n\t\t\t\t4854BD850DB1ADEB02DE483F0C44E016 /* Support Files */,\n\t\t\t);\n\t\t\tpath = Masonry;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t433CD3331B6C3787F473C941B61FC68F /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tF302CD3B306AF1ED96B9AF31FCDBC26C /* iOS */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t4854BD850DB1ADEB02DE483F0C44E016 /* Support Files */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t7882AB8492CA4F59F730C76CC3BBF57A /* Masonry.xcconfig */,\n\t\t\t\t7B5A231E76AF7DC6CB887B5B2C522A7A /* Masonry-dummy.m */,\n\t\t\t\tA2F75C96947B2651F82FC18F66C43B49 /* Masonry-prefix.pch */,\n\t\t\t);\n\t\t\tname = \"Support Files\";\n\t\t\tpath = \"../Target Support Files/Masonry\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t7DB346D0F39D3F0E887471402A8071AB = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */,\n\t\t\t\t433CD3331B6C3787F473C941B61FC68F /* Frameworks */,\n\t\t\t\tE9B49E9D4F6BC02AA78DCF86BCED2145 /* Pods */,\n\t\t\t\tC59B00811C92682826C8C23C941CA9F1 /* Products */,\n\t\t\t\tD12EEF303E7F7321F9CE81FE66787320 /* Targets Support Files */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t82B54EAD4809430E72C9DBB7001AD0A0 /* Pods-HYBHelperKit */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD218B968E2DCF5F23B48155930C8905D /* Pods-HYBHelperKit-acknowledgements.markdown */,\n\t\t\t\tCC90903A199CF2D32B201A52EB14C14C /* Pods-HYBHelperKit-acknowledgements.plist */,\n\t\t\t\t70FA6792CD93759BDF34C503FC36015A /* Pods-HYBHelperKit-dummy.m */,\n\t\t\t\t2E4DF2D22770A60F9CCEC443AB877D93 /* Pods-HYBHelperKit-frameworks.sh */,\n\t\t\t\t215515CAD9991A91DD3F9770980BC722 /* Pods-HYBHelperKit-resources.sh */,\n\t\t\t\tA01C92C418752C9213688B928FC8B390 /* Pods-HYBHelperKit.debug.xcconfig */,\n\t\t\t\tA83EA4C93EC8C99D31AA72BA94C08894 /* Pods-HYBHelperKit.release.xcconfig */,\n\t\t\t);\n\t\t\tname = \"Pods-HYBHelperKit\";\n\t\t\tpath = \"Target Support Files/Pods-HYBHelperKit\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tC59B00811C92682826C8C23C941CA9F1 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t4FE404CFCFBDEF12F83661822F0E0F0B /* libMasonry.a */,\n\t\t\t\tA8FCF496D7716B2CF602747F4F360FD1 /* libPods-HYBHelperKit.a */,\n\t\t\t\t1B39B777C639471DA1577E21933D04EA /* libPods-HYBHelperKitTests.a */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD12EEF303E7F7321F9CE81FE66787320 /* Targets Support Files */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t82B54EAD4809430E72C9DBB7001AD0A0 /* Pods-HYBHelperKit */,\n\t\t\t\tE9BBD8942980AF8A92E58AAA6B912AE9 /* Pods-HYBHelperKitTests */,\n\t\t\t);\n\t\t\tname = \"Targets Support Files\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE9B49E9D4F6BC02AA78DCF86BCED2145 /* Pods */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t3B9FAC5BAEA75CAB3E20372C4D27D7EE /* Masonry */,\n\t\t\t);\n\t\t\tname = Pods;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tE9BBD8942980AF8A92E58AAA6B912AE9 /* Pods-HYBHelperKitTests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t440C106000E67FB628FF5B14691C1757 /* Pods-HYBHelperKitTests-acknowledgements.markdown */,\n\t\t\t\t4A3B844C12D52EA22748806384A329C6 /* Pods-HYBHelperKitTests-acknowledgements.plist */,\n\t\t\t\tEE1C220A5860721F1AAA1830A2A8EA0C /* Pods-HYBHelperKitTests-dummy.m */,\n\t\t\t\t85F3055099D8EFE97A7FF054AA8E3042 /* Pods-HYBHelperKitTests-frameworks.sh */,\n\t\t\t\t480E43D5D83BB182BC97D90FC9AE1262 /* Pods-HYBHelperKitTests-resources.sh */,\n\t\t\t\t7036F598DB6570810910F466DF8CC974 /* Pods-HYBHelperKitTests.debug.xcconfig */,\n\t\t\t\t5BAB376A6866A8C00AD546C8D96CECCF /* Pods-HYBHelperKitTests.release.xcconfig */,\n\t\t\t);\n\t\t\tname = \"Pods-HYBHelperKitTests\";\n\t\t\tpath = \"Target Support Files/Pods-HYBHelperKitTests\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tF302CD3B306AF1ED96B9AF31FCDBC26C /* iOS */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tA2A6FF208CEC4C2861F1E9D42D651453 /* Foundation.framework */,\n\t\t\t\tE86668F20F252C440D1015B816BE59C5 /* UIKit.framework */,\n\t\t\t);\n\t\t\tname = iOS;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXHeadersBuildPhase section */\n\t\t657D857047A6A935B5A2E9BD049194F2 /* Headers */ = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t99D8C610BC84BE231C5D3D280F3B12AF /* MASCompositeConstraint.h in Headers */,\n\t\t\t\tB2B7C90BA9C4DBD9851C75AC801B0E8E /* MASConstraint+Private.h in Headers */,\n\t\t\t\t2905381350CEFFBFFA9BC8B5D027F190 /* MASConstraint.h in Headers */,\n\t\t\t\tEC6CCC98505D2067BC98B4E6223C9DF8 /* MASConstraintMaker.h in Headers */,\n\t\t\t\tC6EE194D232E9FE87097C0F1DF91B9FA /* MASLayoutConstraint.h in Headers */,\n\t\t\t\t9205037BA8C22574B33FC96C5EA829A3 /* Masonry.h in Headers */,\n\t\t\t\tFF682E8B083BAEBBDF38C52D89D45E37 /* MASUtilities.h in Headers */,\n\t\t\t\t3F63C119F95A6735AE627BBB1BEBC4B1 /* MASViewAttribute.h in Headers */,\n\t\t\t\tEB02AEF303313F801392DE8D90AFF0F7 /* MASViewConstraint.h in Headers */,\n\t\t\t\tFD39EBE3398E1A99965AC003B273450D /* NSArray+MASAdditions.h in Headers */,\n\t\t\t\tA7D31BD1F3AD4ED4612467FAD332F388 /* NSArray+MASShorthandAdditions.h in Headers */,\n\t\t\t\t2979E54C4AFD27076576E82ADEED2F00 /* NSLayoutConstraint+MASDebugAdditions.h in Headers */,\n\t\t\t\tDD1F717B0527C71229B3339324E35E55 /* View+MASAdditions.h in Headers */,\n\t\t\t\t432BD50F1E699EDF2EA007E850FFCEF7 /* View+MASShorthandAdditions.h in Headers */,\n\t\t\t\t331718BFB4A91CFFE026492905231562 /* ViewController+MASAdditions.h in Headers */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXHeadersBuildPhase section */\n\n/* Begin PBXNativeTarget section */\n\t\t373362DD77D24B0978CC424EB01059B6 /* Pods-HYBHelperKitTests */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 089524DD0B4B4754CB76450702B8782F /* Build configuration list for PBXNativeTarget \"Pods-HYBHelperKitTests\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t27865FCDF24F988B939B49D4739BF04E /* Sources */,\n\t\t\t\tFDFBAEB90756D26D0B783764468B9041 /* Frameworks */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = \"Pods-HYBHelperKitTests\";\n\t\t\tproductName = \"Pods-HYBHelperKitTests\";\n\t\t\tproductReference = 1B39B777C639471DA1577E21933D04EA /* libPods-HYBHelperKitTests.a */;\n\t\t\tproductType = \"com.apple.product-type.library.static\";\n\t\t};\n\t\t53480ED0BE09FF49E34B1702D485CAAB /* Masonry */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = B6653DB75D219E078020C341A7D83ECE /* Build configuration list for PBXNativeTarget \"Masonry\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tDC8579C657135E3C32AB580A48C6D524 /* Sources */,\n\t\t\t\tFAB9E9D9BBDB93399D3C2B91469EC4B6 /* Frameworks */,\n\t\t\t\t657D857047A6A935B5A2E9BD049194F2 /* Headers */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = Masonry;\n\t\t\tproductName = Masonry;\n\t\t\tproductReference = 4FE404CFCFBDEF12F83661822F0E0F0B /* libMasonry.a */;\n\t\t\tproductType = \"com.apple.product-type.library.static\";\n\t\t};\n\t\tBB18FB8095A8F42A27722DC4771C6CA5 /* Pods-HYBHelperKit */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 23D69CE8173CBAC32390ABFBCABB05F2 /* Build configuration list for PBXNativeTarget \"Pods-HYBHelperKit\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t45E0217408674B68E6292CE0AE3E73D7 /* Sources */,\n\t\t\t\t053FE9E0000AE1D98A4C99091D08E612 /* Frameworks */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\t48A09AE50CE58C8E7BA64B9A2CF8FE79 /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = \"Pods-HYBHelperKit\";\n\t\t\tproductName = \"Pods-HYBHelperKit\";\n\t\t\tproductReference = A8FCF496D7716B2CF602747F4F360FD1 /* libPods-HYBHelperKit.a */;\n\t\t\tproductType = \"com.apple.product-type.library.static\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\tD41D8CD98F00B204E9800998ECF8427E /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastSwiftUpdateCheck = 0730;\n\t\t\t\tLastUpgradeCheck = 0700;\n\t\t\t};\n\t\t\tbuildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject \"Pods\" */;\n\t\t\tcompatibilityVersion = \"Xcode 3.2\";\n\t\t\tdevelopmentRegion = English;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t);\n\t\t\tmainGroup = 7DB346D0F39D3F0E887471402A8071AB;\n\t\t\tproductRefGroup = C59B00811C92682826C8C23C941CA9F1 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t53480ED0BE09FF49E34B1702D485CAAB /* Masonry */,\n\t\t\t\tBB18FB8095A8F42A27722DC4771C6CA5 /* Pods-HYBHelperKit */,\n\t\t\t\t373362DD77D24B0978CC424EB01059B6 /* Pods-HYBHelperKitTests */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t27865FCDF24F988B939B49D4739BF04E /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tCAE1578107F1A837277105016305211C /* Pods-HYBHelperKitTests-dummy.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t45E0217408674B68E6292CE0AE3E73D7 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t945EB2145BBD46F041D00A85AD7DA1DC /* Pods-HYBHelperKit-dummy.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tDC8579C657135E3C32AB580A48C6D524 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tBCD4B362C6194513150915437754E2D4 /* MASCompositeConstraint.m in Sources */,\n\t\t\t\tBE024118D329F8F566BD1811A1DC16CB /* MASConstraint.m in Sources */,\n\t\t\t\t335DCBC17D2469F228020EF6C7B41F7C /* MASConstraintMaker.m in Sources */,\n\t\t\t\tBDD210D7537DD15CFE59AE126005E5F8 /* MASLayoutConstraint.m in Sources */,\n\t\t\t\t81599471BAB0420D54E1ADF8507A5113 /* Masonry-dummy.m in Sources */,\n\t\t\t\tA44AF130E4C5313CD193D9BF68853026 /* MASViewAttribute.m in Sources */,\n\t\t\t\tE6B49FBCE3957DB67F691ACCC4CAF4BE /* MASViewConstraint.m in Sources */,\n\t\t\t\t5457FCC2699281B5A4203BA1559F593F /* NSArray+MASAdditions.m in Sources */,\n\t\t\t\tD3D9F12613E23AD64C1FA5F7081A3668 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */,\n\t\t\t\t81403CAF6C4C1D3DC8B199289C3A6F59 /* View+MASAdditions.m in Sources */,\n\t\t\t\tAF62B956405F7734F5A9B8F3FD4B1B96 /* ViewController+MASAdditions.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXTargetDependency section */\n\t\t48A09AE50CE58C8E7BA64B9A2CF8FE79 /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\tname = Masonry;\n\t\t\ttarget = 53480ED0BE09FF49E34B1702D485CAAB /* Masonry */;\n\t\t\ttargetProxy = B27D35E3A05CDD0911272D11A48878BE /* PBXContainerItemProxy */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin XCBuildConfiguration section */\n\t\t19A184A7C43096D49C94C62E71F8DA40 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = A83EA4C93EC8C99D31AA72BA94C08894 /* Pods-HYBHelperKit.release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 7.0;\n\t\t\t\tMACH_O_TYPE = staticlib;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_LIBTOOLFLAGS = \"\";\n\t\t\t\tPODS_ROOT = \"$(SRCROOT)\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t2B0EE25CA2DE71D139B21A7BD8FC3A8F /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = A01C92C418752C9213688B928FC8B390 /* Pods-HYBHelperKit.debug.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 7.0;\n\t\t\t\tMACH_O_TYPE = staticlib;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_LIBTOOLFLAGS = \"\";\n\t\t\t\tPODS_ROOT = \"$(SRCROOT)\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t2DAE732D13CB652A1ECC83370B3C00E5 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 7882AB8492CA4F59F730C76CC3BBF57A /* Masonry.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_PREFIX_HEADER = \"Target Support Files/Masonry/Masonry-prefix.pch\";\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 6.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_LIBTOOLFLAGS = \"\";\n\t\t\t\tPRIVATE_HEADERS_FOLDER_PATH = \"\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tPUBLIC_HEADERS_FOLDER_PATH = \"\";\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t3FA2475660FFC880302AD18E29B2E5FC /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"POD_CONFIGURATION_DEBUG=1\",\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_SYMBOLS_PRIVATE_EXTERN = NO;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 7.0;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSTRIP_INSTALLED_PRODUCT = NO;\n\t\t\t\tSYMROOT = \"${SRCROOT}/../build\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t903FBF203C5658B140DF3CBEF5D2090D /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 7882AB8492CA4F59F730C76CC3BBF57A /* Masonry.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_PREFIX_HEADER = \"Target Support Files/Masonry/Masonry-prefix.pch\";\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 6.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_LIBTOOLFLAGS = \"\";\n\t\t\t\tPRIVATE_HEADERS_FOLDER_PATH = \"\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tPUBLIC_HEADERS_FOLDER_PATH = \"\";\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tF031387D8FD94B39747CD9C29A4A5D19 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 5BAB376A6866A8C00AD546C8D96CECCF /* Pods-HYBHelperKitTests.release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 7.0;\n\t\t\t\tMACH_O_TYPE = staticlib;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_LIBTOOLFLAGS = \"\";\n\t\t\t\tPODS_ROOT = \"$(SRCROOT)\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tF325026B55060D3B22BEC0BAB5FA7344 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"POD_CONFIGURATION_RELEASE=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 7.0;\n\t\t\t\tSTRIP_INSTALLED_PRODUCT = NO;\n\t\t\t\tSYMROOT = \"${SRCROOT}/../build\";\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tFB4AFE806C676F61B9DD865CF8F3A50F /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 7036F598DB6570810910F466DF8CC974 /* Pods-HYBHelperKitTests.debug.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 7.0;\n\t\t\t\tMACH_O_TYPE = staticlib;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_LIBTOOLFLAGS = \"\";\n\t\t\t\tPODS_ROOT = \"$(SRCROOT)\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = \"org.cocoapods.${PRODUCT_NAME:rfc1034identifier}\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t089524DD0B4B4754CB76450702B8782F /* Build configuration list for PBXNativeTarget \"Pods-HYBHelperKitTests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tFB4AFE806C676F61B9DD865CF8F3A50F /* Debug */,\n\t\t\t\tF031387D8FD94B39747CD9C29A4A5D19 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t23D69CE8173CBAC32390ABFBCABB05F2 /* Build configuration list for PBXNativeTarget \"Pods-HYBHelperKit\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t2B0EE25CA2DE71D139B21A7BD8FC3A8F /* Debug */,\n\t\t\t\t19A184A7C43096D49C94C62E71F8DA40 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject \"Pods\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t3FA2475660FFC880302AD18E29B2E5FC /* Debug */,\n\t\t\t\tF325026B55060D3B22BEC0BAB5FA7344 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tB6653DB75D219E078020C341A7D83ECE /* Build configuration list for PBXNativeTarget \"Masonry\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t2DAE732D13CB652A1ECC83370B3C00E5 /* Debug */,\n\t\t\t\t903FBF203C5658B140DF3CBEF5D2090D /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */;\n}\n"
  },
  {
    "path": "Pods/Pods.xcodeproj/xcuserdata/huangyibiao.xcuserdatad/xcschemes/Masonry.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"0700\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForAnalyzing = \"YES\"\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = 'primary'\n               BlueprintIdentifier = '53480ED0BE09FF49E34B1702D485CAAB'\n               BlueprintName = 'Masonry'\n               ReferencedContainer = 'container:Pods.xcodeproj'\n               BuildableName = 'libMasonry.a'>\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      buildConfiguration = \"Debug\">\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </TestAction>\n   <LaunchAction\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      buildConfiguration = \"Debug\"\n      allowLocationSimulation = \"YES\">\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </LaunchAction>\n   <ProfileAction\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "Pods/Pods.xcodeproj/xcuserdata/huangyibiao.xcuserdatad/xcschemes/Pods-HYBHelperKit.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"0700\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForAnalyzing = \"YES\"\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = 'primary'\n               BlueprintIdentifier = 'BB18FB8095A8F42A27722DC4771C6CA5'\n               BlueprintName = 'Pods-HYBHelperKit'\n               ReferencedContainer = 'container:Pods.xcodeproj'\n               BuildableName = 'libPods-HYBHelperKit.a'>\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      buildConfiguration = \"Debug\">\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </TestAction>\n   <LaunchAction\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      buildConfiguration = \"Debug\"\n      allowLocationSimulation = \"YES\">\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </LaunchAction>\n   <ProfileAction\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "Pods/Pods.xcodeproj/xcuserdata/huangyibiao.xcuserdatad/xcschemes/Pods-HYBHelperKitTests.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"0700\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForAnalyzing = \"YES\"\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = 'primary'\n               BlueprintIdentifier = '373362DD77D24B0978CC424EB01059B6'\n               BlueprintName = 'Pods-HYBHelperKitTests'\n               ReferencedContainer = 'container:Pods.xcodeproj'\n               BuildableName = 'libPods-HYBHelperKitTests.a'>\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      buildConfiguration = \"Debug\">\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </TestAction>\n   <LaunchAction\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      buildConfiguration = \"Debug\"\n      allowLocationSimulation = \"YES\">\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </LaunchAction>\n   <ProfileAction\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "Pods/Pods.xcodeproj/xcuserdata/huangyibiao.xcuserdatad/xcschemes/xcschememanagement.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>SchemeUserState</key>\n\t<dict>\n\t\t<key>Masonry.xcscheme</key>\n\t\t<dict>\n\t\t\t<key>isShown</key>\n\t\t\t<false/>\n\t\t</dict>\n\t\t<key>Pods-HYBHelperKit.xcscheme</key>\n\t\t<dict>\n\t\t\t<key>isShown</key>\n\t\t\t<false/>\n\t\t</dict>\n\t\t<key>Pods-HYBHelperKitTests.xcscheme</key>\n\t\t<dict>\n\t\t\t<key>isShown</key>\n\t\t\t<false/>\n\t\t</dict>\n\t</dict>\n\t<key>SuppressBuildableAutocreation</key>\n\t<dict>\n\t\t<key>373362DD77D24B0978CC424EB01059B6</key>\n\t\t<dict>\n\t\t\t<key>primary</key>\n\t\t\t<true/>\n\t\t</dict>\n\t\t<key>53480ED0BE09FF49E34B1702D485CAAB</key>\n\t\t<dict>\n\t\t\t<key>primary</key>\n\t\t\t<true/>\n\t\t</dict>\n\t\t<key>BB18FB8095A8F42A27722DC4771C6CA5</key>\n\t\t<dict>\n\t\t\t<key>primary</key>\n\t\t\t<true/>\n\t\t</dict>\n\t</dict>\n</dict>\n</plist>\n"
  },
  {
    "path": "Pods/Target Support Files/Masonry/Masonry-dummy.m",
    "content": "#import <Foundation/Foundation.h>\n@interface PodsDummy_Masonry : NSObject\n@end\n@implementation PodsDummy_Masonry\n@end\n"
  },
  {
    "path": "Pods/Target Support Files/Masonry/Masonry-prefix.pch",
    "content": "#ifdef __OBJC__\n#import <UIKit/UIKit.h>\n#endif\n\n"
  },
  {
    "path": "Pods/Target Support Files/Masonry/Masonry.xcconfig",
    "content": "CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Masonry\nGCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1\nHEADER_SEARCH_PATHS = \"${PODS_ROOT}/Headers/Private\" \"${PODS_ROOT}/Headers/Private/Masonry\" \"${PODS_ROOT}/Headers/Public\" \"${PODS_ROOT}/Headers/Public/Masonry\"\nOTHER_LDFLAGS = -framework \"Foundation\" -framework \"UIKit\"\nPODS_BUILD_DIR = $BUILD_DIR\nPODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)\nPODS_ROOT = ${SRCROOT}\nPRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}\nSKIP_INSTALL = YES\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-HYBHelperKit/Pods-HYBHelperKit-acknowledgements.markdown",
    "content": "# Acknowledgements\nThis application makes use of the following third party libraries:\n\n## Masonry\n\nCopyright (c) 2011-2012 Masonry Team - https://github.com/Masonry\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\nGenerated by CocoaPods - https://cocoapods.org\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-HYBHelperKit/Pods-HYBHelperKit-acknowledgements.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>PreferenceSpecifiers</key>\n\t<array>\n\t\t<dict>\n\t\t\t<key>FooterText</key>\n\t\t\t<string>This application makes use of the following third party libraries:</string>\n\t\t\t<key>Title</key>\n\t\t\t<string>Acknowledgements</string>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSGroupSpecifier</string>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>FooterText</key>\n\t\t\t<string>Copyright (c) 2011-2012 Masonry Team - https://github.com/Masonry\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.</string>\n\t\t\t<key>Title</key>\n\t\t\t<string>Masonry</string>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSGroupSpecifier</string>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>FooterText</key>\n\t\t\t<string>Generated by CocoaPods - https://cocoapods.org</string>\n\t\t\t<key>Title</key>\n\t\t\t<string></string>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSGroupSpecifier</string>\n\t\t</dict>\n\t</array>\n\t<key>StringsTable</key>\n\t<string>Acknowledgements</string>\n\t<key>Title</key>\n\t<string>Acknowledgements</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-HYBHelperKit/Pods-HYBHelperKit-dummy.m",
    "content": "#import <Foundation/Foundation.h>\n@interface PodsDummy_Pods_HYBHelperKit : NSObject\n@end\n@implementation PodsDummy_Pods_HYBHelperKit\n@end\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-HYBHelperKit/Pods-HYBHelperKit-frameworks.sh",
    "content": "#!/bin/sh\nset -e\n\necho \"mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\nmkdir -p \"${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n\nSWIFT_STDLIB_PATH=\"${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}\"\n\ninstall_framework()\n{\n  if [ -r \"${BUILT_PRODUCTS_DIR}/$1\" ]; then\n    local source=\"${BUILT_PRODUCTS_DIR}/$1\"\n  elif [ -r \"${BUILT_PRODUCTS_DIR}/$(basename \"$1\")\" ]; then\n    local source=\"${BUILT_PRODUCTS_DIR}/$(basename \"$1\")\"\n  elif [ -r \"$1\" ]; then\n    local source=\"$1\"\n  fi\n\n  local destination=\"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n\n  if [ -L \"${source}\" ]; then\n      echo \"Symlinked...\"\n      source=\"$(readlink \"${source}\")\"\n  fi\n\n  # use filter instead of exclude so missing patterns dont' throw errors\n  echo \"rsync -av --filter \\\"- CVS/\\\" --filter \\\"- .svn/\\\" --filter \\\"- .git/\\\" --filter \\\"- .hg/\\\" --filter \\\"- Headers\\\" --filter \\\"- PrivateHeaders\\\" --filter \\\"- Modules\\\" \\\"${source}\\\" \\\"${destination}\\\"\"\n  rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"\n\n  local basename\n  basename=\"$(basename -s .framework \"$1\")\"\n  binary=\"${destination}/${basename}.framework/${basename}\"\n  if ! [ -r \"$binary\" ]; then\n    binary=\"${destination}/${basename}\"\n  fi\n\n  # Strip invalid architectures so \"fat\" simulator / device frameworks work on device\n  if [[ \"$(file \"$binary\")\" == *\"dynamically linked shared library\"* ]]; then\n    strip_invalid_archs \"$binary\"\n  fi\n\n  # Resign the code if required by the build settings to avoid unstable apps\n  code_sign_if_enabled \"${destination}/$(basename \"$1\")\"\n\n  # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.\n  if [ \"${XCODE_VERSION_MAJOR}\" -lt 7 ]; then\n    local swift_runtime_libs\n    swift_runtime_libs=$(xcrun otool -LX \"$binary\" | grep --color=never @rpath/libswift | sed -E s/@rpath\\\\/\\(.+dylib\\).*/\\\\1/g | uniq -u  && exit ${PIPESTATUS[0]})\n    for lib in $swift_runtime_libs; do\n      echo \"rsync -auv \\\"${SWIFT_STDLIB_PATH}/${lib}\\\" \\\"${destination}\\\"\"\n      rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"\n      code_sign_if_enabled \"${destination}/${lib}\"\n    done\n  fi\n}\n\n# Signs a framework with the provided identity\ncode_sign_if_enabled() {\n  if [ -n \"${EXPANDED_CODE_SIGN_IDENTITY}\" -a \"${CODE_SIGNING_REQUIRED}\" != \"NO\" -a \"${CODE_SIGNING_ALLOWED}\" != \"NO\" ]; then\n    # Use the current code_sign_identitiy\n    echo \"Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}\"\n    echo \"/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \\\"$1\\\"\"\n    /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\"\n  fi\n}\n\n# Strip invalid architectures\nstrip_invalid_archs() {\n  binary=\"$1\"\n  # Get architectures for current file\n  archs=\"$(lipo -info \"$binary\" | rev | cut -d ':' -f1 | rev)\"\n  stripped=\"\"\n  for arch in $archs; do\n    if ! [[ \"${VALID_ARCHS}\" == *\"$arch\"* ]]; then\n      # Strip non-valid architectures in-place\n      lipo -remove \"$arch\" -output \"$binary\" \"$binary\" || exit 1\n      stripped=\"$stripped $arch\"\n    fi\n  done\n  if [[ \"$stripped\" ]]; then\n    echo \"Stripped $binary of architectures:$stripped\"\n  fi\n}\n\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-HYBHelperKit/Pods-HYBHelperKit-resources.sh",
    "content": "#!/bin/sh\nset -e\n\nmkdir -p \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\n\nRESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt\n> \"$RESOURCES_TO_COPY\"\n\nXCASSET_FILES=()\n\ncase \"${TARGETED_DEVICE_FAMILY}\" in\n  1,2)\n    TARGET_DEVICE_ARGS=\"--target-device ipad --target-device iphone\"\n    ;;\n  1)\n    TARGET_DEVICE_ARGS=\"--target-device iphone\"\n    ;;\n  2)\n    TARGET_DEVICE_ARGS=\"--target-device ipad\"\n    ;;\n  *)\n    TARGET_DEVICE_ARGS=\"--target-device mac\"\n    ;;\nesac\n\nrealpath() {\n  DIRECTORY=\"$(cd \"${1%/*}\" && pwd)\"\n  FILENAME=\"${1##*/}\"\n  echo \"$DIRECTORY/$FILENAME\"\n}\n\ninstall_resource()\n{\n  if [[ \"$1\" = /* ]] ; then\n    RESOURCE_PATH=\"$1\"\n  else\n    RESOURCE_PATH=\"${PODS_ROOT}/$1\"\n  fi\n  if [[ ! -e \"$RESOURCE_PATH\" ]] ; then\n    cat << EOM\nerror: Resource \"$RESOURCE_PATH\" not found. Run 'pod install' to update the copy resources script.\nEOM\n    exit 1\n  fi\n  case $RESOURCE_PATH in\n    *.storyboard)\n      echo \"ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \\\"$RESOURCE_PATH\\\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}\"\n      ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \\\"$RESOURCE_PATH\\\" .storyboard`.storyboardc\" \"$RESOURCE_PATH\" --sdk \"${SDKROOT}\" ${TARGET_DEVICE_ARGS}\n      ;;\n    *.xib)\n      echo \"ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \\\"$RESOURCE_PATH\\\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT}\"\n      ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \\\"$RESOURCE_PATH\\\" .xib`.nib\" \"$RESOURCE_PATH\" --sdk \"${SDKROOT}\"\n      ;;\n    *.framework)\n      echo \"mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n      mkdir -p \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n      echo \"rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n      rsync -av \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n      ;;\n    *.xcdatamodel)\n      echo \"xcrun momc \\\"$RESOURCE_PATH\\\" \\\"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\"`.mom\\\"\"\n      xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xcdatamodel`.mom\"\n      ;;\n    *.xcdatamodeld)\n      echo \"xcrun momc \\\"$RESOURCE_PATH\\\" \\\"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xcdatamodeld`.momd\\\"\"\n      xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xcdatamodeld`.momd\"\n      ;;\n    *.xcmappingmodel)\n      echo \"xcrun mapc \\\"$RESOURCE_PATH\\\" \\\"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xcmappingmodel`.cdm\\\"\"\n      xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xcmappingmodel`.cdm\"\n      ;;\n    *.xcassets)\n      ABSOLUTE_XCASSET_FILE=$(realpath \"$RESOURCE_PATH\")\n      XCASSET_FILES+=(\"$ABSOLUTE_XCASSET_FILE\")\n      ;;\n    *)\n      echo \"$RESOURCE_PATH\"\n      echo \"$RESOURCE_PATH\" >> \"$RESOURCES_TO_COPY\"\n      ;;\n  esac\n}\n\nmkdir -p \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\nrsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from=\"$RESOURCES_TO_COPY\" / \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\nif [[ \"${ACTION}\" == \"install\" ]] && [[ \"${SKIP_INSTALL}\" == \"NO\" ]]; then\n  mkdir -p \"${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\n  rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from=\"$RESOURCES_TO_COPY\" / \"${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\nfi\nrm -f \"$RESOURCES_TO_COPY\"\n\nif [[ -n \"${WRAPPER_EXTENSION}\" ]] && [ \"`xcrun --find actool`\" ] && [ -n \"$XCASSET_FILES\" ]\nthen\n  # Find all other xcassets (this unfortunately includes those of path pods and other targets).\n  OTHER_XCASSETS=$(find \"$PWD\" -iname \"*.xcassets\" -type d)\n  while read line; do\n    if [[ $line != \"`realpath $PODS_ROOT`*\" ]]; then\n      XCASSET_FILES+=(\"$line\")\n    fi\n  done <<<\"$OTHER_XCASSETS\"\n\n  printf \"%s\\0\" \"${XCASSET_FILES[@]}\" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform \"${PLATFORM_NAME}\" --minimum-deployment-target \"${!DEPLOYMENT_TARGET_SETTING_NAME}\" ${TARGET_DEVICE_ARGS} --compress-pngs --compile \"${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\nfi\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-HYBHelperKit/Pods-HYBHelperKit.debug.xcconfig",
    "content": "GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1\nHEADER_SEARCH_PATHS = $(inherited) \"${PODS_ROOT}/Headers/Public\" \"${PODS_ROOT}/Headers/Public/Masonry\"\nLIBRARY_SEARCH_PATHS = $(inherited) \"$PODS_CONFIGURATION_BUILD_DIR/Masonry\"\nOTHER_CFLAGS = $(inherited) -isystem \"${PODS_ROOT}/Headers/Public\" -isystem \"${PODS_ROOT}/Headers/Public/Masonry\"\nOTHER_LDFLAGS = $(inherited) -ObjC -l\"Masonry\" -framework \"Foundation\" -framework \"UIKit\"\nPODS_BUILD_DIR = $BUILD_DIR\nPODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)\nPODS_ROOT = ${SRCROOT}/Pods\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-HYBHelperKit/Pods-HYBHelperKit.release.xcconfig",
    "content": "GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1\nHEADER_SEARCH_PATHS = $(inherited) \"${PODS_ROOT}/Headers/Public\" \"${PODS_ROOT}/Headers/Public/Masonry\"\nLIBRARY_SEARCH_PATHS = $(inherited) \"$PODS_CONFIGURATION_BUILD_DIR/Masonry\"\nOTHER_CFLAGS = $(inherited) -isystem \"${PODS_ROOT}/Headers/Public\" -isystem \"${PODS_ROOT}/Headers/Public/Masonry\"\nOTHER_LDFLAGS = $(inherited) -ObjC -l\"Masonry\" -framework \"Foundation\" -framework \"UIKit\"\nPODS_BUILD_DIR = $BUILD_DIR\nPODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)\nPODS_ROOT = ${SRCROOT}/Pods\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-HYBHelperKitTests/Pods-HYBHelperKitTests-acknowledgements.markdown",
    "content": "# Acknowledgements\nThis application makes use of the following third party libraries:\nGenerated by CocoaPods - https://cocoapods.org\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-HYBHelperKitTests/Pods-HYBHelperKitTests-acknowledgements.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>PreferenceSpecifiers</key>\n\t<array>\n\t\t<dict>\n\t\t\t<key>FooterText</key>\n\t\t\t<string>This application makes use of the following third party libraries:</string>\n\t\t\t<key>Title</key>\n\t\t\t<string>Acknowledgements</string>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSGroupSpecifier</string>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>FooterText</key>\n\t\t\t<string>Generated by CocoaPods - https://cocoapods.org</string>\n\t\t\t<key>Title</key>\n\t\t\t<string></string>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSGroupSpecifier</string>\n\t\t</dict>\n\t</array>\n\t<key>StringsTable</key>\n\t<string>Acknowledgements</string>\n\t<key>Title</key>\n\t<string>Acknowledgements</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-HYBHelperKitTests/Pods-HYBHelperKitTests-dummy.m",
    "content": "#import <Foundation/Foundation.h>\n@interface PodsDummy_Pods_HYBHelperKitTests : NSObject\n@end\n@implementation PodsDummy_Pods_HYBHelperKitTests\n@end\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-HYBHelperKitTests/Pods-HYBHelperKitTests-frameworks.sh",
    "content": "#!/bin/sh\nset -e\n\necho \"mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\nmkdir -p \"${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n\nSWIFT_STDLIB_PATH=\"${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}\"\n\ninstall_framework()\n{\n  if [ -r \"${BUILT_PRODUCTS_DIR}/$1\" ]; then\n    local source=\"${BUILT_PRODUCTS_DIR}/$1\"\n  elif [ -r \"${BUILT_PRODUCTS_DIR}/$(basename \"$1\")\" ]; then\n    local source=\"${BUILT_PRODUCTS_DIR}/$(basename \"$1\")\"\n  elif [ -r \"$1\" ]; then\n    local source=\"$1\"\n  fi\n\n  local destination=\"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n\n  if [ -L \"${source}\" ]; then\n      echo \"Symlinked...\"\n      source=\"$(readlink \"${source}\")\"\n  fi\n\n  # use filter instead of exclude so missing patterns dont' throw errors\n  echo \"rsync -av --filter \\\"- CVS/\\\" --filter \\\"- .svn/\\\" --filter \\\"- .git/\\\" --filter \\\"- .hg/\\\" --filter \\\"- Headers\\\" --filter \\\"- PrivateHeaders\\\" --filter \\\"- Modules\\\" \\\"${source}\\\" \\\"${destination}\\\"\"\n  rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"\n\n  local basename\n  basename=\"$(basename -s .framework \"$1\")\"\n  binary=\"${destination}/${basename}.framework/${basename}\"\n  if ! [ -r \"$binary\" ]; then\n    binary=\"${destination}/${basename}\"\n  fi\n\n  # Strip invalid architectures so \"fat\" simulator / device frameworks work on device\n  if [[ \"$(file \"$binary\")\" == *\"dynamically linked shared library\"* ]]; then\n    strip_invalid_archs \"$binary\"\n  fi\n\n  # Resign the code if required by the build settings to avoid unstable apps\n  code_sign_if_enabled \"${destination}/$(basename \"$1\")\"\n\n  # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.\n  if [ \"${XCODE_VERSION_MAJOR}\" -lt 7 ]; then\n    local swift_runtime_libs\n    swift_runtime_libs=$(xcrun otool -LX \"$binary\" | grep --color=never @rpath/libswift | sed -E s/@rpath\\\\/\\(.+dylib\\).*/\\\\1/g | uniq -u  && exit ${PIPESTATUS[0]})\n    for lib in $swift_runtime_libs; do\n      echo \"rsync -auv \\\"${SWIFT_STDLIB_PATH}/${lib}\\\" \\\"${destination}\\\"\"\n      rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"\n      code_sign_if_enabled \"${destination}/${lib}\"\n    done\n  fi\n}\n\n# Signs a framework with the provided identity\ncode_sign_if_enabled() {\n  if [ -n \"${EXPANDED_CODE_SIGN_IDENTITY}\" -a \"${CODE_SIGNING_REQUIRED}\" != \"NO\" -a \"${CODE_SIGNING_ALLOWED}\" != \"NO\" ]; then\n    # Use the current code_sign_identitiy\n    echo \"Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}\"\n    echo \"/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \\\"$1\\\"\"\n    /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\"\n  fi\n}\n\n# Strip invalid architectures\nstrip_invalid_archs() {\n  binary=\"$1\"\n  # Get architectures for current file\n  archs=\"$(lipo -info \"$binary\" | rev | cut -d ':' -f1 | rev)\"\n  stripped=\"\"\n  for arch in $archs; do\n    if ! [[ \"${VALID_ARCHS}\" == *\"$arch\"* ]]; then\n      # Strip non-valid architectures in-place\n      lipo -remove \"$arch\" -output \"$binary\" \"$binary\" || exit 1\n      stripped=\"$stripped $arch\"\n    fi\n  done\n  if [[ \"$stripped\" ]]; then\n    echo \"Stripped $binary of architectures:$stripped\"\n  fi\n}\n\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-HYBHelperKitTests/Pods-HYBHelperKitTests-resources.sh",
    "content": "#!/bin/sh\nset -e\n\nmkdir -p \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\n\nRESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt\n> \"$RESOURCES_TO_COPY\"\n\nXCASSET_FILES=()\n\ncase \"${TARGETED_DEVICE_FAMILY}\" in\n  1,2)\n    TARGET_DEVICE_ARGS=\"--target-device ipad --target-device iphone\"\n    ;;\n  1)\n    TARGET_DEVICE_ARGS=\"--target-device iphone\"\n    ;;\n  2)\n    TARGET_DEVICE_ARGS=\"--target-device ipad\"\n    ;;\n  *)\n    TARGET_DEVICE_ARGS=\"--target-device mac\"\n    ;;\nesac\n\nrealpath() {\n  DIRECTORY=\"$(cd \"${1%/*}\" && pwd)\"\n  FILENAME=\"${1##*/}\"\n  echo \"$DIRECTORY/$FILENAME\"\n}\n\ninstall_resource()\n{\n  if [[ \"$1\" = /* ]] ; then\n    RESOURCE_PATH=\"$1\"\n  else\n    RESOURCE_PATH=\"${PODS_ROOT}/$1\"\n  fi\n  if [[ ! -e \"$RESOURCE_PATH\" ]] ; then\n    cat << EOM\nerror: Resource \"$RESOURCE_PATH\" not found. Run 'pod install' to update the copy resources script.\nEOM\n    exit 1\n  fi\n  case $RESOURCE_PATH in\n    *.storyboard)\n      echo \"ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \\\"$RESOURCE_PATH\\\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}\"\n      ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \\\"$RESOURCE_PATH\\\" .storyboard`.storyboardc\" \"$RESOURCE_PATH\" --sdk \"${SDKROOT}\" ${TARGET_DEVICE_ARGS}\n      ;;\n    *.xib)\n      echo \"ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \\\"$RESOURCE_PATH\\\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT}\"\n      ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \\\"$RESOURCE_PATH\\\" .xib`.nib\" \"$RESOURCE_PATH\" --sdk \"${SDKROOT}\"\n      ;;\n    *.framework)\n      echo \"mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n      mkdir -p \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n      echo \"rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n      rsync -av \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n      ;;\n    *.xcdatamodel)\n      echo \"xcrun momc \\\"$RESOURCE_PATH\\\" \\\"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\"`.mom\\\"\"\n      xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xcdatamodel`.mom\"\n      ;;\n    *.xcdatamodeld)\n      echo \"xcrun momc \\\"$RESOURCE_PATH\\\" \\\"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xcdatamodeld`.momd\\\"\"\n      xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xcdatamodeld`.momd\"\n      ;;\n    *.xcmappingmodel)\n      echo \"xcrun mapc \\\"$RESOURCE_PATH\\\" \\\"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xcmappingmodel`.cdm\\\"\"\n      xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xcmappingmodel`.cdm\"\n      ;;\n    *.xcassets)\n      ABSOLUTE_XCASSET_FILE=$(realpath \"$RESOURCE_PATH\")\n      XCASSET_FILES+=(\"$ABSOLUTE_XCASSET_FILE\")\n      ;;\n    *)\n      echo \"$RESOURCE_PATH\"\n      echo \"$RESOURCE_PATH\" >> \"$RESOURCES_TO_COPY\"\n      ;;\n  esac\n}\n\nmkdir -p \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\nrsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from=\"$RESOURCES_TO_COPY\" / \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\nif [[ \"${ACTION}\" == \"install\" ]] && [[ \"${SKIP_INSTALL}\" == \"NO\" ]]; then\n  mkdir -p \"${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\n  rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from=\"$RESOURCES_TO_COPY\" / \"${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\nfi\nrm -f \"$RESOURCES_TO_COPY\"\n\nif [[ -n \"${WRAPPER_EXTENSION}\" ]] && [ \"`xcrun --find actool`\" ] && [ -n \"$XCASSET_FILES\" ]\nthen\n  # Find all other xcassets (this unfortunately includes those of path pods and other targets).\n  OTHER_XCASSETS=$(find \"$PWD\" -iname \"*.xcassets\" -type d)\n  while read line; do\n    if [[ $line != \"`realpath $PODS_ROOT`*\" ]]; then\n      XCASSET_FILES+=(\"$line\")\n    fi\n  done <<<\"$OTHER_XCASSETS\"\n\n  printf \"%s\\0\" \"${XCASSET_FILES[@]}\" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform \"${PLATFORM_NAME}\" --minimum-deployment-target \"${!DEPLOYMENT_TARGET_SETTING_NAME}\" ${TARGET_DEVICE_ARGS} --compress-pngs --compile \"${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\nfi\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-HYBHelperKitTests/Pods-HYBHelperKitTests.debug.xcconfig",
    "content": "GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1\nHEADER_SEARCH_PATHS = $(inherited) \"${PODS_ROOT}/Headers/Public\" \"${PODS_ROOT}/Headers/Public/Masonry\"\nOTHER_CFLAGS = $(inherited) -isystem \"${PODS_ROOT}/Headers/Public\" -isystem \"${PODS_ROOT}/Headers/Public/Masonry\"\nOTHER_LDFLAGS = $(inherited) -ObjC\nPODS_BUILD_DIR = $BUILD_DIR\nPODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)\nPODS_ROOT = ${SRCROOT}/Pods\n"
  },
  {
    "path": "Pods/Target Support Files/Pods-HYBHelperKitTests/Pods-HYBHelperKitTests.release.xcconfig",
    "content": "GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1\nHEADER_SEARCH_PATHS = $(inherited) \"${PODS_ROOT}/Headers/Public\" \"${PODS_ROOT}/Headers/Public/Masonry\"\nOTHER_CFLAGS = $(inherited) -isystem \"${PODS_ROOT}/Headers/Public\" -isystem \"${PODS_ROOT}/Headers/Public/Masonry\"\nOTHER_LDFLAGS = $(inherited) -ObjC\nPODS_BUILD_DIR = $BUILD_DIR\nPODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)\nPODS_ROOT = ${SRCROOT}/Pods\n"
  },
  {
    "path": "README.md",
    "content": "# HYBHelperKit\n\n\n[![Build Status](https://travis-ci.org/CoderJackyHuang/HYBHelperKit.svg?branch=master)](https://travis-ci.org/CoderJackyHuang/HYBHelperKit)\n[![CocoaPods](https://img.shields.io/cocoapods/v/HYBHelperKit.svg?maxAge=2592000?style=flat-square)](https://cocoapods.org/?q=HYBHelperKit)\n\n日常开发必不可少的神器之一，UIBlockKit、UIMakerKit、UIKit、CommonKit、FoundationKit、Controllers、Constants等集于一身的神器！\n\n目前具备的功能：\n\n* 通用的宏定义、blcok定义等，详细请阅读HYBCommonKit.h\n* 对常用的UI控件再次简化调用，配合Masonry自动布局，及block版本的事件响应回调，一句代码搞定！\n* 对常用的Foundation库中的类添加分类，以减少崩溃的概率\n* 对常用的控制器类的通用功能集成到基类中，如通知监听及释放、导航条配置、测试入口类、base url列表选择入口等\n* 对常用的控件封装成block版本\n\n#目录划分\n\n* CommonKit：将常用的宏和短代码简化成宏或者block定义\n* UIBlockKit：将常用的UI控件变成block版本，以辅助UIMasonryMaker生成最简单的版本\n* FoundationKit：主要扩展日常使用到的基础类，添加分类，追加常用的API\n* UIMasonryKit：基于Masonry生成控件，以简化代码，增加可读性\n* Constants：经常使用到的常量定义\n* UIKit：常用的UI控件分类，以简化开发\n* Controllers：辅助控制器，比如用于测试期使用的接口baseurl访问和建立测试中心入口，基类控制器等\n\n\n\n#单元测试\n\n对于FoundationKit是经过单元测试的！对于UI组件，并没有进行单元测试，不过已在某项目中使用，目前未出现问题。\n\n#使用\n\n```\npod 'HYBHelperKit'\n```\n\n#API风格\n\n* 所有扩展公开API及属性都有hyb_前缀\n* 部分类公开API及属性也有hyb_前缀\n* 所有API都有详细的注释\n\n#基础使用\n\n```\n// 非系统返回按钮\nkWeakObject(self);\n[self hyb_setNavLeftButtonTitle:@\"Back\" onCliked:^(UIButton *sender) {\n  [weakObject.navigationController popViewControllerAnimated:YES];\n}];\n[self.hyb_leftButtonItem setTitleColor:kBlueColor forState:UIControlStateNormal];\n\n// 一行搞定导航条\n[self hyb_setNavTitle:@\"Test1\" rightTitles:@[@\"btton1\", @\"button2\"] rightBlock:^(NSUInteger index, UIButton *sender) {\n  NSLog(@\"clicked at index: %ld\", index);\n}];\n\n[self.hyb_rightButtonItems enumerateObjectsUsingBlock:^(UIButton * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {\n  [obj setTitleColor:kPurpleColor forState:UIControlStateNormal];\n}];\n```\n\n##创建tableview\n\n提供了多种API，这只是其中一种：\n\n```\n  self.tableView = [UITableView hyb_tableViewWithSuperview:self.view delegate:self constraints:^(MASConstraintMaker *make) {\n    make.left.right.bottom.mas_equalTo(0);\n    make.top.mas_equalTo(self.customNavView.mas_bottom);\n  }];\n```\n\n##创建按钮\n\n```\n  UIButton *enterButton = [UIButton hyb_buttonWithTitle:@\"立即进入\" superView:itemView1 constraints:^(MASConstraintMaker *make) {\n    make.right.mas_equalTo(-10);\n    make.height.mas_equalTo(25);\n    make.centerY.mas_equalTo(itemView1);\n    make.width.mas_equalTo(80);\n  } touchUp:^(UIButton *sender) {\n    \n  }];\n```\n\n更多还是查看源代码吧！\n\n#声明\n\n本开源项目会持续维护，如果有bug或者觉得可以抽一个轮子的，请拉一个issue或者pull request过来！如果想到博客中阅读，欢迎访问[http://www.huangyibiao.com/ios-hybhelperkit/](http://www.huangyibiao.com/ios-hybhelperkit/)\n\n#History Versions\n\n* V0.1.0\n  - Fix bugs\n  - Add NSDate common APIs in FoundationKit.\n* V0.1.1\n  - Fix bugs\n  - Upload pod to support\n* V0.2.0\n  - Add UIKit categories, as UIAlertView, UIActionSheet.\n  - Fix hyb_trimLeft crash bug when not enough length string.\n  - Fix hyb_leftMarginOfCursor using _cmd will get nil because of getter and setter _cmd is not the same.\n\n#LICENSE\n\nMIT\n\n"
  },
  {
    "path": "codecov.yml",
    "content": "coverage:\n  ignore:\n    - HYBHelperKitTests/*\n    - Pods/*\n  status:\n    patch: false\n"
  }
]