[mapguide-commits] r10017 - in trunk/MgDev: Bindings/src/Bindings/DotNet Bindings/src/Bindings/DotNet/Portable Bindings/src/Managed/DotNet Bindings/src/Managed/DotNet/OSGeo.MapGuide.PlatformBase/custom Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/Properties Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/build Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/custom Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/runtimes Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/runtimes/linux-x64 Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/runtimes/linux-x64/native Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/runtimes/win-x64 Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/runtimes/win-x64/native Portable Portable/MgPortable

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Wed Nov 16 05:17:57 PST 2022


Author: jng
Date: 2022-11-16 05:17:56 -0800 (Wed, 16 Nov 2022)
New Revision: 10017

Added:
   trunk/MgDev/Bindings/src/Bindings/DotNet/Portable/
   trunk/MgDev/Bindings/src/Bindings/DotNet/Portable/CMakeLists.txt
   trunk/MgDev/Bindings/src/Bindings/DotNet/Portable/PortableApi.rc
   trunk/MgDev/Bindings/src/Bindings/DotNet/Portable/PortableApi.vcxproj
   trunk/MgDev/Bindings/src/Bindings/DotNet/Portable/PortableApiGen.xml
   trunk/MgDev/Bindings/src/Bindings/DotNet/Portable/PortableConstants.xml
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/OSGeo.MapGuide.Portable.csproj
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/Properties/
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/Properties/AssemblyInfo.cs
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/build/
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/build/OSGeo.MapGuide.Portable.targets
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/custom/
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/custom/Localizer.cs
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/runtimes/
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/runtimes/linux-x64/
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/runtimes/linux-x64/native/
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/runtimes/linux-x64/native/readme-linux-x64.txt
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/runtimes/win-x64/
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/runtimes/win-x64/native/
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/runtimes/win-x64/native/readme-win-x64.txt
Modified:
   trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.PlatformBase/custom/AssemblyInfo.cs
   trunk/MgDev/Portable/MgPortable/MgPortable.vcxproj
   trunk/MgDev/Portable/Portable.sln
Log:
#2852: MgPortable build fixes
 
 - Fix output dir for MgPortable project
 - Add a bunch of required upstream projects to Portable.sln
 - Add new SWIG glue and .net wrapper projects (following MapGuideCommon wrapper as the template)
 - Make OSGeo.MapGuide.PlatformBase internals visible to OSGeo.MapGuide.Portable

Index: trunk/MgDev/Bindings/src/Bindings/DotNet/Portable
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/Portable	2022-11-12 08:34:51 UTC (rev 10016)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/Portable	2022-11-16 13:17:56 UTC (rev 10017)

