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

/* Begin PBXBuildFile section */
		889B8B051888CFFA0099C1A3 /* SMCollectionViewDataSource.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB1F446B16D94D530017B23D /* SMCollectionViewDataSource.h */; };
		889B8B061888CFFA0099C1A3 /* SMDataSource.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB7273D41781D39E00CE5D7E /* SMDataSource.h */; };
		889B8B071888CFFA0099C1A3 /* SMTableViewDataSource.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB7BF647161E2E0400EAAE5E /* SMTableViewDataSource.h */; };
		889B8B081888CFFA0099C1A3 /* NSManagedObject+StoreMad.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB0DE55015B9CCEE007F382F /* NSManagedObject+StoreMad.h */; };
		889B8B091888CFFA0099C1A3 /* NSManagedObjectContext+StoreMad.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB0DE55415B9CE1A007F382F /* NSManagedObjectContext+StoreMad.h */; };
		889B8B0B1888CFFA0099C1A3 /* SMStoreController.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB0DE4E415B9BDC6007F382F /* SMStoreController.h */; };
		889B8B0C1888CFFA0099C1A3 /* StoreMad.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DB83D02016F516F000D6A980 /* StoreMad.h */; };
		889D834A18D27546006EE54D /* SMContextObserverController.m in Sources */ = {isa = PBXBuildFile; fileRef = 889D834918D27546006EE54D /* SMContextObserverController.m */; };
		889D835918D27F45006EE54D /* SMContextObserverControllerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 889D835818D27F45006EE54D /* SMContextObserverControllerTests.m */; };
		889D835B18D37242006EE54D /* SMContextObserverController.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 889D834818D27546006EE54D /* SMContextObserverController.h */; };
		88C3B13818CF9F16007E89A0 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 88C3B13718CF9F16007E89A0 /* UIKit.framework */; };
		88C3B13A18CF9F20007E89A0 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 88C3B13918CF9F20007E89A0 /* XCTest.framework */; };
		88EDD9C8180E21B80085463D /* SMStoreControllerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 88EDD9C7180E21B80085463D /* SMStoreControllerTests.m */; };
		DB0DE4A415B9BB5F007F382F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DB0DE4A315B9BB5F007F382F /* Foundation.framework */; };
		DB0DE4B515B9BB5F007F382F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DB0DE4A315B9BB5F007F382F /* Foundation.framework */; };
		DB0DE4B815B9BB5F007F382F /* libStoreMad.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DB0DE4A015B9BB5F007F382F /* libStoreMad.a */; };
		DB0DE4BE15B9BB60007F382F /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = DB0DE4BC15B9BB60007F382F /* InfoPlist.strings */; };
		DB0DE4E715B9BDC6007F382F /* SMStoreController.m in Sources */ = {isa = PBXBuildFile; fileRef = DB0DE4E515B9BDC6007F382F /* SMStoreController.m */; };
		DB0DE4E915B9BDD4007F382F /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DB0DE4E815B9BDD4007F382F /* CoreData.framework */; };
		DB0DE55315B9CCEF007F382F /* NSManagedObject+StoreMad.m in Sources */ = {isa = PBXBuildFile; fileRef = DB0DE55115B9CCEF007F382F /* NSManagedObject+StoreMad.m */; };
		DB0DE55715B9CE1B007F382F /* NSManagedObjectContext+StoreMad.m in Sources */ = {isa = PBXBuildFile; fileRef = DB0DE55515B9CE1A007F382F /* NSManagedObjectContext+StoreMad.m */; };
		DB1F446E16D94D530017B23D /* SMCollectionViewDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = DB1F446C16D94D530017B23D /* SMCollectionViewDataSource.m */; };
		DB7273D71781D39E00CE5D7E /* SMDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = DB7273D51781D39E00CE5D7E /* SMDataSource.m */; };
		DB7BF64A161E2E0400EAAE5E /* SMTableViewDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = DB7BF648161E2E0400EAAE5E /* SMTableViewDataSource.m */; };
		DB9A837D16165FE000910CEB /* StoreMadObjectTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DB9A837C16165FE000910CEB /* StoreMadObjectTests.m */; };
		DB9A83811616609A00910CEB /* Employee.m in Sources */ = {isa = PBXBuildFile; fileRef = DB9A83801616609A00910CEB /* Employee.m */; };
		DB9D043A15DC082D0035FC30 /* StoreMadBaseTest.m in Sources */ = {isa = PBXBuildFile; fileRef = DB9D043915DC082D0035FC30 /* StoreMadBaseTest.m */; };
		DB9D043E15DC0B290035FC30 /* StoreMadTests.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = DB9D043C15DC0B290035FC30 /* StoreMadTests.xcdatamodeld */; };
		DB9D044115DC0DD70035FC30 /* StoreMadContextTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DB9D044015DC0DD70035FC30 /* StoreMadContextTests.m */; };
		DB9D044215DC0E300035FC30 /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DB0DE4E815B9BDD4007F382F /* CoreData.framework */; };
		DBBF6015177F9B22008694F1 /* Department.m in Sources */ = {isa = PBXBuildFile; fileRef = DBBF6014177F9B22008694F1 /* Department.m */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		DB0DE4B615B9BB5F007F382F /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = DB0DE49715B9BB5F007F382F /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = DB0DE49F15B9BB5F007F382F;
			remoteInfo = StoreMad;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXCopyFilesBuildPhase section */
		889B8B041888CFE10099C1A3 /* CopyFiles */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = "include/$(PRODUCT_NAME)";
			dstSubfolderSpec = 16;
			files = (
				889D835B18D37242006EE54D /* SMContextObserverController.h in CopyFiles */,
				889B8B051888CFFA0099C1A3 /* SMCollectionViewDataSource.h in CopyFiles */,
				889B8B061888CFFA0099C1A3 /* SMDataSource.h in CopyFiles */,
				889B8B071888CFFA0099C1A3 /* SMTableViewDataSource.h in CopyFiles */,
				889B8B081888CFFA0099C1A3 /* NSManagedObject+StoreMad.h in CopyFiles */,
				889B8B091888CFFA0099C1A3 /* NSManagedObjectContext+StoreMad.h in CopyFiles */,
				889B8B0B1888CFFA0099C1A3 /* SMStoreController.h in CopyFiles */,
				889B8B0C1888CFFA0099C1A3 /* StoreMad.h in CopyFiles */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
		889D834818D27546006EE54D /* SMContextObserverController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMContextObserverController.h; sourceTree = "<group>"; };
		889D834918D27546006EE54D /* SMContextObserverController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SMContextObserverController.m; sourceTree = "<group>"; };
		889D835818D27F45006EE54D /* SMContextObserverControllerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SMContextObserverControllerTests.m; sourceTree = "<group>"; };
		88C3B13718CF9F16007E89A0 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
		88C3B13918CF9F20007E89A0 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
		88EDD9C7180E21B80085463D /* SMStoreControllerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SMStoreControllerTests.m; sourceTree = "<group>"; };
		DB0DE4A015B9BB5F007F382F /* libStoreMad.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libStoreMad.a; sourceTree = BUILT_PRODUCTS_DIR; };
		DB0DE4A315B9BB5F007F382F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
		DB0DE4A715B9BB5F007F382F /* StoreMad-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "StoreMad-Prefix.pch"; sourceTree = "<group>"; };
		DB0DE4B015B9BB5F007F382F /* StoreMadTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = StoreMadTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		DB0DE4B315B9BB5F007F382F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
		DB0DE4BB15B9BB5F007F382F /* StoreMadTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "StoreMadTests-Info.plist"; sourceTree = "<group>"; };
		DB0DE4BD15B9BB60007F382F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
		DB0DE4E415B9BDC6007F382F /* SMStoreController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMStoreController.h; sourceTree = "<group>"; };
		DB0DE4E515B9BDC6007F382F /* SMStoreController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SMStoreController.m; sourceTree = "<group>"; };
		DB0DE4E815B9BDD4007F382F /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
		DB0DE55015B9CCEE007F382F /* NSManagedObject+StoreMad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSManagedObject+StoreMad.h"; sourceTree = "<group>"; };
		DB0DE55115B9CCEF007F382F /* NSManagedObject+StoreMad.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSManagedObject+StoreMad.m"; sourceTree = "<group>"; };
		DB0DE55415B9CE1A007F382F /* NSManagedObjectContext+StoreMad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSManagedObjectContext+StoreMad.h"; sourceTree = "<group>"; };
		DB0DE55515B9CE1A007F382F /* NSManagedObjectContext+StoreMad.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSManagedObjectContext+StoreMad.m"; sourceTree = "<group>"; };
		DB1F446B16D94D530017B23D /* SMCollectionViewDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMCollectionViewDataSource.h; sourceTree = "<group>"; };
		DB1F446C16D94D530017B23D /* SMCollectionViewDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SMCollectionViewDataSource.m; sourceTree = "<group>"; };
		DB7273D41781D39E00CE5D7E /* SMDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMDataSource.h; sourceTree = "<group>"; };
		DB7273D51781D39E00CE5D7E /* SMDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SMDataSource.m; sourceTree = "<group>"; };
		DB7BF647161E2E0400EAAE5E /* SMTableViewDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMTableViewDataSource.h; sourceTree = "<group>"; };
		DB7BF648161E2E0400EAAE5E /* SMTableViewDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SMTableViewDataSource.m; sourceTree = "<group>"; };
		DB83D02016F516F000D6A980 /* StoreMad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StoreMad.h; sourceTree = "<group>"; };
		DB9A837C16165FE000910CEB /* StoreMadObjectTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StoreMadObjectTests.m; sourceTree = "<group>"; };
		DB9A837F1616609A00910CEB /* Employee.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Employee.h; sourceTree = "<group>"; };
		DB9A83801616609A00910CEB /* Employee.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Employee.m; sourceTree = "<group>"; };
		DB9D043815DC082D0035FC30 /* StoreMadBaseTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StoreMadBaseTest.h; sourceTree = "<group>"; };
		DB9D043915DC082D0035FC30 /* StoreMadBaseTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StoreMadBaseTest.m; sourceTree = "<group>"; };
		DB9D043D15DC0B290035FC30 /* StoreMadTests.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = StoreMadTests.xcdatamodel; sourceTree = "<group>"; };
		DB9D044015DC0DD70035FC30 /* StoreMadContextTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StoreMadContextTests.m; sourceTree = "<group>"; };
		DBBF6013177F9B22008694F1 /* Department.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Department.h; sourceTree = "<group>"; };
		DBBF6014177F9B22008694F1 /* Department.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Department.m; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		DB0DE49D15B9BB5F007F382F /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DB0DE4E915B9BDD4007F382F /* CoreData.framework in Frameworks */,
				DB0DE4A415B9BB5F007F382F /* Foundation.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		DB0DE4AC15B9BB5F007F382F /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				88C3B13A18CF9F20007E89A0 /* XCTest.framework in Frameworks */,
				88C3B13818CF9F16007E89A0 /* UIKit.framework in Frameworks */,
				DB0DE4B515B9BB5F007F382F /* Foundation.framework in Frameworks */,
				DB9D044215DC0E300035FC30 /* CoreData.framework in Frameworks */,
				DB0DE4B815B9BB5F007F382F /* libStoreMad.a in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		DB0DE49515B9BB5F007F382F = {
			isa = PBXGroup;
			children = (
				DB0DE4A515B9BB5F007F382F /* StoreMad */,
				DB0DE4B915B9BB5F007F382F /* StoreMadTests */,
				DB0DE4A215B9BB5F007F382F /* Frameworks */,
				DB0DE4A115B9BB5F007F382F /* Products */,
			);
			sourceTree = "<group>";
		};
		DB0DE4A115B9BB5F007F382F /* Products */ = {
			isa = PBXGroup;
			children = (
				DB0DE4A015B9BB5F007F382F /* libStoreMad.a */,
				DB0DE4B015B9BB5F007F382F /* StoreMadTests.xctest */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		DB0DE4A215B9BB5F007F382F /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				88C3B13918CF9F20007E89A0 /* XCTest.framework */,
				88C3B13718CF9F16007E89A0 /* UIKit.framework */,
				DB0DE4E815B9BDD4007F382F /* CoreData.framework */,
				DB0DE4A315B9BB5F007F382F /* Foundation.framework */,
				DB0DE4B315B9BB5F007F382F /* UIKit.framework */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		DB0DE4A515B9BB5F007F382F /* StoreMad */ = {
			isa = PBXGroup;
			children = (
				DB9C002217B6FC0300F6042D /* Data Source */,
				DB0DE55015B9CCEE007F382F /* NSManagedObject+StoreMad.h */,
				DB0DE55115B9CCEF007F382F /* NSManagedObject+StoreMad.m */,
				DB0DE55415B9CE1A007F382F /* NSManagedObjectContext+StoreMad.h */,
				DB0DE55515B9CE1A007F382F /* NSManagedObjectContext+StoreMad.m */,
				889D834818D27546006EE54D /* SMContextObserverController.h */,
				889D834918D27546006EE54D /* SMContextObserverController.m */,
				DB0DE4E415B9BDC6007F382F /* SMStoreController.h */,
				DB0DE4E515B9BDC6007F382F /* SMStoreController.m */,
				DB83D02016F516F000D6A980 /* StoreMad.h */,
				DB0DE4A615B9BB5F007F382F /* Supporting Files */,
			);
			path = StoreMad;
			sourceTree = "<group>";
		};
		DB0DE4A615B9BB5F007F382F /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				DB0DE4A715B9BB5F007F382F /* StoreMad-Prefix.pch */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
		DB0DE4B915B9BB5F007F382F /* StoreMadTests */ = {
			isa = PBXGroup;
			children = (
				889D835818D27F45006EE54D /* SMContextObserverControllerTests.m */,
				88EDD9C7180E21B80085463D /* SMStoreControllerTests.m */,
				DB9D043815DC082D0035FC30 /* StoreMadBaseTest.h */,
				DB9D043915DC082D0035FC30 /* StoreMadBaseTest.m */,
				DB9D044015DC0DD70035FC30 /* StoreMadContextTests.m */,
				DB9A837C16165FE000910CEB /* StoreMadObjectTests.m */,
				DB9D043C15DC0B290035FC30 /* StoreMadTests.xcdatamodeld */,
				DB0DE4BA15B9BB5F007F382F /* Supporting Files */,
				DB9A837E1616607000910CEB /* Test Classes */,
			);
			path = StoreMadTests;
			sourceTree = "<group>";
		};
		DB0DE4BA15B9BB5F007F382F /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				DB0DE4BB15B9BB5F007F382F /* StoreMadTests-Info.plist */,
				DB0DE4BC15B9BB60007F382F /* InfoPlist.strings */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
		DB9A837E1616607000910CEB /* Test Classes */ = {
			isa = PBXGroup;
			children = (
				DBBF6013177F9B22008694F1 /* Department.h */,
				DBBF6014177F9B22008694F1 /* Department.m */,
				DB9A837F1616609A00910CEB /* Employee.h */,
				DB9A83801616609A00910CEB /* Employee.m */,
			);
			name = "Test Classes";
			sourceTree = "<group>";
		};
		DB9C002217B6FC0300F6042D /* Data Source */ = {
			isa = PBXGroup;
			children = (
				DB1F446B16D94D530017B23D /* SMCollectionViewDataSource.h */,
				DB1F446C16D94D530017B23D /* SMCollectionViewDataSource.m */,
				DB7273D41781D39E00CE5D7E /* SMDataSource.h */,
				DB7273D51781D39E00CE5D7E /* SMDataSource.m */,
				DB7BF647161E2E0400EAAE5E /* SMTableViewDataSource.h */,
				DB7BF648161E2E0400EAAE5E /* SMTableViewDataSource.m */,
			);
			name = "Data Source";
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		DB0DE49F15B9BB5F007F382F /* StoreMad */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = DB0DE4C415B9BB60007F382F /* Build configuration list for PBXNativeTarget "StoreMad" */;
			buildPhases = (
				DB0DE49C15B9BB5F007F382F /* Sources */,
				DB0DE49D15B9BB5F007F382F /* Frameworks */,
				889B8B041888CFE10099C1A3 /* CopyFiles */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = StoreMad;
			productName = StoreMad;
			productReference = DB0DE4A015B9BB5F007F382F /* libStoreMad.a */;
			productType = "com.apple.product-type.library.static";
		};
		DB0DE4AF15B9BB5F007F382F /* StoreMadTests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = DB0DE4C715B9BB60007F382F /* Build configuration list for PBXNativeTarget "StoreMadTests" */;
			buildPhases = (
				DB0DE4AB15B9BB5F007F382F /* Sources */,
				DB0DE4AC15B9BB5F007F382F /* Frameworks */,
				DB0DE4AD15B9BB5F007F382F /* Resources */,
				DB0DE4AE15B9BB5F007F382F /* ShellScript */,
			);
			buildRules = (
			);
			dependencies = (
				DB0DE4B715B9BB5F007F382F /* PBXTargetDependency */,
			);
			name = StoreMadTests;
			productName = StoreMadTests;
			productReference = DB0DE4B015B9BB5F007F382F /* StoreMadTests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		DB0DE49715B9BB5F007F382F /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastTestingUpgradeCheck = 0510;
				LastUpgradeCheck = 0600;
				ORGANIZATIONNAME = eGraphs;
			};
			buildConfigurationList = DB0DE49A15B9BB5F007F382F /* Build configuration list for PBXProject "StoreMad" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			mainGroup = DB0DE49515B9BB5F007F382F;
			productRefGroup = DB0DE4A115B9BB5F007F382F /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				DB0DE49F15B9BB5F007F382F /* StoreMad */,
				DB0DE4AF15B9BB5F007F382F /* StoreMadTests */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		DB0DE4AD15B9BB5F007F382F /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DB0DE4BE15B9BB60007F382F /* InfoPlist.strings in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
		DB0DE4AE15B9BB5F007F382F /* ShellScript */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n";
		};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		DB0DE49C15B9BB5F007F382F /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DB0DE4E715B9BDC6007F382F /* SMStoreController.m in Sources */,
				889D834A18D27546006EE54D /* SMContextObserverController.m in Sources */,
				DB0DE55315B9CCEF007F382F /* NSManagedObject+StoreMad.m in Sources */,
				DB0DE55715B9CE1B007F382F /* NSManagedObjectContext+StoreMad.m in Sources */,
				DB7BF64A161E2E0400EAAE5E /* SMTableViewDataSource.m in Sources */,
				DB1F446E16D94D530017B23D /* SMCollectionViewDataSource.m in Sources */,
				DB7273D71781D39E00CE5D7E /* SMDataSource.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		DB0DE4AB15B9BB5F007F382F /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DB9D043A15DC082D0035FC30 /* StoreMadBaseTest.m in Sources */,
				889D835918D27F45006EE54D /* SMContextObserverControllerTests.m in Sources */,
				DB9D043E15DC0B290035FC30 /* StoreMadTests.xcdatamodeld in Sources */,
				DB9D044115DC0DD70035FC30 /* StoreMadContextTests.m in Sources */,
				DB9A837D16165FE000910CEB /* StoreMadObjectTests.m in Sources */,
				DB9A83811616609A00910CEB /* Employee.m in Sources */,
				DBBF6015177F9B22008694F1 /* Department.m in Sources */,
				88EDD9C8180E21B80085463D /* SMStoreControllerTests.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		DB0DE4B715B9BB5F007F382F /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = DB0DE49F15B9BB5F007F382F /* StoreMad */;
			targetProxy = DB0DE4B615B9BB5F007F382F /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin PBXVariantGroup section */
		DB0DE4BC15B9BB60007F382F /* InfoPlist.strings */ = {
			isa = PBXVariantGroup;
			children = (
				DB0DE4BD15B9BB60007F382F /* en */,
			);
			name = InfoPlist.strings;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		DB0DE4C215B9BB60007F382F /* 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_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				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_RETURN_TYPE = YES;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 5.1;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = iphoneos;
			};
			name = Debug;
		};
		DB0DE4C315B9BB60007F382F /* 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_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = YES;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				GCC_WARN_64_TO_32_BIT_CONVERSION = 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;
				IPHONEOS_DEPLOYMENT_TARGET = 5.1;
				SDKROOT = iphoneos;
				VALIDATE_PRODUCT = YES;
			};
			name = Release;
		};
		DB0DE4C515B9BB60007F382F /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = YES;
				DSTROOT = /tmp/StoreMad.dst;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "StoreMad/StoreMad-Prefix.pch";
				OTHER_LDFLAGS = "-ObjC";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SKIP_INSTALL = YES;
			};
			name = Debug;
		};
		DB0DE4C615B9BB60007F382F /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = YES;
				DSTROOT = /tmp/StoreMad.dst;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "StoreMad/StoreMad-Prefix.pch";
				OTHER_LDFLAGS = "-ObjC";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SKIP_INSTALL = YES;
			};
			name = Release;
		};
		DB0DE4C815B9BB60007F382F /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				FRAMEWORK_SEARCH_PATHS = (
					"$(SDKROOT)/Developer/Library/Frameworks",
					"$(inherited)",
					"$(DEVELOPER_FRAMEWORKS_DIR)",
				);
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "StoreMad/StoreMad-Prefix.pch";
				INFOPLIST_FILE = "StoreMadTests/StoreMadTests-Info.plist";
				OTHER_LDFLAGS = "-ObjC";
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		DB0DE4C915B9BB60007F382F /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				FRAMEWORK_SEARCH_PATHS = (
					"$(SDKROOT)/Developer/Library/Frameworks",
					"$(inherited)",
					"$(DEVELOPER_FRAMEWORKS_DIR)",
				);
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "StoreMad/StoreMad-Prefix.pch";
				INFOPLIST_FILE = "StoreMadTests/StoreMadTests-Info.plist";
				OTHER_LDFLAGS = "-ObjC";
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		DB0DE49A15B9BB5F007F382F /* Build configuration list for PBXProject "StoreMad" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DB0DE4C215B9BB60007F382F /* Debug */,
				DB0DE4C315B9BB60007F382F /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		DB0DE4C415B9BB60007F382F /* Build configuration list for PBXNativeTarget "StoreMad" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DB0DE4C515B9BB60007F382F /* Debug */,
				DB0DE4C615B9BB60007F382F /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		DB0DE4C715B9BB60007F382F /* Build configuration list for PBXNativeTarget "StoreMadTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DB0DE4C815B9BB60007F382F /* Debug */,
				DB0DE4C915B9BB60007F382F /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */

/* Begin XCVersionGroup section */
		DB9D043C15DC0B290035FC30 /* StoreMadTests.xcdatamodeld */ = {
			isa = XCVersionGroup;
			children = (
				DB9D043D15DC0B290035FC30 /* StoreMadTests.xcdatamodel */,
			);
			currentVersion = DB9D043D15DC0B290035FC30 /* StoreMadTests.xcdatamodel */;
			path = StoreMadTests.xcdatamodeld;
			sourceTree = "<group>";
			versionGroupType = wrapper.xcdatamodel;
		};
/* End XCVersionGroup section */
	};
	rootObject = DB0DE49715B9BB5F007F382F /* Project object */;
}
