// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 46;
	objects = {

/* Begin PBXBuildFile section */
		DC7DC4EE14154E4900601B40 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC7DC4ED14154E4900601B40 /* Cocoa.framework */; };
		DC7DC4F814154E4900601B40 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = DC7DC4F614154E4900601B40 /* InfoPlist.strings */; };
		DC7DC4FA14154E4900601B40 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = DC7DC4F914154E4900601B40 /* main.m */; };
		DC7DC4FE14154E4900601B40 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = DC7DC4FC14154E4900601B40 /* Credits.rtf */; };
		DC7DC50114154E4900601B40 /* RegisteredLoggingTestAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DC7DC50014154E4900601B40 /* RegisteredLoggingTestAppDelegate.m */; };
		DC7DC50414154E4900601B40 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = DC7DC50214154E4900601B40 /* MainMenu.xib */; };
		DC7DC51C14154E8E00601B40 /* Lions.m in Sources */ = {isa = PBXBuildFile; fileRef = DC7DC51B14154E8E00601B40 /* Lions.m */; };
		DC7DC51F14154FDA00601B40 /* Tigers.m in Sources */ = {isa = PBXBuildFile; fileRef = DC7DC51E14154FDA00601B40 /* Tigers.m */; };
		DCA67D58146B4ADA003411EE /* DDAbstractDatabaseLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DCA67D49146B4ADA003411EE /* DDAbstractDatabaseLogger.m */; };
		DCA67D59146B4ADA003411EE /* DDASLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DCA67D4B146B4ADA003411EE /* DDASLLogger.m */; };
		DCA67D5A146B4ADA003411EE /* DDFileLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DCA67D4D146B4ADA003411EE /* DDFileLogger.m */; };
		DCA67D5B146B4ADA003411EE /* DDLog.m in Sources */ = {isa = PBXBuildFile; fileRef = DCA67D4F146B4ADA003411EE /* DDLog.m */; };
		DCA67D5C146B4ADA003411EE /* DDTTYLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DCA67D51146B4ADA003411EE /* DDTTYLogger.m */; };
		DCA67D5D146B4ADA003411EE /* DDContextFilterLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = DCA67D54146B4ADA003411EE /* DDContextFilterLogFormatter.m */; };
		DCA67D5E146B4ADA003411EE /* DDDispatchQueueLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = DCA67D56146B4ADA003411EE /* DDDispatchQueueLogFormatter.m */; };
		DCA67D5F146B4ADA003411EE /* README.txt in Resources */ = {isa = PBXBuildFile; fileRef = DCA67D57146B4ADA003411EE /* README.txt */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
		DC7DC4E914154E4900601B40 /* RegisteredLoggingTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RegisteredLoggingTest.app; sourceTree = BUILT_PRODUCTS_DIR; };
		DC7DC4ED14154E4900601B40 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
		DC7DC4F014154E4900601B40 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
		DC7DC4F114154E4900601B40 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
		DC7DC4F214154E4900601B40 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
		DC7DC4F514154E4900601B40 /* RegisteredLoggingTest-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "RegisteredLoggingTest-Info.plist"; sourceTree = "<group>"; };
		DC7DC4F714154E4900601B40 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
		DC7DC4F914154E4900601B40 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
		DC7DC4FB14154E4900601B40 /* RegisteredLoggingTest-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "RegisteredLoggingTest-Prefix.pch"; sourceTree = "<group>"; };
		DC7DC4FD14154E4900601B40 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = "<group>"; };
		DC7DC4FF14154E4900601B40 /* RegisteredLoggingTestAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RegisteredLoggingTestAppDelegate.h; sourceTree = "<group>"; };
		DC7DC50014154E4900601B40 /* RegisteredLoggingTestAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RegisteredLoggingTestAppDelegate.m; sourceTree = "<group>"; };
		DC7DC50314154E4900601B40 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = "<group>"; };
		DC7DC51A14154E8E00601B40 /* Lions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Lions.h; sourceTree = "<group>"; };
		DC7DC51B14154E8E00601B40 /* Lions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Lions.m; sourceTree = "<group>"; };
		DC7DC51D14154FDA00601B40 /* Tigers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Tigers.h; sourceTree = "<group>"; };
		DC7DC51E14154FDA00601B40 /* Tigers.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Tigers.m; sourceTree = "<group>"; };
		DCA67D48146B4ADA003411EE /* DDAbstractDatabaseLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDAbstractDatabaseLogger.h; path = ../../../../Lumberjack/DDAbstractDatabaseLogger.h; sourceTree = "<group>"; };
		DCA67D49146B4ADA003411EE /* DDAbstractDatabaseLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDAbstractDatabaseLogger.m; path = ../../../../Lumberjack/DDAbstractDatabaseLogger.m; sourceTree = "<group>"; };
		DCA67D4A146B4ADA003411EE /* DDASLLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDASLLogger.h; path = ../../../../Lumberjack/DDASLLogger.h; sourceTree = "<group>"; };
		DCA67D4B146B4ADA003411EE /* DDASLLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDASLLogger.m; path = ../../../../Lumberjack/DDASLLogger.m; sourceTree = "<group>"; };
		DCA67D4C146B4ADA003411EE /* DDFileLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDFileLogger.h; path = ../../../../Lumberjack/DDFileLogger.h; sourceTree = "<group>"; };
		DCA67D4D146B4ADA003411EE /* DDFileLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDFileLogger.m; path = ../../../../Lumberjack/DDFileLogger.m; sourceTree = "<group>"; };
		DCA67D4E146B4ADA003411EE /* DDLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDLog.h; path = ../../../../Lumberjack/DDLog.h; sourceTree = "<group>"; };
		DCA67D4F146B4ADA003411EE /* DDLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDLog.m; path = ../../../../Lumberjack/DDLog.m; sourceTree = "<group>"; };
		DCA67D50146B4ADA003411EE /* DDTTYLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDTTYLogger.h; path = ../../../../Lumberjack/DDTTYLogger.h; sourceTree = "<group>"; };
		DCA67D51146B4ADA003411EE /* DDTTYLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDTTYLogger.m; path = ../../../../Lumberjack/DDTTYLogger.m; sourceTree = "<group>"; };
		DCA67D53146B4ADA003411EE /* DDContextFilterLogFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDContextFilterLogFormatter.h; sourceTree = "<group>"; };
		DCA67D54146B4ADA003411EE /* DDContextFilterLogFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDContextFilterLogFormatter.m; sourceTree = "<group>"; };
		DCA67D55146B4ADA003411EE /* DDDispatchQueueLogFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDDispatchQueueLogFormatter.h; sourceTree = "<group>"; };
		DCA67D56146B4ADA003411EE /* DDDispatchQueueLogFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDDispatchQueueLogFormatter.m; sourceTree = "<group>"; };
		DCA67D57146B4ADA003411EE /* README.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.txt; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		DC7DC4E614154E4900601B40 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DC7DC4EE14154E4900601B40 /* Cocoa.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		DC7DC4DE14154E4900601B40 = {
			isa = PBXGroup;
			children = (
				DCA67D47146B4ACE003411EE /* Logging */,
				DC7DC4F314154E4900601B40 /* RegisteredLoggingTest */,
				DC7DC4EC14154E4900601B40 /* Frameworks */,
				DC7DC4EA14154E4900601B40 /* Products */,
			);
			sourceTree = "<group>";
		};
		DC7DC4EA14154E4900601B40 /* Products */ = {
			isa = PBXGroup;
			children = (
				DC7DC4E914154E4900601B40 /* RegisteredLoggingTest.app */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		DC7DC4EC14154E4900601B40 /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				DC7DC4ED14154E4900601B40 /* Cocoa.framework */,
				DC7DC4EF14154E4900601B40 /* Other Frameworks */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		DC7DC4EF14154E4900601B40 /* Other Frameworks */ = {
			isa = PBXGroup;
			children = (
				DC7DC4F014154E4900601B40 /* AppKit.framework */,
				DC7DC4F114154E4900601B40 /* CoreData.framework */,
				DC7DC4F214154E4900601B40 /* Foundation.framework */,
			);
			name = "Other Frameworks";
			sourceTree = "<group>";
		};
		DC7DC4F314154E4900601B40 /* RegisteredLoggingTest */ = {
			isa = PBXGroup;
			children = (
				DC7DC51A14154E8E00601B40 /* Lions.h */,
				DC7DC51B14154E8E00601B40 /* Lions.m */,
				DC7DC51D14154FDA00601B40 /* Tigers.h */,
				DC7DC51E14154FDA00601B40 /* Tigers.m */,
				DC7DC4FF14154E4900601B40 /* RegisteredLoggingTestAppDelegate.h */,
				DC7DC50014154E4900601B40 /* RegisteredLoggingTestAppDelegate.m */,
				DC7DC50214154E4900601B40 /* MainMenu.xib */,
				DC7DC4F414154E4900601B40 /* Supporting Files */,
			);
			path = RegisteredLoggingTest;
			sourceTree = "<group>";
		};
		DC7DC4F414154E4900601B40 /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				DC7DC4F514154E4900601B40 /* RegisteredLoggingTest-Info.plist */,
				DC7DC4F614154E4900601B40 /* InfoPlist.strings */,
				DC7DC4F914154E4900601B40 /* main.m */,
				DC7DC4FB14154E4900601B40 /* RegisteredLoggingTest-Prefix.pch */,
				DC7DC4FC14154E4900601B40 /* Credits.rtf */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
		DCA67D47146B4ACE003411EE /* Logging */ = {
			isa = PBXGroup;
			children = (
				DCA67D48146B4ADA003411EE /* DDAbstractDatabaseLogger.h */,
				DCA67D49146B4ADA003411EE /* DDAbstractDatabaseLogger.m */,
				DCA67D4A146B4ADA003411EE /* DDASLLogger.h */,
				DCA67D4B146B4ADA003411EE /* DDASLLogger.m */,
				DCA67D4C146B4ADA003411EE /* DDFileLogger.h */,
				DCA67D4D146B4ADA003411EE /* DDFileLogger.m */,
				DCA67D4E146B4ADA003411EE /* DDLog.h */,
				DCA67D4F146B4ADA003411EE /* DDLog.m */,
				DCA67D50146B4ADA003411EE /* DDTTYLogger.h */,
				DCA67D51146B4ADA003411EE /* DDTTYLogger.m */,
				DCA67D52146B4ADA003411EE /* Extensions */,
			);
			name = Logging;
			sourceTree = "<group>";
		};
		DCA67D52146B4ADA003411EE /* Extensions */ = {
			isa = PBXGroup;
			children = (
				DCA67D53146B4ADA003411EE /* DDContextFilterLogFormatter.h */,
				DCA67D54146B4ADA003411EE /* DDContextFilterLogFormatter.m */,
				DCA67D55146B4ADA003411EE /* DDDispatchQueueLogFormatter.h */,
				DCA67D56146B4ADA003411EE /* DDDispatchQueueLogFormatter.m */,
				DCA67D57146B4ADA003411EE /* README.txt */,
			);
			name = Extensions;
			path = ../../../../Lumberjack/Extensions;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		DC7DC4E814154E4900601B40 /* RegisteredLoggingTest */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = DC7DC50714154E4900601B40 /* Build configuration list for PBXNativeTarget "RegisteredLoggingTest" */;
			buildPhases = (
				DC7DC4E514154E4900601B40 /* Sources */,
				DC7DC4E614154E4900601B40 /* Frameworks */,
				DC7DC4E714154E4900601B40 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = RegisteredLoggingTest;
			productName = RegisteredLoggingTest;
			productReference = DC7DC4E914154E4900601B40 /* RegisteredLoggingTest.app */;
			productType = "com.apple.product-type.application";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		DC7DC4E014154E4900601B40 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 0500;
			};
			buildConfigurationList = DC7DC4E314154E4900601B40 /* Build configuration list for PBXProject "RegisteredLoggingTest" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			mainGroup = DC7DC4DE14154E4900601B40;
			productRefGroup = DC7DC4EA14154E4900601B40 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				DC7DC4E814154E4900601B40 /* RegisteredLoggingTest */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		DC7DC4E714154E4900601B40 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DC7DC4F814154E4900601B40 /* InfoPlist.strings in Resources */,
				DC7DC4FE14154E4900601B40 /* Credits.rtf in Resources */,
				DC7DC50414154E4900601B40 /* MainMenu.xib in Resources */,
				DCA67D5F146B4ADA003411EE /* README.txt in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		DC7DC4E514154E4900601B40 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DC7DC4FA14154E4900601B40 /* main.m in Sources */,
				DC7DC50114154E4900601B40 /* RegisteredLoggingTestAppDelegate.m in Sources */,
				DC7DC51C14154E8E00601B40 /* Lions.m in Sources */,
				DC7DC51F14154FDA00601B40 /* Tigers.m in Sources */,
				DCA67D58146B4ADA003411EE /* DDAbstractDatabaseLogger.m in Sources */,
				DCA67D59146B4ADA003411EE /* DDASLLogger.m in Sources */,
				DCA67D5A146B4ADA003411EE /* DDFileLogger.m in Sources */,
				DCA67D5B146B4ADA003411EE /* DDLog.m in Sources */,
				DCA67D5C146B4ADA003411EE /* DDTTYLogger.m in Sources */,
				DCA67D5D146B4ADA003411EE /* DDContextFilterLogFormatter.m in Sources */,
				DCA67D5E146B4ADA003411EE /* DDDispatchQueueLogFormatter.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXVariantGroup section */
		DC7DC4F614154E4900601B40 /* InfoPlist.strings */ = {
			isa = PBXVariantGroup;
			children = (
				DC7DC4F714154E4900601B40 /* en */,
			);
			name = InfoPlist.strings;
			sourceTree = "<group>";
		};
		DC7DC4FC14154E4900601B40 /* Credits.rtf */ = {
			isa = PBXVariantGroup;
			children = (
				DC7DC4FD14154E4900601B40 /* en */,
			);
			name = Credits.rtf;
			sourceTree = "<group>";
		};
		DC7DC50214154E4900601B40 /* MainMenu.xib */ = {
			isa = PBXVariantGroup;
			children = (
				DC7DC50314154E4900601B40 /* en */,
			);
			name = MainMenu.xib;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		DC7DC50514154E4900601B40 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = NO;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				MACOSX_DEPLOYMENT_TARGET = 10.7;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = macosx;
			};
			name = Debug;
		};
		DC7DC50614154E4900601B40 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = YES;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				MACOSX_DEPLOYMENT_TARGET = 10.7;
				SDKROOT = macosx;
			};
			name = Release;
		};
		DC7DC50814154E4900601B40 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COMBINE_HIDPI_IMAGES = YES;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "RegisteredLoggingTest/RegisteredLoggingTest-Prefix.pch";
				INFOPLIST_FILE = "RegisteredLoggingTest/RegisteredLoggingTest-Info.plist";
				PRODUCT_NAME = "$(TARGET_NAME)";
				WRAPPER_EXTENSION = app;
			};
			name = Debug;
		};
		DC7DC50914154E4900601B40 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COMBINE_HIDPI_IMAGES = YES;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "RegisteredLoggingTest/RegisteredLoggingTest-Prefix.pch";
				INFOPLIST_FILE = "RegisteredLoggingTest/RegisteredLoggingTest-Info.plist";
				PRODUCT_NAME = "$(TARGET_NAME)";
				WRAPPER_EXTENSION = app;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		DC7DC4E314154E4900601B40 /* Build configuration list for PBXProject "RegisteredLoggingTest" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DC7DC50514154E4900601B40 /* Debug */,
				DC7DC50614154E4900601B40 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		DC7DC50714154E4900601B40 /* Build configuration list for PBXNativeTarget "RegisteredLoggingTest" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DC7DC50814154E4900601B40 /* Debug */,
				DC7DC50914154E4900601B40 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = DC7DC4E014154E4900601B40 /* Project object */;
}
