Sfoglia il codice sorgente

enable building ARM64 for ChakraCore

Matt Gardner 7 anni fa
parent
commit
86e757182a

+ 207 - 0
Build/Chakra.Core.sln

@@ -169,628 +169,835 @@ EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|ARM = Debug|ARM
+		Debug|ARM64 = Debug|ARM64
 		Debug|x64 = Debug|x64
 		Debug|x86 = Debug|x86
 		Release|ARM = Release|ARM
+		Release|ARM64 = Release|ARM64
 		Release|x64 = Release|x64
 		Release|x86 = Release|x86
 		Test|ARM = Test|ARM
+		Test|ARM64 = Test|ARM64
 		Test|x64 = Test|x64
 		Test|x86 = Test|x86
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Debug|ARM.ActiveCfg = Debug|ARM
 		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Debug|ARM.Build.0 = Debug|ARM
+		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Debug|ARM64.Build.0 = Debug|ARM64
 		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Debug|x64.ActiveCfg = Debug|x64
 		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Debug|x64.Build.0 = Debug|x64
 		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Debug|x86.ActiveCfg = Debug|Win32
 		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Debug|x86.Build.0 = Debug|Win32
 		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Release|ARM.ActiveCfg = Release|ARM
 		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Release|ARM.Build.0 = Release|ARM
+		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Release|ARM64.ActiveCfg = Release|ARM64
+		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Release|ARM64.Build.0 = Release|ARM64
 		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Release|x64.ActiveCfg = Release|x64
 		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Release|x64.Build.0 = Release|x64
 		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Release|x86.ActiveCfg = Release|Win32
 		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Release|x86.Build.0 = Release|Win32
 		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Test|ARM.ActiveCfg = Test|ARM
 		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Test|ARM.Build.0 = Test|ARM
+		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Test|ARM64.ActiveCfg = Test|ARM64
+		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Test|ARM64.Build.0 = Test|ARM64
 		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Test|x64.ActiveCfg = Test|x64
 		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Test|x64.Build.0 = Test|x64
 		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Test|x86.ActiveCfg = Test|Win32
 		{EA882C8D-81FC-42FE-ABD5-2666DB933FDB}.Test|x86.Build.0 = Test|Win32
 		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Debug|ARM.ActiveCfg = Debug|ARM
 		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Debug|ARM.Build.0 = Debug|ARM
+		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Debug|ARM64.Build.0 = Debug|ARM64
 		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Debug|x64.ActiveCfg = Debug|x64
 		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Debug|x64.Build.0 = Debug|x64
 		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Debug|x86.ActiveCfg = Debug|Win32
 		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Debug|x86.Build.0 = Debug|Win32
 		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Release|ARM.ActiveCfg = Release|ARM
 		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Release|ARM.Build.0 = Release|ARM
+		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Release|ARM64.ActiveCfg = Release|ARM64
+		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Release|ARM64.Build.0 = Release|ARM64
 		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Release|x64.ActiveCfg = Release|x64
 		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Release|x64.Build.0 = Release|x64
 		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Release|x86.ActiveCfg = Release|Win32
 		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Release|x86.Build.0 = Release|Win32
 		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Test|ARM.ActiveCfg = Test|ARM
 		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Test|ARM.Build.0 = Test|ARM
+		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Test|ARM64.ActiveCfg = Test|ARM64
+		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Test|ARM64.Build.0 = Test|ARM64
 		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Test|x64.ActiveCfg = Test|x64
 		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Test|x64.Build.0 = Test|x64
 		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Test|x86.ActiveCfg = Test|Win32
 		{1876E800-AD77-48C4-A2F7-E5265F24AC38}.Test|x86.Build.0 = Test|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F5}.Debug|ARM.ActiveCfg = Debug|ARM
 		{706083F7-6AA4-4558-A153-6352EF9110F5}.Debug|ARM.Build.0 = Debug|ARM
+		{706083F7-6AA4-4558-A153-6352EF9110F5}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{706083F7-6AA4-4558-A153-6352EF9110F5}.Debug|ARM64.Build.0 = Debug|ARM64
 		{706083F7-6AA4-4558-A153-6352EF9110F5}.Debug|x64.ActiveCfg = Debug|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F5}.Debug|x64.Build.0 = Debug|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F5}.Debug|x86.ActiveCfg = Debug|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F5}.Debug|x86.Build.0 = Debug|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F5}.Release|ARM.ActiveCfg = Release|ARM
 		{706083F7-6AA4-4558-A153-6352EF9110F5}.Release|ARM.Build.0 = Release|ARM
+		{706083F7-6AA4-4558-A153-6352EF9110F5}.Release|ARM64.ActiveCfg = Release|ARM64
+		{706083F7-6AA4-4558-A153-6352EF9110F5}.Release|ARM64.Build.0 = Release|ARM64
 		{706083F7-6AA4-4558-A153-6352EF9110F5}.Release|x64.ActiveCfg = Release|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F5}.Release|x64.Build.0 = Release|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F5}.Release|x86.ActiveCfg = Release|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F5}.Release|x86.Build.0 = Release|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F5}.Test|ARM.ActiveCfg = Test|ARM
 		{706083F7-6AA4-4558-A153-6352EF9110F5}.Test|ARM.Build.0 = Test|ARM
+		{706083F7-6AA4-4558-A153-6352EF9110F5}.Test|ARM64.ActiveCfg = Test|ARM64
+		{706083F7-6AA4-4558-A153-6352EF9110F5}.Test|ARM64.Build.0 = Test|ARM64
 		{706083F7-6AA4-4558-A153-6352EF9110F5}.Test|x64.ActiveCfg = Test|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F5}.Test|x64.Build.0 = Test|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F5}.Test|x86.ActiveCfg = Test|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F5}.Test|x86.Build.0 = Test|Win32
 		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Debug|ARM.ActiveCfg = Debug|ARM
 		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Debug|ARM.Build.0 = Debug|ARM
+		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Debug|ARM64.Build.0 = Debug|ARM64
 		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Debug|x64.ActiveCfg = Debug|x64
 		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Debug|x64.Build.0 = Debug|x64
 		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Debug|x86.ActiveCfg = Debug|Win32
 		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Debug|x86.Build.0 = Debug|Win32
 		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Release|ARM.ActiveCfg = Release|ARM
 		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Release|ARM.Build.0 = Release|ARM
+		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Release|ARM64.ActiveCfg = Release|ARM64
+		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Release|ARM64.Build.0 = Release|ARM64
 		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Release|x64.ActiveCfg = Release|x64
 		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Release|x64.Build.0 = Release|x64
 		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Release|x86.ActiveCfg = Release|Win32
 		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Release|x86.Build.0 = Release|Win32
 		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Test|ARM.ActiveCfg = Test|ARM
 		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Test|ARM.Build.0 = Test|ARM
+		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Test|ARM64.ActiveCfg = Test|ARM64
+		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Test|ARM64.Build.0 = Test|ARM64
 		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Test|x64.ActiveCfg = Test|x64
 		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Test|x64.Build.0 = Test|x64
 		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Test|x86.ActiveCfg = Test|Win32
 		{8C61E4E7-F0D6-420D-A352-3E6E50D406DD}.Test|x86.Build.0 = Test|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F8}.Debug|ARM.ActiveCfg = Debug|ARM
 		{706083F7-6AA4-4558-A153-6352EF9110F8}.Debug|ARM.Build.0 = Debug|ARM
+		{706083F7-6AA4-4558-A153-6352EF9110F8}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{706083F7-6AA4-4558-A153-6352EF9110F8}.Debug|ARM64.Build.0 = Debug|ARM64
 		{706083F7-6AA4-4558-A153-6352EF9110F8}.Debug|x64.ActiveCfg = Debug|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F8}.Debug|x64.Build.0 = Debug|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F8}.Debug|x86.ActiveCfg = Debug|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F8}.Debug|x86.Build.0 = Debug|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F8}.Release|ARM.ActiveCfg = Release|ARM
 		{706083F7-6AA4-4558-A153-6352EF9110F8}.Release|ARM.Build.0 = Release|ARM
+		{706083F7-6AA4-4558-A153-6352EF9110F8}.Release|ARM64.ActiveCfg = Release|ARM64
+		{706083F7-6AA4-4558-A153-6352EF9110F8}.Release|ARM64.Build.0 = Release|ARM64
 		{706083F7-6AA4-4558-A153-6352EF9110F8}.Release|x64.ActiveCfg = Release|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F8}.Release|x64.Build.0 = Release|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F8}.Release|x86.ActiveCfg = Release|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F8}.Release|x86.Build.0 = Release|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F8}.Test|ARM.ActiveCfg = Test|ARM
 		{706083F7-6AA4-4558-A153-6352EF9110F8}.Test|ARM.Build.0 = Test|ARM
+		{706083F7-6AA4-4558-A153-6352EF9110F8}.Test|ARM64.ActiveCfg = Test|ARM64
+		{706083F7-6AA4-4558-A153-6352EF9110F8}.Test|ARM64.Build.0 = Test|ARM64
 		{706083F7-6AA4-4558-A153-6352EF9110F8}.Test|x64.ActiveCfg = Test|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F8}.Test|x64.Build.0 = Test|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F8}.Test|x86.ActiveCfg = Test|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F8}.Test|x86.Build.0 = Test|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F7}.Debug|ARM.ActiveCfg = Debug|ARM
 		{706083F7-6AA4-4558-A153-6352EF9110F7}.Debug|ARM.Build.0 = Debug|ARM
+		{706083F7-6AA4-4558-A153-6352EF9110F7}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{706083F7-6AA4-4558-A153-6352EF9110F7}.Debug|ARM64.Build.0 = Debug|ARM64
 		{706083F7-6AA4-4558-A153-6352EF9110F7}.Debug|x64.ActiveCfg = Debug|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F7}.Debug|x64.Build.0 = Debug|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F7}.Debug|x86.ActiveCfg = Debug|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F7}.Debug|x86.Build.0 = Debug|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F7}.Release|ARM.ActiveCfg = Release|ARM
 		{706083F7-6AA4-4558-A153-6352EF9110F7}.Release|ARM.Build.0 = Release|ARM
