diff --git a/PokemonGo.RocketBot.Window/App.config b/PokemonGo.RocketBot.Window/App.config
index d1e0a4c..7dc6eeb 100644
--- a/PokemonGo.RocketBot.Window/App.config
+++ b/PokemonGo.RocketBot.Window/App.config
@@ -2,14 +2,9 @@
<configuration>
<configSections>
- <sectionGroup name="userSettings"
- type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
- <section name="PokemonGo.RocketBot.Window.UserSettings"
- type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
- allowExeDefinition="MachineToLocalUser" requirePermission="false" />
- <section name="PokemonGo.RocketBot.Window.Settings"
- type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
- allowExeDefinition="MachineToLocalUser" requirePermission="false" />
+ <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+ <section name="PokemonGo.RocketBot.Window.UserSettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
+ <section name="PokemonGo.RocketBot.Window.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<startup>
@@ -32,7 +27,6 @@
</assemblyBinding>
</runtime>
<connectionStrings>
- <add name="Pogo"
- connectionString="DatasetId = YOUR_DATASET_ID; CertificateFilePath = C:\Path\To\Your\Certificate\File-privatekey.p12; ServiceAccountId = your-service-account-email@developer.gserviceaccount.com; CertificatePassword = notasecret" />
+ <add name="Pogo" connectionString="DatasetId = YOUR_DATASET_ID; CertificateFilePath = C:\Path\To\Your\Certificate\File-privatekey.p12; ServiceAccountId = your-service-account-email@developer.gserviceaccount.com; CertificatePassword = notasecret" />
</connectionStrings>
</configuration>
\ No newline at end of file
diff --git a/PokemonGo.RocketBot.Window/Forms/MainForm.cs b/PokemonGo.RocketBot.Window/Forms/MainForm.cs
index 7aa3ea0..842a373 100644
--- a/PokemonGo.RocketBot.Window/Forms/MainForm.cs
+++ b/PokemonGo.RocketBot.Window/Forms/MainForm.cs
@@ -34,17 +34,21 @@ using POGOProtos.Inventory;
using POGOProtos.Inventory.Item;
using POGOProtos.Map.Fort;
using POGOProtos.Networking.Responses;
+using PokemonGo.RocketAPI.Extensions;
+using PokemonGo.RocketBot.Window.Models;
namespace PokemonGo.RocketBot.Window.Forms
{
public partial class MainForm : Form
{
public static MainForm Instance;
+ public static SynchronizationContext SynchronizationContext;
+
private static readonly ManualResetEvent QuitEvent = new ManualResetEvent(false);
private static readonly string subPath = "";
private static Session _session;
public static bool BoolNeedsSetup;
- private static GMarkerGoogle _playerMarker;
+ private static GMapMarker _playerMarker;
private readonly List<PointLatLng> _playerLocations = new List<PointLatLng>();
private readonly GMapOverlay _playerOverlay = new GMapOverlay("players");
@@ -59,6 +63,7 @@ namespace PokemonGo.RocketBot.Window.Forms
public MainForm()
{
InitializeComponent();
+ SynchronizationContext = SynchronizationContext.Current;
Instance = this;
}
@@ -94,9 +99,7 @@ namespace PokemonGo.RocketBot.Window.Forms
gMapControl1.Overlays.Add(_pokemonsOverlay);
gMapControl1.Overlays.Add(_playerOverlay);
- _playerMarker =
- new GMarkerGoogle(new PointLatLng(lat, lng),
- GMarkerGoogleType.orange_small);
+ _playerMarker = new GMapMarkerTrainer(new PointLatLng(lat, lng), (Image)Properties.Resources.ResourceManager.GetObject("Trainer"));
_playerOverlay.Markers.Add(_playerMarker);
_playerMarker.Position = new PointLatLng(lat, lng);
_searchAreaOverlay.Polygons.Clear();
@@ -207,12 +210,12 @@ namespace PokemonGo.RocketBot.Window.Forms
Logger.SetLoggerContext(_session);
_session.Navigation.UpdatePositionEvent +=
- (lat, lng) => _session.EventDispatcher.Send(new UpdatePositionEvent {Latitude = lat, Longitude = lng});
+ (lat, lng) => _session.EventDispatcher.Send(new UpdatePositionEvent { Latitude = lat, Longitude = lng });
_session.Navigation.UpdatePositionEvent += Navigation_UpdatePositionEvent;
RouteOptimizeUtil.RouteOptimizeEvent +=
optimizedroute =>
- _session.EventDispatcher.Send(new OptimizeRouteEvent {OptimizedRoute = optimizedroute});
+ _session.EventDispatcher.Send(new OptimizeRouteEvent { OptimizedRoute = optimizedroute });
RouteOptimizeUtil.RouteOptimizeEvent += Visualize;
}
@@ -232,46 +235,46 @@ namespace PokemonGo.RocketBot.Window.Forms
private async void Visualize(List<FortData> pokeStops)
{
+ Logger.Write("Visualize call");
+
lock (_pokestopsOverlay)
{
_pokeStops = pokeStops;
_pokestopsOverlay.Markers.Clear();
var routePoint =
(from pokeStop in pokeStops
- where pokeStop != null
- select new PointLatLng(pokeStop.Latitude, pokeStop.Longitude)).ToList();
+ where pokeStop != null
+ select new PointLatLng(pokeStop.Latitude, pokeStop.Longitude)).ToList();
_pokestopsOverlay.Routes.Clear();
- var r = new GMapRoute(routePoint, "Walking Path");
- _pokestopsOverlay.Routes.Add(r);
+ var route = new GMapRoute(routePoint, "Walking Path");
+ route.Stroke = new Pen(Color.FromArgb(128, 0, 179, 253), 4);
+ _pokestopsOverlay.Routes.Add(route);
}
- await Update();
+ Update();
}
- private new async Task Update()
+ private new void Update()
{
- lock (_pokestopsOverlay)
+ SynchronizationContext.Post(o =>
{
_pokestopsOverlay.Markers.Clear();
foreach (var pokeStop in _pokeStops)
{
- var type = GMarkerGoogleType.blue_small;
var pokeStopLoc = new PointLatLng(pokeStop.Latitude, pokeStop.Longitude);
- var pokestopMarker = new GMarkerGoogle(pokeStopLoc, type);
+ var pokestopMarker = new GMapMarkerPokestops(pokeStopLoc, (Image)Properties.Resources.ResourceManager.GetObject("Pokestop_Inrange"));
//pokestopMarker.ToolTipMode = MarkerTooltipMode.OnMouseOver;
//pokestopMarker.ToolTip = new GMapBaloonToolTip(pokestopMarker);
_pokestopsOverlay.Markers.Add(pokestopMarker);
}
- }
- lock (_playerOverlay)
- {
var route = new GMapRoute(_playerLocations, "step");
- route.Stroke = new Pen(Color.Blue, 1);
+ route.Stroke = new Pen(Color.FromArgb(175, 175, 175), 2);
route.Stroke.DashStyle = DashStyle.Dot;
_playerOverlay.Routes.Add(route);
_playerOverlay.Routes.Clear();
_playerOverlay.Routes.Add(route);
- }
+ }, null);
+
}
private async void Navigation_UpdatePositionEvent(double lat, double lng)
@@ -279,7 +282,7 @@ namespace PokemonGo.RocketBot.Window.Forms
var latlng = new PointLatLng(lat, lng);
_playerLocations.Add(latlng);
_playerMarker.Position = latlng;
- await Update();
+ await Task.Run(() => Update());
SaveLocationToDisk(lat, lng);
}
@@ -390,20 +393,20 @@ namespace PokemonGo.RocketBot.Window.Forms
{
//olvPokemonList.ButtonClick += PokemonListButton_Click;
- pkmnName.ImageGetter = delegate(object rowObject)
+ pkmnName.ImageGetter = delegate (object rowObject)
{
var pokemon = rowObject as PokemonObject;
var key = pokemon.PokemonId.ToString();
if (!olvPokemonList.SmallImageList.Images.ContainsKey(key))
{
- var img = GetPokemonImage((int) pokemon.PokemonId);
+ var img = GetPokemonImage((int)pokemon.PokemonId);
olvPokemonList.SmallImageList.Images.Add(key, img);
}
return key;
};
- olvPokemonList.FormatRow += delegate(object sender, FormatRowEventArgs e)
+ olvPokemonList.FormatRow += delegate (object sender, FormatRowEventArgs e)
{
var pok = e.Model as PokemonObject;
if (olvPokemonList.Objects.Cast<PokemonObject>()
@@ -421,7 +424,7 @@ namespace PokemonGo.RocketBot.Window.Forms
}
};
- cmsPokemonList.Opening += delegate(object sender, CancelEventArgs e)
+ cmsPokemonList.Opening += delegate (object sender, CancelEventArgs e)
{
e.Cancel = false;
cmsPokemonList.Items.Clear();
@@ -677,7 +680,7 @@ namespace PokemonGo.RocketBot.Window.Forms
private Image GetPokemonImage(int pokemonId)
{
- return (Image) Properties.Resources.ResourceManager.GetObject("Pokemon_" + pokemonId);
+ return (Image)Properties.Resources.ResourceManager.GetObject("Pokemon_" + pokemonId);
}
private async Task ReloadPokemonList()
@@ -722,7 +725,7 @@ namespace PokemonGo.RocketBot.Window.Forms
{
var pokemonObject = new PokemonObject(pokemon);
var family =
- _families.Where(i => (int) i.FamilyId <= (int) pokemon.PokemonId)
+ _families.Where(i => (int)i.FamilyId <= (int)pokemon.PokemonId)
.First();
pokemonObject.Candy = family.Candy_;
pokemonObjects.Add(pokemonObject);
@@ -776,7 +779,7 @@ namespace PokemonGo.RocketBot.Window.Forms
private async void ItemBox_ItemClick(object sender, EventArgs e)
{
- var item = (ItemData) sender;
+ var item = (ItemData)sender;
using (var form = new ItemForm(item))
{
diff --git a/PokemonGo.RocketBot.Window/Images/Pokestop_Inrange.png b/PokemonGo.RocketBot.Window/Images/Pokestop_Inrange.png
new file mode 100644
index 0000000..f537b5d
Binary files /dev/null and b/PokemonGo.RocketBot.Window/Images/Pokestop_Inrange.png differ
diff --git a/PokemonGo.RocketBot.Window/Images/Trainer.png b/PokemonGo.RocketBot.Window/Images/Trainer.png
new file mode 100644
index 0000000..f081aa0
Binary files /dev/null and b/PokemonGo.RocketBot.Window/Images/Trainer.png differ
diff --git a/PokemonGo.RocketBot.Window/Models/GMapMarkerPokestops.cs b/PokemonGo.RocketBot.Window/Models/GMapMarkerPokestops.cs
new file mode 100644
index 0000000..e6c1364
--- /dev/null
+++ b/PokemonGo.RocketBot.Window/Models/GMapMarkerPokestops.cs
@@ -0,0 +1,42 @@
+using System.Drawing;
+using GMap.NET;
+
+namespace PokemonGo.RocketBot.Window.Models
+{
+ public class GMapMarkerPokestops : GMap.NET.WindowsForms.GMapMarker
+ {
+ private Image img;
+
+ /// <summary>
+ /// The image to display as a marker.
+ /// </summary>
+ public Image MarkerImage
+ {
+ get
+ {
+ return img;
+ }
+ set
+ {
+ img = value;
+ }
+ }
+
+ /// <summary>
+ /// Constructor
+ /// </summary>
+ /// <param name="p">The position of the marker</param>
+ public GMapMarkerPokestops(PointLatLng p, Image image)
+ : base(p)
+ {
+ img = image;
+ Size = img.Size;
+ Offset = new System.Drawing.Point(-Size.Width / 2, -Size.Height);
+ }
+
+ public override void OnRender(Graphics g)
+ {
+ g.DrawImage(img, LocalPosition.X, LocalPosition.Y, Size.Width, Size.Height);
+ }
+ }
+}
\ No newline at end of file
diff --git a/PokemonGo.RocketBot.Window/Models/GMapMarkerTrainer.cs b/PokemonGo.RocketBot.Window/Models/GMapMarkerTrainer.cs
new file mode 100644
index 0000000..f16e9d6
--- /dev/null
+++ b/PokemonGo.RocketBot.Window/Models/GMapMarkerTrainer.cs
@@ -0,0 +1,42 @@
+using System.Drawing;
+using GMap.NET;
+
+namespace PokemonGo.RocketBot.Window.Models
+{
+ public class GMapMarkerTrainer : GMap.NET.WindowsForms.GMapMarker
+ {
+ private Image img;
+
+ /// <summary>
+ /// The image to display as a marker.
+ /// </summary>
+ public Image MarkerImage
+ {
+ get
+ {
+ return img;
+ }
+ set
+ {
+ img = value;
+ }
+ }
+
+ /// <summary>
+ /// Constructor
+ /// </summary>
+ /// <param name="p">The position of the marker</param>
+ public GMapMarkerTrainer(PointLatLng p, Image image)
+ : base(p)
+ {
+ img = image;
+ Size = img.Size;
+ Offset = new System.Drawing.Point(-Size.Width / 2, -Size.Height / 2);
+ }
+
+ public override void OnRender(Graphics g)
+ {
+ g.DrawImage(img, LocalPosition.X, LocalPosition.Y, Size.Width, Size.Height);
+ }
+ }
+}
\ No newline at end of file
diff --git a/PokemonGo.RocketBot.Window/PokemonGo.RocketBot.Window.csproj b/PokemonGo.RocketBot.Window/PokemonGo.RocketBot.Window.csproj
index 51c16d6..a5f7fe9 100644
--- a/PokemonGo.RocketBot.Window/PokemonGo.RocketBot.Window.csproj
+++ b/PokemonGo.RocketBot.Window/PokemonGo.RocketBot.Window.csproj
@@ -150,6 +150,8 @@
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="Helpers\S2GMapDrawer.cs" />
+ <Compile Include="Models\GMapMarkerPokestops.cs" />
+ <Compile Include="Models\GMapMarkerTrainer.cs" />
<Compile Include="Models\LoggingStrings.cs" />
<Compile Include="Forms\NicknamePokemonForm.cs">
<SubType>Form</SubType>
@@ -474,6 +476,8 @@
<Content Include="Images\Pokemon\Pokemon_97.png" />
<Content Include="Images\Pokemon\Pokemon_98.png" />
<Content Include="Images\Pokemon\Pokemon_99.png" />
+ <None Include="Images\Pokestop_Inrange.png" />
+ <None Include="Images\Trainer.png" />
<Content Include="Resources\encrypt.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
diff --git a/PokemonGo.RocketBot.Window/Properties/Resources.Designer.cs b/PokemonGo.RocketBot.Window/Properties/Resources.Designer.cs
index 4cb8acc..8d068ee 100644
--- a/PokemonGo.RocketBot.Window/Properties/Resources.Designer.cs
+++ b/PokemonGo.RocketBot.Window/Properties/Resources.Designer.cs
@@ -1809,5 +1809,25 @@ namespace PokemonGo.RocketBot.Window.Properties {
return ((System.Drawing.Bitmap)(obj));
}
}
+
+ /// <summary>
+ /// 查找 System.Drawing.Bitmap 类型的本地化资源。
+ /// </summary>
+ internal static System.Drawing.Bitmap Pokestop_Inrange {
+ get {
+ object obj = ResourceManager.GetObject("Pokestop_Inrange", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ /// <summary>
+ /// 查找 System.Drawing.Bitmap 类型的本地化资源。
+ /// </summary>
+ internal static System.Drawing.Bitmap Trainer {
+ get {
+ object obj = ResourceManager.GetObject("Trainer", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
}
}
diff --git a/PokemonGo.RocketBot.Window/Properties/Resources.resx b/PokemonGo.RocketBot.Window/Properties/Resources.resx
index 2f4cc9f..84b84bc 100644
--- a/PokemonGo.RocketBot.Window/Properties/Resources.resx
+++ b/PokemonGo.RocketBot.Window/Properties/Resources.resx
@@ -1984,4 +1984,10 @@
<data name="Pokemon_99" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Pokemon\Pokemon_99.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
+ <data name="Pokestop_Inrange" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Images\Pokestop_Inrange.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
+ <data name="Trainer" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Images\Trainer.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
</root>
\ No newline at end of file
diff --git a/PokemonGo.RocketBot.Window/packages.config b/PokemonGo.RocketBot.Window/packages.config
index 7fd6988..51bda38 100644
--- a/PokemonGo.RocketBot.Window/packages.config
+++ b/PokemonGo.RocketBot.Window/packages.config
@@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
-
<packages>
<package id="C5" version="2.4.5947.17249" targetFramework="net452" />
<package id="Costura.Fody" version="1.3.3.0" targetFramework="net45" developmentDependency="true" />
diff --git a/RocketBot.sln b/RocketBot.sln
index c3c9b91..16e958f 100644
--- a/RocketBot.sln
+++ b/RocketBot.sln
@@ -28,6 +28,10 @@ Global
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x86 = Release|x86
+ v4.0-Debug|Any CPU = v4.0-Debug|Any CPU
+ v4.0-Debug|x86 = v4.0-Debug|x86
+ v4.0-Release|Any CPU = v4.0-Release|Any CPU
+ v4.0-Release|x86 = v4.0-Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{0739E40D-C589-4AEB-93E5-EE8CD6773C60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -38,6 +42,14 @@ Global
{0739E40D-C589-4AEB-93E5-EE8CD6773C60}.Release|Any CPU.Build.0 = Release|Any CPU
{0739E40D-C589-4AEB-93E5-EE8CD6773C60}.Release|x86.ActiveCfg = Release|x86
{0739E40D-C589-4AEB-93E5-EE8CD6773C60}.Release|x86.Build.0 = Release|x86
+ {0739E40D-C589-4AEB-93E5-EE8CD6773C60}.v4.0-Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0739E40D-C589-4AEB-93E5-EE8CD6773C60}.v4.0-Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0739E40D-C589-4AEB-93E5-EE8CD6773C60}.v4.0-Debug|x86.ActiveCfg = Debug|x86
+ {0739E40D-C589-4AEB-93E5-EE8CD6773C60}.v4.0-Debug|x86.Build.0 = Debug|x86
+ {0739E40D-C589-4AEB-93E5-EE8CD6773C60}.v4.0-Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0739E40D-C589-4AEB-93E5-EE8CD6773C60}.v4.0-Release|Any CPU.Build.0 = Release|Any CPU
+ {0739E40D-C589-4AEB-93E5-EE8CD6773C60}.v4.0-Release|x86.ActiveCfg = Release|x86
+ {0739E40D-C589-4AEB-93E5-EE8CD6773C60}.v4.0-Release|x86.Build.0 = Release|x86
{1FEA147E-F704-497B-A538-00B053B5F672}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1FEA147E-F704-497B-A538-00B053B5F672}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1FEA147E-F704-497B-A538-00B053B5F672}.Debug|x86.ActiveCfg = Debug|x86
@@ -46,6 +58,14 @@ Global
{1FEA147E-F704-497B-A538-00B053B5F672}.Release|Any CPU.Build.0 = Release|Any CPU
{1FEA147E-F704-497B-A538-00B053B5F672}.Release|x86.ActiveCfg = Release|x86
{1FEA147E-F704-497B-A538-00B053B5F672}.Release|x86.Build.0 = Release|x86
+ {1FEA147E-F704-497B-A538-00B053B5F672}.v4.0-Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1FEA147E-F704-497B-A538-00B053B5F672}.v4.0-Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1FEA147E-F704-497B-A538-00B053B5F672}.v4.0-Debug|x86.ActiveCfg = Debug|x86
+ {1FEA147E-F704-497B-A538-00B053B5F672}.v4.0-Debug|x86.Build.0 = Debug|x86
+ {1FEA147E-F704-497B-A538-00B053B5F672}.v4.0-Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1FEA147E-F704-497B-A538-00B053B5F672}.v4.0-Release|Any CPU.Build.0 = Release|Any CPU
+ {1FEA147E-F704-497B-A538-00B053B5F672}.v4.0-Release|x86.ActiveCfg = Release|x86
+ {1FEA147E-F704-497B-A538-00B053B5F672}.v4.0-Release|x86.Build.0 = Release|x86
{05D2DA44-1B8E-4CF7-94ED-4D52451CD095}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{05D2DA44-1B8E-4CF7-94ED-4D52451CD095}.Debug|Any CPU.Build.0 = Debug|Any CPU
{05D2DA44-1B8E-4CF7-94ED-4D52451CD095}.Debug|x86.ActiveCfg = Debug|x86
@@ -54,6 +74,14 @@ Global
{05D2DA44-1B8E-4CF7-94ED-4D52451CD095}.Release|Any CPU.Build.0 = Release|Any CPU
{05D2DA44-1B8E-4CF7-94ED-4D52451CD095}.Release|x86.ActiveCfg = Release|x86
{05D2DA44-1B8E-4CF7-94ED-4D52451CD095}.Release|x86.Build.0 = Release|x86
+ {05D2DA44-1B8E-4CF7-94ED-4D52451CD095}.v4.0-Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {05D2DA44-1B8E-4CF7-94ED-4D52451CD095}.v4.0-Debug|Any CPU.Build.0 = Debug|Any CPU
+ {05D2DA44-1B8E-4CF7-94ED-4D52451CD095}.v4.0-Debug|x86.ActiveCfg = Debug|x86
+ {05D2DA44-1B8E-4CF7-94ED-4D52451CD095}.v4.0-Debug|x86.Build.0 = Debug|x86
+ {05D2DA44-1B8E-4CF7-94ED-4D52451CD095}.v4.0-Release|Any CPU.ActiveCfg = Release|Any CPU
+ {05D2DA44-1B8E-4CF7-94ED-4D52451CD095}.v4.0-Release|Any CPU.Build.0 = Release|Any CPU
+ {05D2DA44-1B8E-4CF7-94ED-4D52451CD095}.v4.0-Release|x86.ActiveCfg = Release|x86
+ {05D2DA44-1B8E-4CF7-94ED-4D52451CD095}.v4.0-Release|x86.Build.0 = Release|x86
{A03A7BB2-4F0B-467B-84B2-9A76E6AAE6FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A03A7BB2-4F0B-467B-84B2-9A76E6AAE6FB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A03A7BB2-4F0B-467B-84B2-9A76E6AAE6FB}.Debug|x86.ActiveCfg = Debug|x86
@@ -62,6 +90,14 @@ Global
{A03A7BB2-4F0B-467B-84B2-9A76E6AAE6FB}.Release|Any CPU.Build.0 = Release|Any CPU
{A03A7BB2-4F0B-467B-84B2-9A76E6AAE6FB}.Release|x86.ActiveCfg = Release|x86
{A03A7BB2-4F0B-467B-84B2-9A76E6AAE6FB}.Release|x86.Build.0 = Release|x86
+ {A03A7BB2-4F0B-467B-84B2-9A76E6AAE6FB}.v4.0-Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A03A7BB2-4F0B-467B-84B2-9A76E6AAE6FB}.v4.0-Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A03A7BB2-4F0B-467B-84B2-9A76E6AAE6FB}.v4.0-Debug|x86.ActiveCfg = Debug|x86
+ {A03A7BB2-4F0B-467B-84B2-9A76E6AAE6FB}.v4.0-Debug|x86.Build.0 = Debug|x86
+ {A03A7BB2-4F0B-467B-84B2-9A76E6AAE6FB}.v4.0-Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A03A7BB2-4F0B-467B-84B2-9A76E6AAE6FB}.v4.0-Release|Any CPU.Build.0 = Release|Any CPU
+ {A03A7BB2-4F0B-467B-84B2-9A76E6AAE6FB}.v4.0-Release|x86.ActiveCfg = Release|x86
+ {A03A7BB2-4F0B-467B-84B2-9A76E6AAE6FB}.v4.0-Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
You may download the files in Public Git.