From cbad14a10a220e648f06c6d7dca69a51cbc42fcf Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Mon, 17 Aug 2020 16:46:51 -0500 Subject: [PATCH] Began transition to SDK-style projects --- BSIPA.sln | 362 ++++++++--------------- IPA.Injector/IPA.Injector.csproj | 258 +++++++--------- IPA.Injector/IPA.Injector_old.csproj | 152 ++++++++++ IPA.Loader/IPA.Loader.csproj | 196 ++---------- IPA.Loader/IPA.Loader_old.csproj | 209 +++++++++++++ IPA.Loader/Thumbs.db | Bin 22528 -> 0 bytes IPA.Loader/Utilities/Async/Coroutines.cs | 10 +- IPA.Loader/Utilities/CriticalSection.cs | 360 +++++++++++----------- Net3-Proxy/Net3-Proxy.csproj | 69 +---- Net3-Proxy/Net3-Proxy_old.csproj | 66 +++++ 10 files changed, 886 insertions(+), 796 deletions(-) create mode 100644 IPA.Injector/IPA.Injector_old.csproj create mode 100644 IPA.Loader/IPA.Loader_old.csproj delete mode 100644 IPA.Loader/Thumbs.db create mode 100644 Net3-Proxy/Net3-Proxy_old.csproj diff --git a/BSIPA.sln b/BSIPA.sln index 04b929ad..69a07b7b 100644 --- a/BSIPA.sln +++ b/BSIPA.sln @@ -6,17 +6,7 @@ MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IPA", "IPA\IPA.csproj", "{14092533-98BB-40A4-9AFC-27BB75672A70}" ProjectSection(ProjectDependencies) = postProject {5F33B310-DC8D-4C0D-877E-BAC3908DE10F} = {5F33B310-DC8D-4C0D-877E-BAC3908DE10F} - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7} = {2A1AF16B-27F1-46E0-9A95-181516BC1CB7} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IPA.Loader", "IPA.Loader\IPA.Loader.csproj", "{5AD344F0-01A0-4CA8-92E5-9D095737744D}" - ProjectSection(ProjectDependencies) = postProject - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F} = {5F33B310-DC8D-4C0D-877E-BAC3908DE10F} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IPA.Injector", "IPA.Injector\IPA.Injector.csproj", "{2A1AF16B-27F1-46E0-9A95-181516BC1CB7}" - ProjectSection(ProjectDependencies) = postProject - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F} = {5F33B310-DC8D-4C0D-877E-BAC3908DE10F} + {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C} = {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "proxy", "Doorstop\Proxy\Proxy.vcxproj", "{88609E16-731F-46C9-8139-6B1A7A83240D}" @@ -40,235 +30,141 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BSIPA-Meta", "BSIPA-Meta\BS ProjectSection(ProjectDependencies) = postProject {88609E16-731F-46C9-8139-6B1A7A83240D} = {88609E16-731F-46C9-8139-6B1A7A83240D} {14092533-98BB-40A4-9AFC-27BB75672A70} = {14092533-98BB-40A4-9AFC-27BB75672A70} - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7} = {2A1AF16B-27F1-46E0-9A95-181516BC1CB7} + {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C} = {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C} + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IPA.Injector", "IPA.Injector\IPA.Injector.csproj", "{10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}" + ProjectSection(ProjectDependencies) = postProject + {5F33B310-DC8D-4C0D-877E-BAC3908DE10F} = {5F33B310-DC8D-4C0D-877E-BAC3908DE10F} + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IPA.Loader", "IPA.Loader\IPA.Loader.csproj", "{BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}" + ProjectSection(ProjectDependencies) = postProject + {5F33B310-DC8D-4C0D-877E-BAC3908DE10F} = {5F33B310-DC8D-4C0D-877E-BAC3908DE10F} EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Net3-Proxy", "Net3-Proxy\Net3-Proxy.csproj", "{642F52DA-90F9-40E3-8784-6964F36752FB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Net3-Proxy", "Net3-Proxy\Net3-Proxy.csproj", "{0DEDB099-9A26-4069-A4C1-A76CEB16283B}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64-Net3 = Debug|x64-Net3 - Debug|x64-Net4 = Debug|x64-Net4 - Debug|x86-Net3 = Debug|x86-Net3 - Debug|x86-Net4 = Debug|x86-Net4 - Release|x64-Net3 = Release|x64-Net3 - Release|x64-Net4 = Release|x64-Net4 - Release|x86-Net3 = Release|x86-Net3 - Release|x86-Net4 = Release|x86-Net4 - Verbose_Release|x64-Net3 = Verbose_Release|x64-Net3 - Verbose_Release|x64-Net4 = Verbose_Release|x64-Net4 - Verbose_Release|x86-Net3 = Verbose_Release|x86-Net3 - Verbose_Release|x86-Net4 = Verbose_Release|x86-Net4 - Verbose|x64-Net3 = Verbose|x64-Net3 - Verbose|x64-Net4 = Verbose|x64-Net4 - Verbose|x86-Net3 = Verbose|x86-Net3 - Verbose|x86-Net4 = Verbose|x86-Net4 + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Verbose_Release|x64 = Verbose_Release|x64 + Verbose_Release|x86 = Verbose_Release|x86 + Verbose|x64 = Verbose|x64 + Verbose|x86 = Verbose|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|x64-Net3.ActiveCfg = Debug|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|x64-Net3.Build.0 = Debug|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|x64-Net4.ActiveCfg = Debug|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|x64-Net4.Build.0 = Debug|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|x86-Net3.ActiveCfg = Debug|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|x86-Net3.Build.0 = Debug|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|x86-Net4.ActiveCfg = Debug|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|x86-Net4.Build.0 = Debug|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|x64-Net3.ActiveCfg = Release|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|x64-Net3.Build.0 = Release|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|x64-Net4.ActiveCfg = Release|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|x64-Net4.Build.0 = Release|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|x86-Net3.ActiveCfg = Release|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|x86-Net3.Build.0 = Release|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|x86-Net4.ActiveCfg = Release|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|x86-Net4.Build.0 = Release|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|x64-Net3.ActiveCfg = Verbose_Release|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|x64-Net3.Build.0 = Verbose_Release|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|x64-Net4.ActiveCfg = Verbose_Release|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|x64-Net4.Build.0 = Verbose_Release|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|x86-Net3.ActiveCfg = Verbose_Release|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|x86-Net3.Build.0 = Verbose_Release|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|x86-Net4.ActiveCfg = Verbose_Release|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|x86-Net4.Build.0 = Verbose_Release|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|x64-Net3.ActiveCfg = Verbose|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|x64-Net3.Build.0 = Verbose|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|x64-Net4.ActiveCfg = Verbose|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|x64-Net4.Build.0 = Verbose|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|x86-Net3.ActiveCfg = Verbose|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|x86-Net3.Build.0 = Verbose|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|x86-Net4.ActiveCfg = Verbose|Any CPU - {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|x86-Net4.Build.0 = Verbose|Any CPU - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Debug|x64-Net3.ActiveCfg = Debug|Net3 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Debug|x64-Net3.Build.0 = Debug|Net3 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Debug|x64-Net4.ActiveCfg = Debug|Net4 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Debug|x64-Net4.Build.0 = Debug|Net4 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Debug|x86-Net3.ActiveCfg = Debug|Net3 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Debug|x86-Net3.Build.0 = Debug|Net3 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Debug|x86-Net4.ActiveCfg = Debug|Net4 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Debug|x86-Net4.Build.0 = Debug|Net4 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Release|x64-Net3.ActiveCfg = Release|Net3 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Release|x64-Net3.Build.0 = Release|Net3 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Release|x64-Net4.ActiveCfg = Release|Net4 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Release|x64-Net4.Build.0 = Release|Net4 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Release|x86-Net3.ActiveCfg = Release|Net3 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Release|x86-Net3.Build.0 = Release|Net3 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Release|x86-Net4.ActiveCfg = Release|Net4 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Release|x86-Net4.Build.0 = Release|Net4 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose_Release|x64-Net3.ActiveCfg = Release|Net3 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose_Release|x64-Net3.Build.0 = Release|Net3 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose_Release|x64-Net4.ActiveCfg = Release|Net4 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose_Release|x64-Net4.Build.0 = Release|Net4 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose_Release|x86-Net3.ActiveCfg = Release|Net3 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose_Release|x86-Net3.Build.0 = Release|Net3 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose_Release|x86-Net4.ActiveCfg = Release|Net4 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose_Release|x86-Net4.Build.0 = Release|Net4 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose|x64-Net3.ActiveCfg = Debug|Net3 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose|x64-Net3.Build.0 = Debug|Net3 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose|x64-Net4.ActiveCfg = Debug|Net4 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose|x64-Net4.Build.0 = Debug|Net4 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose|x86-Net3.ActiveCfg = Debug|Net3 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose|x86-Net3.Build.0 = Debug|Net3 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose|x86-Net4.ActiveCfg = Debug|Net4 - {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose|x86-Net4.Build.0 = Debug|Net4 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Debug|x64-Net3.ActiveCfg = Debug|Net3 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Debug|x64-Net3.Build.0 = Debug|Net3 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Debug|x64-Net4.ActiveCfg = Debug|Net4 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Debug|x64-Net4.Build.0 = Debug|Net4 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Debug|x86-Net3.ActiveCfg = Debug|Net3 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Debug|x86-Net3.Build.0 = Debug|Net3 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Debug|x86-Net4.ActiveCfg = Debug|Net4 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Debug|x86-Net4.Build.0 = Debug|Net4 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Release|x64-Net3.ActiveCfg = Release|Net3 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Release|x64-Net3.Build.0 = Release|Net3 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Release|x64-Net4.ActiveCfg = Release|Net4 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Release|x64-Net4.Build.0 = Release|Net4 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Release|x86-Net3.ActiveCfg = Release|Net3 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Release|x86-Net3.Build.0 = Release|Net3 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Release|x86-Net4.ActiveCfg = Release|Net4 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Release|x86-Net4.Build.0 = Release|Net4 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose_Release|x64-Net3.ActiveCfg = Release|Net3 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose_Release|x64-Net3.Build.0 = Release|Net3 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose_Release|x64-Net4.ActiveCfg = Release|Net4 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose_Release|x64-Net4.Build.0 = Release|Net4 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose_Release|x86-Net3.ActiveCfg = Release|Net3 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose_Release|x86-Net3.Build.0 = Release|Net3 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose_Release|x86-Net4.ActiveCfg = Release|Net4 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose_Release|x86-Net4.Build.0 = Release|Net4 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose|x64-Net3.ActiveCfg = Debug|Net3 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose|x64-Net3.Build.0 = Debug|Net3 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose|x64-Net4.ActiveCfg = Debug|Net4 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose|x64-Net4.Build.0 = Debug|Net4 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose|x86-Net3.ActiveCfg = Debug|Net3 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose|x86-Net3.Build.0 = Debug|Net3 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose|x86-Net4.ActiveCfg = Debug|Net4 - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose|x86-Net4.Build.0 = Debug|Net4 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|x64-Net3.ActiveCfg = Release|x64 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|x64-Net3.Build.0 = Release|x64 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|x64-Net4.ActiveCfg = Release|x64 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|x64-Net4.Build.0 = Release|x64 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|x86-Net3.ActiveCfg = Release|Win32 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|x86-Net3.Build.0 = Release|Win32 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|x86-Net4.ActiveCfg = Release|Win32 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|x86-Net4.Build.0 = Release|Win32 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Release|x64-Net3.ActiveCfg = Release|x64 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Release|x64-Net3.Build.0 = Release|x64 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Release|x64-Net4.ActiveCfg = Release|x64 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Release|x64-Net4.Build.0 = Release|x64 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Release|x86-Net3.ActiveCfg = Release|Win32 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Release|x86-Net3.Build.0 = Release|Win32 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Release|x86-Net4.ActiveCfg = Release|Win32 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Release|x86-Net4.Build.0 = Release|Win32 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|x64-Net3.ActiveCfg = Verbose_Release|x64 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|x64-Net3.Build.0 = Verbose_Release|x64 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|x64-Net4.ActiveCfg = Verbose_Release|x64 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|x64-Net4.Build.0 = Verbose_Release|x64 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|x86-Net3.ActiveCfg = Verbose_Release|Win32 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|x86-Net3.Build.0 = Verbose_Release|Win32 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|x86-Net4.ActiveCfg = Verbose_Release|Win32 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|x86-Net4.Build.0 = Verbose_Release|Win32 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|x64-Net3.ActiveCfg = Verbose_Release|x64 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|x64-Net3.Build.0 = Verbose_Release|x64 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|x64-Net4.ActiveCfg = Verbose_Release|x64 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|x64-Net4.Build.0 = Verbose_Release|x64 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|x86-Net3.ActiveCfg = Verbose_Release|Win32 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|x86-Net3.Build.0 = Verbose_Release|Win32 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|x86-Net4.ActiveCfg = Verbose_Release|Win32 - {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|x86-Net4.Build.0 = Verbose_Release|Win32 - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|x64-Net3.ActiveCfg = Debug|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|x64-Net4.ActiveCfg = Debug|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|x86-Net3.ActiveCfg = Debug|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|x86-Net4.ActiveCfg = Debug|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Release|x64-Net3.ActiveCfg = Release|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Release|x64-Net4.ActiveCfg = Release|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Release|x86-Net3.ActiveCfg = Release|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Release|x86-Net4.ActiveCfg = Release|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose_Release|x64-Net3.ActiveCfg = Release|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose_Release|x64-Net4.ActiveCfg = Release|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose_Release|x86-Net3.ActiveCfg = Release|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose_Release|x86-Net4.ActiveCfg = Release|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|x64-Net3.ActiveCfg = Debug|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|x64-Net3.Build.0 = Debug|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|x64-Net4.ActiveCfg = Debug|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|x64-Net4.Build.0 = Debug|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|x86-Net3.ActiveCfg = Debug|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|x86-Net3.Build.0 = Debug|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|x86-Net4.ActiveCfg = Debug|Any CPU - {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|x86-Net4.Build.0 = Debug|Any CPU - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Debug|x64-Net3.ActiveCfg = Debug|x64-Net3 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Debug|x64-Net3.Build.0 = Debug|x64-Net3 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Debug|x64-Net4.ActiveCfg = Debug|x64-Net4 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Debug|x64-Net4.Build.0 = Debug|x64-Net4 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Debug|x86-Net3.ActiveCfg = Debug|x86-Net3 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Debug|x86-Net3.Build.0 = Debug|x86-Net3 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Debug|x86-Net4.ActiveCfg = Debug|x86-Net4 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Debug|x86-Net4.Build.0 = Debug|x86-Net4 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Release|x64-Net3.ActiveCfg = Release|x64-Net3 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Release|x64-Net3.Build.0 = Release|x64-Net3 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Release|x64-Net4.ActiveCfg = Release|x64-Net4 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Release|x64-Net4.Build.0 = Release|x64-Net4 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Release|x86-Net3.ActiveCfg = Release|x86-Net3 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Release|x86-Net3.Build.0 = Release|x86-Net3 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Release|x86-Net4.ActiveCfg = Release|x86-Net4 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Release|x86-Net4.Build.0 = Release|x86-Net4 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose_Release|x64-Net3.ActiveCfg = Verbose_Release|x64-Net3 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose_Release|x64-Net3.Build.0 = Verbose_Release|x64-Net3 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose_Release|x64-Net4.ActiveCfg = Verbose_Release|x64-Net4 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose_Release|x64-Net4.Build.0 = Verbose_Release|x64-Net4 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose_Release|x86-Net3.ActiveCfg = Verbose_Release|x86-Net3 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose_Release|x86-Net3.Build.0 = Verbose_Release|x86-Net3 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose_Release|x86-Net4.ActiveCfg = Verbose_Release|x86-Net4 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose_Release|x86-Net4.Build.0 = Verbose_Release|x86-Net4 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose|x64-Net3.ActiveCfg = Verbose|x64-Net3 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose|x64-Net3.Build.0 = Verbose|x64-Net3 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose|x64-Net4.ActiveCfg = Verbose|x64-Net4 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose|x64-Net4.Build.0 = Verbose|x64-Net4 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose|x86-Net3.ActiveCfg = Verbose|x86-Net3 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose|x86-Net3.Build.0 = Verbose|x86-Net3 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose|x86-Net4.ActiveCfg = Verbose|x86-Net4 - {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose|x86-Net4.Build.0 = Verbose|x86-Net4 - {642F52DA-90F9-40E3-8784-6964F36752FB}.Debug|x64-Net3.ActiveCfg = Debug|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Debug|x64-Net3.Build.0 = Debug|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Debug|x64-Net4.ActiveCfg = Debug|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Debug|x86-Net3.ActiveCfg = Debug|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Debug|x86-Net3.Build.0 = Debug|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Debug|x86-Net4.ActiveCfg = Debug|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Release|x64-Net3.ActiveCfg = Release|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Release|x64-Net3.Build.0 = Release|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Release|x64-Net4.ActiveCfg = Release|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Release|x86-Net3.ActiveCfg = Release|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Release|x86-Net3.Build.0 = Release|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Release|x86-Net4.ActiveCfg = Release|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Verbose_Release|x64-Net3.ActiveCfg = Release|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Verbose_Release|x64-Net3.Build.0 = Release|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Verbose_Release|x64-Net4.ActiveCfg = Release|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Verbose_Release|x86-Net3.ActiveCfg = Release|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Verbose_Release|x86-Net3.Build.0 = Release|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Verbose_Release|x86-Net4.ActiveCfg = Release|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Verbose|x64-Net3.ActiveCfg = Release|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Verbose|x64-Net3.Build.0 = Release|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Verbose|x64-Net4.ActiveCfg = Release|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Verbose|x86-Net3.ActiveCfg = Release|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Verbose|x86-Net3.Build.0 = Release|Any CPU - {642F52DA-90F9-40E3-8784-6964F36752FB}.Verbose|x86-Net4.ActiveCfg = Release|Any CPU + {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|x64.ActiveCfg = Debug|Any CPU + {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|x64.Build.0 = Debug|Any CPU + {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|x86.ActiveCfg = Debug|Any CPU + {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|x86.Build.0 = Debug|Any CPU + {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|x64.ActiveCfg = Release|Any CPU + {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|x64.Build.0 = Release|Any CPU + {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|x86.ActiveCfg = Release|Any CPU + {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|x86.Build.0 = Release|Any CPU + {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|x64.ActiveCfg = Verbose_Release|Any CPU + {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|x64.Build.0 = Verbose_Release|Any CPU + {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|x86.ActiveCfg = Verbose_Release|Any CPU + {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|x86.Build.0 = Verbose_Release|Any CPU + {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|x64.ActiveCfg = Verbose|Any CPU + {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|x64.Build.0 = Verbose|Any CPU + {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|x86.ActiveCfg = Verbose|Any CPU + {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|x86.Build.0 = Verbose|Any CPU + {88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|x64.ActiveCfg = Release|x64 + {88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|x64.Build.0 = Release|x64 + {88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|x86.ActiveCfg = Release|Win32 + {88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|x86.Build.0 = Release|Win32 + {88609E16-731F-46C9-8139-6B1A7A83240D}.Release|x64.ActiveCfg = Release|x64 + {88609E16-731F-46C9-8139-6B1A7A83240D}.Release|x64.Build.0 = Release|x64 + {88609E16-731F-46C9-8139-6B1A7A83240D}.Release|x86.ActiveCfg = Release|Win32 + {88609E16-731F-46C9-8139-6B1A7A83240D}.Release|x86.Build.0 = Release|Win32 + {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|x64.ActiveCfg = Verbose_Release|x64 + {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|x64.Build.0 = Verbose_Release|x64 + {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|x86.ActiveCfg = Verbose_Release|Win32 + {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|x86.Build.0 = Verbose_Release|Win32 + {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|x64.ActiveCfg = Verbose_Release|x64 + {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|x64.Build.0 = Verbose_Release|x64 + {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|x86.ActiveCfg = Verbose_Release|Win32 + {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|x86.Build.0 = Verbose_Release|Win32 + {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|x64.ActiveCfg = Debug|Any CPU + {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|x64.Build.0 = Debug|Any CPU + {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|x86.ActiveCfg = Debug|Any CPU + {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|x86.Build.0 = Debug|Any CPU + {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Release|x64.ActiveCfg = Release|Any CPU + {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Release|x86.ActiveCfg = Release|Any CPU + {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose_Release|x64.ActiveCfg = Release|Any CPU + {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose_Release|x86.ActiveCfg = Release|Any CPU + {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|x64.ActiveCfg = Debug|Any CPU + {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|x64.Build.0 = Debug|Any CPU + {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|x86.ActiveCfg = Debug|Any CPU + {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|x86.Build.0 = Debug|Any CPU + {880A3560-82CD-4836-996B-11BEFE6B44DB}.Debug|x64.ActiveCfg = Debug|x64-Net4 + {880A3560-82CD-4836-996B-11BEFE6B44DB}.Debug|x64.Build.0 = Debug|x64-Net4 + {880A3560-82CD-4836-996B-11BEFE6B44DB}.Debug|x86.ActiveCfg = Debug|x86-Net4 + {880A3560-82CD-4836-996B-11BEFE6B44DB}.Debug|x86.Build.0 = Debug|x86-Net4 + {880A3560-82CD-4836-996B-11BEFE6B44DB}.Release|x64.ActiveCfg = Release|x64-Net4 + {880A3560-82CD-4836-996B-11BEFE6B44DB}.Release|x64.Build.0 = Release|x64-Net4 + {880A3560-82CD-4836-996B-11BEFE6B44DB}.Release|x86.ActiveCfg = Release|x86-Net4 + {880A3560-82CD-4836-996B-11BEFE6B44DB}.Release|x86.Build.0 = Release|x86-Net4 + {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose_Release|x64.ActiveCfg = Verbose_Release|x64-Net4 + {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose_Release|x64.Build.0 = Verbose_Release|x64-Net4 + {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose_Release|x86.ActiveCfg = Verbose_Release|x86-Net4 + {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose_Release|x86.Build.0 = Verbose_Release|x86-Net4 + {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose|x64.ActiveCfg = Verbose|x64-Net4 + {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose|x64.Build.0 = Verbose|x64-Net4 + {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose|x86.ActiveCfg = Verbose|x86-Net4 + {880A3560-82CD-4836-996B-11BEFE6B44DB}.Verbose|x86.Build.0 = Verbose|x86-Net4 + {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Debug|x64.ActiveCfg = Debug|Any CPU + {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Debug|x64.Build.0 = Debug|Any CPU + {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Debug|x86.ActiveCfg = Debug|Any CPU + {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Debug|x86.Build.0 = Debug|Any CPU + {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Release|x64.ActiveCfg = Release|Any CPU + {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Release|x64.Build.0 = Release|Any CPU + {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Release|x86.ActiveCfg = Release|Any CPU + {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Release|x86.Build.0 = Release|Any CPU + {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Verbose_Release|x64.ActiveCfg = Release|Any CPU + {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Verbose_Release|x64.Build.0 = Release|Any CPU + {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Verbose_Release|x86.ActiveCfg = Release|Any CPU + {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Verbose_Release|x86.Build.0 = Release|Any CPU + {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Verbose|x64.ActiveCfg = Debug|Any CPU + {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Verbose|x64.Build.0 = Debug|Any CPU + {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Verbose|x86.ActiveCfg = Debug|Any CPU + {10F0057C-6C1E-41AA-A4DE-2F9D2EABE55C}.Verbose|x86.Build.0 = Debug|Any CPU + {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Debug|x64.ActiveCfg = Debug|Any CPU + {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Debug|x64.Build.0 = Debug|Any CPU + {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Debug|x86.ActiveCfg = Debug|Any CPU + {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Debug|x86.Build.0 = Debug|Any CPU + {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Release|x64.ActiveCfg = Release|Any CPU + {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Release|x64.Build.0 = Release|Any CPU + {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Release|x86.ActiveCfg = Release|Any CPU + {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Release|x86.Build.0 = Release|Any CPU + {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Verbose_Release|x64.ActiveCfg = Release|Any CPU + {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Verbose_Release|x64.Build.0 = Release|Any CPU + {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Verbose_Release|x86.ActiveCfg = Release|Any CPU + {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Verbose_Release|x86.Build.0 = Release|Any CPU + {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Verbose|x64.ActiveCfg = Debug|Any CPU + {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Verbose|x64.Build.0 = Debug|Any CPU + {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Verbose|x86.ActiveCfg = Debug|Any CPU + {BBBA5CAD-B40E-4565-AE96-E8EC468DB54B}.Verbose|x86.Build.0 = Debug|Any CPU + {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Debug|x64.ActiveCfg = Debug|Any CPU + {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Debug|x64.Build.0 = Debug|Any CPU + {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Debug|x86.ActiveCfg = Debug|Any CPU + {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Debug|x86.Build.0 = Debug|Any CPU + {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Release|x64.ActiveCfg = Release|Any CPU + {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Release|x64.Build.0 = Release|Any CPU + {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Release|x86.ActiveCfg = Release|Any CPU + {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Release|x86.Build.0 = Release|Any CPU + {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose_Release|x64.ActiveCfg = Release|Any CPU + {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose_Release|x64.Build.0 = Release|Any CPU + {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose_Release|x86.ActiveCfg = Release|Any CPU + {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose_Release|x86.Build.0 = Release|Any CPU + {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose|x64.ActiveCfg = Debug|Any CPU + {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose|x64.Build.0 = Debug|Any CPU + {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose|x86.ActiveCfg = Debug|Any CPU + {0DEDB099-9A26-4069-A4C1-A76CEB16283B}.Verbose|x86.Build.0 = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/IPA.Injector/IPA.Injector.csproj b/IPA.Injector/IPA.Injector.csproj index fe606dd8..537ac45d 100644 --- a/IPA.Injector/IPA.Injector.csproj +++ b/IPA.Injector/IPA.Injector.csproj @@ -1,152 +1,106 @@ - - - - - Debug - Net4 - true - {2A1AF16B-27F1-46E0-9A95-181516BC1CB7} - Library - Properties - IPA.Injector - IPA.Injector - 512 - true - $(SolutionDir)=C:\ - portable - 8.0 - true - - - true - false - bin\$(Platform)\Debug\ - DEBUG;TRACE - prompt - 4 - - - true - bin\$(Platform)\Release\ - TRACE - prompt - 4 - - - v4.6.1 - $(DefineConstants);NET4 - - - v3.5 - $(DefineConstants);NET3 - - - $(DefineConstants);BeatSaber - - - - - - - - - - ..\Refs\UnityEngine.CoreModule.Net4.dll - False - - - ..\Refs\UnityEngine.CoreModule.Net3.dll - False - - - - - - - - - - - - - - - - - {5ad344f0-01a0-4ca8-92e5-9d095737744d} - IPA.Loader - - - {642F52DA-90F9-40E3-8784-6964F36752FB} - Net3-Proxy - - - - - Libraries\Mono\I18N.dll - Always - - - Libraries\Mono\I18N.West.dll - Always - - - Libraries\Mono\Microsoft.CSharp.dll - Always - - - Libraries\Mono\System.Runtime.Serialization.dll - Always - - - - - Libraries\Mono\I18N.dll - Always - - - Libraries\Mono\I18N.West.dll - Always - - - Libraries\Mono\System.Runtime.Serialization.dll - Always - - - - - 0.10.4 - - - 1.2.2 - - - 0.3.1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + net461;net35 + IPA.Injector + + portable + 8.0 + true + CA1031 + false + false + true + + + + $(DefineConstants);NET4 + + + $(DefineConstants);NET3 + + + $(DefineConstants);BeatSaber + + + + + + + + + + ..\Refs\UnityEngine.CoreModule.Net4.dll + False + + + ..\Refs\UnityEngine.CoreModule.Net3.dll + False + + + + + + Libraries\Mono\I18N.dll + Always + + + Libraries\Mono\I18N.West.dll + Always + + + Libraries\Mono\Microsoft.CSharp.dll + Always + + + Libraries\Mono\System.Runtime.Serialization.dll + Always + + + + + Libraries\Mono\I18N.dll + Always + + + Libraries\Mono\I18N.West.dll + Always + + + Libraries\Mono\System.Runtime.Serialization.dll + Always + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/IPA.Injector/IPA.Injector_old.csproj b/IPA.Injector/IPA.Injector_old.csproj new file mode 100644 index 00000000..fe606dd8 --- /dev/null +++ b/IPA.Injector/IPA.Injector_old.csproj @@ -0,0 +1,152 @@ + + + + + Debug + Net4 + true + {2A1AF16B-27F1-46E0-9A95-181516BC1CB7} + Library + Properties + IPA.Injector + IPA.Injector + 512 + true + $(SolutionDir)=C:\ + portable + 8.0 + true + + + true + false + bin\$(Platform)\Debug\ + DEBUG;TRACE + prompt + 4 + + + true + bin\$(Platform)\Release\ + TRACE + prompt + 4 + + + v4.6.1 + $(DefineConstants);NET4 + + + v3.5 + $(DefineConstants);NET3 + + + $(DefineConstants);BeatSaber + + + + + + + + + + ..\Refs\UnityEngine.CoreModule.Net4.dll + False + + + ..\Refs\UnityEngine.CoreModule.Net3.dll + False + + + + + + + + + + + + + + + + + {5ad344f0-01a0-4ca8-92e5-9d095737744d} + IPA.Loader + + + {642F52DA-90F9-40E3-8784-6964F36752FB} + Net3-Proxy + + + + + Libraries\Mono\I18N.dll + Always + + + Libraries\Mono\I18N.West.dll + Always + + + Libraries\Mono\Microsoft.CSharp.dll + Always + + + Libraries\Mono\System.Runtime.Serialization.dll + Always + + + + + Libraries\Mono\I18N.dll + Always + + + Libraries\Mono\I18N.West.dll + Always + + + Libraries\Mono\System.Runtime.Serialization.dll + Always + + + + + 0.10.4 + + + 1.2.2 + + + 0.3.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/IPA.Loader/IPA.Loader.csproj b/IPA.Loader/IPA.Loader.csproj index 36c18f88..2ccd3b90 100644 --- a/IPA.Loader/IPA.Loader.csproj +++ b/IPA.Loader/IPA.Loader.csproj @@ -1,65 +1,29 @@ - - - + + - Debug - Net4 - true - {5AD344F0-01A0-4CA8-92E5-9D095737744D} - Library - Properties + net461;net35 IPA - IPA.Loader - 512 - true - $(SolutionDir)=C:\ + portable 8.0 true CA1031 + true + false + true - - true - false - bin\$(Platform)\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - true - bin\$(Platform)\Release\ - TRACE - prompt - 4 - false - - - v4.6.1 + + $(DefineConstants);NET4 - - v3.5 + $(DefineConstants);NET3 - + $(DefineConstants);BeatSaber - - $(OutputPath)IPA.Loader.xml - - - - - - - - - - - - + + ..\Refs\UnityEngine.CoreModule.Net4.dll False @@ -69,7 +33,7 @@ False - + ..\Refs\UnityEngine.CoreModule.Net3.dll False @@ -79,131 +43,25 @@ False + - - {642F52DA-90F9-40E3-8784-6964F36752FB} - Net3-Proxy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - 1.9.1.8 - - - 2.0.0.7 - - - 0.10.4 - - - 12.0.3 - - - 1.0.1 - - - 1.2.2 - - - 0.3.1 - + + + + + + + + - - - - - - \ No newline at end of file + + diff --git a/IPA.Loader/IPA.Loader_old.csproj b/IPA.Loader/IPA.Loader_old.csproj new file mode 100644 index 00000000..36c18f88 --- /dev/null +++ b/IPA.Loader/IPA.Loader_old.csproj @@ -0,0 +1,209 @@ + + + + + Debug + Net4 + true + {5AD344F0-01A0-4CA8-92E5-9D095737744D} + Library + Properties + IPA + IPA.Loader + 512 + true + $(SolutionDir)=C:\ + portable + 8.0 + true + CA1031 + + + true + false + bin\$(Platform)\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + true + bin\$(Platform)\Release\ + TRACE + prompt + 4 + false + + + v4.6.1 + $(DefineConstants);NET4 + + + v3.5 + $(DefineConstants);NET3 + + + $(DefineConstants);BeatSaber + + + $(OutputPath)IPA.Loader.xml + + + + + + + + + + + + + + ..\Refs\UnityEngine.CoreModule.Net4.dll + False + + + ..\Refs\UnityEngine.UnityWebRequestModule.Net4.dll + False + + + + + ..\Refs\UnityEngine.CoreModule.Net3.dll + False + + + ..\Refs\UnityEngine.UnityWebRequestModule.Net3.dll + False + + + + + {642F52DA-90F9-40E3-8784-6964F36752FB} + Net3-Proxy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.9.1.8 + + + 2.0.0.7 + + + 0.10.4 + + + 12.0.3 + + + 1.0.1 + + + 1.2.2 + + + 0.3.1 + + + + + + + + + + + + + \ No newline at end of file diff --git a/IPA.Loader/Thumbs.db b/IPA.Loader/Thumbs.db deleted file mode 100644 index 25f19c79d3783635570e4208a5f15339f3a90754..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22528 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 z 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 AsTask(coroutine)).Unwrap(); - var tcs = new TaskCompletionSource(coroutine, TaskCreationOptions.RunContinuationsAsynchronously); + var tcs = new TaskCompletionSource(coroutine, AsTaskSourceOptions); PluginComponent.Instance.StartCoroutine(new AsTaskCoroutineExecutor(coroutine, tcs)); return tcs.Task; } +#if NET4 + private static readonly TaskCreationOptions AsTaskSourceOptions = TaskCreationOptions.RunContinuationsAsynchronously; +#else + private static readonly TaskCreationOptions AsTaskSourceOptions = TaskCreationOptions.None; +#endif + private struct VoidStruct { } private class ExceptionLocation : Exception { public ExceptionLocation(IEnumerable locations) - : base(string.Join("\n", locations.Select(s => "in " + s))) + : base(string.Join("\n", Utils.StrJP(locations.Select(s => "in " + s)))) { } } diff --git a/IPA.Loader/Utilities/CriticalSection.cs b/IPA.Loader/Utilities/CriticalSection.cs index 60930b50..c5ed1029 100644 --- a/IPA.Loader/Utilities/CriticalSection.cs +++ b/IPA.Loader/Utilities/CriticalSection.cs @@ -1,185 +1,185 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.InteropServices; -using System.Text; -using System.Threading.Tasks; -using IPA.Logging; - -namespace IPA.Utilities -{ - /// - /// Provides utilities for managing various critical sections. - /// - public static class CriticalSection - { - - internal static void Configure() - { - Logger.log.Debug("Configuring exit handlers"); - - ResetExitHandlers(); - } - - private static void Reset(object sender, EventArgs e) - { - Win32.SetConsoleCtrlHandler(registeredHandler, false); - WinHttp.SetPeekMessageHook(null); - } - - #region Execute section - - private static readonly Win32.ConsoleCtrlDelegate registeredHandler = HandleExit; - internal static void ResetExitHandlers() - { - Win32.SetConsoleCtrlHandler(registeredHandler, false); - Win32.SetConsoleCtrlHandler(registeredHandler, true); - WinHttp.SetPeekMessageHook(PeekMessageHook); - - AppDomain.CurrentDomain.ProcessExit -= OnProcessExit; - AppDomain.CurrentDomain.ProcessExit += OnProcessExit; - } - +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; +using IPA.Logging; + +namespace IPA.Utilities +{ + /// + /// Provides utilities for managing various critical sections. + /// + public static class CriticalSection + { + + internal static void Configure() + { + Logger.log.Debug("Configuring exit handlers"); + + ResetExitHandlers(); + } + + private static void Reset(object sender, EventArgs e) + { + Win32.SetConsoleCtrlHandler(registeredHandler, false); + WinHttp.SetPeekMessageHook(null); + } + + #region Execute section + + private static readonly Win32.ConsoleCtrlDelegate registeredHandler = HandleExit; + internal static void ResetExitHandlers() + { + Win32.SetConsoleCtrlHandler(registeredHandler, false); + Win32.SetConsoleCtrlHandler(registeredHandler, true); + WinHttp.SetPeekMessageHook(PeekMessageHook); + + AppDomain.CurrentDomain.ProcessExit -= OnProcessExit; + AppDomain.CurrentDomain.ProcessExit += OnProcessExit; + } + private static void OnProcessExit(object sender, EventArgs args) { WinHttp.SetIgnoreUnhandledExceptions(true); - } - - private static class WinHttp - { - public delegate bool PeekMessageHook( - bool isW, - uint result, - [MarshalAs(UnmanagedType.LPStruct)] - in Win32.MSG message, - IntPtr hwnd, - uint filterMin, - uint filterMax, - ref Win32.PeekMessageParams removeMsg); - - [DllImport("bsipa-doorstop")] - public static extern void SetPeekMessageHook( - [MarshalAs(UnmanagedType.FunctionPtr)] + } + + private static class WinHttp + { + public delegate bool PeekMessageHook( + bool isW, + uint result, + [MarshalAs(UnmanagedType.LPStruct)] + in Win32.MSG message, + IntPtr hwnd, + uint filterMin, + uint filterMax, + ref Win32.PeekMessageParams removeMsg); + + [DllImport("bsipa-doorstop")] + public static extern void SetPeekMessageHook( + [MarshalAs(UnmanagedType.FunctionPtr)] PeekMessageHook hook); - [DllImport("bsipa-doorstop")] - public static extern void SetIgnoreUnhandledExceptions( - [MarshalAs(UnmanagedType.Bool)] bool ignore); - } - - private static Win32.ConsoleCtrlDelegate _handler = null; - private static volatile bool isInExecuteSection = false; - - // returns true to continue looping and calling PeekMessage - private static bool PeekMessageHook( - bool isW, - uint result, - [MarshalAs(UnmanagedType.LPStruct)] - in Win32.MSG message, - IntPtr hwnd, - uint filterMin, - uint filterMax, - ref Win32.PeekMessageParams removeMsg) - { - if (isInExecuteSection) - { - if (result == 0) return false; - - switch (message.message) - { - case Win32.WM.CLOSE: - if (removeMsg != Win32.PeekMessageParams.PM_REMOVE) - { - removeMsg = Win32.PeekMessageParams.PM_REMOVE; - exitRecieved = true; - return true; - } - else - { - removeMsg = Win32.PeekMessageParams.PM_NOREMOVE; - return true; - } - - default: - return false; - } - } - - return false; - } - - private static bool HandleExit(Win32.CtrlTypes type) - { - if (_handler != null) - return _handler(type); - - return false; - } - - private static volatile bool exitRecieved = false; - - /// - /// A struct that allows using blocks to manage an execute section. - /// - public struct AutoExecuteSection : IDisposable - { - private readonly bool constructed; - internal AutoExecuteSection(bool val) - { - constructed = val && !isInExecuteSection; - if (constructed) - EnterExecuteSection(); - } - - void IDisposable.Dispose() - { - if (constructed) - ExitExecuteSection(); - } - } - - /// - /// Creates an for automated management of an execute section. - /// - /// the new that manages the section - public static AutoExecuteSection ExecuteSection() => new AutoExecuteSection(true); - - /// - /// Enters a critical execution section. Does not nest. - /// - /// - /// During a critical execution section, the program must execute until the end of the section before - /// exiting. If an exit signal is recieved during the section, it will be canceled, and the process - /// will terminate at the end of the section. - /// - public static void EnterExecuteSection() - { - ResetExitHandlers(); - - exitRecieved = false; - _handler = sig => exitRecieved = true; - isInExecuteSection = true; - } - - /// - /// Exits a critical execution section. Does not nest. - /// - /// - /// During a critical execution section, the program must execute until the end of the section before - /// exiting. If an exit signal is recieved during the section, it will be canceled, and the process - /// will terminate at the end of the section. - /// - public static void ExitExecuteSection() - { - _handler = null; - isInExecuteSection = false; - - Reset(null, null); - - if (exitRecieved) - Environment.Exit(1); - } - - #endregion - } -} + [DllImport("bsipa-doorstop")] + public static extern void SetIgnoreUnhandledExceptions( + [MarshalAs(UnmanagedType.Bool)] bool ignore); + } + + private static Win32.ConsoleCtrlDelegate _handler = null; + private static volatile bool isInExecuteSection = false; + + // returns true to continue looping and calling PeekMessage + private static bool PeekMessageHook( + bool isW, + uint result, + [MarshalAs(UnmanagedType.LPStruct)] + in Win32.MSG message, + IntPtr hwnd, + uint filterMin, + uint filterMax, + ref Win32.PeekMessageParams removeMsg) + { + if (isInExecuteSection) + { + if (result == 0) return false; + + switch (message.message) + { + case Win32.WM.CLOSE: + if (removeMsg != Win32.PeekMessageParams.PM_REMOVE) + { + removeMsg = Win32.PeekMessageParams.PM_REMOVE; + exitRecieved = true; + return true; + } + else + { + removeMsg = Win32.PeekMessageParams.PM_NOREMOVE; + return true; + } + + default: + return false; + } + } + + return false; + } + + private static bool HandleExit(Win32.CtrlTypes type) + { + if (_handler != null) + return _handler(type); + + return false; + } + + private static volatile bool exitRecieved = false; + + /// + /// A struct that allows using blocks to manage an execute section. + /// + public struct AutoExecuteSection : IDisposable + { + private readonly bool constructed; + internal AutoExecuteSection(bool val) + { + constructed = val && !isInExecuteSection; + if (constructed) + EnterExecuteSection(); + } + + void IDisposable.Dispose() + { + if (constructed) + ExitExecuteSection(); + } + } + + /// + /// Creates an for automated management of an execute section. + /// + /// the new that manages the section + public static AutoExecuteSection ExecuteSection() => new AutoExecuteSection(true); + + /// + /// Enters a critical execution section. Does not nest. + /// + /// + /// During a critical execution section, the program must execute until the end of the section before + /// exiting. If an exit signal is recieved during the section, it will be canceled, and the process + /// will terminate at the end of the section. + /// + public static void EnterExecuteSection() + { + ResetExitHandlers(); + + exitRecieved = false; + _handler = sig => exitRecieved = true; + isInExecuteSection = true; + } + + /// + /// Exits a critical execution section. Does not nest. + /// + /// + /// During a critical execution section, the program must execute until the end of the section before + /// exiting. If an exit signal is recieved during the section, it will be canceled, and the process + /// will terminate at the end of the section. + /// + public static void ExitExecuteSection() + { + _handler = null; + isInExecuteSection = false; + + Reset(null, null); + + if (exitRecieved) + Environment.Exit(1); + } + + #endregion + } +} diff --git a/Net3-Proxy/Net3-Proxy.csproj b/Net3-Proxy/Net3-Proxy.csproj index 7d2de56c..40e0a7c0 100644 --- a/Net3-Proxy/Net3-Proxy.csproj +++ b/Net3-Proxy/Net3-Proxy.csproj @@ -1,66 +1,15 @@ - - - + + - Debug - AnyCPU - {642F52DA-90F9-40E3-8784-6964F36752FB} - Library - Properties + net35 Net3_Proxy - Net3-Proxy - v3.5 - 512 - true - - - true - portable - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - portable - true - bin\Release\ - TRACE - prompt - 4 + false + - - - - - - - - - - - - - - - - - - - - - - - - - - 0.3.1 - - - 1.0.1 - + + - - \ No newline at end of file + + diff --git a/Net3-Proxy/Net3-Proxy_old.csproj b/Net3-Proxy/Net3-Proxy_old.csproj new file mode 100644 index 00000000..7d2de56c --- /dev/null +++ b/Net3-Proxy/Net3-Proxy_old.csproj @@ -0,0 +1,66 @@ + + + + + Debug + AnyCPU + {642F52DA-90F9-40E3-8784-6964F36752FB} + Library + Properties + Net3_Proxy + Net3-Proxy + v3.5 + 512 + true + + + true + portable + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + portable + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.3.1 + + + 1.0.1 + + + + \ No newline at end of file