+		{706083F7-6AA4-4558-A153-6352EF9110F7}.Release|ARM64.ActiveCfg = Release|ARM64
+		{706083F7-6AA4-4558-A153-6352EF9110F7}.Release|ARM64.Build.0 = Release|ARM64
 		{706083F7-6AA4-4558-A153-6352EF9110F7}.Release|x64.ActiveCfg = Release|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F7}.Release|x64.Build.0 = Release|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F7}.Release|x86.ActiveCfg = Release|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F7}.Release|x86.Build.0 = Release|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F7}.Test|ARM.ActiveCfg = Test|ARM
 		{706083F7-6AA4-4558-A153-6352EF9110F7}.Test|ARM.Build.0 = Test|ARM
+		{706083F7-6AA4-4558-A153-6352EF9110F7}.Test|ARM64.ActiveCfg = Test|ARM64
+		{706083F7-6AA4-4558-A153-6352EF9110F7}.Test|ARM64.Build.0 = Test|ARM64
 		{706083F7-6AA4-4558-A153-6352EF9110F7}.Test|x64.ActiveCfg = Test|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F7}.Test|x64.Build.0 = Test|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F7}.Test|x86.ActiveCfg = Test|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F7}.Test|x86.Build.0 = Test|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F6}.Debug|ARM.ActiveCfg = Debug|ARM
 		{706083F7-6AA4-4558-A153-6352EF9110F6}.Debug|ARM.Build.0 = Debug|ARM
+		{706083F7-6AA4-4558-A153-6352EF9110F6}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{706083F7-6AA4-4558-A153-6352EF9110F6}.Debug|ARM64.Build.0 = Debug|ARM64
 		{706083F7-6AA4-4558-A153-6352EF9110F6}.Debug|x64.ActiveCfg = Debug|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F6}.Debug|x64.Build.0 = Debug|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F6}.Debug|x86.ActiveCfg = Debug|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F6}.Debug|x86.Build.0 = Debug|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F6}.Release|ARM.ActiveCfg = Release|ARM
 		{706083F7-6AA4-4558-A153-6352EF9110F6}.Release|ARM.Build.0 = Release|ARM
+		{706083F7-6AA4-4558-A153-6352EF9110F6}.Release|ARM64.ActiveCfg = Release|ARM64
+		{706083F7-6AA4-4558-A153-6352EF9110F6}.Release|ARM64.Build.0 = Release|ARM64
 		{706083F7-6AA4-4558-A153-6352EF9110F6}.Release|x64.ActiveCfg = Release|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F6}.Release|x64.Build.0 = Release|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F6}.Release|x86.ActiveCfg = Release|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F6}.Release|x86.Build.0 = Release|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F6}.Test|ARM.ActiveCfg = Test|ARM
 		{706083F7-6AA4-4558-A153-6352EF9110F6}.Test|ARM.Build.0 = Test|ARM
+		{706083F7-6AA4-4558-A153-6352EF9110F6}.Test|ARM64.ActiveCfg = Test|ARM64
+		{706083F7-6AA4-4558-A153-6352EF9110F6}.Test|ARM64.Build.0 = Test|ARM64
 		{706083F7-6AA4-4558-A153-6352EF9110F6}.Test|x64.ActiveCfg = Test|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F6}.Test|x64.Build.0 = Test|x64
 		{706083F7-6AA4-4558-A153-6352EF9110F6}.Test|x86.ActiveCfg = Test|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110F6}.Test|x86.Build.0 = Test|Win32
 		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Debug|ARM.ActiveCfg = Debug|ARM
 		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Debug|ARM.Build.0 = Debug|ARM
+		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Debug|ARM64.Build.0 = Debug|ARM64
 		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Debug|x64.ActiveCfg = Debug|x64
 		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Debug|x64.Build.0 = Debug|x64
 		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Debug|x86.ActiveCfg = Debug|Win32
 		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Debug|x86.Build.0 = Debug|Win32
 		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Release|ARM.ActiveCfg = Release|ARM
 		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Release|ARM.Build.0 = Release|ARM
+		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Release|ARM64.ActiveCfg = Release|ARM64
+		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Release|ARM64.Build.0 = Release|ARM64
 		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Release|x64.ActiveCfg = Release|x64
 		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Release|x64.Build.0 = Release|x64
 		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Release|x86.ActiveCfg = Release|Win32
 		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Release|x86.Build.0 = Release|Win32
 		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Test|ARM.ActiveCfg = Test|ARM
 		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Test|ARM.Build.0 = Test|ARM
+		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Test|ARM64.ActiveCfg = Test|ARM64
+		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Test|ARM64.Build.0 = Test|ARM64
 		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Test|x64.ActiveCfg = Test|x64
 		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Test|x64.Build.0 = Test|x64
 		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Test|x86.ActiveCfg = Test|Win32
 		{BB4153FF-AC3E-4734-B562-CC23812DF31B}.Test|x86.Build.0 = Test|Win32
 		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Debug|ARM.ActiveCfg = Debug|ARM
 		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Debug|ARM.Build.0 = Debug|ARM
+		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Debug|ARM64.Build.0 = Debug|ARM64
 		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Debug|x64.ActiveCfg = Debug|x64
 		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Debug|x64.Build.0 = Debug|x64
 		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Debug|x86.ActiveCfg = Debug|Win32
 		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Debug|x86.Build.0 = Debug|Win32
 		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Release|ARM.ActiveCfg = Release|ARM
 		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Release|ARM.Build.0 = Release|ARM
+		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Release|ARM64.ActiveCfg = Release|ARM64
+		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Release|ARM64.Build.0 = Release|ARM64
 		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Release|x64.ActiveCfg = Release|x64
 		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Release|x64.Build.0 = Release|x64
 		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Release|x86.ActiveCfg = Release|Win32
 		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Release|x86.Build.0 = Release|Win32
 		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Test|ARM.ActiveCfg = Test|ARM
 		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Test|ARM.Build.0 = Test|ARM
+		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Test|ARM64.ActiveCfg = Test|ARM64
+		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Test|ARM64.Build.0 = Test|ARM64
 		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Test|x64.ActiveCfg = Test|x64
 		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Test|x64.Build.0 = Test|x64
 		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Test|x86.ActiveCfg = Test|Win32
 		{CC4153FF-AC3E-4734-B562-CC23812DF31B}.Test|x86.Build.0 = Test|Win32
 		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Debug|ARM.ActiveCfg = Debug|ARM
 		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Debug|ARM.Build.0 = Debug|ARM
+		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Debug|ARM64.Build.0 = Debug|ARM64
 		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Debug|x64.ActiveCfg = Debug|x64
 		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Debug|x64.Build.0 = Debug|x64
 		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Debug|x86.ActiveCfg = Debug|Win32
 		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Debug|x86.Build.0 = Debug|Win32
 		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Release|ARM.ActiveCfg = Release|ARM
 		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Release|ARM.Build.0 = Release|ARM
+		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Release|ARM64.ActiveCfg = Release|ARM64
+		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Release|ARM64.Build.0 = Release|ARM64
 		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Release|x64.ActiveCfg = Release|x64
 		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Release|x64.Build.0 = Release|x64
 		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Release|x86.ActiveCfg = Release|Win32
 		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Release|x86.Build.0 = Release|Win32
 		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Test|ARM.ActiveCfg = Test|ARM
 		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Test|ARM.Build.0 = Test|ARM
+		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Test|ARM64.ActiveCfg = Test|ARM64
+		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Test|ARM64.Build.0 = Test|ARM64
 		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Test|x64.ActiveCfg = Test|x64
 		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Test|x64.Build.0 = Test|x64
 		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Test|x86.ActiveCfg = Test|Win32
 		{5643D42A-C38D-4D82-9662-58470B3AC9F7}.Test|x86.Build.0 = Test|Win32
 		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Debug|ARM.ActiveCfg = Debug|ARM
 		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Debug|ARM.Build.0 = Debug|ARM
+		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Debug|ARM64.Build.0 = Debug|ARM64
 		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Debug|x64.ActiveCfg = Debug|x64
 		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Debug|x64.Build.0 = Debug|x64
 		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Debug|x86.ActiveCfg = Debug|Win32
 		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Debug|x86.Build.0 = Debug|Win32
 		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Release|ARM.ActiveCfg = Release|ARM
 		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Release|ARM.Build.0 = Release|ARM
+		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Release|ARM64.ActiveCfg = Release|ARM64
+		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Release|ARM64.Build.0 = Release|ARM64
 		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Release|x64.ActiveCfg = Release|x64
 		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Release|x64.Build.0 = Release|x64
 		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Release|x86.ActiveCfg = Release|Win32
 		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Release|x86.Build.0 = Release|Win32
 		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Test|ARM.ActiveCfg = Test|ARM
 		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Test|ARM.Build.0 = Test|ARM
+		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Test|ARM64.ActiveCfg = Test|ARM64
+		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Test|ARM64.Build.0 = Test|ARM64
 		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Test|x64.ActiveCfg = Test|x64
 		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Test|x64.Build.0 = Test|x64
 		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Test|x86.ActiveCfg = Test|Win32
 		{FD8EEC40-4141-448A-BF4B-1589FBE4F60D}.Test|x86.Build.0 = Test|Win32
 		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Debug|ARM.ActiveCfg = Debug|ARM
 		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Debug|ARM.Build.0 = Debug|ARM
+		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Debug|ARM64.Build.0 = Debug|ARM64
 		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Debug|x64.ActiveCfg = Debug|x64
 		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Debug|x64.Build.0 = Debug|x64
 		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Debug|x86.ActiveCfg = Debug|Win32
 		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Debug|x86.Build.0 = Debug|Win32
 		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Release|ARM.ActiveCfg = Release|ARM
 		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Release|ARM.Build.0 = Release|ARM
+		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Release|ARM64.ActiveCfg = Release|ARM64
+		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Release|ARM64.Build.0 = Release|ARM64
 		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Release|x64.ActiveCfg = Release|x64
 		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Release|x64.Build.0 = Release|x64
 		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Release|x86.ActiveCfg = Release|Win32
 		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Release|x86.Build.0 = Release|Win32
 		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Test|ARM.ActiveCfg = Test|ARM
 		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Test|ARM.Build.0 = Test|ARM
