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

/* Begin PBXBuildFile section */
		90623EE0DFC611ECA79061CA2D8358A4 /* FlutterPluginRegistrant-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 59C4454C6208CA53988E29FFF1F03C2E /* FlutterPluginRegistrant-dummy.m */; };
		A456B826DFE59B7675BB489F26BDB8D0 /* GeneratedPluginRegistrant.h in Headers */ = {isa = PBXBuildFile; fileRef = AB2A3338AA26CE231BE2B5342F69B46B /* GeneratedPluginRegistrant.h */; settings = {ATTRIBUTES = (Project, ); }; };
		D804971E28E8BBE38C2C989D16D071FF /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = A1930A36E88812FFBF49A0804CCA939D /* GeneratedPluginRegistrant.m */; };
		D9239CC7E38BEDF9A8E18AED0B76007B /* Pods-ios_add2app-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1402A9B5E7D2CCA622A4477C694702C1 /* Pods-ios_add2app-dummy.m */; };
		FC54914589BC06AB28064A2DEA23DE91 /* Pods-ios_add2appTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 257FB6DC96D82E7F5C127C5F1567927A /* Pods-ios_add2appTests-dummy.m */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		A2795B72F9E5BDBFA6D2F5A7866DFA2A /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 77F3683E8268E2B8342BFBD47DFF6870;
			remoteInfo = FlutterPluginRegistrant;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		0340BEC47E654F7ED86700BF354C1097 /* Pods-ios_add2appTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ios_add2appTests-acknowledgements.plist"; sourceTree = "<group>"; };
		095DFDEB7FE9B91E35B295B1D565C66C /* Pods-ios_add2app-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ios_add2app-frameworks.sh"; sourceTree = "<group>"; };
		0A41E61C0D6BDA480DD4B0208BD5B175 /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Flutter.framework; sourceTree = "<group>"; };
		0ED9CDB538F5B1479A4EC18C9079BEB4 /* Flutter.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; path = Flutter.podspec; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
		1402A9B5E7D2CCA622A4477C694702C1 /* Pods-ios_add2app-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ios_add2app-dummy.m"; sourceTree = "<group>"; };
		257FB6DC96D82E7F5C127C5F1567927A /* Pods-ios_add2appTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ios_add2appTests-dummy.m"; sourceTree = "<group>"; };
		2C0024CD594254894D306A9E8CCE0310 /* Pods-ios_add2appTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ios_add2appTests.release.xcconfig"; sourceTree = "<group>"; };
		34739A3100C03B6AD2FBA1A69208E33D /* FlutterPluginRegistrant-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FlutterPluginRegistrant-prefix.pch"; sourceTree = "<group>"; };
		360ACA4CEA1700C0A10C94F07A808822 /* EarlGrey.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = EarlGrey.framework; path = EarlGrey/EarlGrey.framework; sourceTree = "<group>"; };
		4D8A8D61362290C0D5CE861F6DB999F5 /* Pods-ios_add2appTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ios_add2appTests-acknowledgements.markdown"; sourceTree = "<group>"; };
		59C4454C6208CA53988E29FFF1F03C2E /* FlutterPluginRegistrant-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FlutterPluginRegistrant-dummy.m"; sourceTree = "<group>"; };
		67E3D3C739B797BDDF7DA74A5A189597 /* Pods-ios_add2appTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ios_add2appTests-resources.sh"; sourceTree = "<group>"; };
		6ED487DA1A38AAB091787BC50CA53CF2 /* Pods-ios_add2appTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ios_add2appTests.debug.xcconfig"; sourceTree = "<group>"; };
		83957C53D6ECFC875FCEFF92BA9F494A /* Pods-ios_add2app-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ios_add2app-acknowledgements.markdown"; sourceTree = "<group>"; };
		93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
		95A58B9FAEAAC2794AECDC4F86C3C326 /* FlutterPluginRegistrant.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FlutterPluginRegistrant.xcconfig; sourceTree = "<group>"; };
		A1930A36E88812FFBF49A0804CCA939D /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GeneratedPluginRegistrant.m; path = Classes/GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
		A1F9F94AEC6A3BC9E49D902FD400521C /* libFlutterPluginRegistrant.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libFlutterPluginRegistrant.a; path = libFlutterPluginRegistrant.a; sourceTree = BUILT_PRODUCTS_DIR; };
		AA66559E7B7855C135D54DA2C7A8CFF8 /* Pods-ios_add2app-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ios_add2app-resources.sh"; sourceTree = "<group>"; };
		AB2A3338AA26CE231BE2B5342F69B46B /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GeneratedPluginRegistrant.h; path = Classes/GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
		BA4A2FB788C185125BDA5CC68BB62189 /* Pods-ios_add2app-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ios_add2app-acknowledgements.plist"; sourceTree = "<group>"; };
		D88A982BBB84C6B4C9872862D0EA56AB /* Pods-ios_add2app.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ios_add2app.release.xcconfig"; sourceTree = "<group>"; };
		DE615DCA4A153537D97493FF8CED6982 /* libPods-ios_add2appTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-ios_add2appTests.a"; path = "libPods-ios_add2appTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
		E2FBD6F148E9F090879D1A4094328CA6 /* Pods-ios_add2app.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ios_add2app.debug.xcconfig"; sourceTree = "<group>"; };
		E9AD77BA6BE092262F6BE7483850E439 /* FlutterPluginRegistrant.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; path = FlutterPluginRegistrant.podspec; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
		F53D202D53B129D9043C5D20C63F7C5B /* libPods-ios_add2app.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-ios_add2app.a"; path = "libPods-ios_add2app.a"; sourceTree = BUILT_PRODUCTS_DIR; };
		F9A891A28EAB9CDA94DEE37408924ED3 /* Pods-ios_add2appTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ios_add2appTests-frameworks.sh"; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		6679E7A93060530BFD746AEAC2636162 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		681B3B3876DD05F1333B71E0E036F736 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		6FF13AA8FBCF04AD68E0EDA79DE8EBB2 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		0835BCB13E09235F999AF8DD8A1EE029 /* Pods */ = {
			isa = PBXGroup;
			children = (
				7E4324F15200446DFC05780A204B3D03 /* EarlGrey */,
			);
			name = Pods;
			sourceTree = "<group>";
		};
		0F8D2E47FE03D3B91B51069F7C273AF4 /* Frameworks */ = {
			isa = PBXGroup;
			children = (
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		1EBFFD5FB3D486ECD0B0D83E0728FE0A /* Support Files */ = {
			isa = PBXGroup;
			children = (
				95A58B9FAEAAC2794AECDC4F86C3C326 /* FlutterPluginRegistrant.xcconfig */,
				59C4454C6208CA53988E29FFF1F03C2E /* FlutterPluginRegistrant-dummy.m */,
				34739A3100C03B6AD2FBA1A69208E33D /* FlutterPluginRegistrant-prefix.pch */,
			);
			name = "Support Files";
			path = "../../../../Pods/Target Support Files/FlutterPluginRegistrant";
			sourceTree = "<group>";
		};
		2A095FE51150CE555F02CAFBB7B582D5 /* Pods-ios_add2appTests */ = {
			isa = PBXGroup;
			children = (
				4D8A8D61362290C0D5CE861F6DB999F5 /* Pods-ios_add2appTests-acknowledgements.markdown */,
				0340BEC47E654F7ED86700BF354C1097 /* Pods-ios_add2appTests-acknowledgements.plist */,
				257FB6DC96D82E7F5C127C5F1567927A /* Pods-ios_add2appTests-dummy.m */,
				F9A891A28EAB9CDA94DEE37408924ED3 /* Pods-ios_add2appTests-frameworks.sh */,
				67E3D3C739B797BDDF7DA74A5A189597 /* Pods-ios_add2appTests-resources.sh */,
				6ED487DA1A38AAB091787BC50CA53CF2 /* Pods-ios_add2appTests.debug.xcconfig */,
				2C0024CD594254894D306A9E8CCE0310 /* Pods-ios_add2appTests.release.xcconfig */,
			);
			name = "Pods-ios_add2appTests";
			path = "Target Support Files/Pods-ios_add2appTests";
			sourceTree = "<group>";
		};
		2A7B06CCA5DC69E75CF079420142397E /* Pods-ios_add2app */ = {
			isa = PBXGroup;
			children = (
				83957C53D6ECFC875FCEFF92BA9F494A /* Pods-ios_add2app-acknowledgements.markdown */,
				BA4A2FB788C185125BDA5CC68BB62189 /* Pods-ios_add2app-acknowledgements.plist */,
				1402A9B5E7D2CCA622A4477C694702C1 /* Pods-ios_add2app-dummy.m */,
				095DFDEB7FE9B91E35B295B1D565C66C /* Pods-ios_add2app-frameworks.sh */,
				AA66559E7B7855C135D54DA2C7A8CFF8 /* Pods-ios_add2app-resources.sh */,
				E2FBD6F148E9F090879D1A4094328CA6 /* Pods-ios_add2app.debug.xcconfig */,
				D88A982BBB84C6B4C9872862D0EA56AB /* Pods-ios_add2app.release.xcconfig */,
			);
			name = "Pods-ios_add2app";
			path = "Target Support Files/Pods-ios_add2app";
			sourceTree = "<group>";
		};
		3451391EF88B6DE45CBECCADE541029C /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				360ACA4CEA1700C0A10C94F07A808822 /* EarlGrey.framework */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		3527515EC30B454E896065F8868F22A7 /* Targets Support Files */ = {
			isa = PBXGroup;
			children = (
				2A7B06CCA5DC69E75CF079420142397E /* Pods-ios_add2app */,
				2A095FE51150CE555F02CAFBB7B582D5 /* Pods-ios_add2appTests */,
			);
			name = "Targets Support Files";
			sourceTree = "<group>";
		};
		41C4622842085EEBE7FE720209B65B45 /* Products */ = {
			isa = PBXGroup;
			children = (
				A1F9F94AEC6A3BC9E49D902FD400521C /* libFlutterPluginRegistrant.a */,
				F53D202D53B129D9043C5D20C63F7C5B /* libPods-ios_add2app.a */,
				DE615DCA4A153537D97493FF8CED6982 /* libPods-ios_add2appTests.a */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		476E843886ACFE1E69B95F9D6E8C149D /* Flutter */ = {
			isa = PBXGroup;
			children = (
				6A10680CFFBCF02A3CC075D128288703 /* Frameworks */,
				A3575C9037E6869E63A356955F90FD6C /* Pod */,
			);
			name = Flutter;
			path = ../flutterapp/.ios/Flutter/engine;
			sourceTree = "<group>";
		};
		6A10680CFFBCF02A3CC075D128288703 /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				0A41E61C0D6BDA480DD4B0208BD5B175 /* Flutter.framework */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		7DB346D0F39D3F0E887471402A8071AB = {
			isa = PBXGroup;
			children = (
				93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */,
				E763F4A298776E6596B4DAEF7F7C9522 /* Development Pods */,
				0F8D2E47FE03D3B91B51069F7C273AF4 /* Frameworks */,
				0835BCB13E09235F999AF8DD8A1EE029 /* Pods */,
				41C4622842085EEBE7FE720209B65B45 /* Products */,
				3527515EC30B454E896065F8868F22A7 /* Targets Support Files */,
			);
			sourceTree = "<group>";
		};
		7E4324F15200446DFC05780A204B3D03 /* EarlGrey */ = {
			isa = PBXGroup;
			children = (
				3451391EF88B6DE45CBECCADE541029C /* Frameworks */,
			);
			name = EarlGrey;
			path = EarlGrey;
			sourceTree = "<group>";
		};
		A2FAC780F9C1566317BFB5848CA33440 /* FlutterPluginRegistrant */ = {
			isa = PBXGroup;
			children = (
				AB2A3338AA26CE231BE2B5342F69B46B /* GeneratedPluginRegistrant.h */,
				A1930A36E88812FFBF49A0804CCA939D /* GeneratedPluginRegistrant.m */,
				E77F9B8863B56865EB4729CB37765AA3 /* Pod */,
				1EBFFD5FB3D486ECD0B0D83E0728FE0A /* Support Files */,
			);
			name = FlutterPluginRegistrant;
			path = ../flutterapp/.ios/Flutter/FlutterPluginRegistrant;
			sourceTree = "<group>";
		};
		A3575C9037E6869E63A356955F90FD6C /* Pod */ = {
			isa = PBXGroup;
			children = (
				0ED9CDB538F5B1479A4EC18C9079BEB4 /* Flutter.podspec */,
			);
			name = Pod;
			sourceTree = "<group>";
		};
		E763F4A298776E6596B4DAEF7F7C9522 /* Development Pods */ = {
			isa = PBXGroup;
			children = (
				476E843886ACFE1E69B95F9D6E8C149D /* Flutter */,
				A2FAC780F9C1566317BFB5848CA33440 /* FlutterPluginRegistrant */,
			);
			name = "Development Pods";
			sourceTree = "<group>";
		};
		E77F9B8863B56865EB4729CB37765AA3 /* Pod */ = {
			isa = PBXGroup;
			children = (
				E9AD77BA6BE092262F6BE7483850E439 /* FlutterPluginRegistrant.podspec */,
			);
			name = Pod;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
		60A1622C71527E3F86523F3D30A82882 /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		842ED9696E0F3095C702710833F78810 /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		FFA5376E650470CCD3E3DA405BEA55B6 /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A456B826DFE59B7675BB489F26BDB8D0 /* GeneratedPluginRegistrant.h in Headers */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXHeadersBuildPhase section */

/* Begin PBXNativeTarget section */
		77F3683E8268E2B8342BFBD47DFF6870 /* FlutterPluginRegistrant */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 7B31E5D9E892DEA54641309236981CBF /* Build configuration list for PBXNativeTarget "FlutterPluginRegistrant" */;
			buildPhases = (
				FFA5376E650470CCD3E3DA405BEA55B6 /* Headers */,
				CAF8D2F25C0CC8CD320A468F71B0B044 /* Sources */,
				6679E7A93060530BFD746AEAC2636162 /* Frameworks */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = FlutterPluginRegistrant;
			productName = FlutterPluginRegistrant;
			productReference = A1F9F94AEC6A3BC9E49D902FD400521C /* libFlutterPluginRegistrant.a */;
			productType = "com.apple.product-type.library.static";
		};
		B2D9A26FE01FF2D9F6A10726FB523980 /* Pods-ios_add2app */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 76F4A3C1B5375FECF77997994AED822E /* Build configuration list for PBXNativeTarget "Pods-ios_add2app" */;
			buildPhases = (
				60A1622C71527E3F86523F3D30A82882 /* Headers */,
				2FA65D065EA93180829C661B95210079 /* Sources */,
				6FF13AA8FBCF04AD68E0EDA79DE8EBB2 /* Frameworks */,
			);
			buildRules = (
			);
			dependencies = (
				6007895EDAFFFF19F2CF303EFCF90031 /* PBXTargetDependency */,
			);
			name = "Pods-ios_add2app";
			productName = "Pods-ios_add2app";
			productReference = F53D202D53B129D9043C5D20C63F7C5B /* libPods-ios_add2app.a */;
			productType = "com.apple.product-type.library.static";
		};
		C3B23FDAB1DED3C2A533EA8D97EFD75E /* Pods-ios_add2appTests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 7A16CE8B3E5329D27B240AA7679555B1 /* Build configuration list for PBXNativeTarget "Pods-ios_add2appTests" */;
			buildPhases = (
				842ED9696E0F3095C702710833F78810 /* Headers */,
				2A296D668E10670E35587DCD1CDDB0D3 /* Sources */,
				681B3B3876DD05F1333B71E0E036F736 /* Frameworks */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = "Pods-ios_add2appTests";
			productName = "Pods-ios_add2appTests";
			productReference = DE615DCA4A153537D97493FF8CED6982 /* libPods-ios_add2appTests.a */;
			productType = "com.apple.product-type.library.static";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		D41D8CD98F00B204E9800998ECF8427E /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastSwiftUpdateCheck = 0930;
				LastUpgradeCheck = 0930;
			};
			buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			mainGroup = 7DB346D0F39D3F0E887471402A8071AB;
			productRefGroup = 41C4622842085EEBE7FE720209B65B45 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				77F3683E8268E2B8342BFBD47DFF6870 /* FlutterPluginRegistrant */,
				B2D9A26FE01FF2D9F6A10726FB523980 /* Pods-ios_add2app */,
				C3B23FDAB1DED3C2A533EA8D97EFD75E /* Pods-ios_add2appTests */,
			);
		};
/* End PBXProject section */

/* Begin PBXSourcesBuildPhase section */
		2A296D668E10670E35587DCD1CDDB0D3 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				FC54914589BC06AB28064A2DEA23DE91 /* Pods-ios_add2appTests-dummy.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2FA65D065EA93180829C661B95210079 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				D9239CC7E38BEDF9A8E18AED0B76007B /* Pods-ios_add2app-dummy.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		CAF8D2F25C0CC8CD320A468F71B0B044 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				90623EE0DFC611ECA79061CA2D8358A4 /* FlutterPluginRegistrant-dummy.m in Sources */,
				D804971E28E8BBE38C2C989D16D071FF /* GeneratedPluginRegistrant.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		6007895EDAFFFF19F2CF303EFCF90031 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			name = FlutterPluginRegistrant;
			target = 77F3683E8268E2B8342BFBD47DFF6870 /* FlutterPluginRegistrant */;
			targetProxy = A2795B72F9E5BDBFA6D2F5A7866DFA2A /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
		2D2C2AB4DD797F369011151C52081587 /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 95A58B9FAEAAC2794AECDC4F86C3C326 /* FlutterPluginRegistrant.xcconfig */;
			buildSettings = {
				CODE_SIGN_IDENTITY = "iPhone Developer";
				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
				"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
				ENABLE_BITCODE = NO;
				GCC_PREFIX_HEADER = "Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant-prefix.pch";
				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
				OTHER_LDFLAGS = "";
				OTHER_LIBTOOLFLAGS = "";
				PRIVATE_HEADERS_FOLDER_PATH = "";
				PRODUCT_MODULE_NAME = FlutterPluginRegistrant;
				PRODUCT_NAME = FlutterPluginRegistrant;
				PUBLIC_HEADERS_FOLDER_PATH = "";
				SDKROOT = iphoneos;
				SKIP_INSTALL = YES;
				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
				TARGETED_DEVICE_FAMILY = "1,2";
				VALIDATE_PRODUCT = YES;
			};
			name = Release;
		};
		40B45BB3CF3EE4476259302A7FAAD78F /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_ENABLE_OBJC_WEAK = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				CODE_SIGNING_ALLOWED = NO;
				CODE_SIGNING_REQUIRED = NO;
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu11;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"POD_CONFIGURATION_RELEASE=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 = 12.0;
				MTL_ENABLE_DEBUG_INFO = NO;
				MTL_FAST_MATH = YES;
				PRODUCT_NAME = "$(TARGET_NAME)";
				STRIP_INSTALLED_PRODUCT = NO;
				SYMROOT = "${SRCROOT}/../build";
			};
			name = Release;
		};
		6F33B40DD5D27E9CF55BCFF00DB3C9C9 /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 95A58B9FAEAAC2794AECDC4F86C3C326 /* FlutterPluginRegistrant.xcconfig */;
			buildSettings = {
				CODE_SIGN_IDENTITY = "iPhone Developer";
				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
				"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
				ENABLE_BITCODE = NO;
				GCC_PREFIX_HEADER = "Target Support Files/FlutterPluginRegistrant/FlutterPluginRegistrant-prefix.pch";
				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
				OTHER_LDFLAGS = "";
				OTHER_LIBTOOLFLAGS = "";
				PRIVATE_HEADERS_FOLDER_PATH = "";
				PRODUCT_MODULE_NAME = FlutterPluginRegistrant;
				PRODUCT_NAME = FlutterPluginRegistrant;
				PUBLIC_HEADERS_FOLDER_PATH = "";
				SDKROOT = iphoneos;
				SKIP_INSTALL = YES;
				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
				TARGETED_DEVICE_FAMILY = "1,2";
			};
			name = Debug;
		};
		85ED3013A635C27F8B7FAF51362B108C /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_ENABLE_OBJC_WEAK = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				CODE_SIGNING_ALLOWED = NO;
				CODE_SIGNING_REQUIRED = NO;
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_TESTABILITY = YES;
				GCC_C_LANGUAGE_STANDARD = gnu11;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"POD_CONFIGURATION_DEBUG=1",
					"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 = 12.0;
				MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
				MTL_FAST_MATH = YES;
				ONLY_ACTIVE_ARCH = YES;
				PRODUCT_NAME = "$(TARGET_NAME)";
				STRIP_INSTALLED_PRODUCT = NO;
				SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
				SYMROOT = "${SRCROOT}/../build";
			};
			name = Debug;
		};
		8960A0D527446655B249ECFACB336CA0 /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = E2FBD6F148E9F090879D1A4094328CA6 /* Pods-ios_add2app.debug.xcconfig */;
			buildSettings = {
				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
				CLANG_ENABLE_OBJC_WEAK = NO;
				CODE_SIGN_IDENTITY = "iPhone Developer";
				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
				"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
				ENABLE_BITCODE = NO;
				IPHONEOS_DEPLOYMENT_TARGET = 12.0;
				MACH_O_TYPE = staticlib;
				OTHER_LDFLAGS = "";
				OTHER_LIBTOOLFLAGS = "";
				PODS_ROOT = "$(SRCROOT)";
				PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
				SDKROOT = iphoneos;
				SKIP_INSTALL = YES;
				TARGETED_DEVICE_FAMILY = "1,2";
			};
			name = Debug;
		};
		A7C785B3AC959D2EFE2D88CE317298F8 /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 2C0024CD594254894D306A9E8CCE0310 /* Pods-ios_add2appTests.release.xcconfig */;
			buildSettings = {
				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
				CLANG_ENABLE_OBJC_WEAK = NO;
				CODE_SIGN_IDENTITY = "iPhone Developer";
				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
				"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
				ENABLE_BITCODE = NO;
				IPHONEOS_DEPLOYMENT_TARGET = 12.0;
				MACH_O_TYPE = staticlib;
				OTHER_LDFLAGS = "";
				OTHER_LIBTOOLFLAGS = "";
				PODS_ROOT = "$(SRCROOT)";
				PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
				SDKROOT = iphoneos;
				SKIP_INSTALL = YES;
				TARGETED_DEVICE_FAMILY = "1,2";
				VALIDATE_PRODUCT = YES;
			};
			name = Release;
		};
		A9A5DCFF2EFEAF8C16074FF68A8D3869 /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = D88A982BBB84C6B4C9872862D0EA56AB /* Pods-ios_add2app.release.xcconfig */;
			buildSettings = {
				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
				CLANG_ENABLE_OBJC_WEAK = NO;
				CODE_SIGN_IDENTITY = "iPhone Developer";
				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
				"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
				ENABLE_BITCODE = NO;
				IPHONEOS_DEPLOYMENT_TARGET = 12.0;
				MACH_O_TYPE = staticlib;
				OTHER_LDFLAGS = "";
				OTHER_LIBTOOLFLAGS = "";
				PODS_ROOT = "$(SRCROOT)";
				PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
				SDKROOT = iphoneos;
				SKIP_INSTALL = YES;
				TARGETED_DEVICE_FAMILY = "1,2";
				VALIDATE_PRODUCT = YES;
			};
			name = Release;
		};
		C52A2186FF5AB939EE047B9A9C920563 /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 6ED487DA1A38AAB091787BC50CA53CF2 /* Pods-ios_add2appTests.debug.xcconfig */;
			buildSettings = {
				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
				CLANG_ENABLE_OBJC_WEAK = NO;
				CODE_SIGN_IDENTITY = "iPhone Developer";
				"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
				"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
				ENABLE_BITCODE = NO;
				IPHONEOS_DEPLOYMENT_TARGET = 12.0;
				MACH_O_TYPE = staticlib;
				OTHER_LDFLAGS = "";
				OTHER_LIBTOOLFLAGS = "";
				PODS_ROOT = "$(SRCROOT)";
				PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
				SDKROOT = iphoneos;
				SKIP_INSTALL = YES;
				TARGETED_DEVICE_FAMILY = "1,2";
			};
			name = Debug;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				85ED3013A635C27F8B7FAF51362B108C /* Debug */,
				40B45BB3CF3EE4476259302A7FAAD78F /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		76F4A3C1B5375FECF77997994AED822E /* Build configuration list for PBXNativeTarget "Pods-ios_add2app" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				8960A0D527446655B249ECFACB336CA0 /* Debug */,
				A9A5DCFF2EFEAF8C16074FF68A8D3869 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		7A16CE8B3E5329D27B240AA7679555B1 /* Build configuration list for PBXNativeTarget "Pods-ios_add2appTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				C52A2186FF5AB939EE047B9A9C920563 /* Debug */,
				A7C785B3AC959D2EFE2D88CE317298F8 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		7B31E5D9E892DEA54641309236981CBF /* Build configuration list for PBXNativeTarget "FlutterPluginRegistrant" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				6F33B40DD5D27E9CF55BCFF00DB3C9C9 /* Debug */,
				2D2C2AB4DD797F369011151C52081587 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
}