Property changes on: trunk/MgDev/Bindings/src/Bindings/DotNet/Portable
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,8 ##
+lib
+obj
+*.user
+*.cpp
+language.i
+PortableApi.i
+PortableApi_Doc.i
+PortableApi_Properties.i
Added: trunk/MgDev/Bindings/src/Bindings/DotNet/Portable/CMakeLists.txt
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/Portable/CMakeLists.txt	                        (rev 0)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/Portable/CMakeLists.txt	2022-11-16 13:17:56 UTC (rev 10017)
@@ -0,0 +1,85 @@
+project(PortableUnmanagedApi)
+
+set(PortableUnmanagedApi_SRCS
+    ${CMAKE_CURRENT_BINARY_DIR}/PortableUnmanagedApi_wrap.cpp
+)
+
+add_library(PortableUnmanagedApi SHARED ${PortableUnmanagedApi_SRCS})
+add_dependencies(PortableUnmanagedApi IMake)
+if (UNIX)
+    add_definitions(-DDOTNETCORE)
+    # NOTE: We don't care where this source is generated because the C# source is only built on windows
+    set(MG_DOTNET_PROJECT_DIR ${CMAKE_CURRENT_BINARY_DIR})
+    set_target_properties(PortableUnmanagedApi PROPERTIES INSTALL_RPATH "$ORIGIN")
+endif (UNIX)
+if (MSVC)
+    add_definitions(-DSWIG_PUBLIC_API)
+    add_definitions(/bigobj)
+    set_target_properties(PortableUnmanagedApi PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${MG_DOTNET_OUTPUT_DIR} )
+    set_target_properties(PortableUnmanagedApi PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${MG_DOTNET_OUTPUT_DIR} )
+    set_target_properties(PortableUnmanagedApi PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE ${MG_DOTNET_OUTPUT_DIR} )
+endif (MSVC)
+
+set(IMAKE_RELATIVE_RESOLUTION "-r ${CMAKE_CURRENT_SOURCE_DIR}")
+if (UNIX)
+    set(IMAKE_RELATIVE_RESOLUTION "-a")
+endif (UNIX)
+
+set(SWIG_DOTNET_DEFS "")
+if (WIN32)
+    set(SWIG_DOTNET_DEFS "-DWIN32")
+endif (WIN32)
+
+message(STATUS "Using IMake at: ${IMAKE_TOOL}")
+add_custom_command(OUTPUT ${PortableUnmanagedApi_SRCS}
+    COMMAND ${CMAKE_COMMAND} -E echo Removing: ${MG_DOTNET_PROJECT_DIR}/*.cs
+    COMMAND ${CMAKE_COMMAND} -E remove -f 
+            ${MG_DOTNET_PROJECT_DIR}/*.cs
+    COMMAND ${CMAKE_COMMAND} -E echo Regenerating: ${MG_DOTNET_PROJECT_DIR}/Constants.cs
+    COMMAND ${IMAKE_TOOL} -p ${CMAKE_CURRENT_SOURCE_DIR}/PortableConstants.xml 
+            -l "C#"
+            ${IMAKE_RELATIVE_RESOLUTION}
+            -o ${MG_DOTNET_PROJECT_DIR}/Constants.cs
+            -t
+    COMMAND ${CMAKE_COMMAND} -E copy
+            ${CMAKE_CURRENT_BINARY_DIR}/../dotnetcore_split.i
+            ${CMAKE_CURRENT_BINARY_DIR}/language.i
+    COMMAND ${IMAKE_TOOL} -p ${CMAKE_CURRENT_SOURCE_DIR}/PortableApiGen.xml
+            -l "C#"
+            -x "PortableApi"
+            ${IMAKE_RELATIVE_RESOLUTION}
+            -o ${CMAKE_CURRENT_BINARY_DIR}
+    # Nothing in the Portable API surface currently declares .net property wrapper annotations so
+    # no _Properties.i file is generated at the moment. If/when that changes, uncomment the lines below to
+    # ensure this generated file is "moved" to the proper location
+
+    # COMMAND ${CMAKE_COMMAND} -E remove -f
+    #         ${CMAKE_CURRENT_BINARY_DIR}/PortableApi_Properties.i
+    # COMMAND ${CMAKE_COMMAND} -E copy
+    #         ${CMAKE_CURRENT_SOURCE_DIR}/PortableApi_Properties.i
+    #         ${CMAKE_CURRENT_BINARY_DIR}/PortableApi_Properties.i
+    # COMMAND ${CMAKE_COMMAND} -E remove -f
+    #         ${CMAKE_CURRENT_SOURCE_DIR}/PortableApi_Properties.i
+    COMMAND ${CMAKE_COMMAND} -E echo Running SWIG [DotNet]. Output Dir: ${MG_DOTNET_PROJECT_DIR}
+    COMMAND ${SWIG_EXECUTABLE} -c++ -csharp 
+            ${SWIG_DOTNET_DEFS} -DDOTNETCORE -DSWIG_CSHARP_NO_EXCEPTION_HELPER
+            -DSWIG_CSHARP_NO_STRING_HELPER -DSWIG_CSHARP_NO_WSTRING_HELPER
+            -namespace OSGeo.MapGuide
+            -nodefaultctor -nodefaultdtor
+            -module PortableUnmanagedApi
+            -o "${CMAKE_CURRENT_BINARY_DIR}/PortableUnmanagedApi_wrap.cpp"
+            -outdir "${MG_DOTNET_PROJECT_DIR}" 
+            "${CMAKE_CURRENT_BINARY_DIR}/PortableApi.i"
+    # These commands need to be run in the context of the source directory so that the relative header references
+    # in the Constants and ApiGen xml files will resolve properly (because these headers won't exist in the cmake
+    # binary dir)
+    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+)
+
+target_link_libraries(PortableUnmanagedApi
+    ${ACE_LIBRARY}
+    MgPortable${MG_VERSION_SUFFIX}
+    ${XERCESC_LIBRARIES}
+)
+
+install( TARGETS PortableUnmanagedApi DESTINATION ${LIB_INSTALL_DIR} COMPONENT ${MG_COMPONENT} )
\ No newline at end of file

Added: trunk/MgDev/Bindings/src/Bindings/DotNet/Portable/PortableApi.rc
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/Portable/PortableApi.rc	                        (rev 0)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/Portable/PortableApi.rc	2022-11-16 13:17:56 UTC (rev 10017)
@@ -0,0 +1,96 @@
+// Microsoft Visual C++ generated resource script.
+//
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "winresrc.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+    "#include ""winresrc.h""\r\n"
+    "\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+    "\r\n"
+    "\0"
+END
+
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 4,0,0,0
+ PRODUCTVERSION 4,0,0,0
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "040904b0"
+        BEGIN
+            VALUE "CompanyName", "Open Source Geospatial Foundation"
+            VALUE "FileDescription", "PortableUnmanagedApi Dynamic Link Library"
+            VALUE "FileVersion", "4, 0, 0, 0"
+            VALUE "InternalName", "PortableUnmanagedApi"
+            VALUE "LegalCopyright", "Copyright (C) 2006-2020 by Autodesk, Inc."
+            VALUE "OriginalFilename", "PortableUnmanagedApi.dll"
+            VALUE "ProductName", "MapGuide Open Source"
+            VALUE "ProductVersion", "4, 0, 0, 0"
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x409, 1200
+    END
+END
+
+#endif    // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+

Added: trunk/MgDev/Bindings/src/Bindings/DotNet/Portable/PortableApi.vcxproj
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/Portable/PortableApi.vcxproj	                        (rev 0)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/Portable/PortableApi.vcxproj	2022-11-16 13:17:56 UTC (rev 10017)
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{94580073-62bc-4e59-86de-df36ec6daaea}</ProjectGuid>
+    <RootNamespace>PortableUnmanagedApi</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v142</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v142</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\Managed\DotNet\OSGeo.MapGuide.Portable\runtimes\win-x64\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">obj\$(Configuration)64\PortableUnmanagedApi\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\Managed\DotNet\OSGeo.MapGuide.Portable\runtimes\win-x64\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">obj\$(Configuration)64\PortableUnmanagedApi\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
+    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">PortableUnmanagedApid</TargetName>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">PortableUnmanagedApi</TargetName>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <PreBuildEvent>
+      <Command>if exist "$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Portable\*.cs" del /Q "$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Portable\*.cs"
+if exist "$(ProjectDir)PortableApi_Properties.i" del /Q "$(ProjectDir)PortableApi_Properties.i"
+"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p "$(ProjectDir)PortableConstants.xml" -l C# -o "$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Portable\Constants.cs" -t
+copy "$(ProjectDir)..\dotnetcore_split.i" "$(ProjectDir)language.i"
+"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p "$(ProjectDir)PortableApiGen.xml" -l C# -x "PortableApi"
+"$(SWIG_DIR)\swig.exe" -c++ -csharp -DDOTNETCORE -DWIN32 -DSWIG_CSHARP_NO_EXCEPTION_HELPER -DSWIG_CSHARP_NO_STRING_HELPER -DSWIG_CSHARP_NO_WSTRING_HELPER -namespace OSGeo.MapGuide -nodefaultctor -nodefaultdtor -module PortableUnmanagedApi -o "$(ProjectDir)PortableUnmanagedApi_wrap.cpp" -outdir "$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Portable" PortableApi.i
+del /Q ..\..\..\Managed\DotNet\OSGeo.MapGuide.Portable\PortableUnmanagedApi.cs
+copy /Y "$(ProjectDir)..\..\..\..\..\Portable\bin\$(Configuration)64\MgPortable*.*" "$(TargetDir)\native\"
+</Command>
+    </PreBuildEvent>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>..\..\..\..\..\Web\src\HttpHandler;..\..\..\..\..\Web\src\WebApp;..\..\..\..\..\Web\src\WebSupport;..\..\..\..\..\Common\MdfModel;..\..\..\..\..\Common\Foundation;..\..\..\..\..\Oem\dbxml\xerces-c-src\src;..\..\..\..\..\Oem\ACE\ACE_wrappers;..\..\..\..\..\Common\Geometry;..\..\..\..\..\Common\PlatformBase;..\..\..\..\..\Portable\MgPortable;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;SWIG_PUBLIC_API;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ExceptionHandling>Async</ExceptionHandling>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>MgFoundationd.lib;MgPlatformBased.lib;MgPortabled.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Portable\runtimes\win-x64\native\PortableUnmanagedApid.dll</OutputFile>
+      <AdditionalLibraryDirectories>..\..\..\..\..\Common\lib\$(Configuration)64;..\..\..\..\..\Web\lib\$(Configuration)64;..\..\..\..\..\Portable\lib\$(Configuration)64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Portable\runtimes\win-x64\native\PortableUnmanagedApid.pdb</ProgramDatabaseFile>
+      <SubSystem>Windows</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+      <ImportLibrary>lib\$(Configuration)64\PortableUnmanagedApid.lib</ImportLibrary>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <PreBuildEvent>
+      <Command>if exist "$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Portable\*.cs" del /Q "$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Portable\*.cs"
+if exist "$(ProjectDir)PortableApi_Properties.i" del /Q "$(ProjectDir)PortableApi_Properties.i"
+"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p "$(ProjectDir)PortableConstants.xml" -l C# -o "$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Portable\Constants.cs" -t
+copy "$(ProjectDir)..\dotnetcore_split.i" "$(ProjectDir)language.i"
+"..\..\..\IMake\$(Platform)\$(Configuration)\bin\IMake.exe" -p "$(ProjectDir)PortableApiGen.xml" -l C# -x "PortableApi"
+"$(SWIG_DIR)\swig.exe" -c++ -csharp -DDOTNETCORE -DWIN32 -DSWIG_CSHARP_NO_EXCEPTION_HELPER -DSWIG_CSHARP_NO_STRING_HELPER -DSWIG_CSHARP_NO_WSTRING_HELPER -namespace OSGeo.MapGuide -nodefaultctor -nodefaultdtor -module PortableUnmanagedApi -o "$(ProjectDir)PortableUnmanagedApi_wrap.cpp" -outdir "$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Portable" PortableApi.i
+del /Q ..\..\..\Managed\DotNet\OSGeo.MapGuide.Portable\PortableUnmanagedApi.cs
+copy /Y "$(ProjectDir)..\..\..\..\..\Portable\bin\$(Configuration)64\MgPortable*.*" "$(TargetDir)\native\"
+</Command>
+    </PreBuildEvent>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories>..\..\..\..\..\Web\src\HttpHandler;..\..\..\..\..\Web\src\WebApp;..\..\..\..\..\Web\src\WebSupport;..\..\..\..\..\Common\MdfModel;..\..\..\..\..\Common\Foundation;..\..\..\..\..\Oem\dbxml\xerces-c-src\src;..\..\..\..\..\Oem\ACE\ACE_wrappers;..\..\..\..\..\Common\Geometry;..\..\..\..\..\Common\PlatformBase;..\..\..\..\..\Portable\MgPortable;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_WIN64;SWIG_PUBLIC_API;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ExceptionHandling>Async</ExceptionHandling>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <WarningLevel>Level3</WarningLevel>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>MgFoundation.lib;MgPlatformBase.lib;MgPortable.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Portable\runtimes\win-x64\native\PortableUnmanagedApi.dll</OutputFile>
+      <AdditionalLibraryDirectories>..\..\..\..\..\Common\lib\$(Configuration)64;..\..\..\..\..\Web\lib\$(Configuration)64;..\..\..\..\..\Portable\lib\$(Configuration)64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>$(ProjectDir)..\..\..\Managed\DotNet\OSGeo.MapGuide.Portable\runtimes\win-x64\native\PortableUnmanagedApi.pdb</ProgramDatabaseFile>
+      <SubSystem>Windows</SubSystem>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+      <ImportLibrary>lib\$(Configuration)64\PortableUnmanagedApi.lib</ImportLibrary>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="PortableUnmanagedApi_wrap.cpp">
+      <PreprocessToFile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</PreprocessToFile>
+      <PreprocessSuppressLineNumbers Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</PreprocessSuppressLineNumbers>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="PortableApi.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <Xml Include="PortableApiGen.xml" />
+    <Xml Include="PortableConstants.xml" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file

Added: trunk/MgDev/Bindings/src/Bindings/DotNet/Portable/PortableApiGen.xml
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/Portable/PortableApiGen.xml	                        (rev 0)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/Portable/PortableApiGen.xml	2022-11-16 13:17:56 UTC (rev 10017)
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Parameters>
+<!--
+   Module section.
+-->
+<Module name="PortableApi" />
+
+<!--
+   Custom file path.
+-->
+<CustomFile path="." />
+
+<!--
+   Target section.
+-->
+<Target path="./PortableApi.i" />
+<DocTarget path="./PortableApi_Doc.i" />
+
+<!--
+   C++ inline section.
+-->
+<CppInline>
+#ifdef _WIN32
+#pragma warning(disable: 4251)
+#endif
+
+#include <string>
+#include <map>
+#include <list>
+
+#include "Foundation.h"
+#include "GeometryCommon.h"
+#include "MgPortable.h"
+
+#if defined(PHP) || defined(JAVA)
+typedef std::wstring STRINGPARAM;
+#else
+typedef wchar_t* STRINGPARAM;
+#endif
+</CppInline>
+
+<!--
+   Type replacements.
+-->
+<TypeReplacements>
+    <TypeReplacement oldtype="CREFSTRING" newtype="STRINGPARAM" />
+    <TypeReplacement oldtype="INT64" newtype="long long" />
+</TypeReplacements>
+
+<!--
+   Swig inline section.
+-->
+<SwigInline>
+  %include "PortableApi_Doc.i" //doc fragments
+  %include "language.i"   //typemaps specific for each language
+  // IMPORTANT: Must %import dependencies *after* %include-ing language.i, otherwise
+  // SWIG runtime glue code for $LANGUAGE isn't generated
+  %import "../Foundation/FoundationApi.i"
+  %import "../Geometry/GeometryApi.i"
+  %import "../PlatformBase/PlatformBaseApi.i"
+#if defined(MG_CLASSIDGEN)
+  %include "../../../../../Portable/MgPortable/System/PortableClassId.h"
+#endif
+
+#if defined(PHPSWIG)
+  // We force UTF-8 encoding for PHP
+  typedef char*         STRINGPARAM;
+  typedef char*         STRING;
+  typedef char*         BYTE_ARRAY_IN;
+  typedef char*         BYTE_ARRAY_OUT;
+  typedef unsigned char BYTE;
+#elseif defined(JAVA)
+  typedef std::wstring  STRINGPARAM;
+  typedef signed char   BYTE;  //mapped to byte in Java
+#else // .Net
+  typedef char*         BYTE_ARRAY_IN;
+  typedef char*         BYTE_ARRAY_OUT;
+  typedef unsigned char BYTE;    //mapped to byte in C#
+#endif
+
+  typedef int           STATUS;
+  typedef short         INT8;
+  typedef short         INT16;
+  typedef int           INT32;
+  typedef int           UINT32;
+
+</SwigInline>
+
+<!--
+   C++ Headers section.  If you add headers to this section then you
+   must also add them to Makefile.am in the JavaApi and PhpApi folders.
+-->
+<Headers>
+
+    <!-- Portable classes -->
+    <!--
+    <Header path="../../../../../Portable/MgPortable/Services/DataReader.h" />
+	-->
+    <Header path="../../../../../Portable/MgPortable/Services/DrawingService.h" />
+	<!--
+    <Header path="../../../../../Portable/MgPortable/Services/FeatureReader.h" />
+	-->
+    <Header path="../../../../../Portable/MgPortable/Services/FeatureService.h" />
+    <Header path="../../../../../Portable/MgPortable/Services/MappingService.h" />
+    <Header path="../../../../../Portable/MgPortable/Services/ProfilingService.h" />
+    <Header path="../../../../../Portable/MgPortable/Services/RenderingService.h" />
+    <Header path="../../../../../Portable/MgPortable/Services/ResourceService.h" />
+	<!--
+    <Header path="../../../../../Portable/MgPortable/Services/ScrollableFeatureReader.h" />
+	-->
+    <Header path="../../../../../Portable/MgPortable/Services/ServiceFactory.h" />
+	<!--
+    <Header path="../../../../../Portable/MgPortable/Services/SqlReader.h" />
+	-->
+    <Header path="../../../../../Portable/MgPortable/Services/TileService.h" />
+    <Header path="../../../../../Portable/MgPortable/Services/Transaction.h" />
+
+    <Header path="../../../../../Portable/MgPortable/Services/Feature/RdbmsFeatureSourceParams.h" />
+
+    <Header path="../../../../../Portable/MgPortable/Services/Rendering/DwfVersion.h" />
+    <Header path="../../../../../Portable/MgPortable/Services/Rendering/FeatureInformation.h" />
+    <Header path="../../../../../Portable/MgPortable/Services/Rendering/Layout.h" />
+    <Header path="../../../../../Portable/MgPortable/Services/Rendering/MapPlot.h" />
+    <Header path="../../../../../Portable/MgPortable/Services/Rendering/MapPlotCollection.h" />
+    <Header path="../../../../../Portable/MgPortable/Services/Rendering/PlotSpecification.h" />
+    <Header path="../../../../../Portable/MgPortable/Services/Rendering/RenderingOptions.h" />
+
+    <Header path="../../../../../Portable/MgPortable/System/PlatformInit.h" />
+
+    <Header path="../../../../../Portable/MgPortable/MapLayer/Layer.h" />
+    <Header path="../../../../../Portable/MgPortable/MapLayer/Map.h" />
+    <Header path="../../../../../Portable/MgPortable/MapLayer/Selection.h" />
+
+</Headers>
+
+</Parameters>

Added: trunk/MgDev/Bindings/src/Bindings/DotNet/Portable/PortableConstants.xml
===================================================================
--- trunk/MgDev/Bindings/src/Bindings/DotNet/Portable/PortableConstants.xml	                        (rev 0)
+++ trunk/MgDev/Bindings/src/Bindings/DotNet/Portable/PortableConstants.xml	2022-11-16 13:17:56 UTC (rev 10017)
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<Parameters>
+
+<!--
+   Type replacements.
+-->
+<PHPTypeReplacements>
+    <TypeReplacement oldtype="STRING" newtype="" />
+    <TypeReplacement oldtype="INT16" newtype="" />
+    <TypeReplacement oldtype="INT32" newtype="" />
+    <TypeReplacement oldtype="int" newtype="" />
+    <TypeReplacement oldtype="float" newtype="" />
+    <TypeReplacement oldtype="double" newtype="" />
+    <TypeReplacement oldtype="static" newtype="" />
+    <TypeReplacement oldtype="bool" newtype="" />
+</PHPTypeReplacements>
+<CSharpTypeReplacements>
+    <TypeReplacement oldtype="STRING" newtype="string" />
+    <TypeReplacement oldtype="INT16" newtype="short" />
+    <TypeReplacement oldtype="INT32" newtype="int" />
+    <TypeReplacement oldtype="int" newtype="int" />
+    <TypeReplacement oldtype="float" newtype="float" />
+    <TypeReplacement oldtype="double" newtype="double" />
+    <TypeReplacement oldtype="static" newtype="" />
+    <TypeReplacement oldtype="const" newtype="const" />
+</CSharpTypeReplacements>
+<JavaTypeReplacements>
+    <TypeReplacement oldtype="STRING" newtype="String" />
+    <TypeReplacement oldtype="INT16" newtype="short" />
+    <TypeReplacement oldtype="INT32" newtype="int" />
+    <TypeReplacement oldtype="int" newtype="int" />
+    <TypeReplacement oldtype="float" newtype="float" />
+    <TypeReplacement oldtype="double" newtype="double" />
+    <TypeReplacement oldtype="const" newtype="final" />
+    <TypeReplacement oldtype="bool" newtype="boolean" />
+</JavaTypeReplacements>
+
+<!--
+   Inline section.
+-->
+<Inline>
+//
+//  Copyright (C) 2004-2011 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+</Inline>
+
+<Namespace>OSGeo.MapGuide</Namespace>
+<Package>org.osgeo.mapguide</Package>
+
+<Classes>
+    <Class name="MgPortableMapPlotInstruction" />
+    <Class name="MgPortableUnitType" />
+    <Class name="MgPortablePageUnitsType" />
+    <Class name="MgPortableImageFormats" />
+    <Class name="MgPortableExceptionCodes" />
+</Classes>
+
+<!--
+   C++ Headers section.  If you add headers to this section then you
+   must also add them to Makefile.am in the JavaApi and PhpApi folders.
+-->
+<Headers>
+
+  <!-- API -->
+  <Header path="../../../../../Portable/MgPortable/Services/ImageFormats.h" />
+  <Header path="../../../../../Portable/MgPortable/Services/Rendering/MapPlotInstruction.h" />
+  <Header path="../../../../../Portable/MgPortable/Services/Rendering/UnitType.h" />
+  <Header path="../../../../../Portable/MgPortable/System/ExceptionCodes.h" />
+</Headers>
+
+</Parameters>

Modified: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.PlatformBase/custom/AssemblyInfo.cs
===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.PlatformBase/custom/AssemblyInfo.cs	2022-11-12 08:34:51 UTC (rev 10016)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.PlatformBase/custom/AssemblyInfo.cs	2022-11-16 13:17:56 UTC (rev 10017)
@@ -1,3 +1,4 @@
 using System.Runtime.CompilerServices;
 
-[assembly: InternalsVisibleTo("OSGeo.MapGuide.MapGuideCommon")]
\ No newline at end of file
+[assembly: InternalsVisibleTo("OSGeo.MapGuide.MapGuideCommon")]
+[assembly: InternalsVisibleTo("OSGeo.MapGuide.Portable")]
\ No newline at end of file

Index: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable
===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable	2022-11-12 08:34:51 UTC (rev 10016)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable	2022-11-16 13:17:56 UTC (rev 10017)

Property changes on: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,2 ##
+obj
+*.cs
Added: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/OSGeo.MapGuide.Portable.csproj
===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/OSGeo.MapGuide.Portable.csproj	                        (rev 0)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/OSGeo.MapGuide.Portable.csproj	2022-11-16 13:17:56 UTC (rev 10017)
@@ -0,0 +1,51 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <PackageId>OSGeo.MapGuide.Portable</PackageId>
+    <TargetFramework>netstandard2.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    <DebugType>portable</DebugType>
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <Version>4.0.0.0</Version>
+    <PackageProjectUrl>https://mapguide.osgeo.org/</PackageProjectUrl>
+    <RepositoryUrl>https://mapguide.osgeo.org/</RepositoryUrl>
+    <PackageIconUrl>https://mapguide.osgeo.org/</PackageIconUrl>
+    <PackageTags>MapGuide GIS Geospatial Maps</PackageTags>
+    <Authors>OSGeo</Authors>
+    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
+    <PackageLicenseExpression></PackageLicenseExpression>
+    <PackageLicenseFile>License.txt</PackageLicenseFile>
+  </PropertyGroup>
+
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
+    <OutputPath>..\..\..\..\..\packages\DotNet\Release</OutputPath>
+    <DocumentationFile>..\..\..\..\..\packages\DotNet\Release\OSGeo.MapGuide.Portable.xml</DocumentationFile>
+  </PropertyGroup>
+
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
+    <OutputPath>..\..\..\..\..\packages\DotNet\Debug</OutputPath>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Content Include="build/**" PackagePath="%(Identity)" />
+    <Content Include="runtimes/**" PackagePath="%(Identity)" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Compile Include="..\Common\MgClassMap.cs" Link="MgClassMap.cs" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <None Include="..\..\..\..\..\License.txt">
+      <Pack>True</Pack>
+      <PackagePath></PackagePath>
+    </None>
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\OSGeo.MapGuide.Foundation\OSGeo.MapGuide.Foundation.csproj" />
+    <ProjectReference Include="..\OSGeo.MapGuide.Geometry\OSGeo.MapGuide.Geometry.csproj" />
+    <ProjectReference Include="..\OSGeo.MapGuide.PlatformBase\OSGeo.MapGuide.PlatformBase.csproj" />
+  </ItemGroup>
+
+</Project>

Added: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/Properties/AssemblyInfo.cs
===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/Properties/AssemblyInfo.cs	                        (rev 0)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/Properties/AssemblyInfo.cs	2022-11-16 13:17:56 UTC (rev 10017)
@@ -0,0 +1,77 @@
+//
+//  Copyright (C) 2004-2011 by Autodesk, Inc.
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of version 2.1 of the GNU Lesser
+//  General Public License as published by the Free Software Foundation.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+//
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+//
+[assembly: AssemblyTitle("MapGuide .net API Dynamic Link Library")]
+[assembly: AssemblyDescription(".net wrapper for the MapGuide API (64-bit only)")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("MapGuide Open Source")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+[assembly: CLSCompliant(true)]
+
+//
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+
+[assembly: AssemblyVersion("4.0.0.0")]
+[assembly: AssemblyFileVersion("4.0.0.0")]
+[assembly: AssemblyInformationalVersion("4.0.0.0")]
+
+//
+// In order to sign your assembly you must specify a key to use. Refer to the
+// Microsoft .NET Framework documentation for more information on assembly signing.
+//
+// Use the attributes below to control which key is used for signing.
+//
+// Notes:
+//   (*) If no key is specified, the assembly is not signed.
+//   (*) KeyName refers to a key that has been installed in the Crypto Service
+//       Provider (CSP) on your machine. KeyFile refers to a file which contains
+//       a key.
+//   (*) If the KeyFile and the KeyName values are both specified, the
+//       following processing occurs:
+//       (1) If the KeyName can be found in the CSP, that key is used.
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key
+//           in the KeyFile is installed into the CSP and used.
+//   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
+//       When specifying the KeyFile, the location of the KeyFile should be
+//       relative to the project output directory which is
+//       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
+//       located in the project directory, you would specify the AssemblyKeyFile
+//       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
+//   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
+//       documentation for more information on this.
+//
+[assembly: AssemblyDelaySign(false)]
\ No newline at end of file

Added: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/build/OSGeo.MapGuide.Portable.targets
===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/build/OSGeo.MapGuide.Portable.targets	                        (rev 0)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/build/OSGeo.MapGuide.Portable.targets	2022-11-16 13:17:56 UTC (rev 10017)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+    <PropertyGroup>
+        <!-- if ShouldIncludeNativeMapGuideApi == False then don't include the native libraries -->
+        <ShouldIncludeNativeMapGuideApi Condition=" '$(ShouldIncludeNativeMapGuideApi)' == '' ">True</ShouldIncludeNativeMapGuideApi>
+    </PropertyGroup>
+
+    <ItemGroup Condition=" '$(ShouldIncludeNativeMapGuideApi)' != 'False' ">
+        <None Include="$(MSBuildThisFileDirectory)..\..\runtimes\win-x64\native\**\*" Condition="$(TargetFrameworkVersion.StartsWith('net4')) And '$(OS)' == 'Windows_NT' And '$(Platform)' == 'x64'">
+            <Link>%(Filename)%(Extension)</Link>
+            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+        </None>
+    </ItemGroup>
+
+</Project>
\ No newline at end of file

Added: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/custom/Localizer.cs
===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/custom/Localizer.cs	                        (rev 0)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/custom/Localizer.cs	2022-11-16 13:17:56 UTC (rev 10017)
@@ -0,0 +1,158 @@
+/*
+  Copyright (C) 2004-2011 by Autodesk, Inc.
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of version 2.1 of the GNU Lesser
+  General Public License as published by the Free Software Foundation.
+
+  This library is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with this library; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+using System;
+using System.Text;
+using System.Collections;
+using System.IO;
+
+namespace OSGeo.MapGuide
+{
+
+public class MgLocalizer
+{
+    protected static String english = "en";
+    protected static String localizationPath = "";
+    protected static Hashtable languages = new Hashtable();
+
+    public static void SetLocalizedFilesPath(String path)
+    {
+        localizationPath = path;
+    }
+
+    public static String Localize(String text, String locale, int os)
+    {
+        String fontSuffix = (os == 0 ? "Windows" : (os == 1 ? "Macintosh" : "Linux"));
+        Hashtable sb = null;
+        try
+        {
+            sb = GetStringBundle(locale);
+        }
+        catch (Exception)
+        {
+            return "";
+        }
+        int len = text.Length;
+
+        for (int i = 0; i < len; )
+        {
+            int pos1 = text.IndexOf("__#", i);
+            if (pos1 != -1)
+            {
+                int pos2 = text.IndexOf("#__", pos1 + 3);
+                if (pos2 != -1)
+                {
+                    String id = text.Substring(pos1 + 3, pos2 - pos1 - 3);
+                    String locStr;
+                    locStr = (String)sb[id == "@font" || id == "@fontsize" ? id + fontSuffix : id];
+                    if (locStr == null)
+                        locStr = "";
+                    int locLen = locStr.Length;
+
+                    String begin, end;
+                    if (pos1 > 0)
+                        begin = text.Substring(0, pos1);
+                    else
+                        begin = "";
+                    end = text.Substring(pos2 + 3);
+                    text = begin + locStr + end;
+
+                    len = len - 6 - id.Length + locLen;
+                    i = pos1 + locLen;
+                }
+                else
+                    i = len;
+            }
+            else
+                i = len;
+        }
+        return text;
+    }
+
+    public static String GetString(String id, String locale)
+    {
+        Hashtable sb = null;
+        try
+        {
+            sb = GetStringBundle(locale);
+        }
+        catch (Exception)
+        {
+            return "";
+        }
+        String s = (String)sb[id];
+        if (s == null)
+            return "";
+        return s;
+    }
+
+    protected static Hashtable GetStringBundle(String locale)
+    {
+        if (locale.Equals(""))
+            locale = english;
+        else
+            locale = locale.ToLower();
+
+        if (!languages.ContainsKey(locale))
+        {
+            StreamReader sr = null;
+            String fname = localizationPath + locale;
+            try
+            {
+                if (!File.Exists(fname))
+                {
+                    // requested locale is not supported, default to English
+                    if (languages.ContainsKey(english))
+                        return (Hashtable)languages[english];
+                    fname = localizationPath + english;
+                }
+                sr = new StreamReader(fname, Encoding.UTF8);
+                string line;
+                Hashtable sb = new Hashtable();
+                while ((line = sr.ReadLine()) != null)
+                {
+                    line = line.Trim();
+                    if (line.Equals("") || line[0] == '#')
+                        continue;
+                    int sep = line.IndexOf('=');
+                    if (sep == -1)
+                        continue;
+                    String key = line.Substring(0, sep).Trim();
+                    if (key.Equals(""))
+                        continue;
+                    sb[key] = line.Substring(sep + 1).Trim();
+                }
+                languages[locale] = sb;
+            }
+            catch (Exception)
+            {
+                return null;
+            }
+            finally
+            {
+                if (sr != null)
+                {
+                    try { sr.Close(); }
+                    catch (Exception) { }
+                }
+            }
+        }
+        return (Hashtable)languages[locale];
+    }
+
+}
+
+}

Added: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/runtimes/linux-x64/native/readme-linux-x64.txt
===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/runtimes/linux-x64/native/readme-linux-x64.txt	                        (rev 0)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/runtimes/linux-x64/native/readme-linux-x64.txt	2022-11-16 13:17:56 UTC (rev 10017)
@@ -0,0 +1 @@
+All unmanaged libraries being P/Invoked (including their dependencies) go here
\ No newline at end of file

Index: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/runtimes/win-x64/native
===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/runtimes/win-x64/native	2022-11-12 08:34:51 UTC (rev 10016)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/runtimes/win-x64/native	2022-11-16 13:17:56 UTC (rev 10017)

Property changes on: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/runtimes/win-x64/native
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,2 ##
+*.dll
+*.pdb
Added: trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/runtimes/win-x64/native/readme-win-x64.txt
===================================================================
--- trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/runtimes/win-x64/native/readme-win-x64.txt	                        (rev 0)
+++ trunk/MgDev/Bindings/src/Managed/DotNet/OSGeo.MapGuide.Portable/runtimes/win-x64/native/readme-win-x64.txt	2022-11-16 13:17:56 UTC (rev 10017)
@@ -0,0 +1 @@
+All ummanaged libraries being P/Invoked (including their dependencies) go here
\ No newline at end of file

Modified: trunk/MgDev/Portable/MgPortable/MgPortable.vcxproj
===================================================================
--- trunk/MgDev/Portable/MgPortable/MgPortable.vcxproj	2022-11-12 08:34:51 UTC (rev 10016)
+++ trunk/MgDev/Portable/MgPortable/MgPortable.vcxproj	2022-11-16 13:17:56 UTC (rev 10017)
@@ -72,10 +72,10 @@
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\bin\release\</OutDir>
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</OutDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\bin\$(Configuration)64\</OutDir>
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\bin\release64\</OutDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\bin\$(Configuration)64\</OutDir>
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\obj\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
   </PropertyGroup>

Modified: trunk/MgDev/Portable/Portable.sln
===================================================================
--- trunk/MgDev/Portable/Portable.sln	2022-11-12 08:34:51 UTC (rev 10016)
+++ trunk/MgDev/Portable/Portable.sln	2022-11-16 13:17:56 UTC (rev 10017)
@@ -1,7 +1,7 @@
 
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.30717.126
+# Visual Studio Version 17
+VisualStudioVersion = 17.3.32929.385
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Foundation", "..\Common\Foundation\Foundation.vcxproj", "{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}"
 EndProject
@@ -27,18 +27,18 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MgPortable", "MgPortable\MgPortable.vcxproj", "{CBC0339F-E68B-48BA-9059-945483BEBDCA}"
 	ProjectSection(ProjectDependencies) = postProject
-		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4} = {F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}
-		{8D947123-A12C-45DA-BD00-8B62DD5A0459} = {8D947123-A12C-45DA-BD00-8B62DD5A0459}
-		{E6B0012F-58F6-42F4-8F02-065C35829569} = {E6B0012F-58F6-42F4-8F02-065C35829569}
-		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7} = {85882748-DD71-4D2B-9E5A-03AF8C8D91B7}
 		{341D5463-186E-49BA-B942-3D3BE28D65C0} = {341D5463-186E-49BA-B942-3D3BE28D65C0}
-		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425} = {A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}
 		{38161685-88ED-415E-A545-CCC17BE069AE} = {38161685-88ED-415E-A545-CCC17BE069AE}
 		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B} = {7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}
+		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7} = {85882748-DD71-4D2B-9E5A-03AF8C8D91B7}
+		{8D947123-A12C-45DA-BD00-8B62DD5A0459} = {8D947123-A12C-45DA-BD00-8B62DD5A0459}
 		{8F654896-85DC-4F32-99B2-670D66B0FBF1} = {8F654896-85DC-4F32-99B2-670D66B0FBF1}
+		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425} = {A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}
+		{C50254F2-654A-48DE-AF5B-20605AEF8D10} = {C50254F2-654A-48DE-AF5B-20605AEF8D10}
 		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0} = {D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}
 		{DB2CC2E3-4754-4932-B865-424A44E58FD0} = {DB2CC2E3-4754-4932-B865-424A44E58FD0}
-		{C50254F2-654A-48DE-AF5B-20605AEF8D10} = {C50254F2-654A-48DE-AF5B-20605AEF8D10}
+		{E6B0012F-58F6-42F4-8F02-065C35829569} = {E6B0012F-58F6-42F4-8F02-065C35829569}
+		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4} = {F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}
 	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest", "UnitTest\UnitTest.vcxproj", "{67505883-F667-4C18-BCCA-63F3B76C64FF}"
@@ -48,130 +48,380 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Security", "..\Common\Security\Security.vcxproj", "{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}"
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PortableApi", "..\Bindings\src\Bindings\DotNet\Portable\PortableApi.vcxproj", "{94580073-62BC-4E59-86DE-DF36EC6DAAEA}"
+	ProjectSection(ProjectDependencies) = postProject
+		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B} = {3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}
+		{73C62FF2-C188-4A61-929E-2F112D7E17AA} = {73C62FF2-C188-4A61-929E-2F112D7E17AA}
+		{B601F04C-0D42-4AFC-A092-B31185E2EA8C} = {B601F04C-0D42-4AFC-A092-B31185E2EA8C}
+		{B994F673-EB8E-4C65-8884-B56AB8783115} = {B994F673-EB8E-4C65-8884-B56AB8783115}
+		{CBC0339F-E68B-48BA-9059-945483BEBDCA} = {CBC0339F-E68B-48BA-9059-945483BEBDCA}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IMake", "..\Bindings\src\IMake\IMake.vcxproj", "{B601F04C-0D42-4AFC-A092-B31185E2EA8C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FoundationApi", "..\Bindings\src\Bindings\DotNet\Foundation\FoundationApi.vcxproj", "{73C62FF2-C188-4A61-929E-2F112D7E17AA}"
+	ProjectSection(ProjectDependencies) = postProject
+		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425} = {A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GeometryApi", "..\Bindings\src\Bindings\DotNet\Geometry\GeometryApi.vcxproj", "{B994F673-EB8E-4C65-8884-B56AB8783115}"
+	ProjectSection(ProjectDependencies) = postProject
+		{73C62FF2-C188-4A61-929E-2F112D7E17AA} = {73C62FF2-C188-4A61-929E-2F112D7E17AA}
+		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0} = {D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PlatformBaseApi", "..\Bindings\src\Bindings\DotNet\PlatformBase\PlatformBaseApi.vcxproj", "{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}"
+	ProjectSection(ProjectDependencies) = postProject
+		{73C62FF2-C188-4A61-929E-2F112D7E17AA} = {73C62FF2-C188-4A61-929E-2F112D7E17AA}
+		{B994F673-EB8E-4C65-8884-B56AB8783115} = {B994F673-EB8E-4C65-8884-B56AB8783115}
+		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4} = {F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}
+	EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Common Deps", "Common Deps", "{170A02F9-83DC-41AF-9D87-A3A6A3B00E2D}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SWIG Glue", "SWIG Glue", "{15BFAE5B-479D-460D-9F2D-378ECF4349B4}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{DA7E6A63-0CBD-4943-8FF5-71C46A026DAD}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MapGuide Portable", "MapGuide Portable", "{C4DFA2F5-D989-44D1-9C01-FCE22D8E1910}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OSGeo.MapGuide.Portable", "..\Bindings\src\Managed\DotNet\OSGeo.MapGuide.Portable\OSGeo.MapGuide.Portable.csproj", "{DC28F4ED-B1EC-4A65-9866-F629D2A12782}"
+	ProjectSection(ProjectDependencies) = postProject
+		{94580073-62BC-4E59-86DE-DF36EC6DAAEA} = {94580073-62BC-4E59-86DE-DF36EC6DAAEA}
+	EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DotNet Wrappers", "DotNet Wrappers", "{DEE3ED40-39B9-4D9A-9529-E858C24CC2A2}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OSGeo.MapGuide.Foundation", "..\Bindings\src\Managed\DotNet\OSGeo.MapGuide.Foundation\OSGeo.MapGuide.Foundation.csproj", "{26A8B65F-D08B-4BD1-9DDC-0DC68488DD0A}"
+	ProjectSection(ProjectDependencies) = postProject
+		{73C62FF2-C188-4A61-929E-2F112D7E17AA} = {73C62FF2-C188-4A61-929E-2F112D7E17AA}
+	EndProjectSection
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OSGeo.MapGuide.Geometry", "..\Bindings\src\Managed\DotNet\OSGeo.MapGuide.Geometry\OSGeo.MapGuide.Geometry.csproj", "{8A85841D-9475-456B-929F-C3B6C49679EF}"
+	ProjectSection(ProjectDependencies) = postProject
+		{B994F673-EB8E-4C65-8884-B56AB8783115} = {B994F673-EB8E-4C65-8884-B56AB8783115}
+	EndProjectSection
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OSGeo.MapGuide.PlatformBase", "..\Bindings\src\Managed\DotNet\OSGeo.MapGuide.PlatformBase\OSGeo.MapGuide.PlatformBase.csproj", "{D319AD4A-7233-42BF-ABE8-445D99EA5F65}"
+	ProjectSection(ProjectDependencies) = postProject
+		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B} = {3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}
+	EndProjectSection
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
 		Debug|Win32 = Debug|Win32
 		Debug|x64 = Debug|x64
+		Release|Any CPU = Release|Any CPU
 		Release|Win32 = Release|Win32
 		Release|x64 = Release|x64
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}.Debug|Any CPU.ActiveCfg = Debug|x64
+		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}.Debug|Any CPU.Build.0 = Debug|x64
 		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}.Debug|Win32.ActiveCfg = Debug|Win32
 		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}.Debug|Win32.Build.0 = Debug|Win32
 		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}.Debug|x64.ActiveCfg = Debug|x64
 		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}.Debug|x64.Build.0 = Debug|x64
+		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}.Release|Any CPU.ActiveCfg = Release|x64
+		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}.Release|Any CPU.Build.0 = Release|x64
 		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}.Release|Win32.ActiveCfg = Release|Win32
 		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}.Release|Win32.Build.0 = Release|Win32
 		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}.Release|x64.ActiveCfg = Release|x64
 		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425}.Release|x64.Build.0 = Release|x64
+		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}.Debug|Any CPU.ActiveCfg = Debug|x64
+		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}.Debug|Any CPU.Build.0 = Debug|x64
 		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}.Debug|Win32.ActiveCfg = Debug|Win32
 		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}.Debug|Win32.Build.0 = Debug|Win32
 		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}.Debug|x64.ActiveCfg = Debug|x64
 		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}.Debug|x64.Build.0 = Debug|x64
+		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}.Release|Any CPU.ActiveCfg = Release|x64
+		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}.Release|Any CPU.Build.0 = Release|x64
 		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}.Release|Win32.ActiveCfg = Release|Win32
 		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}.Release|Win32.Build.0 = Release|Win32
 		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}.Release|x64.ActiveCfg = Release|x64
 		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0}.Release|x64.Build.0 = Release|x64
+		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}.Debug|Any CPU.ActiveCfg = Debug|x64
+		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}.Debug|Any CPU.Build.0 = Debug|x64
 		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}.Debug|Win32.ActiveCfg = Debug|Win32
 		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}.Debug|Win32.Build.0 = Debug|Win32
 		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}.Debug|x64.ActiveCfg = Debug|x64
 		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}.Debug|x64.Build.0 = Debug|x64
+		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}.Release|Any CPU.ActiveCfg = Release|x64
+		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}.Release|Any CPU.Build.0 = Release|x64
 		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}.Release|Win32.ActiveCfg = Release|Win32
 		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}.Release|Win32.Build.0 = Release|Win32
 		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}.Release|x64.ActiveCfg = Release|x64
 		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4}.Release|x64.Build.0 = Release|x64
+		{C50254F2-654A-48DE-AF5B-20605AEF8D10}.Debug|Any CPU.ActiveCfg = Debug|x64
+		{C50254F2-654A-48DE-AF5B-20605AEF8D10}.Debug|Any CPU.Build.0 = Debug|x64
 		{C50254F2-654A-48DE-AF5B-20605AEF8D10}.Debug|Win32.ActiveCfg = Debug|Win32
 		{C50254F2-654A-48DE-AF5B-20605AEF8D10}.Debug|Win32.Build.0 = Debug|Win32
 		{C50254F2-654A-48DE-AF5B-20605AEF8D10}.Debug|x64.ActiveCfg = Debug|x64
 		{C50254F2-654A-48DE-AF5B-20605AEF8D10}.Debug|x64.Build.0 = Debug|x64
+		{C50254F2-654A-48DE-AF5B-20605AEF8D10}.Release|Any CPU.ActiveCfg = Release|x64
+		{C50254F2-654A-48DE-AF5B-20605AEF8D10}.Release|Any CPU.Build.0 = Release|x64
 		{C50254F2-654A-48DE-AF5B-20605AEF8D10}.Release|Win32.ActiveCfg = Release|Win32
 		{C50254F2-654A-48DE-AF5B-20605AEF8D10}.Release|Win32.Build.0 = Release|Win32
 		{C50254F2-654A-48DE-AF5B-20605AEF8D10}.Release|x64.ActiveCfg = Release|x64
 		{C50254F2-654A-48DE-AF5B-20605AEF8D10}.Release|x64.Build.0 = Release|x64
+		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}.Debug|Any CPU.ActiveCfg = Debug|x64
+		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}.Debug|Any CPU.Build.0 = Debug|x64
 		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}.Debug|Win32.ActiveCfg = Debug|Win32
 		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}.Debug|Win32.Build.0 = Debug|Win32
 		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}.Debug|x64.ActiveCfg = Debug|x64
 		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}.Debug|x64.Build.0 = Debug|x64
+		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}.Release|Any CPU.ActiveCfg = Release|x64
+		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}.Release|Any CPU.Build.0 = Release|x64
 		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}.Release|Win32.ActiveCfg = Release|Win32
 		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}.Release|Win32.Build.0 = Release|Win32
 		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}.Release|x64.ActiveCfg = Release|x64
 		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7}.Release|x64.Build.0 = Release|x64
+		{38161685-88ED-415E-A545-CCC17BE069AE}.Debug|Any CPU.ActiveCfg = Debug|x64
+		{38161685-88ED-415E-A545-CCC17BE069AE}.Debug|Any CPU.Build.0 = Debug|x64
 		{38161685-88ED-415E-A545-CCC17BE069AE}.Debug|Win32.ActiveCfg = Debug|Win32
 		{38161685-88ED-415E-A545-CCC17BE069AE}.Debug|Win32.Build.0 = Debug|Win32
 		{38161685-88ED-415E-A545-CCC17BE069AE}.Debug|x64.ActiveCfg = Debug|x64
 		{38161685-88ED-415E-A545-CCC17BE069AE}.Debug|x64.Build.0 = Debug|x64
+		{38161685-88ED-415E-A545-CCC17BE069AE}.Release|Any CPU.ActiveCfg = Release|x64
+		{38161685-88ED-415E-A545-CCC17BE069AE}.Release|Any CPU.Build.0 = Release|x64
 		{38161685-88ED-415E-A545-CCC17BE069AE}.Release|Win32.ActiveCfg = Release|Win32
 		{38161685-88ED-415E-A545-CCC17BE069AE}.Release|Win32.Build.0 = Release|Win32
 		{38161685-88ED-415E-A545-CCC17BE069AE}.Release|x64.ActiveCfg = Release|x64
 		{38161685-88ED-415E-A545-CCC17BE069AE}.Release|x64.Build.0 = Release|x64
+		{341D5463-186E-49BA-B942-3D3BE28D65C0}.Debug|Any CPU.ActiveCfg = Debug|x64
+		{341D5463-186E-49BA-B942-3D3BE28D65C0}.Debug|Any CPU.Build.0 = Debug|x64
 		{341D5463-186E-49BA-B942-3D3BE28D65C0}.Debug|Win32.ActiveCfg = Debug|Win32
 		{341D5463-186E-49BA-B942-3D3BE28D65C0}.Debug|Win32.Build.0 = Debug|Win32
 		{341D5463-186E-49BA-B942-3D3BE28D65C0}.Debug|x64.ActiveCfg = Debug|x64
 		{341D5463-186E-49BA-B942-3D3BE28D65C0}.Debug|x64.Build.0 = Debug|x64
+		{341D5463-186E-49BA-B942-3D3BE28D65C0}.Release|Any CPU.ActiveCfg = Release|x64
+		{341D5463-186E-49BA-B942-3D3BE28D65C0}.Release|Any CPU.Build.0 = Release|x64
 		{341D5463-186E-49BA-B942-3D3BE28D65C0}.Release|Win32.ActiveCfg = Release|Win32
 		{341D5463-186E-49BA-B942-3D3BE28D65C0}.Release|Win32.Build.0 = Release|Win32
 		{341D5463-186E-49BA-B942-3D3BE28D65C0}.Release|x64.ActiveCfg = Release|x64
 		{341D5463-186E-49BA-B942-3D3BE28D65C0}.Release|x64.Build.0 = Release|x64
+		{DB2CC2E3-4754-4932-B865-424A44E58FD0}.Debug|Any CPU.ActiveCfg = Debug|x64
+		{DB2CC2E3-4754-4932-B865-424A44E58FD0}.Debug|Any CPU.Build.0 = Debug|x64
 		{DB2CC2E3-4754-4932-B865-424A44E58FD0}.Debug|Win32.ActiveCfg = Debug|Win32
 		{DB2CC2E3-4754-4932-B865-424A44E58FD0}.Debug|Win32.Build.0 = Debug|Win32
 		{DB2CC2E3-4754-4932-B865-424A44E58FD0}.Debug|x64.ActiveCfg = Debug|x64
 		{DB2CC2E3-4754-4932-B865-424A44E58FD0}.Debug|x64.Build.0 = Debug|x64
+		{DB2CC2E3-4754-4932-B865-424A44E58FD0}.Release|Any CPU.ActiveCfg = Release|x64
+		{DB2CC2E3-4754-4932-B865-424A44E58FD0}.Release|Any CPU.Build.0 = Release|x64
 		{DB2CC2E3-4754-4932-B865-424A44E58FD0}.Release|Win32.ActiveCfg = Release|Win32
 		{DB2CC2E3-4754-4932-B865-424A44E58FD0}.Release|Win32.Build.0 = Release|Win32
 		{DB2CC2E3-4754-4932-B865-424A44E58FD0}.Release|x64.ActiveCfg = Release|x64
 		{DB2CC2E3-4754-4932-B865-424A44E58FD0}.Release|x64.Build.0 = Release|x64
+		{8D947123-A12C-45DA-BD00-8B62DD5A0459}.Debug|Any CPU.ActiveCfg = Debug|x64
+		{8D947123-A12C-45DA-BD00-8B62DD5A0459}.Debug|Any CPU.Build.0 = Debug|x64
 		{8D947123-A12C-45DA-BD00-8B62DD5A0459}.Debug|Win32.ActiveCfg = Debug|Win32
 		{8D947123-A12C-45DA-BD00-8B62DD5A0459}.Debug|Win32.Build.0 = Debug|Win32
 		{8D947123-A12C-45DA-BD00-8B62DD5A0459}.Debug|x64.ActiveCfg = Debug|x64
 		{8D947123-A12C-45DA-BD00-8B62DD5A0459}.Debug|x64.Build.0 = Debug|x64
+		{8D947123-A12C-45DA-BD00-8B62DD5A0459}.Release|Any CPU.ActiveCfg = Release|x64
+		{8D947123-A12C-45DA-BD00-8B62DD5A0459}.Release|Any CPU.Build.0 = Release|x64
 		{8D947123-A12C-45DA-BD00-8B62DD5A0459}.Release|Win32.ActiveCfg = Release|Win32
 		{8D947123-A12C-45DA-BD00-8B62DD5A0459}.Release|Win32.Build.0 = Release|Win32
 		{8D947123-A12C-45DA-BD00-8B62DD5A0459}.Release|x64.ActiveCfg = Release|x64
 		{8D947123-A12C-45DA-BD00-8B62DD5A0459}.Release|x64.Build.0 = Release|x64
+		{8F654896-85DC-4F32-99B2-670D66B0FBF1}.Debug|Any CPU.ActiveCfg = Debug|x64
+		{8F654896-85DC-4F32-99B2-670D66B0FBF1}.Debug|Any CPU.Build.0 = Debug|x64
 		{8F654896-85DC-4F32-99B2-670D66B0FBF1}.Debug|Win32.ActiveCfg = Debug|Win32
 		{8F654896-85DC-4F32-99B2-670D66B0FBF1}.Debug|Win32.Build.0 = Debug|Win32
 		{8F654896-85DC-4F32-99B2-670D66B0FBF1}.Debug|x64.ActiveCfg = Debug|x64
 		{8F654896-85DC-4F32-99B2-670D66B0FBF1}.Debug|x64.Build.0 = Debug|x64
+		{8F654896-85DC-4F32-99B2-670D66B0FBF1}.Release|Any CPU.ActiveCfg = Release|x64
+		{8F654896-85DC-4F32-99B2-670D66B0FBF1}.Release|Any CPU.Build.0 = Release|x64
 		{8F654896-85DC-4F32-99B2-670D66B0FBF1}.Release|Win32.ActiveCfg = Release|Win32
 		{8F654896-85DC-4F32-99B2-670D66B0FBF1}.Release|Win32.Build.0 = Release|Win32
 		{8F654896-85DC-4F32-99B2-670D66B0FBF1}.Release|x64.ActiveCfg = Release|x64
 		{8F654896-85DC-4F32-99B2-670D66B0FBF1}.Release|x64.Build.0 = Release|x64
+		{E6B0012F-58F6-42F4-8F02-065C35829569}.Debug|Any CPU.ActiveCfg = Debug|x64
+		{E6B0012F-58F6-42F4-8F02-065C35829569}.Debug|Any CPU.Build.0 = Debug|x64
 		{E6B0012F-58F6-42F4-8F02-065C35829569}.Debug|Win32.ActiveCfg = Debug|Win32
 		{E6B0012F-58F6-42F4-8F02-065C35829569}.Debug|Win32.Build.0 = Debug|Win32
 		{E6B0012F-58F6-42F4-8F02-065C35829569}.Debug|x64.ActiveCfg = Debug|x64
 		{E6B0012F-58F6-42F4-8F02-065C35829569}.Debug|x64.Build.0 = Debug|x64
+		{E6B0012F-58F6-42F4-8F02-065C35829569}.Release|Any CPU.ActiveCfg = Release|x64
+		{E6B0012F-58F6-42F4-8F02-065C35829569}.Release|Any CPU.Build.0 = Release|x64
 		{E6B0012F-58F6-42F4-8F02-065C35829569}.Release|Win32.ActiveCfg = Release|Win32
 		{E6B0012F-58F6-42F4-8F02-065C35829569}.Release|Win32.Build.0 = Release|Win32
 		{E6B0012F-58F6-42F4-8F02-065C35829569}.Release|x64.ActiveCfg = Release|x64
 		{E6B0012F-58F6-42F4-8F02-065C35829569}.Release|x64.Build.0 = Release|x64
+		{CBC0339F-E68B-48BA-9059-945483BEBDCA}.Debug|Any CPU.ActiveCfg = Debug|x64
+		{CBC0339F-E68B-48BA-9059-945483BEBDCA}.Debug|Any CPU.Build.0 = Debug|x64
 		{CBC0339F-E68B-48BA-9059-945483BEBDCA}.Debug|Win32.ActiveCfg = Debug|Win32
 		{CBC0339F-E68B-48BA-9059-945483BEBDCA}.Debug|Win32.Build.0 = Debug|Win32
 		{CBC0339F-E68B-48BA-9059-945483BEBDCA}.Debug|x64.ActiveCfg = Debug|x64
 		{CBC0339F-E68B-48BA-9059-945483BEBDCA}.Debug|x64.Build.0 = Debug|x64
+		{CBC0339F-E68B-48BA-9059-945483BEBDCA}.Release|Any CPU.ActiveCfg = Release|x64
+		{CBC0339F-E68B-48BA-9059-945483BEBDCA}.Release|Any CPU.Build.0 = Release|x64
 		{CBC0339F-E68B-48BA-9059-945483BEBDCA}.Release|Win32.ActiveCfg = Release|Win32
 		{CBC0339F-E68B-48BA-9059-945483BEBDCA}.Release|Win32.Build.0 = Release|Win32
 		{CBC0339F-E68B-48BA-9059-945483BEBDCA}.Release|x64.ActiveCfg = Release|x64
 		{CBC0339F-E68B-48BA-9059-945483BEBDCA}.Release|x64.Build.0 = Release|x64
+		{67505883-F667-4C18-BCCA-63F3B76C64FF}.Debug|Any CPU.ActiveCfg = Debug|x64
+		{67505883-F667-4C18-BCCA-63F3B76C64FF}.Debug|Any CPU.Build.0 = Debug|x64
 		{67505883-F667-4C18-BCCA-63F3B76C64FF}.Debug|Win32.ActiveCfg = Debug|Win32
 		{67505883-F667-4C18-BCCA-63F3B76C64FF}.Debug|Win32.Build.0 = Debug|Win32
 		{67505883-F667-4C18-BCCA-63F3B76C64FF}.Debug|x64.ActiveCfg = Debug|x64
 		{67505883-F667-4C18-BCCA-63F3B76C64FF}.Debug|x64.Build.0 = Debug|x64
+		{67505883-F667-4C18-BCCA-63F3B76C64FF}.Release|Any CPU.ActiveCfg = Release|x64
+		{67505883-F667-4C18-BCCA-63F3B76C64FF}.Release|Any CPU.Build.0 = Release|x64
 		{67505883-F667-4C18-BCCA-63F3B76C64FF}.Release|Win32.ActiveCfg = Release|Win32
 		{67505883-F667-4C18-BCCA-63F3B76C64FF}.Release|Win32.Build.0 = Release|Win32
 		{67505883-F667-4C18-BCCA-63F3B76C64FF}.Release|x64.ActiveCfg = Release|x64
 		{67505883-F667-4C18-BCCA-63F3B76C64FF}.Release|x64.Build.0 = Release|x64
+		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}.Debug|Any CPU.ActiveCfg = Debug|x64
+		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}.Debug|Any CPU.Build.0 = Debug|x64
 		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}.Debug|Win32.ActiveCfg = Debug|Win32
 		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}.Debug|Win32.Build.0 = Debug|Win32
 		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}.Debug|x64.ActiveCfg = Debug|x64
 		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}.Debug|x64.Build.0 = Debug|x64
+		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}.Release|Any CPU.ActiveCfg = Release|x64
+		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}.Release|Any CPU.Build.0 = Release|x64
 		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}.Release|Win32.ActiveCfg = Release|Win32
 		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}.Release|Win32.Build.0 = Release|Win32
 		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}.Release|x64.ActiveCfg = Release|x64
 		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B}.Release|x64.Build.0 = Release|x64
+		{94580073-62BC-4E59-86DE-DF36EC6DAAEA}.Debug|Any CPU.ActiveCfg = Debug|x64
+		{94580073-62BC-4E59-86DE-DF36EC6DAAEA}.Debug|Any CPU.Build.0 = Debug|x64
+		{94580073-62BC-4E59-86DE-DF36EC6DAAEA}.Debug|Win32.ActiveCfg = Debug|x64
+		{94580073-62BC-4E59-86DE-DF36EC6DAAEA}.Debug|Win32.Build.0 = Debug|x64
+		{94580073-62BC-4E59-86DE-DF36EC6DAAEA}.Debug|x64.ActiveCfg = Debug|x64
+		{94580073-62BC-4E59-86DE-DF36EC6DAAEA}.Debug|x64.Build.0 = Debug|x64
+		{94580073-62BC-4E59-86DE-DF36EC6DAAEA}.Release|Any CPU.ActiveCfg = Release|x64
+		{94580073-62BC-4E59-86DE-DF36EC6DAAEA}.Release|Any CPU.Build.0 = Release|x64
+		{94580073-62BC-4E59-86DE-DF36EC6DAAEA}.Release|Win32.ActiveCfg = Release|x64
+		{94580073-62BC-4E59-86DE-DF36EC6DAAEA}.Release|Win32.Build.0 = Release|x64
+		{94580073-62BC-4E59-86DE-DF36EC6DAAEA}.Release|x64.ActiveCfg = Release|x64
+		{94580073-62BC-4E59-86DE-DF36EC6DAAEA}.Release|x64.Build.0 = Release|x64
+		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Debug|Any CPU.ActiveCfg = Debug|x64
+		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Debug|Any CPU.Build.0 = Debug|x64
+		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Debug|Win32.ActiveCfg = Debug|x64
+		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Debug|Win32.Build.0 = Debug|x64
+		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Debug|x64.ActiveCfg = Debug|x64
+		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Debug|x64.Build.0 = Debug|x64
+		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Release|Any CPU.ActiveCfg = Release|x64
+		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Release|Any CPU.Build.0 = Release|x64
+		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Release|Win32.ActiveCfg = Release|x64
+		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Release|Win32.Build.0 = Release|x64
+		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Release|x64.ActiveCfg = Release|x64
+		{B601F04C-0D42-4AFC-A092-B31185E2EA8C}.Release|x64.Build.0 = Release|x64
+		{73C62FF2-C188-4A61-929E-2F112D7E17AA}.Debug|Any CPU.ActiveCfg = Debug|x64
+		{73C62FF2-C188-4A61-929E-2F112D7E17AA}.Debug|Any CPU.Build.0 = Debug|x64
+		{73C62FF2-C188-4A61-929E-2F112D7E17AA}.Debug|Win32.ActiveCfg = Debug|x64
+		{73C62FF2-C188-4A61-929E-2F112D7E17AA}.Debug|Win32.Build.0 = Debug|x64
+		{73C62FF2-C188-4A61-929E-2F112D7E17AA}.Debug|x64.ActiveCfg = Debug|x64
+		{73C62FF2-C188-4A61-929E-2F112D7E17AA}.Debug|x64.Build.0 = Debug|x64
+		{73C62FF2-C188-4A61-929E-2F112D7E17AA}.Release|Any CPU.ActiveCfg = Release|x64
+		{73C62FF2-C188-4A61-929E-2F112D7E17AA}.Release|Any CPU.Build.0 = Release|x64
+		{73C62FF2-C188-4A61-929E-2F112D7E17AA}.Release|Win32.ActiveCfg = Release|x64
+		{73C62FF2-C188-4A61-929E-2F112D7E17AA}.Release|Win32.Build.0 = Release|x64
+		{73C62FF2-C188-4A61-929E-2F112D7E17AA}.Release|x64.ActiveCfg = Release|x64
+		{73C62FF2-C188-4A61-929E-2F112D7E17AA}.Release|x64.Build.0 = Release|x64
+		{B994F673-EB8E-4C65-8884-B56AB8783115}.Debug|Any CPU.ActiveCfg = Debug|x64
+		{B994F673-EB8E-4C65-8884-B56AB8783115}.Debug|Any CPU.Build.0 = Debug|x64
+		{B994F673-EB8E-4C65-8884-B56AB8783115}.Debug|Win32.ActiveCfg = Debug|x64
+		{B994F673-EB8E-4C65-8884-B56AB8783115}.Debug|Win32.Build.0 = Debug|x64
+		{B994F673-EB8E-4C65-8884-B56AB8783115}.Debug|x64.ActiveCfg = Debug|x64
+		{B994F673-EB8E-4C65-8884-B56AB8783115}.Debug|x64.Build.0 = Debug|x64
+		{B994F673-EB8E-4C65-8884-B56AB8783115}.Release|Any CPU.ActiveCfg = Release|x64
+		{B994F673-EB8E-4C65-8884-B56AB8783115}.Release|Any CPU.Build.0 = Release|x64
+		{B994F673-EB8E-4C65-8884-B56AB8783115}.Release|Win32.ActiveCfg = Release|x64
+		{B994F673-EB8E-4C65-8884-B56AB8783115}.Release|Win32.Build.0 = Release|x64
+		{B994F673-EB8E-4C65-8884-B56AB8783115}.Release|x64.ActiveCfg = Release|x64
+		{B994F673-EB8E-4C65-8884-B56AB8783115}.Release|x64.Build.0 = Release|x64
+		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}.Debug|Any CPU.ActiveCfg = Debug|x64
+		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}.Debug|Any CPU.Build.0 = Debug|x64
+		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}.Debug|Win32.ActiveCfg = Debug|x64
+		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}.Debug|Win32.Build.0 = Debug|x64
+		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}.Debug|x64.ActiveCfg = Debug|x64
+		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}.Debug|x64.Build.0 = Debug|x64
+		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}.Release|Any CPU.ActiveCfg = Release|x64
+		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}.Release|Any CPU.Build.0 = Release|x64
+		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}.Release|Win32.ActiveCfg = Release|x64
+		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}.Release|Win32.Build.0 = Release|x64
+		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}.Release|x64.ActiveCfg = Release|x64
+		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B}.Release|x64.Build.0 = Release|x64
+		{DC28F4ED-B1EC-4A65-9866-F629D2A12782}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{DC28F4ED-B1EC-4A65-9866-F629D2A12782}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{DC28F4ED-B1EC-4A65-9866-F629D2A12782}.Debug|Win32.ActiveCfg = Debug|Any CPU
+		{DC28F4ED-B1EC-4A65-9866-F629D2A12782}.Debug|Win32.Build.0 = Debug|Any CPU
+		{DC28F4ED-B1EC-4A65-9866-F629D2A12782}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{DC28F4ED-B1EC-4A65-9866-F629D2A12782}.Debug|x64.Build.0 = Debug|Any CPU
+		{DC28F4ED-B1EC-4A65-9866-F629D2A12782}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{DC28F4ED-B1EC-4A65-9866-F629D2A12782}.Release|Any CPU.Build.0 = Release|Any CPU
+		{DC28F4ED-B1EC-4A65-9866-F629D2A12782}.Release|Win32.ActiveCfg = Release|Any CPU
+		{DC28F4ED-B1EC-4A65-9866-F629D2A12782}.Release|Win32.Build.0 = Release|Any CPU
+		{DC28F4ED-B1EC-4A65-9866-F629D2A12782}.Release|x64.ActiveCfg = Release|Any CPU
+		{DC28F4ED-B1EC-4A65-9866-F629D2A12782}.Release|x64.Build.0 = Release|Any CPU
+		{26A8B65F-D08B-4BD1-9DDC-0DC68488DD0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{26A8B65F-D08B-4BD1-9DDC-0DC68488DD0A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{26A8B65F-D08B-4BD1-9DDC-0DC68488DD0A}.Debug|Win32.ActiveCfg = Debug|Any CPU
+		{26A8B65F-D08B-4BD1-9DDC-0DC68488DD0A}.Debug|Win32.Build.0 = Debug|Any CPU
+		{26A8B65F-D08B-4BD1-9DDC-0DC68488DD0A}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{26A8B65F-D08B-4BD1-9DDC-0DC68488DD0A}.Debug|x64.Build.0 = Debug|Any CPU
+		{26A8B65F-D08B-4BD1-9DDC-0DC68488DD0A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{26A8B65F-D08B-4BD1-9DDC-0DC68488DD0A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{26A8B65F-D08B-4BD1-9DDC-0DC68488DD0A}.Release|Win32.ActiveCfg = Release|Any CPU
+		{26A8B65F-D08B-4BD1-9DDC-0DC68488DD0A}.Release|Win32.Build.0 = Release|Any CPU
+		{26A8B65F-D08B-4BD1-9DDC-0DC68488DD0A}.Release|x64.ActiveCfg = Release|Any CPU
+		{26A8B65F-D08B-4BD1-9DDC-0DC68488DD0A}.Release|x64.Build.0 = Release|Any CPU
+		{8A85841D-9475-456B-929F-C3B6C49679EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{8A85841D-9475-456B-929F-C3B6C49679EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{8A85841D-9475-456B-929F-C3B6C49679EF}.Debug|Win32.ActiveCfg = Debug|Any CPU
+		{8A85841D-9475-456B-929F-C3B6C49679EF}.Debug|Win32.Build.0 = Debug|Any CPU
+		{8A85841D-9475-456B-929F-C3B6C49679EF}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{8A85841D-9475-456B-929F-C3B6C49679EF}.Debug|x64.Build.0 = Debug|Any CPU
+		{8A85841D-9475-456B-929F-C3B6C49679EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{8A85841D-9475-456B-929F-C3B6C49679EF}.Release|Any CPU.Build.0 = Release|Any CPU
+		{8A85841D-9475-456B-929F-C3B6C49679EF}.Release|Win32.ActiveCfg = Release|Any CPU
+		{8A85841D-9475-456B-929F-C3B6C49679EF}.Release|Win32.Build.0 = Release|Any CPU
+		{8A85841D-9475-456B-929F-C3B6C49679EF}.Release|x64.ActiveCfg = Release|Any CPU
+		{8A85841D-9475-456B-929F-C3B6C49679EF}.Release|x64.Build.0 = Release|Any CPU
+		{D319AD4A-7233-42BF-ABE8-445D99EA5F65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D319AD4A-7233-42BF-ABE8-445D99EA5F65}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D319AD4A-7233-42BF-ABE8-445D99EA5F65}.Debug|Win32.ActiveCfg = Debug|Any CPU
+		{D319AD4A-7233-42BF-ABE8-445D99EA5F65}.Debug|Win32.Build.0 = Debug|Any CPU
+		{D319AD4A-7233-42BF-ABE8-445D99EA5F65}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{D319AD4A-7233-42BF-ABE8-445D99EA5F65}.Debug|x64.Build.0 = Debug|Any CPU
+		{D319AD4A-7233-42BF-ABE8-445D99EA5F65}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D319AD4A-7233-42BF-ABE8-445D99EA5F65}.Release|Any CPU.Build.0 = Release|Any CPU
+		{D319AD4A-7233-42BF-ABE8-445D99EA5F65}.Release|Win32.ActiveCfg = Release|Any CPU
+		{D319AD4A-7233-42BF-ABE8-445D99EA5F65}.Release|Win32.Build.0 = Release|Any CPU
+		{D319AD4A-7233-42BF-ABE8-445D99EA5F65}.Release|x64.ActiveCfg = Release|Any CPU
+		{D319AD4A-7233-42BF-ABE8-445D99EA5F65}.Release|x64.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 	EndGlobalSection
+	GlobalSection(NestedProjects) = preSolution
+		{A82ADC7D-4DA4-42F2-9BF6-DF5DCFB44425} = {170A02F9-83DC-41AF-9D87-A3A6A3B00E2D}
+		{D954DAAC-E305-40CE-B3F3-C229A0BEF4F0} = {170A02F9-83DC-41AF-9D87-A3A6A3B00E2D}
+		{F7334B1B-0EFA-47E3-8E66-DF158E61B7E4} = {170A02F9-83DC-41AF-9D87-A3A6A3B00E2D}
+		{C50254F2-654A-48DE-AF5B-20605AEF8D10} = {170A02F9-83DC-41AF-9D87-A3A6A3B00E2D}
+		{85882748-DD71-4D2B-9E5A-03AF8C8D91B7} = {170A02F9-83DC-41AF-9D87-A3A6A3B00E2D}
+		{38161685-88ED-415E-A545-CCC17BE069AE} = {170A02F9-83DC-41AF-9D87-A3A6A3B00E2D}
+		{341D5463-186E-49BA-B942-3D3BE28D65C0} = {170A02F9-83DC-41AF-9D87-A3A6A3B00E2D}
+		{DB2CC2E3-4754-4932-B865-424A44E58FD0} = {170A02F9-83DC-41AF-9D87-A3A6A3B00E2D}
+		{8D947123-A12C-45DA-BD00-8B62DD5A0459} = {170A02F9-83DC-41AF-9D87-A3A6A3B00E2D}
+		{8F654896-85DC-4F32-99B2-670D66B0FBF1} = {170A02F9-83DC-41AF-9D87-A3A6A3B00E2D}
+		{E6B0012F-58F6-42F4-8F02-065C35829569} = {170A02F9-83DC-41AF-9D87-A3A6A3B00E2D}
+		{CBC0339F-E68B-48BA-9059-945483BEBDCA} = {C4DFA2F5-D989-44D1-9C01-FCE22D8E1910}
+		{67505883-F667-4C18-BCCA-63F3B76C64FF} = {C4DFA2F5-D989-44D1-9C01-FCE22D8E1910}
+		{7C1C5695-C51C-4017-ABEF-BC3032CBAF3B} = {170A02F9-83DC-41AF-9D87-A3A6A3B00E2D}
+		{94580073-62BC-4E59-86DE-DF36EC6DAAEA} = {15BFAE5B-479D-460D-9F2D-378ECF4349B4}
+		{B601F04C-0D42-4AFC-A092-B31185E2EA8C} = {DA7E6A63-0CBD-4943-8FF5-71C46A026DAD}
+		{73C62FF2-C188-4A61-929E-2F112D7E17AA} = {15BFAE5B-479D-460D-9F2D-378ECF4349B4}
+		{B994F673-EB8E-4C65-8884-B56AB8783115} = {15BFAE5B-479D-460D-9F2D-378ECF4349B4}
+		{3BAE3F0E-8F3F-404B-B29B-5881C16BD33B} = {15BFAE5B-479D-460D-9F2D-378ECF4349B4}
+		{DC28F4ED-B1EC-4A65-9866-F629D2A12782} = {DEE3ED40-39B9-4D9A-9529-E858C24CC2A2}
+		{26A8B65F-D08B-4BD1-9DDC-0DC68488DD0A} = {DEE3ED40-39B9-4D9A-9529-E858C24CC2A2}
+		{8A85841D-9475-456B-929F-C3B6C49679EF} = {DEE3ED40-39B9-4D9A-9529-E858C24CC2A2}
+		{D319AD4A-7233-42BF-ABE8-445D99EA5F65} = {DEE3ED40-39B9-4D9A-9529-E858C24CC2A2}
+	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {0313274F-0C94-4CDC-AEB2-1A1F4E23E4DB}
 	EndGlobalSection



More information about the mapguide-commits mailing list