+		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Test|ARM64.ActiveCfg = Test|ARM64
+		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Test|ARM64.Build.0 = Test|ARM64
 		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Test|x64.ActiveCfg = Test|x64
 		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Test|x64.Build.0 = Test|x64
 		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Test|x86.ActiveCfg = Test|Win32
 		{BB4153FF-AC3E-4734-B562-FF23812DF31B}.Test|x86.Build.0 = Test|Win32
 		{18CF279F-188D-4655-B03D-74F65388E7D1}.Debug|ARM.ActiveCfg = Debug|ARM
 		{18CF279F-188D-4655-B03D-74F65388E7D1}.Debug|ARM.Build.0 = Debug|ARM
+		{18CF279F-188D-4655-B03D-74F65388E7D1}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{18CF279F-188D-4655-B03D-74F65388E7D1}.Debug|ARM64.Build.0 = Debug|ARM64
 		{18CF279F-188D-4655-B03D-74F65388E7D1}.Debug|x64.ActiveCfg = Debug|x64
 		{18CF279F-188D-4655-B03D-74F65388E7D1}.Debug|x64.Build.0 = Debug|x64
 		{18CF279F-188D-4655-B03D-74F65388E7D1}.Debug|x86.ActiveCfg = Debug|Win32
 		{18CF279F-188D-4655-B03D-74F65388E7D1}.Debug|x86.Build.0 = Debug|Win32
 		{18CF279F-188D-4655-B03D-74F65388E7D1}.Release|ARM.ActiveCfg = Release|ARM
 		{18CF279F-188D-4655-B03D-74F65388E7D1}.Release|ARM.Build.0 = Release|ARM
+		{18CF279F-188D-4655-B03D-74F65388E7D1}.Release|ARM64.ActiveCfg = Release|ARM64
+		{18CF279F-188D-4655-B03D-74F65388E7D1}.Release|ARM64.Build.0 = Release|ARM64
 		{18CF279F-188D-4655-B03D-74F65388E7D1}.Release|x64.ActiveCfg = Release|x64
 		{18CF279F-188D-4655-B03D-74F65388E7D1}.Release|x64.Build.0 = Release|x64
 		{18CF279F-188D-4655-B03D-74F65388E7D1}.Release|x86.ActiveCfg = Release|Win32
 		{18CF279F-188D-4655-B03D-74F65388E7D1}.Release|x86.Build.0 = Release|Win32
 		{18CF279F-188D-4655-B03D-74F65388E7D1}.Test|ARM.ActiveCfg = Test|ARM
 		{18CF279F-188D-4655-B03D-74F65388E7D1}.Test|ARM.Build.0 = Test|ARM
+		{18CF279F-188D-4655-B03D-74F65388E7D1}.Test|ARM64.ActiveCfg = Test|ARM64
+		{18CF279F-188D-4655-B03D-74F65388E7D1}.Test|ARM64.Build.0 = Test|ARM64
 		{18CF279F-188D-4655-B03D-74F65388E7D1}.Test|x64.ActiveCfg = Test|x64
 		{18CF279F-188D-4655-B03D-74F65388E7D1}.Test|x64.Build.0 = Test|x64
 		{18CF279F-188D-4655-B03D-74F65388E7D1}.Test|x86.ActiveCfg = Test|Win32
 		{18CF279F-188D-4655-B03D-74F65388E7D1}.Test|x86.Build.0 = Test|Win32
 		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Debug|ARM.ActiveCfg = Debug|ARM
 		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Debug|ARM.Build.0 = Debug|ARM
+		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Debug|ARM64.Build.0 = Debug|ARM64
 		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Debug|x64.ActiveCfg = Debug|x64
 		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Debug|x64.Build.0 = Debug|x64
 		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Debug|x86.ActiveCfg = Debug|Win32
 		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Debug|x86.Build.0 = Debug|Win32
 		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Release|ARM.ActiveCfg = Release|ARM
 		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Release|ARM.Build.0 = Release|ARM
+		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Release|ARM64.ActiveCfg = Release|ARM64
+		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Release|ARM64.Build.0 = Release|ARM64
 		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Release|x64.ActiveCfg = Release|x64
 		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Release|x64.Build.0 = Release|x64
 		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Release|x86.ActiveCfg = Release|Win32
 		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Release|x86.Build.0 = Release|Win32
 		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Test|ARM.ActiveCfg = Test|ARM
 		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Test|ARM.Build.0 = Test|ARM
+		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Test|ARM64.ActiveCfg = Test|ARM64
+		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Test|ARM64.Build.0 = Test|ARM64
 		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Test|x64.ActiveCfg = Test|x64
 		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Test|x64.Build.0 = Test|x64
 		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Test|x86.ActiveCfg = Test|Win32
 		{F6FAD160-5A4B-476A-93AC-33E0B3A18C0C}.Test|x86.Build.0 = Test|Win32
 		{706083F7-6AA4-4558-A153-6352EF9220F5}.Debug|ARM.ActiveCfg = Debug|ARM
 		{706083F7-6AA4-4558-A153-6352EF9220F5}.Debug|ARM.Build.0 = Debug|ARM
+		{706083F7-6AA4-4558-A153-6352EF9220F5}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{706083F7-6AA4-4558-A153-6352EF9220F5}.Debug|ARM64.Build.0 = Debug|ARM64
 		{706083F7-6AA4-4558-A153-6352EF9220F5}.Debug|x64.ActiveCfg = Debug|x64
 		{706083F7-6AA4-4558-A153-6352EF9220F5}.Debug|x64.Build.0 = Debug|x64
 		{706083F7-6AA4-4558-A153-6352EF9220F5}.Debug|x86.ActiveCfg = Debug|Win32
 		{706083F7-6AA4-4558-A153-6352EF9220F5}.Debug|x86.Build.0 = Debug|Win32
 		{706083F7-6AA4-4558-A153-6352EF9220F5}.Release|ARM.ActiveCfg = Release|ARM
 		{706083F7-6AA4-4558-A153-6352EF9220F5}.Release|ARM.Build.0 = Release|ARM
+		{706083F7-6AA4-4558-A153-6352EF9220F5}.Release|ARM64.ActiveCfg = Release|ARM64
+		{706083F7-6AA4-4558-A153-6352EF9220F5}.Release|ARM64.Build.0 = Release|ARM64
 		{706083F7-6AA4-4558-A153-6352EF9220F5}.Release|x64.ActiveCfg = Release|x64
 		{706083F7-6AA4-4558-A153-6352EF9220F5}.Release|x64.Build.0 = Release|x64
 		{706083F7-6AA4-4558-A153-6352EF9220F5}.Release|x86.ActiveCfg = Release|Win32
 		{706083F7-6AA4-4558-A153-6352EF9220F5}.Release|x86.Build.0 = Release|Win32
 		{706083F7-6AA4-4558-A153-6352EF9220F5}.Test|ARM.ActiveCfg = Test|ARM
 		{706083F7-6AA4-4558-A153-6352EF9220F5}.Test|ARM.Build.0 = Test|ARM
+		{706083F7-6AA4-4558-A153-6352EF9220F5}.Test|ARM64.ActiveCfg = Test|ARM64
+		{706083F7-6AA4-4558-A153-6352EF9220F5}.Test|ARM64.Build.0 = Test|ARM64
 		{706083F7-6AA4-4558-A153-6352EF9220F5}.Test|x64.ActiveCfg = Test|x64
 		{706083F7-6AA4-4558-A153-6352EF9220F5}.Test|x64.Build.0 = Test|x64
 		{706083F7-6AA4-4558-A153-6352EF9220F5}.Test|x86.ActiveCfg = Test|Win32
 		{706083F7-6AA4-4558-A153-6352EF9220F5}.Test|x86.Build.0 = Test|Win32
 		{706083F7-6AA4-4558-A153-6352EF9220EE}.Debug|ARM.ActiveCfg = Debug|ARM
 		{706083F7-6AA4-4558-A153-6352EF9220EE}.Debug|ARM.Build.0 = Debug|ARM
+		{706083F7-6AA4-4558-A153-6352EF9220EE}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{706083F7-6AA4-4558-A153-6352EF9220EE}.Debug|ARM64.Build.0 = Debug|ARM64
 		{706083F7-6AA4-4558-A153-6352EF9220EE}.Debug|x64.ActiveCfg = Debug|x64
 		{706083F7-6AA4-4558-A153-6352EF9220EE}.Debug|x64.Build.0 = Debug|x64
 		{706083F7-6AA4-4558-A153-6352EF9220EE}.Debug|x86.ActiveCfg = Debug|Win32
 		{706083F7-6AA4-4558-A153-6352EF9220EE}.Debug|x86.Build.0 = Debug|Win32
 		{706083F7-6AA4-4558-A153-6352EF9220EE}.Release|ARM.ActiveCfg = Release|ARM
 		{706083F7-6AA4-4558-A153-6352EF9220EE}.Release|ARM.Build.0 = Release|ARM
+		{706083F7-6AA4-4558-A153-6352EF9220EE}.Release|ARM64.ActiveCfg = Release|ARM64
+		{706083F7-6AA4-4558-A153-6352EF9220EE}.Release|ARM64.Build.0 = Release|ARM64
 		{706083F7-6AA4-4558-A153-6352EF9220EE}.Release|x64.ActiveCfg = Release|x64
 		{706083F7-6AA4-4558-A153-6352EF9220EE}.Release|x64.Build.0 = Release|x64
 		{706083F7-6AA4-4558-A153-6352EF9220EE}.Release|x86.ActiveCfg = Release|Win32
 		{706083F7-6AA4-4558-A153-6352EF9220EE}.Release|x86.Build.0 = Release|Win32
 		{706083F7-6AA4-4558-A153-6352EF9220EE}.Test|ARM.ActiveCfg = Test|ARM
 		{706083F7-6AA4-4558-A153-6352EF9220EE}.Test|ARM.Build.0 = Test|ARM
