[
  {
    "path": ".gitignore",
    "content": "# Xcode\nbuild/*\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.perspectivev3\n!default.perspectivev3\n*.xcworkspace\n!default.xcworkspace\nxcuserdata\nprofile\n*.moved-aside\n"
  },
  {
    "path": "LICENSE",
    "content": "Copyright 2012 MindSnacks\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License."
  },
  {
    "path": "MSLeakHunter+Private.h",
    "content": "//\n//  MSAbstractLeakHunter+Private.h\n//  MindSnacks\n//\n//  Created by Javier Soto on 11/16/12.\n//\n//\n\n#if MSLeakHunter_ENABLED\n\n/**\n * @discussion leaks hunters must use these methods to implement their functionality.\n */\n@interface MSLeakHunter ()\n\n/**\n * @discussion call this method when an object got a notification that indicates that it will be deallocated soon.\n * @param objectReference should be a string that contains the class, the pointer, and a description of the object that leaked.\n */\n+ (void)scheduleLeakNotificationWithObjectReferenceString:(NSString *)referenceString\n                                               afterDelay:(NSTimeInterval)delay;\n\n/**\n * @discussion call this method to cancel the schedule of a log for a leaked object\n * when it's finally deallocated.\n */\n+ (void)cancelLeakNotificationWithObjectReferenceString:(NSString *)referenceString;\n\n/**\n * @discussion you can call this method to swizzle the original method of the class you're trying to\n * catch leaks from, and replace it with a method in a category of that class.\n */\n+ (void)swizzleMethod:(SEL)aOriginalMethod ofClass:(Class)class withMethod:(SEL)aNewMethod;\n\n@end\n\n#endif"
  },
  {
    "path": "MSLeakHunter.h",
    "content": "//\n//  MSLeakHunter.h\n//  MindSnacks\n//\n//  Created by Javier Soto on 11/16/12.\n//\n//\n\n#import <Foundation/Foundation.h>\n\n/**\n * @discussion this is a general on/off switch for MSLeakHunter.\n * Classes that implement the `MSLeakHunter` protocol should wrap all their code between #if and #endif\n * statements so that none of their code is compiled if this is turned off.\n */\n#define MSLeakHunter_ENABLED TARGET_IPHONE_SIMULATOR\n\n#if MSLeakHunter_ENABLED\n\n@protocol MSLeakHunter <NSObject>\n\n/**\n * @discussion leak hunters should implement the appropiate method swizzling in this method.\n */\n+ (void)install;\n\n@end\n\n@interface MSLeakHunter : NSObject\n\n+ (void)installLeakHunter:(Class<MSLeakHunter>)leakHunter;\n\n@end\n\n#endif"
  },
  {
    "path": "MSLeakHunter.m",
    "content": "//\n//  MSLeakHunter.m\n//  MindSnacks\n//\n//  Created by Javier Soto on 11/16/12.\n//\n//\n\n#import \"MSLeakHunter.h\"\n\n#import <objc/runtime.h>\n\n#if MSLeakHunter_ENABLED\n\n// This is hacky and relies on a \"deprecated\" (althought the documentation isn't updated saying so) method. What's the alternative?\nstatic inline void ms_dispatch_sync_safe(dispatch_queue_t dispatchQueue, dispatch_block_t block)\n{\n#pragma clang diagnostic push\n#pragma clang diagnostic ignored \"-Wdeprecated-declarations\"\n    if (dispatch_get_current_queue() == dispatchQueue)\n    {\n#pragma clang diagnostic pop\n        block();\n    }\n    else\n    {\n        dispatch_sync(dispatchQueue, block);\n    }\n}\n\n/**\n * @discussion this queue lets us ensure that the calls to `performSector:...` and `cancelPrevious...`\n * are always made in the same run loop.\n */\nstatic dispatch_queue_t _msLeakHunterQueue = nil;\n\n@implementation MSLeakHunter\n\n+ (void)initialize\n{\n    if ([self class] == [MSLeakHunter class])\n    {\n        _msLeakHunterQueue = dispatch_queue_create(\"com.mindsnacks.leakhunter\", DISPATCH_QUEUE_SERIAL);\n    }\n}\n\n+ (MSLeakHunter *)sharedInstance\n{\n    static MSLeakHunter *sharedInstance = nil;\n\n    static dispatch_once_t onceToken;\n    dispatch_once(&onceToken, ^{\n        sharedInstance = [[MSLeakHunter alloc] init];\n    });\n\n    return sharedInstance;\n}\n\n- (void)objectLeakedWithReference:(NSString *)objectReference\n{\n    NSLog(@\"[%@] POSSIBLE LEAK OF %@\", NSStringFromClass([self class]), objectReference);\n}\n\n+ (void)installLeakHunter:(Class<MSLeakHunter>)leakHunter\n{\n    [leakHunter install];\n}\n\n#pragma mark - Swizzling\n\n+ (void)swizzleMethod:(SEL)aOriginalMethod\n              ofClass:(Class)class\n           withMethod:(SEL)aNewMethod\n{\n    Method oldMethod = class_getInstanceMethod(class, aOriginalMethod);\n    Method newMethod = class_getInstanceMethod(class, aNewMethod);\n\n    method_exchangeImplementations(oldMethod, newMethod);\n}\n\n#pragma mark - Checking\n\n+ (void)scheduleLeakNotificationWithObjectReferenceString:(NSString *)referenceString\n                                               afterDelay:(NSTimeInterval)delay\n{\n    // Ensure we always run these methods on the same thread\n    ms_dispatch_sync_safe(_msLeakHunterQueue, ^{\n        // Cancel previous ones just in case to avoid multiple calls.\n        [self cancelLeakNotificationWithObjectReferenceString:referenceString];\n\n        [[self sharedInstance] performSelector:@selector(objectLeakedWithReference:)\n                                    withObject:referenceString\n                                    afterDelay:delay];\n    });\n}\n\n+ (void)cancelLeakNotificationWithObjectReferenceString:(NSString *)referenceString\n{\n    ms_dispatch_sync_safe(_msLeakHunterQueue, ^{\n        [self cancelPreviousPerformRequestsWithTarget:[self sharedInstance]\n                                             selector:@selector(objectLeakedWithReference:)\n                                               object:referenceString];\n    });\n}\n\n@end\n\n#endif"
  },
  {
    "path": "MSLeakHunterRetainBreakpointsHelper.h",
    "content": "//\n//  MSLeakHunterRetainBreakpointsHelper.h\n//  MindSnacks\n//\n//  Created by Javier Soto on 1/22/13.\n//\n//\n\n#import \"MSLeakHunter.h\"\n\n#if MSLeakHunter_ENABLED\n\n/**\n * @discussion installs a series of handles so that subsequent calls to the methods listed below result\n * in the debugger stopping with a brekapoint so that you can trace the calls in the stack to those methods.\n * @ methods:\n * - retain\n * - release\n * - autorelease\n * - dealloc\n *\n * @note these methods are not thread safe and should be called from the main thread.\n */\nextern void ms_enableMemoryManagementMethodBreakpointsOnObject(id object);\n\n/**\n * @discussion undoes what `ms_enableMemoryManagementMethodBreakpointsOnObject()` did, so the object will no longer\n * make the debugger stop when those methods are called on it.\n */\nextern void ms_disableMemoryManagementMethodBreakpointsOnObject(id object);\n\n#endif"
  },
  {
    "path": "MSLeakHunterRetainBreakpointsHelper.m",
    "content": "//\n//  MSLeakHunterRetainBreakpointsHelper.m\n//  MindSnacks\n//\n//  Created by Javier Soto on 1/22/13.\n//\n//\n\n#import \"MSLeakHunterRetainBreakpointsHelper.h\"\n\n#if MSLeakHunter_ENABLED\n\n#if __has_feature(objc_arc)\n    #error MSLeakHunterRetainBreakpointsHelper is non-ARC only. Either turn off ARC for the project or use -fno-objc-arc flag \\\n           Because of how this class messes with retain and release calls, making this class support ARC is kind of tricky.\n#endif\n\n#import \"MSLeakHunter+Private.h\"\n\n#import <objc/runtime.h>\n#import <objc/message.h>\n#import <dlfcn.h>\n\n#include <assert.h>\n#include <stdbool.h>\n#include <sys/types.h>\n#include <unistd.h>\n#include <sys/sysctl.h>\n\n#pragma mark -\n\n// Thanks to DCIntrospect for this trick: https://github.com/domesticcatsoftware/DCIntrospect\n\n// Returns true if the current process is being debugged (either\n// running under the debugger or has a debugger attached post facto).\n__unused static bool AmIBeingDebugged(void)\n{\n    int                 junk;\n    int                 mib[4];\n    struct kinfo_proc   info;\n    size_t              size;\n\n    // Initialize the flags so that, if sysctl fails for some bizarre\n    // reason, we get a predictable result.\n\n    info.kp_proc.p_flag = 0;\n\n    // Initialize mib, which tells sysctl the info we want, in this case\n    // we're looking for information about a specific process ID.\n\n    mib[0] = CTL_KERN;\n    mib[1] = KERN_PROC;\n    mib[2] = KERN_PROC_PID;\n    mib[3] = getpid();\n\n    // Call sysctl.\n\n    size = sizeof(info);\n    junk = sysctl(mib, sizeof(mib) / sizeof(*mib), &info, &size, NULL, 0);\n    assert(junk == 0);\n\n    // We're being debugged if the P_TRACED flag is set.\n\n    return ( (info.kp_proc.p_flag & P_TRACED) != 0 );\n}\n\n#if TARGET_CPU_ARM64\n  #define DEBUGGER() do {__asm__ __volatile__ (\"svc 0\"); } while(0)\n#elif TARGET_CPU_X86_64\n  #define DEBUGGER() __builtin_trap()\n#elif TARGET_CPU_ARM\n  #define DEBUGSTOP(signal) __asm__ __volatile__ (\"mov r0, %0\\nmov r1, %1\\nmov r12, %2\\nswi 128\\n\" : : \"r\"(getpid ()), \"r\"(signal), \"r\"(37) : \"r12\", \"r0\", \"r1\", \"cc\");\n  #define DEBUGGER() do { if (AmIBeingDebugged()) { DEBUGSTOP(SIGINT); } } while (false);\n#else\n  #define DEBUGGER() do { if (AmIBeingDebugged()) { __asm__ __volatile__ (\"pushl %0\\npushl %1\\npush $0\\nmovl %2, %%eax\\nint $0x80\\nadd $12, %%esp\" : : \"g\" (SIGINT), \"g\" (getpid ()), \"n\" (37) : \"eax\", \"cc\"); } } while (false);\n#endif\n\n#define PARENT_IMP(object, selector) (class_getMethodImplementation(class_getSuperclass(object_getClass(object)), selector))\n\n#define CALL_PARENT_IMP(object, selector) IMP i = PARENT_IMP(object, selector); i(object, selector);\n#define CALL_AND_RETURN_PARENT_IMP(object, selector) IMP i = PARENT_IMP(object, selector); return i(object, selector);\n\n#define ADD_NEW_METHOD(class, selector, function_pointer) class_addMethod(class, selector, (IMP)function_pointer, @encode(typeof(function_pointer)));\n\n#pragma mark -\n\nstatic id ms_retain(id self, SEL _cmd)\n{\n    DEBUGGER();\n\n    CALL_AND_RETURN_PARENT_IMP(self, _cmd);\n}\n\nstatic void ms_release(id self, SEL _cmd)\n{\n    DEBUGGER();\n\n    CALL_PARENT_IMP(self, _cmd);\n}\n\nstatic id ms_autorelease(id self, SEL _cmd)\n{\n    DEBUGGER();\n\n    CALL_AND_RETURN_PARENT_IMP(self, _cmd);\n}\n\nstatic void ms_dealloc(id self, SEL _cmd)\n{\n    DEBUGGER();\n\n    CALL_PARENT_IMP(self, _cmd);\n\n    // We could remove the dynamic class with this undocumented method:\n    // objc_disposeClassPair(object_getClass(self));\n    // But we would probably need to do that only when this is the last living object of this class.\n}\n\n// We override class to make the dynamic subclass objects pose as the normal class\nstatic Class ms_class(id self, SEL _cmd)\n{\n    Class thisClass = object_getClass(self);\n\n    return class_getSuperclass(thisClass);\n}\n\nstatic BOOL _ms_hasBreakpointsEnabled(id self, SEL _cmd)\n{\n    return YES;\n}\n\nstatic SEL _ms_hasBreakpointsEnabledSelector(void)\n{\n    return NSSelectorFromString(@\"_ms_hasBreakpointsEnabled\");\n}\n\n#pragma mark -\n\n#define kDynamicSubclassPrefix @\"__MSLeak_\"\n\nstatic BOOL ms_objectIsOfDynamicSubclass(id object)\n{\n    if (!object)\n    {\n        return NO;\n    }\n    \n    SEL selector = _ms_hasBreakpointsEnabledSelector();\n \n    if (class_respondsToSelector(object_getClass(object), selector))\n    {\n        return ((BOOL(*)(id, SEL))objc_msgSend)((id)object, selector);\n    }\n\n    return NO;\n}\n\nstatic __inline__ NSString *ms_dynamicSubclassNameForObject(id object)\n{\n    return [NSString stringWithFormat:@\"%@%@\", kDynamicSubclassPrefix, NSStringFromClass([object class])];\n}\n\nvoid ms_enableMemoryManagementMethodBreakpointsOnObject(id object)\n{\n    NSCParameterAssert(object);\n    \n    // Add a dynamic subclass for that object\n\n    // 1. Does the subclass already exist?\n    NSString *subclassName = ms_dynamicSubclassNameForObject(object);\n    Class subclass = NSClassFromString(subclassName);\n\n    // 2. Doesn't exist. Creating the dynamic subclass\n    if (!subclass)\n    {\n        Class parentClass = [object class];\n        subclass = objc_allocateClassPair(parentClass, [subclassName cStringUsingEncoding:NSASCIIStringEncoding], 0);\n\n        NSCAssert(subclass, @\"Could not create dynamic subclass for object %@\", object);\n\n        objc_registerClassPair(subclass);\n\n        // Implement the memory management methods for that subclass\n        ADD_NEW_METHOD(subclass, @selector(retain), ms_retain);\n        ADD_NEW_METHOD(subclass, @selector(release), ms_release);\n        ADD_NEW_METHOD(subclass, @selector(autorelease), ms_autorelease);\n        ADD_NEW_METHOD(subclass, @selector(dealloc), ms_dealloc);\n        ADD_NEW_METHOD(subclass, @selector(class), ms_class);\n        ADD_NEW_METHOD(subclass, _ms_hasBreakpointsEnabledSelector(), _ms_hasBreakpointsEnabled);\n    }\n\n    // 3. Make the object of that subclass\n    object_setClass(object, subclass);\n}\n\nextern void ms_disableMemoryManagementMethodBreakpointsOnObject(id object)\n{\n    NSCParameterAssert(object);\n\n    if (ms_objectIsOfDynamicSubclass(object))\n    {\n        // Simply set the class to the parent (the one posed as by -class) so that it doesn't have the modified method implementations\n        object_setClass(object, [object class]);\n        \n        // Note: The dynamic subclass will still exist.\n    }\n}\n\n#endif"
  },
  {
    "path": "MSViewControllerLeakHunter.h",
    "content": "//\n//  MSViewControllerLeakHunter.h\n//  MSAppKit\n//\n//  Created by Javier Soto on 10/16/12.\n//\n//\n\n#import \"MSLeakHunter.h\"\n\n#if MSLeakHunter_ENABLED\n\n/**\n * @discussion if a view controller hasn't been deallocated after this time after it disappeared from screen, it's considered \"pottentially leaked\"\n */\n#define kMSVCLeakHunterDisappearAndDeallocateMaxInterval 30.0f\n\n/**\n * @discussion this makes MSVCLeakHunter print logs when view controllers appear, disappear and are deallocated.\n */\n#define MSVCLeakHunter_EnableUIViewControllerLog 0\n\n/**\n * @discussion when installed, it's going to print messages in the log whenever a view controller is not deallocated after a while of disappearing from screen.\n */\n@interface MSViewControllerLeakHunter : NSObject <MSLeakHunter>\n\n@end\n\n#endif"
  },
  {
    "path": "MSViewControllerLeakHunter.m",
    "content": "//\n//  MSVCLeakHunter.m\n//  MSAppKit\n//\n//  Created by Javier Soto on 10/16/12.\n//\n//\n\n#import \"MSViewControllerLeakHunter.h\"\n\n#import \"MSLeakHunter+Private.h\"\n\n#if MSLeakHunter_ENABLED\n\n#if MSVCLeakHunter_EnableUIViewControllerLog\n    #define LOG_METHOD(NAME) NSLog(@\"MSViewControllerLeakHunter -[%@ %@]\", NSStringFromClass([self class]), NAME)\n#else\n    #define LOG_METHOD(NAME)\n#endif\n\n@interface UIViewController (MSViewControllerLeakHunter)\n\n- (void)_msvcLeakHunter_viewDidAppear:(BOOL)animated;\n- (void)_msvcLeakHunter_viewDidDisappear:(BOOL)animated;\n- (void)_msvcLeakHunter_dealloc;\n\n@end\n\n@implementation MSViewControllerLeakHunter\n\n+ (void)install\n{\n    Class class = [UIViewController class];\n\n    [MSLeakHunter swizzleMethod:@selector(viewDidAppear:)\n                        ofClass:class\n                     withMethod:@selector(_msvcLeakHunter_viewDidAppear:)];\n\n    [MSLeakHunter swizzleMethod:@selector(viewDidDisappear:)\n                        ofClass:class\n                     withMethod:@selector(_msvcLeakHunter_viewDidDisappear:)];\n\n    [MSLeakHunter swizzleMethod:NSSelectorFromString(@\"dealloc\")\n                        ofClass:class\n                     withMethod:@selector(_msvcLeakHunter_dealloc)];\n}\n\n@end\n\n@implementation UIViewController (MSViewControllerLeakHunter)\n\n/**\n * @return a string that identifies the controller. This is used to be pased to `MSVCLeakHunter` without retaining the controller.\n */\n- (NSString *)controllerReferenceString\n{\n    return [NSString stringWithFormat:@\"VIEW CONTROLLER %@ <%p>\", NSStringFromClass([self class]), self];\n}\n\n- (void)cancelLeakCheck\n{\n    [MSLeakHunter cancelLeakNotificationWithObjectReferenceString:[self controllerReferenceString]];\n}\n\n- (void)scheduleLeakCheck\n{\n    [MSLeakHunter scheduleLeakNotificationWithObjectReferenceString:[self controllerReferenceString]\n                                                         afterDelay:kMSVCLeakHunterDisappearAndDeallocateMaxInterval];\n}\n\n#pragma mark - Alternative method implementations)\n\n- (void)_msvcLeakHunter_viewDidAppear:(BOOL)animated\n{\n    LOG_METHOD(@\"viewDidAppear:\");\n\n    [self cancelLeakCheck];\n\n    // Call original implementation\n    [self _msvcLeakHunter_viewDidAppear:animated];\n}\n\n- (void)_msvcLeakHunter_viewDidDisappear:(BOOL)animated\n{\n    LOG_METHOD(@\"viewDidDisappear:\");\n\n    [self scheduleLeakCheck];\n\n    // Call original implementation\n    [self _msvcLeakHunter_viewDidDisappear:animated];\n}\n\n- (void)_msvcLeakHunter_dealloc\n{\n    LOG_METHOD(@\"dealloc\");\n\n    [self cancelLeakCheck];\n\n    // Call original implementation\n    [self _msvcLeakHunter_dealloc];\n}\n\n@end\n\n#endif"
  },
  {
    "path": "MSViewLeakHunter.h",
    "content": "//\n//  MSViewLeakHunter.h\n//  MindSnacks\n//\n//  Created by Javier Soto on 12/7/12.\n//\n//\n\n#import \"MSLeakHunter.h\"\n\n#if MSLeakHunter_ENABLED\n\n/**\n * @discussion allows you to enable/disable only this leak hunter.\n * if MSLeakHunter is completely disabled, this setting doesn't have effect.\n */\n#define MSViewLeakHunter_ENABLED 0\n\n#if MSViewLeakHunter_ENABLED\n\n/**\n * @discussion if a view hasn't been deallocated after this time after it disappeared from screen, it's considered \"pottentially leaked\"\n */\n#define kMSViewLeakHunterDisappearAndDeallocateMaxInterval 15.0f\n\n/**\n * @discussion when installed, it's going to print messages in the log whenever a view is not deallocated after a while of disappearing from screen.\n */\n@interface MSViewLeakHunter : NSObject <MSLeakHunter>\n\n@end\n\n#endif\n\n#endif"
  },
  {
    "path": "MSViewLeakHunter.m",
    "content": "//\n//  MSViewLeakHunter.m\n//  MindSnacks\n//\n//  Created by Javier Soto on 12/7/12.\n//\n//\n\n#import \"MSViewLeakHunter.h\"\n\n#import \"MSLeakHunter+Private.h\"\n\n#if MSLeakHunter_ENABLED\n\n#if MSViewLeakHunter_ENABLED\n\n@interface UIView (MSViewLeakHunter)\n\n- (void)_msviewLeakHunter_didMoveToWindow;\n- (void)_msviewLeakHunter_dealloc;\n@end\n\n@implementation MSViewLeakHunter\n\n+ (void)install\n{\n    Class class = [UIView class];\n\n    [MSLeakHunter swizzleMethod:@selector(didMoveToWindow)\n                        ofClass:class\n                     withMethod:@selector(_msviewLeakHunter_didMoveToWindow)];\n\n    [MSLeakHunter swizzleMethod:NSSelectorFromString(@\"dealloc\")\n                        ofClass:class\n                     withMethod:@selector(_msviewLeakHunter_dealloc)];\n}\n\n@end\n\n@implementation UIView (MSViewLeakHunter)\n\n/**\n * @return a string that identifies the controller. This is used to be pased to `MSVCLeakHunter` without retaining the controller.\n */\n- (NSString *)viewReferenceString\n{\n    return [NSString stringWithFormat:@\"VIEW %@ <%p>\", NSStringFromClass([self class]), self];\n}\n\n- (void)cancelLeakCheck\n{\n    [MSLeakHunter cancelLeakNotificationWithObjectReferenceString:[self viewReferenceString]];\n}\n\n- (void)_msviewLeakHunter_didMoveToWindow\n{\n    if (!self.window)\n    {\n        [MSLeakHunter scheduleLeakNotificationWithObjectReferenceString:[self viewReferenceString]\n                                                             afterDelay:kMSViewLeakHunterDisappearAndDeallocateMaxInterval];\n    }\n    else\n    {\n        [self cancelLeakCheck];\n    }\n}\n\n- (void)_msviewLeakHunter_dealloc\n{\n    [self cancelLeakCheck];\n\n    // Call original implementation\n    [self _msviewLeakHunter_dealloc];\n}\n\n@end\n\n#endif \n\n#endif\n"
  },
  {
    "path": "MSZombieHunter.h",
    "content": "//\n//  MSZombieHunter.h\n//  MindSnacks\n//\n//  Created by Javier Soto on 3/1/13.\n//\n//\n\n#import <Foundation/Foundation.h>\n\n#define MSZombieHunter_Available (TARGET_IPHONE_SIMULATOR || (!TARGET_OS_IPHONE))\n\n#if MSZombieHunter_Available\n\n@interface MSZombieHunter : NSObject\n\n+ (void)enable;\n+ (void)disable;\n\n@end\n\n#endif"
  },
  {
    "path": "MSZombieHunter.m",
    "content": "//\n//  MSZombieHunter.m\n//  MindSnacks\n//\n//  Created by Javier Soto on 3/1/13.\n//\n//\n\n#import \"MSZombieHunter.h\"\n\n#if MSZombieHunter_Available\n\n#if __has_feature(objc_arc)\n    #error MSZombieHunter is non-ARC only. Either turn off ARC for the project or use -fno-objc-arc flag \\\n           ARC explicitly disallows implementing retain/release/autorelease methods which must be implemented here.\n#endif\n\n#import <objc/runtime.h>\n\nstatic IMP ms_swizzleMethodWithBlock(Method method, void *block)\n{\n    IMP blockImplementation = imp_implementationWithBlock(block);\n\n    return method_setImplementation(method, blockImplementation);\n}\n\n@interface _MSZombie : NSProxy\n\n@property (nonatomic, assign) Class originalClass;\n\n@end\n\nstatic BOOL _enabled = NO;\nstatic NSArray *_rootClasses = nil;\nstatic NSArray *_originalDeallocImps = nil;\n\n@implementation MSZombieHunter\n\n+ (void)initialize\n{\n    if ([self class] == [MSZombieHunter class])\n    {\n        _rootClasses = [@[[NSObject class], [NSProxy class]] retain];\n    }\n}\n\n+ (void)swizzleDealloc\n{\n    static void *swizzledDeallocBlock = NULL;\n\n    static dispatch_once_t onceToken;\n    dispatch_once(&onceToken, ^{\n        swizzledDeallocBlock = [^void(id obj) {\n            Class currentClass = [obj class];\n\n            object_setClass(obj, [_MSZombie class]);\n\n            ((_MSZombie *)obj).originalClass = currentClass;\n        } copy];\n    });\n\n    NSMutableArray *deallocImplementations = [NSMutableArray array];\n\n    for (Class rootClass in _rootClasses)\n    {\n        IMP originalDeallocImp = ms_swizzleMethodWithBlock(class_getInstanceMethod(rootClass, @selector(dealloc)), swizzledDeallocBlock);\n\n        [deallocImplementations addObject:[NSValue valueWithBytes:&originalDeallocImp objCType:@encode(typeof(IMP))]];\n    }\n\n    _originalDeallocImps = [deallocImplementations copy];\n}\n\n+ (void)unswizzleDealloc\n{\n    [_rootClasses enumerateObjectsUsingBlock:^(Class rootClass, NSUInteger idx, BOOL *stop) {\n        IMP originalDeallocImp = NULL;\n        [_originalDeallocImps[idx] getValue:&originalDeallocImp];\n\n        NSParameterAssert(originalDeallocImp);\n\n        method_setImplementation(class_getInstanceMethod(rootClass, @selector(dealloc)), originalDeallocImp);\n    }];\n\n    [_originalDeallocImps release];\n    _originalDeallocImps = nil;\n}\n\n+ (void)enable\n{\n    @synchronized(self)\n    {\n        if (!_enabled)\n        {\n            [self swizzleDealloc];\n\n            _enabled = YES;\n        }\n    }\n}\n\n+ (void)disable\n{\n    @synchronized(self)\n    {\n        if (_enabled)\n        {\n            [self unswizzleDealloc];\n            \n            _enabled = NO;\n        }\n    }\n}\n\n@end\n\n@implementation NSObject (MSZombieHunter)\n\n- (void)ms_zombieHunterDealloc\n{\n    Class currentClass = [self class];\n\n    object_setClass(self, [_MSZombie class]);\n\n    ((_MSZombie *)self).originalClass = currentClass;\n}\n\n@end\n\nstatic char MSZombieOriginalClassKey;\n\n#define MSZombieThrowMesssageSentException() [self throwMessageSentExceptionWithSelector:_cmd]\n\n@implementation _MSZombie\n\n- (void)throwMessageSentExceptionWithSelector:(SEL)selector\n{\n    @throw [NSException exceptionWithName:NSInternalInconsistencyException\n                                   reason:[NSString stringWithFormat:@\"An Objective-C message (-[%@ %@]) was sent to a deallocated object (zombie) at address: %p\",\n                                           NSStringFromClass(self.originalClass),\n                                           NSStringFromSelector(selector),\n                                           self]\n                                 userInfo:nil];\n}\n\n#pragma mark - NSProxy stuff\n\n- (BOOL)respondsToSelector:(SEL)aSelector\n{\n    return [self.originalClass instancesRespondToSelector:aSelector];\n}\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)sel\n{\n    return [self.originalClass instanceMethodSignatureForSelector:sel];\n}\n\n- (void)forwardInvocation:(NSInvocation *)invocation\n{\n    [self throwMessageSentExceptionWithSelector:invocation.selector];\n}\n\n#pragma mark - NSObject protocol methods\n\n// These methods won't trigger the proxy forwarding, so we must implement them to throw the exception too:\n\n- (Class)class\n{\n    MSZombieThrowMesssageSentException();\n\n    return nil;\n}\n\n- (BOOL)isEqual:(id)object\n{\n    MSZombieThrowMesssageSentException();\n\n    return NO;\n}\n\n- (NSUInteger)hash\n{\n    MSZombieThrowMesssageSentException();\n\n    return 0;\n}\n\n- (id)self\n{\n    MSZombieThrowMesssageSentException();\n\n    return nil;\n}\n\n- (BOOL)isKindOfClass:(Class)aClass\n{\n    MSZombieThrowMesssageSentException();\n\n    return NO;\n}\n\n- (BOOL)isMemberOfClass:(Class)aClass\n{\n    MSZombieThrowMesssageSentException();\n\n    return NO;\n}\n\n- (BOOL)conformsToProtocol:(Protocol *)aProtocol\n{\n    MSZombieThrowMesssageSentException();\n\n    return NO;\n}\n\n- (BOOL)isProxy\n{\n    MSZombieThrowMesssageSentException();\n\n    return NO;\n}\n\n- (id)retain\n{\n    MSZombieThrowMesssageSentException();\n\n    return nil;\n}\n\n- (oneway void)release\n{\n    MSZombieThrowMesssageSentException();\n}\n\n- (id)autorelease\n{\n    MSZombieThrowMesssageSentException();\n\n    return nil;\n}\n\n- (void)dealloc\n{\n    MSZombieThrowMesssageSentException();\n\n    [super dealloc];\n}\n\n- (NSUInteger)retainCount\n{\n    MSZombieThrowMesssageSentException();\n\n    return 0;\n}\n\n- (NSZone *)zone\n{\n    MSZombieThrowMesssageSentException();\n\n    return nil;\n}\n\n- (NSString *)description\n{\n    MSZombieThrowMesssageSentException();\n\n    return nil;\n}\n\n#pragma mark - Properties\n\n- (Class)originalClass\n{\n    return objc_getAssociatedObject(self, &MSZombieOriginalClassKey);\n}\n\n- (void)setOriginalClass:(Class)originalClass\n{\n    objc_setAssociatedObject(self, &MSZombieOriginalClassKey, originalClass, OBJC_ASSOCIATION_ASSIGN);\n}\n\n@end\n\n#endif\n"
  },
  {
    "path": "README.md",
    "content": "MSLeakHunter\n==============\n\n### Series of tools to help you find and debug objects that are leaking in your iOS apps.\n\nThere are very common cases where objects may be leaking (not being deallocated when you expect them to) and instruments fails to detect this. One particular example is due to retain cycles using blocks, and it's very tricky sometimes to realize that some object isn't being deallocated.\n\n**MSLeakHunter** provides a generic interface to construct \"leak hunter\" objects, that are in charge of monitoring the allocation and deallocation of objects of a particular class. In this repo, two particular implementations are provided: `MSViewControllerLeakHunter` and `MSViewLeakHunter` (for `UIViewController` and `UIView` instances respectively).\n\nHowever, you can create as many leak hunters as you wish. The only thing they need is that the object they're expecting to be deallocated to have some method that gets called before this deallocation is supposed to happen.\nFor example, `UIViewController` will get a `-viewDidDisappear:` call some time before its deallocation. What `MSLeakHunter` allows you to do, is to keep track of that object, and in case `-dealloc` isn't called some time  after that, it's considered pottentially leaked and it's logged in the console.\n\nThe implementation is pretty cheap, so it shouldn't hurt the performance of any application, but it's advised to keep this code disabled (through the `MSLeakHunter_ENABLED` macro) when shipping an app.\n\nFor more instructions on how to create other leak hunter objects, refer to the `MSLeakHunter+Private` header and to the included sample implementations.\n\n# Installation\n\n- Add ```MSLeakHunter.{h,m}``` to the Xcode project.\n- Somewhere during app initialization (e.g. the ```applicationDidFinishLaunchingWithOptions:``` method of your app delegate.), install the leak hunters that you want to enable:\n\n```objc\n[MSLeakHunter installLeakHunter:[MSViewControllerLeakHunter class]];\n```\n- Make sure ```MSVCLeakHunter_ENABLED``` is set to 1 in ```MSVCLeakHunter.h```\n\n# What it looks like\n\n- When you run the app with a leak hunter enabled, and it finds a possible object that is leaking, this is what you'll see:\n\n<img src=\"http://f.cl.ly/items/0Y013H42412v2E0H0Y1K/Screen%20Shot%202012-10-20%20at%206.13.27%20PM.png\" />\n*screenshot from the sample project*\n\n# MSLeakHunterRetainBreakpointsHelper\n\nThis other tool lets you debug a leak once you know it exists. It provides a very simple way to make the debugger stop on a breakpoint every time one of the 4 memory management methods is called on the object that you're interested in monitoring. This should help you find out where that extra -retain call is coming from, or who is retaining that object but never releasing it, etc.\nUsing it is as simple as calling this method declared in `MSLeakHunterRetainBreakpointsHelper.h` with the object that you want to monitor:\n\n```objc\nms_enableMemoryManagementMethodBreakpointsOnObject(object);\n```\n\nAfter this call, the debugger will stop the application whenever `-retain`, `-release`, `-autorelease`, or `-dealloc` is called on that object. If you go up the stack, you will be able to see who caused the call to those methods and hopefully that will help you debug memory managament problems in your app.\n\n* Note: `MSLeakHunterRetainBreakpointsHelper.m` has to be compiled without ARC. If your project uses ARC, refer to [this tutorial](http://maniacdev.com/2012/01/easily-get-non-arc-enabled-open-source-libraries-working-in-arc-enabled-projects/) to know how to disable ARC only for that file.\n\n# MSZombieHunter\n\n`MSZombieHunter` works similarly to setting `NSZombieEnabled`, but you can enable it with a class method call:\n\n```objc\n+[MSZombieHunter enable];\n```\nFrom that point on, if an object is sent a message after it's deallocated, it will throw an exception that you can catch and know inmediately when it happened. This is what it looks like:\n\n<img src=\"http://f.cl.ly/items/2t3e3Z451O3R2X060x3m/Screen%20Shot%202013-03-01%20at%2012.23.13%20PM.png\" />\n\n**Important note**\n\nEnabling `MSZombieHunter` makes all objects stay alive when they receive the dealloc message, which increases the memory usage of the application exponentially. For this reason it's only advised to enable it on the simulator and when trying to debug an `EXC_BAD_ACCESS` crash. \n\n# Compatibility\n\n- ```MSLeakHunter``` is compatible with **ARC** and **non-ARC** projects.\n\n# Caveats of the leak hunter implementations\n\nIf you look at the implementation in ```MSViewControllerLeakHunter.m```, it's very naive. All it does is swizzle some methods for every UIViewController instance to discover when a view controller disappear from screen( *it gets a ```viewDidDisappear:``` call* ), but isn't deallocated after a certain period of time.\n\nIf this happens, it doesn't guarantee 100% that the view controller leaked. For example, if it's inside a ```UITabBarController```, it may disappear when you select another tab, but it's still retained by the tabbar, and it hasn't leaked.\n\nBut it will help you discover, for example, view controllers that you push onto a navigation controller stack, and aren't deallocated when you pop them tapping on the back button.\n\nIn the case where you have something like a navigation controller that is shown modally, and then the whole stack goes away when the modal is closed, you may want to tweak the value of ```kMSVCLeakHunterDisappearAndDeallocateMaxInterval``` ( *see ```MSViewControllerLeakHunter.h```* ) to give ```MSViewControllerLeakHunter``` enough margin to avoid a false positive. Otherwise, you may see a log for a possible leak of the controllers at the bottom of the stack if the modal takes longer to be closed.\n\n# License\n\nCopyright 2012 MindSnacks\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n"
  },
  {
    "path": "Sample Project/MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject/MSAppDelegate.h",
    "content": "//\n//  MSAppDelegate.h\n//  MSVCLeakHunterSampleProject\n//\n//  Created by Javier Soto on 10/20/12.\n//  Copyright (c) 2012 MindSnacks. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n@interface MSAppDelegate : UIResponder <UIApplicationDelegate>\n\n@property (strong, nonatomic) UIWindow *window;\n\n@end\n"
  },
  {
    "path": "Sample Project/MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject/MSAppDelegate.m",
    "content": "//\n//  MSAppDelegate.m\n//  MSVCLeakHunterSampleProject\n//\n//  Created by Javier Soto on 10/20/12.\n//  Copyright (c) 2012 MindSnacks. All rights reserved.\n//\n\n#import \"MSAppDelegate.h\"\n\n#import \"MSMenuVC.h\"\n\n#import \"MSLeakHunter.h\"\n#import \"MSViewControllerLeakHunter.h\"\n#import \"MSViewLeakHunter.h\"\n#import \"MSZombieHunter.h\"\n\n@implementation MSAppDelegate\n\n- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions\n{\n    // installing the MSVCLeakHunter\n#if MSLeakHunter_ENABLED\n    [MSLeakHunter installLeakHunter:[MSViewControllerLeakHunter class]];\n#endif\n\n#if MSViewLeakHunter_ENABLED\n    [MSLeakHunter installLeakHunter:[MSViewLeakHunter class]];\n#endif\n    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];\n\n    MSMenuVC *menuVC = [[MSMenuVC alloc] init];\n\n    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:menuVC];\n    self.window.rootViewController = navigationController;\n\n    [self.window makeKeyAndVisible];\n\n    // Uncomment to try MSZombieHunter:\n    /*\n    [MSZombieHunter enable];\n    __unsafe_unretained UIView *view = [[UIView alloc] init]; // This object is deallocated right here.\n    NSLog(@\"View: %@\", view); // This makes it crash because view is a zombie.\n     */\n\n    return YES;\n}\n@end\n"
  },
  {
    "path": "Sample Project/MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject/MSLeakingVC.h",
    "content": "//\n//  MSLeakingVC.h\n//  MSVCLeakHunterSampleProject\n//\n//  Created by Javier Soto on 10/20/12.\n//  Copyright (c) 2012 MindSnacks. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n@interface MSLeakingVC : UIViewController\n\n@end\n"
  },
  {
    "path": "Sample Project/MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject/MSLeakingVC.m",
    "content": "//\n//  MSLeakingVC.m\n//  MSVCLeakHunterSampleProject\n//\n//  Created by Javier Soto on 10/20/12.\n//  Copyright (c) 2012 MindSnacks. All rights reserved.\n//\n\n#import \"MSLeakingVC.h\"\n\n@interface MSLeakingVC ()\n\n@property (nonatomic, copy) dispatch_block_t block;\n\n@end\n\n@implementation MSLeakingVC\n\n- (id)init\n{\n    if ((self = [super init]))\n    {\n        self.block = ^{\n            NSLog(@\"%@ this blocks references self, so it retains self, and self retains the block, so there's a retain cycle => the VC never deallocates.\", self);\n        };\n    }\n\n    return self;\n}\n\n@end\n"
  },
  {
    "path": "Sample Project/MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject/MSLeakingVC.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<archive type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"8.00\">\n\t<data>\n\t\t<int key=\"IBDocument.SystemTarget\">1536</int>\n\t\t<string key=\"IBDocument.SystemVersion\">12C60</string>\n\t\t<string key=\"IBDocument.InterfaceBuilderVersion\">2843</string>\n\t\t<string key=\"IBDocument.AppKitVersion\">1187.34</string>\n\t\t<string key=\"IBDocument.HIToolboxVersion\">625.00</string>\n\t\t<object class=\"NSMutableDictionary\" key=\"IBDocument.PluginVersions\">\n\t\t\t<string key=\"NS.key.0\">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>\n\t\t\t<string key=\"NS.object.0\">1929</string>\n\t\t</object>\n\t\t<array key=\"IBDocument.IntegratedClassDependencies\">\n\t\t\t<string>IBProxyObject</string>\n\t\t\t<string>IBUILabel</string>\n\t\t\t<string>IBUIView</string>\n\t\t</array>\n\t\t<array key=\"IBDocument.PluginDependencies\">\n\t\t\t<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>\n\t\t</array>\n\t\t<object class=\"NSMutableDictionary\" key=\"IBDocument.Metadata\">\n\t\t\t<string key=\"NS.key.0\">PluginDependencyRecalculationVersion</string>\n\t\t\t<integer value=\"1\" key=\"NS.object.0\"/>\n\t\t</object>\n\t\t<array class=\"NSMutableArray\" key=\"IBDocument.RootObjects\" id=\"1000\">\n\t\t\t<object class=\"IBProxyObject\" id=\"372490531\">\n\t\t\t\t<string key=\"IBProxiedObjectIdentifier\">IBFilesOwner</string>\n\t\t\t\t<string key=\"targetRuntimeIdentifier\">IBCocoaTouchFramework</string>\n\t\t\t</object>\n\t\t\t<object class=\"IBProxyObject\" id=\"975951072\">\n\t\t\t\t<string key=\"IBProxiedObjectIdentifier\">IBFirstResponder</string>\n\t\t\t\t<string key=\"targetRuntimeIdentifier\">IBCocoaTouchFramework</string>\n\t\t\t</object>\n\t\t\t<object class=\"IBUIView\" id=\"191373211\">\n\t\t\t\t<reference key=\"NSNextResponder\"/>\n\t\t\t\t<int key=\"NSvFlags\">274</int>\n\t\t\t\t<array class=\"NSMutableArray\" key=\"NSSubviews\">\n\t\t\t\t\t<object class=\"IBUILabel\" id=\"129565752\">\n\t\t\t\t\t\t<reference key=\"NSNextResponder\" ref=\"191373211\"/>\n\t\t\t\t\t\t<int key=\"NSvFlags\">301</int>\n\t\t\t\t\t\t<string key=\"NSFrame\">{{59, 228}, {202, 91}}</string>\n\t\t\t\t\t\t<reference key=\"NSSuperview\" ref=\"191373211\"/>\n\t\t\t\t\t\t<reference key=\"NSWindow\"/>\n\t\t\t\t\t\t<reference key=\"NSNextKeyView\"/>\n\t\t\t\t\t\t<string key=\"NSReuseIdentifierKey\">_NS:9</string>\n\t\t\t\t\t\t<bool key=\"IBUIOpaque\">NO</bool>\n\t\t\t\t\t\t<bool key=\"IBUIClipsSubviews\">YES</bool>\n\t\t\t\t\t\t<int key=\"IBUIContentMode\">7</int>\n\t\t\t\t\t\t<bool key=\"IBUIUserInteractionEnabled\">NO</bool>\n\t\t\t\t\t\t<string key=\"targetRuntimeIdentifier\">IBCocoaTouchFramework</string>\n\t\t\t\t\t\t<string key=\"IBUIText\">This view controller leaks</string>\n\t\t\t\t\t\t<object class=\"NSColor\" key=\"IBUITextColor\">\n\t\t\t\t\t\t\t<int key=\"NSColorSpace\">1</int>\n\t\t\t\t\t\t\t<bytes key=\"NSRGB\">MCAwIDAAA</bytes>\n\t\t\t\t\t\t\t<string key=\"IBUIColorCocoaTouchKeyPath\">darkTextColor</string>\n\t\t\t\t\t\t</object>\n\t\t\t\t\t\t<nil key=\"IBUIHighlightedColor\"/>\n\t\t\t\t\t\t<int key=\"IBUIBaselineAdjustment\">0</int>\n\t\t\t\t\t\t<int key=\"IBUINumberOfLines\">0</int>\n\t\t\t\t\t\t<int key=\"IBUITextAlignment\">1</int>\n\t\t\t\t\t\t<object class=\"IBUIFontDescription\" key=\"IBUIFontDescription\">\n\t\t\t\t\t\t\t<int key=\"type\">2</int>\n\t\t\t\t\t\t\t<double key=\"pointSize\">19</double>\n\t\t\t\t\t\t</object>\n\t\t\t\t\t\t<object class=\"NSFont\" key=\"IBUIFont\">\n\t\t\t\t\t\t\t<string key=\"NSName\">Helvetica-Bold</string>\n\t\t\t\t\t\t\t<double key=\"NSSize\">19</double>\n\t\t\t\t\t\t\t<int key=\"NSfFlags\">16</int>\n\t\t\t\t\t\t</object>\n\t\t\t\t\t\t<bool key=\"IBUIAdjustsFontSizeToFit\">NO</bool>\n\t\t\t\t\t\t<double key=\"preferredMaxLayoutWidth\">202</double>\n\t\t\t\t\t</object>\n\t\t\t\t</array>\n\t\t\t\t<string key=\"NSFrame\">{{0, 20}, {320, 548}}</string>\n\t\t\t\t<reference key=\"NSSuperview\"/>\n\t\t\t\t<reference key=\"NSWindow\"/>\n\t\t\t\t<reference key=\"NSNextKeyView\" ref=\"129565752\"/>\n\t\t\t\t<object class=\"NSColor\" key=\"IBUIBackgroundColor\">\n\t\t\t\t\t<int key=\"NSColorSpace\">3</int>\n\t\t\t\t\t<bytes key=\"NSWhite\">MQA</bytes>\n\t\t\t\t\t<object class=\"NSColorSpace\" key=\"NSCustomColorSpace\">\n\t\t\t\t\t\t<int key=\"NSID\">2</int>\n\t\t\t\t\t</object>\n\t\t\t\t</object>\n\t\t\t\t<object class=\"IBUISimulatedStatusBarMetrics\" key=\"IBUISimulatedStatusBarMetrics\"/>\n\t\t\t\t<object class=\"IBUIScreenMetrics\" key=\"IBUISimulatedDestinationMetrics\">\n\t\t\t\t\t<string key=\"IBUISimulatedSizeMetricsClass\">IBUIScreenMetrics</string>\n\t\t\t\t\t<object class=\"NSMutableDictionary\" key=\"IBUINormalizedOrientationToSizeMap\">\n\t\t\t\t\t\t<bool key=\"EncodedWithXMLCoder\">YES</bool>\n\t\t\t\t\t\t<array key=\"dict.sortedKeys\">\n\t\t\t\t\t\t\t<integer value=\"1\"/>\n\t\t\t\t\t\t\t<integer value=\"3\"/>\n\t\t\t\t\t\t</array>\n\t\t\t\t\t\t<array key=\"dict.values\">\n\t\t\t\t\t\t\t<string>{320, 568}</string>\n\t\t\t\t\t\t\t<string>{568, 320}</string>\n\t\t\t\t\t\t</array>\n\t\t\t\t\t</object>\n\t\t\t\t\t<string key=\"IBUITargetRuntime\">IBCocoaTouchFramework</string>\n\t\t\t\t\t<string key=\"IBUIDisplayName\">Retina 4 Full Screen</string>\n\t\t\t\t\t<int key=\"IBUIType\">2</int>\n\t\t\t\t</object>\n\t\t\t\t<string key=\"targetRuntimeIdentifier\">IBCocoaTouchFramework</string>\n\t\t\t</object>\n\t\t</array>\n\t\t<object class=\"IBObjectContainer\" key=\"IBDocument.Objects\">\n\t\t\t<array class=\"NSMutableArray\" key=\"connectionRecords\">\n\t\t\t\t<object class=\"IBConnectionRecord\">\n\t\t\t\t\t<object class=\"IBCocoaTouchOutletConnection\" key=\"connection\">\n\t\t\t\t\t\t<string key=\"label\">view</string>\n\t\t\t\t\t\t<reference key=\"source\" ref=\"372490531\"/>\n\t\t\t\t\t\t<reference key=\"destination\" ref=\"191373211\"/>\n\t\t\t\t\t</object>\n\t\t\t\t\t<int key=\"connectionID\">3</int>\n\t\t\t\t</object>\n\t\t\t</array>\n\t\t\t<object class=\"IBMutableOrderedSet\" key=\"objectRecords\">\n\t\t\t\t<array key=\"orderedObjects\">\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">0</int>\n\t\t\t\t\t\t<array key=\"object\" id=\"0\"/>\n\t\t\t\t\t\t<reference key=\"children\" ref=\"1000\"/>\n\t\t\t\t\t\t<nil key=\"parent\"/>\n\t\t\t\t\t</object>\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">1</int>\n\t\t\t\t\t\t<reference key=\"object\" ref=\"191373211\"/>\n\t\t\t\t\t\t<array class=\"NSMutableArray\" key=\"children\">\n\t\t\t\t\t\t\t<reference ref=\"129565752\"/>\n\t\t\t\t\t\t</array>\n\t\t\t\t\t\t<reference key=\"parent\" ref=\"0\"/>\n\t\t\t\t\t</object>\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">-1</int>\n\t\t\t\t\t\t<reference key=\"object\" ref=\"372490531\"/>\n\t\t\t\t\t\t<reference key=\"parent\" ref=\"0\"/>\n\t\t\t\t\t\t<string key=\"objectName\">File's Owner</string>\n\t\t\t\t\t</object>\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">-2</int>\n\t\t\t\t\t\t<reference key=\"object\" ref=\"975951072\"/>\n\t\t\t\t\t\t<reference key=\"parent\" ref=\"0\"/>\n\t\t\t\t\t</object>\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">4</int>\n\t\t\t\t\t\t<reference key=\"object\" ref=\"129565752\"/>\n\t\t\t\t\t\t<reference key=\"parent\" ref=\"191373211\"/>\n\t\t\t\t\t</object>\n\t\t\t\t</array>\n\t\t\t</object>\n\t\t\t<dictionary class=\"NSMutableDictionary\" key=\"flattenedProperties\">\n\t\t\t\t<string key=\"-1.CustomClassName\">MSLeakingVC</string>\n\t\t\t\t<string key=\"-1.IBPluginDependency\">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>\n\t\t\t\t<string key=\"-2.CustomClassName\">UIResponder</string>\n\t\t\t\t<string key=\"-2.IBPluginDependency\">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>\n\t\t\t\t<string key=\"1.IBPluginDependency\">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>\n\t\t\t\t<string key=\"4.IBPluginDependency\">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>\n\t\t\t</dictionary>\n\t\t\t<dictionary class=\"NSMutableDictionary\" key=\"unlocalizedProperties\"/>\n\t\t\t<nil key=\"activeLocalization\"/>\n\t\t\t<dictionary class=\"NSMutableDictionary\" key=\"localizations\"/>\n\t\t\t<nil key=\"sourceID\"/>\n\t\t\t<int key=\"maxID\">4</int>\n\t\t</object>\n\t\t<object class=\"IBClassDescriber\" key=\"IBDocument.Classes\">\n\t\t\t<array class=\"NSMutableArray\" key=\"referencedPartialClassDescriptions\">\n\t\t\t\t<object class=\"IBPartialClassDescription\">\n\t\t\t\t\t<string key=\"className\">MSLeakingVC</string>\n\t\t\t\t\t<string key=\"superclassName\">UIViewController</string>\n\t\t\t\t\t<object class=\"IBClassDescriptionSource\" key=\"sourceIdentifier\">\n\t\t\t\t\t\t<string key=\"majorKey\">IBProjectSource</string>\n\t\t\t\t\t\t<string key=\"minorKey\">./Classes/MSLeakingVC.h</string>\n\t\t\t\t\t</object>\n\t\t\t\t</object>\n\t\t\t</array>\n\t\t</object>\n\t\t<int key=\"IBDocument.localizationMode\">0</int>\n\t\t<string key=\"IBDocument.TargetRuntimeIdentifier\">IBCocoaTouchFramework</string>\n\t\t<bool key=\"IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion\">YES</bool>\n\t\t<int key=\"IBDocument.defaultPropertyAccessControl\">3</int>\n\t\t<string key=\"IBCocoaTouchPluginVersion\">1929</string>\n\t</data>\n</archive>\n"
  },
  {
    "path": "Sample Project/MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject/MSMenuVC.h",
    "content": "//\n//  MSMenuVC.h\n//  MSVCLeakHunterSampleProject\n//\n//  Created by Javier Soto on 10/20/12.\n//  Copyright (c) 2012 MindSnacks. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n@interface MSMenuVC : UIViewController\n\n@end\n"
  },
  {
    "path": "Sample Project/MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject/MSMenuVC.m",
    "content": "//\n//  MSMenuVC.m\n//  MSVCLeakHunterSampleProject\n//\n//  Created by Javier Soto on 10/20/12.\n//  Copyright (c) 2012 MindSnacks. All rights reserved.\n//\n\n#import \"MSMenuVC.h\"\n\n#import \"MSOKVC.h\"\n#import \"MSLeakingVC.h\"\n\n#import \"MSLeakHunterRetainBreakpointsHelper.h\"\n\n@interface MSMenuVC ()\n\n@end\n\n@implementation MSMenuVC\n\n- (void)pushViewControllerOfClass:(Class)class\n{\n    UIViewController *viewController = [[class alloc] init];\n\n    ms_enableMemoryManagementMethodBreakpointsOnObject(viewController);\n\n    [self.navigationController pushViewController:viewController animated:YES];\n}\n\n- (IBAction)onPushOKVC\n{\n    [self pushViewControllerOfClass:[MSOKVC class]];\n}\n\n- (IBAction)onPushLeakingVC\n{\n    [self pushViewControllerOfClass:[MSLeakingVC class]];\n}\n\n@end\n"
  },
  {
    "path": "Sample Project/MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject/MSMenuVC.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<archive type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"8.00\">\n\t<data>\n\t\t<int key=\"IBDocument.SystemTarget\">1536</int>\n\t\t<string key=\"IBDocument.SystemVersion\">12C60</string>\n\t\t<string key=\"IBDocument.InterfaceBuilderVersion\">2843</string>\n\t\t<string key=\"IBDocument.AppKitVersion\">1187.34</string>\n\t\t<string key=\"IBDocument.HIToolboxVersion\">625.00</string>\n\t\t<object class=\"NSMutableDictionary\" key=\"IBDocument.PluginVersions\">\n\t\t\t<string key=\"NS.key.0\">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>\n\t\t\t<string key=\"NS.object.0\">1929</string>\n\t\t</object>\n\t\t<array key=\"IBDocument.IntegratedClassDependencies\">\n\t\t\t<string>IBProxyObject</string>\n\t\t\t<string>IBUIButton</string>\n\t\t\t<string>IBUIView</string>\n\t\t</array>\n\t\t<array key=\"IBDocument.PluginDependencies\">\n\t\t\t<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>\n\t\t</array>\n\t\t<object class=\"NSMutableDictionary\" key=\"IBDocument.Metadata\">\n\t\t\t<string key=\"NS.key.0\">PluginDependencyRecalculationVersion</string>\n\t\t\t<integer value=\"1\" key=\"NS.object.0\"/>\n\t\t</object>\n\t\t<array class=\"NSMutableArray\" key=\"IBDocument.RootObjects\" id=\"1000\">\n\t\t\t<object class=\"IBProxyObject\" id=\"372490531\">\n\t\t\t\t<string key=\"IBProxiedObjectIdentifier\">IBFilesOwner</string>\n\t\t\t\t<string key=\"targetRuntimeIdentifier\">IBCocoaTouchFramework</string>\n\t\t\t</object>\n\t\t\t<object class=\"IBProxyObject\" id=\"975951072\">\n\t\t\t\t<string key=\"IBProxiedObjectIdentifier\">IBFirstResponder</string>\n\t\t\t\t<string key=\"targetRuntimeIdentifier\">IBCocoaTouchFramework</string>\n\t\t\t</object>\n\t\t\t<object class=\"IBUIView\" id=\"191373211\">\n\t\t\t\t<reference key=\"NSNextResponder\"/>\n\t\t\t\t<int key=\"NSvFlags\">274</int>\n\t\t\t\t<array class=\"NSMutableArray\" key=\"NSSubviews\">\n\t\t\t\t\t<object class=\"IBUIButton\" id=\"1584544\">\n\t\t\t\t\t\t<reference key=\"NSNextResponder\" ref=\"191373211\"/>\n\t\t\t\t\t\t<int key=\"NSvFlags\">301</int>\n\t\t\t\t\t\t<string key=\"NSFrame\">{{46, 194}, {228, 44}}</string>\n\t\t\t\t\t\t<reference key=\"NSSuperview\" ref=\"191373211\"/>\n\t\t\t\t\t\t<reference key=\"NSNextKeyView\" ref=\"597035969\"/>\n\t\t\t\t\t\t<string key=\"NSReuseIdentifierKey\">_NS:9</string>\n\t\t\t\t\t\t<bool key=\"IBUIOpaque\">NO</bool>\n\t\t\t\t\t\t<string key=\"targetRuntimeIdentifier\">IBCocoaTouchFramework</string>\n\t\t\t\t\t\t<int key=\"IBUIContentHorizontalAlignment\">0</int>\n\t\t\t\t\t\t<int key=\"IBUIContentVerticalAlignment\">0</int>\n\t\t\t\t\t\t<int key=\"IBUIButtonType\">1</int>\n\t\t\t\t\t\t<string key=\"IBUINormalTitle\">Push OK View Controller</string>\n\t\t\t\t\t\t<object class=\"NSColor\" key=\"IBUIHighlightedTitleColor\" id=\"34592977\">\n\t\t\t\t\t\t\t<int key=\"NSColorSpace\">3</int>\n\t\t\t\t\t\t\t<bytes key=\"NSWhite\">MQA</bytes>\n\t\t\t\t\t\t</object>\n\t\t\t\t\t\t<object class=\"NSColor\" key=\"IBUINormalTitleColor\">\n\t\t\t\t\t\t\t<int key=\"NSColorSpace\">1</int>\n\t\t\t\t\t\t\t<bytes key=\"NSRGB\">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>\n\t\t\t\t\t\t</object>\n\t\t\t\t\t\t<object class=\"NSColor\" key=\"IBUINormalTitleShadowColor\" id=\"375686940\">\n\t\t\t\t\t\t\t<int key=\"NSColorSpace\">3</int>\n\t\t\t\t\t\t\t<bytes key=\"NSWhite\">MC41AA</bytes>\n\t\t\t\t\t\t</object>\n\t\t\t\t\t\t<object class=\"IBUIFontDescription\" key=\"IBUIFontDescription\" id=\"754076573\">\n\t\t\t\t\t\t\t<int key=\"type\">2</int>\n\t\t\t\t\t\t\t<double key=\"pointSize\">15</double>\n\t\t\t\t\t\t</object>\n\t\t\t\t\t\t<object class=\"NSFont\" key=\"IBUIFont\" id=\"244054337\">\n\t\t\t\t\t\t\t<string key=\"NSName\">Helvetica-Bold</string>\n\t\t\t\t\t\t\t<double key=\"NSSize\">15</double>\n\t\t\t\t\t\t\t<int key=\"NSfFlags\">16</int>\n\t\t\t\t\t\t</object>\n\t\t\t\t\t</object>\n\t\t\t\t\t<object class=\"IBUIButton\" id=\"597035969\">\n\t\t\t\t\t\t<reference key=\"NSNextResponder\" ref=\"191373211\"/>\n\t\t\t\t\t\t<int key=\"NSvFlags\">301</int>\n\t\t\t\t\t\t<string key=\"NSFrame\">{{46, 311}, {228, 44}}</string>\n\t\t\t\t\t\t<reference key=\"NSSuperview\" ref=\"191373211\"/>\n\t\t\t\t\t\t<string key=\"NSReuseIdentifierKey\">_NS:9</string>\n\t\t\t\t\t\t<bool key=\"IBUIOpaque\">NO</bool>\n\t\t\t\t\t\t<string key=\"targetRuntimeIdentifier\">IBCocoaTouchFramework</string>\n\t\t\t\t\t\t<int key=\"IBUIContentHorizontalAlignment\">0</int>\n\t\t\t\t\t\t<int key=\"IBUIContentVerticalAlignment\">0</int>\n\t\t\t\t\t\t<int key=\"IBUIButtonType\">1</int>\n\t\t\t\t\t\t<string key=\"IBUINormalTitle\">Push Leaking View Controller</string>\n\t\t\t\t\t\t<reference key=\"IBUIHighlightedTitleColor\" ref=\"34592977\"/>\n\t\t\t\t\t\t<object class=\"NSColor\" key=\"IBUINormalTitleColor\">\n\t\t\t\t\t\t\t<int key=\"NSColorSpace\">1</int>\n\t\t\t\t\t\t\t<bytes key=\"NSRGB\">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>\n\t\t\t\t\t\t</object>\n\t\t\t\t\t\t<reference key=\"IBUINormalTitleShadowColor\" ref=\"375686940\"/>\n\t\t\t\t\t\t<reference key=\"IBUIFontDescription\" ref=\"754076573\"/>\n\t\t\t\t\t\t<reference key=\"IBUIFont\" ref=\"244054337\"/>\n\t\t\t\t\t</object>\n\t\t\t\t</array>\n\t\t\t\t<string key=\"NSFrame\">{{0, 20}, {320, 548}}</string>\n\t\t\t\t<reference key=\"NSSuperview\"/>\n\t\t\t\t<reference key=\"NSNextKeyView\" ref=\"1584544\"/>\n\t\t\t\t<object class=\"NSColor\" key=\"IBUIBackgroundColor\">\n\t\t\t\t\t<int key=\"NSColorSpace\">3</int>\n\t\t\t\t\t<bytes key=\"NSWhite\">MQA</bytes>\n\t\t\t\t\t<object class=\"NSColorSpace\" key=\"NSCustomColorSpace\">\n\t\t\t\t\t\t<int key=\"NSID\">2</int>\n\t\t\t\t\t</object>\n\t\t\t\t</object>\n\t\t\t\t<object class=\"IBUISimulatedStatusBarMetrics\" key=\"IBUISimulatedStatusBarMetrics\"/>\n\t\t\t\t<object class=\"IBUIScreenMetrics\" key=\"IBUISimulatedDestinationMetrics\">\n\t\t\t\t\t<string key=\"IBUISimulatedSizeMetricsClass\">IBUIScreenMetrics</string>\n\t\t\t\t\t<object class=\"NSMutableDictionary\" key=\"IBUINormalizedOrientationToSizeMap\">\n\t\t\t\t\t\t<bool key=\"EncodedWithXMLCoder\">YES</bool>\n\t\t\t\t\t\t<array key=\"dict.sortedKeys\">\n\t\t\t\t\t\t\t<integer value=\"1\"/>\n\t\t\t\t\t\t\t<integer value=\"3\"/>\n\t\t\t\t\t\t</array>\n\t\t\t\t\t\t<array key=\"dict.values\">\n\t\t\t\t\t\t\t<string>{320, 568}</string>\n\t\t\t\t\t\t\t<string>{568, 320}</string>\n\t\t\t\t\t\t</array>\n\t\t\t\t\t</object>\n\t\t\t\t\t<string key=\"IBUITargetRuntime\">IBCocoaTouchFramework</string>\n\t\t\t\t\t<string key=\"IBUIDisplayName\">Retina 4 Full Screen</string>\n\t\t\t\t\t<int key=\"IBUIType\">2</int>\n\t\t\t\t</object>\n\t\t\t\t<string key=\"targetRuntimeIdentifier\">IBCocoaTouchFramework</string>\n\t\t\t</object>\n\t\t</array>\n\t\t<object class=\"IBObjectContainer\" key=\"IBDocument.Objects\">\n\t\t\t<array class=\"NSMutableArray\" key=\"connectionRecords\">\n\t\t\t\t<object class=\"IBConnectionRecord\">\n\t\t\t\t\t<object class=\"IBCocoaTouchOutletConnection\" key=\"connection\">\n\t\t\t\t\t\t<string key=\"label\">view</string>\n\t\t\t\t\t\t<reference key=\"source\" ref=\"372490531\"/>\n\t\t\t\t\t\t<reference key=\"destination\" ref=\"191373211\"/>\n\t\t\t\t\t</object>\n\t\t\t\t\t<int key=\"connectionID\">3</int>\n\t\t\t\t</object>\n\t\t\t\t<object class=\"IBConnectionRecord\">\n\t\t\t\t\t<object class=\"IBCocoaTouchEventConnection\" key=\"connection\">\n\t\t\t\t\t\t<string key=\"label\">onPushOKVC</string>\n\t\t\t\t\t\t<reference key=\"source\" ref=\"1584544\"/>\n\t\t\t\t\t\t<reference key=\"destination\" ref=\"372490531\"/>\n\t\t\t\t\t\t<int key=\"IBEventType\">7</int>\n\t\t\t\t\t</object>\n\t\t\t\t\t<int key=\"connectionID\">11</int>\n\t\t\t\t</object>\n\t\t\t\t<object class=\"IBConnectionRecord\">\n\t\t\t\t\t<object class=\"IBCocoaTouchEventConnection\" key=\"connection\">\n\t\t\t\t\t\t<string key=\"label\">onPushLeakingVC</string>\n\t\t\t\t\t\t<reference key=\"source\" ref=\"597035969\"/>\n\t\t\t\t\t\t<reference key=\"destination\" ref=\"372490531\"/>\n\t\t\t\t\t\t<int key=\"IBEventType\">7</int>\n\t\t\t\t\t</object>\n\t\t\t\t\t<int key=\"connectionID\">12</int>\n\t\t\t\t</object>\n\t\t\t</array>\n\t\t\t<object class=\"IBMutableOrderedSet\" key=\"objectRecords\">\n\t\t\t\t<array key=\"orderedObjects\">\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">0</int>\n\t\t\t\t\t\t<array key=\"object\" id=\"0\"/>\n\t\t\t\t\t\t<reference key=\"children\" ref=\"1000\"/>\n\t\t\t\t\t\t<nil key=\"parent\"/>\n\t\t\t\t\t</object>\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">1</int>\n\t\t\t\t\t\t<reference key=\"object\" ref=\"191373211\"/>\n\t\t\t\t\t\t<array class=\"NSMutableArray\" key=\"children\">\n\t\t\t\t\t\t\t<reference ref=\"597035969\"/>\n\t\t\t\t\t\t\t<reference ref=\"1584544\"/>\n\t\t\t\t\t\t</array>\n\t\t\t\t\t\t<reference key=\"parent\" ref=\"0\"/>\n\t\t\t\t\t</object>\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">-1</int>\n\t\t\t\t\t\t<reference key=\"object\" ref=\"372490531\"/>\n\t\t\t\t\t\t<reference key=\"parent\" ref=\"0\"/>\n\t\t\t\t\t\t<string key=\"objectName\">File's Owner</string>\n\t\t\t\t\t</object>\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">-2</int>\n\t\t\t\t\t\t<reference key=\"object\" ref=\"975951072\"/>\n\t\t\t\t\t\t<reference key=\"parent\" ref=\"0\"/>\n\t\t\t\t\t</object>\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">4</int>\n\t\t\t\t\t\t<reference key=\"object\" ref=\"1584544\"/>\n\t\t\t\t\t\t<reference key=\"parent\" ref=\"191373211\"/>\n\t\t\t\t\t</object>\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">10</int>\n\t\t\t\t\t\t<reference key=\"object\" ref=\"597035969\"/>\n\t\t\t\t\t\t<reference key=\"parent\" ref=\"191373211\"/>\n\t\t\t\t\t</object>\n\t\t\t\t</array>\n\t\t\t</object>\n\t\t\t<dictionary class=\"NSMutableDictionary\" key=\"flattenedProperties\">\n\t\t\t\t<string key=\"-1.CustomClassName\">MSMenuVC</string>\n\t\t\t\t<string key=\"-1.IBPluginDependency\">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>\n\t\t\t\t<string key=\"-2.CustomClassName\">UIResponder</string>\n\t\t\t\t<string key=\"-2.IBPluginDependency\">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>\n\t\t\t\t<string key=\"1.IBPluginDependency\">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>\n\t\t\t\t<string key=\"10.IBPluginDependency\">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>\n\t\t\t\t<string key=\"4.IBPluginDependency\">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>\n\t\t\t</dictionary>\n\t\t\t<dictionary class=\"NSMutableDictionary\" key=\"unlocalizedProperties\"/>\n\t\t\t<nil key=\"activeLocalization\"/>\n\t\t\t<dictionary class=\"NSMutableDictionary\" key=\"localizations\"/>\n\t\t\t<nil key=\"sourceID\"/>\n\t\t\t<int key=\"maxID\">12</int>\n\t\t</object>\n\t\t<object class=\"IBClassDescriber\" key=\"IBDocument.Classes\"/>\n\t\t<int key=\"IBDocument.localizationMode\">0</int>\n\t\t<string key=\"IBDocument.TargetRuntimeIdentifier\">IBCocoaTouchFramework</string>\n\t\t<bool key=\"IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion\">YES</bool>\n\t\t<int key=\"IBDocument.defaultPropertyAccessControl\">3</int>\n\t\t<string key=\"IBCocoaTouchPluginVersion\">1929</string>\n\t</data>\n</archive>\n"
  },
  {
    "path": "Sample Project/MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject/MSOKVC.h",
    "content": "//\n//  MSOKVC.h\n//  MSVCLeakHunterSampleProject\n//\n//  Created by Javier Soto on 10/20/12.\n//  Copyright (c) 2012 MindSnacks. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n@interface MSOKVC : UIViewController\n\n@end\n"
  },
  {
    "path": "Sample Project/MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject/MSOKVC.m",
    "content": "//\n//  MSOKVC.m\n//  MSVCLeakHunterSampleProject\n//\n//  Created by Javier Soto on 10/20/12.\n//  Copyright (c) 2012 MindSnacks. All rights reserved.\n//\n\n#import \"MSOKVC.h\"\n\n@interface MSOKVC ()\n\n@end\n\n@implementation MSOKVC\n\n@end\n"
  },
  {
    "path": "Sample Project/MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject/MSOKVC.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<archive type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"8.00\">\n\t<data>\n\t\t<int key=\"IBDocument.SystemTarget\">1536</int>\n\t\t<string key=\"IBDocument.SystemVersion\">12C60</string>\n\t\t<string key=\"IBDocument.InterfaceBuilderVersion\">2843</string>\n\t\t<string key=\"IBDocument.AppKitVersion\">1187.34</string>\n\t\t<string key=\"IBDocument.HIToolboxVersion\">625.00</string>\n\t\t<object class=\"NSMutableDictionary\" key=\"IBDocument.PluginVersions\">\n\t\t\t<string key=\"NS.key.0\">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>\n\t\t\t<string key=\"NS.object.0\">1929</string>\n\t\t</object>\n\t\t<array key=\"IBDocument.IntegratedClassDependencies\">\n\t\t\t<string>IBProxyObject</string>\n\t\t\t<string>IBUILabel</string>\n\t\t\t<string>IBUIView</string>\n\t\t</array>\n\t\t<array key=\"IBDocument.PluginDependencies\">\n\t\t\t<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>\n\t\t</array>\n\t\t<object class=\"NSMutableDictionary\" key=\"IBDocument.Metadata\">\n\t\t\t<string key=\"NS.key.0\">PluginDependencyRecalculationVersion</string>\n\t\t\t<integer value=\"1\" key=\"NS.object.0\"/>\n\t\t</object>\n\t\t<array class=\"NSMutableArray\" key=\"IBDocument.RootObjects\" id=\"1000\">\n\t\t\t<object class=\"IBProxyObject\" id=\"372490531\">\n\t\t\t\t<string key=\"IBProxiedObjectIdentifier\">IBFilesOwner</string>\n\t\t\t\t<string key=\"targetRuntimeIdentifier\">IBCocoaTouchFramework</string>\n\t\t\t</object>\n\t\t\t<object class=\"IBProxyObject\" id=\"975951072\">\n\t\t\t\t<string key=\"IBProxiedObjectIdentifier\">IBFirstResponder</string>\n\t\t\t\t<string key=\"targetRuntimeIdentifier\">IBCocoaTouchFramework</string>\n\t\t\t</object>\n\t\t\t<object class=\"IBUIView\" id=\"191373211\">\n\t\t\t\t<reference key=\"NSNextResponder\"/>\n\t\t\t\t<int key=\"NSvFlags\">274</int>\n\t\t\t\t<array class=\"NSMutableArray\" key=\"NSSubviews\">\n\t\t\t\t\t<object class=\"IBUILabel\" id=\"926409141\">\n\t\t\t\t\t\t<reference key=\"NSNextResponder\" ref=\"191373211\"/>\n\t\t\t\t\t\t<int key=\"NSvFlags\">301</int>\n\t\t\t\t\t\t<string key=\"NSFrame\">{{59, 228}, {202, 91}}</string>\n\t\t\t\t\t\t<reference key=\"NSSuperview\" ref=\"191373211\"/>\n\t\t\t\t\t\t<reference key=\"NSWindow\"/>\n\t\t\t\t\t\t<reference key=\"NSNextKeyView\"/>\n\t\t\t\t\t\t<string key=\"NSReuseIdentifierKey\">_NS:9</string>\n\t\t\t\t\t\t<bool key=\"IBUIOpaque\">NO</bool>\n\t\t\t\t\t\t<bool key=\"IBUIClipsSubviews\">YES</bool>\n\t\t\t\t\t\t<int key=\"IBUIContentMode\">7</int>\n\t\t\t\t\t\t<bool key=\"IBUIUserInteractionEnabled\">NO</bool>\n\t\t\t\t\t\t<string key=\"targetRuntimeIdentifier\">IBCocoaTouchFramework</string>\n\t\t\t\t\t\t<string key=\"IBUIText\">This view controller doesn't leak</string>\n\t\t\t\t\t\t<object class=\"NSColor\" key=\"IBUITextColor\">\n\t\t\t\t\t\t\t<int key=\"NSColorSpace\">1</int>\n\t\t\t\t\t\t\t<bytes key=\"NSRGB\">MCAwIDAAA</bytes>\n\t\t\t\t\t\t\t<string key=\"IBUIColorCocoaTouchKeyPath\">darkTextColor</string>\n\t\t\t\t\t\t</object>\n\t\t\t\t\t\t<nil key=\"IBUIHighlightedColor\"/>\n\t\t\t\t\t\t<int key=\"IBUIBaselineAdjustment\">0</int>\n\t\t\t\t\t\t<int key=\"IBUINumberOfLines\">0</int>\n\t\t\t\t\t\t<int key=\"IBUITextAlignment\">1</int>\n\t\t\t\t\t\t<object class=\"IBUIFontDescription\" key=\"IBUIFontDescription\">\n\t\t\t\t\t\t\t<int key=\"type\">2</int>\n\t\t\t\t\t\t\t<double key=\"pointSize\">19</double>\n\t\t\t\t\t\t</object>\n\t\t\t\t\t\t<object class=\"NSFont\" key=\"IBUIFont\">\n\t\t\t\t\t\t\t<string key=\"NSName\">Helvetica-Bold</string>\n\t\t\t\t\t\t\t<double key=\"NSSize\">19</double>\n\t\t\t\t\t\t\t<int key=\"NSfFlags\">16</int>\n\t\t\t\t\t\t</object>\n\t\t\t\t\t\t<bool key=\"IBUIAdjustsFontSizeToFit\">NO</bool>\n\t\t\t\t\t\t<double key=\"preferredMaxLayoutWidth\">202</double>\n\t\t\t\t\t</object>\n\t\t\t\t</array>\n\t\t\t\t<string key=\"NSFrame\">{{0, 20}, {320, 548}}</string>\n\t\t\t\t<reference key=\"NSSuperview\"/>\n\t\t\t\t<reference key=\"NSWindow\"/>\n\t\t\t\t<reference key=\"NSNextKeyView\" ref=\"926409141\"/>\n\t\t\t\t<object class=\"NSColor\" key=\"IBUIBackgroundColor\">\n\t\t\t\t\t<int key=\"NSColorSpace\">3</int>\n\t\t\t\t\t<bytes key=\"NSWhite\">MQA</bytes>\n\t\t\t\t\t<object class=\"NSColorSpace\" key=\"NSCustomColorSpace\">\n\t\t\t\t\t\t<int key=\"NSID\">2</int>\n\t\t\t\t\t</object>\n\t\t\t\t</object>\n\t\t\t\t<object class=\"IBUISimulatedStatusBarMetrics\" key=\"IBUISimulatedStatusBarMetrics\"/>\n\t\t\t\t<object class=\"IBUIScreenMetrics\" key=\"IBUISimulatedDestinationMetrics\">\n\t\t\t\t\t<string key=\"IBUISimulatedSizeMetricsClass\">IBUIScreenMetrics</string>\n\t\t\t\t\t<object class=\"NSMutableDictionary\" key=\"IBUINormalizedOrientationToSizeMap\">\n\t\t\t\t\t\t<bool key=\"EncodedWithXMLCoder\">YES</bool>\n\t\t\t\t\t\t<array key=\"dict.sortedKeys\">\n\t\t\t\t\t\t\t<integer value=\"1\"/>\n\t\t\t\t\t\t\t<integer value=\"3\"/>\n\t\t\t\t\t\t</array>\n\t\t\t\t\t\t<array key=\"dict.values\">\n\t\t\t\t\t\t\t<string>{320, 568}</string>\n\t\t\t\t\t\t\t<string>{568, 320}</string>\n\t\t\t\t\t\t</array>\n\t\t\t\t\t</object>\n\t\t\t\t\t<string key=\"IBUITargetRuntime\">IBCocoaTouchFramework</string>\n\t\t\t\t\t<string key=\"IBUIDisplayName\">Retina 4 Full Screen</string>\n\t\t\t\t\t<int key=\"IBUIType\">2</int>\n\t\t\t\t</object>\n\t\t\t\t<string key=\"targetRuntimeIdentifier\">IBCocoaTouchFramework</string>\n\t\t\t</object>\n\t\t</array>\n\t\t<object class=\"IBObjectContainer\" key=\"IBDocument.Objects\">\n\t\t\t<array class=\"NSMutableArray\" key=\"connectionRecords\">\n\t\t\t\t<object class=\"IBConnectionRecord\">\n\t\t\t\t\t<object class=\"IBCocoaTouchOutletConnection\" key=\"connection\">\n\t\t\t\t\t\t<string key=\"label\">view</string>\n\t\t\t\t\t\t<reference key=\"source\" ref=\"372490531\"/>\n\t\t\t\t\t\t<reference key=\"destination\" ref=\"191373211\"/>\n\t\t\t\t\t</object>\n\t\t\t\t\t<int key=\"connectionID\">3</int>\n\t\t\t\t</object>\n\t\t\t</array>\n\t\t\t<object class=\"IBMutableOrderedSet\" key=\"objectRecords\">\n\t\t\t\t<array key=\"orderedObjects\">\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">0</int>\n\t\t\t\t\t\t<array key=\"object\" id=\"0\"/>\n\t\t\t\t\t\t<reference key=\"children\" ref=\"1000\"/>\n\t\t\t\t\t\t<nil key=\"parent\"/>\n\t\t\t\t\t</object>\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">1</int>\n\t\t\t\t\t\t<reference key=\"object\" ref=\"191373211\"/>\n\t\t\t\t\t\t<array class=\"NSMutableArray\" key=\"children\">\n\t\t\t\t\t\t\t<reference ref=\"926409141\"/>\n\t\t\t\t\t\t</array>\n\t\t\t\t\t\t<reference key=\"parent\" ref=\"0\"/>\n\t\t\t\t\t</object>\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">-1</int>\n\t\t\t\t\t\t<reference key=\"object\" ref=\"372490531\"/>\n\t\t\t\t\t\t<reference key=\"parent\" ref=\"0\"/>\n\t\t\t\t\t\t<string key=\"objectName\">File's Owner</string>\n\t\t\t\t\t</object>\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">-2</int>\n\t\t\t\t\t\t<reference key=\"object\" ref=\"975951072\"/>\n\t\t\t\t\t\t<reference key=\"parent\" ref=\"0\"/>\n\t\t\t\t\t</object>\n\t\t\t\t\t<object class=\"IBObjectRecord\">\n\t\t\t\t\t\t<int key=\"objectID\">4</int>\n\t\t\t\t\t\t<reference key=\"object\" ref=\"926409141\"/>\n\t\t\t\t\t\t<array class=\"NSMutableArray\" key=\"children\"/>\n\t\t\t\t\t\t<reference key=\"parent\" ref=\"191373211\"/>\n\t\t\t\t\t</object>\n\t\t\t\t</array>\n\t\t\t</object>\n\t\t\t<dictionary class=\"NSMutableDictionary\" key=\"flattenedProperties\">\n\t\t\t\t<string key=\"-1.CustomClassName\">MSOKVC</string>\n\t\t\t\t<string key=\"-1.IBPluginDependency\">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>\n\t\t\t\t<string key=\"-2.CustomClassName\">UIResponder</string>\n\t\t\t\t<string key=\"-2.IBPluginDependency\">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>\n\t\t\t\t<string key=\"1.IBPluginDependency\">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>\n\t\t\t\t<string key=\"4.IBPluginDependency\">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>\n\t\t\t</dictionary>\n\t\t\t<dictionary class=\"NSMutableDictionary\" key=\"unlocalizedProperties\"/>\n\t\t\t<nil key=\"activeLocalization\"/>\n\t\t\t<dictionary class=\"NSMutableDictionary\" key=\"localizations\"/>\n\t\t\t<nil key=\"sourceID\"/>\n\t\t\t<int key=\"maxID\">9</int>\n\t\t</object>\n\t\t<object class=\"IBClassDescriber\" key=\"IBDocument.Classes\">\n\t\t\t<array class=\"NSMutableArray\" key=\"referencedPartialClassDescriptions\">\n\t\t\t\t<object class=\"IBPartialClassDescription\">\n\t\t\t\t\t<string key=\"className\">MSOKVC</string>\n\t\t\t\t\t<string key=\"superclassName\">UIViewController</string>\n\t\t\t\t\t<object class=\"IBClassDescriptionSource\" key=\"sourceIdentifier\">\n\t\t\t\t\t\t<string key=\"majorKey\">IBProjectSource</string>\n\t\t\t\t\t\t<string key=\"minorKey\">./Classes/MSOKVC.h</string>\n\t\t\t\t\t</object>\n\t\t\t\t</object>\n\t\t\t</array>\n\t\t</object>\n\t\t<int key=\"IBDocument.localizationMode\">0</int>\n\t\t<string key=\"IBDocument.TargetRuntimeIdentifier\">IBCocoaTouchFramework</string>\n\t\t<bool key=\"IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion\">YES</bool>\n\t\t<int key=\"IBDocument.defaultPropertyAccessControl\">3</int>\n\t\t<string key=\"IBCocoaTouchPluginVersion\">1929</string>\n\t</data>\n</archive>\n"
  },
  {
    "path": "Sample Project/MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject-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>CFBundleDisplayName</key>\n\t<string>${PRODUCT_NAME}</string>\n\t<key>CFBundleExecutable</key>\n\t<string>${EXECUTABLE_NAME}</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>mindsnacks.${PRODUCT_NAME:rfc1034identifier}</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.0</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\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\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "Sample Project/MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject-Prefix.pch",
    "content": "//\n// Prefix header for all source files of the 'MSVCLeakHunterSampleProject' target in the 'MSVCLeakHunterSampleProject' project\n//\n\n#import <Availability.h>\n\n#ifndef __IPHONE_3_0\n#warning \"This project uses features only available in iOS SDK 3.0 and later.\"\n#endif\n\n#ifdef __OBJC__\n    #import <UIKit/UIKit.h>\n    #import <Foundation/Foundation.h>\n#endif\n"
  },
  {
    "path": "Sample Project/MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject/en.lproj/InfoPlist.strings",
    "content": "/* Localized versions of Info.plist keys */\n\n"
  },
  {
    "path": "Sample Project/MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject/main.m",
    "content": "//\n//  main.m\n//  MSVCLeakHunterSampleProject\n//\n//  Created by Javier Soto on 10/20/12.\n//  Copyright (c) 2012 MindSnacks. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n#import \"MSAppDelegate.h\"\n\nint main(int argc, char *argv[])\n{\n    @autoreleasepool {\n        return UIApplicationMain(argc, argv, nil, NSStringFromClass([MSAppDelegate class]));\n    }\n}\n"
  },
  {
    "path": "Sample Project/MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject.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\tD00724F916BA02AD006C55B1 /* MSViewLeakHunter.m in Sources */ = {isa = PBXBuildFile; fileRef = D00724F816BA02AD006C55B1 /* MSViewLeakHunter.m */; };\n\t\tD00A1FE216E141EE004C06B7 /* MSZombieHunter.m in Sources */ = {isa = PBXBuildFile; fileRef = D00A1FE116E141EE004C06B7 /* MSZombieHunter.m */; settings = {COMPILER_FLAGS = \"-fno-objc-arc\"; }; };\n\t\tD0BB69DC16B9FBB0009A9834 /* MSLeakHunter.m in Sources */ = {isa = PBXBuildFile; fileRef = D0BB69D616B9FBB0009A9834 /* MSLeakHunter.m */; };\n\t\tD0BB69DD16B9FBB0009A9834 /* MSLeakHunterRetainBreakpointsHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = D0BB69D916B9FBB0009A9834 /* MSLeakHunterRetainBreakpointsHelper.m */; settings = {COMPILER_FLAGS = \"-fno-objc-arc\"; }; };\n\t\tD0BB69DE16B9FBB0009A9834 /* MSViewControllerLeakHunter.m in Sources */ = {isa = PBXBuildFile; fileRef = D0BB69DB16B9FBB0009A9834 /* MSViewControllerLeakHunter.m */; };\n\t\tD0E17BBF163380CD0045A2E4 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0E17BBE163380CD0045A2E4 /* UIKit.framework */; };\n\t\tD0E17BC1163380CD0045A2E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0E17BC0163380CD0045A2E4 /* Foundation.framework */; };\n\t\tD0E17BC3163380CD0045A2E4 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0E17BC2163380CD0045A2E4 /* CoreGraphics.framework */; };\n\t\tD0E17BC9163380CD0045A2E4 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D0E17BC7163380CD0045A2E4 /* InfoPlist.strings */; };\n\t\tD0E17BCB163380CD0045A2E4 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E17BCA163380CD0045A2E4 /* main.m */; };\n\t\tD0E17BCF163380CD0045A2E4 /* MSAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E17BCE163380CD0045A2E4 /* MSAppDelegate.m */; };\n\t\tD0E17BD1163380CD0045A2E4 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E17BD0163380CD0045A2E4 /* Default.png */; };\n\t\tD0E17BD3163380CD0045A2E4 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E17BD2163380CD0045A2E4 /* Default@2x.png */; };\n\t\tD0E17BD5163380CD0045A2E4 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E17BD4163380CD0045A2E4 /* Default-568h@2x.png */; };\n\t\tD0E17BE2163381430045A2E4 /* MSMenuVC.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E17BE0163381430045A2E4 /* MSMenuVC.m */; };\n\t\tD0E17BE3163381430045A2E4 /* MSMenuVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = D0E17BE1163381430045A2E4 /* MSMenuVC.xib */; };\n\t\tD0E17BE7163381AA0045A2E4 /* MSOKVC.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E17BE5163381AA0045A2E4 /* MSOKVC.m */; };\n\t\tD0E17BE8163381AA0045A2E4 /* MSOKVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = D0E17BE6163381AA0045A2E4 /* MSOKVC.xib */; };\n\t\tD0E17BEC163381EE0045A2E4 /* MSLeakingVC.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E17BEA163381EE0045A2E4 /* MSLeakingVC.m */; };\n\t\tD0E17BED163381EE0045A2E4 /* MSLeakingVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = D0E17BEB163381EE0045A2E4 /* MSLeakingVC.xib */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXFileReference section */\n\t\tD00724F716BA02AC006C55B1 /* MSViewLeakHunter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MSViewLeakHunter.h; path = ../../../MSViewLeakHunter.h; sourceTree = \"<group>\"; };\n\t\tD00724F816BA02AD006C55B1 /* MSViewLeakHunter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MSViewLeakHunter.m; path = ../../../MSViewLeakHunter.m; sourceTree = \"<group>\"; };\n\t\tD00A1FE016E141EE004C06B7 /* MSZombieHunter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MSZombieHunter.h; path = ../../../MSZombieHunter.h; sourceTree = \"<group>\"; };\n\t\tD00A1FE116E141EE004C06B7 /* MSZombieHunter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MSZombieHunter.m; path = ../../../MSZombieHunter.m; sourceTree = \"<group>\"; };\n\t\tD0BB69D516B9FBB0009A9834 /* MSLeakHunter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MSLeakHunter.h; path = ../../../MSLeakHunter.h; sourceTree = \"<group>\"; };\n\t\tD0BB69D616B9FBB0009A9834 /* MSLeakHunter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MSLeakHunter.m; path = ../../../MSLeakHunter.m; sourceTree = \"<group>\"; };\n\t\tD0BB69D716B9FBB0009A9834 /* MSLeakHunter+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = \"MSLeakHunter+Private.h\"; path = \"../../../MSLeakHunter+Private.h\"; sourceTree = \"<group>\"; };\n\t\tD0BB69D816B9FBB0009A9834 /* MSLeakHunterRetainBreakpointsHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MSLeakHunterRetainBreakpointsHelper.h; path = ../../../MSLeakHunterRetainBreakpointsHelper.h; sourceTree = \"<group>\"; };\n\t\tD0BB69D916B9FBB0009A9834 /* MSLeakHunterRetainBreakpointsHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MSLeakHunterRetainBreakpointsHelper.m; path = ../../../MSLeakHunterRetainBreakpointsHelper.m; sourceTree = \"<group>\"; };\n\t\tD0BB69DA16B9FBB0009A9834 /* MSViewControllerLeakHunter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MSViewControllerLeakHunter.h; path = ../../../MSViewControllerLeakHunter.h; sourceTree = \"<group>\"; };\n\t\tD0BB69DB16B9FBB0009A9834 /* MSViewControllerLeakHunter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MSViewControllerLeakHunter.m; path = ../../../MSViewControllerLeakHunter.m; sourceTree = \"<group>\"; };\n\t\tD0E17BBA163380CD0045A2E4 /* MSVCLeakHunterSampleProject.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MSVCLeakHunterSampleProject.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tD0E17BBE163380CD0045A2E4 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };\n\t\tD0E17BC0163380CD0045A2E4 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };\n\t\tD0E17BC2163380CD0045A2E4 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };\n\t\tD0E17BC6163380CD0045A2E4 /* MSVCLeakHunterSampleProject-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = \"MSVCLeakHunterSampleProject-Info.plist\"; sourceTree = \"<group>\"; };\n\t\tD0E17BC8163380CD0045A2E4 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = \"<group>\"; };\n\t\tD0E17BCA163380CD0045A2E4 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = \"<group>\"; };\n\t\tD0E17BCC163380CD0045A2E4 /* MSVCLeakHunterSampleProject-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = \"MSVCLeakHunterSampleProject-Prefix.pch\"; sourceTree = \"<group>\"; };\n\t\tD0E17BCD163380CD0045A2E4 /* MSAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSAppDelegate.h; sourceTree = \"<group>\"; };\n\t\tD0E17BCE163380CD0045A2E4 /* MSAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSAppDelegate.m; sourceTree = \"<group>\"; };\n\t\tD0E17BD0163380CD0045A2E4 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = \"<group>\"; };\n\t\tD0E17BD2163380CD0045A2E4 /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = \"Default@2x.png\"; sourceTree = \"<group>\"; };\n\t\tD0E17BD4163380CD0045A2E4 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = \"Default-568h@2x.png\"; sourceTree = \"<group>\"; };\n\t\tD0E17BDF163381430045A2E4 /* MSMenuVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MSMenuVC.h; sourceTree = \"<group>\"; };\n\t\tD0E17BE0163381430045A2E4 /* MSMenuVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MSMenuVC.m; sourceTree = \"<group>\"; };\n\t\tD0E17BE1163381430045A2E4 /* MSMenuVC.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MSMenuVC.xib; sourceTree = \"<group>\"; };\n\t\tD0E17BE4163381AA0045A2E4 /* MSOKVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MSOKVC.h; sourceTree = \"<group>\"; };\n\t\tD0E17BE5163381AA0045A2E4 /* MSOKVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MSOKVC.m; sourceTree = \"<group>\"; };\n\t\tD0E17BE6163381AA0045A2E4 /* MSOKVC.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MSOKVC.xib; sourceTree = \"<group>\"; };\n\t\tD0E17BE9163381EE0045A2E4 /* MSLeakingVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MSLeakingVC.h; sourceTree = \"<group>\"; };\n\t\tD0E17BEA163381EE0045A2E4 /* MSLeakingVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MSLeakingVC.m; sourceTree = \"<group>\"; };\n\t\tD0E17BEB163381EE0045A2E4 /* MSLeakingVC.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MSLeakingVC.xib; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\tD0E17BB7163380CD0045A2E4 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tD0E17BBF163380CD0045A2E4 /* UIKit.framework in Frameworks */,\n\t\t\t\tD0E17BC1163380CD0045A2E4 /* Foundation.framework in Frameworks */,\n\t\t\t\tD0E17BC3163380CD0045A2E4 /* CoreGraphics.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\tD0BB69DF16B9FBBD009A9834 /* MSLeakHunter */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD0BB69D516B9FBB0009A9834 /* MSLeakHunter.h */,\n\t\t\t\tD0BB69D616B9FBB0009A9834 /* MSLeakHunter.m */,\n\t\t\t\tD0BB69D716B9FBB0009A9834 /* MSLeakHunter+Private.h */,\n\t\t\t\tD0BB69DA16B9FBB0009A9834 /* MSViewControllerLeakHunter.h */,\n\t\t\t\tD0BB69DB16B9FBB0009A9834 /* MSViewControllerLeakHunter.m */,\n\t\t\t\tD00724F716BA02AC006C55B1 /* MSViewLeakHunter.h */,\n\t\t\t\tD00724F816BA02AD006C55B1 /* MSViewLeakHunter.m */,\n\t\t\t\tD0BB69D816B9FBB0009A9834 /* MSLeakHunterRetainBreakpointsHelper.h */,\n\t\t\t\tD0BB69D916B9FBB0009A9834 /* MSLeakHunterRetainBreakpointsHelper.m */,\n\t\t\t\tD00A1FE016E141EE004C06B7 /* MSZombieHunter.h */,\n\t\t\t\tD00A1FE116E141EE004C06B7 /* MSZombieHunter.m */,\n\t\t\t);\n\t\t\tname = MSLeakHunter;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD0E17BAF163380CD0045A2E4 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD0E17BC4163380CD0045A2E4 /* MSVCLeakHunterSampleProject */,\n\t\t\t\tD0E17BBD163380CD0045A2E4 /* Frameworks */,\n\t\t\t\tD0E17BBB163380CD0045A2E4 /* Products */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD0E17BBB163380CD0045A2E4 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD0E17BBA163380CD0045A2E4 /* MSVCLeakHunterSampleProject.app */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD0E17BBD163380CD0045A2E4 /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD0E17BBE163380CD0045A2E4 /* UIKit.framework */,\n\t\t\t\tD0E17BC0163380CD0045A2E4 /* Foundation.framework */,\n\t\t\t\tD0E17BC2163380CD0045A2E4 /* CoreGraphics.framework */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD0E17BC4163380CD0045A2E4 /* MSVCLeakHunterSampleProject */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD0E17BCD163380CD0045A2E4 /* MSAppDelegate.h */,\n\t\t\t\tD0E17BCE163380CD0045A2E4 /* MSAppDelegate.m */,\n\t\t\t\tD0BB69DF16B9FBBD009A9834 /* MSLeakHunter */,\n\t\t\t\tD0E17BDE163381240045A2E4 /* ViewControllers */,\n\t\t\t\tD0E17BC5163380CD0045A2E4 /* Supporting Files */,\n\t\t\t);\n\t\t\tpath = MSVCLeakHunterSampleProject;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD0E17BC5163380CD0045A2E4 /* Supporting Files */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD0E17BC6163380CD0045A2E4 /* MSVCLeakHunterSampleProject-Info.plist */,\n\t\t\t\tD0E17BC7163380CD0045A2E4 /* InfoPlist.strings */,\n\t\t\t\tD0E17BCA163380CD0045A2E4 /* main.m */,\n\t\t\t\tD0E17BCC163380CD0045A2E4 /* MSVCLeakHunterSampleProject-Prefix.pch */,\n\t\t\t\tD0E17BD0163380CD0045A2E4 /* Default.png */,\n\t\t\t\tD0E17BD2163380CD0045A2E4 /* Default@2x.png */,\n\t\t\t\tD0E17BD4163380CD0045A2E4 /* Default-568h@2x.png */,\n\t\t\t);\n\t\t\tname = \"Supporting Files\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tD0E17BDE163381240045A2E4 /* ViewControllers */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tD0E17BDF163381430045A2E4 /* MSMenuVC.h */,\n\t\t\t\tD0E17BE0163381430045A2E4 /* MSMenuVC.m */,\n\t\t\t\tD0E17BE1163381430045A2E4 /* MSMenuVC.xib */,\n\t\t\t\tD0E17BE4163381AA0045A2E4 /* MSOKVC.h */,\n\t\t\t\tD0E17BE5163381AA0045A2E4 /* MSOKVC.m */,\n\t\t\t\tD0E17BE6163381AA0045A2E4 /* MSOKVC.xib */,\n\t\t\t\tD0E17BE9163381EE0045A2E4 /* MSLeakingVC.h */,\n\t\t\t\tD0E17BEA163381EE0045A2E4 /* MSLeakingVC.m */,\n\t\t\t\tD0E17BEB163381EE0045A2E4 /* MSLeakingVC.xib */,\n\t\t\t);\n\t\t\tname = ViewControllers;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\tD0E17BB9163380CD0045A2E4 /* MSVCLeakHunterSampleProject */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = D0E17BD8163380CD0045A2E4 /* Build configuration list for PBXNativeTarget \"MSVCLeakHunterSampleProject\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tD0E17BB6163380CD0045A2E4 /* Sources */,\n\t\t\t\tD0E17BB7163380CD0045A2E4 /* Frameworks */,\n\t\t\t\tD0E17BB8163380CD0045A2E4 /* 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 = MSVCLeakHunterSampleProject;\n\t\t\tproductName = MSVCLeakHunterSampleProject;\n\t\t\tproductReference = D0E17BBA163380CD0045A2E4 /* MSVCLeakHunterSampleProject.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\tD0E17BB1163380CD0045A2E4 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tCLASSPREFIX = MS;\n\t\t\t\tLastUpgradeCheck = 0450;\n\t\t\t\tORGANIZATIONNAME = MindSnacks;\n\t\t\t};\n\t\t\tbuildConfigurationList = D0E17BB4163380CD0045A2E4 /* Build configuration list for PBXProject \"MSVCLeakHunterSampleProject\" */;\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 = D0E17BAF163380CD0045A2E4;\n\t\t\tproductRefGroup = D0E17BBB163380CD0045A2E4 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\tD0E17BB9163380CD0045A2E4 /* MSVCLeakHunterSampleProject */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\tD0E17BB8163380CD0045A2E4 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tD0E17BC9163380CD0045A2E4 /* InfoPlist.strings in Resources */,\n\t\t\t\tD0E17BD1163380CD0045A2E4 /* Default.png in Resources */,\n\t\t\t\tD0E17BD3163380CD0045A2E4 /* Default@2x.png in Resources */,\n\t\t\t\tD0E17BD5163380CD0045A2E4 /* Default-568h@2x.png in Resources */,\n\t\t\t\tD0E17BE3163381430045A2E4 /* MSMenuVC.xib in Resources */,\n\t\t\t\tD0E17BE8163381AA0045A2E4 /* MSOKVC.xib in Resources */,\n\t\t\t\tD0E17BED163381EE0045A2E4 /* MSLeakingVC.xib in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\tD0E17BB6163380CD0045A2E4 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tD0E17BCB163380CD0045A2E4 /* main.m in Sources */,\n\t\t\t\tD0E17BCF163380CD0045A2E4 /* MSAppDelegate.m in Sources */,\n\t\t\t\tD0E17BE2163381430045A2E4 /* MSMenuVC.m in Sources */,\n\t\t\t\tD0E17BE7163381AA0045A2E4 /* MSOKVC.m in Sources */,\n\t\t\t\tD0E17BEC163381EE0045A2E4 /* MSLeakingVC.m in Sources */,\n\t\t\t\tD0BB69DC16B9FBB0009A9834 /* MSLeakHunter.m in Sources */,\n\t\t\t\tD0BB69DD16B9FBB0009A9834 /* MSLeakHunterRetainBreakpointsHelper.m in Sources */,\n\t\t\t\tD0BB69DE16B9FBB0009A9834 /* MSViewControllerLeakHunter.m in Sources */,\n\t\t\t\tD00724F916BA02AD006C55B1 /* MSViewLeakHunter.m in Sources */,\n\t\t\t\tD00A1FE216E141EE004C06B7 /* MSZombieHunter.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXVariantGroup section */\n\t\tD0E17BC7163380CD0045A2E4 /* InfoPlist.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tD0E17BC8163380CD0045A2E4 /* en */,\n\t\t\t);\n\t\t\tname = InfoPlist.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\tD0E17BD6163380CD0045A2E4 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = 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\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\"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_ABOUT_RETURN_TYPE = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 6.0;\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\tD0E17BD7163380CD0045A2E4 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = 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 = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 6.0;\n\t\t\t\tOTHER_CFLAGS = \"-DNS_BLOCK_ASSERTIONS=1\";\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\tD0E17BD9163380CD0045A2E4 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = YES;\n\t\t\t\tGCC_PREFIX_HEADER = \"MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject-Prefix.pch\";\n\t\t\t\tINFOPLIST_FILE = \"MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject-Info.plist\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tWRAPPER_EXTENSION = app;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tD0E17BDA163380CD0045A2E4 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = YES;\n\t\t\t\tGCC_PREFIX_HEADER = \"MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject-Prefix.pch\";\n\t\t\t\tINFOPLIST_FILE = \"MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject-Info.plist\";\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tWRAPPER_EXTENSION = app;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\tD0E17BB4163380CD0045A2E4 /* Build configuration list for PBXProject \"MSVCLeakHunterSampleProject\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tD0E17BD6163380CD0045A2E4 /* Debug */,\n\t\t\t\tD0E17BD7163380CD0045A2E4 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tD0E17BD8163380CD0045A2E4 /* Build configuration list for PBXNativeTarget \"MSVCLeakHunterSampleProject\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tD0E17BD9163380CD0045A2E4 /* Debug */,\n\t\t\t\tD0E17BDA163380CD0045A2E4 /* 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 = D0E17BB1163380CD0045A2E4 /* Project object */;\n}\n"
  },
  {
    "path": "Sample Project/MSVCLeakHunterSampleProject/MSVCLeakHunterSampleProject.xcodeproj/xcshareddata/xcdebugger/Breakpoints.xcbkptlist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Bucket\n   type = \"4\"\n   version = \"1.0\">\n   <ExceptionBreakpoints>\n      <ExceptionBreakpoint\n         shouldBeEnabled = \"Yes\"\n         ignoreCount = \"0\"\n         continueAfterRunningActions = \"No\"\n         scope = \"0\"\n         stopOnStyle = \"0\">\n      </ExceptionBreakpoint>\n   </ExceptionBreakpoints>\n</Bucket>\n"
  }
]