diff --git a/Directory.Build.props b/Directory.Build.props index fbb320be4532..4f98b53a7dd5 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,12 +1,33 @@ + + true true net6.0-ios;net6.0-maccatalyst;net6.0-android net6.0-windows10.0.18362 $(MauiPlatforms);$(WindowsTargetFramework) $(WindowsTargetFramework) + + + Xamarin.iOS10;MonoAndroid10.0 + netstandard2.0;netstandard2.1;Xamarin.iOS10;MonoAndroid90;MonoAndroid10.0;tizen40;Xamarin.Mac20; + $(NonNet6EssentialsPlatforms);uap10.0.16299; + + false + true + Xamarin.iOS10 + netstandard2.0;netstandard2.1;Xamarin.iOS10 + + false + MonoAndroid10.0 + netstandard2.0;netstandard2.1;MonoAndroid10.0 + + + + + <_MauiBuildTasksLocation>$(_MauiBuildTasksLocation) <_MauiBuildTasksLocation Condition="'$(_MauiBuildTasksLocation)' == ''">$(MSBuildThisFileDirectory).nuspec\ true diff --git a/Microsoft.Maui.iOS.sln b/Microsoft.Maui.iOS.sln new file mode 100644 index 000000000000..30a61733db1c --- /dev/null +++ b/Microsoft.Maui.iOS.sln @@ -0,0 +1,979 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30503.244 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Controls", "Controls", "{9AD757F5-E57A-459D-A0A7-E0675E045B84}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Compatibility", "Compatibility", "{29AC50BF-B4FB-450B-9386-0C5AD4B84226}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuspec", ".nuspec", "{7E12C50D-A570-4DF1-94E1-8599843FA87C}" + ProjectSection(SolutionItems) = preProject + eng\dogfood.ps1 = eng\dogfood.ps1 + .nuspec\Microsoft.Maui.Controls.Compatibility.AppLinks.nuspec = .nuspec\Microsoft.Maui.Controls.Compatibility.AppLinks.nuspec + .nuspec\Microsoft.Maui.Controls.Compatibility.GTK.nuspec = .nuspec\Microsoft.Maui.Controls.Compatibility.GTK.nuspec + .nuspec\Microsoft.Maui.Controls.Compatibility.Maps.GTK.nuspec = .nuspec\Microsoft.Maui.Controls.Compatibility.Maps.GTK.nuspec + .nuspec\Microsoft.Maui.Controls.Compatibility.Maps.nuspec = .nuspec\Microsoft.Maui.Controls.Compatibility.Maps.nuspec + .nuspec\Microsoft.Maui.Controls.Compatibility.Maps.WPF.nuspec = .nuspec\Microsoft.Maui.Controls.Compatibility.Maps.WPF.nuspec + .nuspec\Microsoft.Maui.Controls.Compatibility.Visual.Material.nuspec = .nuspec\Microsoft.Maui.Controls.Compatibility.Visual.Material.nuspec + .nuspec\Microsoft.Maui.Controls.Compatibility.Visual.Material.targets = .nuspec\Microsoft.Maui.Controls.Compatibility.Visual.Material.targets + .nuspec\Microsoft.Maui.Controls.Compatibility.WPF.nuspec = .nuspec\Microsoft.Maui.Controls.Compatibility.WPF.nuspec + .nuspec\Microsoft.Maui.Controls.Debug.targets = .nuspec\Microsoft.Maui.Controls.Debug.targets + .nuspec\Microsoft.Maui.Controls.DefaultItems.props = .nuspec\Microsoft.Maui.Controls.DefaultItems.props + .nuspec\Microsoft.Maui.Controls.DefaultItems.targets = .nuspec\Microsoft.Maui.Controls.DefaultItems.targets + .nuspec\Microsoft.Maui.Controls.DualScreen.nuspec = .nuspec\Microsoft.Maui.Controls.DualScreen.nuspec + .nuspec\Microsoft.Maui.Controls.MultiTargeting.targets = .nuspec\Microsoft.Maui.Controls.MultiTargeting.targets + .nuspec\Microsoft.Maui.Controls.nuspec = .nuspec\Microsoft.Maui.Controls.nuspec + .nuspec\Microsoft.Maui.Controls.props = .nuspec\Microsoft.Maui.Controls.props + .nuspec\Microsoft.Maui.Controls.SingleProject.props = .nuspec\Microsoft.Maui.Controls.SingleProject.props + .nuspec\Microsoft.Maui.Controls.SingleProject.targets = .nuspec\Microsoft.Maui.Controls.SingleProject.targets + .nuspec\Microsoft.Maui.Controls.targets = .nuspec\Microsoft.Maui.Controls.targets + .nuspec\Microsoft.Maui.Resizetizer.targets = .nuspec\Microsoft.Maui.Resizetizer.targets + eng\package.ps1 = eng\package.ps1 + .nuspec\proguard.cfg = .nuspec\proguard.cfg + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Core", "src\Controls\src\Core\Controls.Core.csproj", "{57B8B73D-C3B5-4C42-869E-7B2F17D354AC}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{31721EFD-3238-462B-B501-41F3D2B50E92}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Controls", "Controls", "{97FA536A-675D-41C7-A90E-97E2F79D1AE2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{423C21C8-84CB-4A3C-BEB9-1C23D752D90F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{2ACC7FFA-238F-44FD-93CB-4D9B17D8C4BA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core", "src\Core\src\Core.csproj", "{29913989-0F70-48D8-8EDE-B1DD217F21D1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Compatibility.iOS", "src\Compatibility\Core\src\iOS\Compatibility.iOS.csproj", "{271193C1-6E7C-429C-A36D-3F1BE5267231}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D5B986A3-7FC9-437E-8030-349AA4698DFD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{75A2CD30-BB85-4CA6-AC95-86A8A538A690}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Core.UnitTests", "src\Controls\tests\Core.UnitTests\Controls.Core.UnitTests.csproj", "{00259593-A283-47A5-ACB7-9C3819B16364}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Xaml", "src\Controls\src\Xaml\Controls.Xaml.csproj", "{BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Build.Tasks", "src\Controls\src\Build.Tasks\Controls.Build.Tasks.csproj", "{C328C538-B69F-43D2-80EE-3C1EB8254CBA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core.UnitTests", "src\Core\tests\UnitTests\Core.UnitTests.csproj", "{7A753001-1C3D-404D-A421-2E052A545EAC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core.DeviceTests", "src\Core\tests\DeviceTests\Core.DeviceTests.csproj", "{DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Core.DeviceTests.Android", "src\Core\tests\DeviceTests.Android\Core.DeviceTests.Android.csproj", "{A0B8D99F-4C0E-4D47-8182-9E8879A9B105}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Core.DeviceTests.iOS", "src\Core\tests\DeviceTests.iOS\Core.DeviceTests.iOS.csproj", "{EE8FC716-27FC-405B-BD27-AF17E01A6671}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Essentials", "Essentials", "{DFD73007-5DB1-43AD-87A8-BD8622C2B192}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{7E12E071-51C0-4668-9FF3-E2DE9DC51962}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials", "src\Essentials\src\Essentials.csproj", "{8CB95D25-8442-42BC-82BE-319D21138549}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{99FDF6CA-DCF8-4CB2-B2EA-E24CCB601232}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials.UnitTests", "src\Essentials\test\UnitTests\Essentials.UnitTests.csproj", "{2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Essentials.DeviceTests.iOS", "src\Essentials\test\DeviceTests.iOS\Essentials.DeviceTests.iOS.csproj", "{B73EB308-70BE-49FD-91A7-1D1495663D6D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials.DeviceTests.Shared", "src\Essentials\test\DeviceTests.Shared\Essentials.DeviceTests.Shared.csproj", "{81128D28-CFC8-4EA4-B68D-9939339C461A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{5817A848-0B04-4035-9F7E-B8621B61CBDD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Essentials.Samples.iOS", "src\Essentials\samples\Samples.iOS\Essentials.Samples.iOS.csproj", "{AB6242B7-634F-4839-A991-7629D0D2C636}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials.Samples", "src\Essentials\samples\Samples\Essentials.Samples.csproj", "{2C69EB76-02C4-4921-96A1-4D70CB7CE744}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Essentials.Sample.Server.WebAuthenticator", "src\Essentials\samples\Sample.Server.WebAuthenticator\Essentials.Sample.Server.WebAuthenticator.csproj", "{0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core.Benchmarks", "src\Core\tests\Benchmarks\Core.Benchmarks.csproj", "{73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{806499EB-C2CC-4E85-BC19-613F3DE5E0C3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Sample", "src\Controls\samples\Controls.Sample\Controls.Sample.csproj", "{90B727DD-4C7B-4462-950F-61842A87DE8A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Controls.Sample.iOS", "src\Controls\samples\Controls.Sample.iOS\Controls.Sample.iOS.csproj", "{D51AD52D-C4C6-445A-BD0F-884BE5C1C526}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Maps", "src\Controls\Maps\src\Controls.Maps.csproj", "{F2379E0F-524F-47BC-877C-0428E4C836D4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.Xaml.UnitTests", "src\Controls\tests\Xaml.UnitTests\Controls.Xaml.UnitTests.csproj", "{F905B72C-4DF7-408B-8B2B-50F9B8246A5E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TestUtils", "TestUtils", "{0F9BA970-11B1-4ACA-AF41-1021AFC0F29C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtils", "src\TestUtils\TestUtils\src\TestUtils.csproj", "{E4CB9988-7348-4D55-A08E-85907732F8DA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtils.DeviceTests", "src\TestUtils\TestUtils.DeviceTests\src\TestUtils.DeviceTests.csproj", "{551B2209-4298-4D60-B55C-79077B8BC244}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Resizetizer", "Resizetizer", "{4A3BAF64-E9D9-4036-9FDA-8B326C382667}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{F83AC93C-9694-4A01-B9CB-7AA8E514B01F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{08F720FF-7530-43BF-A252-8946927669E3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Resizetizer", "src\SingleProject\Resizetizer\src\Resizetizer.csproj", "{3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Resizetizer.UnitTests", "src\SingleProject\Resizetizer\test\UnitTests\Resizetizer.UnitTests.csproj", "{BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SingleProject", "SingleProject", "{15878D2D-B0F1-4EE9-875D-4A643DB0C842}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Controls.CustomAttributes", "src\Controls\tests\CustomAttributes\Controls.CustomAttributes.csproj", "{D816B818-F58F-4738-93AE-924EFAB7A07F}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Compatibility.ControlGallery.Issues.Shared", "src\Compatibility\ControlGallery\src\Issues.Shared\Compatibility.ControlGallery.Issues.Shared.shproj", "{AE2513CB-4E5E-4E5C-8237-88954D4C9433}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Compatibility.ControlGallery.Core", "src\Compatibility\ControlGallery\src\Core\Compatibility.ControlGallery.Core.csproj", "{B5F94CCB-5868-43BD-89B5-B66C97C3A741}" +EndProject +Global + GlobalSection(SharedMSBuildProjectFiles) = preSolution + src\Compatibility\ControlGallery\src\Issues.Shared\Compatibility.ControlGallery.Issues.Shared.projitems*{ae2513cb-4e5e-4e5c-8237-88954d4c9433}*SharedItemsImports = 13 + src\Compatibility\ControlGallery\src\Issues.Shared\Compatibility.ControlGallery.Issues.Shared.projitems*{b5f94ccb-5868-43bd-89b5-b66c97c3a741}*SharedItemsImports = 5 + EndGlobalSection + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|ARM = Debug|ARM + Debug|ARM64 = Debug|ARM64 + Debug|iPhone = Debug|iPhone + Debug|iPhoneSimulator = Debug|iPhoneSimulator + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|ARM = Release|ARM + Release|ARM64 = Release|ARM64 + Release|iPhone = Release|iPhone + Release|iPhoneSimulator = Release|iPhoneSimulator + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|ARM.ActiveCfg = Debug|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|ARM.Build.0 = Debug|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|ARM64.Build.0 = Debug|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|iPhone.Build.0 = Debug|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|x64.ActiveCfg = Debug|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|x64.Build.0 = Debug|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|x86.ActiveCfg = Debug|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Debug|x86.Build.0 = Debug|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|Any CPU.Build.0 = Release|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|ARM.ActiveCfg = Release|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|ARM.Build.0 = Release|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|ARM64.ActiveCfg = Release|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|ARM64.Build.0 = Release|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|iPhone.ActiveCfg = Release|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|iPhone.Build.0 = Release|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|x64.ActiveCfg = Release|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|x64.Build.0 = Release|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|x86.ActiveCfg = Release|Any CPU + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC}.Release|x86.Build.0 = Release|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|ARM.ActiveCfg = Debug|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|ARM.Build.0 = Debug|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|ARM64.Build.0 = Debug|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|iPhone.Build.0 = Debug|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|x64.ActiveCfg = Debug|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|x64.Build.0 = Debug|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|x86.ActiveCfg = Debug|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Debug|x86.Build.0 = Debug|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|Any CPU.Build.0 = Release|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|ARM.ActiveCfg = Release|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|ARM.Build.0 = Release|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|ARM64.ActiveCfg = Release|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|ARM64.Build.0 = Release|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|iPhone.ActiveCfg = Release|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|iPhone.Build.0 = Release|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|x64.ActiveCfg = Release|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|x64.Build.0 = Release|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|x86.ActiveCfg = Release|Any CPU + {29913989-0F70-48D8-8EDE-B1DD217F21D1}.Release|x86.Build.0 = Release|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|Any CPU.Build.0 = Debug|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|ARM.ActiveCfg = Debug|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|ARM.Build.0 = Debug|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|ARM64.Build.0 = Debug|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|iPhone.Build.0 = Debug|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|x64.ActiveCfg = Debug|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|x64.Build.0 = Debug|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|x86.ActiveCfg = Debug|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Debug|x86.Build.0 = Debug|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|Any CPU.ActiveCfg = Release|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|Any CPU.Build.0 = Release|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|ARM.ActiveCfg = Release|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|ARM.Build.0 = Release|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|ARM64.ActiveCfg = Release|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|ARM64.Build.0 = Release|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|iPhone.ActiveCfg = Release|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|iPhone.Build.0 = Release|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|x64.ActiveCfg = Release|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|x64.Build.0 = Release|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|x86.ActiveCfg = Release|Any CPU + {271193C1-6E7C-429C-A36D-3F1BE5267231}.Release|x86.Build.0 = Release|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Debug|Any CPU.Build.0 = Debug|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Debug|ARM.ActiveCfg = Debug|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Debug|ARM.Build.0 = Debug|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Debug|ARM64.Build.0 = Debug|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Debug|iPhone.Build.0 = Debug|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Debug|x64.ActiveCfg = Debug|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Debug|x64.Build.0 = Debug|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Debug|x86.ActiveCfg = Debug|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Debug|x86.Build.0 = Debug|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Release|Any CPU.ActiveCfg = Release|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Release|Any CPU.Build.0 = Release|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Release|ARM.ActiveCfg = Release|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Release|ARM.Build.0 = Release|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Release|ARM64.ActiveCfg = Release|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Release|ARM64.Build.0 = Release|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Release|iPhone.ActiveCfg = Release|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Release|iPhone.Build.0 = Release|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Release|x64.ActiveCfg = Release|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Release|x64.Build.0 = Release|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Release|x86.ActiveCfg = Release|Any CPU + {00259593-A283-47A5-ACB7-9C3819B16364}.Release|x86.Build.0 = Release|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|ARM.ActiveCfg = Debug|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|ARM.Build.0 = Debug|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|ARM64.Build.0 = Debug|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|iPhone.Build.0 = Debug|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|x64.ActiveCfg = Debug|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|x64.Build.0 = Debug|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|x86.ActiveCfg = Debug|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Debug|x86.Build.0 = Debug|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|Any CPU.Build.0 = Release|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|ARM.ActiveCfg = Release|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|ARM.Build.0 = Release|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|ARM64.ActiveCfg = Release|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|ARM64.Build.0 = Release|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|iPhone.ActiveCfg = Release|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|iPhone.Build.0 = Release|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|x64.ActiveCfg = Release|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|x64.Build.0 = Release|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|x86.ActiveCfg = Release|Any CPU + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27}.Release|x86.Build.0 = Release|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|ARM.ActiveCfg = Debug|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|ARM.Build.0 = Debug|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|ARM64.Build.0 = Debug|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|iPhone.Build.0 = Debug|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|x64.ActiveCfg = Debug|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|x64.Build.0 = Debug|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|x86.ActiveCfg = Debug|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Debug|x86.Build.0 = Debug|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|Any CPU.Build.0 = Release|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|ARM.ActiveCfg = Release|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|ARM.Build.0 = Release|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|ARM64.ActiveCfg = Release|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|ARM64.Build.0 = Release|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|iPhone.ActiveCfg = Release|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|iPhone.Build.0 = Release|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|x64.ActiveCfg = Release|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|x64.Build.0 = Release|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|x86.ActiveCfg = Release|Any CPU + {C328C538-B69F-43D2-80EE-3C1EB8254CBA}.Release|x86.Build.0 = Release|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|ARM.ActiveCfg = Debug|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|ARM.Build.0 = Debug|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|ARM64.Build.0 = Debug|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|iPhone.Build.0 = Debug|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|x64.ActiveCfg = Debug|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|x64.Build.0 = Debug|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|x86.ActiveCfg = Debug|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Debug|x86.Build.0 = Debug|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Release|Any CPU.Build.0 = Release|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Release|ARM.ActiveCfg = Release|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Release|ARM.Build.0 = Release|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Release|ARM64.ActiveCfg = Release|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Release|ARM64.Build.0 = Release|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Release|iPhone.ActiveCfg = Release|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Release|iPhone.Build.0 = Release|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Release|x64.ActiveCfg = Release|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Release|x64.Build.0 = Release|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Release|x86.ActiveCfg = Release|Any CPU + {7A753001-1C3D-404D-A421-2E052A545EAC}.Release|x86.Build.0 = Release|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Debug|ARM.ActiveCfg = Debug|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Debug|ARM.Build.0 = Debug|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Debug|ARM64.Build.0 = Debug|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Debug|iPhone.Build.0 = Debug|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Debug|x64.ActiveCfg = Debug|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Debug|x64.Build.0 = Debug|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Debug|x86.ActiveCfg = Debug|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Debug|x86.Build.0 = Debug|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Release|Any CPU.Build.0 = Release|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Release|ARM.ActiveCfg = Release|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Release|ARM.Build.0 = Release|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Release|ARM64.ActiveCfg = Release|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Release|ARM64.Build.0 = Release|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Release|iPhone.ActiveCfg = Release|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Release|iPhone.Build.0 = Release|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Release|x64.ActiveCfg = Release|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Release|x64.Build.0 = Release|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Release|x86.ActiveCfg = Release|Any CPU + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6}.Release|x86.Build.0 = Release|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Debug|ARM.ActiveCfg = Debug|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Debug|ARM.Build.0 = Debug|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Debug|ARM.Deploy.0 = Debug|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Debug|ARM64.Build.0 = Debug|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Debug|ARM64.Deploy.0 = Debug|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Debug|iPhone.Build.0 = Debug|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Debug|iPhone.Deploy.0 = Debug|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Debug|x64.ActiveCfg = Debug|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Debug|x64.Build.0 = Debug|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Debug|x64.Deploy.0 = Debug|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Debug|x86.ActiveCfg = Debug|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Debug|x86.Build.0 = Debug|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Debug|x86.Deploy.0 = Debug|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Release|Any CPU.Build.0 = Release|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Release|Any CPU.Deploy.0 = Release|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Release|ARM.ActiveCfg = Release|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Release|ARM.Build.0 = Release|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Release|ARM.Deploy.0 = Release|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Release|ARM64.ActiveCfg = Release|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Release|ARM64.Build.0 = Release|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Release|ARM64.Deploy.0 = Release|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Release|iPhone.ActiveCfg = Release|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Release|iPhone.Build.0 = Release|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Release|iPhone.Deploy.0 = Release|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Release|x64.ActiveCfg = Release|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Release|x64.Build.0 = Release|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Release|x64.Deploy.0 = Release|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Release|x86.ActiveCfg = Release|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Release|x86.Build.0 = Release|Any CPU + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105}.Release|x86.Deploy.0 = Release|Any CPU + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Debug|Any CPU.Deploy.0 = Debug|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Debug|ARM.Build.0 = Debug|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Debug|ARM64.ActiveCfg = Debug|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Debug|ARM64.Build.0 = Debug|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Debug|iPhone.ActiveCfg = Debug|iPhone + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Debug|iPhone.Build.0 = Debug|iPhone + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Debug|iPhone.Deploy.0 = Debug|iPhone + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Debug|iPhoneSimulator.Deploy.0 = Debug|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Debug|x64.Build.0 = Debug|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Debug|x64.Deploy.0 = Debug|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Debug|x86.Build.0 = Debug|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Release|Any CPU.Build.0 = Release|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Release|ARM.ActiveCfg = Release|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Release|ARM.Build.0 = Release|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Release|ARM64.ActiveCfg = Release|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Release|ARM64.Build.0 = Release|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Release|iPhone.ActiveCfg = Release|iPhone + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Release|iPhone.Build.0 = Release|iPhone + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Release|x64.ActiveCfg = Release|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Release|x64.Build.0 = Release|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Release|x86.ActiveCfg = Release|iPhoneSimulator + {EE8FC716-27FC-405B-BD27-AF17E01A6671}.Release|x86.Build.0 = Release|iPhoneSimulator + {8CB95D25-8442-42BC-82BE-319D21138549}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Debug|ARM.ActiveCfg = Debug|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Debug|ARM.Build.0 = Debug|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Debug|ARM64.Build.0 = Debug|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Debug|iPhone.Build.0 = Debug|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Debug|x64.ActiveCfg = Debug|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Debug|x64.Build.0 = Debug|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Debug|x86.ActiveCfg = Debug|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Debug|x86.Build.0 = Debug|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Release|Any CPU.Build.0 = Release|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Release|ARM.ActiveCfg = Release|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Release|ARM.Build.0 = Release|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Release|ARM64.ActiveCfg = Release|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Release|ARM64.Build.0 = Release|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Release|iPhone.ActiveCfg = Release|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Release|iPhone.Build.0 = Release|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Release|x64.ActiveCfg = Release|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Release|x64.Build.0 = Release|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Release|x86.ActiveCfg = Release|Any CPU + {8CB95D25-8442-42BC-82BE-319D21138549}.Release|x86.Build.0 = Release|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|ARM.ActiveCfg = Debug|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|ARM.Build.0 = Debug|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|ARM64.Build.0 = Debug|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|iPhone.Build.0 = Debug|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|x64.ActiveCfg = Debug|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|x64.Build.0 = Debug|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|x86.ActiveCfg = Debug|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Debug|x86.Build.0 = Debug|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|Any CPU.Build.0 = Release|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|ARM.ActiveCfg = Release|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|ARM.Build.0 = Release|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|ARM64.ActiveCfg = Release|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|ARM64.Build.0 = Release|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|iPhone.ActiveCfg = Release|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|iPhone.Build.0 = Release|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|x64.ActiveCfg = Release|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|x64.Build.0 = Release|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|x86.ActiveCfg = Release|Any CPU + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886}.Release|x86.Build.0 = Release|Any CPU + {B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator + {B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator + {B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator + {B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|ARM64.ActiveCfg = Debug|iPhoneSimulator + {B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|iPhone.ActiveCfg = Debug|iPhone + {B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|iPhone.Build.0 = Debug|iPhone + {B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|iPhone.Deploy.0 = Debug|iPhone + {B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator + {B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator + {B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator + {B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|x64.Build.0 = Debug|iPhoneSimulator + {B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|x64.Deploy.0 = Debug|iPhoneSimulator + {B73EB308-70BE-49FD-91A7-1D1495663D6D}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator + {B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator + {B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|ARM.ActiveCfg = Release|iPhoneSimulator + {B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|ARM64.ActiveCfg = Release|iPhoneSimulator + {B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|iPhone.ActiveCfg = Release|iPhone + {B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|iPhone.Build.0 = Release|iPhone + {B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator + {B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator + {B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|x64.ActiveCfg = Release|iPhoneSimulator + {B73EB308-70BE-49FD-91A7-1D1495663D6D}.Release|x86.ActiveCfg = Release|iPhoneSimulator + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|ARM.ActiveCfg = Debug|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|ARM.Build.0 = Debug|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|ARM64.Build.0 = Debug|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|iPhone.Build.0 = Debug|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|x64.ActiveCfg = Debug|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|x64.Build.0 = Debug|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|x86.ActiveCfg = Debug|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Debug|x86.Build.0 = Debug|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|Any CPU.Build.0 = Release|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|ARM.ActiveCfg = Release|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|ARM.Build.0 = Release|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|ARM64.ActiveCfg = Release|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|ARM64.Build.0 = Release|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|iPhone.ActiveCfg = Release|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|iPhone.Build.0 = Release|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|x64.ActiveCfg = Release|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|x64.Build.0 = Release|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|x86.ActiveCfg = Release|Any CPU + {81128D28-CFC8-4EA4-B68D-9939339C461A}.Release|x86.Build.0 = Release|Any CPU + {AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator + {AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator + {AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator + {AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|ARM64.ActiveCfg = Debug|iPhoneSimulator + {AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|iPhone.ActiveCfg = Debug|iPhone + {AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|iPhone.Build.0 = Debug|iPhone + {AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|iPhone.Deploy.0 = Debug|iPhone + {AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator + {AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator + {AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator + {AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|x64.Build.0 = Debug|iPhoneSimulator + {AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|x64.Deploy.0 = Debug|iPhoneSimulator + {AB6242B7-634F-4839-A991-7629D0D2C636}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator + {AB6242B7-634F-4839-A991-7629D0D2C636}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator + {AB6242B7-634F-4839-A991-7629D0D2C636}.Release|ARM.ActiveCfg = Release|iPhoneSimulator + {AB6242B7-634F-4839-A991-7629D0D2C636}.Release|ARM64.ActiveCfg = Release|iPhoneSimulator + {AB6242B7-634F-4839-A991-7629D0D2C636}.Release|iPhone.ActiveCfg = Release|iPhone + {AB6242B7-634F-4839-A991-7629D0D2C636}.Release|iPhone.Build.0 = Release|iPhone + {AB6242B7-634F-4839-A991-7629D0D2C636}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator + {AB6242B7-634F-4839-A991-7629D0D2C636}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator + {AB6242B7-634F-4839-A991-7629D0D2C636}.Release|x64.ActiveCfg = Release|iPhoneSimulator + {AB6242B7-634F-4839-A991-7629D0D2C636}.Release|x86.ActiveCfg = Release|iPhoneSimulator + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|ARM.ActiveCfg = Debug|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|ARM.Build.0 = Debug|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|ARM64.Build.0 = Debug|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|iPhone.Build.0 = Debug|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|x64.ActiveCfg = Debug|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|x64.Build.0 = Debug|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|x86.ActiveCfg = Debug|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Debug|x86.Build.0 = Debug|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|Any CPU.Build.0 = Release|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|ARM.ActiveCfg = Release|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|ARM.Build.0 = Release|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|ARM64.ActiveCfg = Release|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|ARM64.Build.0 = Release|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|iPhone.ActiveCfg = Release|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|iPhone.Build.0 = Release|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|x64.ActiveCfg = Release|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|x64.Build.0 = Release|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|x86.ActiveCfg = Release|Any CPU + {2C69EB76-02C4-4921-96A1-4D70CB7CE744}.Release|x86.Build.0 = Release|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|ARM.ActiveCfg = Debug|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|ARM.Build.0 = Debug|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|ARM64.Build.0 = Debug|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|iPhone.Build.0 = Debug|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|x64.ActiveCfg = Debug|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|x64.Build.0 = Debug|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|x86.ActiveCfg = Debug|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Debug|x86.Build.0 = Debug|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|Any CPU.Build.0 = Release|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|ARM.ActiveCfg = Release|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|ARM.Build.0 = Release|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|ARM64.ActiveCfg = Release|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|ARM64.Build.0 = Release|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|iPhone.ActiveCfg = Release|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|iPhone.Build.0 = Release|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|x64.ActiveCfg = Release|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|x64.Build.0 = Release|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|x86.ActiveCfg = Release|Any CPU + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C}.Release|x86.Build.0 = Release|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Debug|Any CPU.Build.0 = Debug|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Debug|ARM.ActiveCfg = Debug|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Debug|ARM.Build.0 = Debug|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Debug|ARM64.Build.0 = Debug|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Debug|iPhone.Build.0 = Debug|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Debug|x64.ActiveCfg = Debug|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Debug|x64.Build.0 = Debug|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Debug|x86.ActiveCfg = Debug|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Debug|x86.Build.0 = Debug|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Release|Any CPU.ActiveCfg = Release|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Release|Any CPU.Build.0 = Release|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Release|ARM.ActiveCfg = Release|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Release|ARM.Build.0 = Release|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Release|ARM64.ActiveCfg = Release|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Release|ARM64.Build.0 = Release|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Release|iPhone.ActiveCfg = Release|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Release|iPhone.Build.0 = Release|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Release|x64.ActiveCfg = Release|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Release|x64.Build.0 = Release|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Release|x86.ActiveCfg = Release|Any CPU + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424}.Release|x86.Build.0 = Release|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Debug|ARM.ActiveCfg = Debug|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Debug|ARM.Build.0 = Debug|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Debug|ARM64.Build.0 = Debug|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Debug|iPhone.Build.0 = Debug|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Debug|x64.ActiveCfg = Debug|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Debug|x64.Build.0 = Debug|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Debug|x86.ActiveCfg = Debug|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Debug|x86.Build.0 = Debug|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Release|Any CPU.Build.0 = Release|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Release|ARM.ActiveCfg = Release|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Release|ARM.Build.0 = Release|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Release|ARM64.ActiveCfg = Release|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Release|ARM64.Build.0 = Release|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Release|iPhone.ActiveCfg = Release|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Release|iPhone.Build.0 = Release|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Release|x64.ActiveCfg = Release|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Release|x64.Build.0 = Release|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Release|x86.ActiveCfg = Release|Any CPU + {90B727DD-4C7B-4462-950F-61842A87DE8A}.Release|x86.Build.0 = Release|Any CPU + {D51AD52D-C4C6-445A-BD0F-884BE5C1C526}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator + {D51AD52D-C4C6-445A-BD0F-884BE5C1C526}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator + {D51AD52D-C4C6-445A-BD0F-884BE5C1C526}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator + {D51AD52D-C4C6-445A-BD0F-884BE5C1C526}.Debug|ARM64.ActiveCfg = Debug|iPhoneSimulator + {D51AD52D-C4C6-445A-BD0F-884BE5C1C526}.Debug|iPhone.ActiveCfg = Debug|iPhone + {D51AD52D-C4C6-445A-BD0F-884BE5C1C526}.Debug|iPhone.Build.0 = Debug|iPhone + {D51AD52D-C4C6-445A-BD0F-884BE5C1C526}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator + {D51AD52D-C4C6-445A-BD0F-884BE5C1C526}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator + {D51AD52D-C4C6-445A-BD0F-884BE5C1C526}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator + {D51AD52D-C4C6-445A-BD0F-884BE5C1C526}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator + {D51AD52D-C4C6-445A-BD0F-884BE5C1C526}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator + {D51AD52D-C4C6-445A-BD0F-884BE5C1C526}.Release|ARM.ActiveCfg = Release|iPhoneSimulator + {D51AD52D-C4C6-445A-BD0F-884BE5C1C526}.Release|ARM64.ActiveCfg = Release|iPhoneSimulator + {D51AD52D-C4C6-445A-BD0F-884BE5C1C526}.Release|iPhone.ActiveCfg = Release|iPhone + {D51AD52D-C4C6-445A-BD0F-884BE5C1C526}.Release|iPhone.Build.0 = Release|iPhone + {D51AD52D-C4C6-445A-BD0F-884BE5C1C526}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator + {D51AD52D-C4C6-445A-BD0F-884BE5C1C526}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator + {D51AD52D-C4C6-445A-BD0F-884BE5C1C526}.Release|x64.ActiveCfg = Release|iPhoneSimulator + {D51AD52D-C4C6-445A-BD0F-884BE5C1C526}.Release|x86.ActiveCfg = Release|iPhoneSimulator + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Debug|ARM.ActiveCfg = Debug|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Debug|ARM.Build.0 = Debug|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Debug|ARM64.Build.0 = Debug|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Debug|iPhone.Build.0 = Debug|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Debug|x64.ActiveCfg = Debug|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Debug|x64.Build.0 = Debug|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Debug|x86.ActiveCfg = Debug|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Debug|x86.Build.0 = Debug|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Release|Any CPU.Build.0 = Release|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Release|ARM.ActiveCfg = Release|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Release|ARM.Build.0 = Release|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Release|ARM64.ActiveCfg = Release|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Release|ARM64.Build.0 = Release|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Release|iPhone.ActiveCfg = Release|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Release|iPhone.Build.0 = Release|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Release|x64.ActiveCfg = Release|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Release|x64.Build.0 = Release|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Release|x86.ActiveCfg = Release|Any CPU + {F2379E0F-524F-47BC-877C-0428E4C836D4}.Release|x86.Build.0 = Release|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Debug|ARM.ActiveCfg = Debug|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Debug|ARM.Build.0 = Debug|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Debug|ARM64.Build.0 = Debug|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Debug|iPhone.Build.0 = Debug|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Debug|x64.ActiveCfg = Debug|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Debug|x64.Build.0 = Debug|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Debug|x86.ActiveCfg = Debug|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Debug|x86.Build.0 = Debug|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Release|Any CPU.Build.0 = Release|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Release|ARM.ActiveCfg = Release|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Release|ARM.Build.0 = Release|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Release|ARM64.ActiveCfg = Release|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Release|ARM64.Build.0 = Release|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Release|iPhone.ActiveCfg = Release|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Release|iPhone.Build.0 = Release|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Release|x64.ActiveCfg = Release|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Release|x64.Build.0 = Release|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Release|x86.ActiveCfg = Release|Any CPU + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E}.Release|x86.Build.0 = Release|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Debug|ARM.ActiveCfg = Debug|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Debug|ARM.Build.0 = Debug|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Debug|ARM64.Build.0 = Debug|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Debug|iPhone.Build.0 = Debug|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Debug|x64.ActiveCfg = Debug|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Debug|x64.Build.0 = Debug|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Debug|x86.ActiveCfg = Debug|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Debug|x86.Build.0 = Debug|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Release|Any CPU.Build.0 = Release|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Release|ARM.ActiveCfg = Release|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Release|ARM.Build.0 = Release|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Release|ARM64.ActiveCfg = Release|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Release|ARM64.Build.0 = Release|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Release|iPhone.ActiveCfg = Release|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Release|iPhone.Build.0 = Release|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Release|x64.ActiveCfg = Release|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Release|x64.Build.0 = Release|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Release|x86.ActiveCfg = Release|Any CPU + {E4CB9988-7348-4D55-A08E-85907732F8DA}.Release|x86.Build.0 = Release|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Debug|Any CPU.Build.0 = Debug|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Debug|ARM.ActiveCfg = Debug|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Debug|ARM.Build.0 = Debug|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Debug|ARM64.Build.0 = Debug|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Debug|iPhone.Build.0 = Debug|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Debug|x64.ActiveCfg = Debug|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Debug|x64.Build.0 = Debug|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Debug|x86.ActiveCfg = Debug|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Debug|x86.Build.0 = Debug|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Release|Any CPU.ActiveCfg = Release|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Release|Any CPU.Build.0 = Release|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Release|ARM.ActiveCfg = Release|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Release|ARM.Build.0 = Release|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Release|ARM64.ActiveCfg = Release|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Release|ARM64.Build.0 = Release|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Release|iPhone.ActiveCfg = Release|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Release|iPhone.Build.0 = Release|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Release|x64.ActiveCfg = Release|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Release|x64.Build.0 = Release|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Release|x86.ActiveCfg = Release|Any CPU + {551B2209-4298-4D60-B55C-79077B8BC244}.Release|x86.Build.0 = Release|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Debug|ARM.ActiveCfg = Debug|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Debug|ARM.Build.0 = Debug|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Debug|ARM64.Build.0 = Debug|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Debug|iPhone.Build.0 = Debug|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Debug|x64.ActiveCfg = Debug|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Debug|x64.Build.0 = Debug|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Debug|x86.ActiveCfg = Debug|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Debug|x86.Build.0 = Debug|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Release|Any CPU.Build.0 = Release|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Release|ARM.ActiveCfg = Release|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Release|ARM.Build.0 = Release|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Release|ARM64.ActiveCfg = Release|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Release|ARM64.Build.0 = Release|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Release|iPhone.ActiveCfg = Release|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Release|iPhone.Build.0 = Release|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Release|x64.ActiveCfg = Release|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Release|x64.Build.0 = Release|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Release|x86.ActiveCfg = Release|Any CPU + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C}.Release|x86.Build.0 = Release|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Debug|ARM.ActiveCfg = Debug|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Debug|ARM.Build.0 = Debug|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Debug|ARM64.Build.0 = Debug|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Debug|iPhone.Build.0 = Debug|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Debug|x64.ActiveCfg = Debug|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Debug|x64.Build.0 = Debug|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Debug|x86.ActiveCfg = Debug|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Debug|x86.Build.0 = Debug|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Release|Any CPU.Build.0 = Release|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Release|ARM.ActiveCfg = Release|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Release|ARM.Build.0 = Release|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Release|ARM64.ActiveCfg = Release|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Release|ARM64.Build.0 = Release|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Release|iPhone.ActiveCfg = Release|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Release|iPhone.Build.0 = Release|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Release|x64.ActiveCfg = Release|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Release|x64.Build.0 = Release|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Release|x86.ActiveCfg = Release|Any CPU + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5}.Release|x86.Build.0 = Release|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Debug|ARM.ActiveCfg = Debug|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Debug|ARM.Build.0 = Debug|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Debug|ARM64.Build.0 = Debug|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Debug|iPhone.Build.0 = Debug|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Debug|x64.ActiveCfg = Debug|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Debug|x64.Build.0 = Debug|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Debug|x86.ActiveCfg = Debug|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Debug|x86.Build.0 = Debug|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Release|Any CPU.Build.0 = Release|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Release|ARM.ActiveCfg = Release|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Release|ARM.Build.0 = Release|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Release|ARM64.ActiveCfg = Release|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Release|ARM64.Build.0 = Release|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Release|iPhone.ActiveCfg = Release|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Release|iPhone.Build.0 = Release|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Release|x64.ActiveCfg = Release|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Release|x64.Build.0 = Release|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Release|x86.ActiveCfg = Release|Any CPU + {D816B818-F58F-4738-93AE-924EFAB7A07F}.Release|x86.Build.0 = Release|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Debug|ARM.ActiveCfg = Debug|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Debug|ARM.Build.0 = Debug|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Debug|ARM64.Build.0 = Debug|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Debug|iPhone.Build.0 = Debug|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Debug|x64.ActiveCfg = Debug|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Debug|x64.Build.0 = Debug|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Debug|x86.ActiveCfg = Debug|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Debug|x86.Build.0 = Debug|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Release|Any CPU.Build.0 = Release|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Release|ARM.ActiveCfg = Release|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Release|ARM.Build.0 = Release|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Release|ARM64.ActiveCfg = Release|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Release|ARM64.Build.0 = Release|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Release|iPhone.ActiveCfg = Release|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Release|iPhone.Build.0 = Release|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Release|x64.ActiveCfg = Release|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Release|x64.Build.0 = Release|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Release|x86.ActiveCfg = Release|Any CPU + {B5F94CCB-5868-43BD-89B5-B66C97C3A741}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {9AD757F5-E57A-459D-A0A7-E0675E045B84} = {97FA536A-675D-41C7-A90E-97E2F79D1AE2} + {29AC50BF-B4FB-450B-9386-0C5AD4B84226} = {97FA536A-675D-41C7-A90E-97E2F79D1AE2} + {57B8B73D-C3B5-4C42-869E-7B2F17D354AC} = {D5B986A3-7FC9-437E-8030-349AA4698DFD} + {423C21C8-84CB-4A3C-BEB9-1C23D752D90F} = {31721EFD-3238-462B-B501-41F3D2B50E92} + {2ACC7FFA-238F-44FD-93CB-4D9B17D8C4BA} = {31721EFD-3238-462B-B501-41F3D2B50E92} + {29913989-0F70-48D8-8EDE-B1DD217F21D1} = {423C21C8-84CB-4A3C-BEB9-1C23D752D90F} + {271193C1-6E7C-429C-A36D-3F1BE5267231} = {29AC50BF-B4FB-450B-9386-0C5AD4B84226} + {D5B986A3-7FC9-437E-8030-349AA4698DFD} = {9AD757F5-E57A-459D-A0A7-E0675E045B84} + {75A2CD30-BB85-4CA6-AC95-86A8A538A690} = {9AD757F5-E57A-459D-A0A7-E0675E045B84} + {00259593-A283-47A5-ACB7-9C3819B16364} = {75A2CD30-BB85-4CA6-AC95-86A8A538A690} + {BB98A559-62C4-4C98-90A0-9E4D8DF1CA27} = {D5B986A3-7FC9-437E-8030-349AA4698DFD} + {C328C538-B69F-43D2-80EE-3C1EB8254CBA} = {D5B986A3-7FC9-437E-8030-349AA4698DFD} + {7A753001-1C3D-404D-A421-2E052A545EAC} = {2ACC7FFA-238F-44FD-93CB-4D9B17D8C4BA} + {DA9E4D76-8CA4-4CC3-A47C-BA75DFF805C6} = {2ACC7FFA-238F-44FD-93CB-4D9B17D8C4BA} + {A0B8D99F-4C0E-4D47-8182-9E8879A9B105} = {2ACC7FFA-238F-44FD-93CB-4D9B17D8C4BA} + {EE8FC716-27FC-405B-BD27-AF17E01A6671} = {2ACC7FFA-238F-44FD-93CB-4D9B17D8C4BA} + {7E12E071-51C0-4668-9FF3-E2DE9DC51962} = {DFD73007-5DB1-43AD-87A8-BD8622C2B192} + {8CB95D25-8442-42BC-82BE-319D21138549} = {7E12E071-51C0-4668-9FF3-E2DE9DC51962} + {99FDF6CA-DCF8-4CB2-B2EA-E24CCB601232} = {DFD73007-5DB1-43AD-87A8-BD8622C2B192} + {2E0EB4A3-3C4A-4A5E-8D2F-F77C62464886} = {99FDF6CA-DCF8-4CB2-B2EA-E24CCB601232} + {B73EB308-70BE-49FD-91A7-1D1495663D6D} = {99FDF6CA-DCF8-4CB2-B2EA-E24CCB601232} + {81128D28-CFC8-4EA4-B68D-9939339C461A} = {99FDF6CA-DCF8-4CB2-B2EA-E24CCB601232} + {5817A848-0B04-4035-9F7E-B8621B61CBDD} = {DFD73007-5DB1-43AD-87A8-BD8622C2B192} + {AB6242B7-634F-4839-A991-7629D0D2C636} = {5817A848-0B04-4035-9F7E-B8621B61CBDD} + {2C69EB76-02C4-4921-96A1-4D70CB7CE744} = {5817A848-0B04-4035-9F7E-B8621B61CBDD} + {0C1B038F-F5CD-4E3C-B9D7-040F020BA44C} = {5817A848-0B04-4035-9F7E-B8621B61CBDD} + {73100F0D-C0BB-4F16-8FC2-FA3FA8ACD424} = {2ACC7FFA-238F-44FD-93CB-4D9B17D8C4BA} + {806499EB-C2CC-4E85-BC19-613F3DE5E0C3} = {9AD757F5-E57A-459D-A0A7-E0675E045B84} + {90B727DD-4C7B-4462-950F-61842A87DE8A} = {806499EB-C2CC-4E85-BC19-613F3DE5E0C3} + {D51AD52D-C4C6-445A-BD0F-884BE5C1C526} = {806499EB-C2CC-4E85-BC19-613F3DE5E0C3} + {F2379E0F-524F-47BC-877C-0428E4C836D4} = {D5B986A3-7FC9-437E-8030-349AA4698DFD} + {F905B72C-4DF7-408B-8B2B-50F9B8246A5E} = {75A2CD30-BB85-4CA6-AC95-86A8A538A690} + {E4CB9988-7348-4D55-A08E-85907732F8DA} = {0F9BA970-11B1-4ACA-AF41-1021AFC0F29C} + {551B2209-4298-4D60-B55C-79077B8BC244} = {0F9BA970-11B1-4ACA-AF41-1021AFC0F29C} + {4A3BAF64-E9D9-4036-9FDA-8B326C382667} = {15878D2D-B0F1-4EE9-875D-4A643DB0C842} + {F83AC93C-9694-4A01-B9CB-7AA8E514B01F} = {4A3BAF64-E9D9-4036-9FDA-8B326C382667} + {08F720FF-7530-43BF-A252-8946927669E3} = {4A3BAF64-E9D9-4036-9FDA-8B326C382667} + {3E1D0DED-6B13-42C8-AA15-2EDFD8ECE80C} = {08F720FF-7530-43BF-A252-8946927669E3} + {BDFA84D6-6C6B-44C9-ABC5-563CFD0C4DB5} = {F83AC93C-9694-4A01-B9CB-7AA8E514B01F} + {D816B818-F58F-4738-93AE-924EFAB7A07F} = {75A2CD30-BB85-4CA6-AC95-86A8A538A690} + {AE2513CB-4E5E-4E5C-8237-88954D4C9433} = {75A2CD30-BB85-4CA6-AC95-86A8A538A690} + {B5F94CCB-5868-43BD-89B5-B66C97C3A741} = {75A2CD30-BB85-4CA6-AC95-86A8A538A690} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {650AE971-2F29-46A8-822C-FB4FCDC6A9A0} + EndGlobalSection +EndGlobal diff --git a/src/Controls/samples/Controls.Sample.iOS/Controls.Sample.iOS.csproj b/src/Controls/samples/Controls.Sample.iOS/Controls.Sample.iOS.csproj index 3369fef720b3..9d2c1bb42bd8 100644 --- a/src/Controls/samples/Controls.Sample.iOS/Controls.Sample.iOS.csproj +++ b/src/Controls/samples/Controls.Sample.iOS/Controls.Sample.iOS.csproj @@ -70,9 +70,6 @@ - - - diff --git a/src/Controls/samples/Controls.Sample/Controls.Sample.csproj b/src/Controls/samples/Controls.Sample/Controls.Sample.csproj index ed0ef7d6176f..7c40fe15a6aa 100644 --- a/src/Controls/samples/Controls.Sample/Controls.Sample.csproj +++ b/src/Controls/samples/Controls.Sample/Controls.Sample.csproj @@ -1,7 +1,7 @@ - MonoAndroid10.0;Xamarin.iOS10 + $(NonNet6Platforms) diff --git a/src/Controls/samples/Controls.Sample/Pages/MainPage.cs b/src/Controls/samples/Controls.Sample/Pages/MainPage.cs index dc85875df5a3..28e09a530b1e 100644 --- a/src/Controls/samples/Controls.Sample/Pages/MainPage.cs +++ b/src/Controls/samples/Controls.Sample/Pages/MainPage.cs @@ -20,6 +20,7 @@ public class MainPage : BasePage public MainPage(IServiceProvider services, MainPageViewModel viewModel) { + BackgroundColor = Colors.White; ToolbarItems.Add(new ToolbarItem() { Text = "Page" diff --git a/src/Controls/samples/Controls.Sample/Pages/SemanticsPage.xaml b/src/Controls/samples/Controls.Sample/Pages/SemanticsPage.xaml index e720e8260783..713349e075e7 100644 --- a/src/Controls/samples/Controls.Sample/Pages/SemanticsPage.xaml +++ b/src/Controls/samples/Controls.Sample/Pages/SemanticsPage.xaml @@ -1,7 +1,8 @@  + x:Class="Maui.Controls.Sample.Pages.SemanticsPage" + BackgroundColor="White"> diff --git a/src/Controls/src/Core/ArrayExtensions.cs b/src/Controls/src/Core/ArrayExtensions.cs new file mode 100644 index 000000000000..c3433082f1a7 --- /dev/null +++ b/src/Controls/src/Core/ArrayExtensions.cs @@ -0,0 +1,39 @@ +using System; +using Microsoft.Maui.Controls.Internals; + +namespace Microsoft.Maui.Controls.Platform +{ + internal static class ArrayExtensions + { + public static T[] Insert(this T[] self, int index, T item) + { + var result = new T[self.Length + 1]; + if (index > 0) + Array.Copy(self, result, index); + + result[index] = item; + + if (index < self.Length) + Array.Copy(self, index, result, index + 1, result.Length - index - 1); + + return result; + } + + public static T[] Remove(this T[] self, T item) + { + return self.RemoveAt(self.IndexOf(item)); + } + + public static T[] RemoveAt(this T[] self, int index) + { + var result = new T[self.Length - 1]; + if (index > 0) + Array.Copy(self, result, index); + + if (index < self.Length - 1) + Array.Copy(self, index + 1, result, index, self.Length - index - 1); + + return result; + } + } +} \ No newline at end of file diff --git a/src/Controls/src/Core/Controls.Core.csproj b/src/Controls/src/Core/Controls.Core.csproj index 089ad35188b2..98ca65bb0b44 100644 --- a/src/Controls/src/Core/Controls.Core.csproj +++ b/src/Controls/src/Core/Controls.Core.csproj @@ -1,6 +1,6 @@ - netstandard2.1;netstandard2.0;$(AndroidTargetFrameworks) + netstandard2.1;netstandard2.0;$(NonNet6Platforms) Microsoft.Maui.Controls diff --git a/src/Controls/src/Core/Handlers/NavigationPage/NavigationPageHandler.cs b/src/Controls/src/Core/Handlers/NavigationPage/NavigationPageHandler.cs index 2705cf7de7b0..e8eb2a4b6942 100644 --- a/src/Controls/src/Core/Handlers/NavigationPage/NavigationPageHandler.cs +++ b/src/Controls/src/Core/Handlers/NavigationPage/NavigationPageHandler.cs @@ -25,7 +25,7 @@ public static PropertyMapper NavigationPa [nameof(ToolbarPlacementProperty.PropertyName)] = MapToolbarPlacement, [nameof(ToolbarDynamicOverflowEnabledProperty.PropertyName)] = MapToolbarDynamicOverflowEnabled, #endif - }; + }; public NavigationPageHandler() : base(NavigationPageMapper) { diff --git a/src/Controls/src/Core/Handlers/NavigationPage/NavigationPageHandler.iOS.cs b/src/Controls/src/Core/Handlers/NavigationPage/NavigationPageHandler.iOS.cs index 143b3bdef8b1..17ca4d2df4c0 100644 --- a/src/Controls/src/Core/Handlers/NavigationPage/NavigationPageHandler.iOS.cs +++ b/src/Controls/src/Core/Handlers/NavigationPage/NavigationPageHandler.iOS.cs @@ -1,17 +1,31 @@ -using System; +#nullable enable + +using System; using System.Collections.Generic; +using System.Linq; using System.Text; +using System.Threading.Tasks; +using Microsoft.Maui.Controls.Internals; +using Microsoft.Maui.Controls.Platform; using Microsoft.Maui.Handlers; using UIKit; namespace Microsoft.Maui.Controls.Handlers { public partial class NavigationPageHandler : - ViewHandler + ViewHandler, INativeViewHandler { + ControlsNavigationController _controlsNavigationController; + UIViewController? INativeViewHandler.ViewController => _controlsNavigationController; + protected override UIView CreateNativeView() { - throw new NotImplementedException(); + _controlsNavigationController = new ControlsNavigationController(this); + + if (_controlsNavigationController.View == null) + throw new NullReferenceException("ControlsNavigationController.View is null"); + + return _controlsNavigationController.View; } public static void MapPadding(NavigationPageHandler handler, NavigationPage view) { } @@ -23,5 +37,58 @@ public static void MapNavigationBarBackground(NavigationPageHandler handler, Nav public static void MapTitleIcon(NavigationPageHandler handler, NavigationPage view) { } public static void MapTitleView(NavigationPageHandler handler, NavigationPage view) { } + + + protected override void ConnectHandler(UIView nativeView) + { + base.ConnectHandler(nativeView); + + if (VirtualView == null) + return; + + VirtualView.PushRequested += OnPushRequested; + VirtualView.PopRequested += OnPopRequested; + _controlsNavigationController.LoadPages(this.MauiContext); + + //VirtualView.PopToRootRequested += OnPopToRootRequested; + //VirtualView.RemovePageRequested += OnRemovedPageRequested; + //VirtualView.InsertPageBeforeRequested += OnInsertPageBeforeRequested; + } + + protected override void DisconnectHandler(UIView nativeView) + { + base.DisconnectHandler(nativeView); + + if (VirtualView == null) + return; + + VirtualView.PushRequested -= OnPushRequested; + VirtualView.PopRequested -= OnPopRequested; + //VirtualView.PopToRootRequested -= OnPopToRootRequested; + //VirtualView.RemovePageRequested -= OnRemovedPageRequested; + //VirtualView.InsertPageBeforeRequested -= OnInsertPageBeforeRequested; + } + + void OnPopRequested(object? sender, NavigationRequestedEventArgs e) + { + _controlsNavigationController? + .OnPopRequestedAsync(e) + .FireAndForget((exc) => Log.Warning(nameof(NavigationPage), $"{exc}")); + } + + void OnPushRequested(object? sender, NavigationRequestedEventArgs e) + { + _controlsNavigationController? + .OnPushRequested(e, this.MauiContext); + } + + internal void SendPopping(Task popTask) + { + if (VirtualView == null) + return; + + (VirtualView as INavigationPageController)?.PopAsyncInner(false, true) + .FireAndForget((exc) => Log.Warning(nameof(NavigationPage), $"{exc}")); + } } } diff --git a/src/Controls/src/Core/NavigationPage.cs b/src/Controls/src/Core/NavigationPage.cs index a2d18a69d69a..774bd6817bb6 100644 --- a/src/Controls/src/Core/NavigationPage.cs +++ b/src/Controls/src/Core/NavigationPage.cs @@ -176,7 +176,7 @@ public async Task PopAsync(bool animated) else CurrentNavigationTask = tcs.Task; - var result = await PopAsyncInner(animated, false); + var result = await (this as INavigationPageController).PopAsyncInner(animated, false); tcs.SetResult(true); return result; } @@ -291,8 +291,7 @@ protected override bool OnBackButtonPressed() [EditorBrowsable(EditorBrowsableState.Never)] public event EventHandler InsertPageBeforeRequested; - [EditorBrowsable(EditorBrowsableState.Never)] - public async Task PopAsyncInner(bool animated, bool fast) + async Task INavigationPageController.PopAsyncInner(bool animated, bool fast) { if (StackDepth == 1) { diff --git a/src/Controls/src/Core/Platform/iOS/ControlsNavigationController.cs b/src/Controls/src/Core/Platform/iOS/ControlsNavigationController.cs new file mode 100644 index 000000000000..53c8b45fcd65 --- /dev/null +++ b/src/Controls/src/Core/Platform/iOS/ControlsNavigationController.cs @@ -0,0 +1,242 @@ +//#nullable enable +using System; +using UIKit; +using Microsoft.Maui.Controls.Handlers; +using Foundation; +using System.Threading.Tasks; +using ObjCRuntime; +using System.Collections.Generic; +using Microsoft.Maui.Handlers; +using System.Linq; +using Microsoft.Maui.Controls.Internals; + +namespace Microsoft.Maui.Controls.Platform +{ + public class ControlsNavigationController : UINavigationController + { + readonly NavigationPageHandler _handler; + Dictionary> _completionTasks = + new Dictionary>(); + TaskCompletionSource _popCompletionTask; + + // This holds the view controllers for each page + readonly Dictionary _trackers = + new Dictionary(); + + IReadOnlyList NavigationStack => _handler.VirtualView.Navigation.NavigationStack; + + public ControlsNavigationController(NavigationPageHandler handler) : base() + { + Delegate = new NavDelegate(this); + _handler = handler; + } + + public ControlsNavigationController(NavigationPageHandler handler, Type navigationBarType, Type toolbarType) + : base(navigationBarType, toolbarType) + { + Delegate = new NavDelegate(this); + _handler = handler; + } + + [Export("navigationBar:shouldPopItem:")] + [Microsoft.Maui.Controls.Internals.Preserve(Conditional = true)] + public bool ShouldPopItem(UINavigationBar navigationBar, UINavigationItem item) => + SendPop(); + + internal bool SendPop() + { + // this means the pop is already done, nothing we can do + if (ViewControllers.Length < NavigationBar.Items.Length) + return true; + + //foreach (var tracker in _trackers) + //{ + // if (tracker.Value.ViewController == TopViewController) + // { + // var behavior = Shell.GetBackButtonBehavior(tracker.Value.Page); + // var command = behavior.GetPropertyIfSet(BackButtonBehavior.CommandProperty, null); + // var commandParameter = behavior.GetPropertyIfSet(BackButtonBehavior.CommandParameterProperty, null); + + // if (command != null) + // { + // if (command.CanExecute(commandParameter)) + // { + // command.Execute(commandParameter); + // } + + // return false; + // } + + // break; + // } + //} + + //bool allowPop = ShouldPop(); + bool allowPop = true; + + if (allowPop) + { + // Do not remove, wonky behavior on some versions of iOS if you dont dispatch + CoreFoundation.DispatchQueue.MainQueue.DispatchAsync(() => + { + _popCompletionTask = new TaskCompletionSource(); + SendPoppedOnCompletion(_popCompletionTask.Task); + PopViewController(true); + }); + } + else + { + for (int i = 0; i < NavigationBar.Subviews.Length; i++) + { + var child = NavigationBar.Subviews[i]; + if (child.Alpha != 1) + UIView.Animate(.2f, () => child.Alpha = 1); + } + } + + return false; + } + + + async void SendPoppedOnCompletion(Task popTask) + { + if (popTask == null) + { + throw new ArgumentNullException(nameof(popTask)); + } + + var poppedPage = NavigationStack[NavigationStack.Count - 1]; + _handler.SendPopping(popTask); + + await popTask; + + DisposePage(poppedPage); + } + + void DisposePage(IPage page, bool calledFromDispose = false) + { + if (_trackers.TryGetValue(page, out var tracker)) + { + if (!calledFromDispose && tracker.ViewController != null && ViewControllers.Contains(tracker.ViewController)) + ViewControllers = ViewControllers.Remove(_trackers[page].ViewController); + + _trackers.Remove(page); + } + } + + internal async Task OnPopRequestedAsync(NavigationRequestedEventArgs e) + { + var page = e.Page; + var animated = e.Animated; + + _popCompletionTask = new TaskCompletionSource(); + e.Task = _popCompletionTask.Task; + + PopViewController(animated); + + await _popCompletionTask.Task; + + DisposePage(page); + } + + internal void LoadPages(IMauiContext mauiContext) + { + foreach (var page in NavigationStack) + PushPage(page, false, mauiContext); + } + + internal void OnPushRequested(NavigationRequestedEventArgs e, IMauiContext mauiContext) + { + var page = e.Page; + var animated = e.Animated; + + var taskSource = new TaskCompletionSource(); + PushPage(page, animated, mauiContext, taskSource); + + e.Task = taskSource.Task; + } + + + void PushPage(IPage page, bool animated, IMauiContext mauiContext, TaskCompletionSource completionSource = null) + { + var viewController = page.ToUIViewController(mauiContext); + var handler = (INativeViewHandler)page.Handler; + + _trackers[page] = handler; + + if (completionSource != null) + _completionTasks[viewController] = completionSource; + + PushViewController(viewController, animated); + } + + + class NavDelegate : UINavigationControllerDelegate + { + readonly ControlsNavigationController _self; + + public NavDelegate(ControlsNavigationController renderer) + { + _self = renderer; + } + + // This is currently working around a Mono Interpreter bug + // if you remove this code please verify that hot restart still works + // https://github.com/xamarin/Microsoft.Maui.Controls.Compatibility/issues/10519 + [Export("navigationController:animationControllerForOperation:fromViewController:toViewController:")] + [Foundation.Preserve(Conditional = true)] + public new IUIViewControllerAnimatedTransitioning GetAnimationControllerForOperation(UINavigationController navigationController, UINavigationControllerOperation operation, UIViewController fromViewController, UIViewController toViewController) + { + return null; + } + + public override void DidShowViewController(UINavigationController navigationController, [Transient] UIViewController viewController, bool animated) + { + var tasks = _self._completionTasks; + var popTask = _self._popCompletionTask; + + if (tasks.TryGetValue(viewController, out var source)) + { + source.TrySetResult(true); + tasks.Remove(viewController); + } + else if (popTask != null) + { + popTask.TrySetResult(true); + } + } + + public override void WillShowViewController(UINavigationController navigationController, [Transient] UIViewController viewController, bool animated) + { + //var element = _self.ElementForViewController(viewController); + + //bool navBarVisible; + //if (element is ShellSection) + // navBarVisible = _self._renderer.ShowNavBar; + //else + // navBarVisible = Shell.GetNavBarIsVisible(element); + + // TODO Make this work + bool navBarVisible = true; + + navigationController.SetNavigationBarHidden(!navBarVisible, true); + + var coordinator = viewController.GetTransitionCoordinator(); + if (coordinator != null && coordinator.IsInteractive) + { + // handle swipe to dismiss gesture + coordinator.NotifyWhenInteractionChanges(OnInteractionChanged); + } + } + + void OnInteractionChanged(IUIViewControllerTransitionCoordinatorContext context) + { + if (!context.IsCancelled) + { + _self._popCompletionTask = new TaskCompletionSource(); + _self.SendPoppedOnCompletion(_self._popCompletionTask.Task); + } + } + } + } +} diff --git a/src/Core/src/Core.csproj b/src/Core/src/Core.csproj index 6a8b0b942dde..4c757cb3caa3 100644 --- a/src/Core/src/Core.csproj +++ b/src/Core/src/Core.csproj @@ -1,6 +1,6 @@ - netstandard2.1;netstandard2.0;Xamarin.iOS10;MonoAndroid10.0 + netstandard2.1;netstandard2.0;$(NonNet6Platforms) Microsoft.Maui Microsoft.Maui enable diff --git a/src/Core/src/Core/IPage.cs b/src/Core/src/Core/IPage.cs index 25be3b70d5ed..209940fa97d9 100644 --- a/src/Core/src/Core/IPage.cs +++ b/src/Core/src/Core/IPage.cs @@ -9,5 +9,10 @@ public interface IPage : IView /// Gets the view that contains the content of the Page. /// public IView Content { get; } + + /// + /// Gets the title of the Page. + /// + public string Title { get; } } } \ No newline at end of file diff --git a/src/Core/src/Handlers/IViewHandler.iOS.cs b/src/Core/src/Handlers/IViewHandler.iOS.cs index c24aefd133c1..cbfba9aac652 100644 --- a/src/Core/src/Handlers/IViewHandler.iOS.cs +++ b/src/Core/src/Handlers/IViewHandler.iOS.cs @@ -5,5 +5,6 @@ namespace Microsoft.Maui public interface INativeViewHandler : IViewHandler { new UIView? NativeView { get; } + UIViewController? ViewController { get; } } } \ No newline at end of file diff --git a/src/Core/src/Handlers/Page/PageHandler.Android.cs b/src/Core/src/Handlers/Page/PageHandler.Android.cs index 5ae29e2d1b88..d13adc9db02d 100644 --- a/src/Core/src/Handlers/Page/PageHandler.Android.cs +++ b/src/Core/src/Handlers/Page/PageHandler.Android.cs @@ -35,5 +35,9 @@ public override void SetVirtualView(IView view) //var wrap = ViewGroup.LayoutParams.WrapContent; NativeView.AddView(VirtualView.Content.ToNative(MauiContext)); // , new ViewGroup.LayoutParams(wrap, wrap)); } + + public static void MapTitle(PageHandler handler, IPage page) + { + } } } diff --git a/src/Core/src/Handlers/Page/PageHandler.Mac.cs b/src/Core/src/Handlers/Page/PageHandler.Mac.cs index 86ca9de6d9d5..65c3ca94d546 100644 --- a/src/Core/src/Handlers/Page/PageHandler.Mac.cs +++ b/src/Core/src/Handlers/Page/PageHandler.Mac.cs @@ -10,5 +10,9 @@ protected override NSView CreateView() { return new NSView(); } + + public static void MapTitle(PageHandler handler, IPage page) + { + } } } diff --git a/src/Core/src/Handlers/Page/PageHandler.Standard.cs b/src/Core/src/Handlers/Page/PageHandler.Standard.cs index 7395d88db589..14d06e3b9a3b 100644 --- a/src/Core/src/Handlers/Page/PageHandler.Standard.cs +++ b/src/Core/src/Handlers/Page/PageHandler.Standard.cs @@ -5,5 +5,9 @@ namespace Microsoft.Maui.Handlers public partial class PageHandler : ViewHandler { protected override object CreateNativeView() => throw new NotImplementedException(); + + public static void MapTitle(PageHandler handler, IPage page) + { + } } } diff --git a/src/Core/src/Handlers/Page/PageHandler.Windows.cs b/src/Core/src/Handlers/Page/PageHandler.Windows.cs index 6a45ce7068a1..855795a7152f 100644 --- a/src/Core/src/Handlers/Page/PageHandler.Windows.cs +++ b/src/Core/src/Handlers/Page/PageHandler.Windows.cs @@ -36,5 +36,9 @@ protected override PagePanel CreateNativeView() return view; } + + public static void MapTitle(PageHandler handler, IPage page) + { + } } } diff --git a/src/Core/src/Handlers/Page/PageHandler.cs b/src/Core/src/Handlers/Page/PageHandler.cs index 785bd1efd277..30da8a67915f 100644 --- a/src/Core/src/Handlers/Page/PageHandler.cs +++ b/src/Core/src/Handlers/Page/PageHandler.cs @@ -7,16 +7,17 @@ namespace Microsoft.Maui.Handlers { public partial class PageHandler : IViewHandler { - public static PropertyMapper LayoutMapper = new PropertyMapper(ViewHandler.ViewMapper) + public static PropertyMapper PageMapper = new PropertyMapper(ViewHandler.ViewMapper) { + [nameof(IPage.Title)] = MapTitle, }; - public PageHandler() : base(LayoutMapper) + public PageHandler() : base(PageMapper) { } - public PageHandler(PropertyMapper? mapper = null) : base(mapper ?? LayoutMapper) + public PageHandler(PropertyMapper? mapper = null) : base(mapper ?? PageMapper) { } diff --git a/src/Core/src/Handlers/Page/PageHandler.iOS.cs b/src/Core/src/Handlers/Page/PageHandler.iOS.cs index c9c0596d4700..f7cd704ff39b 100644 --- a/src/Core/src/Handlers/Page/PageHandler.iOS.cs +++ b/src/Core/src/Handlers/Page/PageHandler.iOS.cs @@ -3,27 +3,29 @@ #if __IOS__ || IOS || MACCATALYST using NativeView = UIKit.UIView; +using UIKit; #else using NativeView = AppKit.NSView; #endif namespace Microsoft.Maui.Handlers { - public partial class PageHandler : ViewHandler + public partial class PageHandler : ViewHandler, INativeViewHandler { + PageViewController? _pageViewController; + UIViewController? INativeViewHandler.ViewController => _pageViewController; + protected override PageView CreateNativeView() { - if (VirtualView == null) - { - throw new InvalidOperationException($"{nameof(VirtualView)} must be set to create a LayoutView"); - } + _ = VirtualView ?? throw new InvalidOperationException($"{nameof(VirtualView)} must be set to create a LayoutView"); + _ = MauiContext ?? throw new InvalidOperationException($"{nameof(MauiContext)} cannot be null"); + + _pageViewController = new PageViewController(VirtualView, this.MauiContext); - var view = new PageView - { - CrossPlatformArrange = VirtualView.Arrange, - }; + if (_pageViewController.CurrentNativeView is PageView pv) + return pv; - return view; + throw new InvalidOperationException($"PageViewController.View must be a PageView"); } public override void SetVirtualView(IView view) @@ -41,5 +43,11 @@ public override void SetVirtualView(IView view) NativeView.CrossPlatformArrange = VirtualView.Arrange; NativeView.AddSubview(VirtualView.Content.ToNative(MauiContext)); } + + public static void MapTitle(PageHandler handler, IPage page) + { + if(handler._pageViewController != null) + handler._pageViewController.Title = page.Title; + } } } diff --git a/src/Core/src/Handlers/View/ViewHandlerOfT.MaciOS.cs b/src/Core/src/Handlers/View/ViewHandlerOfT.MaciOS.cs index d29e1a11a304..22576bf68c27 100644 --- a/src/Core/src/Handlers/View/ViewHandlerOfT.MaciOS.cs +++ b/src/Core/src/Handlers/View/ViewHandlerOfT.MaciOS.cs @@ -12,6 +12,7 @@ namespace Microsoft.Maui.Handlers public partial class ViewHandler : INativeViewHandler { UIView? INativeViewHandler.NativeView => (UIView?)base.NativeView; + UIViewController? INativeViewHandler.ViewController => null; public override void SetFrame(Rectangle rect) { diff --git a/src/Core/src/Platform/iOS/ContainerViewController.cs b/src/Core/src/Platform/iOS/ContainerViewController.cs index edbee6266ceb..eb08014671ff 100644 --- a/src/Core/src/Platform/iOS/ContainerViewController.cs +++ b/src/Core/src/Platform/iOS/ContainerViewController.cs @@ -11,9 +11,19 @@ public IView? CurrentView get => _view; set => SetView(value); } + + public UIView? CurrentNativeView + => _pendingLoadedView ?? currentNativeView; + public IMauiContext? Context { get; set; } UIView? currentNativeView; + + // The handler needs this view before LoadView is called on the controller + // So this is used to create the first view that the handler will use + // without forcing the VC to call LoadView + UIView? _pendingLoadedView; + void SetView(IView? view, bool forceRefresh = false) { if (view == _view && !forceRefresh) @@ -28,18 +38,37 @@ void SetView(IView? view, bool forceRefresh = false) currentNativeView?.RemoveFromSuperview(); currentNativeView = null; if (IsViewLoaded && _view != null) - { - _ = Context ?? throw new ArgumentNullException(nameof(Context)); - View!.AddSubview(currentNativeView = _view.ToNative(Context)); - } + LoadNativeView(_view); + } + + internal UIView LoadFirstView(IView view) + { + _pendingLoadedView = CreateNativeView(view); + return _pendingLoadedView; } public override void LoadView() { base.LoadView(); if (_view != null && Context != null) - View!.AddSubview(currentNativeView = _view.ToNative(Context)); + LoadNativeView(_view); } + + void LoadNativeView(IView view) + { + currentNativeView = _pendingLoadedView ?? CreateNativeView(view); + _pendingLoadedView = null; + View!.AddSubview(currentNativeView); + } + + protected virtual UIView CreateNativeView(IView view) + { + _ = Context ?? throw new ArgumentNullException(nameof(Context)); + _ = _view ?? throw new ArgumentNullException(nameof(view)); + + return _view.ToNative(Context); + } + public override void ViewDidLayoutSubviews() { base.ViewDidLayoutSubviews(); diff --git a/src/Core/src/Platform/iOS/HandlerExtensions.cs b/src/Core/src/Platform/iOS/HandlerExtensions.cs index 55b26710ecce..a519d346bd47 100644 --- a/src/Core/src/Platform/iOS/HandlerExtensions.cs +++ b/src/Core/src/Platform/iOS/HandlerExtensions.cs @@ -6,7 +6,14 @@ namespace Microsoft.Maui { public static class HandlerExtensions { - public static UIViewController ToUIViewController(this IView view, IMauiContext context) => new ContainerViewController { CurrentView = view, Context = context }; + public static UIViewController ToUIViewController(this IView view, IMauiContext context) + { + var nativeView = view.ToNative(context); + if (view?.Handler is INativeViewHandler nvh && nvh.ViewController != null) + return nvh.ViewController; + + return new ContainerViewController { CurrentView = view, Context = context }; + } public static UIView ToNative(this IView view, IMauiContext context) { diff --git a/src/Core/src/Platform/iOS/LayoutView.cs b/src/Core/src/Platform/iOS/LayoutView.cs index 88107faf8651..de72af51474b 100644 --- a/src/Core/src/Platform/iOS/LayoutView.cs +++ b/src/Core/src/Platform/iOS/LayoutView.cs @@ -57,4 +57,23 @@ public override void LayoutSubviews() internal Func? CrossPlatformArrange { get; set; } } + + public class PageViewController : ContainerViewController + { + public PageViewController(IPage page,IMauiContext mauiContext) + { + CurrentView = page; + Context = mauiContext; + LoadFirstView(page); + } + + protected override UIView CreateNativeView(IView view) + { + return new PageView + { + CrossPlatformArrange = view.Arrange, + }; + } + } + } diff --git a/src/Core/src/Platform/iOS/MauiUIApplicationDelegate.cs b/src/Core/src/Platform/iOS/MauiUIApplicationDelegate.cs index 0bf265cdad88..856b5382302c 100644 --- a/src/Core/src/Platform/iOS/MauiUIApplicationDelegate.cs +++ b/src/Core/src/Platform/iOS/MauiUIApplicationDelegate.cs @@ -33,7 +33,7 @@ public override bool FinishedLaunching(UIApplication application, NSDictionary l Window = new UIWindow { - RootViewController = page.ToUIViewController(mauiContext), + RootViewController = window.View.ToUIViewController(mauiContext) }; Window.MakeKeyAndVisible(); diff --git a/src/Essentials/src/Essentials.csproj b/src/Essentials/src/Essentials.csproj index ba1943fe2aed..bb43e548f268 100644 --- a/src/Essentials/src/Essentials.csproj +++ b/src/Essentials/src/Essentials.csproj @@ -1,7 +1,6 @@  - netstandard2.0;netstandard2.1;Xamarin.iOS10;MonoAndroid90;MonoAndroid10.0;tizen40;Xamarin.Mac20; - $(TargetFrameworks);uap10.0.16299; + $(NonNet6EssentialsPlatforms) Microsoft.Maui.Essentials Microsoft.Maui.Essentials false diff --git a/src/Essentials/test/DeviceTests.Shared/Essentials.DeviceTests.Shared.csproj b/src/Essentials/test/DeviceTests.Shared/Essentials.DeviceTests.Shared.csproj index 32ee56b40752..0c14225a1a0f 100644 --- a/src/Essentials/test/DeviceTests.Shared/Essentials.DeviceTests.Shared.csproj +++ b/src/Essentials/test/DeviceTests.Shared/Essentials.DeviceTests.Shared.csproj @@ -2,6 +2,8 @@ Xamarin.iOS10;MonoAndroid10.0;uap10.0.16299 Xamarin.iOS10;MonoAndroid10.0; + MonoAndroid10.0 + Xamarin.iOS10 EssentialsDeviceTestsShared Microsoft.Maui.Essentials.DeviceTests.Shared $(AssemblyName) ($(TargetFramework)) diff --git a/src/TestUtils/TestUtils.DeviceTests/src/TestUtils.DeviceTests.csproj b/src/TestUtils/TestUtils.DeviceTests/src/TestUtils.DeviceTests.csproj index d0c20d065177..ed56da091ba8 100644 --- a/src/TestUtils/TestUtils.DeviceTests/src/TestUtils.DeviceTests.csproj +++ b/src/TestUtils/TestUtils.DeviceTests/src/TestUtils.DeviceTests.csproj @@ -1,8 +1,8 @@  - netstandard2.0;netstandard2.1;Xamarin.iOS10;MonoAndroid10.0; - $(TargetFrameworks);uap10.0.16299 + netstandard2.0;netstandard2.1;$(NonNet6Platforms) + $(TargetFrameworks);uap10.0.16299 Microsoft.Maui.TestUtils Microsoft.Maui.TestUtils.DeviceTests