+		{706083F7-6AA4-4558-A153-6352EF9220EE}.Test|ARM64.ActiveCfg = Test|ARM64
+		{706083F7-6AA4-4558-A153-6352EF9220EE}.Test|ARM64.Build.0 = Test|ARM64
 		{706083F7-6AA4-4558-A153-6352EF9220EE}.Test|x64.ActiveCfg = Test|x64
 		{706083F7-6AA4-4558-A153-6352EF9220EE}.Test|x64.Build.0 = Test|x64
 		{706083F7-6AA4-4558-A153-6352EF9220EE}.Test|x86.ActiveCfg = Test|Win32
 		{706083F7-6AA4-4558-A153-6352EF9220EE}.Test|x86.Build.0 = Test|Win32
 		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Debug|ARM.ActiveCfg = Debug|ARM
 		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Debug|ARM.Build.0 = Debug|ARM
+		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Debug|ARM64.Build.0 = Debug|ARM64
 		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Debug|x64.ActiveCfg = Debug|x64
 		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Debug|x64.Build.0 = Debug|x64
 		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Debug|x86.ActiveCfg = Debug|Win32
 		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Debug|x86.Build.0 = Debug|Win32
 		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Release|ARM.ActiveCfg = Release|ARM
 		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Release|ARM.Build.0 = Release|ARM
+		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Release|ARM64.ActiveCfg = Release|ARM64
+		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Release|ARM64.Build.0 = Release|ARM64
 		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Release|x64.ActiveCfg = Release|x64
 		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Release|x64.Build.0 = Release|x64
 		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Release|x86.ActiveCfg = Release|Win32
 		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Release|x86.Build.0 = Release|Win32
 		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Test|ARM.ActiveCfg = Test|ARM
 		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Test|ARM.Build.0 = Test|ARM
+		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Test|ARM64.ActiveCfg = Test|ARM64
+		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Test|ARM64.Build.0 = Test|ARM64
 		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Test|x64.ActiveCfg = Test|x64
 		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Test|x64.Build.0 = Test|x64
 		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Test|x86.ActiveCfg = Test|Win32
 		{ABC904AD-9415-46F8-AA23-E33193F81F7C}.Test|x86.Build.0 = Test|Win32
 		{6979EC58-7A28-465C-A694-F3323A1F5401}.Debug|ARM.ActiveCfg = Debug|ARM
 		{6979EC58-7A28-465C-A694-F3323A1F5401}.Debug|ARM.Build.0 = Debug|ARM
+		{6979EC58-7A28-465C-A694-F3323A1F5401}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{6979EC58-7A28-465C-A694-F3323A1F5401}.Debug|ARM64.Build.0 = Debug|ARM64
 		{6979EC58-7A28-465C-A694-F3323A1F5401}.Debug|x64.ActiveCfg = Debug|x64
 		{6979EC58-7A28-465C-A694-F3323A1F5401}.Debug|x64.Build.0 = Debug|x64
 		{6979EC58-7A28-465C-A694-F3323A1F5401}.Debug|x86.ActiveCfg = Debug|Win32
 		{6979EC58-7A28-465C-A694-F3323A1F5401}.Debug|x86.Build.0 = Debug|Win32
 		{6979EC58-7A28-465C-A694-F3323A1F5401}.Release|ARM.ActiveCfg = Release|ARM
 		{6979EC58-7A28-465C-A694-F3323A1F5401}.Release|ARM.Build.0 = Release|ARM
+		{6979EC58-7A28-465C-A694-F3323A1F5401}.Release|ARM64.ActiveCfg = Release|ARM64
+		{6979EC58-7A28-465C-A694-F3323A1F5401}.Release|ARM64.Build.0 = Release|ARM64
 		{6979EC58-7A28-465C-A694-F3323A1F5401}.Release|x64.ActiveCfg = Release|x64
 		{6979EC58-7A28-465C-A694-F3323A1F5401}.Release|x64.Build.0 = Release|x64
 		{6979EC58-7A28-465C-A694-F3323A1F5401}.Release|x86.ActiveCfg = Release|Win32
 		{6979EC58-7A28-465C-A694-F3323A1F5401}.Release|x86.Build.0 = Release|Win32
 		{6979EC58-7A28-465C-A694-F3323A1F5401}.Test|ARM.ActiveCfg = Test|ARM
 		{6979EC58-7A28-465C-A694-F3323A1F5401}.Test|ARM.Build.0 = Test|ARM
+		{6979EC58-7A28-465C-A694-F3323A1F5401}.Test|ARM64.ActiveCfg = Test|ARM64
+		{6979EC58-7A28-465C-A694-F3323A1F5401}.Test|ARM64.Build.0 = Test|ARM64
 		{6979EC58-7A28-465C-A694-F3323A1F5401}.Test|x64.ActiveCfg = Test|x64
 		{6979EC58-7A28-465C-A694-F3323A1F5401}.Test|x64.Build.0 = Test|x64
 		{6979EC58-7A28-465C-A694-F3323A1F5401}.Test|x86.ActiveCfg = Test|Win32
 		{6979EC58-7A28-465C-A694-F3323A1F5401}.Test|x86.Build.0 = Test|Win32
 		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Debug|ARM.ActiveCfg = Debug|ARM
 		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Debug|ARM.Build.0 = Debug|ARM
+		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Debug|ARM64.Build.0 = Debug|ARM64
 		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Debug|x64.ActiveCfg = Debug|x64
 		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Debug|x64.Build.0 = Debug|x64
 		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Debug|x86.ActiveCfg = Debug|Win32
 		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Debug|x86.Build.0 = Debug|Win32
 		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Release|ARM.ActiveCfg = Release|ARM
 		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Release|ARM.Build.0 = Release|ARM
+		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Release|ARM64.ActiveCfg = Release|ARM64
+		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Release|ARM64.Build.0 = Release|ARM64
 		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Release|x64.ActiveCfg = Release|x64
 		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Release|x64.Build.0 = Release|x64
 		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Release|x86.ActiveCfg = Release|Win32
 		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Release|x86.Build.0 = Release|Win32
 		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Test|ARM.ActiveCfg = Test|ARM
 		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Test|ARM.Build.0 = Test|ARM
+		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Test|ARM64.ActiveCfg = Test|ARM64
+		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Test|ARM64.Build.0 = Test|ARM64
 		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Test|x64.ActiveCfg = Test|x64
 		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Test|x64.Build.0 = Test|x64
 		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Test|x86.ActiveCfg = Test|Win32
 		{0216C4BE-86CE-478D-A134-23EAEE545B9D}.Test|x86.Build.0 = Test|Win32
 		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Debug|ARM.ActiveCfg = Debug|ARM
 		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Debug|ARM.Build.0 = Debug|ARM
+		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Debug|ARM64.Build.0 = Debug|ARM64
 		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Debug|x64.ActiveCfg = Debug|x64
 		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Debug|x64.Build.0 = Debug|x64
 		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Debug|x86.ActiveCfg = Debug|Win32
 		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Debug|x86.Build.0 = Debug|Win32
 		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Release|ARM.ActiveCfg = Release|ARM
 		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Release|ARM.Build.0 = Release|ARM
+		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Release|ARM64.ActiveCfg = Release|ARM64
+		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Release|ARM64.Build.0 = Release|ARM64
 		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Release|x64.ActiveCfg = Release|x64
 		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Release|x64.Build.0 = Release|x64
 		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Release|x86.ActiveCfg = Release|Win32
 		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Release|x86.Build.0 = Release|Win32
 		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Test|ARM.ActiveCfg = Test|ARM
 		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Test|ARM.Build.0 = Test|ARM
+		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Test|ARM64.ActiveCfg = Test|ARM64
+		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Test|ARM64.Build.0 = Test|ARM64
 		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Test|x64.ActiveCfg = Test|x64
 		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Test|x64.Build.0 = Test|x64
 		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Test|x86.ActiveCfg = Test|Win32
 		{80A70F57-0F89-458F-AFD3-CE2159EB9BB1}.Test|x86.Build.0 = Test|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110EE}.Debug|ARM.ActiveCfg = Debug|ARM
 		{706083F7-6AA4-4558-A153-6352EF9110EE}.Debug|ARM.Build.0 = Debug|ARM
+		{706083F7-6AA4-4558-A153-6352EF9110EE}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{706083F7-6AA4-4558-A153-6352EF9110EE}.Debug|ARM64.Build.0 = Debug|ARM64
 		{706083F7-6AA4-4558-A153-6352EF9110EE}.Debug|x64.ActiveCfg = Debug|x64
 		{706083F7-6AA4-4558-A153-6352EF9110EE}.Debug|x64.Build.0 = Debug|x64
 		{706083F7-6AA4-4558-A153-6352EF9110EE}.Debug|x86.ActiveCfg = Debug|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110EE}.Debug|x86.Build.0 = Debug|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110EE}.Release|ARM.ActiveCfg = Release|ARM
 		{706083F7-6AA4-4558-A153-6352EF9110EE}.Release|ARM.Build.0 = Release|ARM
+		{706083F7-6AA4-4558-A153-6352EF9110EE}.Release|ARM64.ActiveCfg = Release|ARM64
+		{706083F7-6AA4-4558-A153-6352EF9110EE}.Release|ARM64.Build.0 = Release|ARM64
 		{706083F7-6AA4-4558-A153-6352EF9110EE}.Release|x64.ActiveCfg = Release|x64
 		{706083F7-6AA4-4558-A153-6352EF9110EE}.Release|x64.Build.0 = Release|x64
 		{706083F7-6AA4-4558-A153-6352EF9110EE}.Release|x86.ActiveCfg = Release|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110EE}.Release|x86.Build.0 = Release|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110EE}.Test|ARM.ActiveCfg = Test|ARM
 		{706083F7-6AA4-4558-A153-6352EF9110EE}.Test|ARM.Build.0 = Test|ARM
+		{706083F7-6AA4-4558-A153-6352EF9110EE}.Test|ARM64.ActiveCfg = Test|ARM64
+		{706083F7-6AA4-4558-A153-6352EF9110EE}.Test|ARM64.Build.0 = Test|ARM64
 		{706083F7-6AA4-4558-A153-6352EF9110EE}.Test|x64.ActiveCfg = Test|x64
 		{706083F7-6AA4-4558-A153-6352EF9110EE}.Test|x64.Build.0 = Test|x64
 		{706083F7-6AA4-4558-A153-6352EF9110EE}.Test|x86.ActiveCfg = Test|Win32
 		{706083F7-6AA4-4558-A153-6352EF9110EE}.Test|x86.Build.0 = Test|Win32
 		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Debug|ARM.ActiveCfg = Debug|ARM
 		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Debug|ARM.Build.0 = Debug|ARM
