diff --git a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
index 666f6eba353cc442f95b976326f750875d9823fd..c175cab3cf6ca702f2bc818e8780e2babbd0765a 100644
--- a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
+++ b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
@@ -709,6 +709,10 @@ namespace TUGraz.VectoCommon.InputData
 		public int Count { get; set; }
 
 		public PowertrainPosition Position { get; set; }
+
+		public double Ratio { get; set; }
+
+		public double MechanicalEfficiency { get; set; }
 	}
 
 	public interface IElectricStorageDeclarationInputData
diff --git a/VectoCommon/VectoCommon/Models/PowertrainPosition.cs b/VectoCommon/VectoCommon/Models/PowertrainPosition.cs
index 51e06d7a3a5f68166f7927000435fa1ce27510a3..dbe59c40a808ad9949a484a7942cea444c44140c 100644
--- a/VectoCommon/VectoCommon/Models/PowertrainPosition.cs
+++ b/VectoCommon/VectoCommon/Models/PowertrainPosition.cs
@@ -38,5 +38,11 @@ namespace TUGraz.VectoCommon.InputData {
 		{
 			return pos.ToString().Replace(HybridPrefix, "").Replace(BatteryElectriPrefix, "");
 		}
+
+		public static bool IsBatteryElectric(this PowertrainPosition pos)
+		{
+			return pos == PowertrainPosition.BatteryElectricB2 || pos == PowertrainPosition.BatteryElectricB3 ||
+					pos == PowertrainPosition.BatteryElectricB4;
+		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/ElectricFullLoadCurveReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/ElectricFullLoadCurveReader.cs
index b4bf0ad6456fc38463dd58046fe3029c8e5340d8..e95884d2d7da030e3a1040e24151b729588cabfd 100644
--- a/VectoCore/VectoCore/InputData/Reader/ComponentData/ElectricFullLoadCurveReader.cs
+++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/ElectricFullLoadCurveReader.cs
@@ -9,7 +9,7 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData
 {
 	public static class ElectricFullLoadCurveReader
 	{
-		public static ElectricFullLoadCurve Create(DataTable data)
+		public static ElectricFullLoadCurve Create(DataTable data, double ratio, int count, double efficiency)
 		{
 			if (data.Columns.Count < 3) {
 				throw new VectoException("Motor FullLoadCurve Data must contain at least 3 columns");
@@ -27,9 +27,9 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData
 			return new ElectricFullLoadCurve(
 				(from DataRow row in data.Rows
 				select new ElectricFullLoadCurve.FullLoadEntry {
-					MotorSpeed = row.ParseDouble(Fields.MotorSpeed).RPMtoRad(),
-					FullDriveTorque = row.ParseDouble(Fields.DrivingTorque).SI<NewtonMeter>(),
-					FullGenerationTorque = row.ParseDouble(Fields.GenerationTorque).SI<NewtonMeter>()
+					MotorSpeed = row.ParseDouble(Fields.MotorSpeed).RPMtoRad() / ratio,
+					FullDriveTorque = row.ParseDouble(Fields.DrivingTorque).SI<NewtonMeter>() * count * ratio * efficiency,
+					FullGenerationTorque = row.ParseDouble(Fields.GenerationTorque).SI<NewtonMeter>() * count * ratio / efficiency
 				}).ToList());
 		}
 
@@ -51,7 +51,7 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData
 
 	public static class ElectricMotorDragCurveReader
 	{
-		public static DragCurve Create(DataTable data)
+		public static DragCurve Create(DataTable data, double ratio, int count, double efficiency)
 		{
 			if (data.Columns.Count < 2) {
 				throw new VectoException("Drag Curve must contain at least 2 columns");
@@ -66,8 +66,8 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData
 				data.Columns[1].ColumnName = Fields.DragTorque;
 			}
 			return new DragCurve(data.AsEnumerable().Cast<DataRow>().Select(x => new DragCurve.DragLoadEntry() {
-				MotorSpeed = x.ParseDouble(Fields.MotorSpeed).RPMtoRad(),
-				DragTorque = x.ParseDouble(Fields.DragTorque).SI<NewtonMeter>()
+				MotorSpeed = x.ParseDouble(Fields.MotorSpeed).RPMtoRad() / ratio,
+				DragTorque = x.ParseDouble(Fields.DragTorque).SI<NewtonMeter>() * ratio * count / efficiency
 			}).ToList());
 		}
 
diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/ElectricMotorMapReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/ElectricMotorMapReader.cs
index 4ef6d383ac000a06d06be51a2bfc4758d81541f4..27bb374a263e2bdf05db403e1b5e691739602a16 100644
--- a/VectoCore/VectoCore/InputData/Reader/ComponentData/ElectricMotorMapReader.cs
+++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/ElectricMotorMapReader.cs
@@ -12,12 +12,12 @@ using TUGraz.VectoCore.Utils;
 namespace TUGraz.VectoCore.InputData.Reader.ComponentData {
 	public static class ElectricMotorMapReader
 	{
-		public static EfficiencyMap Create(Stream data)
+		public static EfficiencyMap Create(Stream data, double ratio, int count, double efficiency)
 		{
-			return Create(VectoCSVFile.ReadStream(data));
+			return Create(VectoCSVFile.ReadStream(data), ratio, count, efficiency);
 		}
 
-		public static EfficiencyMap Create(DataTable data)
+		public static EfficiencyMap Create(DataTable data, double ratio, int count, double efficiency)
 		{
 			var headerValid = HeaderIsValid(data.Columns);
 			if (!headerValid)
@@ -30,15 +30,23 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData {
 				data.Columns[1].ColumnName = Fields.Torque;
 				data.Columns[2].ColumnName = Fields.PowerElectrical;
 			}
-			var delaunayMap = new DelaunayMap("ElectricMotorEfficiencyMap Mechanicla to Electric");
+			var delaunayMap = new DelaunayMap("ElectricMotorEfficiencyMap Mechanical to Electric");
 			foreach (DataRow row in data.Rows)
 			{
 				try
 				{
 					var entry = CreateEntry(row);
-					delaunayMap.AddPoint(-entry.Torque.Value(), entry.MotorSpeed.Value(), -entry.PowerElectrical.Value());
+					if (entry.Torque.IsGreaterOrEqual(0)) {
+						delaunayMap.AddPoint(-entry.Torque.Value() * count * ratio * efficiency,
+							entry.MotorSpeed.Value() / ratio,
+							-entry.PowerElectrical.Value() * count);
+					} else {
+						delaunayMap.AddPoint(-entry.Torque.Value() * count * ratio / efficiency, 
+							entry.MotorSpeed.Value() / ratio,
+							-entry.PowerElectrical.Value() * count);
+					}
 				}
-				catch (Exception e)
+                catch (Exception e)
 				{
 					throw new VectoException(string.Format("EfficiencyMap - Line {0}: {1}", data.Rows.IndexOf(row), e.Message), e);
 				}
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
index 041a466204d6e1795184f6a11dccf506e2d7afe6..6fd194084fed707bce4df8b550ebbc9cfaf093dd 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
@@ -650,19 +650,17 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			}
 
 			return electricMachines.Entries
-				.Select(x => Tuple.Create(x.Position, CreateElectricMachine(x.ElectricMachine, x.Count))).ToList();
+				.Select(x => Tuple.Create(x.Position, CreateElectricMachine(x.ElectricMachine, x.Count, x.Ratio, x.MechanicalEfficiency))).ToList();
 		}
 
-		private ElectricMotorData CreateElectricMachine(IElectricMotorEngineeringInputData motorData, int count)
+		private ElectricMotorData CreateElectricMachine(IElectricMotorEngineeringInputData motorData, int count,
+			double ratio, double efficiency)
 		{
-			if (count > 1) {
-				throw new VectoException("Multiple electric motors at a position are currently not supported");
-			}
 			return new ElectricMotorData() {
-				FullLoadCurve = ElectricFullLoadCurveReader.Create(motorData.FullLoadCurve),
-				DragCurve = ElectricMotorDragCurveReader.Create(motorData.DragCurve),
-				EfficiencyMap = ElectricMotorMapReader.Create(motorData.EfficiencyMap),
-				Inertia = motorData.Inertia
+				FullLoadCurve = ElectricFullLoadCurveReader.Create(motorData.FullLoadCurve, ratio, count, efficiency),
+				DragCurve = ElectricMotorDragCurveReader.Create(motorData.DragCurve, ratio, count, efficiency),
+				EfficiencyMap = ElectricMotorMapReader.Create(motorData.EfficiencyMap, ratio, count, efficiency),
+				Inertia = motorData.Inertia,
 			};
 		}
 	}
diff --git a/VectoCore/VectoCore/Models/Simulation/Data/ModalResultField.cs b/VectoCore/VectoCore/Models/Simulation/Data/ModalResultField.cs
index b54c4c8e5b7fa71cdea918d27a71f375617cead7..3c5854615f3ac1166014652edf729740b5d9c446 100644
--- a/VectoCore/VectoCore/Models/Simulation/Data/ModalResultField.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Data/ModalResultField.cs
@@ -402,9 +402,12 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
 
 		[ModalResultField(typeof(SI), caption: "P_em-B4_mech [kW]", outputFactor: 1e-3)]
 		P_electricMotor_mech_B4,
-		// -->
 
-		[ModalResultField(typeof(SI), caption: "P_bat_T [kW]", outputFactor: 1e-3)] P_battery_terminal,
+		[ModalResultField(typeof(SI), caption: "P_em-B3_mech [kW]", outputFactor: 1e-3)]
+        P_electricMotor_mech_B3,
+        // -->
+
+        [ModalResultField(typeof(SI), caption: "P_bat_T [kW]", outputFactor: 1e-3)] P_battery_terminal,
 		[ModalResultField(typeof(SI), caption: "P_bat_int [kW]", outputFactor: 1e-3)] P_battery_int,
 		[ModalResultField(typeof(SI), caption: "P_bat_loss [kW]", outputFactor: 1e-3)] P_battery_loss,
 		[ModalResultField(typeof(SI), caption: "Battery SOC [%]", outputFactor: 100)] BatteryStateOfCharge,
diff --git a/VectoCore/VectoCore/Models/Simulation/DataBus/IDataBus.cs b/VectoCore/VectoCore/Models/Simulation/DataBus/IDataBus.cs
index 4f85633b7c626a73ee2f6c2b79fa53b90fd330f1..d590da8402408d5835aaaeb5f1aecd655d774b62 100644
--- a/VectoCore/VectoCore/Models/Simulation/DataBus/IDataBus.cs
+++ b/VectoCore/VectoCore/Models/Simulation/DataBus/IDataBus.cs
@@ -84,6 +84,8 @@ namespace TUGraz.VectoCore.Models.Simulation.DataBus
 	{
 		bool HasCombustionEngine { get; }
 
-		//PowertrainArchitecture A
+		bool HasElectricMotor { get; }
+
+		PowertrainPosition[] ElectricMotorPositions { get; }
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Models/Simulation/DataBus/IElectricMotorInfo.cs b/VectoCore/VectoCore/Models/Simulation/DataBus/IElectricMotorInfo.cs
index 75bf5cfab80a5a87fa74e5ad769d2070c6771bbe..2398bcf7730f36f043c98c559048e102cf99abb4 100644
--- a/VectoCore/VectoCore/Models/Simulation/DataBus/IElectricMotorInfo.cs
+++ b/VectoCore/VectoCore/Models/Simulation/DataBus/IElectricMotorInfo.cs
@@ -9,5 +9,7 @@ namespace TUGraz.VectoCore.Models.Simulation.DataBus
 
 		PerSecond ElectricMotorSpeed { get; }
 		PowertrainPosition Position { get; }
+		PerSecond MaxSpeed { get; }
+		Watt DragPower(PerSecond electricMotorSpeed);
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs b/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs
index b89f881ed291b00429b7229ed5338ec91ef76e8d..112c9aefd9e37fbcee3e7f2586fce6e8bb896c4a 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs
@@ -236,6 +236,11 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 
 		public virtual bool HasElectricMotor { get; private set; }
 
+		public PowertrainPosition[] ElectricMotorPositions
+		{
+			get { return ElectricMotors.Keys.ToArray(); }
+		}
+
 		public virtual bool HasCombustionEngine { get; private set; }
 
 		public virtual bool HasGearbox { get; private set; }
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/EfficiencyMap.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/EfficiencyMap.cs
index 21fde2ab14dcd5c305e1a4d81cb6db5c66cb17e8..c0ccf72a356337051e911de18ff294746b2625c9 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/EfficiencyMap.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/EfficiencyMap.cs
@@ -6,6 +6,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data {
 	public class EfficiencyMap
 	{
 		private readonly DelaunayMap _efficiencyMapMech2El;
+		private PerSecond _maxSpeed;
 
 		protected internal EfficiencyMap(DelaunayMap efficiencyMapMech2El)
 		{
@@ -109,6 +110,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data {
 			if (batPower.IsEqual(0, 1e-3)) {
 				return null;
 			}
+
+			if (avgSpeed.IsGreaterOrEqual(MaxSpeed)) {
+				return 0.SI<NewtonMeter>();
+			}
 			var retVal = SearchAlgorithm.Search(
 				maxEmTorque, elPowerMaxEM.ElectricalPower, maxEmTorque * 0.1,
 				getYValue: x => {
@@ -123,5 +128,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data {
 
 			return retVal;
 		}
+
+		protected PerSecond MaxSpeed
+		{
+			get { return _maxSpeed ?? (_maxSpeed = _efficiencyMapMech2El.Entries.Select(x => x.Y).Max().RPMtoRad()); }
+		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs
index d8df6bc655785faa4cc78e209e6d206cea9db6a4..ff4b449e6e4d2c78bbb06fe465ed7310d5691e6d 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs
@@ -12,5 +12,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 		public KilogramSquareMeter Inertia { get; internal set; }
 
 		public DragCurve DragCurve { get; internal set; }
+
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs
index cffac5072dd4395a2dea699257f0d476497096fa..75fae046fafaa6a7d8cb4b67b369401eb9de4a14 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs
@@ -680,12 +680,19 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			var rollResistanceForce = Driver.DataBus.VehicleInfo.RollingResistance(
 				((targetAltitude - vehicleAltitude) / (actionEntry.Distance - Driver.DataBus.MileageCounter.Distance))
 				.Value().SI<Radian>());
-			var engineDragLoss = Driver.DataBus.EngineInfo.EngineDragPower(Driver.DataBus.EngineInfo.EngineSpeed);
-			var gearboxLoss = Driver.DataBus.GearboxInfo.GearboxLoss();
-			var axleLoss = Driver.DataBus.AxlegearInfo.AxlegearLoss();
+			var engineDragLoss = Driver.DataBus.PowertrainInfo.HasCombustionEngine
+				? Driver.DataBus.EngineInfo.EngineDragPower(Driver.DataBus.EngineInfo.EngineSpeed)
+				: 0.SI<Watt>();
+
+			var emDragLoss = Driver.DataBus.PowertrainInfo.HasElectricMotor
+				? Driver.DataBus.PowertrainInfo.ElectricMotorPositions.Select(x => Driver.DataBus.ElectricMotorInfo(x).DragPower(Driver.DataBus.ElectricMotorInfo(x).ElectricMotorSpeed)).Sum() // Driver.DataBus.ElectricMotorInfo()
+				: 0.SI<Watt>();
+
+			var gearboxLoss = Driver.DataBus.GearboxInfo?.GearboxLoss() ?? 0.SI<Watt>();
+			var axleLoss = Driver.DataBus.AxlegearInfo?.AxlegearLoss() ?? 0.SI<Watt>();
 
 			var coastingResistanceForce = airDragForce + rollResistanceForce +
-										(gearboxLoss + axleLoss - engineDragLoss) / vehicleSpeed;
+										(gearboxLoss + axleLoss + emDragLoss - (engineDragLoss)) / vehicleSpeed;
 
 			var coastingDecisionFactor = Driver.DriverData.LookAheadCoasting.LookAheadDecisionFactor.Lookup(
 				targetSpeed,
@@ -1001,7 +1008,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 					first = Driver.DrivingActionAccelerate(absTime, ds, targetVelocity, gradient);
 					debug.Add(new { action = "Coast:(Success & Acc<0) -> Accelerate", first });
 				}
-				if (!DataBus.EngineInfo.EngineOn && first is ResponseOverload) {
+				if (DataBus.PowertrainInfo.HasCombustionEngine && !DataBus.EngineInfo.EngineOn && first is ResponseOverload) {
 					first = Driver.DrivingActionAccelerate(absTime, ds, targetVelocity, gradient);
 					debug.Add(new { action = "Coast:(Overload & ICE off) -> Accelerate", first });
 				}
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs
index 7645f3f5752121a6b3201cc67f29f030768ad2ca..dd7b499ad2d439ffda2ac7c012e5ac969cda52c6 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs
@@ -20,6 +20,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 		protected IElectricSystem ElectricPower;
 		protected IElectricMotorControl Control;
 		protected ElectricMotorData ModelData;
+		private PerSecond _maxSpeed;
 
 		public ElectricMotor(IVehicleContainer container, ElectricMotorData data, IElectricMotorControl control, PowertrainPosition position) : base(container)
 		{
@@ -30,8 +31,17 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 		}
 
 		public PowertrainPosition Position { get; }
+		public PerSecond MaxSpeed
+		{
+			get { return _maxSpeed ?? (_maxSpeed = ModelData.FullLoadCurve.FullLoadEntries.MaxBy(x => x.MotorSpeed).MotorSpeed); }
+		}
+
+		public Watt DragPower(PerSecond electricMotorSpeed)
+		{
+			return ModelData.DragCurve.Lookup(electricMotorSpeed) * electricMotorSpeed;
+		}
 
-		public IResponse Initialize(NewtonMeter outTorque, PerSecond outAngularVelocity)
+    public IResponse Initialize(NewtonMeter outTorque, PerSecond outAngularVelocity)
 		{
 			PreviousState.OutAngularVelocity = outAngularVelocity;
 			PreviousState.OutTorque = outTorque;
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs
index ec468055d9f2041c6fa22100233642c0a98c96ca..c49fbb05b5ecd800ce8509074711970ab66b272c 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs
@@ -32,6 +32,7 @@
 using System;
 using System.Linq;
 using TUGraz.VectoCommon.Exceptions;
+using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.Configuration;
@@ -62,12 +63,41 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 				AirdragData.CrossWindCorrectionCurve.SetDataBus(container);
 			}
 			var model = container.RunData;
-			if (model?.GearboxData == null || model.AxleGearData == null) {
-				return;
+			
+			if (container.PowertrainInfo.HasCombustionEngine) {
+				if (model?.GearboxData == null || model.AxleGearData == null) {
+					return;
+				}
+                MaxVehicleSpeed = model.EngineData.FullLoadCurves[0].N95hSpeed /
+					model.GearboxData.Gears[model.GearboxData.Gears.Keys.Max()].Ratio /
+					model.AxleGearData.AxleGear.Ratio /
+					(model.AngledriveData?.Angledrive.Ratio
+					?? 1.0) * model.VehicleData.DynamicTyreRadius * 0.995;
+			}
+
+			if (model.ElectricMachinesData != null && model.ElectricMachinesData.Count > 0) {
+				var positions = model.ElectricMachinesData.Select(x => x.Item1).ToArray();
+				if (positions.Length > 1) {
+					throw new VectoException("Multiple electrical machines are currently not supported");
+				}
+
+				var pos = positions.First();
+				if (pos.IsBatteryElectric()) {
+					var maxEMSpeed = model.ElectricMachinesData.Find(x => x.Item1 == pos).Item2.FullLoadCurve
+						.FullLoadEntries.Max(x => x.MotorSpeed); // DataBus.ElectricMotorInfo(pos).MaxSpeed;
+					var ratio = 1.0;
+					if (pos == PowertrainPosition.BatteryElectricB3) {
+						ratio = model.AxleGearData.AxleGear.Ratio;
+					}
+
+					if (pos == PowertrainPosition.BatteryElectricB2) {
+						ratio = model.GearboxData.Gears[model.GearboxData.Gears.Keys.Max()].Ratio *
+								model.AxleGearData.AxleGear.Ratio *
+								(model.AngledriveData?.Angledrive.Ratio ?? 1.0);
+					}
+					MaxVehicleSpeed = maxEMSpeed / ratio * model.VehicleData.DynamicTyreRadius * 0.995;
+                }
 			}
-			MaxVehicleSpeed = model.EngineData.FullLoadCurves[0].N95hSpeed /
-							model.GearboxData.Gears[model.GearboxData.Gears.Keys.Max()].Ratio / model.AxleGearData.AxleGear.Ratio /
-							(model.AngledriveData?.Angledrive.Ratio ?? 1.0) * model.VehicleData.DynamicTyreRadius * 0.995;
 		}
 
 
diff --git a/VectoCore/VectoCoreTest/FileIO/JsonReadHybridTest.cs b/VectoCore/VectoCoreTest/FileIO/JsonReadHybridTest.cs
index 8f88fdd002b531c1e8d835f9a214005898a81d34..4a1811d3caf35f3439573837349505651e2798d6 100644
--- a/VectoCore/VectoCoreTest/FileIO/JsonReadHybridTest.cs
+++ b/VectoCore/VectoCoreTest/FileIO/JsonReadHybridTest.cs
@@ -61,7 +61,7 @@ namespace TUGraz.VectoCore.Tests.FileIO
 			Assert.AreEqual("401.07", fld.Rows[0][ElectricFullLoadCurveReader.Fields.DrivingTorque]);
 			Assert.AreEqual("-401.07", fld.Rows[0][ElectricFullLoadCurveReader.Fields.GenerationTorque]);
 
-			var fldMap = ElectricFullLoadCurveReader.Create(fld);
+			var fldMap = ElectricFullLoadCurveReader.Create(fld, 1, 1, 1);
 			Assert.AreEqual(-401.07, fldMap.FullLoadDriveTorque(0.RPMtoRad()).Value());
 			Assert.AreEqual(401.07, fldMap.FullGenerationTorque(0.RPMtoRad()).Value());
 
@@ -70,12 +70,46 @@ namespace TUGraz.VectoCore.Tests.FileIO
 			Assert.AreEqual("-800", pwr.Rows[0][ElectricMotorMapReader.Fields.Torque]);
 			Assert.AreEqual("9.8449", pwr.Rows[0][ElectricMotorMapReader.Fields.PowerElectrical]);
 
-			var pwrMap = ElectricMotorMapReader.Create(pwr);
+			var pwrMap = ElectricMotorMapReader.Create(pwr, 1, 1, 1);
 			Assert.AreEqual(-10171.0, pwrMap.LookupElectricPower(-0.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value());
-		}
 
+			Assert.AreEqual(-20430.186, pwrMap.LookupElectricPower(120.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
 
-		[TestCase()]
+        }
+
+        [TestCase()]
+		public void TestReadElectricMotorAggregation()
+		{
+			var inputProvider =
+				JSONInputDataFactory.ReadElectricMotorData(@"TestData\Hybrids\ElectricMotor\GenericEMotor.vem", false);
+
+			Assert.AreEqual(0.15, inputProvider.Inertia.Value(), 1e-6);
+
+			var fld = inputProvider.FullLoadCurve;
+			Assert.AreEqual("0", fld.Rows[0][ElectricFullLoadCurveReader.Fields.MotorSpeed]);
+			Assert.AreEqual("401.07", fld.Rows[0][ElectricFullLoadCurveReader.Fields.DrivingTorque]);
+			Assert.AreEqual("-401.07", fld.Rows[0][ElectricFullLoadCurveReader.Fields.GenerationTorque]);
+
+			var fldMap = ElectricFullLoadCurveReader.Create(fld, 22.6, 2, 0.97);
+			Assert.AreEqual(-17584.51308 , fldMap.FullLoadDriveTorque(0.RPMtoRad()).Value(), 1e-3);
+			Assert.AreEqual(18689.03505, fldMap.FullGenerationTorque(0.RPMtoRad()).Value(), 1e-3);
+
+			Assert.AreEqual(-17584.51308, fldMap.FullLoadDriveTorque(50.RPMtoRad()).Value(), 1e-3);
+			Assert.AreEqual(18689.03505, fldMap.FullGenerationTorque(50.RPMtoRad()).Value(), 1e-3);
+
+            var pwr = inputProvider.EfficiencyMap;
+			Assert.AreEqual("0", pwr.Rows[0][ElectricMotorMapReader.Fields.MotorSpeed]);
+			Assert.AreEqual("-800", pwr.Rows[0][ElectricMotorMapReader.Fields.Torque]);
+			Assert.AreEqual("9.8449", pwr.Rows[0][ElectricMotorMapReader.Fields.PowerElectrical]);
+
+			var pwrMap = ElectricMotorMapReader.Create(pwr, 22.6, 2, 0.97);
+			Assert.AreEqual(-146.469, pwrMap.LookupElectricPower(-0.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
+
+			Assert.AreEqual(-20773.997, pwrMap.LookupElectricPower(120.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value(), 1e-3);
+
+        }
+
+        [TestCase()]
 		public void TestReadHybridVehicle()
 		{
 			var inputProvider = JSONInputDataFactory.ReadJsonJob(@"TestData\Hybrids\GenericVehicle_Group2_P2\Class2_RigidTruck_ParHyb_ENG.vecto");
diff --git a/VectoCore/VectoCoreTest/Integration/BatteryElectric/BatteryElectricTest.cs b/VectoCore/VectoCoreTest/Integration/BatteryElectric/BatteryElectricTest.cs
index 8265e7b93c61b6c31499f3162a2ee50abbd7dbea..fa9f3f26b725c207d2ad632a427d7c5597692b75 100644
--- a/VectoCore/VectoCoreTest/Integration/BatteryElectric/BatteryElectricTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/BatteryElectric/BatteryElectricTest.cs
@@ -8,6 +8,7 @@ using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.Configuration;
 using TUGraz.VectoCore.InputData.Impl;
 using TUGraz.VectoCore.InputData.Reader.ComponentData;
 using TUGraz.VectoCore.Models.Declaration;
@@ -35,11 +36,11 @@ namespace TUGraz.VectoCore.Tests.Integration.BatteryElectric
 
 
 		private ModalResultField[] Yfields;
-		public const string MotorFile = @"TestData\Hybrids\ElectricMotor\GenericEMotor.vem";
-		public const string BatFile = @"TestData\Hybrids\Battery\GenericBattery.vbat";
+		public const string MotorFile = @"TestData\BatteryElectric\GenericVehicleB4\GenericEMotor_125kW_485Nm.vem";
+		public const string BatFile = @"TestData\BatteryElectric\GenericVehicleB4\GenericBattery_243kWh_750V.vbat";
 
 		public const string AccelerationFile = @"TestData\Components\Truck.vacc";
-		public const string MotorFile240kW = @"TestData\Hybrids\ElectricMotor\GenericEMotor240kW.vem";
+		//public const string MotorFile240kW = @"TestData\Hybrids\ElectricMotor\GenericEMotor240kW.vem";
 
 		public const string GearboxIndirectLoss = @"TestData\Components\Indirect Gear.vtlm";
 		public const string GearboxDirectLoss = @"TestData\Components\Direct Gear.vtlm";
@@ -75,23 +76,23 @@ namespace TUGraz.VectoCore.Tests.Integration.BatteryElectric
 		[
 			TestCase(30, 0.7, 0, 0, TestName = "B4 BEV ConstantSpeed 30km/h SoC: 0.7, level"),
 			TestCase(50, 0.7, 0, 0, TestName = "B4 BEV ConstantSpeed 50km/h SoC: 0.7, level"),
-			TestCase(80, 0.7, 0, 0, TestName = "B4 BEV ConstantSpeed 80km/h SoC: 0.7, level"),
+			//TestCase(80, 0.7, 0, 0, TestName = "B4 BEV ConstantSpeed 80km/h SoC: 0.7, level"),
 
 			TestCase(30, 0.25, 0, 0, TestName = "B4 BEV ConstantSpeed 30km/h SoC: 0.25, level"),
 			TestCase(50, 0.25, 0, 0, TestName = "B4 BEV ConstantSpeed 50km/h SoC: 0.25, level"),
-			TestCase(80, 0.25, 0, 0, TestName = "B4 BEV ConstantSpeed 80km/h SoC: 0.25, level"),
+			//TestCase(80, 0.25, 0, 0, TestName = "B4 BEV ConstantSpeed 80km/h SoC: 0.25, level"),
 
 			TestCase(30, 0.5, 5, 0, TestName = "B4 BEV ConstantSpeed 30km/h SoC: 0.5, UH 5%"),
 			TestCase(50, 0.5, 5, 0, TestName = "B4 BEV ConstantSpeed 50km/h SoC: 0.5, UH 5%"),
-			TestCase(80, 0.5, 5, 0, TestName = "B4 BEV ConstantSpeed 80km/h SoC: 0.5, UH 5%"),
+			//TestCase(80, 0.5, 5, 0, TestName = "B4 BEV ConstantSpeed 80km/h SoC: 0.5, UH 5%"),
 
 			TestCase(30, 0.5, -5, 0, TestName = "B4 BEV ConstantSpeed 30km/h SoC: 0.5, DH 5%"),
 			TestCase(50, 0.5, -5, 0, TestName = "B4 BEV ConstantSpeed 50km/h SoC: 0.5, DH 5%"),
-			TestCase(80, 0.5, -5, 0, TestName = "B4 BEV ConstantSpeed 80km/h SoC: 0.5, DH 5%"),
+			//TestCase(80, 0.5, -5, 0, TestName = "B4 BEV ConstantSpeed 80km/h SoC: 0.5, DH 5%"),
 
 			TestCase(30, 0.25, 0, 1000, TestName = "B4 BEV ConstantSpeed 30km/h SoC: 0.25, level P_auxEl: 1kW"),
 			TestCase(30, 0.25, 0, 5000, TestName = "B4 BEV ConstantSpeed 30km/h SoC: 0.25, level P_auxEl: 5kW"),
-		]
+		] // the vehicle can drive max. 56km/h!! 80km/h testcase makes no sense
 		public void B4BEVConstantSpeed(double vmax, double initialSoC, double slope, double pAuxEl)
 		{
 			GraphWriter.Yfields = Yfields.Concat(new[] { ModalResultField.P_electricMotor_mech_B4 }).ToArray();
@@ -106,7 +107,7 @@ namespace TUGraz.VectoCore.Tests.Integration.BatteryElectric
 			var modFilename = string.Format("SimpleBatteryElectric-B4_constant_{0}-{1}_{2}_{3}.vmod", vmax, initialSoC, slope, pAuxEl);
 			const PowertrainPosition pos = PowertrainPosition.BatteryElectricB4;
 			var run = CreateEngineeringRun(
-				cycle, modFilename, initialSoC, pos, largeMotor: true, pAuxEl: pAuxEl);
+				cycle, modFilename, initialSoC, pos, 2, 22.6, largeMotor: true, pAuxEl: pAuxEl);
 
 			var modData = ((ModalDataContainer)((VehicleContainer)run.GetContainer()).ModData).Data;
 
@@ -141,7 +142,7 @@ namespace TUGraz.VectoCore.Tests.Integration.BatteryElectric
 			var modFilename = string.Format("SimpleBatteryElectric-B4_acc_{0}-{1}_{2}.vmod", vmax, initialSoC, slope);
 			const PowertrainPosition pos = PowertrainPosition.BatteryElectricB4;
 			var run = CreateEngineeringRun(
-				cycle, modFilename, initialSoC, pos, largeMotor: true);
+				cycle, modFilename, initialSoC, pos, 2, 22.6, largeMotor: true);
 
 			var modData = ((ModalDataContainer)((VehicleContainer)run.GetContainer()).ModData).Data;
 
@@ -152,20 +153,185 @@ namespace TUGraz.VectoCore.Tests.Integration.BatteryElectric
 			GraphWriter.Write(modFilename);
 		}
 
-		// =================================================
+        [
+            TestCase("LongHaul", 2000, 0.8, 0, TestName = "B4 BEV DriveCycle LongHaul, SoC: 0.8 Payload: 2t P_auxEl: 0kW"),
+            TestCase("RegionalDelivery", 2000, 0.8, 0, TestName = "B4 BEV DriveCycle RegionalDelivery, SoC: 0.8 Payload: 2t P_auxEl: 0kW"),
+            TestCase("UrbanDelivery", 2000, 0.8, 0, TestName = "B4 BEV DriveCycle UrbanDelivery, SoC: 0.8 Payload: 2t P_auxEl: 0kW"),
+            TestCase("Construction", 2000, 0.8, 0, TestName = "B4 BEV DriveCycle Construction, SoC: 0.8 Payload: 2t P_auxEl: 0kW"),
+            TestCase("Urban", 2000, 0.8, 0, TestName = "B4 BEV DriveCycle Urban, SoC: 0.8 Payload: 2t P_auxEl: 0kW"),
+            TestCase("Suburban", 2000, 0.8, 0, TestName = "B4 BEV DriveCycle SubUrban, SoC: 0.8 Payload: 2t P_auxEl: 0kW"),
+            TestCase("Interurban", 2000, 0.8, 0, TestName = "B4 BEV DriveCycle InterUrban, SoC: 0.8 Payload: 2t P_auxEl: 0kW"),
+            TestCase("Coach", 2000, 0.8, 0, TestName = "B4 BEV DriveCycle Coach, SoC: 0.8 Payload: 2t P_auxEl: 0kW"),
+        ]
+        public void B4BEVDriveCycle(string declarationMission, double payload, double initialSoC, double pAuxEl)
+        {
+            GraphWriter.Yfields = Yfields.Concat(new[] { ModalResultField.P_electricMotor_mech_B4 }).ToArray();
+
+            var cycleData = RessourceHelper.ReadStream(
+                DeclarationData.DeclarationDataResourcePrefix + ".MissionCycles." +
+                declarationMission +
+                Constants.FileExtensions.CycleFile);
+            var cycle = DrivingCycleDataReader.ReadFromStream(cycleData, CycleType.DistanceBased, "", false);
+
+            const bool largeMotor = true;
+
+            var modFilename = string.Format("SimpleParallelHybrid-B4_cycle_{0}-{1}_{2}_{3}.vmod", declarationMission, initialSoC, payload, pAuxEl);
+            const PowertrainPosition pos = PowertrainPosition.BatteryElectricB4;
+			var run = CreateEngineeringRun(
+				cycle, modFilename, initialSoC, pos, 2, 22.6, largeMotor: true);
+
+			var modData = ((ModalDataContainer)((VehicleContainer)run.GetContainer()).ModData).Data;
+
+            var data = run.GetContainer().RunData;
+            //File.WriteAllText(
+            //	$"{modFilename}.json",
+            //	JsonConvert.SerializeObject(data, Formatting.Indented));
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            Assert.IsTrue(modData.Rows.Count > 0);
+            GraphWriter.Write(modFilename);
+        }
+
+        // - - - - - - - - - - - - - - - - - - -  - - - - - - - - - - -  - - - 
+
+        [
+            TestCase(30, 0.7, 0, 0, TestName = "B3 BEV ConstantSpeed 30km/h SoC: 0.7, level"),
+            TestCase(50, 0.7, 0, 0, TestName = "B3 BEV ConstantSpeed 50km/h SoC: 0.7, level"),
+            //TestCase(80, 0.7, 0, 0, TestName = "B4 BEV ConstantSpeed 80km/h SoC: 0.7, level"),
+
+            TestCase(30, 0.25, 0, 0, TestName = "B3 BEV ConstantSpeed 30km/h SoC: 0.25, level"),
+            TestCase(50, 0.25, 0, 0, TestName = "B3 BEV ConstantSpeed 50km/h SoC: 0.25, level"),
+            //TestCase(80, 0.25, 0, 0, TestName = "B4 BEV ConstantSpeed 80km/h SoC: 0.25, level"),
+
+            TestCase(30, 0.5, 5, 0, TestName = "B3 BEV ConstantSpeed 30km/h SoC: 0.5, UH 5%"),
+            TestCase(50, 0.5, 5, 0, TestName = "B3 BEV ConstantSpeed 50km/h SoC: 0.5, UH 5%"),
+            //TestCase(80, 0.5, 5, 0, TestName = "B4 BEV ConstantSpeed 80km/h SoC: 0.5, UH 5%"),
+
+            TestCase(30, 0.5, -5, 0, TestName = "B3 BEV ConstantSpeed 30km/h SoC: 0.5, DH 5%"),
+            TestCase(50, 0.5, -5, 0, TestName = "B3 BEV ConstantSpeed 50km/h SoC: 0.5, DH 5%"),
+            //TestCase(80, 0.5, -5, 0, TestName = "B4 BEV ConstantSpeed 80km/h SoC: 0.5, DH 5%"),
+
+            TestCase(30, 0.25, 0, 1000, TestName = "B3 BEV ConstantSpeed 30km/h SoC: 0.25, level P_auxEl: 1kW"),
+            TestCase(30, 0.25, 0, 5000, TestName = "B3 BEV ConstantSpeed 30km/h SoC: 0.25, level P_auxEl: 5kW"),
+        ] // the vehicle can drive max. 56km/h!! 80km/h testcase makes no sense
+        public void B3BEVConstantSpeed(double vmax, double initialSoC, double slope, double pAuxEl)
+        {
+            GraphWriter.Yfields = Yfields.Concat(new[] { ModalResultField.P_electricMotor_mech_B3 }).ToArray();
+
+            var cycleData = string.Format(
+                @"   0, {0}, {1},    0
+				  7000, {0}, {1},    0", vmax, slope);
+            var cycle = SimpleDrivingCycles.CreateCycleData(cycleData);
+
+            const bool largeMotor = true;
+
+            var modFilename = string.Format("SimpleBatteryElectric-B3_constant_{0}-{1}_{2}_{3}.vmod", vmax, initialSoC, slope, pAuxEl);
+            const PowertrainPosition pos = PowertrainPosition.BatteryElectricB3;
+            var run = CreateEngineeringRun(
+                cycle, modFilename, initialSoC, pos, 2, 22.6, largeMotor: true, pAuxEl: pAuxEl);
+
+            var modData = ((ModalDataContainer)((VehicleContainer)run.GetContainer()).ModData).Data;
+
+            var data = run.GetContainer().RunData;
+            //File.WriteAllText(
+            //	$"{modFilename}.json",
+            //	JsonConvert.SerializeObject(data, Formatting.Indented));
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
 
+            Assert.IsTrue(modData.Rows.Count > 0);
+            GraphWriter.Write(modFilename);
+        }
 
-		public static VectoRun CreateEngineeringRun(
-			DrivingCycleData cycleData, string modFileName, double initialSoc, PowertrainPosition pos, bool largeMotor = false,
+
+        [
+            TestCase(30, 0.7, 0, TestName = "B3 BEV DriveOff 30km/h SoC: 0.7, level"),
+            TestCase(80, 0.7, 0, TestName = "B3 BEV DriveOff 80km/h SoC: 0.7, level"),
+            TestCase(30, 0.25, 0, TestName = "B3 BEV DriveOff 30km/h SoC: 0.25, level")
+        ]
+        public void B3BEVDriveOff(double vmax, double initialSoC, double slope)
+        {
+            GraphWriter.Yfields = Yfields.Concat(new[] { ModalResultField.P_electricMotor_mech_B3 }).ToArray();
+            var cycleData = string.Format(
+                @"   0,   0, {1},    3
+				   700, {0}, {1},    0", vmax, slope);
+            var cycle = SimpleDrivingCycles.CreateCycleData(cycleData);
+
+            const bool largeMotor = true;
+
+            var modFilename = string.Format("SimpleBatteryElectric-B3_acc_{0}-{1}_{2}.vmod", vmax, initialSoC, slope);
+            const PowertrainPosition pos = PowertrainPosition.BatteryElectricB3;
+            var run = CreateEngineeringRun(
+                cycle, modFilename, initialSoC, pos, 2, 22.6, largeMotor: true);
+
+            var modData = ((ModalDataContainer)((VehicleContainer)run.GetContainer()).ModData).Data;
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            Assert.IsTrue(modData.Rows.Count > 0);
+            GraphWriter.Write(modFilename);
+        }
+
+        [
+            TestCase("LongHaul", 2000, 0.8, 0, TestName = "B3 Hybrid DriveCycle LongHaul, SoC: 0.8 Payload: 2t P_auxEl: 0kW"),
+            TestCase("RegionalDelivery", 2000, 0.8, 0, TestName = "B3 Hybrid DriveCycle RegionalDelivery, SoC: 0.8 Payload: 2t P_auxEl: 0kW"),
+            TestCase("UrbanDelivery", 2000, 0.8, 0, TestName = "B3 Hybrid DriveCycle UrbanDelivery, SoC: 0.8 Payload: 2t P_auxEl: 0kW"),
+            TestCase("Construction", 2000, 0.8, 0, TestName = "B3 Hybrid DriveCycle Construction, SoC: 0.8 Payload: 2t P_auxEl: 0kW"),
+            TestCase("Urban", 2000, 0.8, 0, TestName = "B3 Hybrid DriveCycle Urban, SoC: 0.8 Payload: 2t P_auxEl: 0kW"),
+            TestCase("Suburban", 2000, 0.8, 0, TestName = "B3 Hybrid DriveCycle SubUrban, SoC: 0.8 Payload: 2t P_auxEl: 0kW"),
+            TestCase("Interurban", 2000, 0.8, 0, TestName = "B3 Hybrid DriveCycle InterUrban, SoC: 0.8 Payload: 2t P_auxEl: 0kW"),
+            TestCase("Coach", 2000, 0.8, 0, TestName = "B3 Hybrid DriveCycle Coach, SoC: 0.8 Payload: 2t P_auxEl: 0kW"),
+        ]
+        public void B3BEVDriveCycle(string declarationMission, double payload, double initialSoC, double pAuxEl)
+        {
+            GraphWriter.Yfields = Yfields.Concat(new[] { ModalResultField.P_electricMotor_mech_B3 }).ToArray();
+
+            var cycleData = RessourceHelper.ReadStream(
+                DeclarationData.DeclarationDataResourcePrefix + ".MissionCycles." +
+                declarationMission +
+                Constants.FileExtensions.CycleFile);
+            var cycle = DrivingCycleDataReader.ReadFromStream(cycleData, CycleType.DistanceBased, "", false);
+
+            const bool largeMotor = true;
+
+            var modFilename = string.Format("SimpleParallelHybrid-B3_cycle_{0}-{1}_{2}_{3}.vmod", declarationMission, initialSoC, payload, pAuxEl);
+			const PowertrainPosition pos = PowertrainPosition.BatteryElectricB3;
+            var run = CreateEngineeringRun(
+                cycle, modFilename, initialSoC, pos, 2, 22.6, largeMotor: true);
+
+            var modData = ((ModalDataContainer)((VehicleContainer)run.GetContainer()).ModData).Data;
+
+            var data = run.GetContainer().RunData;
+            //File.WriteAllText(
+            //	$"{modFilename}.json",
+            //	JsonConvert.SerializeObject(data, Formatting.Indented));
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            Assert.IsTrue(modData.Rows.Count > 0);
+            GraphWriter.Write(modFilename);
+        }
+
+
+        // =================================================
+
+
+        public static VectoRun CreateEngineeringRun(
+			DrivingCycleData cycleData, string modFileName, double initialSoc, PowertrainPosition pos, int count, double ratio, bool largeMotor = false,
 			SummaryDataContainer sumData = null, double pAuxEl = 0, Kilogram payload = null)
 		{
 			var container = CreateBatteryElectricPowerTrain(
-				cycleData, Path.GetFileNameWithoutExtension(modFileName), initialSoc, largeMotor, sumData, pAuxEl, pos, payload);
+				cycleData, Path.GetFileNameWithoutExtension(modFileName), initialSoc, count, ratio, largeMotor, sumData, pAuxEl, pos, payload);
 			return new DistanceRun(container);
 		}
 
 		public static VehicleContainer CreateBatteryElectricPowerTrain(DrivingCycleData cycleData, string modFileName,
-			double initialBatCharge, bool largeMotor, SummaryDataContainer sumData, double pAuxEl, PowertrainPosition pos, Kilogram payload = null)
+			double initialBatCharge, int count, double ratio, bool largeMotor, SummaryDataContainer sumData, double pAuxEl, PowertrainPosition pos, Kilogram payload = null)
 		{
 			var fileWriter = new FileOutputWriter(modFileName);
 			var modDataFilter = new IModalDataFilter[] { }; //new IModalDataFilter[] { new ActualModalDataFilter(), };
@@ -184,7 +350,7 @@ namespace TUGraz.VectoCore.Tests.Integration.BatteryElectric
 			var driverData = CreateDriverData(AccelerationFile, true);
 
 			var electricMotorData =
-				MockSimulationDataFactory.CreateElectricMotorData(largeMotor ? MotorFile240kW : MotorFile, pos);
+				MockSimulationDataFactory.CreateElectricMotorData(MotorFile, count, pos, ratio / (pos == PowertrainPosition.BatteryElectricB3 ? 2.59 : 1.0), 0.97);
 
 			var batteryData = MockSimulationDataFactory.CreateBatteryData(BatFile, initialBatCharge);
 			
@@ -200,8 +366,8 @@ namespace TUGraz.VectoCore.Tests.Integration.BatteryElectric
 			var runData = new VectoRunData() {
 				JobRunId = 0,
 				DriverData = driverData,
-				AxleGearData = axleGearData,
-				GearboxData = gearboxData,
+				//AxleGearData = axleGearData,
+				//GearboxData = gearboxData,
 				VehicleData = vehicleData,
 				AirdragData = airdragData,
 				JobName = modFileName,
@@ -209,11 +375,19 @@ namespace TUGraz.VectoCore.Tests.Integration.BatteryElectric
 				Retarder = new RetarderData() { Type = RetarderType.None },
 				Aux = new List<VectoRunData.AuxData>(),
 				ElectricMachinesData = electricMotorData,
-				EngineData = engineData,
+				//EngineData = engineData,
 				BatteryData = batteryData,
 				GearshiftParameters = CreateGearshiftData(gearboxData, axleGearData.AxleGear.Ratio, engineData.IdleSpeed),
 				ElectricAuxDemand = pAuxEl.SI<Watt>()
 			};
+			if (pos == PowertrainPosition.BatteryElectricB3) {
+				runData.AxleGearData = axleGearData;
+			}
+
+			if (pos == PowertrainPosition.BatteryElectricB2) {
+				runData.AxleGearData = axleGearData;
+				runData.GearboxData = gearboxData;
+			}
 			var container = new VehicleContainer(
 				ExecutionMode.Engineering, modData, x => { sumData?.Write(x, 1, 1, runData); });
 			container.RunData = runData;
@@ -251,14 +425,18 @@ namespace TUGraz.VectoCore.Tests.Integration.BatteryElectric
 				case PowertrainPosition.BatteryElectricB4:
 					powertrain.AddComponent(
 						GetElectricMachine(PowertrainPosition.BatteryElectricB4, runData.ElectricMachinesData, container, es, ctl));
-					new MockGearboxInfo(container);
-					new ATClutchInfo(container);
-					break;
+                    new MockGearboxInfo(container);
+                    //new MockEngineInfo(container);
+                    new ATClutchInfo(container);
+                    break;
 				case PowertrainPosition.BatteryElectricB3:
 					powertrain.AddComponent(new AxleGear(container, runData.AxleGearData))
 							.AddComponent(
 								GetElectricMachine(PowertrainPosition.BatteryElectricB3, runData.ElectricMachinesData, container, es, ctl));
-					break;
+					new MockGearboxInfo(container);
+					//new MockEngineInfo(container);
+					new ATClutchInfo(container);
+                    break;
 				case PowertrainPosition.BatteryElectricB2:
 					throw new VectoException("Battery Electric configuration B2 currently not supported");
 				default: throw new ArgumentOutOfRangeException(nameof(pos), pos, null);
@@ -341,14 +519,15 @@ namespace TUGraz.VectoCore.Tests.Integration.BatteryElectric
 					TyreTestLoad = 30436.SI<Newton>()
 				},
 			};
+			var wheels = DeclarationData.Wheels.Lookup("275/70 R22.5");
 			return new VehicleData {
 				AirDensity = DeclarationData.AirDensity,
 				AxleConfiguration = AxleConfiguration.AxleConfig_4x2,
 				CurbMass = 11500.SI<Kilogram>(),
 				Loading = loading,
-				DynamicTyreRadius = 0.465.SI<Meter>(),
+				DynamicTyreRadius = wheels.DynamicTyreRadius,
 				AxleData = axles,
-				SavedInDeclarationMode = false
+				SavedInDeclarationMode = false,
 			};
 		}
 
@@ -384,7 +563,7 @@ namespace TUGraz.VectoCore.Tests.Integration.BatteryElectric
 					EngineOffStandStillActivationDelay = DeclarationData.Driver.EngineStopStart.ActivationDelay,
 					MaxEngineOffTimespan = DeclarationData.Driver.EngineStopStart.MaxEngineOffTimespan,
 					UtilityFactor = DeclarationData.Driver.EngineStopStart.UtilityFactor
-				}
+				},
 			};
 		}
 
@@ -432,6 +611,56 @@ namespace TUGraz.VectoCore.Tests.Integration.BatteryElectric
 		}
 	}
 
+	public class MockEngineInfo : VectoSimulationComponent, IEngineInfo
+	{
+		public MockEngineInfo(VehicleContainer container) : base(container)
+		{
+		}
+
+		protected override void DoWriteModalResults(Second time, Second simulationInterval, IModalDataContainer container)
+		{ }
+
+		protected override void DoCommitSimulationStep(Second time, Second simulationInterval)
+		{ }
+
+		public PerSecond EngineSpeed
+		{
+			get { return null; }
+		}
+		public NewtonMeter EngineTorque
+		{
+			get { return null; }
+		}
+		public Watt EngineStationaryFullPower(PerSecond angularSpeed)
+		{
+			throw new NotImplementedException();
+		}
+
+		public Watt EngineDynamicFullLoadPower(PerSecond avgEngineSpeed, Second dt)
+		{
+			throw new NotImplementedException();
+		}
+
+		public Watt EngineDragPower(PerSecond angularSpeed)
+		{
+			throw new NotImplementedException();
+		}
+
+		public Watt EngineAuxDemand(PerSecond avgEngineSpeed, Second dt)
+		{
+			throw new NotImplementedException();
+		}
+
+		public PerSecond EngineIdleSpeed { get; }
+		public PerSecond EngineRatedSpeed { get; }
+		public PerSecond EngineN95hSpeed { get; }
+		public PerSecond EngineN80hSpeed { get; }
+		public bool EngineOn
+		{
+			get { return true; }
+		}
+	}
+
 	public class MockGearboxInfo : VectoSimulationComponent, IGearboxInfo
 	{
 		public MockGearboxInfo(VehicleContainer container) : base(container)
diff --git a/VectoCore/VectoCoreTest/Integration/Hybrid/ParallelHybridTest.cs b/VectoCore/VectoCoreTest/Integration/Hybrid/ParallelHybridTest.cs
index f70636bc6b10ef92835eaaa6e68c77802539b51f..07a35a262f31e55432f84e2efd197928bd7b2044 100644
--- a/VectoCore/VectoCoreTest/Integration/Hybrid/ParallelHybridTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/Hybrid/ParallelHybridTest.cs
@@ -88,7 +88,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid
 			var modFilename = string.Format("SimpleParallelHybrid-P2_acc_{0}-{1}_{2}.vmod", vmax, initialSoC, slope);
 			const PowertrainPosition pos = PowertrainPosition.HybridP2;
 			var run = CreateEngineeringRun(
-				cycle, modFilename, initialSoC, pos, largeMotor: true);
+				cycle, modFilename, initialSoC, pos, 1.0, largeMotor: true);
 
 			var hybridController = (HybridController)((VehicleContainer)run.GetContainer()).HybridController;
 			Assert.NotNull(hybridController);
@@ -136,7 +136,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid
 			var modFilename = string.Format("SimpleParallelHybrid-P2_constant_{0}-{1}_{2}_{3}.vmod", vmax, initialSoC, slope, pAuxEl);
 			const PowertrainPosition pos = PowertrainPosition.HybridP2;
 			var run = CreateEngineeringRun(
-				cycle, modFilename, initialSoC, pos, largeMotor: true, pAuxEl: pAuxEl);
+				cycle, modFilename, initialSoC, pos, 1.0, largeMotor: true, pAuxEl: pAuxEl);
 
 			var hybridController = (HybridController)((VehicleContainer)run.GetContainer()).HybridController;
 			Assert.NotNull(hybridController);
@@ -180,7 +180,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid
 			var modFilename = string.Format("SimpleParallelHybrid-P2_cycle_{0}-{1}_{2}_{3}.vmod", declarationMission, initialSoC, payload, pAuxEl);
 			const PowertrainPosition pos = PowertrainPosition.HybridP2;
 			var run = CreateEngineeringRun(
-				cycle, modFilename, initialSoC, pos, largeMotor: true, pAuxEl: pAuxEl, payload: payload.SI<Kilogram>());
+				cycle, modFilename, initialSoC, pos, 1.0, largeMotor: true, pAuxEl: pAuxEl, payload: payload.SI<Kilogram>());
 
 			var hybridController = (HybridController)((VehicleContainer)run.GetContainer()).HybridController;
 			Assert.NotNull(hybridController);
@@ -248,7 +248,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid
 			var modFilename = string.Format("SimpleParallelHybrid-P2_stop_{0}-{1}_{2}.vmod", vmax, initialSoC, slope);
 			const PowertrainPosition pos = PowertrainPosition.HybridP2;
 			var run = CreateEngineeringRun(
-				cycle, modFilename, initialSoC, pos, largeMotor: true);
+				cycle, modFilename, initialSoC, pos, 1.0, largeMotor: true);
 
 			var hybridController = (HybridController)((VehicleContainer)run.GetContainer()).HybridController;
 			Assert.NotNull(hybridController);
@@ -301,7 +301,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid
 			var modFilename = string.Format("SimpleParallelHybrid-P3_constant_{0}-{1}_{2}_{3}.vmod", vmax, initialSoC, slope, pAuxEl);
 			const PowertrainPosition pos = PowertrainPosition.HybridP3;
 			var run = CreateEngineeringRun(
-				cycle, modFilename, initialSoC, pos, largeMotor: true, pAuxEl: pAuxEl);
+				cycle, modFilename, initialSoC, pos, 1.0, largeMotor: true, pAuxEl: pAuxEl);
 
 			var hybridController = (HybridController)((VehicleContainer)run.GetContainer()).HybridController;
 			Assert.NotNull(hybridController);
@@ -339,7 +339,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid
 			var modFilename = string.Format("SimpleParallelHybrid-P3_acc_{0}-{1}_{2}.vmod", vmax, initialSoC, slope);
 			const PowertrainPosition pos = PowertrainPosition.HybridP3;
 			var run = CreateEngineeringRun(
-				cycle, modFilename, initialSoC, pos, largeMotor: true);
+				cycle, modFilename, initialSoC, pos, 1.0, largeMotor: true);
 
 			var hybridController = (HybridController)((VehicleContainer)run.GetContainer()).HybridController;
 			Assert.NotNull(hybridController);
@@ -372,7 +372,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid
 			var modFilename = string.Format("SimpleParallelHybrid-P3_stop_{0}-{1}_{2}.vmod", vmax, initialSoC, slope);
 			const PowertrainPosition pos = PowertrainPosition.HybridP3;
 			var run = CreateEngineeringRun(
-				cycle, modFilename, initialSoC, pos, largeMotor: true);
+				cycle, modFilename, initialSoC, pos, 1.0, largeMotor: true);
 
 			var hybridController = (HybridController)((VehicleContainer)run.GetContainer()).HybridController;
 			Assert.NotNull(hybridController);
@@ -414,7 +414,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid
             var modFilename = string.Format("SimpleParallelHybrid-P3_cycle_{0}-{1}_{2}_{3}.vmod", declarationMission, initialSoC, payload, pAuxEl);
             const PowertrainPosition pos = PowertrainPosition.HybridP3;
             var run = CreateEngineeringRun(
-                cycle, modFilename, initialSoC, pos, largeMotor: true, pAuxEl: pAuxEl, payload: payload.SI<Kilogram>());
+                cycle, modFilename, initialSoC, pos, 1.0, largeMotor: true, pAuxEl: pAuxEl, payload: payload.SI<Kilogram>());
 
             var hybridController = (HybridController)((VehicleContainer)run.GetContainer()).HybridController;
             Assert.NotNull(hybridController);
@@ -469,7 +469,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid
 			var modFilename = string.Format("SimpleParallelHybrid-P4_constant_{0}-{1}_{2}_{3}.vmod", vmax, initialSoC, slope, pAuxEl);
 			const PowertrainPosition pos = PowertrainPosition.HybridP4;
 			var run = CreateEngineeringRun(
-				cycle, modFilename, initialSoC, pos, largeMotor: true, pAuxEl: pAuxEl);
+				cycle, modFilename, initialSoC, pos, 1.0, largeMotor: true, pAuxEl: pAuxEl);
 
 			var hybridController = (HybridController)((VehicleContainer)run.GetContainer()).HybridController;
 			Assert.NotNull(hybridController);
@@ -507,7 +507,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid
 			var modFilename = string.Format("SimpleParallelHybrid-P4_acc_{0}-{1}_{2}.vmod", vmax, initialSoC, slope);
 			const PowertrainPosition pos = PowertrainPosition.HybridP4;
 			var run = CreateEngineeringRun(
-				cycle, modFilename, initialSoC, pos, largeMotor: true);
+				cycle, modFilename, initialSoC, pos, 1.0, largeMotor: true);
 
 			var hybridController = (HybridController)((VehicleContainer)run.GetContainer()).HybridController;
 			Assert.NotNull(hybridController);
@@ -540,7 +540,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid
 			var modFilename = string.Format("SimpleParallelHybrid-P4_stop_{0}-{1}_{2}.vmod", vmax, initialSoC, slope);
 			const PowertrainPosition pos = PowertrainPosition.HybridP4;
 			var run = CreateEngineeringRun(
-				cycle, modFilename, initialSoC, pos, largeMotor: true);
+				cycle, modFilename, initialSoC, pos, 1.0, largeMotor: true);
 
 			var hybridController = (HybridController)((VehicleContainer)run.GetContainer()).HybridController;
 			Assert.NotNull(hybridController);
@@ -558,11 +558,11 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid
 
 		// =================================================
 
-		public static VectoRun CreateEngineeringRun(DrivingCycleData cycleData, string modFileName, double initialSoc, PowertrainPosition pos, bool largeMotor = false,
+		public static VectoRun CreateEngineeringRun(DrivingCycleData cycleData, string modFileName, double initialSoc, PowertrainPosition pos, double ratio, bool largeMotor = false,
 			SummaryDataContainer sumData = null, double pAuxEl = 0, Kilogram payload = null)
 		{
 			var container = CreateParallelHybridPowerTrain(
-				cycleData, Path.GetFileNameWithoutExtension(modFileName), initialSoc, largeMotor, sumData, pAuxEl, pos, payload);
+				cycleData, Path.GetFileNameWithoutExtension(modFileName), initialSoc, largeMotor, sumData, pAuxEl, pos, ratio, payload);
 			return new DistanceRun(container);
 		}
 
@@ -575,8 +575,8 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid
 		}
 
 		public static VehicleContainer CreateParallelHybridPowerTrain(DrivingCycleData cycleData, string modFileName,
-			double initialBatCharge, bool largeMotor, SummaryDataContainer sumData, double pAuxEl, PowertrainPosition pos, Kilogram payload = null)
-		{
+			double initialBatCharge, bool largeMotor, SummaryDataContainer sumData, double pAuxEl, PowertrainPosition pos, double ratio, Kilogram payload = null)
+		{ 
 			var fileWriter = new FileOutputWriter(modFileName);
 			var modDataFilter = new IModalDataFilter[] { }; //new IModalDataFilter[] { new ActualModalDataFilter(), };
 			var modData = new ModalDataContainer(
@@ -593,7 +593,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid
 			var driverData = CreateDriverData(AccelerationFile, true);
 
 			var electricMotorData =
-				MockSimulationDataFactory.CreateElectricMotorData(largeMotor ? MotorFile240kW : MotorFile, pos);
+				MockSimulationDataFactory.CreateElectricMotorData(largeMotor ? MotorFile240kW : MotorFile, 1, pos, ratio, 1);
 
 			var batteryData = MockSimulationDataFactory.CreateBatteryData(BatFile, initialBatCharge);
 			//batteryData.TargetSoC = 0.5;
diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponentData/ElectricMotorEfficienyMapTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponentData/ElectricMotorEfficienyMapTest.cs
index bb7f288fd027470eedde15ff0e4a5f30a044ee00..d23702ed4098e5c15c25d1fa3a25998730687128 100644
--- a/VectoCore/VectoCoreTest/Models/SimulationComponentData/ElectricMotorEfficienyMapTest.cs
+++ b/VectoCore/VectoCoreTest/Models/SimulationComponentData/ElectricMotorEfficienyMapTest.cs
@@ -26,10 +26,10 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData {
 				JSONInputDataFactory.ReadElectricMotorData(@"TestData\Hybrids\ElectricMotor\GenericEMotor.vem", false);
 
 			var fld = inputProvider.FullLoadCurve;
-			var fldMap = ElectricFullLoadCurveReader.Create(fld);
+			var fldMap = ElectricFullLoadCurveReader.Create(fld, 1.0, 1, 1.0);
 
 			var pwr = inputProvider.EfficiencyMap;
-			var pwrMap = ElectricMotorMapReader.Create(pwr);
+			var pwrMap = ElectricMotorMapReader.Create(pwr, 1.0, 1, 1.0);
 
 			var maxEmPwr = batPwr < 0
 				? fldMap.FullLoadDriveTorque(emSpeed.RPMtoRad())
@@ -51,10 +51,10 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData {
 				JSONInputDataFactory.ReadElectricMotorData(@"TestData\Hybrids\ElectricMotor\GenericEMotor.vem", false);
 
 			var fld = inputProvider.FullLoadCurve;
-			var fldMap = ElectricFullLoadCurveReader.Create(fld);
+			var fldMap = ElectricFullLoadCurveReader.Create(fld, 1.0, 1, 1.0);
 
 			var pwr = inputProvider.EfficiencyMap;
-			var pwrMap = ElectricMotorMapReader.Create(pwr);
+			var pwrMap = ElectricMotorMapReader.Create(pwr, 1.0, 1, 1.0);
 
 			var maxEmPwr = batPwr < 0
 				? fldMap.FullLoadDriveTorque(emSpeed.RPMtoRad())
diff --git a/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericBattery_243kWh_750V.vbat b/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericBattery_243kWh_750V.vbat
new file mode 100644
index 0000000000000000000000000000000000000000..fd92ed38b9995cd744e3576622e07a7f545b2c3f
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericBattery_243kWh_750V.vbat
@@ -0,0 +1,30 @@
+{
+  "Header": {
+    "CreatedBy": " ()",
+    "Date": "2016-10-13T08:54:28.7387223Z",
+    "AppVersion": "3",
+    "FileVersion": 1
+  },
+  "Body": {
+    "SavedInDeclMode": false,
+	"Model": "Generic Battery",
+	"InternalResistance": 0.04,
+	"SOC_min": 10,
+	"SOC_max": 90,
+    "MaxCurrentFactor": 5,
+    "Capacity": 324,
+    "SOC": [
+      [ 0, 673.5 ],
+      [ 10, 700.2 ],
+      [ 20, 715.4 ],
+      [ 30, 723.6 ],
+      [ 40, 727.7 ],
+      [ 50, 730.0 ],
+      [ 60, 731.6 ],
+      [ 70, 733.8 ],
+      [ 80, 737.1 ],
+      [ 90, 742.2 ],
+      [ 100, 750.2 ]
+    ]
+	}
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericDrag_125kW_485Nm.vemd b/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericDrag_125kW_485Nm.vemd
new file mode 100644
index 0000000000000000000000000000000000000000..5345f4d143e5bbbd10d7b60fc2162be685b23c63
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericDrag_125kW_485Nm.vemd
@@ -0,0 +1,3 @@
+n [rpm] , T_drag [Nm]
+0       , 6.06
+7363.77    , 30.31
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericEMotor_125kW_485Nm.vem b/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericEMotor_125kW_485Nm.vem
new file mode 100644
index 0000000000000000000000000000000000000000..c0a57a974a3014e456ffe5cb2d4c6f1ed3b056b4
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericEMotor_125kW_485Nm.vem
@@ -0,0 +1,17 @@
+{
+  "Header": {
+    "CreatedBy": " ()",
+    "Date": "2016-10-13T08:54:28.7387223Z",
+    "AppVersion": "3",
+    "FileVersion": 1
+  },
+  "Body": {
+    "SavedInDeclMode": false,
+	"Model": "Generic Electric Motor",
+    "FullLoadCurve": "GenericEMotor_125kW_485Nm.vemp",
+    "DragCurve":  "GenericDrag_125kW_485Nm.vemd", 
+    "EfficiencyMap": "GenericMap_125kW_485Nm.vemo",
+    "Inertia" :  0.225 
+
+	}
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericEMotor_125kW_485Nm.vemp b/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericEMotor_125kW_485Nm.vemp
new file mode 100644
index 0000000000000000000000000000000000000000..2d3d1f8b593e45e85fad7451eae2657610ef3dbe
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericEMotor_125kW_485Nm.vemp
@@ -0,0 +1,74 @@
+n [rpm] , T_drive [Nm] , T_drag [Nm]
+0,485,-485
+2461.158914,485,-485
+2452.135493,485,-485
+2466.863034,483.8845,-483.8845
+2481.590574,481.010875,-481.010875
+2496.318115,478.173625,-478.173625
+2503.681885,476.767125,-476.767125
+2577.319588,463.138625,-463.138625
+2650.95729,450.274,-450.274
+2724.594993,438.1005,-438.1005
+2798.232695,426.58175,-426.58175
+2871.870398,415.645,-415.645
+2945.5081,405.253875,-405.253875
+3019.145803,395.359875,-395.359875
+3092.783505,385.950875,-385.950875
+3166.421208,376.978375,-376.978375
+3240.05891,368.406,-368.406
+3313.696613,360.221625,-360.221625
+3387.334315,352.388875,-352.388875
+3460.972018,344.895625,-344.895625
+3534.60972,337.7055,-337.7055
+3608.247423,330.8185,-330.8185
+3681.885125,324.19825,-324.19825
+3755.522828,317.84475,-317.84475
+3829.16053,311.73375,-311.73375
+3902.798233,305.853125,-305.853125
+3976.435935,300.178625,-300.178625
+4050.073638,294.722375,-294.722375
+4123.71134,289.460125,-289.460125
+4197.349043,284.37975,-284.37975
+4270.986745,279.48125,-279.48125
+4344.624448,274.740375,-274.740375
+4418.26215,270.16925,-270.16925
+4491.899853,265.7315,-265.7315
+4565.537555,261.451375,-261.451375
+4639.175258,257.304625,-257.304625
+4712.81296,253.279125,-253.279125
+4786.450663,249.387,-249.387
+4860.088365,245.604,-245.604
+4933.726068,241.94225,-241.94225
+5007.36377,238.3775,-238.3775
+5081.001473,234.921875,-234.921875
+5154.639175,231.575375,-231.575375
+5228.276878,228.31375,-228.31375
+5301.91458,225.137,-225.137
+5375.552283,222.05725,-222.05725
+5449.189985,219.05025,-219.05025
+5522.827688,216.128125,-216.128125
+5596.46539,213.290875,-213.290875
+5670.103093,210.51425,-210.51425
+5743.740795,207.8225,-207.8225
+5817.378498,205.191375,-205.191375
+5891.0162,202.620875,-202.620875
+5964.653903,200.123125,-200.123125
+6038.291605,197.686,-197.686
+6111.929308,195.297375,-195.297375
+6185.56701,192.969375,-192.969375
+6259.204713,190.702,-190.702
+6332.842415,188.483125,-188.483125
+6406.480118,186.324875,-186.324875
+6480.11782,184.203,-184.203
+6553.755523,182.129625,-182.129625
+6627.393225,180.10475,-180.10475
+6701.030928,178.128375,-178.128375
+6774.66863,176.2005,-176.2005
+6848.306333,174.296875,-174.296875
+6921.944035,172.44175,-172.44175
+6995.581738,170.635125,-170.635125
+7069.21944,168.85275,-168.85275
+7142.857143,167.10675,-167.10675
+7216.494845,165.40925,-165.40925
+7290.132548,163.736,-163.736
+7363.77025,162.099125,-162.099125
diff --git a/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericMap_125kW_485Nm.vemo b/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericMap_125kW_485Nm.vemo
new file mode 100644
index 0000000000000000000000000000000000000000..972a8b6ac4dea65a1eec263ec1c6189009f29910
--- /dev/null
+++ b/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericMap_125kW_485Nm.vemo
@@ -0,0 +1,2016 @@
+n [rpm] , T [Nm] , P_el [kW]
+0,-485,8.790089286
+0,-469.84375,8.278482143
+0,-454.6875,7.782232143
+0,-439.53125,7.301160714
+0,-424.375,6.835535714
+0,-409.21875,6.385178571
+0,-394.0625,5.950089286
+0,-378.90625,5.530357143
+0,-363.75,5.125892857
+0,-348.59375,4.736785714
+0,-333.4375,4.363035714
+0,-318.28125,4.004553571
+0,-303.125,3.661339286
+0,-287.96875,3.333482143
+0,-272.8125,3.020892857
+0,-257.65625,2.723660714
+0,-242.5,2.441785714
+0,-227.34375,2.175178571
+0,-212.1875,1.923839286
+0,-197.03125,1.687857143
+0,-181.875,1.467232143
+0,-166.71875,1.261875
+0,-151.5625,1.071785714
+0,-136.40625,0.897053571
+0,-121.25,0.737651786
+0,-106.09375,0.593553571
+0,-90.9375,0.464758929
+0,-75.78125,0.351285714
+0,-60.625,0.253116071
+0,-45.46875,0.170267857
+0,-30.3125,0.102732143
+0,-15.15625,0.050505357
+0,0,0.032232143
+0,15.15625,0.077659821
+0,30.3125,0.138401786
+0,45.46875,0.214455357
+0,60.625,0.305821429
+0,75.78125,0.4125
+0,90.9375,0.5345
+0,106.09375,0.671803571
+0,121.25,0.824419643
+0,136.40625,0.992321429
+0,151.5625,1.175625
+0,166.71875,1.374196429
+0,181.875,1.588035714
+0,197.03125,1.817232143
+0,212.1875,2.061696429
+0,227.34375,2.321517857
+0,242.5,2.596696429
+0,257.65625,2.887142857
+0,272.8125,3.192857143
+0,287.96875,3.513928571
+0,303.125,3.850267857
+0,318.28125,4.201964286
+0,333.4375,4.569017857
+0,348.59375,4.951339286
+0,363.75,5.348928571
+0,378.90625,5.761875
+0,394.0625,6.190178571
+0,409.21875,6.63375
+0,424.375,7.092589286
+0,439.53125,7.566785714
+0,454.6875,8.056339286
+0,469.84375,8.561160714
+0,485,9.08125
+70.31811487,-485,5.211339286
+70.31811487,-469.84375,4.812589286
+70.31811487,-454.6875,4.429107143
+70.31811487,-439.53125,4.060892857
+70.31811487,-424.375,3.708035714
+70.31811487,-409.21875,3.370535714
+70.31811487,-394.0625,3.048303571
+70.31811487,-378.90625,2.741428571
+70.31811487,-363.75,2.449821429
+70.31811487,-348.59375,2.173571429
+70.31811487,-333.4375,1.912589286
+70.31811487,-318.28125,1.666875
+70.31811487,-303.125,1.436607143
+70.31811487,-287.96875,1.221517857
+70.31811487,-272.8125,1.021875
+70.31811487,-257.65625,0.8374375
+70.31811487,-242.5,0.668348214
+70.31811487,-227.34375,0.5154375
+70.31811487,-212.1875,0.378214286
+70.31811487,-197.03125,0.256839286
+70.31811487,-181.875,0.150473214
+70.31811487,-166.71875,0.059122321
+70.31811487,-151.5625,-0.017219643
+70.31811487,-136.40625,-0.078552679
+70.31811487,-121.25,-0.124875
+70.31811487,-106.09375,-0.1561875
+70.31811487,-90.9375,-0.172491071
+70.31811487,-75.78125,-0.173785714
+70.31811487,-60.625,-0.1600625
+70.31811487,-45.46875,-0.131339286
+70.31811487,-30.3125,-0.087598214
+70.31811487,-15.15625,-0.028850893
+70.31811487,0,0.0646875
+70.31811487,15.15625,0.222955357
+70.31811487,30.3125,0.396526786
+70.31811487,45.46875,0.585419643
+70.31811487,60.625,0.789616071
+70.31811487,75.78125,1.009107143
+70.31811487,90.9375,1.243928571
+70.31811487,106.09375,1.494107143
+70.31811487,121.25,1.759553571
+70.31811487,136.40625,2.040357143
+70.31811487,151.5625,2.336428571
+70.31811487,166.71875,2.647767857
+70.31811487,181.875,2.974553571
+70.31811487,197.03125,3.316517857
+70.31811487,212.1875,3.673839286
+70.31811487,227.34375,4.046517857
+70.31811487,242.5,4.434464286
+70.31811487,257.65625,4.837767857
+70.31811487,272.8125,5.256339286
+70.31811487,287.96875,5.690267857
+70.31811487,303.125,6.139464286
+70.31811487,318.28125,6.604017857
+70.31811487,333.4375,7.083839286
+70.31811487,348.59375,7.579017857
+70.31811487,363.75,8.089464286
+70.31811487,378.90625,8.615267857
+70.31811487,394.0625,9.15625
+70.31811487,409.21875,9.7125
+70.31811487,424.375,10.28482143
+70.31811487,439.53125,10.87142857
+70.31811487,454.6875,11.47410714
+70.31811487,469.84375,12.09107143
+70.31811487,485,12.72410714
+140.6377025,-485,1.634196429
+140.6377025,-469.84375,1.348303571
+140.6377025,-454.6875,1.078125
+140.6377025,-439.53125,0.825508929
+140.6377025,-424.375,0.589589286
+140.6377025,-409.21875,0.368678571
+140.6377025,-394.0625,0.162776786
+140.6377025,-378.90625,-0.02811875
+140.6377025,-363.75,-0.204
+140.6377025,-348.59375,-0.364875
+140.6377025,-333.4375,-0.510732143
+140.6377025,-318.28125,-0.641589286
+140.6377025,-303.125,-0.757428571
+140.6377025,-287.96875,-0.858258929
+140.6377025,-272.8125,-0.944107143
+140.6377025,-257.65625,-1.014910714
+140.6377025,-242.5,-1.070714286
+140.6377025,-227.34375,-1.111517857
+140.6377025,-212.1875,-1.137232143
+140.6377025,-197.03125,-1.148035714
+140.6377025,-181.875,-1.143839286
+140.6377025,-166.71875,-1.124553571
+140.6377025,-151.5625,-1.090267857
+140.6377025,-136.40625,-1.040982143
+140.6377025,-121.25,-0.976696429
+140.6377025,-106.09375,-0.897410714
+140.6377025,-90.9375,-0.803151786
+140.6377025,-75.78125,-0.693839286
+140.6377025,-60.625,-0.569526786
+140.6377025,-45.46875,-0.430196429
+140.6377025,-30.3125,-0.275857143
+140.6377025,-15.15625,-0.106508929
+140.6377025,0,0.098794643
+140.6377025,15.15625,0.369892857
+140.6377025,30.3125,0.6563125
+140.6377025,45.46875,0.958035714
+140.6377025,60.625,1.275089286
+140.6377025,75.78125,1.607410714
+140.6377025,90.9375,1.955089286
+140.6377025,106.09375,2.318035714
+140.6377025,121.25,2.696339286
+140.6377025,136.40625,3.09
+140.6377025,151.5625,3.498928571
+140.6377025,166.71875,3.923125
+140.6377025,181.875,4.362678571
+140.6377025,197.03125,4.8175
+140.6377025,212.1875,5.287678571
+140.6377025,227.34375,5.773214286
+140.6377025,242.5,6.274017857
+140.6377025,257.65625,6.790089286
+140.6377025,272.8125,7.321517857
+140.6377025,287.96875,7.868214286
+140.6377025,303.125,8.430267857
+140.6377025,318.28125,9.008035714
+140.6377025,333.4375,9.6
+140.6377025,348.59375,10.20803571
+140.6377025,363.75,10.83125
+140.6377025,378.90625,11.47053571
+140.6377025,394.0625,12.12410714
+140.6377025,409.21875,12.79375
+140.6377025,424.375,13.47767857
+140.6377025,439.53125,14.17767857
+140.6377025,454.6875,14.89285714
+140.6377025,469.84375,15.62321429
+140.6377025,485,16.36964286
+210.9572901,-485,-1.881339286
+210.9572901,-469.84375,-2.051696429
+210.9572901,-454.6875,-2.207053571
+210.9572901,-439.53125,-2.347321429
+210.9572901,-424.375,-2.472678571
+210.9572901,-409.21875,-2.582946429
+210.9572901,-394.0625,-2.678303571
+210.9572901,-378.90625,-2.758571429
+210.9572901,-363.75,-2.823839286
+210.9572901,-348.59375,-2.874107143
+210.9572901,-333.4375,-2.909375
+210.9572901,-318.28125,-2.929642857
+210.9572901,-303.125,-2.934910714
+210.9572901,-287.96875,-2.925089286
+210.9572901,-272.8125,-2.900357143
+210.9572901,-257.65625,-2.860535714
+210.9572901,-242.5,-2.805714286
+210.9572901,-227.34375,-2.735892857
+210.9572901,-212.1875,-2.651071429
+210.9572901,-197.03125,-2.55125
+210.9572901,-181.875,-2.436428571
+210.9572901,-166.71875,-2.306607143
+210.9572901,-151.5625,-2.161696429
+210.9572901,-136.40625,-2.001875
+210.9572901,-121.25,-1.826964286
+210.9572901,-106.09375,-1.637053571
+210.9572901,-90.9375,-1.432142857
+210.9572901,-75.78125,-1.212232143
+210.9572901,-60.625,-0.977321429
+210.9572901,-45.46875,-0.727419643
+210.9572901,-30.3125,-0.462482143
+210.9572901,-15.15625,-0.182535714
+210.9572901,0,0.134571429
+210.9572901,15.15625,0.5185
+210.9572901,30.3125,0.917767857
+210.9572901,45.46875,1.332321429
+210.9572901,60.625,1.762232143
+210.9572901,75.78125,2.207410714
+210.9572901,90.9375,2.667857143
+210.9572901,106.09375,3.143660714
+210.9572901,121.25,3.634821429
+210.9572901,136.40625,4.14125
+210.9572901,151.5625,4.663035714
+210.9572901,166.71875,5.200089286
+210.9572901,181.875,5.7525
+210.9572901,197.03125,6.320178571
+210.9572901,212.1875,6.903125
+210.9572901,227.34375,7.501517857
+210.9572901,242.5,8.115089286
+210.9572901,257.65625,8.744107143
+210.9572901,272.8125,9.388392857
+210.9572901,287.96875,10.04821429
+210.9572901,303.125,10.72321429
+210.9572901,318.28125,11.41339286
+210.9572901,333.4375,12.11875
+210.9572901,348.59375,12.83928571
+210.9572901,363.75,13.57589286
+210.9572901,378.90625,14.32678571
+210.9572901,394.0625,15.09375
+210.9572901,409.21875,15.87589286
+210.9572901,424.375,16.67321429
+210.9572901,439.53125,17.48571429
+210.9572901,454.6875,18.31428571
+210.9572901,469.84375,19.15714286
+210.9572901,485,20.01607143
+281.281296,-485,-5.384375
+281.281296,-469.84375,-5.444107143
+281.281296,-454.6875,-5.488839286
+281.281296,-439.53125,-5.518571429
+281.281296,-424.375,-5.533303571
+281.281296,-409.21875,-5.533035714
+281.281296,-394.0625,-5.517767857
+281.281296,-378.90625,-5.487410714
+281.281296,-363.75,-5.442053571
+281.281296,-348.59375,-5.381785714
+281.281296,-333.4375,-5.306428571
+281.281296,-318.28125,-5.216071429
+281.281296,-303.125,-5.110714286
+281.281296,-287.96875,-4.990357143
+281.281296,-272.8125,-4.855
+281.281296,-257.65625,-4.704553571
+281.281296,-242.5,-4.539196429
+281.281296,-227.34375,-4.35875
+281.281296,-212.1875,-4.163303571
+281.281296,-197.03125,-3.952857143
+281.281296,-181.875,-3.7275
+281.281296,-166.71875,-3.486964286
+281.281296,-151.5625,-3.231517857
+281.281296,-136.40625,-2.961071429
+281.281296,-121.25,-2.675625
+281.281296,-106.09375,-2.375089286
+281.281296,-90.9375,-2.059553571
+281.281296,-75.78125,-1.729107143
+281.281296,-60.625,-1.383571429
+281.281296,-45.46875,-1.023035714
+281.281296,-30.3125,-0.647491071
+281.281296,-15.15625,-0.2569375
+281.281296,0,0.172
+281.281296,15.15625,0.668767857
+281.281296,30.3125,1.180892857
+281.281296,45.46875,1.708214286
+281.281296,60.625,2.250982143
+281.281296,75.78125,2.809017857
+281.281296,90.9375,3.382321429
+281.281296,106.09375,3.970982143
+281.281296,121.25,4.574910714
+281.281296,136.40625,5.194196429
+281.281296,151.5625,5.828839286
+281.281296,166.71875,6.478660714
+281.281296,181.875,7.143928571
+281.281296,197.03125,7.824464286
+281.281296,212.1875,8.520267857
+281.281296,227.34375,9.23125
+281.281296,242.5,9.958035714
+281.281296,257.65625,10.7
+281.281296,272.8125,11.45714286
+281.281296,287.96875,12.22946429
+281.281296,303.125,13.01696429
+281.281296,318.28125,13.81964286
+281.281296,333.4375,14.63839286
+281.281296,348.59375,15.47232143
+281.281296,363.75,16.32053571
+281.281296,378.90625,17.18482143
+281.281296,394.0625,18.06517857
+281.281296,409.21875,18.95982143
+281.281296,424.375,19.86964286
+281.281296,439.53125,20.79553571
+281.281296,454.6875,21.73660714
+281.281296,469.84375,22.69285714
+281.281296,485,23.66428571
+351.5905744,-485,-8.885803571
+351.5905744,-469.84375,-8.834910714
+351.5905744,-454.6875,-8.769107143
+351.5905744,-439.53125,-8.688214286
+351.5905744,-424.375,-8.592321429
+351.5905744,-409.21875,-8.481428571
+351.5905744,-394.0625,-8.355535714
+351.5905744,-378.90625,-8.214642857
+351.5905744,-363.75,-8.05875
+351.5905744,-348.59375,-7.887767857
+351.5905744,-333.4375,-7.701785714
+351.5905744,-318.28125,-7.500892857
+351.5905744,-303.125,-7.284910714
+351.5905744,-287.96875,-7.053928571
+351.5905744,-272.8125,-6.807946429
+351.5905744,-257.65625,-6.546964286
+351.5905744,-242.5,-6.270982143
+351.5905744,-227.34375,-5.979910714
+351.5905744,-212.1875,-5.673928571
+351.5905744,-197.03125,-5.352857143
+351.5905744,-181.875,-5.016875
+351.5905744,-166.71875,-4.665803571
+351.5905744,-151.5625,-4.299732143
+351.5905744,-136.40625,-3.918660714
+351.5905744,-121.25,-3.522589286
+351.5905744,-106.09375,-3.111517857
+351.5905744,-90.9375,-2.685357143
+351.5905744,-75.78125,-2.244285714
+351.5905744,-60.625,-1.788125
+351.5905744,-45.46875,-1.316964286
+351.5905744,-30.3125,-0.830866071
+351.5905744,-15.15625,-0.329714286
+351.5905744,0,0.211080357
+351.5905744,15.15625,0.8206875
+351.5905744,30.3125,1.445625
+351.5905744,45.46875,2.085803571
+351.5905744,60.625,2.741428571
+351.5905744,75.78125,3.412232143
+351.5905744,90.9375,4.098392857
+351.5905744,106.09375,4.799910714
+351.5905744,121.25,5.516696429
+351.5905744,136.40625,6.248839286
+351.5905744,151.5625,6.99625
+351.5905744,166.71875,7.759017857
+351.5905744,181.875,8.537053571
+351.5905744,197.03125,9.330357143
+351.5905744,212.1875,10.13928571
+351.5905744,227.34375,10.96339286
+351.5905744,242.5,11.80267857
+351.5905744,257.65625,12.65714286
+351.5905744,272.8125,13.52678571
+351.5905744,287.96875,14.4125
+351.5905744,303.125,15.3125
+351.5905744,318.28125,16.22857143
+351.5905744,333.4375,17.15982143
+351.5905744,348.59375,18.10625
+351.5905744,363.75,19.06785714
+351.5905744,378.90625,20.04553571
+351.5905744,394.0625,21.0375
+351.5905744,409.21875,22.04553571
+351.5905744,424.375,23.06875
+351.5905744,439.53125,24.10714286
+351.5905744,454.6875,25.16071429
+351.5905744,469.84375,26.22946429
+351.5905744,485,27.31428571
+421.9145803,-485,-12.38571429
+421.9145803,-469.84375,-12.22410714
+421.9145803,-454.6875,-12.04732143
+421.9145803,-439.53125,-11.85625
+421.9145803,-424.375,-11.65
+421.9145803,-409.21875,-11.42857143
+421.9145803,-394.0625,-11.19196429
+421.9145803,-378.90625,-10.94017857
+421.9145803,-363.75,-10.67410714
+421.9145803,-348.59375,-10.39196429
+421.9145803,-333.4375,-10.09553571
+421.9145803,-318.28125,-9.783928571
+421.9145803,-303.125,-9.457142857
+421.9145803,-287.96875,-9.116071429
+421.9145803,-272.8125,-8.759375
+421.9145803,-257.65625,-8.387767857
+421.9145803,-242.5,-8.001160714
+421.9145803,-227.34375,-7.599553571
+421.9145803,-212.1875,-7.182857143
+421.9145803,-197.03125,-6.75125
+421.9145803,-181.875,-6.304642857
+421.9145803,-166.71875,-5.842946429
+421.9145803,-151.5625,-5.366339286
+421.9145803,-136.40625,-4.874642857
+421.9145803,-121.25,-4.367946429
+421.9145803,-106.09375,-3.84625
+421.9145803,-90.9375,-3.309553571
+421.9145803,-75.78125,-2.757857143
+421.9145803,-60.625,-2.191071429
+421.9145803,-45.46875,-1.609375
+421.9145803,-30.3125,-1.012589286
+421.9145803,-15.15625,-0.400857143
+421.9145803,0,0.251830357
+421.9145803,15.15625,0.974285714
+421.9145803,30.3125,1.712053571
+421.9145803,45.46875,2.465089286
+421.9145803,60.625,3.233482143
+421.9145803,75.78125,4.017142857
+421.9145803,90.9375,4.816160714
+421.9145803,106.09375,5.630535714
+421.9145803,121.25,6.460178571
+421.9145803,136.40625,7.305089286
+421.9145803,151.5625,8.165357143
+421.9145803,166.71875,9.041071429
+421.9145803,181.875,9.932142857
+421.9145803,197.03125,10.83839286
+421.9145803,212.1875,11.75982143
+421.9145803,227.34375,12.69642857
+421.9145803,242.5,13.64821429
+421.9145803,257.65625,14.61607143
+421.9145803,272.8125,15.59910714
+421.9145803,287.96875,16.59642857
+421.9145803,303.125,17.60982143
+421.9145803,318.28125,18.63928571
+421.9145803,333.4375,19.68303571
+421.9145803,348.59375,20.74196429
+421.9145803,363.75,21.81696429
+421.9145803,378.90625,22.90714286
+421.9145803,394.0625,24.0125
+421.9145803,409.21875,25.13303571
+421.9145803,424.375,26.26875
+421.9145803,439.53125,27.41964286
+421.9145803,454.6875,28.58660714
+421.9145803,469.84375,29.76785714
+421.9145803,485,30.96517857
+492.2385862,-485,-15.88392857
+492.2385862,-469.84375,-15.61160714
+492.2385862,-454.6875,-15.325
+492.2385862,-439.53125,-15.02232143
+492.2385862,-424.375,-14.70535714
+492.2385862,-409.21875,-14.37321429
+492.2385862,-394.0625,-14.02589286
+492.2385862,-378.90625,-13.66428571
+492.2385862,-363.75,-13.28660714
+492.2385862,-348.59375,-12.89464286
+492.2385862,-333.4375,-12.4875
+492.2385862,-318.28125,-12.06517857
+492.2385862,-303.125,-11.62857143
+492.2385862,-287.96875,-11.17589286
+492.2385862,-272.8125,-10.70892857
+492.2385862,-257.65625,-10.22678571
+492.2385862,-242.5,-9.729464286
+492.2385862,-227.34375,-9.217857143
+492.2385862,-212.1875,-8.690267857
+492.2385862,-197.03125,-8.148035714
+492.2385862,-181.875,-7.590714286
+492.2385862,-166.71875,-7.018482143
+492.2385862,-151.5625,-6.43125
+492.2385862,-136.40625,-5.828928571
+492.2385862,-121.25,-5.211696429
+492.2385862,-106.09375,-4.579375
+492.2385862,-90.9375,-3.932053571
+492.2385862,-75.78125,-3.269732143
+492.2385862,-60.625,-2.592410714
+492.2385862,-45.46875,-1.900089286
+492.2385862,-30.3125,-1.192767857
+492.2385862,-15.15625,-0.470383929
+492.2385862,0,0.294232143
+492.2385862,15.15625,1.129553571
+492.2385862,30.3125,1.980089286
+492.2385862,45.46875,2.845982143
+492.2385862,60.625,3.727232143
+492.2385862,75.78125,4.62375
+492.2385862,90.9375,5.535625
+492.2385862,106.09375,6.462767857
+492.2385862,121.25,7.405267857
+492.2385862,136.40625,8.363035714
+492.2385862,151.5625,9.335714286
+492.2385862,166.71875,10.32410714
+492.2385862,181.875,11.32857143
+492.2385862,197.03125,12.34732143
+492.2385862,212.1875,13.38125
+492.2385862,227.34375,14.43125
+492.2385862,242.5,15.49642857
+492.2385862,257.65625,16.57678571
+492.2385862,272.8125,17.67232143
+492.2385862,287.96875,18.78303571
+492.2385862,303.125,19.90892857
+492.2385862,318.28125,21.05089286
+492.2385862,333.4375,22.20803571
+492.2385862,348.59375,23.37946429
+492.2385862,363.75,24.56696429
+492.2385862,378.90625,25.77053571
+492.2385862,394.0625,26.98839286
+492.2385862,409.21875,28.22142857
+492.2385862,424.375,29.47053571
+492.2385862,439.53125,30.73482143
+492.2385862,454.6875,32.01428571
+492.2385862,469.84375,33.30892857
+492.2385862,485,34.61875
+562.5478645,-485,-19.38035714
+562.5478645,-469.84375,-18.99732143
+562.5478645,-454.6875,-18.6
+562.5478645,-439.53125,-18.1875
+562.5478645,-424.375,-17.75982143
+562.5478645,-409.21875,-17.31696429
+562.5478645,-394.0625,-16.85892857
+562.5478645,-378.90625,-16.38660714
+562.5478645,-363.75,-15.89910714
+562.5478645,-348.59375,-15.39642857
+562.5478645,-333.4375,-14.87857143
+562.5478645,-318.28125,-14.34553571
+562.5478645,-303.125,-13.79821429
+562.5478645,-287.96875,-13.23482143
+562.5478645,-272.8125,-12.65714286
+562.5478645,-257.65625,-12.06428571
+562.5478645,-242.5,-11.45625
+562.5478645,-227.34375,-10.83392857
+562.5478645,-212.1875,-10.19553571
+562.5478645,-197.03125,-9.542857143
+562.5478645,-181.875,-8.875267857
+562.5478645,-166.71875,-8.192410714
+562.5478645,-151.5625,-7.494553571
+562.5478645,-136.40625,-6.781696429
+562.5478645,-121.25,-6.05375
+562.5478645,-106.09375,-5.310892857
+562.5478645,-90.9375,-4.552946429
+562.5478645,-75.78125,-3.780089286
+562.5478645,-60.625,-2.992142857
+562.5478645,-45.46875,-2.189196429
+562.5478645,-30.3125,-1.37125
+562.5478645,-15.15625,-0.538285714
+562.5478645,0,0.338294643
+562.5478645,15.15625,1.286428571
+562.5478645,30.3125,2.249821429
+562.5478645,45.46875,3.228571429
+562.5478645,60.625,4.222589286
+562.5478645,75.78125,5.231964286
+562.5478645,90.9375,6.256696429
+562.5478645,106.09375,7.296696429
+562.5478645,121.25,8.351964286
+562.5478645,136.40625,9.422321429
+562.5478645,151.5625,10.50892857
+562.5478645,166.71875,11.60982143
+562.5478645,181.875,12.72678571
+562.5478645,197.03125,13.85803571
+562.5478645,212.1875,15.00535714
+562.5478645,227.34375,16.16785714
+562.5478645,242.5,17.34553571
+562.5478645,257.65625,18.53928571
+562.5478645,272.8125,19.74732143
+562.5478645,287.96875,20.97142857
+562.5478645,303.125,22.20982143
+562.5478645,318.28125,23.46428571
+562.5478645,333.4375,24.73392857
+562.5478645,348.59375,26.01875
+562.5478645,363.75,27.31964286
+562.5478645,378.90625,28.63482143
+562.5478645,394.0625,29.96607143
+562.5478645,409.21875,31.3125
+562.5478645,424.375,32.67410714
+562.5478645,439.53125,34.05089286
+562.5478645,454.6875,35.44285714
+562.5478645,469.84375,36.85089286
+562.5478645,485,38.27321429
+632.8718704,-485,-22.875
+632.8718704,-469.84375,-22.38214286
+632.8718704,-454.6875,-21.87410714
+632.8718704,-439.53125,-21.35
+632.8718704,-424.375,-20.8125
+632.8718704,-409.21875,-20.25892857
+632.8718704,-394.0625,-19.69017857
+632.8718704,-378.90625,-19.10714286
+632.8718704,-363.75,-18.50892857
+632.8718704,-348.59375,-17.89553571
+632.8718704,-333.4375,-17.26696429
+632.8718704,-318.28125,-16.62410714
+632.8718704,-303.125,-15.96517857
+632.8718704,-287.96875,-15.29196429
+632.8718704,-272.8125,-14.60357143
+632.8718704,-257.65625,-13.9
+632.8718704,-242.5,-13.18214286
+632.8718704,-227.34375,-12.44821429
+632.8718704,-212.1875,-11.7
+632.8718704,-197.03125,-10.93660714
+632.8718704,-181.875,-10.15803571
+632.8718704,-166.71875,-9.364285714
+632.8718704,-151.5625,-8.55625
+632.8718704,-136.40625,-7.732767857
+632.8718704,-121.25,-6.894285714
+632.8718704,-106.09375,-6.040803571
+632.8718704,-90.9375,-5.172232143
+632.8718704,-75.78125,-4.28875
+632.8718704,-60.625,-3.390178571
+632.8718704,-45.46875,-2.476696429
+632.8718704,-30.3125,-1.548125
+632.8718704,-15.15625,-0.6045625
+632.8718704,0,0.384017857
+632.8718704,15.15625,1.445
+632.8718704,30.3125,2.52125
+632.8718704,45.46875,3.612767857
+632.8718704,60.625,4.719732143
+632.8718704,75.78125,5.841875
+632.8718704,90.9375,6.979375
+632.8718704,106.09375,8.132232143
+632.8718704,121.25,9.3
+632.8718704,136.40625,10.48392857
+632.8718704,151.5625,11.68303571
+632.8718704,166.71875,12.89642857
+632.8718704,181.875,14.12589286
+632.8718704,197.03125,15.37053571
+632.8718704,212.1875,16.63125
+632.8718704,227.34375,17.90625
+632.8718704,242.5,19.19642857
+632.8718704,257.65625,20.50267857
+632.8718704,272.8125,21.82410714
+632.8718704,287.96875,23.16071429
+632.8718704,303.125,24.5125
+632.8718704,318.28125,25.87946429
+632.8718704,333.4375,27.2625
+632.8718704,348.59375,28.65982143
+632.8718704,363.75,30.07321429
+632.8718704,378.90625,31.50178571
+632.8718704,394.0625,32.94553571
+632.8718704,409.21875,34.40446429
+632.8718704,424.375,35.87946429
+632.8718704,439.53125,37.36875
+632.8718704,454.6875,38.87410714
+632.8718704,469.84375,40.39375
+632.8718704,485,41.92946429
+703.1811487,-485,-26.36875
+703.1811487,-469.84375,-25.76428571
+703.1811487,-454.6875,-25.14553571
+703.1811487,-439.53125,-24.51160714
+703.1811487,-424.375,-23.86339286
+703.1811487,-409.21875,-23.19910714
+703.1811487,-394.0625,-22.52053571
+703.1811487,-378.90625,-21.82589286
+703.1811487,-363.75,-21.11696429
+703.1811487,-348.59375,-20.39375
+703.1811487,-333.4375,-19.65446429
+703.1811487,-318.28125,-18.90089286
+703.1811487,-303.125,-18.13125
+703.1811487,-287.96875,-17.34732143
+703.1811487,-272.8125,-16.54821429
+703.1811487,-257.65625,-15.73482143
+703.1811487,-242.5,-14.90535714
+703.1811487,-227.34375,-14.06160714
+703.1811487,-212.1875,-13.20267857
+703.1811487,-197.03125,-12.32857143
+703.1811487,-181.875,-11.43928571
+703.1811487,-166.71875,-10.53571429
+703.1811487,-151.5625,-9.616071429
+703.1811487,-136.40625,-8.682232143
+703.1811487,-121.25,-7.733125
+703.1811487,-106.09375,-6.769017857
+703.1811487,-90.9375,-5.789910714
+703.1811487,-75.78125,-4.795803571
+703.1811487,-60.625,-3.786696429
+703.1811487,-45.46875,-2.7625
+703.1811487,-30.3125,-1.723392857
+703.1811487,-15.15625,-0.669205357
+703.1811487,0,0.431401786
+703.1811487,15.15625,1.605178571
+703.1811487,30.3125,2.794285714
+703.1811487,45.46875,3.998660714
+703.1811487,60.625,5.218392857
+703.1811487,75.78125,6.453482143
+703.1811487,90.9375,7.703839286
+703.1811487,106.09375,8.969642857
+703.1811487,121.25,10.25089286
+703.1811487,136.40625,11.54642857
+703.1811487,151.5625,12.85803571
+703.1811487,166.71875,14.18571429
+703.1811487,181.875,15.52767857
+703.1811487,197.03125,16.88482143
+703.1811487,212.1875,18.25803571
+703.1811487,227.34375,19.64642857
+703.1811487,242.5,21.05
+703.1811487,257.65625,22.46875
+703.1811487,272.8125,23.90267857
+703.1811487,287.96875,25.35178571
+703.1811487,303.125,26.81696429
+703.1811487,318.28125,28.29642857
+703.1811487,333.4375,29.79196429
+703.1811487,348.59375,31.30267857
+703.1811487,363.75,32.82857143
+703.1811487,378.90625,34.36964286
+703.1811487,394.0625,35.92678571
+703.1811487,409.21875,37.49821429
+703.1811487,424.375,39.08571429
+703.1811487,439.53125,40.68839286
+703.1811487,454.6875,42.30625
+703.1811487,469.84375,43.93928571
+703.1811487,485,45.5875
+773.5051546,-485,-29.85982143
+773.5051546,-469.84375,-29.14553571
+773.5051546,-454.6875,-28.41607143
+773.5051546,-439.53125,-27.67142857
+773.5051546,-424.375,-26.9125
+773.5051546,-409.21875,-26.1375
+773.5051546,-394.0625,-25.34821429
+773.5051546,-378.90625,-24.54375
+773.5051546,-363.75,-23.72410714
+773.5051546,-348.59375,-22.88928571
+773.5051546,-333.4375,-22.04017857
+773.5051546,-318.28125,-21.17589286
+773.5051546,-303.125,-20.29642857
+773.5051546,-287.96875,-19.40178571
+773.5051546,-272.8125,-18.49196429
+773.5051546,-257.65625,-17.56696429
+773.5051546,-242.5,-16.62767857
+773.5051546,-227.34375,-15.67321429
+773.5051546,-212.1875,-14.70357143
+773.5051546,-197.03125,-13.71875
+773.5051546,-181.875,-12.71875
+773.5051546,-166.71875,-11.70446429
+773.5051546,-151.5625,-10.675
+773.5051546,-136.40625,-9.630357143
+773.5051546,-121.25,-8.570357143
+773.5051546,-106.09375,-7.495625
+773.5051546,-90.9375,-6.405982143
+773.5051546,-75.78125,-5.30125
+773.5051546,-60.625,-4.181517857
+773.5051546,-45.46875,-3.046785714
+773.5051546,-30.3125,-1.896964286
+773.5051546,-15.15625,-0.732223214
+773.5051546,0,0.4804375
+773.5051546,15.15625,1.767053571
+773.5051546,30.3125,3.069017857
+773.5051546,45.46875,4.38625
+773.5051546,60.625,5.718839286
+773.5051546,75.78125,7.066696429
+773.5051546,90.9375,8.429821429
+773.5051546,106.09375,9.808035714
+773.5051546,121.25,11.20178571
+773.5051546,136.40625,12.61160714
+773.5051546,151.5625,14.03571429
+773.5051546,166.71875,15.47589286
+773.5051546,181.875,16.93035714
+773.5051546,197.03125,18.40089286
+773.5051546,212.1875,19.88660714
+773.5051546,227.34375,21.3875
+773.5051546,242.5,22.90357143
+773.5051546,257.65625,24.43571429
+773.5051546,272.8125,25.98214286
+773.5051546,287.96875,27.54464286
+773.5051546,303.125,29.12232143
+773.5051546,318.28125,30.71517857
+773.5051546,333.4375,32.32321429
+773.5051546,348.59375,33.94732143
+773.5051546,363.75,35.58571429
+773.5051546,378.90625,37.24017857
+773.5051546,394.0625,38.90982143
+773.5051546,409.21875,40.59375
+773.5051546,424.375,42.29464286
+773.5051546,439.53125,44.00982143
+773.5051546,454.6875,45.74017857
+773.5051546,469.84375,47.48660714
+773.5051546,485,49.24732143
+843.8291605,-485,-33.35
+843.8291605,-469.84375,-32.525
+843.8291605,-454.6875,-31.68482143
+843.8291605,-439.53125,-30.83035714
+843.8291605,-424.375,-29.95982143
+843.8291605,-409.21875,-29.075
+843.8291605,-394.0625,-28.175
+843.8291605,-378.90625,-27.25982143
+843.8291605,-363.75,-26.32946429
+843.8291605,-348.59375,-25.38392857
+843.8291605,-333.4375,-24.42410714
+843.8291605,-318.28125,-23.44910714
+843.8291605,-303.125,-22.45892857
+843.8291605,-287.96875,-21.45357143
+843.8291605,-272.8125,-20.43303571
+843.8291605,-257.65625,-19.39821429
+843.8291605,-242.5,-18.34821429
+843.8291605,-227.34375,-17.28303571
+843.8291605,-212.1875,-16.20267857
+843.8291605,-197.03125,-15.10714286
+843.8291605,-181.875,-13.99732143
+843.8291605,-166.71875,-12.87142857
+843.8291605,-151.5625,-11.73125
+843.8291605,-136.40625,-10.57589286
+843.8291605,-121.25,-9.40625
+843.8291605,-106.09375,-8.220625
+843.8291605,-90.9375,-7.020357143
+843.8291605,-75.78125,-5.805
+843.8291605,-60.625,-4.574642857
+843.8291605,-45.46875,-3.329375
+843.8291605,-30.3125,-2.069017857
+843.8291605,-15.15625,-0.793625
+843.8291605,0,0.531133929
+843.8291605,15.15625,1.930625
+843.8291605,30.3125,3.345357143
+843.8291605,45.46875,4.775446429
+843.8291605,60.625,6.220803571
+843.8291605,75.78125,7.681517857
+843.8291605,90.9375,9.157142857
+843.8291605,106.09375,10.64910714
+843.8291605,121.25,12.15535714
+843.8291605,136.40625,13.67767857
+843.8291605,151.5625,15.21517857
+843.8291605,166.71875,16.76696429
+843.8291605,181.875,18.33571429
+843.8291605,197.03125,19.91875
+843.8291605,212.1875,21.51696429
+843.8291605,227.34375,23.13125
+843.8291605,242.5,24.75982143
+843.8291605,257.65625,26.40446429
+843.8291605,272.8125,28.06428571
+843.8291605,287.96875,29.73928571
+843.8291605,303.125,31.42946429
+843.8291605,318.28125,33.13571429
+843.8291605,333.4375,34.85625
+843.8291605,348.59375,36.59285714
+843.8291605,363.75,38.34464286
+843.8291605,378.90625,40.11160714
+843.8291605,394.0625,41.89375
+843.8291605,409.21875,43.69107143
+843.8291605,424.375,45.50446429
+843.8291605,439.53125,47.33214286
+843.8291605,454.6875,49.17589286
+843.8291605,469.84375,51.03482143
+843.8291605,485,52.90892857
+1406.377025,-485,-61.21160714
+1406.377025,-469.84375,-59.50178571
+1406.377025,-454.6875,-57.77767857
+1406.377025,-439.53125,-56.0375
+1406.377025,-424.375,-54.28214286
+1406.377025,-409.21875,-52.5125
+1406.377025,-394.0625,-50.72767857
+1406.377025,-378.90625,-48.92767857
+1406.377025,-363.75,-47.1125
+1406.377025,-348.59375,-45.28303571
+1406.377025,-333.4375,-43.4375
+1406.377025,-318.28125,-41.57767857
+1406.377025,-303.125,-39.70267857
+1406.377025,-287.96875,-37.8125
+1406.377025,-272.8125,-35.90803571
+1406.377025,-257.65625,-33.9875
+1406.377025,-242.5,-32.05267857
+1406.377025,-227.34375,-30.10267857
+1406.377025,-212.1875,-28.1375
+1406.377025,-197.03125,-26.15803571
+1406.377025,-181.875,-24.1625
+1406.377025,-166.71875,-22.15267857
+1406.377025,-151.5625,-20.12767857
+1406.377025,-136.40625,-18.0875
+1406.377025,-121.25,-16.03214286
+1406.377025,-106.09375,-13.9625
+1406.377025,-90.9375,-11.87678571
+1406.377025,-75.78125,-9.776785714
+1406.377025,-60.625,-7.661785714
+1406.377025,-45.46875,-5.531607143
+1406.377025,-30.3125,-3.386428571
+1406.377025,-15.15625,-1.22625
+1406.377025,0,0.996428571
+1406.377025,15.15625,3.298571429
+1406.377025,30.3125,5.616071429
+1406.377025,45.46875,7.948839286
+1406.377025,60.625,10.29732143
+1406.377025,75.78125,12.66071429
+1406.377025,90.9375,15.03928571
+1406.377025,106.09375,17.43303571
+1406.377025,121.25,19.84196429
+1406.377025,136.40625,22.26696429
+1406.377025,151.5625,24.70714286
+1406.377025,166.71875,27.1625
+1406.377025,181.875,29.63303571
+1406.377025,197.03125,32.11875
+1406.377025,212.1875,34.61964286
+1406.377025,227.34375,37.13660714
+1406.377025,242.5,39.66875
+1406.377025,257.65625,42.21517857
+1406.377025,272.8125,44.77767857
+1406.377025,287.96875,47.35535714
+1406.377025,303.125,49.94910714
+1406.377025,318.28125,52.55714286
+1406.377025,333.4375,55.18125
+1406.377025,348.59375,57.81964286
+1406.377025,363.75,60.47410714
+1406.377025,378.90625,63.14375
+1406.377025,394.0625,65.82857143
+1406.377025,409.21875,68.52946429
+1406.377025,424.375,71.24464286
+1406.377025,439.53125,73.97589286
+1406.377025,454.6875,76.72232143
+1406.377025,469.84375,79.48392857
+1406.377025,485,82.26071429
+1758.02651,-485,-78.57321429
+1758.02651,-469.84375,-76.30982143
+1758.02651,-454.6875,-74.03214286
+1758.02651,-439.53125,-71.73928571
+1758.02651,-424.375,-69.43125
+1758.02651,-409.21875,-67.10803571
+1758.02651,-394.0625,-64.77053571
+1758.02651,-378.90625,-62.41785714
+1758.02651,-363.75,-60.04910714
+1758.02651,-348.59375,-57.66607143
+1758.02651,-333.4375,-55.26875
+1758.02651,-318.28125,-52.85535714
+1758.02651,-303.125,-50.42767857
+1758.02651,-287.96875,-47.98482143
+1758.02651,-272.8125,-45.52678571
+1758.02651,-257.65625,-43.05357143
+1758.02651,-242.5,-40.56517857
+1758.02651,-227.34375,-38.0625
+1758.02651,-212.1875,-35.54464286
+1758.02651,-197.03125,-33.01160714
+1758.02651,-181.875,-30.46339286
+1758.02651,-166.71875,-27.9
+1758.02651,-151.5625,-25.32232143
+1758.02651,-136.40625,-22.72857143
+1758.02651,-121.25,-20.12053571
+1758.02651,-106.09375,-17.49732143
+1758.02651,-90.9375,-14.85982143
+1758.02651,-75.78125,-12.20625
+1758.02651,-60.625,-9.538392857
+1758.02651,-45.46875,-6.855178571
+1758.02651,-30.3125,-4.156964286
+1758.02651,-15.15625,-1.443839286
+1758.02651,0,1.341160714
+1758.02651,15.15625,4.2075
+1758.02651,30.3125,7.089107143
+1758.02651,45.46875,9.985714286
+1758.02651,60.625,12.89821429
+1758.02651,75.78125,15.82589286
+1758.02651,90.9375,18.76875
+1758.02651,106.09375,21.72678571
+1758.02651,121.25,24.70089286
+1758.02651,136.40625,27.68928571
+1758.02651,151.5625,30.69375
+1758.02651,166.71875,33.7125
+1758.02651,181.875,36.74732143
+1758.02651,197.03125,39.79821429
+1758.02651,212.1875,42.86339286
+1758.02651,227.34375,45.94375
+1758.02651,242.5,49.04017857
+1758.02651,257.65625,52.15089286
+1758.02651,272.8125,55.27767857
+1758.02651,287.96875,58.41964286
+1758.02651,303.125,61.57678571
+1758.02651,318.28125,64.75
+1758.02651,333.4375,67.9375
+1758.02651,348.59375,71.14107143
+1758.02651,363.75,74.35892857
+1758.02651,378.90625,77.59285714
+1758.02651,394.0625,80.84196429
+1758.02651,409.21875,84.10714286
+1758.02651,424.375,87.38660714
+1758.02651,439.53125,90.67857143
+1758.02651,454.6875,93.99107143
+1758.02651,469.84375,97.32142857
+1758.02651,485,100.6607143
+2109.572901,-485,-95.89285714
+2109.572901,-469.84375,-93.08035714
+2109.572901,-454.6875,-90.25
+2109.572901,-439.53125,-87.4
+2109.572901,-424.375,-84.53928571
+2109.572901,-409.21875,-81.66339286
+2109.572901,-394.0625,-78.77232143
+2109.572901,-378.90625,-75.86607143
+2109.572901,-363.75,-72.94553571
+2109.572901,-348.59375,-70.00982143
+2109.572901,-333.4375,-67.05892857
+2109.572901,-318.28125,-64.09285714
+2109.572901,-303.125,-61.11160714
+2109.572901,-287.96875,-58.11517857
+2109.572901,-272.8125,-55.10446429
+2109.572901,-257.65625,-52.07857143
+2109.572901,-242.5,-49.0375
+2109.572901,-227.34375,-45.98125
+2109.572901,-212.1875,-42.91071429
+2109.572901,-197.03125,-39.82410714
+2109.572901,-181.875,-36.72321429
+2109.572901,-166.71875,-33.60714286
+2109.572901,-151.5625,-30.47589286
+2109.572901,-136.40625,-27.33035714
+2109.572901,-121.25,-24.16875
+2109.572901,-106.09375,-20.99285714
+2109.572901,-90.9375,-17.80178571
+2109.572901,-75.78125,-14.59553571
+2109.572901,-60.625,-11.37410714
+2109.572901,-45.46875,-8.138125
+2109.572901,-30.3125,-4.886964286
+2109.572901,-15.15625,-1.620714286
+2109.572901,0,1.727321429
+2109.572901,15.15625,5.157857143
+2109.572901,30.3125,8.603660714
+2109.572901,45.46875,12.06517857
+2109.572901,60.625,15.54107143
+2109.572901,75.78125,19.03303571
+2109.572901,90.9375,22.54017857
+2109.572901,106.09375,26.0625
+2109.572901,121.25,29.6
+2109.572901,136.40625,33.15267857
+2109.572901,151.5625,36.72142857
+2109.572901,166.71875,40.30535714
+2109.572901,181.875,43.90446429
+2109.572901,197.03125,47.51785714
+2109.572901,212.1875,51.14821429
+2109.572901,227.34375,54.79285714
+2109.572901,242.5,58.45267857
+2109.572901,257.65625,62.12857143
+2109.572901,272.8125,65.81964286
+2109.572901,287.96875,69.525
+2109.572901,303.125,73.24732143
+2109.572901,318.28125,76.98392857
+2109.572901,333.4375,80.73571429
+2109.572901,348.59375,84.50357143
+2109.572901,363.75,88.28571429
+2109.572901,378.90625,92.08035714
+2109.572901,394.0625,95.89285714
+2109.572901,409.21875,99.72321429
+2109.572901,424.375,103.5714286
+2109.572901,439.53125,107.4285714
+2109.572901,454.6875,111.3035714
+2109.572901,469.84375,115.1964286
+2109.572901,485,119.0982143
+2461.119293,-485,-113.1696429
+2461.119293,-469.84375,-109.8035714
+2461.119293,-454.6875,-106.4196429
+2461.119293,-439.53125,-103.0178571
+2461.119293,-424.375,-99.60714286
+2461.119293,-409.21875,-96.17857143
+2461.119293,-394.0625,-92.73214286
+2461.119293,-378.90625,-89.275
+2461.119293,-363.75,-85.80089286
+2461.119293,-348.59375,-82.31160714
+2461.119293,-333.4375,-78.80803571
+2461.119293,-318.28125,-75.28928571
+2461.119293,-303.125,-71.75535714
+2461.119293,-287.96875,-68.20625
+2461.119293,-272.8125,-64.64196429
+2461.119293,-257.65625,-61.06339286
+2461.119293,-242.5,-57.46875
+2461.119293,-227.34375,-53.85982143
+2461.119293,-212.1875,-50.23571429
+2461.119293,-197.03125,-46.59642857
+2461.119293,-181.875,-42.94285714
+2461.119293,-166.71875,-39.27321429
+2461.119293,-151.5625,-35.58928571
+2461.119293,-136.40625,-31.89017857
+2461.119293,-121.25,-28.17589286
+2461.119293,-106.09375,-24.44732143
+2461.119293,-90.9375,-20.70267857
+2461.119293,-75.78125,-16.94375
+2461.119293,-60.625,-13.16964286
+2461.119293,-45.46875,-9.380357143
+2461.119293,-30.3125,-5.576160714
+2461.119293,-15.15625,-1.756964286
+2461.119293,0,2.155
+2461.119293,15.15625,6.149642857
+2461.119293,30.3125,10.15982143
+2461.119293,45.46875,14.18482143
+2461.119293,60.625,18.22589286
+2461.119293,75.78125,22.28125
+2461.119293,90.9375,26.35267857
+2461.119293,106.09375,30.43928571
+2461.119293,121.25,34.54107143
+2461.119293,136.40625,38.65803571
+2461.119293,151.5625,42.79107143
+2461.119293,166.71875,46.93839286
+2461.119293,181.875,51.10178571
+2461.119293,197.03125,55.28035714
+2461.119293,212.1875,59.47410714
+2461.119293,227.34375,63.68303571
+2461.119293,242.5,67.90714286
+2461.119293,257.65625,72.14732143
+2461.119293,272.8125,76.40178571
+2461.119293,287.96875,80.67232143
+2461.119293,303.125,84.95803571
+2461.119293,318.28125,89.25892857
+2461.119293,333.4375,93.57142857
+2461.119293,348.59375,97.91071429
+2461.119293,363.75,102.25
+2461.119293,378.90625,106.6160714
+2461.119293,394.0625,110.9910714
+2461.119293,409.21875,115.3839286
+2461.119293,424.375,119.7946429
+2461.119293,439.53125,124.2142857
+2461.119293,454.6875,128.6607143
+2461.119293,469.84375,133.1071429
+2461.119293,485,137.5803571
+2812.81296,-485,-130.4107143
+2812.81296,-469.84375,-126.4910714
+2812.81296,-454.6875,-122.5535714
+2812.81296,-439.53125,-118.5982143
+2812.81296,-424.375,-114.6339286
+2812.81296,-409.21875,-110.6517857
+2812.81296,-394.0625,-106.6517857
+2812.81296,-378.90625,-102.6428571
+2812.81296,-363.75,-98.61607143
+2812.81296,-348.59375,-94.57142857
+2812.81296,-333.4375,-90.51785714
+2812.81296,-318.28125,-86.44464286
+2812.81296,-303.125,-82.35803571
+2812.81296,-287.96875,-78.25535714
+2812.81296,-272.8125,-74.13839286
+2812.81296,-257.65625,-70.00625
+2812.81296,-242.5,-65.85982143
+2812.81296,-227.34375,-61.69732143
+2812.81296,-212.1875,-57.52053571
+2812.81296,-197.03125,-53.32857143
+2812.81296,-181.875,-49.12142857
+2812.81296,-166.71875,-44.89910714
+2812.81296,-151.5625,-40.6625
+2812.81296,-136.40625,-36.40982143
+2812.81296,-121.25,-32.14285714
+2812.81296,-106.09375,-27.86071429
+2812.81296,-90.9375,-23.56339286
+2812.81296,-75.78125,-19.25178571
+2812.81296,-60.625,-14.92410714
+2812.81296,-45.46875,-10.58214286
+2812.81296,-30.3125,-6.224821429
+2812.81296,-15.15625,-1.852589286
+2812.81296,0,2.624107143
+2812.81296,15.15625,7.182946429
+2812.81296,30.3125,11.75714286
+2812.81296,45.46875,16.34642857
+2812.81296,60.625,20.95178571
+2812.81296,75.78125,25.57142857
+2812.81296,90.9375,30.20714286
+2812.81296,106.09375,34.85803571
+2812.81296,121.25,39.52410714
+2812.81296,136.40625,44.20535714
+2812.81296,151.5625,48.90178571
+2812.81296,166.71875,53.61339286
+2812.81296,181.875,58.34107143
+2812.81296,197.03125,63.08392857
+2812.81296,212.1875,67.84196429
+2812.81296,227.34375,72.61517857
+2812.81296,242.5,77.40357143
+2812.81296,257.65625,82.20714286
+2812.81296,272.8125,87.02678571
+2812.81296,287.96875,91.85714286
+2812.81296,303.125,96.71428571
+2812.81296,318.28125,101.5803571
+2812.81296,333.4375,106.4553571
+2812.81296,348.59375,111.3482143
+2812.81296,363.75,116.2589286
+2812.81296,378.90625,121.1875
+2812.81296,394.0625,126.1339286
+2812.81296,409.21875,131.0892857
+2812.81296,424.375,136.0625
+2812.81296,439.53125,141.0446429
+2812.81296,454.6875,146.0535714
+2812.81296,469.84375,151.0714286
+2812.81296,485,156.1071429
+3164.359352,-485,-147.6071429
+3164.359352,-469.84375,-143.1339286
+3164.359352,-454.6875,-138.6428571
+3164.359352,-439.53125,-134.1428571
+3164.359352,-424.375,-129.6160714
+3164.359352,-409.21875,-125.0892857
+3164.359352,-394.0625,-120.5357143
+3164.359352,-378.90625,-115.9732143
+3164.359352,-363.75,-111.3928571
+3164.359352,-348.59375,-106.7946429
+3164.359352,-333.4375,-102.1875
+3164.359352,-318.28125,-97.5625
+3164.359352,-303.125,-92.91964286
+3164.359352,-287.96875,-88.26517857
+3164.359352,-272.8125,-83.59464286
+3164.359352,-257.65625,-78.90982143
+3164.359352,-242.5,-74.20982143
+3164.359352,-227.34375,-69.49464286
+3164.359352,-212.1875,-64.76428571
+3164.359352,-197.03125,-60.01964286
+3164.359352,-181.875,-55.25982143
+3164.359352,-166.71875,-50.48392857
+3164.359352,-151.5625,-45.69375
+3164.359352,-136.40625,-40.88928571
+3164.359352,-121.25,-36.06875
+3164.359352,-106.09375,-31.23392857
+3164.359352,-90.9375,-26.38392857
+3164.359352,-75.78125,-21.51875
+3164.359352,-60.625,-16.63839286
+3164.359352,-45.46875,-11.74285714
+3164.359352,-30.3125,-6.832857143
+3164.359352,-15.15625,-1.907589286
+3164.359352,0,3.134642857
+3164.359352,15.15625,8.257678571
+3164.359352,30.3125,13.39642857
+3164.359352,45.46875,18.55
+3164.359352,60.625,23.71875
+3164.359352,75.78125,28.90267857
+3164.359352,90.9375,34.10267857
+3164.359352,106.09375,39.31785714
+3164.359352,121.25,44.54732143
+3164.359352,136.40625,49.79285714
+3164.359352,151.5625,55.05446429
+3164.359352,166.71875,60.33035714
+3164.359352,181.875,65.62142857
+3164.359352,197.03125,70.92857143
+3164.359352,212.1875,76.25089286
+3164.359352,227.34375,81.58839286
+3164.359352,242.5,86.94107143
+3164.359352,257.65625,92.3125
+3164.359352,272.8125,97.69642857
+3164.359352,287.96875,103.0892857
+3164.359352,303.125,108.5089286
+3164.359352,318.28125,113.9375
+3164.359352,333.4375,119.375
+3164.359352,348.59375,124.8392857
+3164.359352,363.75,130.3125
+3164.359352,378.90625,135.8035714
+3164.359352,394.0625,141.3125
+3164.359352,409.21875,146.8303571
+3164.359352,424.375,152.3660714
+3164.359352,439.53125,157.9196429
+3164.359352,454.6875,163.4910714
+3164.359352,469.84375,169.0714286
+3164.359352,485,174.6696429
+3515.905744,-485,-164.7678571
+3515.905744,-469.84375,-159.7410714
+3515.905744,-454.6875,-154.6964286
+3515.905744,-439.53125,-149.6339286
+3515.905744,-424.375,-144.5625
+3515.905744,-409.21875,-139.4732143
+3515.905744,-394.0625,-134.375
+3515.905744,-378.90625,-129.2589286
+3515.905744,-363.75,-124.125
+3515.905744,-348.59375,-118.9732143
+3515.905744,-333.4375,-113.8125
+3515.905744,-318.28125,-108.6339286
+3515.905744,-303.125,-103.4375
+3515.905744,-287.96875,-98.23214286
+3515.905744,-272.8125,-93.00892857
+3515.905744,-257.65625,-87.77232143
+3515.905744,-242.5,-82.51875
+3515.905744,-227.34375,-77.25089286
+3515.905744,-212.1875,-71.96785714
+3515.905744,-197.03125,-66.66964286
+3515.905744,-181.875,-61.35714286
+3515.905744,-166.71875,-56.02857143
+3515.905744,-151.5625,-50.68571429
+3515.905744,-136.40625,-45.32767857
+3515.905744,-121.25,-39.95446429
+3515.905744,-106.09375,-34.56607143
+3515.905744,-90.9375,-29.1625
+3515.905744,-75.78125,-23.74464286
+3515.905744,-60.625,-18.31160714
+3515.905744,-45.46875,-12.86339286
+3515.905744,-30.3125,-7.400178571
+3515.905744,-15.15625,-1.921964286
+3515.905744,0,3.686696429
+3515.905744,15.15625,9.374107143
+3515.905744,30.3125,15.07678571
+3515.905744,45.46875,20.79464286
+3515.905744,60.625,26.52767857
+3515.905744,75.78125,32.27589286
+3515.905744,90.9375,38.03928571
+3515.905744,106.09375,43.81875
+3515.905744,121.25,49.61339286
+3515.905744,136.40625,55.42321429
+3515.905744,151.5625,61.24821429
+3515.905744,166.71875,67.08839286
+3515.905744,181.875,72.94375
+3515.905744,197.03125,78.81517857
+3515.905744,212.1875,84.70089286
+3515.905744,227.34375,90.60714286
+3515.905744,242.5,96.51785714
+3515.905744,257.65625,102.4553571
+3515.905744,272.8125,108.4017857
+3515.905744,287.96875,114.3660714
+3515.905744,303.125,120.3392857
+3515.905744,318.28125,126.3303571
+3515.905744,333.4375,132.3392857
+3515.905744,348.59375,138.3660714
+3515.905744,363.75,144.4107143
+3515.905744,378.90625,150.4642857
+3515.905744,394.0625,156.5267857
+3515.905744,409.21875,162.6160714
+3515.905744,424.375,168.7142857
+3515.905744,439.53125,174.8303571
+3515.905744,454.6875,180.9642857
+3515.905744,469.84375,187.1071429
+3515.905744,485,193.2767857
+3867.599411,-485,-181.8839286
+3867.599411,-469.84375,-176.3035714
+3867.599411,-454.6875,-170.7053571
+3867.599411,-439.53125,-165.0982143
+3867.599411,-424.375,-159.4732143
+3867.599411,-409.21875,-153.8303571
+3867.599411,-394.0625,-148.1696429
+3867.599411,-378.90625,-142.5
+3867.599411,-363.75,-136.8125
+3867.599411,-348.59375,-131.1160714
+3867.599411,-333.4375,-125.4017857
+3867.599411,-318.28125,-119.6696429
+3867.599411,-303.125,-113.9196429
+3867.599411,-287.96875,-108.1607143
+3867.599411,-272.8125,-102.3839286
+3867.599411,-257.65625,-96.59821429
+3867.599411,-242.5,-90.78571429
+3867.599411,-227.34375,-84.96696429
+3867.599411,-212.1875,-79.13035714
+3867.599411,-197.03125,-73.27946429
+3867.599411,-181.875,-67.41339286
+3867.599411,-166.71875,-61.53214286
+3867.599411,-151.5625,-55.63660714
+3867.599411,-136.40625,-49.725
+3867.599411,-121.25,-43.79910714
+3867.599411,-106.09375,-37.85803571
+3867.599411,-90.9375,-31.90178571
+3867.599411,-75.78125,-25.93035714
+3867.599411,-60.625,-19.94464286
+3867.599411,-45.46875,-13.94285714
+3867.599411,-30.3125,-7.926875
+3867.599411,-15.15625,-1.895625
+3867.599411,0,4.280178571
+3867.599411,15.15625,10.53125
+3867.599411,30.3125,16.79821429
+3867.599411,45.46875,23.08035714
+3867.599411,60.625,29.37767857
+3867.599411,75.78125,35.69017857
+3867.599411,90.9375,42.01785714
+3867.599411,106.09375,48.36160714
+3867.599411,121.25,54.72053571
+3867.599411,136.40625,61.09375
+3867.599411,151.5625,67.48303571
+3867.599411,166.71875,73.8875
+3867.599411,181.875,80.30803571
+3867.599411,197.03125,86.74285714
+3867.599411,212.1875,93.19642857
+3867.599411,227.34375,99.66071429
+3867.599411,242.5,106.1428571
+3867.599411,257.65625,112.6339286
+3867.599411,272.8125,119.1517857
+3867.599411,287.96875,125.6785714
+3867.599411,303.125,132.2142857
+3867.599411,318.28125,138.7767857
+3867.599411,333.4375,145.3482143
+3867.599411,348.59375,151.9375
+3867.599411,363.75,158.5446429
+3867.599411,378.90625,165.1607143
+3867.599411,394.0625,171.7946429
+3867.599411,409.21875,178.4464286
+3867.599411,424.375,185.1071429
+3867.599411,439.53125,191.7857143
+3867.599411,454.6875,198.4821429
+3867.599411,469.84375,205.1964286
+3867.599411,485,211.9196429
+4219.145803,-485,-198.9642857
+4219.145803,-469.84375,-192.8303571
+4219.145803,-454.6875,-186.6785714
+4219.145803,-439.53125,-180.5178571
+4219.145803,-424.375,-174.3303571
+4219.145803,-409.21875,-168.1428571
+4219.145803,-394.0625,-161.9285714
+4219.145803,-378.90625,-155.7053571
+4219.145803,-363.75,-149.4642857
+4219.145803,-348.59375,-143.2142857
+4219.145803,-333.4375,-136.9464286
+4219.145803,-318.28125,-130.6607143
+4219.145803,-303.125,-124.3660714
+4219.145803,-287.96875,-118.0446429
+4219.145803,-272.8125,-111.7232143
+4219.145803,-257.65625,-105.375
+4219.145803,-242.5,-99.01785714
+4219.145803,-227.34375,-92.64285714
+4219.145803,-212.1875,-86.25267857
+4219.145803,-197.03125,-79.84910714
+4219.145803,-181.875,-73.42946429
+4219.145803,-166.71875,-66.99553571
+4219.145803,-151.5625,-60.54642857
+4219.145803,-136.40625,-54.08214286
+4219.145803,-121.25,-47.60267857
+4219.145803,-106.09375,-41.10892857
+4219.145803,-90.9375,-34.6
+4219.145803,-75.78125,-28.07589286
+4219.145803,-60.625,-21.53660714
+4219.145803,-45.46875,-14.98214286
+4219.145803,-30.3125,-8.412946429
+4219.145803,-15.15625,-1.828660714
+4219.145803,0,4.915178571
+4219.145803,15.15625,11.73035714
+4219.145803,30.3125,18.56160714
+4219.145803,45.46875,25.40803571
+4219.145803,60.625,32.26964286
+4219.145803,75.78125,39.14642857
+4219.145803,90.9375,46.03839286
+4219.145803,106.09375,52.94553571
+4219.145803,121.25,59.86875
+4219.145803,136.40625,66.80625
+4219.145803,151.5625,73.75982143
+4219.145803,166.71875,80.72857143
+4219.145803,181.875,87.7125
+4219.145803,197.03125,94.71428571
+4219.145803,212.1875,101.7232143
+4219.145803,227.34375,108.7589286
+4219.145803,242.5,115.8035714
+4219.145803,257.65625,122.8660714
+4219.145803,272.8125,129.9375
+4219.145803,287.96875,137.0267857
+4219.145803,303.125,144.1339286
+4219.145803,318.28125,151.2589286
+4219.145803,333.4375,158.3928571
+4219.145803,348.59375,165.5446429
+4219.145803,363.75,172.7142857
+4219.145803,378.90625,179.9017857
+4219.145803,394.0625,187.0982143
+4219.145803,409.21875,194.3125
+4219.145803,424.375,201.5357143
+4219.145803,439.53125,208.7857143
+4219.145803,454.6875,216.0446429
+4219.145803,469.84375,223.3214286
+4219.145803,485,230.6071429
+4570.692194,-485,-216
+4570.692194,-469.84375,-209.3125
+4570.692194,-454.6875,-202.6071429
+4570.692194,-439.53125,-195.8928571
+4570.692194,-424.375,-189.1607143
+4570.692194,-409.21875,-182.4107143
+4570.692194,-394.0625,-175.6517857
+4570.692194,-378.90625,-168.875
+4570.692194,-363.75,-162.0803571
+4570.692194,-348.59375,-155.2767857
+4570.692194,-333.4375,-148.4553571
+4570.692194,-318.28125,-141.6160714
+4570.692194,-303.125,-134.7589286
+4570.692194,-287.96875,-127.8928571
+4570.692194,-272.8125,-121.0089286
+4570.692194,-257.65625,-114.1160714
+4570.692194,-242.5,-107.2053571
+4570.692194,-227.34375,-100.2767857
+4570.692194,-212.1875,-93.33035714
+4570.692194,-197.03125,-86.37767857
+4570.692194,-181.875,-79.40535714
+4570.692194,-166.71875,-72.41785714
+4570.692194,-151.5625,-65.41607143
+4570.692194,-136.40625,-58.39910714
+4570.692194,-121.25,-51.36696429
+4570.692194,-106.09375,-44.31964286
+4570.692194,-90.9375,-37.25714286
+4570.692194,-75.78125,-30.18035714
+4570.692194,-60.625,-23.0875
+4570.692194,-45.46875,-15.98035714
+4570.692194,-30.3125,-8.858303571
+4570.692194,-15.15625,-1.721071429
+4570.692194,0,5.591607143
+4570.692194,15.15625,12.97142857
+4570.692194,30.3125,20.36607143
+4570.692194,45.46875,27.77678571
+4570.692194,60.625,35.20267857
+4570.692194,75.78125,42.64375
+4570.692194,90.9375,50.1
+4570.692194,106.09375,57.57142857
+4570.692194,121.25,65.05803571
+4570.692194,136.40625,72.56071429
+4570.692194,151.5625,80.07857143
+4570.692194,166.71875,87.61160714
+4570.692194,181.875,95.16071429
+4570.692194,197.03125,102.7232143
+4570.692194,212.1875,110.3035714
+4570.692194,227.34375,117.8928571
+4570.692194,242.5,125.5089286
+4570.692194,257.65625,133.1339286
+4570.692194,272.8125,140.7678571
+4570.692194,287.96875,148.4285714
+4570.692194,303.125,156.0982143
+4570.692194,318.28125,163.7857143
+4570.692194,333.4375,171.4821429
+4570.692194,348.59375,179.1964286
+4570.692194,363.75,186.9285714
+4570.692194,378.90625,194.6785714
+4570.692194,394.0625,202.4464286
+4570.692194,409.21875,210.2232143
+4570.692194,424.375,218.0089286
+4570.692194,439.53125,225.8214286
+4570.692194,454.6875,233.6428571
+4570.692194,469.84375,241.4821429
+4570.692194,485,249.3392857
+4922.385862,-485,-232.9910714
+4922.385862,-469.84375,-225.75
+4922.385862,-454.6875,-218.5
+4922.385862,-439.53125,-211.2232143
+4922.385862,-424.375,-203.9375
+4922.385862,-409.21875,-196.6428571
+4922.385862,-394.0625,-189.3303571
+4922.385862,-378.90625,-182
+4922.385862,-363.75,-174.6517857
+4922.385862,-348.59375,-167.2946429
+4922.385862,-333.4375,-159.9196429
+4922.385862,-318.28125,-152.5267857
+4922.385862,-303.125,-145.125
+4922.385862,-287.96875,-137.6964286
+4922.385862,-272.8125,-130.2678571
+4922.385862,-257.65625,-122.8125
+4922.385862,-242.5,-115.3482143
+4922.385862,-227.34375,-107.8660714
+4922.385862,-212.1875,-100.375
+4922.385862,-197.03125,-92.86607143
+4922.385862,-181.875,-85.34017857
+4922.385862,-166.71875,-77.8
+4922.385862,-151.5625,-70.24464286
+4922.385862,-136.40625,-62.67410714
+4922.385862,-121.25,-55.08928571
+4922.385862,-106.09375,-47.48928571
+4922.385862,-90.9375,-39.87410714
+4922.385862,-75.78125,-32.24375
+4922.385862,-60.625,-24.59821429
+4922.385862,-45.46875,-16.93839286
+4922.385862,-30.3125,-9.263392857
+4922.385862,-15.15625,-1.572857143
+4922.385862,0,6.309553571
+4922.385862,15.15625,14.25357143
+4922.385862,30.3125,22.2125
+4922.385862,45.46875,30.1875
+4922.385862,60.625,38.17678571
+4922.385862,75.78125,46.18214286
+4922.385862,90.9375,54.20267857
+4922.385862,106.09375,62.23839286
+4922.385862,121.25,70.29017857
+4922.385862,136.40625,78.35625
+4922.385862,151.5625,86.43839286
+4922.385862,166.71875,94.53571429
+4922.385862,181.875,102.6517857
+4922.385862,197.03125,110.7767857
+4922.385862,212.1875,118.9196429
+4922.385862,227.34375,127.0803571
+4922.385862,242.5,135.25
+4922.385862,257.65625,143.4375
+4922.385862,272.8125,151.6428571
+4922.385862,287.96875,159.8660714
+4922.385862,303.125,168.0982143
+4922.385862,318.28125,176.3482143
+4922.385862,333.4375,184.6160714
+4922.385862,348.59375,192.8928571
+4922.385862,363.75,201.1875
+4922.385862,378.90625,209.5
+4922.385862,394.0625,217.8303571
+4922.385862,409.21875,226.1696429
+4922.385862,424.375,234.5267857
+4922.385862,439.53125,242.9017857
+4922.385862,454.6875,251.2857143
+4922.385862,469.84375,259.6964286
+4922.385862,485,268.1071429
+5273.932253,-485,-249.9464286
+5273.932253,-469.84375,-242.1517857
+5273.932253,-454.6875,-234.3482143
+5273.932253,-439.53125,-226.5178571
+5273.932253,-424.375,-218.6875
+5273.932253,-409.21875,-210.8303571
+5273.932253,-394.0625,-202.9642857
+5273.932253,-378.90625,-195.0803571
+5273.932253,-363.75,-187.1785714
+5273.932253,-348.59375,-179.2678571
+5273.932253,-333.4375,-171.3392857
+5273.932253,-318.28125,-163.3928571
+5273.932253,-303.125,-155.4375
+5273.932253,-287.96875,-147.4642857
+5273.932253,-272.8125,-139.4821429
+5273.932253,-257.65625,-131.4732143
+5273.932253,-242.5,-123.4553571
+5273.932253,-227.34375,-115.4196429
+5273.932253,-212.1875,-107.375
+5273.932253,-197.03125,-99.3125
+5273.932253,-181.875,-91.23214286
+5273.932253,-166.71875,-83.14107143
+5273.932253,-151.5625,-75.03303571
+5273.932253,-136.40625,-66.90982143
+5273.932253,-121.25,-58.77142857
+5273.932253,-106.09375,-50.61875
+5273.932253,-90.9375,-42.45
+5273.932253,-75.78125,-34.26696429
+5273.932253,-60.625,-26.06875
+5273.932253,-45.46875,-17.85535714
+5273.932253,-30.3125,-9.626785714
+5273.932253,-15.15625,-1.383928571
+5273.932253,0,7.068928571
+5273.932253,15.15625,15.57678571
+5273.932253,30.3125,24.10089286
+5273.932253,45.46875,32.63928571
+5273.932253,60.625,41.19285714
+5273.932253,75.78125,49.7625
+5273.932253,90.9375,58.34732143
+5273.932253,106.09375,66.94732143
+5273.932253,121.25,75.5625
+5273.932253,136.40625,84.19285714
+5273.932253,151.5625,92.83928571
+5273.932253,166.71875,101.5
+5273.932253,181.875,110.1785714
+5273.932253,197.03125,118.8660714
+5273.932253,212.1875,127.5803571
+5273.932253,227.34375,136.2946429
+5273.932253,242.5,145.0357143
+5273.932253,257.65625,153.7857143
+5273.932253,272.8125,162.5535714
+5273.932253,287.96875,171.3392857
+5273.932253,303.125,180.1428571
+5273.932253,318.28125,188.9553571
+5273.932253,333.4375,197.7857143
+5273.932253,348.59375,206.6339286
+5273.932253,363.75,215.4910714
+5273.932253,378.90625,224.3660714
+5273.932253,394.0625,233.2589286
+5273.932253,409.21875,242.1607143
+5273.932253,424.375,251.0803571
+5273.932253,439.53125,260.0178571
+5273.932253,454.6875,268.9732143
+5273.932253,469.84375,277.9375
+5273.932253,485,286.9196429
+5625.478645,-485,-266.8571429
+5625.478645,-469.84375,-258.5089286
+5625.478645,-454.6875,-250.1517857
+5625.478645,-439.53125,-241.7767857
+5625.478645,-424.375,-233.3839286
+5625.478645,-409.21875,-224.9821429
+5625.478645,-394.0625,-216.5535714
+5625.478645,-378.90625,-208.125
+5625.478645,-363.75,-199.6696429
+5625.478645,-348.59375,-191.2053571
+5625.478645,-333.4375,-182.7232143
+5625.478645,-318.28125,-174.2321429
+5625.478645,-303.125,-165.7142857
+5625.478645,-287.96875,-157.1875
+5625.478645,-272.8125,-148.6517857
+5625.478645,-257.65625,-140.0892857
+5625.478645,-242.5,-131.5178571
+5625.478645,-227.34375,-122.9375
+5625.478645,-212.1875,-114.3392857
+5625.478645,-197.03125,-105.7232143
+5625.478645,-181.875,-97.08928571
+5625.478645,-166.71875,-88.44196429
+5625.478645,-151.5625,-79.78035714
+5625.478645,-136.40625,-71.10446429
+5625.478645,-121.25,-62.41339286
+5625.478645,-106.09375,-53.70714286
+5625.478645,-90.9375,-44.98571429
+5625.478645,-75.78125,-36.24910714
+5625.478645,-60.625,-27.49821429
+5625.478645,-45.46875,-18.73214286
+5625.478645,-30.3125,-9.950892857
+5625.478645,-15.15625,-1.154375
+5625.478645,0,7.869732143
+5625.478645,15.15625,16.94196429
+5625.478645,30.3125,26.02946429
+5625.478645,45.46875,35.13214286
+5625.478645,60.625,44.25089286
+5625.478645,75.78125,53.38392857
+5625.478645,90.9375,62.53303571
+5625.478645,106.09375,71.69732143
+5625.478645,121.25,80.87678571
+5625.478645,136.40625,90.07142857
+5625.478645,151.5625,99.28571429
+5625.478645,166.71875,108.5089286
+5625.478645,181.875,117.75
+5625.478645,197.03125,127
+5625.478645,212.1875,136.2767857
+5625.478645,227.34375,145.5625
+5625.478645,242.5,154.8660714
+5625.478645,257.65625,164.1785714
+5625.478645,272.8125,173.5178571
+5625.478645,287.96875,182.8660714
+5625.478645,303.125,192.2232143
+5625.478645,318.28125,201.6071429
+5625.478645,333.4375,211
+5625.478645,348.59375,220.4107143
+5625.478645,363.75,229.8303571
+5625.478645,378.90625,239.2678571
+5625.478645,394.0625,248.7232143
+5625.478645,409.21875,258.1964286
+5625.478645,424.375,267.6785714
+5625.478645,439.53125,277.1875
+5625.478645,454.6875,286.6964286
+5625.478645,469.84375,296.2321429
+5625.478645,485,305.7767857
+5977.172312,-485,-283.7321429
+5977.172312,-469.84375,-274.8303571
+5977.172312,-454.6875,-265.9196429
+5977.172312,-439.53125,-256.9910714
+5977.172312,-424.375,-248.0446429
+5977.172312,-409.21875,-239.0892857
+5977.172312,-394.0625,-230.1160714
+5977.172312,-378.90625,-221.125
+5977.172312,-363.75,-212.1160714
+5977.172312,-348.59375,-203.0982143
+5977.172312,-333.4375,-194.0625
+5977.172312,-318.28125,-185.0178571
+5977.172312,-303.125,-175.9553571
+5977.172312,-287.96875,-166.875
+5977.172312,-272.8125,-157.7767857
+5977.172312,-257.65625,-148.6696429
+5977.172312,-242.5,-139.5446429
+5977.172312,-227.34375,-130.4107143
+5977.172312,-212.1875,-121.25
+5977.172312,-197.03125,-112.0803571
+5977.172312,-181.875,-102.9017857
+5977.172312,-166.71875,-93.70535714
+5977.172312,-151.5625,-84.4875
+5977.172312,-136.40625,-75.25803571
+5977.172312,-121.25,-66.01428571
+5977.172312,-106.09375,-56.75446429
+5977.172312,-90.9375,-47.48035714
+5977.172312,-75.78125,-38.19107143
+5977.172312,-60.625,-28.88660714
+5977.172312,-45.46875,-19.56785714
+5977.172312,-30.3125,-10.23392857
+5977.172312,-15.15625,-0.884214286
+5977.172312,0,8.712053571
+5977.172312,15.15625,18.34821429
+5977.172312,30.3125,28
+5977.172312,45.46875,37.66785714
+5977.172312,60.625,47.35
+5977.172312,75.78125,57.04732143
+5977.172312,90.9375,66.76071429
+5977.172312,106.09375,76.48928571
+5977.172312,121.25,86.23303571
+5977.172312,136.40625,95.99107143
+5977.172312,151.5625,105.7678571
+5977.172312,166.71875,115.5535714
+5977.172312,181.875,125.3571429
+5977.172312,197.03125,135.1785714
+5977.172312,212.1875,145.0178571
+5977.172312,227.34375,154.8660714
+5977.172312,242.5,164.7321429
+5977.172312,257.65625,174.6160714
+5977.172312,272.8125,184.5089286
+5977.172312,287.96875,194.4196429
+5977.172312,303.125,204.3482143
+5977.172312,318.28125,214.2946429
+5977.172312,333.4375,224.25
+5977.172312,348.59375,234.2232143
+5977.172312,363.75,244.2142857
+5977.172312,378.90625,254.2142857
+5977.172312,394.0625,264.2410714
+5977.172312,409.21875,274.2678571
+5977.172312,424.375,284.3214286
+5977.172312,439.53125,294.3839286
+5977.172312,454.6875,304.4642857
+5977.172312,469.84375,314.5625
+5977.172312,485,324.6785714
+6328.718704,-485,-300.5625
+6328.718704,-469.84375,-291.1160714
+6328.718704,-454.6875,-281.6428571
+6328.718704,-439.53125,-272.1607143
+6328.718704,-424.375,-262.6696429
+6328.718704,-409.21875,-253.1517857
+6328.718704,-394.0625,-243.625
+6328.718704,-378.90625,-234.0892857
+6328.718704,-363.75,-224.5267857
+6328.718704,-348.59375,-214.9553571
+6328.718704,-333.4375,-205.3660714
+6328.718704,-318.28125,-195.7678571
+6328.718704,-303.125,-186.1517857
+6328.718704,-287.96875,-176.5178571
+6328.718704,-272.8125,-166.875
+6328.718704,-257.65625,-157.2053571
+6328.718704,-242.5,-147.5357143
+6328.718704,-227.34375,-137.8392857
+6328.718704,-212.1875,-128.1339286
+6328.718704,-197.03125,-118.4107143
+6328.718704,-181.875,-108.6696429
+6328.718704,-166.71875,-98.91964286
+6328.718704,-151.5625,-89.15357143
+6328.718704,-136.40625,-79.37142857
+6328.718704,-121.25,-69.57410714
+6328.718704,-106.09375,-59.76160714
+6328.718704,-90.9375,-49.93482143
+6328.718704,-75.78125,-40.09285714
+6328.718704,-60.625,-30.23482143
+6328.718704,-45.46875,-20.3625
+6328.718704,-30.3125,-10.47589286
+6328.718704,-15.15625,-0.573383929
+6328.718704,0,9.595535714
+6328.718704,15.15625,19.79642857
+6328.718704,30.3125,30.0125
+6328.718704,45.46875,40.24375
+6328.718704,60.625,50.49017857
+6328.718704,75.78125,60.75267857
+6328.718704,90.9375,71.02946429
+6328.718704,106.09375,81.32232143
+6328.718704,121.25,91.63392857
+6328.718704,136.40625,101.9553571
+6328.718704,151.5625,112.2946429
+6328.718704,166.71875,122.6428571
+6328.718704,181.875,133.0178571
+6328.718704,197.03125,143.4017857
+6328.718704,212.1875,153.7946429
+6328.718704,227.34375,164.2142857
+6328.718704,242.5,174.6428571
+6328.718704,257.65625,185.0892857
+6328.718704,272.8125,195.5535714
+6328.718704,287.96875,206.0267857
+6328.718704,303.125,216.5178571
+6328.718704,318.28125,227.0267857
+6328.718704,333.4375,237.5446429
+6328.718704,348.59375,248.0892857
+6328.718704,363.75,258.6339286
+6328.718704,378.90625,269.2053571
+6328.718704,394.0625,279.7857143
+6328.718704,409.21875,290.3839286
+6328.718704,424.375,301
+6328.718704,439.53125,311.6339286
+6328.718704,454.6875,322.2767857
+6328.718704,469.84375,332.9375
+6328.718704,485,343.6160714
+6680.265096,-485,-317.3571429
+6680.265096,-469.84375,-307.3482143
+6680.265096,-454.6875,-297.3303571
+6680.265096,-439.53125,-287.2946429
+6680.265096,-424.375,-277.25
+6680.265096,-409.21875,-267.1785714
+6680.265096,-394.0625,-257.0982143
+6680.265096,-378.90625,-247.0089286
+6680.265096,-363.75,-236.8928571
+6680.265096,-348.59375,-226.7678571
+6680.265096,-333.4375,-216.6339286
+6680.265096,-318.28125,-206.4732143
+6680.265096,-303.125,-196.3035714
+6680.265096,-287.96875,-186.1160714
+6680.265096,-272.8125,-175.9196429
+6680.265096,-257.65625,-165.7053571
+6680.265096,-242.5,-155.4732143
+6680.265096,-227.34375,-145.2321429
+6680.265096,-212.1875,-134.9732143
+6680.265096,-197.03125,-124.6964286
+6680.265096,-181.875,-114.4017857
+6680.265096,-166.71875,-104.0982143
+6680.265096,-151.5625,-93.77678571
+6680.265096,-136.40625,-83.44375
+6680.265096,-121.25,-73.09375
+6680.265096,-106.09375,-62.72857143
+6680.265096,-90.9375,-52.34821429
+6680.265096,-75.78125,-41.95267857
+6680.265096,-60.625,-31.54285714
+6680.265096,-45.46875,-21.11785714
+6680.265096,-30.3125,-10.67678571
+6680.265096,-15.15625,-0.221919643
+6680.265096,0,10.52142857
+6680.265096,15.15625,21.28571429
+6680.265096,30.3125,32.06607143
+6680.265096,45.46875,42.86160714
+6680.265096,60.625,53.67232143
+6680.265096,75.78125,64.49821429
+6680.265096,90.9375,75.34017857
+6680.265096,106.09375,86.19642857
+6680.265096,121.25,97.07142857
+6680.265096,136.40625,107.9553571
+6680.265096,151.5625,118.8571429
+6680.265096,166.71875,129.7767857
+6680.265096,181.875,140.7053571
+6680.265096,197.03125,151.6607143
+6680.265096,212.1875,162.625
+6680.265096,227.34375,173.5982143
+6680.265096,242.5,184.5982143
+6680.265096,257.65625,195.6071429
+6680.265096,272.8125,206.6339286
+6680.265096,287.96875,217.6696429
+6680.265096,303.125,228.7232143
+6680.265096,318.28125,239.7946429
+6680.265096,333.4375,250.8839286
+6680.265096,348.59375,261.9821429
+6680.265096,363.75,273.1071429
+6680.265096,378.90625,284.2321429
+6680.265096,394.0625,295.3839286
+6680.265096,409.21875,306.5446429
+6680.265096,424.375,317.7232143
+6680.265096,439.53125,328.9196429
+6680.265096,454.6875,340.125
+6680.265096,469.84375,351.3482143
+6680.265096,485,362.5892857
+7031.811487,-485,-334.1071429
+7031.811487,-469.84375,-323.5535714
+7031.811487,-454.6875,-312.9732143
+7031.811487,-439.53125,-302.3839286
+7031.811487,-424.375,-291.7857143
+7031.811487,-409.21875,-281.1696429
+7031.811487,-394.0625,-270.5357143
+7031.811487,-378.90625,-259.8839286
+7031.811487,-363.75,-249.2232143
+7031.811487,-348.59375,-238.5446429
+7031.811487,-333.4375,-227.8482143
+7031.811487,-318.28125,-217.1428571
+7031.811487,-303.125,-206.4196429
+7031.811487,-287.96875,-195.6785714
+7031.811487,-272.8125,-184.9285714
+7031.811487,-257.65625,-174.1607143
+7031.811487,-242.5,-163.375
+7031.811487,-227.34375,-152.5803571
+7031.811487,-212.1875,-141.7678571
+7031.811487,-197.03125,-130.9375
+7031.811487,-181.875,-120.0982143
+7031.811487,-166.71875,-109.2410714
+7031.811487,-151.5625,-98.36607143
+7031.811487,-136.40625,-87.47589286
+7031.811487,-121.25,-76.57232143
+7031.811487,-106.09375,-65.65446429
+7031.811487,-90.9375,-54.72142857
+7031.811487,-75.78125,-43.77321429
+7031.811487,-60.625,-32.80982143
+7031.811487,-45.46875,-21.83125
+7031.811487,-30.3125,-10.83839286
+7031.811487,-15.15625,0.174098214
+7031.811487,0,11.4875
+7031.811487,15.15625,22.81696429
+7031.811487,30.3125,34.16071429
+7031.811487,45.46875,45.52053571
+7031.811487,60.625,56.89553571
+7031.811487,75.78125,68.28571429
+7031.811487,90.9375,79.69196429
+7031.811487,106.09375,91.11607143
+7031.811487,121.25,102.5446429
+7031.811487,136.40625,114
+7031.811487,151.5625,125.4642857
+7031.811487,166.71875,136.9464286
+7031.811487,181.875,148.4464286
+7031.811487,197.03125,159.9553571
+7031.811487,212.1875,171.4910714
+7031.811487,227.34375,183.0267857
+7031.811487,242.5,194.5892857
+7031.811487,257.65625,206.1607143
+7031.811487,272.8125,217.75
+7031.811487,287.96875,229.3571429
+7031.811487,303.125,240.9732143
+7031.811487,318.28125,252.6160714
+7031.811487,333.4375,264.2589286
+7031.811487,348.59375,275.9285714
+7031.811487,363.75,287.6071429
+7031.811487,378.90625,299.3035714
+7031.811487,394.0625,311.0178571
+7031.811487,409.21875,322.75
+7031.811487,424.375,334.4910714
+7031.811487,439.53125,346.25
+7031.811487,454.6875,358.0178571
+7031.811487,469.84375,369.8035714
+7031.811487,485,381.6071429
+7355.375552,-485,-349.4821429
+7355.375552,-469.84375,-338.4196429
+7355.375552,-454.6875,-327.3303571
+7355.375552,-439.53125,-316.2410714
+7355.375552,-424.375,-305.125
+7355.375552,-409.21875,-294
+7355.375552,-394.0625,-282.8571429
+7355.375552,-378.90625,-271.6964286
+7355.375552,-363.75,-260.5267857
+7355.375552,-348.59375,-249.3392857
+7355.375552,-333.4375,-238.1428571
+7355.375552,-318.28125,-226.9196429
+7355.375552,-303.125,-215.6875
+7355.375552,-287.96875,-204.4464286
+7355.375552,-272.8125,-193.1785714
+7355.375552,-257.65625,-181.9017857
+7355.375552,-242.5,-170.6160714
+7355.375552,-227.34375,-159.3035714
+7355.375552,-212.1875,-147.9821429
+7355.375552,-197.03125,-136.6428571
+7355.375552,-181.875,-125.2946429
+7355.375552,-166.71875,-113.9285714
+7355.375552,-151.5625,-102.5446429
+7355.375552,-136.40625,-91.15178571
+7355.375552,-121.25,-79.7375
+7355.375552,-106.09375,-68.31071429
+7355.375552,-90.9375,-56.86875
+7355.375552,-75.78125,-45.41160714
+7355.375552,-60.625,-33.93928571
+7355.375552,-45.46875,-22.45267857
+7355.375552,-30.3125,-10.95
+7355.375552,-15.15625,0.581044643
+7355.375552,0,12.41339286
+7355.375552,15.15625,24.26160714
+7355.375552,30.3125,36.125
+7355.375552,45.46875,48.00357143
+7355.375552,60.625,59.89821429
+7355.375552,75.78125,71.80714286
+7355.375552,90.9375,83.73214286
+7355.375552,106.09375,95.66964286
+7355.375552,121.25,107.625
+7355.375552,136.40625,119.5982143
+7355.375552,151.5625,131.5803571
+7355.375552,166.71875,143.5803571
+7355.375552,181.875,155.5982143
+7355.375552,197.03125,167.6339286
+7355.375552,212.1875,179.6785714
+7355.375552,227.34375,191.7410714
+7355.375552,242.5,203.8214286
+7355.375552,257.65625,215.9107143
+7355.375552,272.8125,228.0178571
+7355.375552,287.96875,240.1428571
+7355.375552,303.125,252.2857143
+7355.375552,318.28125,264.4375
+7355.375552,333.4375,276.6071429
+7355.375552,348.59375,288.7946429
+7355.375552,363.75,300.9910714
+7355.375552,378.90625,313.2053571
+7355.375552,394.0625,325.4375
+7355.375552,409.21875,337.6875
+7355.375552,424.375,349.9464286
+7355.375552,439.53125,362.2232143
+7355.375552,454.6875,374.5178571
+7355.375552,469.84375,386.8214286
+7355.375552,485,399.1428571
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor.vemp b/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor.vemp
index e5743ea67b050646f310ac028e4a33ba630c8c6c..1df533f1edd2f7d944e7dd09f8fbe9da8197d383 100644
--- a/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor.vemp
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor.vemp
@@ -1,4 +1,4 @@
-n [rpm] , T_drive [Nm] , T_drag [Nm]
+n [rpm] , T_drive [Nm] , T_recuperation [Nm]
 0       , 401.07       , -401.07
 1600    , 401.07       , -401.07
 1665    , 401.07       , -401.07
diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor240kW.vemp b/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor240kW.vemp
index d5f1106f86d9de4590e718cbddfe5848057a1398..694f1894340578c273e6dddf9d5612aab11d218b 100644
--- a/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor240kW.vemp
+++ b/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor240kW.vemp
@@ -1,4 +1,4 @@
-n [rpm] , T_drive [Nm] , T_drag [Nm]
+n [rpm] , T_drive [Nm] , T_recuperation [Nm]
 0       , 802.14       , -802.14
 1600    , 802.14       , -802.14
 1665    , 802.14       , -802.14
diff --git a/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs b/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs
index b91024a86a71fbe70a97e6fcabe542e200e52389..8f469782f351c3e5e3f492965650b89bc79346d9 100644
--- a/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs
@@ -179,13 +179,14 @@ namespace TUGraz.VectoCore.Tests.Utils
 			return dao.CreateDriverData(engineeringJob.DriverInputData);
 		}
 
-		public static List<Tuple<PowertrainPosition, ElectricMotorData>> CreateElectricMotorData(string file, PowertrainPosition pos)
+		public static List<Tuple<PowertrainPosition, ElectricMotorData>> CreateElectricMotorData(string file, int count,
+			PowertrainPosition pos, double ratio, double efficiency)
 		{
 			var inputData = JSONInputDataFactory.ReadElectricMotorData(file, false);
 			return new EngineeringDataAdapter().CreateElectricMachines(new MockElectricMachinesInputData() {
 				Entries = new[] {
 					new ElectricMachineEntry<IElectricMotorEngineeringInputData>()
-						{ Count = 1, ElectricMachine = inputData, Position = pos }
+						{ Count = count, ElectricMachine = inputData, Position = pos, Ratio = ratio, MechanicalEfficiency = efficiency}
 				}
 			});
 		}
diff --git a/VectoCore/VectoCoreTest/Utils/MockVehicleContainer.cs b/VectoCore/VectoCoreTest/Utils/MockVehicleContainer.cs
index f602db41ea5927201c64f1cd3d1a9dbbbe6acec9..3db922ff62a785849db6ea95b2704520e34762fa 100644
--- a/VectoCore/VectoCoreTest/Utils/MockVehicleContainer.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockVehicleContainer.cs
@@ -385,6 +385,9 @@ namespace TUGraz.VectoCore.Tests.Utils
 			get { throw new NotImplementedException(); }
 		}
 
+		public bool HasElectricMotor { get; }
+		public PowertrainPosition[] ElectricMotorPositions { get; }
+
 		#endregion
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
index 1b94f1b0917d1a6093994a86f21911294491b662..2d6840cf78cd0f25ea42431958707d51900bc01a 100644
--- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj
+++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
@@ -240,6 +240,21 @@
       <SubType>Designer</SubType>
     </None>
     <None Include="default.runsettings" />
+    <None Include="TestData\BatteryElectric\GenericVehicleB4\GenericBattery_243kWh_750V.vbat">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\BatteryElectric\GenericVehicleB4\GenericDrag_125kW_485Nm.vemd">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\BatteryElectric\GenericVehicleB4\GenericEMotor_125kW_485Nm.vem">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\BatteryElectric\GenericVehicleB4\GenericEMotor_125kW_485Nm.vemp">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\BatteryElectric\GenericVehicleB4\GenericMap_125kW_485Nm.vemo">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
     <None Include="TestData\Components\AT_GBX\GearLossMap.vtlm">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>