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

/* Begin PBXBuildFile section */
		2AA864EDA683CEF5FAA721BE /* Pods_UnitTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2DBE814C7B88BAD6337052DB /* Pods_UnitTests.framework */; };
		660636021FACC24300C3DFB8 /* TimeScaleFactorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 660636011FACC24300C3DFB8 /* TimeScaleFactorTests.swift */; };
		6625876C1FB4DB9C00BC7DF1 /* InitialVelocityTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6625876B1FB4DB9C00BC7DF1 /* InitialVelocityTests.swift */; };
		666FAA841D384A6B000363DA /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 666FAA831D384A6B000363DA /* AppDelegate.swift */; };
		666FAA8B1D384A6B000363DA /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 666FAA8A1D384A6B000363DA /* Assets.xcassets */; };
		666FAA8E1D384A6B000363DA /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 666FAA8C1D384A6B000363DA /* LaunchScreen.storyboard */; };
		667A3F421DEE269400CB3A99 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 667A3F411DEE269400CB3A99 /* AppDelegate.swift */; };
		667A3F491DEE269400CB3A99 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 667A3F481DEE269400CB3A99 /* Assets.xcassets */; };
		667A3F4C1DEE269400CB3A99 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 667A3F4A1DEE269400CB3A99 /* LaunchScreen.storyboard */; };
		667A3F541DEE273000CB3A99 /* TableOfContents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 667A3F531DEE273000CB3A99 /* TableOfContents.swift */; };
		6687264A1EF04B4C00113675 /* MotionAnimatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 668726491EF04B4C00113675 /* MotionAnimatorTests.swift */; };
		66A6A6681FBA158000DE54CB /* AnimationRemovalTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66A6A6671FBA158000DE54CB /* AnimationRemovalTests.swift */; };
		66A6A66A1FBB364100DE54CB /* TimelineAnimatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66A6A6691FBB364100DE54CB /* TimelineAnimatorTests.swift */; };
		66BF5A8F1FB0E4CB00E864F6 /* ImplicitAnimationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66BF5A8E1FB0E4CB00E864F6 /* ImplicitAnimationTests.swift */; };
		66DD4BF51EEF0ECB00207119 /* CalendarCardExpansionExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 66DD4BF41EEF0ECB00207119 /* CalendarCardExpansionExample.m */; };
		66DD4BF81EEF1C4B00207119 /* CalendarChipMotionSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 66DD4BF71EEF1C4B00207119 /* CalendarChipMotionSpec.m */; };
		66EF6F281FC33C4800C83A63 /* HeadlessLayerImplicitAnimationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66EF6F271FC33C4800C83A63 /* HeadlessLayerImplicitAnimationTests.swift */; };
		66FD99FA1EE9FBBE00C53A82 /* MotionAnimatorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 66FD99F91EE9FBBE00C53A82 /* MotionAnimatorTests.m */; };
		FCA09739CCE089F0D051AA87 /* Pods_MotionAnimatorCatalog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50D808A6F9E944D54276D32F /* Pods_MotionAnimatorCatalog.framework */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		666FAA951D384A6B000363DA /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 666FAA781D384A6B000363DA /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 666FAA7F1D384A6B000363DA;
			remoteInfo = Catalog;
		};
		667A3F511DEE269D00CB3A99 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 666FAA781D384A6B000363DA /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 667A3F3E1DEE269400CB3A99;
			remoteInfo = TestHarness;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		2DBE814C7B88BAD6337052DB /* Pods_UnitTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_UnitTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		50D808A6F9E944D54276D32F /* Pods_MotionAnimatorCatalog.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MotionAnimatorCatalog.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		52820916F8FAA40E942A7333 /* Pods-UnitTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-UnitTests.release.xcconfig"; path = "../../../Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests.release.xcconfig"; sourceTree = "<group>"; };
		660636011FACC24300C3DFB8 /* TimeScaleFactorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeScaleFactorTests.swift; sourceTree = "<group>"; };
		6625876B1FB4DB9C00BC7DF1 /* InitialVelocityTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InitialVelocityTests.swift; sourceTree = "<group>"; };
		666FAA801D384A6B000363DA /* MotionAnimatorCatalog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MotionAnimatorCatalog.app; sourceTree = BUILT_PRODUCTS_DIR; };
		666FAA831D384A6B000363DA /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = Catalog/AppDelegate.swift; sourceTree = "<group>"; };
		666FAA8A1D384A6B000363DA /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
		666FAA8D1D384A6B000363DA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
		666FAA8F1D384A6B000363DA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		666FAA941D384A6B000363DA /* UnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = UnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		666FAA9A1D384A6B000363DA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = ../UnitTests/Info.plist; sourceTree = "<group>"; };
		667A3F3F1DEE269400CB3A99 /* TestHarness.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TestHarness.app; sourceTree = BUILT_PRODUCTS_DIR; };
		667A3F411DEE269400CB3A99 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
		667A3F481DEE269400CB3A99 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
		667A3F4B1DEE269400CB3A99 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
		667A3F4D1DEE269400CB3A99 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		667A3F531DEE273000CB3A99 /* TableOfContents.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableOfContents.swift; sourceTree = "<group>"; };
		668726491EF04B4C00113675 /* MotionAnimatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MotionAnimatorTests.swift; sourceTree = "<group>"; };
		66A6A6671FBA158000DE54CB /* AnimationRemovalTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnimationRemovalTests.swift; sourceTree = "<group>"; };
		66A6A6691FBB364100DE54CB /* TimelineAnimatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineAnimatorTests.swift; sourceTree = "<group>"; };
		66BF5A8E1FB0E4CB00E864F6 /* ImplicitAnimationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImplicitAnimationTests.swift; sourceTree = "<group>"; };
		66DD4BF31EEF0ECB00207119 /* CalendarCardExpansionExample.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CalendarCardExpansionExample.h; sourceTree = "<group>"; };
		66DD4BF41EEF0ECB00207119 /* CalendarCardExpansionExample.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CalendarCardExpansionExample.m; sourceTree = "<group>"; };
		66DD4BF61EEF1C4B00207119 /* CalendarChipMotionSpec.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CalendarChipMotionSpec.h; sourceTree = "<group>"; };
		66DD4BF71EEF1C4B00207119 /* CalendarChipMotionSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CalendarChipMotionSpec.m; sourceTree = "<group>"; };
		66EF6F271FC33C4800C83A63 /* HeadlessLayerImplicitAnimationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeadlessLayerImplicitAnimationTests.swift; sourceTree = "<group>"; };
		66FD99F91EE9FBBE00C53A82 /* MotionAnimatorTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MotionAnimatorTests.m; sourceTree = "<group>"; };
		6EB4A3E0A8428C89A9BE95EE /* Pods-MotionAnimatorCatalog.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MotionAnimatorCatalog.release.xcconfig"; path = "../../../Pods/Target Support Files/Pods-MotionAnimatorCatalog/Pods-MotionAnimatorCatalog.release.xcconfig"; sourceTree = "<group>"; };
		9DE90426033EDF40C65232A9 /* Pods-UnitTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-UnitTests.debug.xcconfig"; path = "../../../Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests.debug.xcconfig"; sourceTree = "<group>"; };
		C7621CF512F6BD38831740F6 /* Pods-MotionAnimatorCatalog.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MotionAnimatorCatalog.debug.xcconfig"; path = "../../../Pods/Target Support Files/Pods-MotionAnimatorCatalog/Pods-MotionAnimatorCatalog.debug.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		46589CD14086D52DE668B341 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				FCA09739CCE089F0D051AA87 /* Pods_MotionAnimatorCatalog.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		667A3F3C1DEE269400CB3A99 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		B21725FF37D7BCD809C7A6E1 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				2AA864EDA683CEF5FAA721BE /* Pods_UnitTests.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		302B427A117BFEA60B54B582 /* Pods */ = {
			isa = PBXGroup;
			children = (
				C7621CF512F6BD38831740F6 /* Pods-MotionAnimatorCatalog.debug.xcconfig */,
				6EB4A3E0A8428C89A9BE95EE /* Pods-MotionAnimatorCatalog.release.xcconfig */,
				9DE90426033EDF40C65232A9 /* Pods-UnitTests.debug.xcconfig */,
				52820916F8FAA40E942A7333 /* Pods-UnitTests.release.xcconfig */,
			);
			name = Pods;
			sourceTree = "<group>";
		};
		666FAA771D384A6B000363DA = {
			isa = PBXGroup;
			children = (
				667A3F531DEE273000CB3A99 /* TableOfContents.swift */,
				666FAAA31D384B13000363DA /* examples */,
				666FAAA61D384B77000363DA /* app */,
				66FD99F71EE9FB8E00C53A82 /* tests */,
				666FAA821D384A6B000363DA /* resources */,
				666FAA811D384A6B000363DA /* Products */,
				302B427A117BFEA60B54B582 /* Pods */,
				B69F7165B74D343DA39E2757 /* Frameworks */,
			);
			sourceTree = "<group>";
		};
		666FAA811D384A6B000363DA /* Products */ = {
			isa = PBXGroup;
			children = (
				666FAA801D384A6B000363DA /* MotionAnimatorCatalog.app */,
				666FAA941D384A6B000363DA /* UnitTests.xctest */,
				667A3F3F1DEE269400CB3A99 /* TestHarness.app */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		666FAA821D384A6B000363DA /* resources */ = {
			isa = PBXGroup;
			children = (
				667A3F401DEE269400CB3A99 /* TestHarness */,
				666FAAA51D384B5B000363DA /* catalog */,
				666FAAA41D384B52000363DA /* tests */,
			);
			name = resources;
			path = Catalog;
			sourceTree = "<group>";
		};
		666FAAA31D384B13000363DA /* examples */ = {
			isa = PBXGroup;
			children = (
				66DD4BF31EEF0ECB00207119 /* CalendarCardExpansionExample.h */,
				66DD4BF41EEF0ECB00207119 /* CalendarCardExpansionExample.m */,
				66DD4BF61EEF1C4B00207119 /* CalendarChipMotionSpec.h */,
				66DD4BF71EEF1C4B00207119 /* CalendarChipMotionSpec.m */,
			);
			name = examples;
			path = ../..;
			sourceTree = "<group>";
		};
		666FAAA41D384B52000363DA /* tests */ = {
			isa = PBXGroup;
			children = (
				666FAA9A1D384A6B000363DA /* Info.plist */,
			);
			name = tests;
			sourceTree = "<group>";
		};
		666FAAA51D384B5B000363DA /* catalog */ = {
			isa = PBXGroup;
			children = (
				666FAA8A1D384A6B000363DA /* Assets.xcassets */,
				666FAA8C1D384A6B000363DA /* LaunchScreen.storyboard */,
				666FAA8F1D384A6B000363DA /* Info.plist */,
			);
			name = catalog;
			sourceTree = "<group>";
		};
		666FAAA61D384B77000363DA /* app */ = {
			isa = PBXGroup;
			children = (
				666FAA831D384A6B000363DA /* AppDelegate.swift */,
			);
			name = app;
			sourceTree = "<group>";
		};
		667A3F401DEE269400CB3A99 /* TestHarness */ = {
			isa = PBXGroup;
			children = (
				667A3F411DEE269400CB3A99 /* AppDelegate.swift */,
				667A3F481DEE269400CB3A99 /* Assets.xcassets */,
				667A3F4A1DEE269400CB3A99 /* LaunchScreen.storyboard */,
				667A3F4D1DEE269400CB3A99 /* Info.plist */,
			);
			name = TestHarness;
			path = ../TestHarness;
			sourceTree = "<group>";
		};
		66FD99F71EE9FB8E00C53A82 /* tests */ = {
			isa = PBXGroup;
			children = (
				66FD99F81EE9FBA000C53A82 /* unit */,
			);
			name = tests;
			path = ../../../tests;
			sourceTree = "<group>";
		};
		66FD99F81EE9FBA000C53A82 /* unit */ = {
			isa = PBXGroup;
			children = (
				66A6A6671FBA158000DE54CB /* AnimationRemovalTests.swift */,
				66EF6F271FC33C4800C83A63 /* HeadlessLayerImplicitAnimationTests.swift */,
				66FD99F91EE9FBBE00C53A82 /* MotionAnimatorTests.m */,
				668726491EF04B4C00113675 /* MotionAnimatorTests.swift */,
				66BF5A8E1FB0E4CB00E864F6 /* ImplicitAnimationTests.swift */,
				6625876B1FB4DB9C00BC7DF1 /* InitialVelocityTests.swift */,
				66A6A6691FBB364100DE54CB /* TimelineAnimatorTests.swift */,
				660636011FACC24300C3DFB8 /* TimeScaleFactorTests.swift */,
			);
			path = unit;
			sourceTree = "<group>";
		};
		B69F7165B74D343DA39E2757 /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				50D808A6F9E944D54276D32F /* Pods_MotionAnimatorCatalog.framework */,
				2DBE814C7B88BAD6337052DB /* Pods_UnitTests.framework */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		666FAA7F1D384A6B000363DA /* MotionAnimatorCatalog */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 666FAA9D1D384A6B000363DA /* Build configuration list for PBXNativeTarget "MotionAnimatorCatalog" */;
			buildPhases = (
				5A3F2ED10BF3C472BA1601C5 /* [CP] Check Pods Manifest.lock */,
				666FAA7C1D384A6B000363DA /* Sources */,
				666FAA7E1D384A6B000363DA /* Resources */,
				46589CD14086D52DE668B341 /* Frameworks */,
				ADB887B84C3967A0391C7DFD /* [CP] Embed Pods Frameworks */,
				3BBBD44AA3DB97C7EC0790DE /* [CP] Copy Pods Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = MotionAnimatorCatalog;
			productName = Catalog;
			productReference = 666FAA801D384A6B000363DA /* MotionAnimatorCatalog.app */;
			productType = "com.apple.product-type.application";
		};
		666FAA931D384A6B000363DA /* UnitTests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 666FAAA01D384A6B000363DA /* Build configuration list for PBXNativeTarget "UnitTests" */;
			buildPhases = (
				C56294D2A9A4F3CE12368EA2 /* [CP] Check Pods Manifest.lock */,
				666FAA901D384A6B000363DA /* Sources */,
				666FAA921D384A6B000363DA /* Resources */,
				B21725FF37D7BCD809C7A6E1 /* Frameworks */,
				1457D44967464C8E3A8E97E8 /* [CP] Embed Pods Frameworks */,
				5C96FE89C18D5F2BCCB526AD /* [CP] Copy Pods Resources */,
			);
			buildRules = (
			);
			dependencies = (
				666FAA961D384A6B000363DA /* PBXTargetDependency */,
				667A3F521DEE269D00CB3A99 /* PBXTargetDependency */,
			);
			name = UnitTests;
			productName = CatalogTests;
			productReference = 666FAA941D384A6B000363DA /* UnitTests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
		667A3F3E1DEE269400CB3A99 /* TestHarness */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 667A3F501DEE269400CB3A99 /* Build configuration list for PBXNativeTarget "TestHarness" */;
			buildPhases = (
				667A3F3B1DEE269400CB3A99 /* Sources */,
				667A3F3C1DEE269400CB3A99 /* Frameworks */,
				667A3F3D1DEE269400CB3A99 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = TestHarness;
			productName = TestHarness;
			productReference = 667A3F3F1DEE269400CB3A99 /* TestHarness.app */;
			productType = "com.apple.product-type.application";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		666FAA781D384A6B000363DA /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastSwiftUpdateCheck = 0810;
				LastUpgradeCheck = 0800;
				ORGANIZATIONNAME = Google;
				TargetAttributes = {
					666FAA7F1D384A6B000363DA = {
						CreatedOnToolsVersion = 7.3.1;
						LastSwiftMigration = 0900;
					};
					666FAA931D384A6B000363DA = {
						CreatedOnToolsVersion = 7.3.1;
						LastSwiftMigration = 0900;
						TestTargetID = 667A3F3E1DEE269400CB3A99;
					};
					667A3F3E1DEE269400CB3A99 = {
						CreatedOnToolsVersion = 8.1;
						ProvisioningStyle = Automatic;
					};
				};
			};
			buildConfigurationList = 666FAA7B1D384A6B000363DA /* Build configuration list for PBXProject "MotionAnimatorCatalog" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
			);
			mainGroup = 666FAA771D384A6B000363DA;
			productRefGroup = 666FAA811D384A6B000363DA /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				666FAA7F1D384A6B000363DA /* MotionAnimatorCatalog */,
				667A3F3E1DEE269400CB3A99 /* TestHarness */,
				666FAA931D384A6B000363DA /* UnitTests */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		666FAA7E1D384A6B000363DA /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				666FAA8E1D384A6B000363DA /* LaunchScreen.storyboard in Resources */,
				666FAA8B1D384A6B000363DA /* Assets.xcassets in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		666FAA921D384A6B000363DA /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		667A3F3D1DEE269400CB3A99 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				667A3F4C1DEE269400CB3A99 /* LaunchScreen.storyboard in Resources */,
				667A3F491DEE269400CB3A99 /* Assets.xcassets in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
		1457D44967464C8E3A8E97E8 /* [CP] Embed Pods Frameworks */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
				"${SRCROOT}/../../../Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests-frameworks.sh",
				"${BUILT_PRODUCTS_DIR}/MotionAnimator/MotionAnimator.framework",
				"${BUILT_PRODUCTS_DIR}/MotionInterchange/MotionInterchange.framework",
			);
			name = "[CP] Embed Pods Frameworks";
			outputPaths = (
				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MotionAnimator.framework",
				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MotionInterchange.framework",
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/../../../Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests-frameworks.sh\"\n";
			showEnvVarsInLog = 0;
		};
		3BBBD44AA3DB97C7EC0790DE /* [CP] Copy Pods Resources */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Copy Pods Resources";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/../../../Pods/Target Support Files/Pods-MotionAnimatorCatalog/Pods-MotionAnimatorCatalog-resources.sh\"\n";
			showEnvVarsInLog = 0;
		};
		5A3F2ED10BF3C472BA1601C5 /* [CP] Check Pods Manifest.lock */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
				"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
				"${PODS_ROOT}/Manifest.lock",
			);
			name = "[CP] Check Pods Manifest.lock";
			outputPaths = (
				"$(DERIVED_FILE_DIR)/Pods-MotionAnimatorCatalog-checkManifestLockResult.txt",
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
			showEnvVarsInLog = 0;
		};
		5C96FE89C18D5F2BCCB526AD /* [CP] Copy Pods Resources */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "[CP] Copy Pods Resources";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/../../../Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests-resources.sh\"\n";
			showEnvVarsInLog = 0;
		};
		ADB887B84C3967A0391C7DFD /* [CP] Embed Pods Frameworks */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
				"${SRCROOT}/../../../Pods/Target Support Files/Pods-MotionAnimatorCatalog/Pods-MotionAnimatorCatalog-frameworks.sh",
				"${BUILT_PRODUCTS_DIR}/CatalogByConvention/CatalogByConvention.framework",
				"${BUILT_PRODUCTS_DIR}/MotionAnimator/MotionAnimator.framework",
				"${BUILT_PRODUCTS_DIR}/MotionInterchange/MotionInterchange.framework",
			);
			name = "[CP] Embed Pods Frameworks";
			outputPaths = (
				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CatalogByConvention.framework",
				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MotionAnimator.framework",
				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MotionInterchange.framework",
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/../../../Pods/Target Support Files/Pods-MotionAnimatorCatalog/Pods-MotionAnimatorCatalog-frameworks.sh\"\n";
			showEnvVarsInLog = 0;
		};
		C56294D2A9A4F3CE12368EA2 /* [CP] Check Pods Manifest.lock */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
				"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
				"${PODS_ROOT}/Manifest.lock",
			);
			name = "[CP] Check Pods Manifest.lock";
			outputPaths = (
				"$(DERIVED_FILE_DIR)/Pods-UnitTests-checkManifestLockResult.txt",
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
			showEnvVarsInLog = 0;
		};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		666FAA7C1D384A6B000363DA /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				666FAA841D384A6B000363DA /* AppDelegate.swift in Sources */,
				667A3F541DEE273000CB3A99 /* TableOfContents.swift in Sources */,
				66DD4BF81EEF1C4B00207119 /* CalendarChipMotionSpec.m in Sources */,
				66DD4BF51EEF0ECB00207119 /* CalendarCardExpansionExample.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		666FAA901D384A6B000363DA /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				6625876C1FB4DB9C00BC7DF1 /* InitialVelocityTests.swift in Sources */,
				66EF6F281FC33C4800C83A63 /* HeadlessLayerImplicitAnimationTests.swift in Sources */,
				660636021FACC24300C3DFB8 /* TimeScaleFactorTests.swift in Sources */,
				66BF5A8F1FB0E4CB00E864F6 /* ImplicitAnimationTests.swift in Sources */,
				66A6A6681FBA158000DE54CB /* AnimationRemovalTests.swift in Sources */,
				6687264A1EF04B4C00113675 /* MotionAnimatorTests.swift in Sources */,
				66A6A66A1FBB364100DE54CB /* TimelineAnimatorTests.swift in Sources */,
				66FD99FA1EE9FBBE00C53A82 /* MotionAnimatorTests.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		667A3F3B1DEE269400CB3A99 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				667A3F421DEE269400CB3A99 /* AppDelegate.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		666FAA961D384A6B000363DA /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 666FAA7F1D384A6B000363DA /* MotionAnimatorCatalog */;
			targetProxy = 666FAA951D384A6B000363DA /* PBXContainerItemProxy */;
		};
		667A3F521DEE269D00CB3A99 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 667A3F3E1DEE269400CB3A99 /* TestHarness */;
			targetProxy = 667A3F511DEE269D00CB3A99 /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin PBXVariantGroup section */
		666FAA8C1D384A6B000363DA /* LaunchScreen.storyboard */ = {
			isa = PBXVariantGroup;
			children = (
				666FAA8D1D384A6B000363DA /* Base */,
			);
			name = LaunchScreen.storyboard;
			sourceTree = "<group>";
		};
		667A3F4A1DEE269400CB3A99 /* LaunchScreen.storyboard */ = {
			isa = PBXVariantGroup;
			children = (
				667A3F4B1DEE269400CB3A99 /* Base */,
			);
			name = LaunchScreen.storyboard;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		666FAA9B1D384A6B000363DA /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_TESTABILITY = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 8;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = iphoneos;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				TARGETED_DEVICE_FAMILY = "1,2";
			};
			name = Debug;
		};
		666FAA9C1D384A6B000363DA /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 8;
				MTL_ENABLE_DEBUG_INFO = NO;
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
				VALIDATE_PRODUCT = YES;
			};
			name = Release;
		};
		666FAA9E1D384A6B000363DA /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = C7621CF512F6BD38831740F6 /* Pods-MotionAnimatorCatalog.debug.xcconfig */;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				CLANG_ENABLE_MODULES = YES;
				INFOPLIST_FILE = Catalog/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.google.Catalog;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				SWIFT_VERSION = 3.0;
			};
			name = Debug;
		};
		666FAA9F1D384A6B000363DA /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 6EB4A3E0A8428C89A9BE95EE /* Pods-MotionAnimatorCatalog.release.xcconfig */;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				CLANG_ENABLE_MODULES = YES;
				INFOPLIST_FILE = Catalog/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.google.Catalog;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
				SWIFT_VERSION = 3.0;
			};
			name = Release;
		};
		666FAAA11D384A6B000363DA /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 9DE90426033EDF40C65232A9 /* Pods-UnitTests.debug.xcconfig */;
			buildSettings = {
				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
				BUNDLE_LOADER = "$(TEST_HOST)";
				CLANG_ENABLE_MODULES = YES;
				INFOPLIST_FILE = UnitTests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.google.CatalogTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				SWIFT_VERSION = 3.0;
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/TestHarness.app/TestHarness";
			};
			name = Debug;
		};
		666FAAA21D384A6B000363DA /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 52820916F8FAA40E942A7333 /* Pods-UnitTests.release.xcconfig */;
			buildSettings = {
				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
				BUNDLE_LOADER = "$(TEST_HOST)";
				CLANG_ENABLE_MODULES = YES;
				INFOPLIST_FILE = UnitTests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.google.CatalogTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
				SWIFT_VERSION = 3.0;
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/TestHarness.app/TestHarness";
			};
			name = Release;
		};
		667A3F4E1DEE269400CB3A99 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_SUSPICIOUS_MOVES = YES;
				INFOPLIST_FILE = TestHarness/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.google.TestHarness;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
				SWIFT_VERSION = 3.0;
			};
			name = Debug;
		};
		667A3F4F1DEE269400CB3A99 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_SUSPICIOUS_MOVES = YES;
				INFOPLIST_FILE = TestHarness/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.google.TestHarness;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
				SWIFT_VERSION = 3.0;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		666FAA7B1D384A6B000363DA /* Build configuration list for PBXProject "MotionAnimatorCatalog" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				666FAA9B1D384A6B000363DA /* Debug */,
				666FAA9C1D384A6B000363DA /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		666FAA9D1D384A6B000363DA /* Build configuration list for PBXNativeTarget "MotionAnimatorCatalog" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				666FAA9E1D384A6B000363DA /* Debug */,
				666FAA9F1D384A6B000363DA /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		666FAAA01D384A6B000363DA /* Build configuration list for PBXNativeTarget "UnitTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				666FAAA11D384A6B000363DA /* Debug */,
				666FAAA21D384A6B000363DA /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		667A3F501DEE269400CB3A99 /* Build configuration list for PBXNativeTarget "TestHarness" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				667A3F4E1DEE269400CB3A99 /* Debug */,
				667A3F4F1DEE269400CB3A99 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 666FAA781D384A6B000363DA /* Project object */;
}