+		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Debug|ARM64.Build.0 = Debug|ARM64
 		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Debug|x64.ActiveCfg = Debug|x64
 		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Debug|x64.Build.0 = Debug|x64
 		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Debug|x86.ActiveCfg = Debug|Win32
 		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Debug|x86.Build.0 = Debug|Win32
 		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Release|ARM.ActiveCfg = Release|ARM
 		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Release|ARM.Build.0 = Release|ARM
+		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Release|ARM64.ActiveCfg = Release|ARM64
+		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Release|ARM64.Build.0 = Release|ARM64
 		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Release|x64.ActiveCfg = Release|x64
 		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Release|x64.Build.0 = Release|x64
 		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Release|x86.ActiveCfg = Release|Win32
 		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Release|x86.Build.0 = Release|Win32
 		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Test|ARM.ActiveCfg = Test|ARM
 		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Test|ARM.Build.0 = Test|ARM
+		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Test|ARM64.ActiveCfg = Test|ARM64
+		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Test|ARM64.Build.0 = Test|ARM64
 		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Test|x64.ActiveCfg = Test|x64
 		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Test|x64.Build.0 = Test|x64
 		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Test|x86.ActiveCfg = Test|Win32
 		{53D52B0B-86D9-4D31-AD09-0D6B3C063ADD}.Test|x86.Build.0 = Test|Win32
 		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Debug|ARM.ActiveCfg = Debug|ARM
 		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Debug|ARM.Build.0 = Debug|ARM
+		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Debug|ARM64.Build.0 = Debug|ARM64
 		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Debug|x64.ActiveCfg = Debug|x64
 		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Debug|x64.Build.0 = Debug|x64
 		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Debug|x86.ActiveCfg = Debug|Win32
 		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Debug|x86.Build.0 = Debug|Win32
 		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Release|ARM.ActiveCfg = Release|ARM
 		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Release|ARM.Build.0 = Release|ARM
+		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Release|ARM64.ActiveCfg = Release|ARM64
+		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Release|ARM64.Build.0 = Release|ARM64
 		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Release|x64.ActiveCfg = Release|x64
 		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Release|x64.Build.0 = Release|x64
 		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Release|x86.ActiveCfg = Release|Win32
 		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Release|x86.Build.0 = Release|Win32
 		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Test|ARM.ActiveCfg = Test|ARM
 		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Test|ARM.Build.0 = Test|ARM
+		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Test|ARM64.ActiveCfg = Test|ARM64
+		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Test|ARM64.Build.0 = Test|ARM64
 		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Test|x64.ActiveCfg = Test|x64
 		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Test|x64.Build.0 = Test|x64
 		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Test|x86.ActiveCfg = Test|Win32
 		{73CE5C59-E0BA-413D-A73C-3EECE067891B}.Test|x86.Build.0 = Test|Win32
 		{129AC184-877C-441F-AC49-A692CE700E62}.Debug|ARM.ActiveCfg = Debug|ARM
 		{129AC184-877C-441F-AC49-A692CE700E62}.Debug|ARM.Build.0 = Debug|ARM
+		{129AC184-877C-441F-AC49-A692CE700E62}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{129AC184-877C-441F-AC49-A692CE700E62}.Debug|ARM64.Build.0 = Debug|ARM64
 		{129AC184-877C-441F-AC49-A692CE700E62}.Debug|x64.ActiveCfg = Debug|x64
 		{129AC184-877C-441F-AC49-A692CE700E62}.Debug|x64.Build.0 = Debug|x64
 		{129AC184-877C-441F-AC49-A692CE700E62}.Debug|x86.ActiveCfg = Debug|Win32
 		{129AC184-877C-441F-AC49-A692CE700E62}.Debug|x86.Build.0 = Debug|Win32
 		{129AC184-877C-441F-AC49-A692CE700E62}.Release|ARM.ActiveCfg = Release|ARM
 		{129AC184-877C-441F-AC49-A692CE700E62}.Release|ARM.Build.0 = Release|ARM
+		{129AC184-877C-441F-AC49-A692CE700E62}.Release|ARM64.ActiveCfg = Release|ARM64
+		{129AC184-877C-441F-AC49-A692CE700E62}.Release|ARM64.Build.0 = Release|ARM64
 		{129AC184-877C-441F-AC49-A692CE700E62}.Release|x64.ActiveCfg = Release|x64
 		{129AC184-877C-441F-AC49-A692CE700E62}.Release|x64.Build.0 = Release|x64
 		{129AC184-877C-441F-AC49-A692CE700E62}.Release|x86.ActiveCfg = Release|Win32
 		{129AC184-877C-441F-AC49-A692CE700E62}.Release|x86.Build.0 = Release|Win32
 		{129AC184-877C-441F-AC49-A692CE700E62}.Test|ARM.ActiveCfg = Test|ARM
 		{129AC184-877C-441F-AC49-A692CE700E62}.Test|ARM.Build.0 = Test|ARM
+		{129AC184-877C-441F-AC49-A692CE700E62}.Test|ARM64.ActiveCfg = Test|ARM64
+		{129AC184-877C-441F-AC49-A692CE700E62}.Test|ARM64.Build.0 = Test|ARM64
 		{129AC184-877C-441F-AC49-A692CE700E62}.Test|x64.ActiveCfg = Test|x64
 		{129AC184-877C-441F-AC49-A692CE700E62}.Test|x64.Build.0 = Test|x64
 		{129AC184-877C-441F-AC49-A692CE700E62}.Test|x86.ActiveCfg = Test|Win32
 		{129AC184-877C-441F-AC49-A692CE700E62}.Test|x86.Build.0 = Test|Win32
 		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Debug|ARM.ActiveCfg = Debug|ARM
 		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Debug|ARM.Build.0 = Debug|ARM
+		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Debug|ARM64.Build.0 = Debug|ARM64
 		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Debug|x64.ActiveCfg = Debug|x64
 		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Debug|x64.Build.0 = Debug|x64
 		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Debug|x86.ActiveCfg = Debug|Win32
 		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Debug|x86.Build.0 = Debug|Win32
 		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Release|ARM.ActiveCfg = Release|ARM
 		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Release|ARM.Build.0 = Release|ARM
+		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Release|ARM64.ActiveCfg = Release|ARM64
+		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Release|ARM64.Build.0 = Release|ARM64
 		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Release|x64.ActiveCfg = Release|x64
 		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Release|x64.Build.0 = Release|x64
 		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Release|x86.ActiveCfg = Release|Win32
 		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Release|x86.Build.0 = Release|Win32
 		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Test|ARM.ActiveCfg = Test|ARM
 		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Test|ARM.Build.0 = Test|ARM
+		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Test|ARM64.ActiveCfg = Test|ARM64
+		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Test|ARM64.Build.0 = Test|ARM64
 		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Test|x64.ActiveCfg = Test|x64
 		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Test|x64.Build.0 = Test|x64
 		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Test|x86.ActiveCfg = Test|Win32
 		{FFD0FA88-7A39-407E-A92D-D3A06273E1AC}.Test|x86.Build.0 = Test|Win32
 		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Debug|ARM.ActiveCfg = Debug|ARM
 		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Debug|ARM.Build.0 = Debug|ARM
+		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Debug|ARM64.Build.0 = Debug|ARM64
 		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Debug|x64.ActiveCfg = Debug|x64
 		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Debug|x64.Build.0 = Debug|x64
 		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Debug|x86.ActiveCfg = Debug|Win32
 		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Debug|x86.Build.0 = Debug|Win32
 		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Release|ARM.ActiveCfg = Release|ARM
 		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Release|ARM.Build.0 = Release|ARM
+		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Release|ARM64.ActiveCfg = Release|ARM64
+		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Release|ARM64.Build.0 = Release|ARM64
 		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Release|x64.ActiveCfg = Release|x64
 		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Release|x64.Build.0 = Release|x64
 		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Release|x86.ActiveCfg = Release|Win32
 		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Release|x86.Build.0 = Release|Win32
 		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Test|ARM.ActiveCfg = Test|ARM
 		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Test|ARM.Build.0 = Test|ARM
+		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Test|ARM64.ActiveCfg = Test|ARM64
+		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Test|ARM64.Build.0 = Test|ARM64
 		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Test|x64.ActiveCfg = Test|x64
 		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Test|x64.Build.0 = Test|x64
 		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Test|x86.ActiveCfg = Test|Win32
 		{0DB5ECBC-9385-4A65-BE2C-4EF7C65CB719}.Test|x86.Build.0 = Test|Win32
 		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Debug|ARM.ActiveCfg = Debug|ARM
 		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Debug|ARM.Build.0 = Debug|ARM
+		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Debug|ARM64.Build.0 = Debug|ARM64
 		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Debug|x64.ActiveCfg = Debug|x64
 		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Debug|x64.Build.0 = Debug|x64
 		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Debug|x86.ActiveCfg = Debug|Win32
 		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Debug|x86.Build.0 = Debug|Win32
 		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Release|ARM.ActiveCfg = Release|ARM
 		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Release|ARM.Build.0 = Release|ARM
+		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Release|ARM64.ActiveCfg = Release|ARM64
+		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Release|ARM64.Build.0 = Release|ARM64
 		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Release|x64.ActiveCfg = Release|x64
 		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Release|x64.Build.0 = Release|x64
 		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Release|x86.ActiveCfg = Release|Win32
 		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Release|x86.Build.0 = Release|Win32
 		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Test|ARM.ActiveCfg = Test|ARM
 		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Test|ARM.Build.0 = Test|ARM
+		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Test|ARM64.ActiveCfg = Test|ARM64
+		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Test|ARM64.Build.0 = Test|ARM64
 		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Test|x64.ActiveCfg = Test|x64
 		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Test|x64.Build.0 = Test|x64
 		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Test|x86.ActiveCfg = Test|Win32
 		{31024620-7B97-4EC7-96E8-E7B296A17DF4}.Test|x86.Build.0 = Test|Win32
 		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Debug|ARM.ActiveCfg = Debug|ARM
 		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Debug|ARM.Build.0 = Debug|ARM
+		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Debug|ARM64.Build.0 = Debug|ARM64
 		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Debug|x64.ActiveCfg = Debug|x64
 		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Debug|x64.Build.0 = Debug|x64
 		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Debug|x86.ActiveCfg = Debug|Win32
 		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Debug|x86.Build.0 = Debug|Win32
 		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Release|ARM.ActiveCfg = Release|ARM
 		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Release|ARM.Build.0 = Release|ARM
+		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Release|ARM64.ActiveCfg = Release|ARM64
+		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Release|ARM64.Build.0 = Release|ARM64
 		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Release|x64.ActiveCfg = Release|x64
 		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Release|x64.Build.0 = Release|x64
 		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Release|x86.ActiveCfg = Release|Win32
 		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Release|x86.Build.0 = Release|Win32
 		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Test|ARM.ActiveCfg = Test|ARM
 		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Test|ARM.Build.0 = Test|ARM
+		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Test|ARM64.ActiveCfg = Test|ARM64
+		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Test|ARM64.Build.0 = Test|ARM64
 		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Test|x64.ActiveCfg = Test|x64
 		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Test|x64.Build.0 = Test|x64
 		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Test|x86.ActiveCfg = Test|Win32
 		{EDEB02E2-F389-4CBF-AE7D-3041A934F86B}.Test|x86.Build.0 = Test|Win32
 		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Debug|ARM.ActiveCfg = Debug|ARM
 		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Debug|ARM.Build.0 = Debug|ARM
+		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Debug|ARM64.Build.0 = Debug|ARM64
 		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Debug|x64.ActiveCfg = Debug|x64
 		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Debug|x64.Build.0 = Debug|x64
 		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Debug|x86.ActiveCfg = Debug|Win32
 		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Debug|x86.Build.0 = Debug|Win32
 		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Release|ARM.ActiveCfg = Release|ARM
 		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Release|ARM.Build.0 = Release|ARM
+		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Release|ARM64.ActiveCfg = Release|ARM64
+		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Release|ARM64.Build.0 = Release|ARM64
 		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Release|x64.ActiveCfg = Release|x64
 		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Release|x64.Build.0 = Release|x64
 		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Release|x86.ActiveCfg = Release|Win32
 		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Release|x86.Build.0 = Release|Win32
 		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Test|ARM.ActiveCfg = Test|ARM
 		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Test|ARM.Build.0 = Test|ARM
+		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Test|ARM64.ActiveCfg = Test|ARM64
+		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Test|ARM64.Build.0 = Test|ARM64
 		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Test|x64.ActiveCfg = Test|x64
 		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Test|x64.Build.0 = Test|x64
 		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Test|x86.ActiveCfg = Test|Win32
 		{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A}.Test|x86.Build.0 = Test|Win32
 		{02D4FD92-AD34-40CA-85DF-4D6C7E3A1F22}.Debug|ARM.ActiveCfg = Debug|Win32
+		{02D4FD92-AD34-40CA-85DF-4D6C7E3A1F22}.Debug|ARM64.ActiveCfg = Debug|ARM64
 		{02D4FD92-AD34-40CA-85DF-4D6C7E3A1F22}.Debug|x64.ActiveCfg = Debug|x64
 		{02D4FD92-AD34-40CA-85DF-4D6C7E3A1F22}.Debug|x86.ActiveCfg = Debug|Win32
 		{02D4FD92-AD34-40CA-85DF-4D6C7E3A1F22}.Release|ARM.ActiveCfg = Release|Win32
+		{02D4FD92-AD34-40CA-85DF-4D6C7E3A1F22}.Release|ARM64.ActiveCfg = Release|ARM64
 		{02D4FD92-AD34-40CA-85DF-4D6C7E3A1F22}.Release|x64.ActiveCfg = Release|x64
 		{02D4FD92-AD34-40CA-85DF-4D6C7E3A1F22}.Release|x86.ActiveCfg = Release|Win32
 		{02D4FD92-AD34-40CA-85DF-4D6C7E3A1F22}.Test|ARM.ActiveCfg = Release|x64
+		{02D4FD92-AD34-40CA-85DF-4D6C7E3A1F22}.Test|ARM64.ActiveCfg = Test|ARM64
 		{02D4FD92-AD34-40CA-85DF-4D6C7E3A1F22}.Test|x64.ActiveCfg = Release|x64
 		{02D4FD92-AD34-40CA-85DF-4D6C7E3A1F22}.Test|x86.ActiveCfg = Release|Win32
 		{F48B3491-81DF-4F49-B35F-3308CBE6A379}.Debug|ARM.ActiveCfg = Debug|ARM
+		{F48B3491-81DF-4F49-B35F-3308CBE6A379}.Debug|ARM64.ActiveCfg = Debug|ARM64
 		{F48B3491-81DF-4F49-B35F-3308CBE6A379}.Debug|x64.ActiveCfg = Debug|x64
 		{F48B3491-81DF-4F49-B35F-3308CBE6A379}.Debug|x64.Build.0 = Debug|x64
 		{F48B3491-81DF-4F49-B35F-3308CBE6A379}.Debug|x86.ActiveCfg = Debug|Win32
 		{F48B3491-81DF-4F49-B35F-3308CBE6A379}.Debug|x86.Build.0 = Debug|Win32
 		{F48B3491-81DF-4F49-B35F-3308CBE6A379}.Release|ARM.ActiveCfg = Release|ARM
+		{F48B3491-81DF-4F49-B35F-3308CBE6A379}.Release|ARM64.ActiveCfg = Release|ARM64
 		{F48B3491-81DF-4F49-B35F-3308CBE6A379}.Release|x64.ActiveCfg = Release|x64
 		{F48B3491-81DF-4F49-B35F-3308CBE6A379}.Release|x86.ActiveCfg = Release|Win32
 		{F48B3491-81DF-4F49-B35F-3308CBE6A379}.Test|ARM.ActiveCfg = Test|ARM
+		{F48B3491-81DF-4F49-B35F-3308CBE6A379}.Test|ARM64.ActiveCfg = Test|ARM64
 		{F48B3491-81DF-4F49-B35F-3308CBE6A379}.Test|x64.ActiveCfg = Test|x64
 		{F48B3491-81DF-4F49-B35F-3308CBE6A379}.Test|x64.Build.0 = Test|x64
 		{F48B3491-81DF-4F49-B35F-3308CBE6A379}.Test|x86.ActiveCfg = Test|Win32
 		{F48B3491-81DF-4F49-B35F-3308CBE6A379}.Test|x86.Build.0 = Test|Win32
 		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Debug|ARM.ActiveCfg = Debug|ARM
 		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Debug|ARM.Build.0 = Debug|ARM
+		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Debug|ARM64.Build.0 = Debug|ARM64
 		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Debug|x64.ActiveCfg = Debug|x64
 		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Debug|x64.Build.0 = Debug|x64
 		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Debug|x86.ActiveCfg = Debug|Win32
 		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Debug|x86.Build.0 = Debug|Win32
 		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Release|ARM.ActiveCfg = Release|ARM
 		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Release|ARM.Build.0 = Release|ARM
+		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Release|ARM64.ActiveCfg = Release|ARM64
+		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Release|ARM64.Build.0 = Release|ARM64
 		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Release|x64.ActiveCfg = Release|x64
 		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Release|x64.Build.0 = Release|x64
 		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Release|x86.ActiveCfg = Release|Win32
 		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Release|x86.Build.0 = Release|Win32
 		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Test|ARM.ActiveCfg = Test|ARM
 		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Test|ARM.Build.0 = Test|ARM
+		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Test|ARM64.ActiveCfg = Test|ARM64
+		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Test|ARM64.Build.0 = Test|ARM64
 		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Test|x64.ActiveCfg = Test|x64
 		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Test|x64.Build.0 = Test|x64
 		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Test|x86.ActiveCfg = Test|Win32
 		{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Test|x86.Build.0 = Test|Win32
 		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Debug|ARM.ActiveCfg = Debug|ARM
 		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Debug|ARM.Build.0 = Debug|ARM
+		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Debug|ARM64.Build.0 = Debug|ARM64
 		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Debug|x64.ActiveCfg = Debug|x64
 		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Debug|x64.Build.0 = Debug|x64
 		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Debug|x86.ActiveCfg = Debug|Win32
 		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Debug|x86.Build.0 = Debug|Win32
 		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Release|ARM.ActiveCfg = Release|ARM
 		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Release|ARM.Build.0 = Release|ARM
+		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Release|ARM64.ActiveCfg = Release|ARM64
+		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Release|ARM64.Build.0 = Release|ARM64
 		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Release|x64.ActiveCfg = Release|x64
 		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Release|x64.Build.0 = Release|x64
 		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Release|x86.ActiveCfg = Release|Win32
 		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Release|x86.Build.0 = Release|Win32
 		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Test|ARM.ActiveCfg = Test|ARM
 		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Test|ARM.Build.0 = Test|ARM
+		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Test|ARM64.ActiveCfg = Test|ARM64
+		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Test|ARM64.Build.0 = Test|ARM64
 		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Test|x64.ActiveCfg = Test|x64
 		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Test|x64.Build.0 = Test|x64
 		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Test|x86.ActiveCfg = Test|Win32
 		{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Test|x86.Build.0 = Test|Win32
 		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Debug|ARM.ActiveCfg = Debug|ARM
 		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Debug|ARM.Build.0 = Debug|ARM
+		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Debug|ARM64.Build.0 = Debug|ARM64
 		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Debug|x64.ActiveCfg = Debug|x64
 		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Debug|x64.Build.0 = Debug|x64
 		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Debug|x86.ActiveCfg = Debug|Win32
 		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Debug|x86.Build.0 = Debug|Win32
 		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Release|ARM.ActiveCfg = Release|ARM
 		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Release|ARM.Build.0 = Release|ARM
+		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Release|ARM64.ActiveCfg = Release|ARM64
+		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Release|ARM64.Build.0 = Release|ARM64
 		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Release|x64.ActiveCfg = Release|x64
 		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Release|x64.Build.0 = Release|x64
 		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Release|x86.ActiveCfg = Release|Win32
 		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Release|x86.Build.0 = Release|Win32
 		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Test|ARM.ActiveCfg = Test|ARM
 		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Test|ARM.Build.0 = Test|ARM
+		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Test|ARM64.ActiveCfg = Test|ARM64
+		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Test|ARM64.Build.0 = Test|ARM64
 		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Test|x64.ActiveCfg = Test|x64
 		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Test|x64.Build.0 = Test|x64
 		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Test|x86.ActiveCfg = Test|Win32
 		{0494C753-5BB9-45AA-874E-E61B9922E88F}.Test|x86.Build.0 = Test|Win32
 		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Debug|ARM.ActiveCfg = Debug|ARM
 		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Debug|ARM.Build.0 = Debug|ARM
+		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Debug|ARM64.ActiveCfg = Debug|ARM64
+		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Debug|ARM64.Build.0 = Debug|ARM64
 		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Debug|x64.ActiveCfg = Debug|x64
 		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Debug|x64.Build.0 = Debug|x64
 		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Debug|x86.ActiveCfg = Debug|Win32
 		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Debug|x86.Build.0 = Debug|Win32
 		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Release|ARM.ActiveCfg = Release|ARM
 		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Release|ARM.Build.0 = Release|ARM
+		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Release|ARM64.ActiveCfg = Release|ARM64
+		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Release|ARM64.Build.0 = Release|ARM64
 		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Release|x64.ActiveCfg = Release|x64
 		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Release|x64.Build.0 = Release|x64
 		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Release|x86.ActiveCfg = Release|Win32
 		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Release|x86.Build.0 = Release|Win32
 		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Test|ARM.ActiveCfg = Test|ARM
 		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Test|ARM.Build.0 = Test|ARM
+		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Test|ARM64.ActiveCfg = Test|ARM64
+		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Test|ARM64.Build.0 = Test|ARM64
 		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Test|x64.ActiveCfg = Test|x64
 		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Test|x64.Build.0 = Test|x64
 		{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Test|x86.ActiveCfg = Test|Win32

+ 3 - 14
Build/Common.Build.ProjectConfiguration.props

@@ -70,19 +70,8 @@
       <Platform>ARM64</Platform>
     </ProjectConfiguration>
   </ItemGroup>
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|CHPE">
-      <Configuration>Debug</Configuration>
-      <Platform>CHPE</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Test|CHPE">
-      <Configuration>Test</Configuration>
-      <Platform>CHPE</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|CHPE">
-      <Configuration>Release</Configuration>
-      <Platform>CHPE</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
+  <PropertyGroup>
+    <WindowsSDKDesktopARM64Support Condition="'$(Platform)'=='Arm64'">true</WindowsSDKDesktopARM64Support>
+  </PropertyGroup>
 </Project>
 

+ 70 - 70
lib/Backend/arm64/ARM64Encoder.h

@@ -289,7 +289,7 @@ public:
         ULONG Data
         )
     {
-        NT_ASSERT(m_Offset < m_MaxOffset);
+        Assert(m_Offset < m_MaxOffset);
         m_BasePtr[m_Offset++] = Data;
         return 4;
     }
@@ -417,7 +417,7 @@ public:
     ULONG
     Encode() const
     {
-        NT_ASSERT(!IsExtended());
+        Assert(!IsExtended());
         return (((ShiftType() & 3) << 22) |
                  (RawRegister() << 16) |
                  (ShiftCount() << 10));
@@ -426,7 +426,7 @@ public:
     ULONG
     EncodeExtended() const
     {
-        NT_ASSERT(IsExtended());
+        Assert(IsExtended());
         return (((RawRegister() << 16) |
                  (ShiftType() & 7) << 13) |
                  (ShiftCount() << 10));
@@ -440,7 +440,7 @@ protected:
         )
     {
         UNREFERENCED_PARAMETER(Reg);
-        NT_ASSERT(Reg >= ARMREG_FIRST && Reg <= ARMREG_LAST);
+        Assert(Reg >= ARMREG_FIRST && Reg <= ARMREG_LAST);
     }
 
     static
@@ -452,12 +452,12 @@ protected:
     {
         UNREFERENCED_PARAMETER(Type);
         UNREFERENCED_PARAMETER(Amount);
-        NT_ASSERT(Type != SHIFT_NONE || Amount == 0);
-        NT_ASSERT(Type != SHIFT_LSL || (Amount >= 0 && Amount <= 63));
-        NT_ASSERT(Type != SHIFT_LSR || (Amount >= 0 && Amount <= 63));
-        NT_ASSERT(Type != SHIFT_ASR || (Amount >= 0 && Amount <= 63));
-        NT_ASSERT(Type != SHIFT_ROR || (Amount >= 0 && Amount <= 63));
-        NT_ASSERT(Type < EXTEND_UXTB || (Amount >= 0 && Amount <= 4));
+        Assert(Type != SHIFT_NONE || Amount == 0);
+        Assert(Type != SHIFT_LSL || (Amount >= 0 && Amount <= 63));
+        Assert(Type != SHIFT_LSR || (Amount >= 0 && Amount <= 63));
+        Assert(Type != SHIFT_ASR || (Amount >= 0 && Amount <= 63));
+        Assert(Type != SHIFT_ROR || (Amount >= 0 && Amount <= 63));
+        Assert(Type < EXTEND_UXTB || (Amount >= 0 && Amount <= 4));
     }
 
     ULONG m_Encoded;
@@ -482,7 +482,7 @@ public:
         )
         : Arm64RegisterParam(Src.Register())
     {
-        NT_ASSERT(Src.IsRegOnly());
+        Assert(Src.IsRegOnly());
     }
 
     bool
@@ -531,7 +531,7 @@ public:
     ~ArmBranchLinker()
     {
         if (HasInstruction() && HasTarget()) {
-            NT_ASSERT(m_Resolved);
+            Assert(m_Resolved);
         }
     }
     
@@ -560,7 +560,7 @@ public:
         ULONG InstructionOffset
         )
     {
-        NT_ASSERT(InstructionOffset % 4 == 0);
+        Assert(InstructionOffset % 4 == 0);
         m_InstructionOffset = InstructionOffset / 4;
     }
 
@@ -587,7 +587,7 @@ public:
         INT32 OffsetFromEmitterBase
         )
     {
-        NT_ASSERT(OffsetFromEmitterBase % 4 == 0);
+        Assert(OffsetFromEmitterBase % 4 == 0);
         m_TargetOffset = OffsetFromEmitterBase / 4;
     }
     
@@ -607,7 +607,7 @@ public:
         )
     {
         ULONG_PTR Delta = ULONG_PTR(Target) - ULONG_PTR(Emitter.GetEmitAreaBase());
-        NT_ASSERT(INT32(Delta) == Delta);
+        Assert(INT32(Delta) == Delta);
         SetTarget(INT32(Delta));
         Resolve(Emitter);
     }
@@ -667,7 +667,7 @@ public:
         } else if ((Instruction & 0x7e000000) == 0x36000000) {
             Class = CLASS_IMM14;
         } else {
-            NT_ASSERT(FALSE);
+            Assert(FALSE);
             return;
         }
         
@@ -688,23 +688,23 @@ private:
         switch (m_BranchClass) {
         
         case CLASS_IMM26:
-            NT_ASSERT(((INT32(Delta << (32-26))) >> (32-26)) == Delta);
-            NT_ASSERT((Instruction & 0x03ffffff) == 0);
-            NT_ASSERT((Instruction & 0x7c000000) == 0x14000000);
+            Assert(((INT32(Delta << (32-26))) >> (32-26)) == Delta);
+            Assert((Instruction & 0x03ffffff) == 0);
+            Assert((Instruction & 0x7c000000) == 0x14000000);
             Instruction = (Instruction & 0xfc000000) | (Delta & 0x03ffffff);
             break;
         
         case CLASS_IMM19:
-            NT_ASSERT(((INT32(Delta << (32-19))) >> (32-19)) == Delta);
-            NT_ASSERT((Instruction & 0x00ffffe0) == 0);
-            NT_ASSERT((Instruction & 0xff000000) == 0x54000000 || (Instruction & 0x7e000000) == 0x34000000);
+            Assert(((INT32(Delta << (32-19))) >> (32-19)) == Delta);
+            Assert((Instruction & 0x00ffffe0) == 0);
+            Assert((Instruction & 0xff000000) == 0x54000000 || (Instruction & 0x7e000000) == 0x34000000);
             Instruction = (Instruction & 0xff00001f) | ((Delta << 5) & 0x00ffffe0);
             break;
         
         case CLASS_IMM14:
-            NT_ASSERT(((INT32(Delta << (32-14))) >> (32-14)) == Delta);
-            NT_ASSERT((Instruction & 0x0007ffe0) == 0);
-            NT_ASSERT((Instruction & 0x7e000000) == 0x36000000);
+            Assert(((INT32(Delta << (32-14))) >> (32-14)) == Delta);
+            Assert((Instruction & 0x0007ffe0) == 0);
+            Assert((Instruction & 0x7e000000) == 0x36000000);
             Instruction = (Instruction & 0xfff8001f) | ((Delta << 5) & 0x0007ffe0);
             break;
         }
@@ -830,7 +830,7 @@ EmitMrs(
     )
 {
 
-    NT_ASSERT(SystemReg < (1 << 15));
+    Assert(SystemReg < (1 << 15));
 
     return Emitter.EmitFourBytes(0xd5300000 | (SystemReg << 5) | Dest.RawRegister());
 }
@@ -849,7 +849,7 @@ EmitMsr(
     )
 {
 
-    NT_ASSERT(SystemReg < (1 << 15));
+    Assert(SystemReg < (1 << 15));
 
     return Emitter.EmitFourBytes(0xd5100000 | (SystemReg << 5) | Source.RawRegister());
 }
@@ -866,8 +866,8 @@ BranchOpcode(
 
 {
 
-    NT_ASSERT((Offset >= -(1 << 25)) && (Offset < (1 << 25)));
-    NT_ASSERT((Offset & 0x3) == 0);
+    Assert((Offset >= -(1 << 25)) && (Offset < (1 << 25)));
+    Assert((Offset & 0x3) == 0);
 
     LONG OffsetInWords = (Offset / 4);
 
@@ -976,7 +976,7 @@ EmitTbz(
     ArmBranchLinker &Linker
     )
 {
-    //NT_ASSERT(Bit >= 0 && Bit <= 63);
+    //Assert(Bit >= 0 && Bit <= 63);
 
     return EmitBranchCommon(Emitter, Linker, CLASS_IMM14,
             0x36000000 | ((Bit >> 5) << 31) | ((Bit & 0x1f) << 19) | Reg.RawRegister());
@@ -991,7 +991,7 @@ EmitTbnz(
     ArmBranchLinker &Linker
     )
 {
-    //NT_ASSERT(Bit >= 0 && Bit <= 63);
+    //Assert(Bit >= 0 && Bit <= 63);
 
     return EmitBranchCommon(Emitter, Linker, CLASS_IMM14,
             0x37000000 | ((Bit >> 5) << 31) | ((Bit & 0x1f) << 19) | Reg.RawRegister());
@@ -1046,14 +1046,14 @@ EmitAddSubRegisterCommon(
     UINT32 ExtendedOpcode
     )
 {
-    NT_ASSERT(Src2.ShiftType() != SHIFT_ROR);
+    Assert(Src2.ShiftType() != SHIFT_ROR);
 
     //
     // ADD/SUB (shifted register)
     //
 
     if (Src2.IsExtended()) {
-        NT_ASSERT(ExtendedOpcode != 0);
+        Assert(ExtendedOpcode != 0);
         return Emitter.EmitFourBytes(ExtendedOpcode | Src2.EncodeExtended() | (Src1.RawRegister() << 5) | Dest.RawRegister());
     } else {
         return Emitter.EmitFourBytes(Opcode | Src2.Encode() | (Src1.RawRegister() << 5) | Dest.RawRegister());
@@ -2150,9 +2150,9 @@ EmitBfi(
     ULONG Width
     )
 {
-    NT_ASSERT(Lsb <= 31);
-    NT_ASSERT(Width >= 1 && Width <= 32);
-    NT_ASSERT(Lsb + Width <= 32);
+    Assert(Lsb <= 31);
+    Assert(Width >= 1 && Width <= 32);
+    Assert(Lsb + Width <= 32);
 
     return EmitBfm(Emitter, Dest, Src, (32 - Lsb) % 32, Width - 1);
 }
@@ -2167,9 +2167,9 @@ EmitBfi64(
     ULONG Width
     )
 {
-    NT_ASSERT(Lsb <= 63);
-    NT_ASSERT(Width >= 1 && Width <= 64);
-    NT_ASSERT(Lsb + Width <= 64);
+    Assert(Lsb <= 63);
+    Assert(Width >= 1 && Width <= 64);
+    Assert(Lsb + Width <= 64);
 
     return EmitBfm64(Emitter, Dest, Src, (64 - Lsb) % 64, Width - 1);
 }
@@ -2184,9 +2184,9 @@ EmitBfxil(
     ULONG Width
     )
 {
-    NT_ASSERT(Lsb <= 31);
-    NT_ASSERT(Width >= 1 && Width <= 32);
-    NT_ASSERT(Lsb + Width <= 32);
+    Assert(Lsb <= 31);
+    Assert(Width >= 1 && Width <= 32);
+    Assert(Lsb + Width <= 32);
 
     return EmitBfm(Emitter, Dest, Src, Lsb, Lsb + Width - 1);
 }
@@ -2201,9 +2201,9 @@ EmitBfxil64(
     ULONG Width
     )
 {
-    NT_ASSERT(Lsb <= 63);
-    NT_ASSERT(Width >= 1 && Width <= 64);
-    NT_ASSERT(Lsb + Width <= 64);
+    Assert(Lsb <= 63);
+    Assert(Width >= 1 && Width <= 64);
+    Assert(Lsb + Width <= 64);
 
     return EmitBfm64(Emitter, Dest, Src, Lsb, Lsb + Width - 1);
 }
@@ -2218,9 +2218,9 @@ EmitSbfx(
     ULONG Width
     )
 {
-    NT_ASSERT(Lsb <= 31);
-    NT_ASSERT(Width >= 1 && Width <= 32);
-    NT_ASSERT(Lsb + Width <= 32);
+    Assert(Lsb <= 31);
+    Assert(Width >= 1 && Width <= 32);
+    Assert(Lsb + Width <= 32);
 
     return EmitSbfm(Emitter, Dest, Src, Lsb, Lsb + Width - 1);
 }
@@ -2235,9 +2235,9 @@ EmitSbfx64(
     ULONG Width
     )
 {
-    NT_ASSERT(Lsb <= 63);
-    NT_ASSERT(Width >= 1 && Width <= 64);
-    NT_ASSERT(Lsb + Width <= 64);
+    Assert(Lsb <= 63);
+    Assert(Width >= 1 && Width <= 64);
+    Assert(Lsb + Width <= 64);
 
     return EmitSbfm64(Emitter, Dest, Src, Lsb, Lsb + Width - 1);
 }
@@ -2252,9 +2252,9 @@ EmitUbfx(
     ULONG Width
     )
 {
-    NT_ASSERT(Lsb <= 31);
-    NT_ASSERT(Width >= 1 && Width <= 32);
-    NT_ASSERT(Lsb + Width <= 32);
+    Assert(Lsb <= 31);
+    Assert(Width >= 1 && Width <= 32);
+    Assert(Lsb + Width <= 32);
 
     return EmitUbfm(Emitter, Dest, Src, Lsb, Lsb + Width - 1);
 }
@@ -2269,9 +2269,9 @@ EmitUbfx64(
     ULONG Width
     )
 {
-    NT_ASSERT(Lsb <= 63);
-    NT_ASSERT(Width >= 1 && Width <= 64);
-    NT_ASSERT(Lsb + Width <= 64);
+    Assert(Lsb <= 63);
+    Assert(Width >= 1 && Width <= 64);
+    Assert(Lsb + Width <= 64);
 
     return EmitUbfm64(Emitter, Dest, Src, Lsb, Lsb + Width - 1);
 }
@@ -2291,7 +2291,7 @@ EmitAsrImmediate(
     ULONG64 Immediate
     )
 {
-    NT_ASSERT(Immediate < 32);
+    Assert(Immediate < 32);
     return EmitSbfm(Emitter, Dest, Src, Immediate, 31);
 }
 
@@ -2304,7 +2304,7 @@ EmitAsrImmediate64(
     ULONG64 Immediate
     )
 {
-    NT_ASSERT(Immediate < 64);
+    Assert(Immediate < 64);
     return EmitSbfm64(Emitter, Dest, Src, Immediate, 63);
 }
 
@@ -2317,7 +2317,7 @@ EmitLslImmediate(
     ULONG64 Immediate
     )
 {
-    NT_ASSERT(Immediate < 32);
+    Assert(Immediate < 32);
     return EmitUbfm(Emitter, Dest, Src, 32 - Immediate, 31 - Immediate);
 }
 
@@ -2330,7 +2330,7 @@ EmitLslImmediate64(
     ULONG64 Immediate
     )
 {
-    NT_ASSERT(Immediate < 64);
+    Assert(Immediate < 64);
     return EmitUbfm64(Emitter, Dest, Src, 64 - Immediate, 63 - Immediate);
 }
 
@@ -2343,7 +2343,7 @@ EmitLsrImmediate(
     ULONG64 Immediate
     )
 {
-    NT_ASSERT(Immediate < 32);
+    Assert(Immediate < 32);
     return EmitUbfm(Emitter, Dest, Src, Immediate, 31);
 }
 
@@ -2356,7 +2356,7 @@ EmitLsrImmediate64(
     ULONG64 Immediate
     )
 {
-    NT_ASSERT(Immediate < 64);
+    Assert(Immediate < 64);
     return EmitUbfm64(Emitter, Dest, Src, Immediate, 63);
 }
 
@@ -2400,7 +2400,7 @@ EmitRorImmediate(
     ULONG Immediate
     )
 {
-    //NT_ASSERT(Immediate >= 0 && Immediate < 32);
+    //Assert(Immediate >= 0 && Immediate < 32);
     return EmitExtr(Emitter, Dest, Src, Src, Immediate);
 }
 
@@ -2413,7 +2413,7 @@ EmitRorImmediate64(
     ULONG Immediate
     )
 {
-    //NT_ASSERT(Immediate >= 0 && Immediate < 64);
+    //Assert(Immediate >= 0 && Immediate < 64);
     return EmitExtr64(Emitter, Dest, Src, Src, Immediate);
 }
 
@@ -2747,8 +2747,8 @@ EmitMovImmediateCommon(
     ULONG Opcode
     )
 {
-    NT_ASSERT(Shift % 16 == 0);
-    NT_ASSERT(Shift / 16 < 4);
+    Assert(Shift % 16 == 0);
+    Assert(Shift / 16 < 4);
     return Emitter.EmitFourBytes(Opcode | ((Shift / 16) << 21) | ((Immediate & 0xffff) << 5) | Dest.RawRegister());
 }
 
@@ -3531,7 +3531,7 @@ EmitLdrStrRegisterCommon(
     )
 {
 
-    NT_ASSERT(Index.IsExtended() || Index.ShiftType() == SHIFT_LSL || Index.ShiftType() == SHIFT_NONE);
+    Assert(Index.IsExtended() || Index.ShiftType() == SHIFT_LSL || Index.ShiftType() == SHIFT_NONE);
 
     //
     // Choose an extend type, mapping NONE/LSL to UXTX.
@@ -4045,7 +4045,7 @@ EmitLdpOffset(
     LONG Offset
     )
 {
-    NT_ASSERT(Dest1.RawRegister() != Dest2.RawRegister());
+    Assert(Dest1.RawRegister() != Dest2.RawRegister());
     return EmitLdpStpOffsetCommon(Emitter, Dest1, Dest2, Addr, Offset, 2, 0x29400000);
 }
 
@@ -4059,7 +4059,7 @@ EmitLdpOffset64(
     LONG Offset
     )
 {
-    NT_ASSERT(Dest1.RawRegister() != Dest2.RawRegister());
+    Assert(Dest1.RawRegister() != Dest2.RawRegister());
     return EmitLdpStpOffsetCommon(Emitter, Dest1, Dest2, Addr, Offset, 3, 0xa9400000);
 }