From 5b3ea8545018d924ea9ba393a38310b54f534cdf Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Fri, 2 Sep 2016 15:36:34 +0200
Subject: [PATCH] Refactoring: renaming classes to fit naming conventions

---
 ...Global.vb => AdvancedAuxiliariesModule.vb} |    4 +-
 VECTO/ApplicationEvents.vb                    |   24 +-
 VECTO/Configuration.vb                        |    8 +-
 VECTO/CsvFile.vb                              |  144 +
 VECTO/File Browser/FB_Global.vb               |   45 -
 .../{cFileBrowser.vb => FileBrowser.vb}       |   18 +-
 ...igner.vb => FileBrowserDialog.designer.vb} |    6 +-
 ...{FB_Dialog.resx => FileBrowserDialog.resx} |    0
 .../{FB_Dialog.vb => FileBrowserDialog.vb}    |   67 +-
 ...=> FileBrowserFavoritesDialog.designer.vb} |    4 +-
 ...g.resx => FileBrowserFavoritesDialog.resx} |    0
 ...vDlog.vb => FileBrowserFavoritesDialog.vb} |    6 +-
 VECTO/File Browser/FileBrowserModule.vb       |   45 +
 ...utBox.Designer.vb => AboutBox.Designer.vb} |    4 +-
 VECTO/GUI/{F_AboutBox.resx => AboutBox.resx}  |    0
 VECTO/GUI/{F_AboutBox.vb => AboutBox.vb}      |    2 +-
 ...ENG.Designer.vb => EngineForm.Designer.vb} |    6 +-
 VECTO/GUI/{F_ENG.resx => EngineForm.resx}     |    0
 VECTO/GUI/{F_ENG.vb => EngineForm.vb}         | 1041 +++--
 ...Designer.vb => FileSignDialog.Designer.vb} |    6 +-
 .../{F_FileSign.resx => FileSignDialog.resx}  |    0
 .../GUI/{F_FileSign.vb => FileSignDialog.vb}  |    6 +-
 VECTO/GUI/GUI_Subs.vb                         |   72 +-
 ...BX.Designer.vb => GearboxForm.Designer.vb} | 2126 ++++-----
 VECTO/GUI/{F_GBX.resx => GearboxForm.resx}    |    0
 VECTO/GUI/{F_GBX.vb => GearboxForm.vb}        | 1966 ++++-----
 VECTO/GUI/GearboxGearDialog.vb                |    8 +-
 ....vb => GraphEditChannelDialog.Designer.vb} |    4 +-
 ...hEdit.resx => GraphEditChannelDialog.resx} |    0
 ...ph_ChEdit.vb => GraphEditChannelDialog.vb} |    2 +-
 ...raph.Designer.vb => GraphForm.Designer.vb} |    6 +-
 VECTO/GUI/{F_Graph.resx => GraphForm.resx}    |    0
 VECTO/GUI/{F_Graph.vb => GraphForm.vb}        | 1175 +++--
 ...IRA.Designer.vb => JiraDialog.Designer.vb} |    4 +-
 VECTO/GUI/{F_JIRA.resx => JiraDialog.resx}    |    0
 VECTO/GUI/{F_JIRA.vb => JiraDialog.vb}        |    2 +-
 ...NForm.Designer.vb => MainForm.Designer.vb} | 1806 ++++----
 VECTO/GUI/{F_MAINForm.resx => MainForm.resx}  |  608 +--
 VECTO/GUI/{F_MAINForm.vb => MainForm.vb}      | 3840 ++++++++---------
 ...tings.Designer.vb => Settings.Designer.vb} |  686 +--
 VECTO/GUI/{F_Settings.resx => Settings.resx}  |    0
 VECTO/GUI/{F_Settings.vb => Settings.vb}      |  170 +-
 ...O.Designer.vb => VectoJobForm.Designer.vb} | 2654 ++++++------
 VECTO/GUI/{F_VECTO.resx => VectoJobForm.resx} |    0
 VECTO/GUI/{F_VECTO.vb => VectoJobForm.vb}     | 2820 ++++++------
 ...b => VehicleAuxiliariesDialog.Designer.vb} |    4 +-
 ...log.resx => VehicleAuxiliariesDialog.resx} |    0
 ...AuxDlog.vb => VehicleAuxiliariesDialog.vb} |    4 +-
 ...igner.vb => VehicleAxleDialog.Designer.vb} |    4 +-
 ...F_VEH_Axle.resx => VehicleAxleDialog.resx} |    0
 .../{F_VEH_Axle.vb => VehicleAxleDialog.vb}   |    2 +-
 ...EH.Designer.vb => VehicleForm.Designer.vb} | 2170 +++++-----
 VECTO/GUI/{F_VEH.resx => VehicleForm.resx}    |    0
 VECTO/GUI/{F_VEH.vb => VehicleForm.vb}        | 1580 +++----
 ....Designer.vb => WelcomeDialog.Designer.vb} |    4 +-
 .../{F_Welcome.resx => WelcomeDialog.resx}    |    0
 VECTO/GUI/{F_Welcome.vb => WelcomeDialog.vb}  |   92 +-
 VECTO/Input Files/{cENG.vb => Engine.vb}      |  578 +--
 .../{cFLD.vb => EngineFullLoadCurve.vb}       | 1020 ++---
 .../{cMAP.vb => FuelconsumptionMap.vb}        |   60 +-
 VECTO/Input Files/{cGBX.vb => Gearbox.vb}     |  662 +--
 VECTO/Input Files/{cSubPath.vb => SubPath.vb} |  155 +-
 VECTO/Input Files/{cVECTO.vb => VectoJob.vb}  |   48 +-
 VECTO/Input Files/{cVEH.vb => Vehicle.vb}     |  570 +--
 VECTO/{cJSONparser.vb => JSONparser.vb}       |    2 +-
 VECTO/{M_MAIN.vb => MainModule.vb}            |  130 +-
 VECTO/My Project/Application.Designer.vb      |    2 +-
 VECTO/Resources/4x2r.png                      |  Bin 0 -> 2565 bytes
 VECTO/Resources/4x2rt.png                     |  Bin 0 -> 2929 bytes
 VECTO/Resources/4x2tt.png                     |  Bin 0 -> 3306 bytes
 VECTO/Resources/6x2r.png                      |  Bin 0 -> 3167 bytes
 VECTO/Resources/6x2rt.png                     |  Bin 0 -> 3337 bytes
 VECTO/Resources/6x2tt.png                     |  Bin 0 -> 3022 bytes
 VECTO/Resources/Undef.png                     |  Bin 0 -> 624 bytes
 VECTO/VECTO.vbproj                            |  186 +-
 VECTO/VECTO_Global.vb                         |   24 +-
 VECTO/VECTO_Types.vb                          |   23 +-
 VECTO/cFile V3.vb                             |  151 -
 78 files changed, 13391 insertions(+), 13465 deletions(-)
 rename VECTO/{mAAUX_Global.vb => AdvancedAuxiliariesModule.vb} (98%)
 create mode 100644 VECTO/CsvFile.vb
 delete mode 100644 VECTO/File Browser/FB_Global.vb
 rename VECTO/File Browser/{cFileBrowser.vb => FileBrowser.vb} (94%)
 rename VECTO/File Browser/{FB_Dialog.designer.vb => FileBrowserDialog.designer.vb} (99%)
 rename VECTO/File Browser/{FB_Dialog.resx => FileBrowserDialog.resx} (100%)
 rename VECTO/File Browser/{FB_Dialog.vb => FileBrowserDialog.vb} (93%)
 rename VECTO/File Browser/{FB_FavDlog.designer.vb => FileBrowserFavoritesDialog.designer.vb} (98%)
 rename VECTO/File Browser/{FB_FavDlog.resx => FileBrowserFavoritesDialog.resx} (100%)
 rename VECTO/File Browser/{FB_FavDlog.vb => FileBrowserFavoritesDialog.vb} (93%)
 create mode 100644 VECTO/File Browser/FileBrowserModule.vb
 rename VECTO/GUI/{F_AboutBox.Designer.vb => AboutBox.Designer.vb} (99%)
 rename VECTO/GUI/{F_AboutBox.resx => AboutBox.resx} (100%)
 rename VECTO/GUI/{F_AboutBox.vb => AboutBox.vb} (98%)
 rename VECTO/GUI/{F_ENG.Designer.vb => EngineForm.Designer.vb} (99%)
 rename VECTO/GUI/{F_ENG.resx => EngineForm.resx} (100%)
 rename VECTO/GUI/{F_ENG.vb => EngineForm.vb} (78%)
 rename VECTO/GUI/{F_FileSign.Designer.vb => FileSignDialog.Designer.vb} (99%)
 rename VECTO/GUI/{F_FileSign.resx => FileSignDialog.resx} (100%)
 rename VECTO/GUI/{F_FileSign.vb => FileSignDialog.vb} (97%)
 rename VECTO/GUI/{F_GBX.Designer.vb => GearboxForm.Designer.vb} (96%)
 rename VECTO/GUI/{F_GBX.resx => GearboxForm.resx} (100%)
 rename VECTO/GUI/{F_GBX.vb => GearboxForm.vb} (88%)
 rename VECTO/GUI/{F_Graph_ChEdit.Designer.vb => GraphEditChannelDialog.Designer.vb} (98%)
 rename VECTO/GUI/{F_Graph_ChEdit.resx => GraphEditChannelDialog.resx} (100%)
 rename VECTO/GUI/{F_Graph_ChEdit.vb => GraphEditChannelDialog.vb} (95%)
 rename VECTO/GUI/{F_Graph.Designer.vb => GraphForm.Designer.vb} (99%)
 rename VECTO/GUI/{F_Graph.resx => GraphForm.resx} (100%)
 rename VECTO/GUI/{F_Graph.vb => GraphForm.vb} (55%)
 rename VECTO/GUI/{F_JIRA.Designer.vb => JiraDialog.Designer.vb} (98%)
 rename VECTO/GUI/{F_JIRA.resx => JiraDialog.resx} (100%)
 rename VECTO/GUI/{F_JIRA.vb => JiraDialog.vb} (97%)
 rename VECTO/GUI/{F_MAINForm.Designer.vb => MainForm.Designer.vb} (97%)
 rename VECTO/GUI/{F_MAINForm.resx => MainForm.resx} (98%)
 rename VECTO/GUI/{F_MAINForm.vb => MainForm.vb} (85%)
 rename VECTO/GUI/{F_Settings.Designer.vb => Settings.Designer.vb} (96%)
 rename VECTO/GUI/{F_Settings.resx => Settings.resx} (100%)
 rename VECTO/GUI/{F_Settings.vb => Settings.vb} (95%)
 rename VECTO/GUI/{F_VECTO.Designer.vb => VectoJobForm.Designer.vb} (96%)
 rename VECTO/GUI/{F_VECTO.resx => VectoJobForm.resx} (100%)
 rename VECTO/GUI/{F_VECTO.vb => VectoJobForm.vb} (89%)
 rename VECTO/GUI/{F_VEH_AuxDlog.Designer.vb => VehicleAuxiliariesDialog.Designer.vb} (98%)
 rename VECTO/GUI/{F_VEH_AuxDlog.resx => VehicleAuxiliariesDialog.resx} (100%)
 rename VECTO/GUI/{F_VEH_AuxDlog.vb => VehicleAuxiliariesDialog.vb} (95%)
 rename VECTO/GUI/{F_VEH_Axle.Designer.vb => VehicleAxleDialog.Designer.vb} (99%)
 rename VECTO/GUI/{F_VEH_Axle.resx => VehicleAxleDialog.resx} (100%)
 rename VECTO/GUI/{F_VEH_Axle.vb => VehicleAxleDialog.vb} (98%)
 rename VECTO/GUI/{F_VEH.Designer.vb => VehicleForm.Designer.vb} (96%)
 rename VECTO/GUI/{F_VEH.resx => VehicleForm.resx} (100%)
 rename VECTO/GUI/{F_VEH.vb => VehicleForm.vb} (91%)
 rename VECTO/GUI/{F_Welcome.Designer.vb => WelcomeDialog.Designer.vb} (98%)
 rename VECTO/GUI/{F_Welcome.resx => WelcomeDialog.resx} (100%)
 rename VECTO/GUI/{F_Welcome.vb => WelcomeDialog.vb} (95%)
 rename VECTO/Input Files/{cENG.vb => Engine.vb} (92%)
 rename VECTO/Input Files/{cFLD.vb => EngineFullLoadCurve.vb} (88%)
 rename VECTO/Input Files/{cMAP.vb => FuelconsumptionMap.vb} (59%)
 rename VECTO/Input Files/{cGBX.vb => Gearbox.vb} (61%)
 rename VECTO/Input Files/{cSubPath.vb => SubPath.vb} (63%)
 rename VECTO/Input Files/{cVECTO.vb => VectoJob.vb} (89%)
 rename VECTO/Input Files/{cVEH.vb => Vehicle.vb} (89%)
 rename VECTO/{cJSONparser.vb => JSONparser.vb} (98%)
 rename VECTO/{M_MAIN.vb => MainModule.vb} (90%)
 create mode 100644 VECTO/Resources/4x2r.png
 create mode 100644 VECTO/Resources/4x2rt.png
 create mode 100644 VECTO/Resources/4x2tt.png
 create mode 100644 VECTO/Resources/6x2r.png
 create mode 100644 VECTO/Resources/6x2rt.png
 create mode 100644 VECTO/Resources/6x2tt.png
 create mode 100644 VECTO/Resources/Undef.png
 delete mode 100644 VECTO/cFile V3.vb

diff --git a/VECTO/mAAUX_Global.vb b/VECTO/AdvancedAuxiliariesModule.vb
similarity index 98%
rename from VECTO/mAAUX_Global.vb
rename to VECTO/AdvancedAuxiliariesModule.vb
index 9ad01ffd52..70f3617bb5 100644
--- a/VECTO/mAAUX_Global.vb
+++ b/VECTO/AdvancedAuxiliariesModule.vb
@@ -3,8 +3,8 @@ Imports VectoAuxiliaries
 Imports System.IO
 Imports System.Runtime.Remoting
 
-Module mAAUX_Global
-	Public WithEvents advancedAuxModel As IAdvancedAuxiliaries
+Module AdvancedAuxiliariesModule
+	Public WithEvents AdvancedAuxModel As IAdvancedAuxiliaries
 
 
 	Public Sub AAEventAuxiliaryEvent(ByRef sender As Object, ByVal message As String,
diff --git a/VECTO/ApplicationEvents.vb b/VECTO/ApplicationEvents.vb
index 44992b90aa..3870aa5b60 100644
--- a/VECTO/ApplicationEvents.vb
+++ b/VECTO/ApplicationEvents.vb
@@ -25,13 +25,13 @@ Namespace My
 
 			Dim s As String
 			Dim i As Int16
-			Dim file As cFile_V3
+			Dim file As CsvFile
 
 			'Paths
 			MyAppPath = Application.Info.DirectoryPath & "\"
 			MyConfPath = MyAppPath & "Config\"
 
-			FB_FilHisDir = MyConfPath & "FileHistory\"
+			FileHistoryPath = MyConfPath & "FileHistory\"
 
 			'Log
 			LogFile = New cLogFile
@@ -46,15 +46,15 @@ Namespace My
 					IO.Directory.CreateDirectory(MyConfPath)
 				Catch ex As Exception
 					MsgBox("Failed to create directory '" & MyConfPath & "'!", MsgBoxStyle.Critical)
-					LogFile.WriteToLog(tMsgID.Err, "Failed to create directory '" & MyConfPath & "'!")
+					LogFile.WriteToLog(MessageType.Err, "Failed to create directory '" & MyConfPath & "'!")
 					e.Cancel = True
 				End Try
 				IO.File.Create(MyConfPath & "joblist.txt")
 				IO.File.Create(MyConfPath & "cyclelist.txt")
 			End If
-			If Not IO.Directory.Exists(FB_FilHisDir) Then
+			If Not IO.Directory.Exists(FileHistoryPath) Then
 				Try
-					IO.Directory.CreateDirectory(FB_FilHisDir)
+					IO.Directory.CreateDirectory(FileHistoryPath)
 
 					'Preconfigure Directories.txt
 					Try
@@ -64,8 +64,8 @@ Namespace My
 					End Try
 					Try
 
-						file = New cFile_V3
-						file.OpenWrite(FB_FilHisDir & "Directories.txt")
+						file = New CsvFile
+						file.OpenWrite(FileHistoryPath & "Directories.txt")
 						file.WriteLine(s)
 						For i = 2 To 20
 							file.WriteLine(" ")
@@ -76,8 +76,8 @@ Namespace My
 					End Try
 
 				Catch ex As Exception
-					MsgBox("Failed to create directory '" & FB_FilHisDir & "'!", MsgBoxStyle.Critical)
-					LogFile.WriteToLog(tMsgID.Err, "Failed to create directory '" & FB_FilHisDir & "'!")
+					MsgBox("Failed to create directory '" & FileHistoryPath & "'!", MsgBoxStyle.Critical)
+					LogFile.WriteToLog(MessageType.Err, "Failed to create directory '" & FileHistoryPath & "'!")
 					e.Cancel = True
 				End Try
 			End If
@@ -89,7 +89,7 @@ Namespace My
 					Threading.Thread.CurrentThread.CurrentUICulture = New Globalization.CultureInfo("en-US")
 					'MSGtoForm(8, "Set CurrentCulture to 'en-US'", True)
 				Catch ex As Exception
-					GUImsg(tMsgID.Err,
+					GUImsg(MessageType.Err,
 							"Failed to set Application Regional Settings to 'en-US'! Check system decimal- and group- separators!")
 				End Try
 			End If
@@ -104,7 +104,7 @@ Namespace My
 			'ACHTUNG: Configuration.New löst Configuration.SetDefault aus welches sKey benötigt dehalb muss sKey schon vorher initialisiert werden!!
 			Cfg.FilePath = MyConfPath & "settings.json"
 
-			ProgBarCtrl = New cProgBarCtrl
+			ProgBarCtrl = New ProgressbarControl
 
 			'Config
 			Cfg.Load()
@@ -124,7 +124,7 @@ Namespace My
 			Handles Me.UnhandledException
 			e.ExitApplication = True
 			MsgBox("ERROR!" & ChrW(10) & ChrW(10) & e.Exception.Message.ToString, MsgBoxStyle.Critical, "Unexpected Error")
-			LogFile.WriteToLog(tMsgID.Err, ">>>Unexpected Error:" & e.Exception.ToString())
+			LogFile.WriteToLog(MessageType.Err, ">>>Unexpected Error:" & e.Exception.ToString())
 		End Sub
 	End Class
 End Namespace
diff --git a/VECTO/Configuration.vb b/VECTO/Configuration.vb
index bd176c1d3d..37a05ba474 100644
--- a/VECTO/Configuration.vb
+++ b/VECTO/Configuration.vb
@@ -60,9 +60,9 @@ Public Class Configuration
 			Exit Sub
 		End If
 
-		Dim json As New JSON
+		Dim json As New JSONParser
 		If Not json.ReadFile(FilePath) Then
-			GUImsg(tMsgID.Err, "Failed to load settings! Using default settings.")
+			GUImsg(MessageType.Err, "Failed to load settings! Using default settings.")
 			Exit Sub
 		End If
 
@@ -83,12 +83,12 @@ Public Class Configuration
 			FirstRun = json.Content("Body")("FirstRun")
 			DeclMode = json.Content("Body")("DeclMode")
 		Catch ex As Exception
-			GUImsg(tMsgID.Err, "Error while loading settings!")
+			GUImsg(MessageType.Err, "Error while loading settings!")
 		End Try
 	End Sub
 
 	Public Sub Save()
-		Dim json As New JSON
+		Dim json As New JSONParser
 		Dim dic As Dictionary(Of String, Object)
 
 		dic = New Dictionary(Of String, Object)
diff --git a/VECTO/CsvFile.vb b/VECTO/CsvFile.vb
new file mode 100644
index 0000000000..9e36ce1491
--- /dev/null
+++ b/VECTO/CsvFile.vb
@@ -0,0 +1,144 @@
+' Copyright 2014 European Union.
+' Licensed under the EUPL (the 'Licence');
+'
+' * You may not use this work except in compliance with the Licence.
+' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
+' * Unless required by applicable law or agreed to in writing,
+'   software distributed under the Licence is distributed on an "AS IS" basis,
+'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+'
+' See the LICENSE.txt for the specific language governing permissions and limitations.
+Imports System.IO
+Imports System.Text
+Imports Microsoft.VisualBasic.FileIO
+
+Public Class CsvFile
+	Private _parser As TextFieldParser
+	Private _writer As StreamWriter
+	Private _mode As FileMode
+	Private _path As String
+	Private _separator As String
+	Private _skipComments As Boolean
+	Private _fileOpen As Boolean
+	Private _preLine As String()
+	Private _endOfFile As Boolean
+
+	Public Sub New()
+		Reset()
+	End Sub
+
+	Private Sub Reset()
+		_fileOpen = False
+		_mode = FileMode.Undefined
+		_preLine = Nothing
+		_endOfFile = False
+	End Sub
+
+	Public Function OpenRead(ByVal fileName As String, Optional ByVal separator As String = ",",
+							Optional ByVal skipComment As Boolean = True) As Boolean
+		Reset()
+
+		_path = fileName
+		_separator = separator
+		_skipComments = skipComment
+		If Not (_mode = FileMode.Undefined) Then Return False
+		If Not File.Exists(_path) Then Return False
+		_mode = FileMode.Read
+		Try
+			_parser = New TextFieldParser(_path, Encoding.Default)
+			_fileOpen = True
+		Catch ex As Exception
+			Return False
+		End Try
+		_parser.TextFieldType = FieldType.Delimited
+		_parser.Delimiters = New String() {_separator}
+
+		'If TxtFldParser.EndOfData Then Return False
+
+		ReadLine()
+		Return True
+	End Function
+
+	Public Function ReadLine() As String()
+		Dim line As String()
+		Dim line0 As String
+
+		line = _preLine
+
+lb10:
+		If _parser.EndOfData Then
+			_endOfFile = True
+		Else
+			_preLine = _parser.ReadFields
+			line0 = UCase(Trim(_preLine(0)))
+
+			If _skipComments Then
+				If Left(line0, 1) = "#" Then GoTo lb10
+			End If
+
+		End If
+
+		Return line
+	End Function
+
+	Public Sub Close()
+		Select Case _mode
+			Case FileMode.Read
+				If _fileOpen Then _parser.Close()
+				_parser = Nothing
+			Case FileMode.Write
+				If _fileOpen Then _writer.Close()
+				_writer = Nothing
+		End Select
+		Reset()
+	End Sub
+
+	Public ReadOnly Property EndOfFile() As Boolean
+		Get
+			Return _endOfFile
+		End Get
+	End Property
+
+	Public Function OpenWrite(ByVal FileName As String, Optional ByVal Separator As String = ",",
+							Optional ByVal AutoFlush As Boolean = False, Optional ByVal Append As Boolean = False) As Boolean
+		Reset()
+		_path = FileName
+		_separator = Separator
+		If Not (_mode = FileMode.Undefined) Then Return False
+		_mode = FileMode.Write
+		Try
+			_writer = My.Computer.FileSystem.OpenTextFileWriter(_path, Append, FileFormat)
+			_fileOpen = True
+		Catch ex As Exception
+			Return False
+		End Try
+		_writer.AutoFlush = AutoFlush
+		Return True
+	End Function
+
+	Public Sub WriteLine(ByVal ParamArray x() As Object)
+		Dim St As String
+		Dim StB As New StringBuilder
+		Dim Skip As Boolean
+		Skip = True
+		For Each St In x
+			If Skip Then
+				StB.Append(St)
+				Skip = False
+			Else
+				StB.Append(_separator & St)
+			End If
+		Next
+		_writer.WriteLine(StB.ToString)
+	End Sub
+
+	Public Sub WriteLine(ByVal x As String)
+		_writer.WriteLine(x)
+	End Sub
+
+	Private Enum FileMode
+		Undefined
+		Read
+		Write
+	End Enum
+End Class
diff --git a/VECTO/File Browser/FB_Global.vb b/VECTO/File Browser/FB_Global.vb
deleted file mode 100644
index b469ad3852..0000000000
--- a/VECTO/File Browser/FB_Global.vb	
+++ /dev/null
@@ -1,45 +0,0 @@
-' Copyright 2014 European Union.
-' Licensed under the EUPL (the 'Licence');
-'
-' * You may not use this work except in compliance with the Licence.
-' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
-' * Unless required by applicable law or agreed to in writing,
-'   software distributed under the Licence is distributed on an "AS IS" basis,
-'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-'
-' See the LICENSE.txt for the specific language governing permissions and limitations.
-
-''' <summary>
-''' Global File Brower properties and cFilebrowser instances.
-''' </summary>
-''' <remarks></remarks>
-Public Module FB_Global
-	Public FB_FolderHistory(19) As String
-	Public FB_Drives() As String
-	Public FB_Init As Boolean
-	Public FB_FilHisDir As String
-	'-----------------------------
-	Public fbFolder As cFileBrowser
-	Public fbVECTO As cFileBrowser
-	Public fbFileLists As cFileBrowser
-	Public fbVEH As cFileBrowser
-	Public fbDRI As cFileBrowser
-	Public fbMAP As cFileBrowser
-	Public fbFLD As cFileBrowser
-
-	Public fbENG As cFileBrowser
-	Public fbGBX As cFileBrowser
-	Public fbACC As cFileBrowser
-	Public fbDfTargetSpeed As cFileBrowser
-	Public fbDfVelocityDrop As cFileBrowser
-	Public fbAUX As cFileBrowser
-
-	Public fbGBS As cFileBrowser
-	Public fbTLM As cFileBrowser
-	Public fbRLM As cFileBrowser
-	Public fbTCC As cFileBrowser
-	Public fbTCCShift As cFileBrowser
-	Public fbCDx As cFileBrowser
-
-	Public fbVMOD As cFileBrowser
-End Module
diff --git a/VECTO/File Browser/cFileBrowser.vb b/VECTO/File Browser/FileBrowser.vb
similarity index 94%
rename from VECTO/File Browser/cFileBrowser.vb
rename to VECTO/File Browser/FileBrowser.vb
index a33af6d538..6b7fbda483 100644
--- a/VECTO/File Browser/cFileBrowser.vb	
+++ b/VECTO/File Browser/FileBrowser.vb	
@@ -20,14 +20,14 @@
 '''  4. Call Close method when closing application to write file history, e.g. fbTXT.Close 
 ''' File history is unique for each ID. Folder history is global.
 ''' </remarks>
-Public Class cFileBrowser
+Public Class FileBrowser
 	Private Initialized As Boolean
-	Private MyID As String
+	Private ReadOnly MyID As String
 	Private MyExt As String()
-	Private Dlog As FB_Dialog
+	Private Dlog As FileBrowserDialog
 	Private NoExt As Boolean
-	Private bFolderBrowser As Boolean
-	Private bLightMode As Boolean
+	Private ReadOnly bFolderBrowser As Boolean
+	Private ReadOnly bLightMode As Boolean
 
 	''' <summary>
 	''' New cFileBrowser instance
@@ -74,7 +74,7 @@ Public Class cFileBrowser
 		Else
 			x = tFbExtMode.SingleExt
 		End If
-		Return CustomDialog(path, False, True, x, False, Ext, "Save As")
+		Return CustomDialog(path, False, True, x, False, ext, "Save As")
 	End Function
 
 	''' <summary>
@@ -92,7 +92,7 @@ Public Class cFileBrowser
 	Public Function CustomDialog(path As String, fileMustExist As Boolean, overwriteCheck As Boolean, extMode As tFbExtMode,
 								multiFile As Boolean, ext As String, Optional title As String = "File Browser") As Boolean
 		If Not Initialized Then Init()
-		Return Dlog.Browse(path, fileMustExist, overwriteCheck, extMode, multiFile, Ext, title)
+		Return Dlog.Browse(path, fileMustExist, overwriteCheck, extMode, multiFile, ext, title)
 	End Function
 
 	'Manually update File History
@@ -103,7 +103,7 @@ Public Class cFileBrowser
 	''' <remarks></remarks>
 	Public Sub UpdateHistory(path As String)
 		If Not Initialized Then Init()
-		Dlog.UpdateHistory(Path)
+		Dlog.UpdateHistory(path)
 	End Sub
 
 	''' <summary>
@@ -119,7 +119,7 @@ Public Class cFileBrowser
 	End Sub
 
 	Private Sub Init()
-		Dlog = New FB_Dialog(bLightMode)
+		Dlog = New FileBrowserDialog(bLightMode)
 		Dlog.ID = MyID
 		If Not NoExt Then Dlog.Extensions = MyExt
 		If bFolderBrowser Then Dlog.SetFolderBrowser()
diff --git a/VECTO/File Browser/FB_Dialog.designer.vb b/VECTO/File Browser/FileBrowserDialog.designer.vb
similarity index 99%
rename from VECTO/File Browser/FB_Dialog.designer.vb
rename to VECTO/File Browser/FileBrowserDialog.designer.vb
index fb94a27048..606eed1f37 100644
--- a/VECTO/File Browser/FB_Dialog.designer.vb	
+++ b/VECTO/File Browser/FileBrowserDialog.designer.vb	
@@ -12,7 +12,7 @@ Imports System.ComponentModel
 Imports Microsoft.VisualBasic.CompilerServices
 
 <DesignerGenerated()> _
-Partial Class FB_Dialog
+Partial Class FileBrowserDialog
 	Inherits Form
 
 	'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
@@ -36,7 +36,7 @@ Partial Class FB_Dialog
 	<DebuggerStepThrough()> _
 	Private Sub InitializeComponent()
 		Me.components = New Container()
-		Dim resources As ComponentResourceManager = New ComponentResourceManager(GetType(FB_Dialog))
+		Dim resources As ComponentResourceManager = New ComponentResourceManager(GetType(FileBrowserDialog))
 		Me.SplitContainer1 = New SplitContainer()
 		Me.Label1 = New Label()
 		Me.ButtonNewDir = New Button()
@@ -405,7 +405,7 @@ Partial Class FB_Dialog
 		Me.Controls.Add(Me.SplitContainer1)
 		Me.MinimizeBox = False
 		Me.MinimumSize = New Size(341, 272)
-		Me.Name = "FB_Dialog"
+		Me.Name = "FileBrowserDialog"
 		Me.ShowIcon = False
 		Me.ShowInTaskbar = False
 		Me.StartPosition = FormStartPosition.CenterParent
diff --git a/VECTO/File Browser/FB_Dialog.resx b/VECTO/File Browser/FileBrowserDialog.resx
similarity index 100%
rename from VECTO/File Browser/FB_Dialog.resx
rename to VECTO/File Browser/FileBrowserDialog.resx
diff --git a/VECTO/File Browser/FB_Dialog.vb b/VECTO/File Browser/FileBrowserDialog.vb
similarity index 93%
rename from VECTO/File Browser/FB_Dialog.vb
rename to VECTO/File Browser/FileBrowserDialog.vb
index 5b084d362c..b1498f0eea 100644
--- a/VECTO/File Browser/FB_Dialog.vb	
+++ b/VECTO/File Browser/FileBrowserDialog.vb	
@@ -19,7 +19,7 @@ Imports System.Runtime.InteropServices
 ''' <summary>
 ''' File Browser dialog. Entirely controlled by cFilebrowser class.
 ''' </summary>
-Public Class FB_Dialog
+Public Class FileBrowserDialog
 	Private _myFolder As String
 	Private _myFiles() As String
 	Private _myDrive As String
@@ -192,10 +192,10 @@ Public Class FB_Dialog
 
 		'Load Folder History ContextMenu
 		For x = 0 To 9
-			ContextMenuHisFolder.Items(x).Text = FB_FolderHistory(x)
+			ContextMenuHisFolder.Items(x).Text = FileBrowserFolderHistory(x)
 		Next
 		For x = 10 To 19
-			ContextMenuHisFolder.Items(x + 1).Text = FB_FolderHistory(x)
+			ContextMenuHisFolder.Items(x + 1).Text = FileBrowserFolderHistory(x)
 		Next
 
 		'Options
@@ -239,7 +239,7 @@ Public Class FB_Dialog
 
 		'Define Path
 		'   If no path is specified: Last folder, no file name
-		If path = "" Then path = FB_FolderHistory(0)
+		If path = "" Then path = FileBrowserFolderHistory(0)
 
 		'   If path-length too small  (Path is invalid): Last File
 		If path.Length < 2 Then path = _lastFile
@@ -247,10 +247,10 @@ Public Class FB_Dialog
 		'Open Folder - If no folder in the path: Last folder
 		If fPATH(path) = "" Then
 			'If given a file without path
-			If Trim(FB_FolderHistory(0)) = "" Then
+			If Trim(FileBrowserFolderHistory(0)) = "" Then
 				SetFolder("C:\")
 			Else
-				SetFolder(FB_FolderHistory(0))
+				SetFolder(FileBrowserFolderHistory(0))
 			End If
 		Else
 			'...Otherwise:
@@ -277,10 +277,10 @@ Public Class FB_Dialog
 			End If
 			'Update Global History Folder
 			For x = 0 To 9
-				FB_FolderHistory(x) = ContextMenuHisFolder.Items(x).Text
+				FileBrowserFolderHistory(x) = ContextMenuHisFolder.Items(x).Text
 			Next
 			For x = 10 To 19
-				FB_FolderHistory(x) = ContextMenuHisFolder.Items(x + 1).Text
+				FileBrowserFolderHistory(x) = ContextMenuHisFolder.Items(x + 1).Text
 			Next
 			Return True
 		Else
@@ -293,23 +293,23 @@ Public Class FB_Dialog
 	'Close and save File / Folder History
 	Public Sub SaveAndClose()
 		'Folder History
-		If FB_Init Then
+		If FileBrowserFolderHistoryIninialized Then
 			Try
-				Dim f = My.Computer.FileSystem.OpenTextFileWriter(FB_FilHisDir & "Directories.txt", False, Encoding.UTF8)
+				Dim f = My.Computer.FileSystem.OpenTextFileWriter(FileHistoryPath & "Directories.txt", False, Encoding.UTF8)
 				For x = 0 To 19
-					f.WriteLine(FB_FolderHistory(x))
+					f.WriteLine(FileBrowserFolderHistory(x))
 				Next
 				f.Close()
 				f.Dispose()
 			Catch ex As Exception
 			End Try
-			FB_Init = False
+			FileBrowserFolderHistoryIninialized = False
 		End If
 		'File History
 		If _initialized And Not _bLightMode Then
 			If Not _bBrowseFolder Then
 				Try
-					Dim f = My.Computer.FileSystem.OpenTextFileWriter(FB_FilHisDir & _myId & ".txt", False, Encoding.UTF8)
+					Dim f = My.Computer.FileSystem.OpenTextFileWriter(FileHistoryPath & _myId & ".txt", False, Encoding.UTF8)
 					For x = 0 To 9
 						f.WriteLine(ContextMenuHisFile.Items(x).Text)
 					Next
@@ -343,11 +343,11 @@ Public Class FB_Dialog
 		_updateLock = True
 
 		'Initialization for Global File Browser
-		If Not FB_Init Then GlobalInit()
+		If Not FileBrowserFolderHistoryIninialized Then GlobalInit()
 
 		'Load Drive ComboBox
-		For x = 0 To UBound(FB_Drives)
-			ComboBoxDrive.Items.Add(FB_Drives(x))
+		For x = 0 To UBound(Drives)
+			ComboBoxDrive.Items.Add(Drives(x))
 		Next
 
 		'FolderHistory ContextMenu
@@ -364,13 +364,13 @@ Public Class FB_Dialog
 
 		'FileHistory ContextMenu
 		If _bBrowseFolder Then
-			_lastFile = FB_FolderHistory(0)
+			_lastFile = FileBrowserFolderHistory(0)
 		ElseIf Not _bLightMode Then
 			For x = 0 To 9
 				ContextMenuHisFile.Items.Add("")
 			Next
-			If File.Exists(FB_FilHisDir & _myId & ".txt") Then
-				Dim f = New StreamReader(FB_FilHisDir & _myId & ".txt")
+			If File.Exists(FileHistoryPath & _myId & ".txt") Then
+				Dim f = New StreamReader(FileHistoryPath & _myId & ".txt")
 				Dim x = -1
 				Do While Not f.EndOfStream And x < 9
 					x += 1
@@ -404,29 +404,29 @@ Public Class FB_Dialog
 	Private Sub GlobalInit()
 
 		'Create Drive List
-		ReDim FB_Drives(UBound(Directory.GetLogicalDrives()))
+		ReDim Drives(UBound(Directory.GetLogicalDrives()))
 		Dim x = -1
 		For Each drive In Directory.GetLogicalDrives()
 			x += 1
-			FB_Drives(x) = Microsoft.VisualBasic.Left(drive, 2)
+			Drives(x) = Microsoft.VisualBasic.Left(drive, 2)
 		Next
 
 		'Read Folder History
 		For x = 0 To 19
-			FB_FolderHistory(x) = EmptyText
+			FileBrowserFolderHistory(x) = EmptyText
 		Next
-		If File.Exists(FB_FilHisDir & "Directories.txt") Then
-			Dim f = New StreamReader(FB_FilHisDir & "Directories.txt")
+		If File.Exists(FileHistoryPath & "Directories.txt") Then
+			Dim f = New StreamReader(FileHistoryPath & "Directories.txt")
 			x = -1
 			Do While Not f.EndOfStream And x < 19
 				x += 1
-				FB_FolderHistory(x) = f.ReadLine()
+				FileBrowserFolderHistory(x) = f.ReadLine()
 			Loop
 			f.Dispose()
 			f.Close()
 		End If
 
-		FB_Init = True
+		FileBrowserFolderHistoryIninialized = True
 	End Sub
 
 	'ComboBoxDrive_SelectedIndexChanged
@@ -641,16 +641,16 @@ Public Class FB_Dialog
 		If path = EmptyText Then Exit Sub
 
 		If path = FavText Then
-			Dim favdlog = New FB_FavDlog
+			Dim favdlog = New FileBrowserFavoritesDialog
 			If favdlog.ShowDialog(Me) = DialogResult.OK Then
 				For x = 10 To 19
 					path = favdlog.ListBox1.Items(x - 10)
 					If path = NoFavString Then
-						FB_FolderHistory(x) = EmptyText
+						FileBrowserFolderHistory(x) = EmptyText
 					Else
-						FB_FolderHistory(x) = path
+						FileBrowserFolderHistory(x) = path
 					End If
-					ContextMenuHisFolder.Items(x + 1).Text = FB_FolderHistory(x)
+					ContextMenuHisFolder.Items(x + 1).Text = FileBrowserFolderHistory(x)
 				Next
 			End If
 		Else
@@ -711,12 +711,12 @@ Public Class FB_Dialog
 		path = fPATH(path)
 		Dim x As Integer
 		For x = 0 To 8
-			If UCase(FB_FolderHistory(x)) = UCase(path) Then Exit For
+			If UCase(FileBrowserFolderHistory(x)) = UCase(path) Then Exit For
 		Next
 		For y = x To 1 Step -1
-			FB_FolderHistory(y) = FB_FolderHistory(y - 1)
+			FileBrowserFolderHistory(y) = FileBrowserFolderHistory(y - 1)
 		Next
-		FB_FolderHistory(0) = path
+		FileBrowserFolderHistory(0) = path
 	End Sub
 
 	'Change folder
@@ -949,4 +949,3 @@ lb10:
 End Class
 
 
-
diff --git a/VECTO/File Browser/FB_FavDlog.designer.vb b/VECTO/File Browser/FileBrowserFavoritesDialog.designer.vb
similarity index 98%
rename from VECTO/File Browser/FB_FavDlog.designer.vb
rename to VECTO/File Browser/FileBrowserFavoritesDialog.designer.vb
index 2486082918..4f768bb217 100644
--- a/VECTO/File Browser/FB_FavDlog.designer.vb	
+++ b/VECTO/File Browser/FileBrowserFavoritesDialog.designer.vb	
@@ -13,7 +13,7 @@ Imports Microsoft.VisualBasic.CompilerServices
 
 
 <DesignerGenerated()> _
-Partial Class FB_FavDlog
+Partial Class FileBrowserFavoritesDialog
 	Inherits Form
 
 	'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
@@ -113,7 +113,7 @@ Partial Class FB_FavDlog
 		Me.MaximumSize = New Size(5000, 242)
 		Me.MinimizeBox = False
 		Me.MinimumSize = New Size(0, 242)
-		Me.Name = "FB_FavDlog"
+		Me.Name = "FileBrowserFavoritesDialog"
 		Me.ShowIcon = False
 		Me.ShowInTaskbar = False
 		Me.StartPosition = FormStartPosition.CenterParent
diff --git a/VECTO/File Browser/FB_FavDlog.resx b/VECTO/File Browser/FileBrowserFavoritesDialog.resx
similarity index 100%
rename from VECTO/File Browser/FB_FavDlog.resx
rename to VECTO/File Browser/FileBrowserFavoritesDialog.resx
diff --git a/VECTO/File Browser/FB_FavDlog.vb b/VECTO/File Browser/FileBrowserFavoritesDialog.vb
similarity index 93%
rename from VECTO/File Browser/FB_FavDlog.vb
rename to VECTO/File Browser/FileBrowserFavoritesDialog.vb
index 116a75efa6..8f5dc72711 100644
--- a/VECTO/File Browser/FB_FavDlog.vb	
+++ b/VECTO/File Browser/FileBrowserFavoritesDialog.vb	
@@ -17,13 +17,13 @@ Imports System.Windows.Forms
 ''' Sub-dialog for File Browser. Entirely controlled by cFilebrowser class (via FB_Dialog).
 ''' </summary>
 ''' <remarks></remarks>
-Public Class FB_FavDlog
+Public Class FileBrowserFavoritesDialog
 	Private Const NoFavString As String = "<empty favorite slot>"
 	Private Const EmptyText As String = " "
 
 	Private Sub FB_FavDlog_Load(sender As Object, e As EventArgs) Handles Me.Load
 		For x = 10 To 19
-			Dim txt = FB_FolderHistory(x)
+			Dim txt = FileBrowserFolderHistory(x)
 			If txt = EmptyText Then
 				ListBox1.Items.Add(NoFavString)
 			Else
@@ -48,7 +48,7 @@ Public Class FB_FavDlog
 
 		If txt = NoFavString Then txt = ""
 
-		Dim fb = New cFileBrowser("DirBr", True, True)
+		Dim fb = New FileBrowser("DirBr", True, True)
 
 		If fb.OpenDialog(txt) Then
 			txt = fb.Files(0)
diff --git a/VECTO/File Browser/FileBrowserModule.vb b/VECTO/File Browser/FileBrowserModule.vb
new file mode 100644
index 0000000000..b3e0756b56
--- /dev/null
+++ b/VECTO/File Browser/FileBrowserModule.vb	
@@ -0,0 +1,45 @@
+' Copyright 2014 European Union.
+' Licensed under the EUPL (the 'Licence');
+'
+' * You may not use this work except in compliance with the Licence.
+' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
+' * Unless required by applicable law or agreed to in writing,
+'   software distributed under the Licence is distributed on an "AS IS" basis,
+'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+'
+' See the LICENSE.txt for the specific language governing permissions and limitations.
+
+''' <summary>
+''' Global File Brower properties and cFilebrowser instances.
+''' </summary>
+''' <remarks></remarks>
+Public Module FileBrowserModule
+	Public ReadOnly FileBrowserFolderHistory(19) As String
+	Public Drives() As String
+	Public FileBrowserFolderHistoryIninialized As Boolean
+	Public FileHistoryPath As String
+	'-----------------------------
+	Public FolderFileBrowser As FileBrowser
+	Public JobfileFileBrowser As FileBrowser
+	Public TextFileBrowser As FileBrowser
+	Public VehicleFileBrowser As FileBrowser
+	Public DrivingCycleFileBrowser As FileBrowser
+	Public FuelConsumptionMapFileBrowser As FileBrowser
+	Public FullLoadCurveFileBrowser As FileBrowser
+
+	Public EngineFileBrowser As FileBrowser
+	Public GearboxFileBrowser As FileBrowser
+	Public DriverAccelerationFileBrowser As FileBrowser
+	Public DriverDecisionFactorTargetSpeedFileBrowser As FileBrowser
+	Public DriverDecisionFactorVelocityDropFileBrowser As FileBrowser
+	Public AuxFileBrowser As FileBrowser
+
+	Public GearboxShiftPolygonFileBrowser As FileBrowser
+	Public TransmissionLossMapFileBrowser As FileBrowser
+	Public RetarderLossMapFileBrowser As FileBrowser
+	Public TorqueConverterFileBrowser As FileBrowser
+	Public fbTCCShift As FileBrowser
+	Public fbCDx As FileBrowser
+
+	Public ModalResultsFileBrowser As FileBrowser
+End Module
diff --git a/VECTO/GUI/F_AboutBox.Designer.vb b/VECTO/GUI/AboutBox.Designer.vb
similarity index 99%
rename from VECTO/GUI/F_AboutBox.Designer.vb
rename to VECTO/GUI/AboutBox.Designer.vb
index 316c30ef5f..fa8e20b654 100644
--- a/VECTO/GUI/F_AboutBox.Designer.vb
+++ b/VECTO/GUI/AboutBox.Designer.vb
@@ -13,7 +13,7 @@ Imports Microsoft.VisualBasic.CompilerServices
 Imports TUGraz.VECTO.My.Resources
 
 <DesignerGenerated()> _
-Partial Class F_AboutBox
+Partial Class AboutBox
 	Inherits Form
 
 	'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
@@ -191,7 +191,7 @@ Partial Class F_AboutBox
 		Me.Controls.Add(Me.Label2)
 		Me.Controls.Add(Me.Label8)
 		Me.FormBorderStyle = FormBorderStyle.FixedToolWindow
-		Me.Name = "F_AboutBox"
+		Me.Name = "AboutBox"
 		Me.StartPosition = FormStartPosition.CenterParent
 		Me.Text = "About VECTO"
 		Me.Panel1.ResumeLayout(False)
diff --git a/VECTO/GUI/F_AboutBox.resx b/VECTO/GUI/AboutBox.resx
similarity index 100%
rename from VECTO/GUI/F_AboutBox.resx
rename to VECTO/GUI/AboutBox.resx
diff --git a/VECTO/GUI/F_AboutBox.vb b/VECTO/GUI/AboutBox.vb
similarity index 98%
rename from VECTO/GUI/F_AboutBox.vb
rename to VECTO/GUI/AboutBox.vb
index f171627c9d..a6aeb1e60f 100644
--- a/VECTO/GUI/F_AboutBox.vb
+++ b/VECTO/GUI/AboutBox.vb
@@ -14,7 +14,7 @@
 ''' About Dialog. Shows Licence and contact/support information
 ''' </summary>
 ''' <remarks></remarks>
-Public Class F_AboutBox
+Public Class AboutBox
 	'Initialize
 	Private Sub F10_AboutBox_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
 		Text = "VECTO " & VECTOvers & " / VectoCore " & COREvers
diff --git a/VECTO/GUI/F_ENG.Designer.vb b/VECTO/GUI/EngineForm.Designer.vb
similarity index 99%
rename from VECTO/GUI/F_ENG.Designer.vb
rename to VECTO/GUI/EngineForm.Designer.vb
index afa948e1f6..c8374d87ab 100644
--- a/VECTO/GUI/F_ENG.Designer.vb
+++ b/VECTO/GUI/EngineForm.Designer.vb
@@ -12,7 +12,7 @@ Imports System.ComponentModel
 Imports Microsoft.VisualBasic.CompilerServices
 
 <DesignerGenerated()> _
-Partial Class F_ENG
+Partial Class EngineForm
 	Inherits Form
 
 	'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
@@ -36,7 +36,7 @@ Partial Class F_ENG
 	<DebuggerStepThrough()> _
 	Private Sub InitializeComponent()
 		Me.components = New Container()
-		Dim resources As ComponentResourceManager = New ComponentResourceManager(GetType(F_ENG))
+		Dim resources As ComponentResourceManager = New ComponentResourceManager(GetType(EngineForm))
 		Me.TbNleerl = New TextBox()
 		Me.Label11 = New Label()
 		Me.TbInertia = New TextBox()
@@ -537,7 +537,7 @@ Partial Class F_ENG
 		Me.FormBorderStyle = FormBorderStyle.FixedSingle
 		Me.Icon = CType(resources.GetObject("$this.Icon"), Icon)
 		Me.MaximizeBox = False
-		Me.Name = "F_ENG"
+		Me.Name = "EngineForm"
 		Me.StartPosition = FormStartPosition.CenterParent
 		Me.Text = "F_ENG"
 		Me.ToolStrip1.ResumeLayout(False)
diff --git a/VECTO/GUI/F_ENG.resx b/VECTO/GUI/EngineForm.resx
similarity index 100%
rename from VECTO/GUI/F_ENG.resx
rename to VECTO/GUI/EngineForm.resx
diff --git a/VECTO/GUI/F_ENG.vb b/VECTO/GUI/EngineForm.vb
similarity index 78%
rename from VECTO/GUI/F_ENG.vb
rename to VECTO/GUI/EngineForm.vb
index 27df8b7a10..98fa44ac6c 100644
--- a/VECTO/GUI/F_ENG.vb
+++ b/VECTO/GUI/EngineForm.vb
@@ -1,521 +1,520 @@
-
-Imports System.Drawing.Imaging
-Imports System.IO
-Imports System.Text.RegularExpressions
-Imports System.Windows.Forms.DataVisualization.Charting
-Imports System.Xml.Linq
-Imports TUGraz.VectoCommon.Models
-Imports TUGraz.VectoCommon.Utils
-Imports TUGraz.VectoCore.Models.Declaration
-' Copyright 2014 European Union.
-' Licensed under the EUPL (the 'Licence');
-'
-' * You may not use this work except in compliance with the Licence.
-' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
-' * Unless required by applicable law or agreed to in writing,
-'   software distributed under the Licence is distributed on an "AS IS" basis,
-'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-'
-' See the LICENSE.txt for the specific language governing permissions and limitations.
-
-''' <summary>
-''' Engine Editor. Open and save .VENG files.
-''' </summary>
-''' <remarks></remarks>
-Public Class F_ENG
-	Private EngFile As String = ""
-	Public AutoSendTo As Boolean = False
-	Public JobDir As String = ""
-	Private Changed As Boolean = False
-
-
-	'Before closing Editor: Check if file was changed and ask to save.
-	Private Sub F_ENG_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
-		If e.CloseReason <> CloseReason.ApplicationExitCall And e.CloseReason <> CloseReason.WindowsShutDown Then
-			e.Cancel = ChangeCheckCancel()
-		End If
-	End Sub
-
-	'Initialise.
-	Private Sub F_ENG_Load(sender As Object, e As EventArgs) Handles Me.Load
-
-		PnInertia.Enabled = Not Cfg.DeclMode
-		GrWHTC.Enabled = Cfg.DeclMode
-
-
-		Changed = False
-		newENG()
-	End Sub
-
-	'Set generic values for Declaration mode.
-	Private Sub DeclInit()
-
-		If Not Cfg.DeclMode Then Exit Sub
-
-		TbInertia.Text =
-			CStr(
-				DeclarationData.Engine.EngineInertia((fTextboxToNumString(TbDispl.Text) / 1000.0).SI(Of CubicMeter),
-													GearboxType.AMT).Value())
-	End Sub
-
-
-#Region "Toolbar"
-
-	Private Sub ToolStripBtNew_Click(sender As Object, e As EventArgs) Handles ToolStripBtNew.Click
-		newENG()
-	End Sub
-
-	Private Sub ToolStripBtOpen_Click(sender As Object, e As EventArgs) Handles ToolStripBtOpen.Click
-		If fbENG.OpenDialog(EngFile) Then openENG(fbENG.Files(0))
-	End Sub
-
-	Private Sub ToolStripBtSave_Click(sender As Object, e As EventArgs) Handles ToolStripBtSave.Click
-		SaveOrSaveAs(False)
-	End Sub
-
-	Private Sub ToolStripBtSaveAs_Click(sender As Object, e As EventArgs) Handles ToolStripBtSaveAs.Click
-		SaveOrSaveAs(True)
-	End Sub
-
-	Private Sub ToolStripBtSendTo_Click(sender As Object, e As EventArgs) Handles ToolStripBtSendTo.Click
-
-		If ChangeCheckCancel() Then Exit Sub
-
-		If EngFile = "" Then
-			If MsgBox("Save file now?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
-				If Not SaveOrSaveAs(True) Then Exit Sub
-			Else
-				Exit Sub
-			End If
-		End If
-
-		If Not F_VECTO.Visible Then
-			JobDir = ""
-			F_VECTO.Show()
-			F_VECTO.VECTOnew()
-		Else
-			F_VECTO.WindowState = FormWindowState.Normal
-		End If
-
-		F_VECTO.TbENG.Text = fFileWoDir(EngFile, JobDir)
-	End Sub
-
-	Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
-		If File.Exists(MyAppPath & "User Manual\help.html") Then
-			Dim BrowserRegistryString As String =
-					My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString
-			Dim DefaultBrowserPath As String =
-					Regex.Match(BrowserRegistryString, "(\"".*?\"")").Captures(0).ToString
-			Process.Start(DefaultBrowserPath,
-						String.Format("""{0}{1}""", MyAppPath, "User Manual\help.html#engine-editor"))
-		Else
-			MsgBox("User Manual not found!", MsgBoxStyle.Critical)
-		End If
-	End Sub
-
-#End Region
-
-	'Create new empty Engine file.
-	Private Sub newENG()
-
-		If ChangeCheckCancel() Then Exit Sub
-
-		TbName.Text = ""
-		TbDispl.Text = ""
-		TbInertia.Text = ""
-		TbNleerl.Text = ""
-		TbMAP.Text = ""
-		TbFLD.Text = ""
-		TbWHTCurban.Text = ""
-		TbWHTCrural.Text = ""
-		TbWHTCmw.Text = ""
-
-		DeclInit()
-
-		EngFile = ""
-		Text = "ENG Editor"
-		LbStatus.Text = ""
-
-		Changed = False
-
-		UpdatePic()
-	End Sub
-
-	'Open VENG file
-	Public Sub openENG(ByVal file As String)
-		Dim ENG0 As cENG
-
-		If ChangeCheckCancel() Then Exit Sub
-
-		ENG0 = New cENG
-
-		ENG0.FilePath = file
-
-		If Not ENG0.ReadFile Then
-			MsgBox("Cannot read " & file & "!")
-			Exit Sub
-		End If
-
-		If Cfg.DeclMode <> ENG0.SavedInDeclMode Then
-			Select Case WrongMode()
-				Case 1
-					Close()
-					F_MAINForm.RbDecl.Checked = Not F_MAINForm.RbDecl.Checked
-					F_MAINForm.OpenVectoFile(file)
-				Case -1
-					Exit Sub
-				Case Else '0
-					'Continue...
-			End Select
-		End If
-
-		TbName.Text = ENG0.ModelName
-		TbDispl.Text = ENG0.Displ.ToString
-		TbInertia.Text = ENG0.I_mot.ToString
-		TbNleerl.Text = ENG0.Nidle.ToString
-
-		TbMAP.Text = ENG0.PathMAP(True)
-		TbFLD.Text = ENG0.PathFLD(True)
-		TbWHTCurban.Text = ENG0.WHTCurban
-		TbWHTCrural.Text = ENG0.WHTCrural
-		TbWHTCmw.Text = ENG0.WHTCmw
-
-		DeclInit()
-
-		fbENG.UpdateHistory(file)
-		Text = fFILE(file, True)
-		LbStatus.Text = ""
-		EngFile = file
-		Activate()
-
-		Changed = False
-		UpdatePic()
-	End Sub
-
-	'Save or Save As function = true if file is saved
-	Private Function SaveOrSaveAs(ByVal SaveAs As Boolean) As Boolean
-		If EngFile = "" Or SaveAs Then
-			If fbENG.SaveDialog(EngFile) Then
-				EngFile = fbENG.Files(0)
-			Else
-				Return False
-			End If
-		End If
-		Return saveENG(EngFile)
-	End Function
-
-	'Save VENG file to given filepath. Called by SaveOrSaveAs. 
-	Private Function saveENG(ByVal file As String) As Boolean
-		Dim ENG0 As cENG
-
-		ENG0 = New cENG
-		ENG0.FilePath = file
-
-		ENG0.ModelName = TbName.Text
-		If Trim(ENG0.ModelName) = "" Then ENG0.ModelName = "Undefined"
-		ENG0.Displ = CSng(fTextboxToNumString(TbDispl.Text))
-		ENG0.I_mot = CSng(fTextboxToNumString(TbInertia.Text))
-		ENG0.Nidle = CSng(fTextboxToNumString(TbNleerl.Text))
-
-		ENG0.PathFLD = TbFLD.Text
-		ENG0.PathMAP = TbMAP.Text
-
-
-		ENG0.WHTCurban = CSng(fTextboxToNumString(TbWHTCurban.Text))
-		ENG0.WHTCrural = CSng(fTextboxToNumString(TbWHTCrural.Text))
-		ENG0.WHTCmw = CSng(fTextboxToNumString(TbWHTCmw.Text))
-
-
-		If Not ENG0.SaveFile Then
-			MsgBox("Cannot safe to " & file, MsgBoxStyle.Critical)
-			Return False
-		End If
-
-		If AutoSendTo Then
-			If F_VECTO.Visible Then
-				If UCase(fFileRepl(F_VECTO.TbENG.Text, JobDir)) <> UCase(file) Then F_VECTO.TbENG.Text = fFileWoDir(file, JobDir)
-				F_VECTO.UpdatePic()
-			End If
-		End If
-
-		fbENG.UpdateHistory(file)
-		Text = fFILE(file, True)
-		LbStatus.Text = ""
-
-		Changed = False
-
-		Return True
-	End Function
-
-
-#Region "Track changes"
-
-	'Flags current file as modified.
-	Private Sub Change()
-		If Not Changed Then
-			LbStatus.Text = "Unsaved changes in current file"
-			Changed = True
-		End If
-	End Sub
-
-	' "Save changes ?" .... Returns True if User aborts
-	Private Function ChangeCheckCancel() As Boolean
-
-		If Changed Then
-			Select Case MsgBox("Save changes ?", MsgBoxStyle.YesNoCancel)
-				Case MsgBoxResult.Yes
-					Return Not SaveOrSaveAs(False)
-				Case MsgBoxResult.Cancel
-					Return True
-				Case Else 'MsgBoxResult.No
-					Changed = False
-					Return False
-			End Select
-
-		Else
-
-			Return False
-
-		End If
-	End Function
-
-
-	Private Sub TbName_TextChanged(sender As Object, e As EventArgs) Handles TbName.TextChanged
-		Change()
-	End Sub
-
-	Private Sub TbDispl_TextChanged(sender As Object, e As EventArgs) Handles TbDispl.TextChanged
-		Change()
-		DeclInit()
-	End Sub
-
-	Private Sub TbInertia_TextChanged(sender As Object, e As EventArgs) Handles TbInertia.TextChanged
-		Change()
-	End Sub
-
-	Private Sub TbNleerl_TextChanged(sender As Object, e As EventArgs) Handles TbNleerl.TextChanged
-		UpdatePic()
-		Change()
-	End Sub
-
-	Private Sub TbMAP_TextChanged(sender As Object, e As EventArgs) _
-		Handles TbMAP.TextChanged, TbFLD.TextChanged
-		UpdatePic()
-		Change()
-	End Sub
-
-	Private Sub TbWHTCurban_TextChanged(sender As Object, e As EventArgs) Handles TbWHTCurban.TextChanged
-		Change()
-	End Sub
-
-	Private Sub TbWHTCrural_TextChanged(sender As Object, e As EventArgs) Handles TbWHTCrural.TextChanged
-		Change()
-	End Sub
-
-	Private Sub TbWHTCmw_TextChanged(sender As Object, e As EventArgs) Handles TbWHTCmw.TextChanged
-		Change()
-	End Sub
-
-
-#End Region
-
-	'Browse for VMAP file
-	Private Sub BtMAP_Click(sender As Object, e As EventArgs) Handles BtMAP.Click
-		If fbMAP.OpenDialog(fFileRepl(TbMAP.Text, fPATH(EngFile))) Then _
-			TbMAP.Text = fFileWoDir(fbMAP.Files(0), fPATH(EngFile))
-	End Sub
-
-
-	'Open VMAP file
-	Private Sub BtMAPopen_Click(sender As Object, e As EventArgs) Handles BtMAPopen.Click
-		Dim fldfile As String
-
-		fldfile = fFileRepl(TbFLD.Text, fPATH(EngFile))
-
-		If fldfile <> sKey.NoFile AndAlso File.Exists(fldfile) Then
-			OpenFiles(fFileRepl(TbMAP.Text, fPATH(EngFile)), fldfile)
-		Else
-			OpenFiles(fFileRepl(TbMAP.Text, fPATH(EngFile)))
-		End If
-	End Sub
-
-
-	'Save and close
-	Private Sub ButOK_Click(sender As Object, e As EventArgs) Handles ButOK.Click
-		If SaveOrSaveAs(False) Then Close()
-	End Sub
-
-	'Close without saving (see FormClosing Event)
-	Private Sub ButCancel_Click(sender As Object, e As EventArgs) Handles ButCancel.Click
-		Close()
-	End Sub
-
-	Private Sub UpdatePic()
-
-		Dim fldOK As Boolean = False
-		Dim mapOK As Boolean = False
-		Dim FLD0 As New cFLD
-		Dim MAP0 As New cMAP
-		Dim MyChart As Chart
-		Dim s As Series
-		Dim a As ChartArea
-		Dim img As Image
-
-		PicBox.Image = Nothing
-
-		Try
-
-			'Read Files
-			FLD0.FilePath = fFileRepl(TbFLD.Text, fPATH(EngFile))
-			fldOK = FLD0.ReadFile(False, False)
-
-			MAP0.FilePath = fFileRepl(TbMAP.Text, fPATH(EngFile))
-			mapOK = MAP0.ReadFile(False)
-
-		Catch ex As Exception
-
-		End Try
-
-		If Not fldOK And Not mapOK Then Exit Sub
-
-
-		'Create plot
-		MyChart = New Chart
-		MyChart.Width = PicBox.Width
-		MyChart.Height = PicBox.Height
-
-		a = New ChartArea
-
-		If fldOK Then
-
-			s = New Series
-			s.Points.DataBindXY(FLD0.LnU, FLD0.LTq)
-			s.ChartType = SeriesChartType.FastLine
-			s.BorderWidth = 2
-			s.Color = Color.DarkBlue
-			s.Name = "Full load (" & fFILE(FLD0.FilePath, True) & ")"
-			MyChart.Series.Add(s)
-
-			s = New Series
-			s.Points.DataBindXY(FLD0.LnU, FLD0.LTqDrag)
-			s.ChartType = SeriesChartType.FastLine
-			s.BorderWidth = 2
-			s.Color = Color.Blue
-			s.Name = "Motoring (" & fFILE(FLD0.FilePath, True) & ")"
-			MyChart.Series.Add(s)
-
-		End If
-
-		If mapOK Then
-			s = New Series
-			s.Points.DataBindXY(MAP0.nU, MAP0.Tq)
-			s.ChartType = SeriesChartType.Point
-			s.MarkerSize = 3
-			s.Color = Color.Red
-			s.Name = "Map"
-			MyChart.Series.Add(s)
-		End If
-
-		a.Name = "main"
-
-		a.AxisX.Title = "engine speed [1/min]"
-		a.AxisX.TitleFont = New Font("Helvetica", 10)
-		a.AxisX.LabelStyle.Font = New Font("Helvetica", 8)
-		a.AxisX.LabelAutoFitStyle = LabelAutoFitStyles.None
-		a.AxisX.MajorGrid.LineDashStyle = ChartDashStyle.Dot
-
-		a.AxisY.Title = "engine torque [Nm]"
-		a.AxisY.TitleFont = New Font("Helvetica", 10)
-		a.AxisY.LabelStyle.Font = New Font("Helvetica", 8)
-		a.AxisY.LabelAutoFitStyle = LabelAutoFitStyles.None
-		a.AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dot
-
-		a.AxisX.Minimum = 300
-		a.BorderDashStyle = ChartDashStyle.Solid
-		a.BorderWidth = 1
-
-		a.BackColor = Color.GhostWhite
-
-		MyChart.ChartAreas.Add(a)
-
-		MyChart.Update()
-
-		img = New Bitmap(MyChart.Width, MyChart.Height, PixelFormat.Format32bppArgb)
-		MyChart.DrawToBitmap(img, New Rectangle(0, 0, PicBox.Width, PicBox.Height))
-
-
-		PicBox.Image = img
-	End Sub
-
-
-#Region "Open File Context Menu"
-
-	Private CmFiles As String()
-
-	Private Sub OpenFiles(ParamArray files() As String)
-
-		If files.Length = 0 Then Exit Sub
-
-		CmFiles = files
-
-		OpenWithToolStripMenuItem.Text = "Open with " & Cfg.OpenCmdName
-
-		CmOpenFile.Show(Windows.Forms.Cursor.Position)
-	End Sub
-
-	Private Sub OpenWithToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles OpenWithToolStripMenuItem.Click
-		If Not FileOpenAlt(CmFiles(0)) Then MsgBox("Failed to open file!")
-	End Sub
-
-	Private Sub ShowInFolderToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles ShowInFolderToolStripMenuItem.Click
-		If File.Exists(CmFiles(0)) Then
-			Try
-				Process.Start("explorer", "/select,""" & CmFiles(0) & "")
-			Catch ex As Exception
-				MsgBox("Failed to open file!")
-			End Try
-		Else
-			MsgBox("File not found!")
-		End If
-	End Sub
-
-#End Region
-
-
-	Private Sub BtFLD_Click(sender As Object, e As EventArgs) Handles BtFLD.Click
-		If fbFLD.OpenDialog(fFileRepl(TbFLD.Text, fPATH(EngFile))) Then _
-			TbFLD.Text = fFileWoDir(fbFLD.Files(0), fPATH(EngFile))
-	End Sub
-
-	Private Sub BtFLDopen_Click(sender As Object, e As EventArgs) Handles BtFLDopen.Click
-		Dim fldfile As String
-
-		fldfile = fFileRepl(TbFLD.Text, fPATH(EngFile))
-
-		If fldfile <> sKey.NoFile AndAlso File.Exists(fldfile) Then
-			OpenFiles(fldfile)
-		End If
-	End Sub
-
-	Private Sub BtWHTCimport_Click(sender As Object, e As EventArgs) Handles BtWHTCimport.Click
-		Dim xml As XDocument
-
-		Dim dlog As New cFileBrowser("XML", False, True)
-		dlog.Extensions = New String() {"xml"}
-
-		If Not dlog.OpenDialog("") Then Exit Sub
-
-		Try
-			xml = XDocument.Load(dlog.Files(0))
-
-			TbWHTCurban.Text = xml.<VECTO-Engine-TransferFile>.<WHTCCorrectionFactors>.<Urban>.Value
-			TbWHTCrural.Text = xml.<VECTO-Engine-TransferFile>.<WHTCCorrectionFactors>.<Rural>.Value
-			TbWHTCmw.Text = xml.<VECTO-Engine-TransferFile>.<WHTCCorrectionFactors>.<Motorway>.Value
-
-		Catch ex As Exception
-			MsgBox("Failed to load file! " & ex.Message, MsgBoxStyle.Critical)
-		End Try
-	End Sub
-End Class
+
+Imports System.Drawing.Imaging
+Imports System.IO
+Imports System.Text.RegularExpressions
+Imports System.Windows.Forms.DataVisualization.Charting
+Imports System.Xml.Linq
+Imports TUGraz.VectoCommon.Models
+Imports TUGraz.VectoCommon.Utils
+Imports TUGraz.VectoCore.Models.Declaration
+' Copyright 2014 European Union.
+' Licensed under the EUPL (the 'Licence');
+'
+' * You may not use this work except in compliance with the Licence.
+' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
+' * Unless required by applicable law or agreed to in writing,
+'   software distributed under the Licence is distributed on an "AS IS" basis,
+'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+'
+' See the LICENSE.txt for the specific language governing permissions and limitations.
+
+''' <summary>
+''' Engine Editor. Open and save .VENG files.
+''' </summary>
+''' <remarks></remarks>
+Public Class EngineForm
+	Private _engFile As String = ""
+	Public AutoSendTo As Boolean = False
+	Public JobDir As String = ""
+	Private _changed As Boolean = False
+
+
+	'Before closing Editor: Check if file was changed and ask to save.
+	Private Sub F_ENG_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
+		If e.CloseReason <> CloseReason.ApplicationExitCall And e.CloseReason <> CloseReason.WindowsShutDown Then
+			e.Cancel = ChangeCheckCancel()
+		End If
+	End Sub
+
+	'Initialise.
+	Private Sub EngineFormLoad(sender As Object, e As EventArgs) Handles Me.Load
+
+		PnInertia.Enabled = Not Cfg.DeclMode
+		GrWHTC.Enabled = Cfg.DeclMode
+
+
+		_changed = False
+		NewEngine()
+	End Sub
+
+	'Set generic values for Declaration mode.
+	Private Sub DeclInit()
+
+		If Not Cfg.DeclMode Then Exit Sub
+
+		TbInertia.Text =
+			CStr(
+				DeclarationData.Engine.EngineInertia((fTextboxToNumString(TbDispl.Text) / 1000.0).SI(Of CubicMeter),
+													GearboxType.AMT).Value())
+	End Sub
+
+
+#Region "Toolbar"
+
+	Private Sub ToolStripBtNew_Click(sender As Object, e As EventArgs) Handles ToolStripBtNew.Click
+		NewEngine()
+	End Sub
+
+	Private Sub ToolStripBtOpen_Click(sender As Object, e As EventArgs) Handles ToolStripBtOpen.Click
+		If EngineFileBrowser.OpenDialog(_engFile) Then OpenEngineFile(EngineFileBrowser.Files(0))
+	End Sub
+
+	Private Sub ToolStripBtSave_Click(sender As Object, e As EventArgs) Handles ToolStripBtSave.Click
+		SaveOrSaveAs(False)
+	End Sub
+
+	Private Sub ToolStripBtSaveAs_Click(sender As Object, e As EventArgs) Handles ToolStripBtSaveAs.Click
+		SaveOrSaveAs(True)
+	End Sub
+
+	Private Sub ToolStripBtSendTo_Click(sender As Object, e As EventArgs) Handles ToolStripBtSendTo.Click
+
+		If ChangeCheckCancel() Then Exit Sub
+
+		If _engFile = "" Then
+			If MsgBox("Save file now?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
+				If Not SaveOrSaveAs(True) Then Exit Sub
+			Else
+				Exit Sub
+			End If
+		End If
+
+		If Not VectoJobForm.Visible Then
+			JobDir = ""
+			VectoJobForm.Show()
+			VectoJobForm.VECTOnew()
+		Else
+			VectoJobForm.WindowState = FormWindowState.Normal
+		End If
+
+		VectoJobForm.TbENG.Text = fFileWoDir(_engFile, JobDir)
+	End Sub
+
+	Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
+		If File.Exists(MyAppPath & "User Manual\help.html") Then
+			Dim BrowserRegistryString As String =
+					My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString
+			Dim DefaultBrowserPath As String =
+					Regex.Match(BrowserRegistryString, "(\"".*?\"")").Captures(0).ToString
+			Process.Start(DefaultBrowserPath,
+						String.Format("""{0}{1}""", MyAppPath, "User Manual\help.html#engine-editor"))
+		Else
+			MsgBox("User Manual not found!", MsgBoxStyle.Critical)
+		End If
+	End Sub
+
+#End Region
+
+	'Create new empty Engine file.
+	Private Sub NewEngine()
+
+		If ChangeCheckCancel() Then Exit Sub
+
+		TbName.Text = ""
+		TbDispl.Text = ""
+		TbInertia.Text = ""
+		TbNleerl.Text = ""
+		TbMAP.Text = ""
+		TbFLD.Text = ""
+		TbWHTCurban.Text = ""
+		TbWHTCrural.Text = ""
+		TbWHTCmw.Text = ""
+
+		DeclInit()
+
+		_engFile = ""
+		Text = "ENG Editor"
+		LbStatus.Text = ""
+
+		_changed = False
+
+		UpdatePic()
+	End Sub
+
+	'Open VENG file
+	Public Sub OpenEngineFile(ByVal file As String)
+		Dim ENG0 As Engine
+
+		If ChangeCheckCancel() Then Exit Sub
+
+		ENG0 = New Engine
+
+		ENG0.FilePath = file
+
+		If Not ENG0.ReadFile Then
+			MsgBox("Cannot read " & file & "!")
+			Exit Sub
+		End If
+
+		If Cfg.DeclMode <> ENG0.SavedInDeclMode Then
+			Select Case WrongMode()
+				Case 1
+					Close()
+					MainForm.RbDecl.Checked = Not MainForm.RbDecl.Checked
+					MainForm.OpenVectoFile(file)
+				Case -1
+					Exit Sub
+				Case Else '0
+					'Continue...
+			End Select
+		End If
+
+		TbName.Text = ENG0.ModelName
+		TbDispl.Text = ENG0.Displ.ToString
+		TbInertia.Text = ENG0.I_mot.ToString
+		TbNleerl.Text = ENG0.Nidle.ToString
+
+		TbMAP.Text = ENG0.PathMAP(True)
+		TbFLD.Text = ENG0.PathFLD(True)
+		TbWHTCurban.Text = ENG0.WHTCurban
+		TbWHTCrural.Text = ENG0.WHTCrural
+		TbWHTCmw.Text = ENG0.WHTCmw
+
+		DeclInit()
+
+		EngineFileBrowser.UpdateHistory(file)
+		Text = fFILE(file, True)
+		LbStatus.Text = ""
+		_engFile = file
+		Activate()
+
+		_changed = False
+		UpdatePic()
+	End Sub
+
+	'Save or Save As function = true if file is saved
+	Private Function SaveOrSaveAs(ByVal SaveAs As Boolean) As Boolean
+		If _engFile = "" Or SaveAs Then
+			If EngineFileBrowser.SaveDialog(_engFile) Then
+				_engFile = EngineFileBrowser.Files(0)
+			Else
+				Return False
+			End If
+		End If
+		Return SaveEngineToFile(_engFile)
+	End Function
+
+	'Save VENG file to given filepath. Called by SaveOrSaveAs. 
+	Private Function SaveEngineToFile(ByVal file As String) As Boolean
+
+		Dim engine As Engine = New Engine
+		engine.FilePath = file
+
+		engine.ModelName = TbName.Text
+		If Trim(engine.ModelName) = "" Then engine.ModelName = "Undefined"
+		engine.Displ = CSng(fTextboxToNumString(TbDispl.Text))
+		engine.I_mot = CSng(fTextboxToNumString(TbInertia.Text))
+		engine.Nidle = CSng(fTextboxToNumString(TbNleerl.Text))
+
+		engine.PathFLD = TbFLD.Text
+		engine.PathMAP = TbMAP.Text
+
+
+		engine.WHTCurban = CSng(fTextboxToNumString(TbWHTCurban.Text))
+		engine.WHTCrural = CSng(fTextboxToNumString(TbWHTCrural.Text))
+		engine.WHTCmw = CSng(fTextboxToNumString(TbWHTCmw.Text))
+
+
+		If Not engine.SaveFile Then
+			MsgBox("Cannot safe to " & file, MsgBoxStyle.Critical)
+			Return False
+		End If
+
+		If AutoSendTo Then
+			If VectoJobForm.Visible Then
+				If UCase(fFileRepl(VectoJobForm.TbENG.Text, JobDir)) <> UCase(file) Then VectoJobForm.TbENG.Text = fFileWoDir(file, JobDir)
+				VectoJobForm.UpdatePic()
+			End If
+		End If
+
+		EngineFileBrowser.UpdateHistory(file)
+		Text = fFILE(file, True)
+		LbStatus.Text = ""
+
+		_changed = False
+
+		Return True
+	End Function
+
+
+#Region "Track changes"
+
+	'Flags current file as modified.
+	Private Sub Change()
+		If Not _changed Then
+			LbStatus.Text = "Unsaved changes in current file"
+			_changed = True
+		End If
+	End Sub
+
+	' "Save changes ?" .... Returns True if User aborts
+	Private Function ChangeCheckCancel() As Boolean
+
+		If _changed Then
+			Select Case MsgBox("Save changes ?", MsgBoxStyle.YesNoCancel)
+				Case MsgBoxResult.Yes
+					Return Not SaveOrSaveAs(False)
+				Case MsgBoxResult.Cancel
+					Return True
+				Case Else 'MsgBoxResult.No
+					_changed = False
+					Return False
+			End Select
+
+		Else
+
+			Return False
+
+		End If
+	End Function
+
+
+	Private Sub TbName_TextChanged(sender As Object, e As EventArgs) Handles TbName.TextChanged
+		Change()
+	End Sub
+
+	Private Sub TbDispl_TextChanged(sender As Object, e As EventArgs) Handles TbDispl.TextChanged
+		Change()
+		DeclInit()
+	End Sub
+
+	Private Sub TbInertia_TextChanged(sender As Object, e As EventArgs) Handles TbInertia.TextChanged
+		Change()
+	End Sub
+
+	Private Sub TbNleerl_TextChanged(sender As Object, e As EventArgs) Handles TbNleerl.TextChanged
+		UpdatePic()
+		Change()
+	End Sub
+
+	Private Sub TbMAP_TextChanged(sender As Object, e As EventArgs) _
+		Handles TbMAP.TextChanged, TbFLD.TextChanged
+		UpdatePic()
+		Change()
+	End Sub
+
+	Private Sub TbWHTCurban_TextChanged(sender As Object, e As EventArgs) Handles TbWHTCurban.TextChanged
+		Change()
+	End Sub
+
+	Private Sub TbWHTCrural_TextChanged(sender As Object, e As EventArgs) Handles TbWHTCrural.TextChanged
+		Change()
+	End Sub
+
+	Private Sub TbWHTCmw_TextChanged(sender As Object, e As EventArgs) Handles TbWHTCmw.TextChanged
+		Change()
+	End Sub
+
+
+#End Region
+
+	'Browse for VMAP file
+	Private Sub BtMAP_Click(sender As Object, e As EventArgs) Handles BtMAP.Click
+		If FuelConsumptionMapFileBrowser.OpenDialog(fFileRepl(TbMAP.Text, fPATH(_engFile))) Then _
+			TbMAP.Text = fFileWoDir(FuelConsumptionMapFileBrowser.Files(0), fPATH(_engFile))
+	End Sub
+
+
+	'Open VMAP file
+	Private Sub BtMAPopen_Click(sender As Object, e As EventArgs) Handles BtMAPopen.Click
+		Dim fldfile As String
+
+		fldfile = fFileRepl(TbFLD.Text, fPATH(_engFile))
+
+		If fldfile <> sKey.NoFile AndAlso File.Exists(fldfile) Then
+			OpenFiles(fFileRepl(TbMAP.Text, fPATH(_engFile)), fldfile)
+		Else
+			OpenFiles(fFileRepl(TbMAP.Text, fPATH(_engFile)))
+		End If
+	End Sub
+
+
+	'Save and close
+	Private Sub ButOK_Click(sender As Object, e As EventArgs) Handles ButOK.Click
+		If SaveOrSaveAs(False) Then Close()
+	End Sub
+
+	'Close without saving (see FormClosing Event)
+	Private Sub ButCancel_Click(sender As Object, e As EventArgs) Handles ButCancel.Click
+		Close()
+	End Sub
+
+	Private Sub UpdatePic()
+
+		Dim fldOK As Boolean = False
+		Dim mapOK As Boolean = False
+		Dim FLD0 As New EngineFullLoadCurve
+		Dim MAP0 As New FuelconsumptionMap
+		Dim MyChart As Chart
+		Dim s As Series
+		Dim a As ChartArea
+		Dim img As Image
+
+		PicBox.Image = Nothing
+
+		Try
+
+			'Read Files
+			FLD0.FilePath = fFileRepl(TbFLD.Text, fPATH(_engFile))
+			fldOK = FLD0.ReadFile(False, False)
+
+			MAP0.FilePath = fFileRepl(TbMAP.Text, fPATH(_engFile))
+			mapOK = MAP0.ReadFile(False)
+
+		Catch ex As Exception
+
+		End Try
+
+		If Not fldOK And Not mapOK Then Exit Sub
+
+
+		'Create plot
+		MyChart = New Chart
+		MyChart.Width = PicBox.Width
+		MyChart.Height = PicBox.Height
+
+		a = New ChartArea
+
+		If fldOK Then
+
+			s = New Series
+			s.Points.DataBindXY(FLD0.LnU, FLD0.LTq)
+			s.ChartType = SeriesChartType.FastLine
+			s.BorderWidth = 2
+			s.Color = Color.DarkBlue
+			s.Name = "Full load (" & fFILE(FLD0.FilePath, True) & ")"
+			MyChart.Series.Add(s)
+
+			s = New Series
+			s.Points.DataBindXY(FLD0.LnU, FLD0.LTqDrag)
+			s.ChartType = SeriesChartType.FastLine
+			s.BorderWidth = 2
+			s.Color = Color.Blue
+			s.Name = "Motoring (" & fFILE(FLD0.FilePath, True) & ")"
+			MyChart.Series.Add(s)
+
+		End If
+
+		If mapOK Then
+			s = New Series
+			s.Points.DataBindXY(MAP0.nU, MAP0.Tq)
+			s.ChartType = SeriesChartType.Point
+			s.MarkerSize = 3
+			s.Color = Color.Red
+			s.Name = "Map"
+			MyChart.Series.Add(s)
+		End If
+
+		a.Name = "main"
+
+		a.AxisX.Title = "engine speed [1/min]"
+		a.AxisX.TitleFont = New Font("Helvetica", 10)
+		a.AxisX.LabelStyle.Font = New Font("Helvetica", 8)
+		a.AxisX.LabelAutoFitStyle = LabelAutoFitStyles.None
+		a.AxisX.MajorGrid.LineDashStyle = ChartDashStyle.Dot
+
+		a.AxisY.Title = "engine torque [Nm]"
+		a.AxisY.TitleFont = New Font("Helvetica", 10)
+		a.AxisY.LabelStyle.Font = New Font("Helvetica", 8)
+		a.AxisY.LabelAutoFitStyle = LabelAutoFitStyles.None
+		a.AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dot
+
+		a.AxisX.Minimum = 300
+		a.BorderDashStyle = ChartDashStyle.Solid
+		a.BorderWidth = 1
+
+		a.BackColor = Color.GhostWhite
+
+		MyChart.ChartAreas.Add(a)
+
+		MyChart.Update()
+
+		img = New Bitmap(MyChart.Width, MyChart.Height, PixelFormat.Format32bppArgb)
+		MyChart.DrawToBitmap(img, New Rectangle(0, 0, PicBox.Width, PicBox.Height))
+
+
+		PicBox.Image = img
+	End Sub
+
+
+#Region "Open File Context Menu"
+
+	Private CmFiles As String()
+
+	Private Sub OpenFiles(ParamArray files() As String)
+
+		If files.Length = 0 Then Exit Sub
+
+		CmFiles = files
+
+		OpenWithToolStripMenuItem.Text = "Open with " & Cfg.OpenCmdName
+
+		CmOpenFile.Show(Windows.Forms.Cursor.Position)
+	End Sub
+
+	Private Sub OpenWithToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles OpenWithToolStripMenuItem.Click
+		If Not FileOpenAlt(CmFiles(0)) Then MsgBox("Failed to open file!")
+	End Sub
+
+	Private Sub ShowInFolderToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles ShowInFolderToolStripMenuItem.Click
+		If File.Exists(CmFiles(0)) Then
+			Try
+				Process.Start("explorer", "/select,""" & CmFiles(0) & "")
+			Catch ex As Exception
+				MsgBox("Failed to open file!")
+			End Try
+		Else
+			MsgBox("File not found!")
+		End If
+	End Sub
+
+#End Region
+
+
+	Private Sub BtFLD_Click(sender As Object, e As EventArgs) Handles BtFLD.Click
+		If FullLoadCurveFileBrowser.OpenDialog(fFileRepl(TbFLD.Text, fPATH(_engFile))) Then _
+			TbFLD.Text = fFileWoDir(FullLoadCurveFileBrowser.Files(0), fPATH(_engFile))
+	End Sub
+
+	Private Sub BtFLDopen_Click(sender As Object, e As EventArgs) Handles BtFLDopen.Click
+		Dim fldfile As String
+
+		fldfile = fFileRepl(TbFLD.Text, fPATH(_engFile))
+
+		If fldfile <> sKey.NoFile AndAlso File.Exists(fldfile) Then
+			OpenFiles(fldfile)
+		End If
+	End Sub
+
+	Private Sub BtWHTCimport_Click(sender As Object, e As EventArgs) Handles BtWHTCimport.Click
+		Dim xml As XDocument
+
+		Dim dlog As New FileBrowser("XML", False, True)
+		dlog.Extensions = New String() {"xml"}
+
+		If Not dlog.OpenDialog("") Then Exit Sub
+
+		Try
+			xml = XDocument.Load(dlog.Files(0))
+
+			TbWHTCurban.Text = xml.<VECTO-Engine-TransferFile>.<WHTCCorrectionFactors>.<Urban>.Value
+			TbWHTCrural.Text = xml.<VECTO-Engine-TransferFile>.<WHTCCorrectionFactors>.<Rural>.Value
+			TbWHTCmw.Text = xml.<VECTO-Engine-TransferFile>.<WHTCCorrectionFactors>.<Motorway>.Value
+
+		Catch ex As Exception
+			MsgBox("Failed to load file! " & ex.Message, MsgBoxStyle.Critical)
+		End Try
+	End Sub
+End Class
diff --git a/VECTO/GUI/F_FileSign.Designer.vb b/VECTO/GUI/FileSignDialog.Designer.vb
similarity index 99%
rename from VECTO/GUI/F_FileSign.Designer.vb
rename to VECTO/GUI/FileSignDialog.Designer.vb
index fff034502d..5ceac73395 100644
--- a/VECTO/GUI/F_FileSign.Designer.vb
+++ b/VECTO/GUI/FileSignDialog.Designer.vb
@@ -12,7 +12,7 @@ Imports System.ComponentModel
 Imports Microsoft.VisualBasic.CompilerServices
 
 <DesignerGenerated()> _
-Partial Class F_FileSign
+Partial Class FileSignDialog
 	Inherits Form
 
 	'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
@@ -35,7 +35,7 @@ Partial Class F_FileSign
 	'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
 	<DebuggerStepThrough()> _
 	Private Sub InitializeComponent()
-		Dim resources As ComponentResourceManager = New ComponentResourceManager(GetType(F_FileSign))
+		Dim resources As ComponentResourceManager = New ComponentResourceManager(GetType(FileSignDialog))
 		Me.TbSigFile = New TextBox()
 		Me.Label1 = New Label()
 		Me.BtBrowse = New Button()
@@ -324,7 +324,7 @@ Partial Class F_FileSign
 		Me.MaximizeBox = False
 		Me.MinimizeBox = False
 		Me.MinimumSize = New Size(480, 400)
-		Me.Name = "F_FileSign"
+		Me.Name = "FileSignDialog"
 		Me.SizeGripStyle = SizeGripStyle.Show
 		Me.StartPosition = FormStartPosition.CenterParent
 		Me.Text = "Sign & Verify Files"
diff --git a/VECTO/GUI/F_FileSign.resx b/VECTO/GUI/FileSignDialog.resx
similarity index 100%
rename from VECTO/GUI/F_FileSign.resx
rename to VECTO/GUI/FileSignDialog.resx
diff --git a/VECTO/GUI/F_FileSign.vb b/VECTO/GUI/FileSignDialog.vb
similarity index 97%
rename from VECTO/GUI/F_FileSign.vb
rename to VECTO/GUI/FileSignDialog.vb
index bcc1baa60c..ad5ee67b1a 100644
--- a/VECTO/GUI/F_FileSign.vb
+++ b/VECTO/GUI/FileSignDialog.vb
@@ -16,7 +16,7 @@ Imports vectolic
 ''' Create/Verify signature files (.vsig).
 ''' </summary>
 ''' <remarks></remarks>
-Public Class F_FileSign
+Public Class FileSignDialog
 	'Create signature file
 	Private Sub BtSign_Click(sender As Object, e As EventArgs) Handles BtSign.Click
 		Dim lv0 As ListViewItem
@@ -138,7 +138,7 @@ Public Class F_FileSign
 #Region "GUI Controls"
 
 	Private Sub BtBrowse_Click(sender As Object, e As EventArgs) Handles BtBrowse.Click
-		Dim fb As New cFileBrowser("sig", False, True)
+		Dim fb As New FileBrowser("sig", False, True)
 		fb.Extensions = New String() {"vsig"}
 
 		If fb.CustomDialog(TbSigFile.Text, False, False, tFbExtMode.ForceExt, False, "vsig") Then
@@ -182,7 +182,7 @@ Public Class F_FileSign
 	'Add File
 	Private Sub AddFile()
 		Dim lvi As ListViewItem
-		Dim fb As New cFileBrowser("xxx", False, True)
+		Dim fb As New FileBrowser("xxx", False, True)
 		Dim str As String
 
 		If fb.OpenDialog("", True) Then
diff --git a/VECTO/GUI/GUI_Subs.vb b/VECTO/GUI/GUI_Subs.vb
index f6afa23443..43cc81fd32 100644
--- a/VECTO/GUI/GUI_Subs.vb
+++ b/VECTO/GUI/GUI_Subs.vb
@@ -18,20 +18,20 @@ Public Module GUI_Subs
 #Region "GUI control via background worker"
 
 	'Status Message => Msg-Listview
-	Public Sub WorkerMsg(ByVal ID As tMsgID, ByVal Msg As String, ByVal Source As String,
-						Optional ByVal Link As String = "")
-		Dim WorkProg As New cWorkProg(tWorkMsgType.StatusListBox)
-		WorkProg.ID = ID
-		Select Case ID
-			Case tMsgID.Err
-			Case tMsgID.Warn
+	Public Sub WorkerMsg(ByVal id As MessageType, ByVal msg As String, ByVal source As String,
+						Optional ByVal link As String = "")
+		Dim workProg As New BackgroundWorkerMessage(tWorkMsgType.StatusListBox)
+		workProg.ID = id
+		Select Case id
+			Case MessageType.Err
+			Case MessageType.Warn
 		End Select
-		WorkProg.Msg = Msg
-		WorkProg.Source = Source
+		workProg.Msg = msg
+		workProg.Source = source
 		Try
 			'VECTOworker.ReportProgress(0, WorkProg)
 		Catch ex As Exception
-			GUImsg(ID, Msg)
+			GUIMsg(id, msg)
 		End Try
 	End Sub
 
@@ -40,63 +40,39 @@ Public Module GUI_Subs
 #Region "Direct GUI control - Cannot be called by background worker!"
 
 	'Status message
-	Public Sub GUImsg(ByVal ID As tMsgID, ByVal Msg As String)
-		F_MAINForm.MSGtoForm(ID, Msg, "", "")
+	' ReSharper disable once InconsistentNaming
+	Public Sub GUIMsg(ByVal ID As MessageType, ByVal Msg As String)
+		MainForm.MSGtoForm(ID, Msg, "", "")
 	End Sub
 
 	'Statusbar
 	Public Sub Status(ByVal txt As String)
-		F_MAINForm.ToolStripLbStatus.Text = txt
+		MainForm.ToolStripLbStatus.Text = txt
 	End Sub
 
 	'Status form reset
-	Public Sub ClearMSG()
-		F_MAINForm.LvMsg.Items.Clear()
+	Public Sub ClearMsg()
+		MainForm.LvMsg.Items.Clear()
 	End Sub
 
 #End Region
 
 	'Class used to pass Messages from BackgroundWorker to GUI
-	Public Class cWorkProg
-		Private MyID As tMsgID
-		Private MyMsg As String
-		Private MySource As String
-
-		Public Sub New(ByVal MsgTarget As tWorkMsgType)
-			MySource = ""
+	Private Class BackgroundWorkerMessage
+		Public Sub New(msgTarget As tWorkMsgType)
+			Source = ""
 		End Sub
 
 
 		Public Property Source As String
-			Get
-				Return MySource
-			End Get
-			Set(value As String)
-				MySource = value
-			End Set
-		End Property
-
-		Public Property ID() As tMsgID
-			Get
-				Return MyID
-			End Get
-			Set(ByVal value As tMsgID)
-				MyID = value
-			End Set
-		End Property
-
-		Public Property Msg() As String
-			Get
-				Return MyMsg
-			End Get
-			Set(ByVal value As String)
-				MyMsg = value
-			End Set
-		End Property
+
+		Public Property ID As MessageType
+
+		Public Property Msg As String
 	End Class
 
 	'Progress bar control
-	Public Class cProgBarCtrl
+	Public Class ProgressbarControl
 		Public ProgOverallStartInt As Integer = -1
 		Public PgroOverallEndInt As Integer = -1
 		Public ProgJobInt As Integer = -1
diff --git a/VECTO/GUI/F_GBX.Designer.vb b/VECTO/GUI/GearboxForm.Designer.vb
similarity index 96%
rename from VECTO/GUI/F_GBX.Designer.vb
rename to VECTO/GUI/GearboxForm.Designer.vb
index f0e4afe831..8d98a304ca 100644
--- a/VECTO/GUI/F_GBX.Designer.vb
+++ b/VECTO/GUI/GearboxForm.Designer.vb
@@ -1,1063 +1,1063 @@
-' Copyright 2014 European Union.
-' Licensed under the EUPL (the 'Licence');
-'
-' * You may not use this work except in compliance with the Licence.
-' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
-' * Unless required by applicable law or agreed to in writing,
-'   software distributed under the Licence is distributed on an "AS IS" basis,
-'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-'
-' See the LICENSE.txt for the specific language governing permissions and limitations.
-Imports System.ComponentModel
-Imports Microsoft.VisualBasic.CompilerServices
-
-<DesignerGenerated()> _
-Partial Class F_GBX
-	Inherits Form
-
-	'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
-	<DebuggerNonUserCode()> _
-	Protected Overrides Sub Dispose(ByVal disposing As Boolean)
-		Try
-			If disposing AndAlso components IsNot Nothing Then
-				components.Dispose()
-			End If
-		Finally
-			MyBase.Dispose(disposing)
-		End Try
-	End Sub
-
-	'Wird vom Windows Form-Designer benötigt.
-	Private components As IContainer
-
-	'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
-	'Das Bearbeiten ist mit dem Windows Form-Designer möglich.  
-	'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
-	<DebuggerStepThrough()> _
-	Private Sub InitializeComponent()
-		Me.components = New Container()
-		Dim resources As ComponentResourceManager = New ComponentResourceManager(GetType(F_GBX))
-		Me.ToolStrip1 = New ToolStrip()
-		Me.ToolStripBtNew = New ToolStripButton()
-		Me.ToolStripBtOpen = New ToolStripButton()
-		Me.ToolStripBtSave = New ToolStripButton()
-		Me.ToolStripBtSaveAs = New ToolStripButton()
-		Me.ToolStripSeparator3 = New ToolStripSeparator()
-		Me.ToolStripBtSendTo = New ToolStripButton()
-		Me.ToolStripSeparator1 = New ToolStripSeparator()
-		Me.ToolStripButton1 = New ToolStripButton()
-		Me.StatusStrip1 = New StatusStrip()
-		Me.LbStatus = New ToolStripStatusLabel()
-		Me.ButCancel = New Button()
-		Me.ButOK = New Button()
-		Me.TbTracInt = New TextBox()
-		Me.LvGears = New ListView()
-		Me.ColumnHeader1 = CType(New ColumnHeader(), ColumnHeader)
-		Me.ColumnHeader2 = CType(New ColumnHeader(), ColumnHeader)
-		Me.ColumnHeader3 = CType(New ColumnHeader(), ColumnHeader)
-		Me.ColumnHeader5 = CType(New ColumnHeader(), ColumnHeader)
-		Me.ColumnHeader6 = CType(New ColumnHeader(), ColumnHeader)
-		Me.TBI_getr = New TextBox()
-		Me.Label49 = New Label()
-		Me.Label33 = New Label()
-		Me.Label48 = New Label()
-		Me.Label6 = New Label()
-		Me.Label3 = New Label()
-		Me.TbName = New TextBox()
-		Me.PictureBox1 = New PictureBox()
-		Me.BtRemGear = New Button()
-		Me.GrGearShift = New GroupBox()
-		Me.GroupBox1 = New GroupBox()
-		Me.tbUpshiftMinAcceleration = New TextBox()
-		Me.tbUpshiftAfterDownshift = New TextBox()
-		Me.tbDownshiftAfterUpshift = New TextBox()
-		Me.Label24 = New Label()
-		Me.Label23 = New Label()
-		Me.Label22 = New Label()
-		Me.Label21 = New Label()
-		Me.Label20 = New Label()
-		Me.Label19 = New Label()
-		Me.PnTorqRes = New Panel()
-		Me.Label2 = New Label()
-		Me.Label4 = New Label()
-		Me.TbTqResv = New TextBox()
-		Me.ChShiftInside = New CheckBox()
-		Me.TbShiftTime = New TextBox()
-		Me.Label12 = New Label()
-		Me.Label13 = New Label()
-		Me.ChSkipGears = New CheckBox()
-		Me.GroupBox2 = New GroupBox()
-		Me.TbStartAcc = New TextBox()
-		Me.Label11 = New Label()
-		Me.TbStartSpeed = New TextBox()
-		Me.Label9 = New Label()
-		Me.Label10 = New Label()
-		Me.TbTqResvStart = New TextBox()
-		Me.Label8 = New Label()
-		Me.Label5 = New Label()
-		Me.Label7 = New Label()
-		Me.CmOpenFile = New ContextMenuStrip(Me.components)
-		Me.OpenWithToolStripMenuItem = New ToolStripMenuItem()
-		Me.ShowInFolderToolStripMenuItem = New ToolStripMenuItem()
-		Me.GroupBox3 = New GroupBox()
-		Me.PnTC = New Panel()
-		Me.Label17 = New Label()
-		Me.Label18 = New Label()
-		Me.Label15 = New Label()
-		Me.TbTCinertia = New TextBox()
-		Me.Label1 = New Label()
-		Me.Label14 = New Label()
-		Me.BtTCfileBrowse = New Button()
-		Me.TbTCfile = New TextBox()
-		Me.BtTCfileOpen = New Button()
-		Me.TbTCrefrpm = New TextBox()
-		Me.ChTCon = New CheckBox()
-		Me.Label16 = New Label()
-		Me.CbGStype = New ComboBox()
-		Me.BtAddGear = New Button()
-		Me.GroupBox4 = New GroupBox()
-		Me.Label32 = New Label()
-		Me.PnInertiaTI = New Panel()
-		Me.PicBox = New PictureBox()
-		Me.TBTCShiftPolygon = New TextBox()
-		Me.LblTCShiftFile = New Label()
-		Me.BtTCShiftFileBrowse = New Button()
-		Me.ToolStrip1.SuspendLayout()
-		Me.StatusStrip1.SuspendLayout()
-		CType(Me.PictureBox1, ISupportInitialize).BeginInit()
-		Me.GrGearShift.SuspendLayout()
-		Me.GroupBox1.SuspendLayout()
-		Me.PnTorqRes.SuspendLayout()
-		Me.GroupBox2.SuspendLayout()
-		Me.CmOpenFile.SuspendLayout()
-		Me.GroupBox3.SuspendLayout()
-		Me.PnTC.SuspendLayout()
-		Me.GroupBox4.SuspendLayout()
-		Me.PnInertiaTI.SuspendLayout()
-		CType(Me.PicBox, ISupportInitialize).BeginInit()
-		Me.SuspendLayout()
-		'
-		'ToolStrip1
-		'
-		Me.ToolStrip1.GripStyle = ToolStripGripStyle.Hidden
-		Me.ToolStrip1.Items.AddRange(New ToolStripItem() {Me.ToolStripBtNew, Me.ToolStripBtOpen, Me.ToolStripBtSave, Me.ToolStripBtSaveAs, Me.ToolStripSeparator3, Me.ToolStripBtSendTo, Me.ToolStripSeparator1, Me.ToolStripButton1})
-		Me.ToolStrip1.Location = New Point(0, 0)
-		Me.ToolStrip1.Name = "ToolStrip1"
-		Me.ToolStrip1.Size = New Size(877, 25)
-		Me.ToolStrip1.TabIndex = 30
-		Me.ToolStrip1.Text = "ToolStrip1"
-		'
-		'ToolStripBtNew
-		'
-		Me.ToolStripBtNew.DisplayStyle = ToolStripItemDisplayStyle.Image
-		Me.ToolStripBtNew.Image = My.Resources.Resources.blue_document_icon
-		Me.ToolStripBtNew.ImageTransparentColor = Color.Magenta
-		Me.ToolStripBtNew.Name = "ToolStripBtNew"
-		Me.ToolStripBtNew.Size = New Size(23, 22)
-		Me.ToolStripBtNew.Text = "ToolStripButton1"
-		Me.ToolStripBtNew.ToolTipText = "New"
-		'
-		'ToolStripBtOpen
-		'
-		Me.ToolStripBtOpen.DisplayStyle = ToolStripItemDisplayStyle.Image
-		Me.ToolStripBtOpen.Image = My.Resources.Resources.Open_icon
-		Me.ToolStripBtOpen.ImageTransparentColor = Color.Magenta
-		Me.ToolStripBtOpen.Name = "ToolStripBtOpen"
-		Me.ToolStripBtOpen.Size = New Size(23, 22)
-		Me.ToolStripBtOpen.Text = "ToolStripButton1"
-		Me.ToolStripBtOpen.ToolTipText = "Open..."
-		'
-		'ToolStripBtSave
-		'
-		Me.ToolStripBtSave.DisplayStyle = ToolStripItemDisplayStyle.Image
-		Me.ToolStripBtSave.Image = My.Resources.Resources.Actions_document_save_icon
-		Me.ToolStripBtSave.ImageTransparentColor = Color.Magenta
-		Me.ToolStripBtSave.Name = "ToolStripBtSave"
-		Me.ToolStripBtSave.Size = New Size(23, 22)
-		Me.ToolStripBtSave.Text = "ToolStripButton1"
-		Me.ToolStripBtSave.ToolTipText = "Save"
-		'
-		'ToolStripBtSaveAs
-		'
-		Me.ToolStripBtSaveAs.DisplayStyle = ToolStripItemDisplayStyle.Image
-		Me.ToolStripBtSaveAs.Image = My.Resources.Resources.Actions_document_save_as_icon
-		Me.ToolStripBtSaveAs.ImageTransparentColor = Color.Magenta
-		Me.ToolStripBtSaveAs.Name = "ToolStripBtSaveAs"
-		Me.ToolStripBtSaveAs.Size = New Size(23, 22)
-		Me.ToolStripBtSaveAs.Text = "ToolStripButton1"
-		Me.ToolStripBtSaveAs.ToolTipText = "Save As..."
-		'
-		'ToolStripSeparator3
-		'
-		Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
-		Me.ToolStripSeparator3.Size = New Size(6, 25)
-		'
-		'ToolStripBtSendTo
-		'
-		Me.ToolStripBtSendTo.DisplayStyle = ToolStripItemDisplayStyle.Image
-		Me.ToolStripBtSendTo.Image = My.Resources.Resources.export_icon
-		Me.ToolStripBtSendTo.ImageTransparentColor = Color.Magenta
-		Me.ToolStripBtSendTo.Name = "ToolStripBtSendTo"
-		Me.ToolStripBtSendTo.Size = New Size(23, 22)
-		Me.ToolStripBtSendTo.Text = "Send to Job Editor"
-		Me.ToolStripBtSendTo.ToolTipText = "Send to Job Editor"
-		'
-		'ToolStripSeparator1
-		'
-		Me.ToolStripSeparator1.Name = "ToolStripSeparator1"
-		Me.ToolStripSeparator1.Size = New Size(6, 25)
-		'
-		'ToolStripButton1
-		'
-		Me.ToolStripButton1.DisplayStyle = ToolStripItemDisplayStyle.Image
-		Me.ToolStripButton1.Image = My.Resources.Resources.Help_icon
-		Me.ToolStripButton1.ImageTransparentColor = Color.Magenta
-		Me.ToolStripButton1.Name = "ToolStripButton1"
-		Me.ToolStripButton1.Size = New Size(23, 22)
-		Me.ToolStripButton1.Text = "Help"
-		'
-		'StatusStrip1
-		'
-		Me.StatusStrip1.Items.AddRange(New ToolStripItem() {Me.LbStatus})
-		Me.StatusStrip1.Location = New Point(0, 684)
-		Me.StatusStrip1.Name = "StatusStrip1"
-		Me.StatusStrip1.Size = New Size(877, 22)
-		Me.StatusStrip1.SizingGrip = False
-		Me.StatusStrip1.TabIndex = 37
-		Me.StatusStrip1.Text = "StatusStrip1"
-		'
-		'LbStatus
-		'
-		Me.LbStatus.Name = "LbStatus"
-		Me.LbStatus.Size = New Size(39, 17)
-		Me.LbStatus.Text = "Status"
-		'
-		'ButCancel
-		'
-		Me.ButCancel.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Right), AnchorStyles)
-		Me.ButCancel.DialogResult = DialogResult.Cancel
-		Me.ButCancel.Location = New Point(790, 658)
-		Me.ButCancel.Name = "ButCancel"
-		Me.ButCancel.Size = New Size(75, 23)
-		Me.ButCancel.TabIndex = 7
-		Me.ButCancel.Text = "Cancel"
-		Me.ButCancel.UseVisualStyleBackColor = True
-		'
-		'ButOK
-		'
-		Me.ButOK.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Right), AnchorStyles)
-		Me.ButOK.Location = New Point(709, 658)
-		Me.ButOK.Name = "ButOK"
-		Me.ButOK.Size = New Size(75, 23)
-		Me.ButOK.TabIndex = 6
-		Me.ButOK.Text = "Save"
-		Me.ButOK.UseVisualStyleBackColor = True
-		'
-		'TbTracInt
-		'
-		Me.TbTracInt.Location = New Point(303, 3)
-		Me.TbTracInt.Name = "TbTracInt"
-		Me.TbTracInt.Size = New Size(40, 20)
-		Me.TbTracInt.TabIndex = 1
-		'
-		'LvGears
-		'
-		Me.LvGears.Columns.AddRange(New ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3, Me.ColumnHeader5, Me.ColumnHeader6})
-		Me.LvGears.FullRowSelect = True
-		Me.LvGears.GridLines = True
-		Me.LvGears.HideSelection = False
-		Me.LvGears.Location = New Point(6, 18)
-		Me.LvGears.MultiSelect = False
-		Me.LvGears.Name = "LvGears"
-		Me.LvGears.Size = New Size(429, 183)
-		Me.LvGears.TabIndex = 0
-		Me.LvGears.TabStop = False
-		Me.LvGears.UseCompatibleStateImageBehavior = False
-		Me.LvGears.View = View.Details
-		'
-		'ColumnHeader1
-		'
-		Me.ColumnHeader1.Text = "Gear"
-		Me.ColumnHeader1.Width = 46
-		'
-		'ColumnHeader2
-		'
-		Me.ColumnHeader2.Text = "Ratio"
-		Me.ColumnHeader2.Width = 50
-		'
-		'ColumnHeader3
-		'
-		Me.ColumnHeader3.Text = "Loss Map or Efficiency"
-		Me.ColumnHeader3.Width = 128
-		'
-		'ColumnHeader5
-		'
-		Me.ColumnHeader5.Text = "Shift Polygons"
-		Me.ColumnHeader5.Width = 94
-		'
-		'ColumnHeader6
-		'
-		Me.ColumnHeader6.Text = "Max Torque"
-		Me.ColumnHeader6.Width = 95
-		'
-		'TBI_getr
-		'
-		Me.TBI_getr.Location = New Point(53, 3)
-		Me.TBI_getr.Name = "TBI_getr"
-		Me.TBI_getr.Size = New Size(57, 20)
-		Me.TBI_getr.TabIndex = 0
-		'
-		'Label49
-		'
-		Me.Label49.AutoSize = True
-		Me.Label49.Location = New Point(349, 6)
-		Me.Label49.Name = "Label49"
-		Me.Label49.Size = New Size(18, 13)
-		Me.Label49.TabIndex = 2
-		Me.Label49.Text = "[s]"
-		'
-		'Label33
-		'
-		Me.Label33.AutoSize = True
-		Me.Label33.Location = New Point(116, 6)
-		Me.Label33.Name = "Label33"
-		Me.Label33.Size = New Size(36, 13)
-		Me.Label33.TabIndex = 2
-		Me.Label33.Text = "[kgm²]"
-		'
-		'Label48
-		'
-		Me.Label48.AutoSize = True
-		Me.Label48.Location = New Point(195, 6)
-		Me.Label48.Name = "Label48"
-		Me.Label48.Size = New Size(102, 13)
-		Me.Label48.TabIndex = 2
-		Me.Label48.Text = "Traction Interruption"
-		'
-		'Label6
-		'
-		Me.Label6.AutoSize = True
-		Me.Label6.Location = New Point(11, 6)
-		Me.Label6.Name = "Label6"
-		Me.Label6.Size = New Size(36, 13)
-		Me.Label6.TabIndex = 2
-		Me.Label6.Text = "Inertia"
-		'
-		'Label3
-		'
-		Me.Label3.AutoSize = True
-		Me.Label3.Location = New Point(26, 85)
-		Me.Label3.Name = "Label3"
-		Me.Label3.Size = New Size(87, 13)
-		Me.Label3.TabIndex = 42
-		Me.Label3.Text = "Make and Model"
-		'
-		'TbName
-		'
-		Me.TbName.Location = New Point(119, 82)
-		Me.TbName.Name = "TbName"
-		Me.TbName.Size = New Size(334, 20)
-		Me.TbName.TabIndex = 0
-		'
-		'PictureBox1
-		'
-		Me.PictureBox1.BackColor = Color.White
-		Me.PictureBox1.Image = My.Resources.Resources.VECTO_GBX
-		Me.PictureBox1.Location = New Point(12, 28)
-		Me.PictureBox1.Name = "PictureBox1"
-		Me.PictureBox1.Size = New Size(441, 40)
-		Me.PictureBox1.TabIndex = 43
-		Me.PictureBox1.TabStop = False
-		'
-		'BtRemGear
-		'
-		Me.BtRemGear.Image = My.Resources.Resources.minus_circle_icon
-		Me.BtRemGear.Location = New Point(30, 202)
-		Me.BtRemGear.Name = "BtRemGear"
-		Me.BtRemGear.Size = New Size(24, 24)
-		Me.BtRemGear.TabIndex = 2
-		Me.BtRemGear.UseVisualStyleBackColor = True
-		'
-		'GrGearShift
-		'
-		Me.GrGearShift.Controls.Add(Me.GroupBox1)
-		Me.GrGearShift.Controls.Add(Me.PnTorqRes)
-		Me.GrGearShift.Controls.Add(Me.ChShiftInside)
-		Me.GrGearShift.Controls.Add(Me.TbShiftTime)
-		Me.GrGearShift.Controls.Add(Me.Label12)
-		Me.GrGearShift.Controls.Add(Me.Label13)
-		Me.GrGearShift.Controls.Add(Me.ChSkipGears)
-		Me.GrGearShift.Controls.Add(Me.GroupBox2)
-		Me.GrGearShift.Location = New Point(12, 377)
-		Me.GrGearShift.Name = "GrGearShift"
-		Me.GrGearShift.Size = New Size(441, 291)
-		Me.GrGearShift.TabIndex = 3
-		Me.GrGearShift.TabStop = False
-		Me.GrGearShift.Text = "Gear shift parameters"
-		'
-		'GroupBox1
-		'
-		Me.GroupBox1.Controls.Add(Me.tbUpshiftMinAcceleration)
-		Me.GroupBox1.Controls.Add(Me.tbUpshiftAfterDownshift)
-		Me.GroupBox1.Controls.Add(Me.tbDownshiftAfterUpshift)
-		Me.GroupBox1.Controls.Add(Me.Label24)
-		Me.GroupBox1.Controls.Add(Me.Label23)
-		Me.GroupBox1.Controls.Add(Me.Label22)
-		Me.GroupBox1.Controls.Add(Me.Label21)
-		Me.GroupBox1.Controls.Add(Me.Label20)
-		Me.GroupBox1.Controls.Add(Me.Label19)
-		Me.GroupBox1.Location = New Point(6, 82)
-		Me.GroupBox1.Name = "GroupBox1"
-		Me.GroupBox1.Size = New Size(429, 100)
-		Me.GroupBox1.TabIndex = 10
-		Me.GroupBox1.TabStop = False
-		Me.GroupBox1.Text = "Shift Strategy Parameters"
-		'
-		'tbUpshiftMinAcceleration
-		'
-		Me.tbUpshiftMinAcceleration.Location = New Point(209, 71)
-		Me.tbUpshiftMinAcceleration.Name = "tbUpshiftMinAcceleration"
-		Me.tbUpshiftMinAcceleration.Size = New Size(57, 20)
-		Me.tbUpshiftMinAcceleration.TabIndex = 8
-		'
-		'tbUpshiftAfterDownshift
-		'
-		Me.tbUpshiftAfterDownshift.Location = New Point(209, 45)
-		Me.tbUpshiftAfterDownshift.Name = "tbUpshiftAfterDownshift"
-		Me.tbUpshiftAfterDownshift.Size = New Size(57, 20)
-		Me.tbUpshiftAfterDownshift.TabIndex = 7
-		'
-		'tbDownshiftAfterUpshift
-		'
-		Me.tbDownshiftAfterUpshift.Location = New Point(209, 20)
-		Me.tbDownshiftAfterUpshift.Name = "tbDownshiftAfterUpshift"
-		Me.tbDownshiftAfterUpshift.Size = New Size(57, 20)
-		Me.tbDownshiftAfterUpshift.TabIndex = 6
-		'
-		'Label24
-		'
-		Me.Label24.AutoSize = True
-		Me.Label24.Location = New Point(275, 74)
-		Me.Label24.Name = "Label24"
-		Me.Label24.Size = New Size(34, 13)
-		Me.Label24.TabIndex = 5
-		Me.Label24.Text = "[m/s²]"
-		'
-		'Label23
-		'
-		Me.Label23.AutoSize = True
-		Me.Label23.Location = New Point(275, 48)
-		Me.Label23.Name = "Label23"
-		Me.Label23.Size = New Size(18, 13)
-		Me.Label23.TabIndex = 4
-		Me.Label23.Text = "[s]"
-		'
-		'Label22
-		'
-		Me.Label22.AutoSize = True
-		Me.Label22.Location = New Point(275, 25)
-		Me.Label22.Name = "Label22"
-		Me.Label22.Size = New Size(18, 13)
-		Me.Label22.TabIndex = 3
-		Me.Label22.Text = "[s]"
-		'
-		'Label21
-		'
-		Me.Label21.AutoSize = True
-		Me.Label21.Location = New Point(20, 74)
-		Me.Label21.Name = "Label21"
-		Me.Label21.Size = New Size(146, 13)
-		Me.Label21.TabIndex = 2
-		Me.Label21.Text = "Min. acceleration after upshift"
-		'
-		'Label20
-		'
-		Me.Label20.AutoSize = True
-		Me.Label20.Location = New Point(20, 48)
-		Me.Label20.Name = "Label20"
-		Me.Label20.Size = New Size(137, 13)
-		Me.Label20.TabIndex = 1
-		Me.Label20.Text = "Upshift afer downshift delay"
-		'
-		'Label19
-		'
-		Me.Label19.AutoSize = True
-		Me.Label19.Location = New Point(20, 25)
-		Me.Label19.Name = "Label19"
-		Me.Label19.Size = New Size(137, 13)
-		Me.Label19.TabIndex = 0
-		Me.Label19.Text = "Downshift afer upshift delay"
-		'
-		'PnTorqRes
-		'
-		Me.PnTorqRes.Controls.Add(Me.Label2)
-		Me.PnTorqRes.Controls.Add(Me.Label4)
-		Me.PnTorqRes.Controls.Add(Me.TbTqResv)
-		Me.PnTorqRes.Location = New Point(230, 19)
-		Me.PnTorqRes.Name = "PnTorqRes"
-		Me.PnTorqRes.Size = New Size(190, 32)
-		Me.PnTorqRes.TabIndex = 2
-		'
-		'Label2
-		'
-		Me.Label2.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
-		Me.Label2.AutoSize = True
-		Me.Label2.Location = New Point(10, 9)
-		Me.Label2.Name = "Label2"
-		Me.Label2.Size = New Size(79, 13)
-		Me.Label2.TabIndex = 0
-		Me.Label2.Text = "Torque reserve"
-		'
-		'Label4
-		'
-		Me.Label4.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
-		Me.Label4.AutoSize = True
-		Me.Label4.Location = New Point(158, 9)
-		Me.Label4.Name = "Label4"
-		Me.Label4.Size = New Size(21, 13)
-		Me.Label4.TabIndex = 0
-		Me.Label4.Text = "[%]"
-		'
-		'TbTqResv
-		'
-		Me.TbTqResv.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
-		Me.TbTqResv.Location = New Point(95, 6)
-		Me.TbTqResv.Name = "TbTqResv"
-		Me.TbTqResv.Size = New Size(57, 20)
-		Me.TbTqResv.TabIndex = 0
-		'
-		'ChShiftInside
-		'
-		Me.ChShiftInside.AutoSize = True
-		Me.ChShiftInside.Checked = True
-		Me.ChShiftInside.CheckState = CheckState.Checked
-		Me.ChShiftInside.Location = New Point(9, 27)
-		Me.ChShiftInside.Name = "ChShiftInside"
-		Me.ChShiftInside.Size = New Size(195, 17)
-		Me.ChShiftInside.TabIndex = 0
-		Me.ChShiftInside.Text = "Allow shift-up inside polygons (AMT)"
-		Me.ChShiftInside.UseVisualStyleBackColor = True
-		'
-		'TbShiftTime
-		'
-		Me.TbShiftTime.Location = New Point(325, 51)
-		Me.TbShiftTime.Name = "TbShiftTime"
-		Me.TbShiftTime.Size = New Size(57, 20)
-		Me.TbShiftTime.TabIndex = 3
-		'
-		'Label12
-		'
-		Me.Label12.AutoSize = True
-		Me.Label12.Location = New Point(388, 54)
-		Me.Label12.Name = "Label12"
-		Me.Label12.Size = New Size(18, 13)
-		Me.Label12.TabIndex = 9
-		Me.Label12.Text = "[s]"
-		'
-		'Label13
-		'
-		Me.Label13.AutoSize = True
-		Me.Label13.Location = New Point(227, 54)
-		Me.Label13.Name = "Label13"
-		Me.Label13.Size = New Size(92, 13)
-		Me.Label13.TabIndex = 8
-		Me.Label13.Text = "Minimum shift time"
-		'
-		'ChSkipGears
-		'
-		Me.ChSkipGears.AutoSize = True
-		Me.ChSkipGears.Location = New Point(9, 53)
-		Me.ChSkipGears.Name = "ChSkipGears"
-		Me.ChSkipGears.Size = New Size(132, 17)
-		Me.ChSkipGears.TabIndex = 1
-		Me.ChSkipGears.Text = "Skip Gears (MT, AMT)"
-		Me.ChSkipGears.UseVisualStyleBackColor = True
-		'
-		'GroupBox2
-		'
-		Me.GroupBox2.Controls.Add(Me.TbStartAcc)
-		Me.GroupBox2.Controls.Add(Me.Label11)
-		Me.GroupBox2.Controls.Add(Me.TbStartSpeed)
-		Me.GroupBox2.Controls.Add(Me.Label9)
-		Me.GroupBox2.Controls.Add(Me.Label10)
-		Me.GroupBox2.Controls.Add(Me.TbTqResvStart)
-		Me.GroupBox2.Controls.Add(Me.Label8)
-		Me.GroupBox2.Controls.Add(Me.Label5)
-		Me.GroupBox2.Controls.Add(Me.Label7)
-		Me.GroupBox2.Location = New Point(6, 186)
-		Me.GroupBox2.Name = "GroupBox2"
-		Me.GroupBox2.Size = New Size(429, 99)
-		Me.GroupBox2.TabIndex = 4
-		Me.GroupBox2.TabStop = False
-		Me.GroupBox2.Text = "Start Gear"
-		'
-		'TbStartAcc
-		'
-		Me.TbStartAcc.Location = New Point(209, 71)
-		Me.TbStartAcc.Name = "TbStartAcc"
-		Me.TbStartAcc.Size = New Size(57, 20)
-		Me.TbStartAcc.TabIndex = 2
-		'
-		'Label11
-		'
-		Me.Label11.AutoSize = True
-		Me.Label11.Location = New Point(20, 74)
-		Me.Label11.Name = "Label11"
-		Me.Label11.Size = New Size(173, 13)
-		Me.Label11.TabIndex = 0
-		Me.Label11.Text = "Reference acceleration at clutch-in"
-		'
-		'TbStartSpeed
-		'
-		Me.TbStartSpeed.Location = New Point(209, 45)
-		Me.TbStartSpeed.Name = "TbStartSpeed"
-		Me.TbStartSpeed.Size = New Size(57, 20)
-		Me.TbStartSpeed.TabIndex = 1
-		'
-		'Label9
-		'
-		Me.Label9.AutoSize = True
-		Me.Label9.Location = New Point(20, 48)
-		Me.Label9.Name = "Label9"
-		Me.Label9.Size = New Size(181, 13)
-		Me.Label9.TabIndex = 0
-		Me.Label9.Text = "Reference vehicle speed at clutch-in"
-		'
-		'Label10
-		'
-		Me.Label10.AutoSize = True
-		Me.Label10.Location = New Point(272, 74)
-		Me.Label10.Name = "Label10"
-		Me.Label10.Size = New Size(34, 13)
-		Me.Label10.TabIndex = 0
-		Me.Label10.Text = "[m/s²]"
-		'
-		'TbTqResvStart
-		'
-		Me.TbTqResvStart.Location = New Point(209, 19)
-		Me.TbTqResvStart.Name = "TbTqResvStart"
-		Me.TbTqResvStart.Size = New Size(57, 20)
-		Me.TbTqResvStart.TabIndex = 0
-		'
-		'Label8
-		'
-		Me.Label8.AutoSize = True
-		Me.Label8.Location = New Point(272, 48)
-		Me.Label8.Name = "Label8"
-		Me.Label8.Size = New Size(31, 13)
-		Me.Label8.TabIndex = 0
-		Me.Label8.Text = "[m/s]"
-		'
-		'Label5
-		'
-		Me.Label5.AutoSize = True
-		Me.Label5.Location = New Point(20, 22)
-		Me.Label5.Name = "Label5"
-		Me.Label5.Size = New Size(79, 13)
-		Me.Label5.TabIndex = 0
-		Me.Label5.Text = "Torque reserve"
-		'
-		'Label7
-		'
-		Me.Label7.AutoSize = True
-		Me.Label7.Location = New Point(272, 22)
-		Me.Label7.Name = "Label7"
-		Me.Label7.Size = New Size(21, 13)
-		Me.Label7.TabIndex = 0
-		Me.Label7.Text = "[%]"
-		'
-		'CmOpenFile
-		'
-		Me.CmOpenFile.Items.AddRange(New ToolStripItem() {Me.OpenWithToolStripMenuItem, Me.ShowInFolderToolStripMenuItem})
-		Me.CmOpenFile.Name = "CmOpenFile"
-		Me.CmOpenFile.Size = New Size(153, 48)
-		'
-		'OpenWithToolStripMenuItem
-		'
-		Me.OpenWithToolStripMenuItem.Name = "OpenWithToolStripMenuItem"
-		Me.OpenWithToolStripMenuItem.Size = New Size(152, 22)
-		Me.OpenWithToolStripMenuItem.Text = "Open with ..."
-		'
-		'ShowInFolderToolStripMenuItem
-		'
-		Me.ShowInFolderToolStripMenuItem.Name = "ShowInFolderToolStripMenuItem"
-		Me.ShowInFolderToolStripMenuItem.Size = New Size(152, 22)
-		Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder"
-		'
-		'GroupBox3
-		'
-		Me.GroupBox3.Controls.Add(Me.BtTCShiftFileBrowse)
-		Me.GroupBox3.Controls.Add(Me.LblTCShiftFile)
-		Me.GroupBox3.Controls.Add(Me.TBTCShiftPolygon)
-		Me.GroupBox3.Controls.Add(Me.PnTC)
-		Me.GroupBox3.Controls.Add(Me.ChTCon)
-		Me.GroupBox3.Location = New Point(459, 440)
-		Me.GroupBox3.Name = "GroupBox3"
-		Me.GroupBox3.Size = New Size(414, 162)
-		Me.GroupBox3.TabIndex = 5
-		Me.GroupBox3.TabStop = False
-		Me.GroupBox3.Text = "Torque Converter"
-		'
-		'PnTC
-		'
-		Me.PnTC.Controls.Add(Me.Label17)
-		Me.PnTC.Controls.Add(Me.Label18)
-		Me.PnTC.Controls.Add(Me.Label15)
-		Me.PnTC.Controls.Add(Me.TbTCinertia)
-		Me.PnTC.Controls.Add(Me.Label1)
-		Me.PnTC.Controls.Add(Me.Label14)
-		Me.PnTC.Controls.Add(Me.BtTCfileBrowse)
-		Me.PnTC.Controls.Add(Me.TbTCfile)
-		Me.PnTC.Controls.Add(Me.BtTCfileOpen)
-		Me.PnTC.Controls.Add(Me.TbTCrefrpm)
-		Me.PnTC.Location = New Point(6, 39)
-		Me.PnTC.Name = "PnTC"
-		Me.PnTC.Size = New Size(402, 72)
-		Me.PnTC.TabIndex = 36
-		'
-		'Label17
-		'
-		Me.Label17.AutoSize = True
-		Me.Label17.Location = New Point(0, 5)
-		Me.Label17.Name = "Label17"
-		Me.Label17.Size = New Size(176, 13)
-		Me.Label17.TabIndex = 0
-		Me.Label17.Text = "Torque converter characteristics file"
-		'
-		'Label18
-		'
-		Me.Label18.AutoSize = True
-		Me.Label18.Location = New Point(5, 50)
-		Me.Label18.Name = "Label18"
-		Me.Label18.Size = New Size(36, 13)
-		Me.Label18.TabIndex = 2
-		Me.Label18.Text = "Inertia"
-		'
-		'Label15
-		'
-		Me.Label15.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
-		Me.Label15.AutoSize = True
-		Me.Label15.Location = New Point(185, 50)
-		Me.Label15.Name = "Label15"
-		Me.Label15.Size = New Size(77, 13)
-		Me.Label15.TabIndex = 0
-		Me.Label15.Text = "Reference rpm"
-		'
-		'TbTCinertia
-		'
-		Me.TbTCinertia.Location = New Point(47, 47)
-		Me.TbTCinertia.Name = "TbTCinertia"
-		Me.TbTCinertia.Size = New Size(67, 20)
-		Me.TbTCinertia.TabIndex = 3
-		'
-		'Label1
-		'
-		Me.Label1.AutoSize = True
-		Me.Label1.Location = New Point(120, 50)
-		Me.Label1.Name = "Label1"
-		Me.Label1.Size = New Size(36, 13)
-		Me.Label1.TabIndex = 2
-		Me.Label1.Text = "[kgm²]"
-		'
-		'Label14
-		'
-		Me.Label14.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
-		Me.Label14.AutoSize = True
-		Me.Label14.Location = New Point(341, 50)
-		Me.Label14.Name = "Label14"
-		Me.Label14.Size = New Size(40, 13)
-		Me.Label14.TabIndex = 0
-		Me.Label14.Text = "[1/min]"
-		'
-		'BtTCfileBrowse
-		'
-		Me.BtTCfileBrowse.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
-		Me.BtTCfileBrowse.Image = My.Resources.Resources.Open_icon
-		Me.BtTCfileBrowse.Location = New Point(348, 19)
-		Me.BtTCfileBrowse.Name = "BtTCfileBrowse"
-		Me.BtTCfileBrowse.Size = New Size(24, 24)
-		Me.BtTCfileBrowse.TabIndex = 1
-		Me.BtTCfileBrowse.TabStop = False
-		Me.BtTCfileBrowse.UseVisualStyleBackColor = True
-		'
-		'TbTCfile
-		'
-		Me.TbTCfile.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
-			Or AnchorStyles.Right), AnchorStyles)
-		Me.TbTCfile.Location = New Point(4, 21)
-		Me.TbTCfile.Name = "TbTCfile"
-		Me.TbTCfile.Size = New Size(343, 20)
-		Me.TbTCfile.TabIndex = 0
-		'
-		'BtTCfileOpen
-		'
-		Me.BtTCfileOpen.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
-		Me.BtTCfileOpen.Image = My.Resources.Resources.application_export_icon_small
-		Me.BtTCfileOpen.Location = New Point(372, 19)
-		Me.BtTCfileOpen.Name = "BtTCfileOpen"
-		Me.BtTCfileOpen.Size = New Size(24, 24)
-		Me.BtTCfileOpen.TabIndex = 2
-		Me.BtTCfileOpen.TabStop = False
-		Me.BtTCfileOpen.UseVisualStyleBackColor = True
-		'
-		'TbTCrefrpm
-		'
-		Me.TbTCrefrpm.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
-		Me.TbTCrefrpm.Location = New Point(268, 47)
-		Me.TbTCrefrpm.Name = "TbTCrefrpm"
-		Me.TbTCrefrpm.Size = New Size(67, 20)
-		Me.TbTCrefrpm.TabIndex = 4
-		'
-		'ChTCon
-		'
-		Me.ChTCon.AutoSize = True
-		Me.ChTCon.Checked = True
-		Me.ChTCon.CheckState = CheckState.Checked
-		Me.ChTCon.Location = New Point(9, 19)
-		Me.ChTCon.Name = "ChTCon"
-		Me.ChTCon.Size = New Size(88, 17)
-		Me.ChTCon.TabIndex = 0
-		Me.ChTCon.Text = "Installed (AT)"
-		Me.ChTCon.UseVisualStyleBackColor = True
-		'
-		'Label16
-		'
-		Me.Label16.AutoSize = True
-		Me.Label16.Location = New Point(18, 111)
-		Me.Label16.Name = "Label16"
-		Me.Label16.Size = New Size(95, 13)
-		Me.Label16.TabIndex = 45
-		Me.Label16.Text = "Transmission Type"
-		'
-		'CbGStype
-		'
-		Me.CbGStype.DropDownStyle = ComboBoxStyle.DropDownList
-		Me.CbGStype.FormattingEnabled = True
-		Me.CbGStype.Location = New Point(119, 108)
-		Me.CbGStype.Name = "CbGStype"
-		Me.CbGStype.Size = New Size(227, 21)
-		Me.CbGStype.TabIndex = 1
-		'
-		'BtAddGear
-		'
-		Me.BtAddGear.Image = My.Resources.Resources.plus_circle_icon
-		Me.BtAddGear.Location = New Point(6, 202)
-		Me.BtAddGear.Name = "BtAddGear"
-		Me.BtAddGear.Size = New Size(24, 24)
-		Me.BtAddGear.TabIndex = 1
-		Me.BtAddGear.UseVisualStyleBackColor = True
-		'
-		'GroupBox4
-		'
-		Me.GroupBox4.Controls.Add(Me.Label32)
-		Me.GroupBox4.Controls.Add(Me.LvGears)
-		Me.GroupBox4.Controls.Add(Me.BtRemGear)
-		Me.GroupBox4.Controls.Add(Me.BtAddGear)
-		Me.GroupBox4.Location = New Point(12, 135)
-		Me.GroupBox4.Name = "GroupBox4"
-		Me.GroupBox4.Size = New Size(441, 232)
-		Me.GroupBox4.TabIndex = 2
-		Me.GroupBox4.TabStop = False
-		Me.GroupBox4.Text = "Gears"
-		'
-		'Label32
-		'
-		Me.Label32.AutoSize = True
-		Me.Label32.Location = New Point(331, 202)
-		Me.Label32.Name = "Label32"
-		Me.Label32.Size = New Size(106, 13)
-		Me.Label32.TabIndex = 3
-		Me.Label32.Text = "(Double-Click to Edit)"
-		'
-		'PnInertiaTI
-		'
-		Me.PnInertiaTI.Controls.Add(Me.Label6)
-		Me.PnInertiaTI.Controls.Add(Me.TBI_getr)
-		Me.PnInertiaTI.Controls.Add(Me.Label33)
-		Me.PnInertiaTI.Controls.Add(Me.Label48)
-		Me.PnInertiaTI.Controls.Add(Me.Label49)
-		Me.PnInertiaTI.Controls.Add(Me.TbTracInt)
-		Me.PnInertiaTI.Location = New Point(469, 406)
-		Me.PnInertiaTI.Name = "PnInertiaTI"
-		Me.PnInertiaTI.Size = New Size(398, 30)
-		Me.PnInertiaTI.TabIndex = 4
-		'
-		'PicBox
-		'
-		Me.PicBox.BackColor = Color.LightGray
-		Me.PicBox.Location = New Point(459, 28)
-		Me.PicBox.Name = "PicBox"
-		Me.PicBox.Size = New Size(406, 372)
-		Me.PicBox.TabIndex = 48
-		Me.PicBox.TabStop = False
-		'
-		'TBTCShiftPolygon
-		'
-		Me.TBTCShiftPolygon.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
-			Or AnchorStyles.Right), AnchorStyles)
-		Me.TBTCShiftPolygon.Location = New Point(10, 136)
-		Me.TBTCShiftPolygon.Name = "TBTCShiftPolygon"
-		Me.TBTCShiftPolygon.Size = New Size(343, 20)
-		Me.TBTCShiftPolygon.TabIndex = 37
-		'
-		'LblTCShiftFile
-		'
-		Me.LblTCShiftFile.AutoSize = True
-		Me.LblTCShiftFile.Location = New Point(7, 120)
-		Me.LblTCShiftFile.Name = "LblTCShiftFile"
-		Me.LblTCShiftFile.Size = New Size(172, 13)
-		Me.LblTCShiftFile.TabIndex = 5
-		Me.LblTCShiftFile.Text = "Torque converter shift polygons file"
-		'
-		'BtTCShiftFileBrowse
-		'
-		Me.BtTCShiftFileBrowse.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
-		Me.BtTCShiftFileBrowse.Image = My.Resources.Resources.Open_icon
-		Me.BtTCShiftFileBrowse.Location = New Point(354, 134)
-		Me.BtTCShiftFileBrowse.Name = "BtTCShiftFileBrowse"
-		Me.BtTCShiftFileBrowse.Size = New Size(24, 24)
-		Me.BtTCShiftFileBrowse.TabIndex = 5
-		Me.BtTCShiftFileBrowse.TabStop = False
-		Me.BtTCShiftFileBrowse.UseVisualStyleBackColor = True
-		'
-		'F_GBX
-		'
-		Me.AcceptButton = Me.ButOK
-		Me.AutoScaleDimensions = New SizeF(6.0!, 13.0!)
-		Me.AutoScaleMode = AutoScaleMode.Font
-		Me.CancelButton = Me.ButCancel
-		Me.ClientSize = New Size(877, 706)
-		Me.Controls.Add(Me.PicBox)
-		Me.Controls.Add(Me.PnInertiaTI)
-		Me.Controls.Add(Me.GroupBox4)
-		Me.Controls.Add(Me.CbGStype)
-		Me.Controls.Add(Me.Label16)
-		Me.Controls.Add(Me.PictureBox1)
-		Me.Controls.Add(Me.GrGearShift)
-		Me.Controls.Add(Me.GroupBox3)
-		Me.Controls.Add(Me.Label3)
-		Me.Controls.Add(Me.TbName)
-		Me.Controls.Add(Me.ButCancel)
-		Me.Controls.Add(Me.ButOK)
-		Me.Controls.Add(Me.StatusStrip1)
-		Me.Controls.Add(Me.ToolStrip1)
-		Me.FormBorderStyle = FormBorderStyle.FixedSingle
-		Me.Icon = CType(resources.GetObject("$this.Icon"), Icon)
-		Me.MaximizeBox = False
-		Me.Name = "F_GBX"
-		Me.StartPosition = FormStartPosition.CenterParent
-		Me.Text = "F_GBX"
-		Me.ToolStrip1.ResumeLayout(False)
-		Me.ToolStrip1.PerformLayout()
-		Me.StatusStrip1.ResumeLayout(False)
-		Me.StatusStrip1.PerformLayout()
-		CType(Me.PictureBox1, ISupportInitialize).EndInit()
-		Me.GrGearShift.ResumeLayout(False)
-		Me.GrGearShift.PerformLayout()
-		Me.GroupBox1.ResumeLayout(False)
-		Me.GroupBox1.PerformLayout()
-		Me.PnTorqRes.ResumeLayout(False)
-		Me.PnTorqRes.PerformLayout()
-		Me.GroupBox2.ResumeLayout(False)
-		Me.GroupBox2.PerformLayout()
-		Me.CmOpenFile.ResumeLayout(False)
-		Me.GroupBox3.ResumeLayout(False)
-		Me.GroupBox3.PerformLayout()
-		Me.PnTC.ResumeLayout(False)
-		Me.PnTC.PerformLayout()
-		Me.GroupBox4.ResumeLayout(False)
-		Me.GroupBox4.PerformLayout()
-		Me.PnInertiaTI.ResumeLayout(False)
-		Me.PnInertiaTI.PerformLayout()
-		CType(Me.PicBox, ISupportInitialize).EndInit()
-		Me.ResumeLayout(False)
-		Me.PerformLayout()
-
-	End Sub
-	Friend WithEvents ToolStrip1 As ToolStrip
-	Friend WithEvents ToolStripBtNew As ToolStripButton
-	Friend WithEvents ToolStripBtOpen As ToolStripButton
-	Friend WithEvents ToolStripBtSave As ToolStripButton
-	Friend WithEvents ToolStripBtSaveAs As ToolStripButton
-	Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
-	Friend WithEvents ToolStripBtSendTo As ToolStripButton
-	Friend WithEvents StatusStrip1 As StatusStrip
-	Friend WithEvents LbStatus As ToolStripStatusLabel
-	Friend WithEvents ButCancel As Button
-	Friend WithEvents ButOK As Button
-	Friend WithEvents BtRemGear As Button
-	Friend WithEvents TbTracInt As TextBox
-	Friend WithEvents LvGears As ListView
-	Friend WithEvents ColumnHeader1 As ColumnHeader
-	Friend WithEvents ColumnHeader2 As ColumnHeader
-	Friend WithEvents ColumnHeader3 As ColumnHeader
-	Friend WithEvents TBI_getr As TextBox
-	Friend WithEvents Label49 As Label
-	Friend WithEvents Label33 As Label
-	Friend WithEvents Label48 As Label
-	Friend WithEvents Label6 As Label
-	Friend WithEvents Label3 As Label
-	Friend WithEvents TbName As TextBox
-	Friend WithEvents PictureBox1 As PictureBox
-	Friend WithEvents ToolStripSeparator1 As ToolStripSeparator
-	Friend WithEvents ToolStripButton1 As ToolStripButton
-	Friend WithEvents GrGearShift As GroupBox
-	Friend WithEvents Label2 As Label
-	Friend WithEvents TbTqResvStart As TextBox
-	Friend WithEvents TbTqResv As TextBox
-	Friend WithEvents Label7 As Label
-	Friend WithEvents Label5 As Label
-	Friend WithEvents Label4 As Label
-	Friend WithEvents GroupBox2 As GroupBox
-	Friend WithEvents TbStartAcc As TextBox
-	Friend WithEvents Label11 As Label
-	Friend WithEvents TbStartSpeed As TextBox
-	Friend WithEvents Label9 As Label
-	Friend WithEvents Label10 As Label
-	Friend WithEvents Label8 As Label
-	Friend WithEvents TbShiftTime As TextBox
-	Friend WithEvents Label12 As Label
-	Friend WithEvents Label13 As Label
-	Friend WithEvents ChSkipGears As CheckBox
-	Friend WithEvents ChShiftInside As CheckBox
-	Friend WithEvents CmOpenFile As ContextMenuStrip
-	Friend WithEvents OpenWithToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents ShowInFolderToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents GroupBox3 As GroupBox
-	Friend WithEvents TbTCfile As TextBox
-	Friend WithEvents ChTCon As CheckBox
-	Friend WithEvents BtTCfileBrowse As Button
-	Friend WithEvents BtTCfileOpen As Button
-	Friend WithEvents TbTCrefrpm As TextBox
-	Friend WithEvents Label14 As Label
-	Friend WithEvents Label15 As Label
-	Friend WithEvents Label16 As Label
-	Friend WithEvents CbGStype As ComboBox
-	Friend WithEvents Label17 As Label
-	Friend WithEvents PnTC As Panel
-	Friend WithEvents PnTorqRes As Panel
-	Friend WithEvents BtAddGear As Button
-	Friend WithEvents ColumnHeader4 As ColumnHeader
-	Friend WithEvents GroupBox4 As GroupBox
-	Friend WithEvents Label32 As Label
-	Friend WithEvents PnInertiaTI As Panel
-	Friend WithEvents ColumnHeader5 As ColumnHeader
-	Friend WithEvents PicBox As PictureBox
-	Friend WithEvents TbTCinertia As TextBox
-	Friend WithEvents Label1 As Label
-	Friend WithEvents Label18 As Label
-	Friend WithEvents ColumnHeader6 As ColumnHeader
-	Friend WithEvents GroupBox1 As GroupBox
-	Friend WithEvents tbUpshiftMinAcceleration As TextBox
-	Friend WithEvents tbUpshiftAfterDownshift As TextBox
-	Friend WithEvents tbDownshiftAfterUpshift As TextBox
-	Friend WithEvents Label24 As Label
-	Friend WithEvents Label23 As Label
-	Friend WithEvents Label22 As Label
-	Friend WithEvents Label21 As Label
-	Friend WithEvents Label20 As Label
-	Friend WithEvents Label19 As Label
-	Friend WithEvents BtTCShiftFileBrowse As Button
-	Friend WithEvents LblTCShiftFile As Label
-	Friend WithEvents TBTCShiftPolygon As TextBox
-End Class
+' Copyright 2014 European Union.
+' Licensed under the EUPL (the 'Licence');
+'
+' * You may not use this work except in compliance with the Licence.
+' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
+' * Unless required by applicable law or agreed to in writing,
+'   software distributed under the Licence is distributed on an "AS IS" basis,
+'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+'
+' See the LICENSE.txt for the specific language governing permissions and limitations.
+Imports System.ComponentModel
+Imports Microsoft.VisualBasic.CompilerServices
+
+<DesignerGenerated()> _
+Partial Class GearboxForm
+	Inherits Form
+
+	'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
+	<DebuggerNonUserCode()> _
+	Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+		Try
+			If disposing AndAlso components IsNot Nothing Then
+				components.Dispose()
+			End If
+		Finally
+			MyBase.Dispose(disposing)
+		End Try
+	End Sub
+
+	'Wird vom Windows Form-Designer benötigt.
+	Private components As IContainer
+
+	'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
+	'Das Bearbeiten ist mit dem Windows Form-Designer möglich.  
+	'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
+	<DebuggerStepThrough()> _
+	Private Sub InitializeComponent()
+		Me.components = New Container()
+		Dim resources As ComponentResourceManager = New ComponentResourceManager(GetType(GearboxForm))
+		Me.ToolStrip1 = New ToolStrip()
+		Me.ToolStripBtNew = New ToolStripButton()
+		Me.ToolStripBtOpen = New ToolStripButton()
+		Me.ToolStripBtSave = New ToolStripButton()
+		Me.ToolStripBtSaveAs = New ToolStripButton()
+		Me.ToolStripSeparator3 = New ToolStripSeparator()
+		Me.ToolStripBtSendTo = New ToolStripButton()
+		Me.ToolStripSeparator1 = New ToolStripSeparator()
+		Me.ToolStripButton1 = New ToolStripButton()
+		Me.StatusStrip1 = New StatusStrip()
+		Me.LbStatus = New ToolStripStatusLabel()
+		Me.ButCancel = New Button()
+		Me.ButOK = New Button()
+		Me.TbTracInt = New TextBox()
+		Me.LvGears = New ListView()
+		Me.ColumnHeader1 = CType(New ColumnHeader(), ColumnHeader)
+		Me.ColumnHeader2 = CType(New ColumnHeader(), ColumnHeader)
+		Me.ColumnHeader3 = CType(New ColumnHeader(), ColumnHeader)
+		Me.ColumnHeader5 = CType(New ColumnHeader(), ColumnHeader)
+		Me.ColumnHeader6 = CType(New ColumnHeader(), ColumnHeader)
+		Me.TBI_getr = New TextBox()
+		Me.Label49 = New Label()
+		Me.Label33 = New Label()
+		Me.Label48 = New Label()
+		Me.Label6 = New Label()
+		Me.Label3 = New Label()
+		Me.TbName = New TextBox()
+		Me.PictureBox1 = New PictureBox()
+		Me.BtRemGear = New Button()
+		Me.GrGearShift = New GroupBox()
+		Me.GroupBox1 = New GroupBox()
+		Me.tbUpshiftMinAcceleration = New TextBox()
+		Me.tbUpshiftAfterDownshift = New TextBox()
+		Me.tbDownshiftAfterUpshift = New TextBox()
+		Me.Label24 = New Label()
+		Me.Label23 = New Label()
+		Me.Label22 = New Label()
+		Me.Label21 = New Label()
+		Me.Label20 = New Label()
+		Me.Label19 = New Label()
+		Me.PnTorqRes = New Panel()
+		Me.Label2 = New Label()
+		Me.Label4 = New Label()
+		Me.TbTqResv = New TextBox()
+		Me.ChShiftInside = New CheckBox()
+		Me.TbShiftTime = New TextBox()
+		Me.Label12 = New Label()
+		Me.Label13 = New Label()
+		Me.ChSkipGears = New CheckBox()
+		Me.GroupBox2 = New GroupBox()
+		Me.TbStartAcc = New TextBox()
+		Me.Label11 = New Label()
+		Me.TbStartSpeed = New TextBox()
+		Me.Label9 = New Label()
+		Me.Label10 = New Label()
+		Me.TbTqResvStart = New TextBox()
+		Me.Label8 = New Label()
+		Me.Label5 = New Label()
+		Me.Label7 = New Label()
+		Me.CmOpenFile = New ContextMenuStrip(Me.components)
+		Me.OpenWithToolStripMenuItem = New ToolStripMenuItem()
+		Me.ShowInFolderToolStripMenuItem = New ToolStripMenuItem()
+		Me.GroupBox3 = New GroupBox()
+		Me.PnTC = New Panel()
+		Me.Label17 = New Label()
+		Me.Label18 = New Label()
+		Me.Label15 = New Label()
+		Me.TbTCinertia = New TextBox()
+		Me.Label1 = New Label()
+		Me.Label14 = New Label()
+		Me.BtTCfileBrowse = New Button()
+		Me.TbTCfile = New TextBox()
+		Me.BtTCfileOpen = New Button()
+		Me.TbTCrefrpm = New TextBox()
+		Me.ChTCon = New CheckBox()
+		Me.Label16 = New Label()
+		Me.CbGStype = New ComboBox()
+		Me.BtAddGear = New Button()
+		Me.GroupBox4 = New GroupBox()
+		Me.Label32 = New Label()
+		Me.PnInertiaTI = New Panel()
+		Me.PicBox = New PictureBox()
+		Me.TBTCShiftPolygon = New TextBox()
+		Me.LblTCShiftFile = New Label()
+		Me.BtTCShiftFileBrowse = New Button()
+		Me.ToolStrip1.SuspendLayout()
+		Me.StatusStrip1.SuspendLayout()
+		CType(Me.PictureBox1, ISupportInitialize).BeginInit()
+		Me.GrGearShift.SuspendLayout()
+		Me.GroupBox1.SuspendLayout()
+		Me.PnTorqRes.SuspendLayout()
+		Me.GroupBox2.SuspendLayout()
+		Me.CmOpenFile.SuspendLayout()
+		Me.GroupBox3.SuspendLayout()
+		Me.PnTC.SuspendLayout()
+		Me.GroupBox4.SuspendLayout()
+		Me.PnInertiaTI.SuspendLayout()
+		CType(Me.PicBox, ISupportInitialize).BeginInit()
+		Me.SuspendLayout()
+		'
+		'ToolStrip1
+		'
+		Me.ToolStrip1.GripStyle = ToolStripGripStyle.Hidden
+		Me.ToolStrip1.Items.AddRange(New ToolStripItem() {Me.ToolStripBtNew, Me.ToolStripBtOpen, Me.ToolStripBtSave, Me.ToolStripBtSaveAs, Me.ToolStripSeparator3, Me.ToolStripBtSendTo, Me.ToolStripSeparator1, Me.ToolStripButton1})
+		Me.ToolStrip1.Location = New Point(0, 0)
+		Me.ToolStrip1.Name = "ToolStrip1"
+		Me.ToolStrip1.Size = New Size(877, 25)
+		Me.ToolStrip1.TabIndex = 30
+		Me.ToolStrip1.Text = "ToolStrip1"
+		'
+		'ToolStripBtNew
+		'
+		Me.ToolStripBtNew.DisplayStyle = ToolStripItemDisplayStyle.Image
+		Me.ToolStripBtNew.Image = My.Resources.Resources.blue_document_icon
+		Me.ToolStripBtNew.ImageTransparentColor = Color.Magenta
+		Me.ToolStripBtNew.Name = "ToolStripBtNew"
+		Me.ToolStripBtNew.Size = New Size(23, 22)
+		Me.ToolStripBtNew.Text = "ToolStripButton1"
+		Me.ToolStripBtNew.ToolTipText = "New"
+		'
+		'ToolStripBtOpen
+		'
+		Me.ToolStripBtOpen.DisplayStyle = ToolStripItemDisplayStyle.Image
+		Me.ToolStripBtOpen.Image = My.Resources.Resources.Open_icon
+		Me.ToolStripBtOpen.ImageTransparentColor = Color.Magenta
+		Me.ToolStripBtOpen.Name = "ToolStripBtOpen"
+		Me.ToolStripBtOpen.Size = New Size(23, 22)
+		Me.ToolStripBtOpen.Text = "ToolStripButton1"
+		Me.ToolStripBtOpen.ToolTipText = "Open..."
+		'
+		'ToolStripBtSave
+		'
+		Me.ToolStripBtSave.DisplayStyle = ToolStripItemDisplayStyle.Image
+		Me.ToolStripBtSave.Image = My.Resources.Resources.Actions_document_save_icon
+		Me.ToolStripBtSave.ImageTransparentColor = Color.Magenta
+		Me.ToolStripBtSave.Name = "ToolStripBtSave"
+		Me.ToolStripBtSave.Size = New Size(23, 22)
+		Me.ToolStripBtSave.Text = "ToolStripButton1"
+		Me.ToolStripBtSave.ToolTipText = "Save"
+		'
+		'ToolStripBtSaveAs
+		'
+		Me.ToolStripBtSaveAs.DisplayStyle = ToolStripItemDisplayStyle.Image
+		Me.ToolStripBtSaveAs.Image = My.Resources.Resources.Actions_document_save_as_icon
+		Me.ToolStripBtSaveAs.ImageTransparentColor = Color.Magenta
+		Me.ToolStripBtSaveAs.Name = "ToolStripBtSaveAs"
+		Me.ToolStripBtSaveAs.Size = New Size(23, 22)
+		Me.ToolStripBtSaveAs.Text = "ToolStripButton1"
+		Me.ToolStripBtSaveAs.ToolTipText = "Save As..."
+		'
+		'ToolStripSeparator3
+		'
+		Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
+		Me.ToolStripSeparator3.Size = New Size(6, 25)
+		'
+		'ToolStripBtSendTo
+		'
+		Me.ToolStripBtSendTo.DisplayStyle = ToolStripItemDisplayStyle.Image
+		Me.ToolStripBtSendTo.Image = My.Resources.Resources.export_icon
+		Me.ToolStripBtSendTo.ImageTransparentColor = Color.Magenta
+		Me.ToolStripBtSendTo.Name = "ToolStripBtSendTo"
+		Me.ToolStripBtSendTo.Size = New Size(23, 22)
+		Me.ToolStripBtSendTo.Text = "Send to Job Editor"
+		Me.ToolStripBtSendTo.ToolTipText = "Send to Job Editor"
+		'
+		'ToolStripSeparator1
+		'
+		Me.ToolStripSeparator1.Name = "ToolStripSeparator1"
+		Me.ToolStripSeparator1.Size = New Size(6, 25)
+		'
+		'ToolStripButton1
+		'
+		Me.ToolStripButton1.DisplayStyle = ToolStripItemDisplayStyle.Image
+		Me.ToolStripButton1.Image = My.Resources.Resources.Help_icon
+		Me.ToolStripButton1.ImageTransparentColor = Color.Magenta
+		Me.ToolStripButton1.Name = "ToolStripButton1"
+		Me.ToolStripButton1.Size = New Size(23, 22)
+		Me.ToolStripButton1.Text = "Help"
+		'
+		'StatusStrip1
+		'
+		Me.StatusStrip1.Items.AddRange(New ToolStripItem() {Me.LbStatus})
+		Me.StatusStrip1.Location = New Point(0, 684)
+		Me.StatusStrip1.Name = "StatusStrip1"
+		Me.StatusStrip1.Size = New Size(877, 22)
+		Me.StatusStrip1.SizingGrip = False
+		Me.StatusStrip1.TabIndex = 37
+		Me.StatusStrip1.Text = "StatusStrip1"
+		'
+		'LbStatus
+		'
+		Me.LbStatus.Name = "LbStatus"
+		Me.LbStatus.Size = New Size(39, 17)
+		Me.LbStatus.Text = "Status"
+		'
+		'ButCancel
+		'
+		Me.ButCancel.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Right), AnchorStyles)
+		Me.ButCancel.DialogResult = DialogResult.Cancel
+		Me.ButCancel.Location = New Point(790, 658)
+		Me.ButCancel.Name = "ButCancel"
+		Me.ButCancel.Size = New Size(75, 23)
+		Me.ButCancel.TabIndex = 7
+		Me.ButCancel.Text = "Cancel"
+		Me.ButCancel.UseVisualStyleBackColor = True
+		'
+		'ButOK
+		'
+		Me.ButOK.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Right), AnchorStyles)
+		Me.ButOK.Location = New Point(709, 658)
+		Me.ButOK.Name = "ButOK"
+		Me.ButOK.Size = New Size(75, 23)
+		Me.ButOK.TabIndex = 6
+		Me.ButOK.Text = "Save"
+		Me.ButOK.UseVisualStyleBackColor = True
+		'
+		'TbTracInt
+		'
+		Me.TbTracInt.Location = New Point(303, 3)
+		Me.TbTracInt.Name = "TbTracInt"
+		Me.TbTracInt.Size = New Size(40, 20)
+		Me.TbTracInt.TabIndex = 1
+		'
+		'LvGears
+		'
+		Me.LvGears.Columns.AddRange(New ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3, Me.ColumnHeader5, Me.ColumnHeader6})
+		Me.LvGears.FullRowSelect = True
+		Me.LvGears.GridLines = True
+		Me.LvGears.HideSelection = False
+		Me.LvGears.Location = New Point(6, 18)
+		Me.LvGears.MultiSelect = False
+		Me.LvGears.Name = "LvGears"
+		Me.LvGears.Size = New Size(429, 183)
+		Me.LvGears.TabIndex = 0
+		Me.LvGears.TabStop = False
+		Me.LvGears.UseCompatibleStateImageBehavior = False
+		Me.LvGears.View = View.Details
+		'
+		'ColumnHeader1
+		'
+		Me.ColumnHeader1.Text = "Gear"
+		Me.ColumnHeader1.Width = 46
+		'
+		'ColumnHeader2
+		'
+		Me.ColumnHeader2.Text = "Ratio"
+		Me.ColumnHeader2.Width = 50
+		'
+		'ColumnHeader3
+		'
+		Me.ColumnHeader3.Text = "Loss Map or Efficiency"
+		Me.ColumnHeader3.Width = 128
+		'
+		'ColumnHeader5
+		'
+		Me.ColumnHeader5.Text = "Shift Polygons"
+		Me.ColumnHeader5.Width = 94
+		'
+		'ColumnHeader6
+		'
+		Me.ColumnHeader6.Text = "Max Torque"
+		Me.ColumnHeader6.Width = 95
+		'
+		'TBI_getr
+		'
+		Me.TBI_getr.Location = New Point(53, 3)
+		Me.TBI_getr.Name = "TBI_getr"
+		Me.TBI_getr.Size = New Size(57, 20)
+		Me.TBI_getr.TabIndex = 0
+		'
+		'Label49
+		'
+		Me.Label49.AutoSize = True
+		Me.Label49.Location = New Point(349, 6)
+		Me.Label49.Name = "Label49"
+		Me.Label49.Size = New Size(18, 13)
+		Me.Label49.TabIndex = 2
+		Me.Label49.Text = "[s]"
+		'
+		'Label33
+		'
+		Me.Label33.AutoSize = True
+		Me.Label33.Location = New Point(116, 6)
+		Me.Label33.Name = "Label33"
+		Me.Label33.Size = New Size(36, 13)
+		Me.Label33.TabIndex = 2
+		Me.Label33.Text = "[kgm²]"
+		'
+		'Label48
+		'
+		Me.Label48.AutoSize = True
+		Me.Label48.Location = New Point(195, 6)
+		Me.Label48.Name = "Label48"
+		Me.Label48.Size = New Size(102, 13)
+		Me.Label48.TabIndex = 2
+		Me.Label48.Text = "Traction Interruption"
+		'
+		'Label6
+		'
+		Me.Label6.AutoSize = True
+		Me.Label6.Location = New Point(11, 6)
+		Me.Label6.Name = "Label6"
+		Me.Label6.Size = New Size(36, 13)
+		Me.Label6.TabIndex = 2
+		Me.Label6.Text = "Inertia"
+		'
+		'Label3
+		'
+		Me.Label3.AutoSize = True
+		Me.Label3.Location = New Point(26, 85)
+		Me.Label3.Name = "Label3"
+		Me.Label3.Size = New Size(87, 13)
+		Me.Label3.TabIndex = 42
+		Me.Label3.Text = "Make and Model"
+		'
+		'TbName
+		'
+		Me.TbName.Location = New Point(119, 82)
+		Me.TbName.Name = "TbName"
+		Me.TbName.Size = New Size(334, 20)
+		Me.TbName.TabIndex = 0
+		'
+		'PictureBox1
+		'
+		Me.PictureBox1.BackColor = Color.White
+		Me.PictureBox1.Image = My.Resources.Resources.VECTO_GBX
+		Me.PictureBox1.Location = New Point(12, 28)
+		Me.PictureBox1.Name = "PictureBox1"
+		Me.PictureBox1.Size = New Size(441, 40)
+		Me.PictureBox1.TabIndex = 43
+		Me.PictureBox1.TabStop = False
+		'
+		'BtRemGear
+		'
+		Me.BtRemGear.Image = My.Resources.Resources.minus_circle_icon
+		Me.BtRemGear.Location = New Point(30, 202)
+		Me.BtRemGear.Name = "BtRemGear"
+		Me.BtRemGear.Size = New Size(24, 24)
+		Me.BtRemGear.TabIndex = 2
+		Me.BtRemGear.UseVisualStyleBackColor = True
+		'
+		'GrGearShift
+		'
+		Me.GrGearShift.Controls.Add(Me.GroupBox1)
+		Me.GrGearShift.Controls.Add(Me.PnTorqRes)
+		Me.GrGearShift.Controls.Add(Me.ChShiftInside)
+		Me.GrGearShift.Controls.Add(Me.TbShiftTime)
+		Me.GrGearShift.Controls.Add(Me.Label12)
+		Me.GrGearShift.Controls.Add(Me.Label13)
+		Me.GrGearShift.Controls.Add(Me.ChSkipGears)
+		Me.GrGearShift.Controls.Add(Me.GroupBox2)
+		Me.GrGearShift.Location = New Point(12, 377)
+		Me.GrGearShift.Name = "GrGearShift"
+		Me.GrGearShift.Size = New Size(441, 291)
+		Me.GrGearShift.TabIndex = 3
+		Me.GrGearShift.TabStop = False
+		Me.GrGearShift.Text = "Gear shift parameters"
+		'
+		'GroupBox1
+		'
+		Me.GroupBox1.Controls.Add(Me.tbUpshiftMinAcceleration)
+		Me.GroupBox1.Controls.Add(Me.tbUpshiftAfterDownshift)
+		Me.GroupBox1.Controls.Add(Me.tbDownshiftAfterUpshift)
+		Me.GroupBox1.Controls.Add(Me.Label24)
+		Me.GroupBox1.Controls.Add(Me.Label23)
+		Me.GroupBox1.Controls.Add(Me.Label22)
+		Me.GroupBox1.Controls.Add(Me.Label21)
+		Me.GroupBox1.Controls.Add(Me.Label20)
+		Me.GroupBox1.Controls.Add(Me.Label19)
+		Me.GroupBox1.Location = New Point(6, 82)
+		Me.GroupBox1.Name = "GroupBox1"
+		Me.GroupBox1.Size = New Size(429, 100)
+		Me.GroupBox1.TabIndex = 10
+		Me.GroupBox1.TabStop = False
+		Me.GroupBox1.Text = "Shift Strategy Parameters"
+		'
+		'tbUpshiftMinAcceleration
+		'
+		Me.tbUpshiftMinAcceleration.Location = New Point(209, 71)
+		Me.tbUpshiftMinAcceleration.Name = "tbUpshiftMinAcceleration"
+		Me.tbUpshiftMinAcceleration.Size = New Size(57, 20)
+		Me.tbUpshiftMinAcceleration.TabIndex = 8
+		'
+		'tbUpshiftAfterDownshift
+		'
+		Me.tbUpshiftAfterDownshift.Location = New Point(209, 45)
+		Me.tbUpshiftAfterDownshift.Name = "tbUpshiftAfterDownshift"
+		Me.tbUpshiftAfterDownshift.Size = New Size(57, 20)
+		Me.tbUpshiftAfterDownshift.TabIndex = 7
+		'
+		'tbDownshiftAfterUpshift
+		'
+		Me.tbDownshiftAfterUpshift.Location = New Point(209, 20)
+		Me.tbDownshiftAfterUpshift.Name = "tbDownshiftAfterUpshift"
+		Me.tbDownshiftAfterUpshift.Size = New Size(57, 20)
+		Me.tbDownshiftAfterUpshift.TabIndex = 6
+		'
+		'Label24
+		'
+		Me.Label24.AutoSize = True
+		Me.Label24.Location = New Point(275, 74)
+		Me.Label24.Name = "Label24"
+		Me.Label24.Size = New Size(34, 13)
+		Me.Label24.TabIndex = 5
+		Me.Label24.Text = "[m/s²]"
+		'
+		'Label23
+		'
+		Me.Label23.AutoSize = True
+		Me.Label23.Location = New Point(275, 48)
+		Me.Label23.Name = "Label23"
+		Me.Label23.Size = New Size(18, 13)
+		Me.Label23.TabIndex = 4
+		Me.Label23.Text = "[s]"
+		'
+		'Label22
+		'
+		Me.Label22.AutoSize = True
+		Me.Label22.Location = New Point(275, 25)
+		Me.Label22.Name = "Label22"
+		Me.Label22.Size = New Size(18, 13)
+		Me.Label22.TabIndex = 3
+		Me.Label22.Text = "[s]"
+		'
+		'Label21
+		'
+		Me.Label21.AutoSize = True
+		Me.Label21.Location = New Point(20, 74)
+		Me.Label21.Name = "Label21"
+		Me.Label21.Size = New Size(146, 13)
+		Me.Label21.TabIndex = 2
+		Me.Label21.Text = "Min. acceleration after upshift"
+		'
+		'Label20
+		'
+		Me.Label20.AutoSize = True
+		Me.Label20.Location = New Point(20, 48)
+		Me.Label20.Name = "Label20"
+		Me.Label20.Size = New Size(137, 13)
+		Me.Label20.TabIndex = 1
+		Me.Label20.Text = "Upshift afer downshift delay"
+		'
+		'Label19
+		'
+		Me.Label19.AutoSize = True
+		Me.Label19.Location = New Point(20, 25)
+		Me.Label19.Name = "Label19"
+		Me.Label19.Size = New Size(137, 13)
+		Me.Label19.TabIndex = 0
+		Me.Label19.Text = "Downshift afer upshift delay"
+		'
+		'PnTorqRes
+		'
+		Me.PnTorqRes.Controls.Add(Me.Label2)
+		Me.PnTorqRes.Controls.Add(Me.Label4)
+		Me.PnTorqRes.Controls.Add(Me.TbTqResv)
+		Me.PnTorqRes.Location = New Point(230, 19)
+		Me.PnTorqRes.Name = "PnTorqRes"
+		Me.PnTorqRes.Size = New Size(190, 32)
+		Me.PnTorqRes.TabIndex = 2
+		'
+		'Label2
+		'
+		Me.Label2.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
+		Me.Label2.AutoSize = True
+		Me.Label2.Location = New Point(10, 9)
+		Me.Label2.Name = "Label2"
+		Me.Label2.Size = New Size(79, 13)
+		Me.Label2.TabIndex = 0
+		Me.Label2.Text = "Torque reserve"
+		'
+		'Label4
+		'
+		Me.Label4.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
+		Me.Label4.AutoSize = True
+		Me.Label4.Location = New Point(158, 9)
+		Me.Label4.Name = "Label4"
+		Me.Label4.Size = New Size(21, 13)
+		Me.Label4.TabIndex = 0
+		Me.Label4.Text = "[%]"
+		'
+		'TbTqResv
+		'
+		Me.TbTqResv.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
+		Me.TbTqResv.Location = New Point(95, 6)
+		Me.TbTqResv.Name = "TbTqResv"
+		Me.TbTqResv.Size = New Size(57, 20)
+		Me.TbTqResv.TabIndex = 0
+		'
+		'ChShiftInside
+		'
+		Me.ChShiftInside.AutoSize = True
+		Me.ChShiftInside.Checked = True
+		Me.ChShiftInside.CheckState = CheckState.Checked
+		Me.ChShiftInside.Location = New Point(9, 27)
+		Me.ChShiftInside.Name = "ChShiftInside"
+		Me.ChShiftInside.Size = New Size(195, 17)
+		Me.ChShiftInside.TabIndex = 0
+		Me.ChShiftInside.Text = "Allow shift-up inside polygons (AMT)"
+		Me.ChShiftInside.UseVisualStyleBackColor = True
+		'
+		'TbShiftTime
+		'
+		Me.TbShiftTime.Location = New Point(325, 51)
+		Me.TbShiftTime.Name = "TbShiftTime"
+		Me.TbShiftTime.Size = New Size(57, 20)
+		Me.TbShiftTime.TabIndex = 3
+		'
+		'Label12
+		'
+		Me.Label12.AutoSize = True
+		Me.Label12.Location = New Point(388, 54)
+		Me.Label12.Name = "Label12"
+		Me.Label12.Size = New Size(18, 13)
+		Me.Label12.TabIndex = 9
+		Me.Label12.Text = "[s]"
+		'
+		'Label13
+		'
+		Me.Label13.AutoSize = True
+		Me.Label13.Location = New Point(227, 54)
+		Me.Label13.Name = "Label13"
+		Me.Label13.Size = New Size(92, 13)
+		Me.Label13.TabIndex = 8
+		Me.Label13.Text = "Minimum shift time"
+		'
+		'ChSkipGears
+		'
+		Me.ChSkipGears.AutoSize = True
+		Me.ChSkipGears.Location = New Point(9, 53)
+		Me.ChSkipGears.Name = "ChSkipGears"
+		Me.ChSkipGears.Size = New Size(132, 17)
+		Me.ChSkipGears.TabIndex = 1
+		Me.ChSkipGears.Text = "Skip Gears (MT, AMT)"
+		Me.ChSkipGears.UseVisualStyleBackColor = True
+		'
+		'GroupBox2
+		'
+		Me.GroupBox2.Controls.Add(Me.TbStartAcc)
+		Me.GroupBox2.Controls.Add(Me.Label11)
+		Me.GroupBox2.Controls.Add(Me.TbStartSpeed)
+		Me.GroupBox2.Controls.Add(Me.Label9)
+		Me.GroupBox2.Controls.Add(Me.Label10)
+		Me.GroupBox2.Controls.Add(Me.TbTqResvStart)
+		Me.GroupBox2.Controls.Add(Me.Label8)
+		Me.GroupBox2.Controls.Add(Me.Label5)
+		Me.GroupBox2.Controls.Add(Me.Label7)
+		Me.GroupBox2.Location = New Point(6, 186)
+		Me.GroupBox2.Name = "GroupBox2"
+		Me.GroupBox2.Size = New Size(429, 99)
+		Me.GroupBox2.TabIndex = 4
+		Me.GroupBox2.TabStop = False
+		Me.GroupBox2.Text = "Start Gear"
+		'
+		'TbStartAcc
+		'
+		Me.TbStartAcc.Location = New Point(209, 71)
+		Me.TbStartAcc.Name = "TbStartAcc"
+		Me.TbStartAcc.Size = New Size(57, 20)
+		Me.TbStartAcc.TabIndex = 2
+		'
+		'Label11
+		'
+		Me.Label11.AutoSize = True
+		Me.Label11.Location = New Point(20, 74)
+		Me.Label11.Name = "Label11"
+		Me.Label11.Size = New Size(173, 13)
+		Me.Label11.TabIndex = 0
+		Me.Label11.Text = "Reference acceleration at clutch-in"
+		'
+		'TbStartSpeed
+		'
+		Me.TbStartSpeed.Location = New Point(209, 45)
+		Me.TbStartSpeed.Name = "TbStartSpeed"
+		Me.TbStartSpeed.Size = New Size(57, 20)
+		Me.TbStartSpeed.TabIndex = 1
+		'
+		'Label9
+		'
+		Me.Label9.AutoSize = True
+		Me.Label9.Location = New Point(20, 48)
+		Me.Label9.Name = "Label9"
+		Me.Label9.Size = New Size(181, 13)
+		Me.Label9.TabIndex = 0
+		Me.Label9.Text = "Reference vehicle speed at clutch-in"
+		'
+		'Label10
+		'
+		Me.Label10.AutoSize = True
+		Me.Label10.Location = New Point(272, 74)
+		Me.Label10.Name = "Label10"
+		Me.Label10.Size = New Size(34, 13)
+		Me.Label10.TabIndex = 0
+		Me.Label10.Text = "[m/s²]"
+		'
+		'TbTqResvStart
+		'
+		Me.TbTqResvStart.Location = New Point(209, 19)
+		Me.TbTqResvStart.Name = "TbTqResvStart"
+		Me.TbTqResvStart.Size = New Size(57, 20)
+		Me.TbTqResvStart.TabIndex = 0
+		'
+		'Label8
+		'
+		Me.Label8.AutoSize = True
+		Me.Label8.Location = New Point(272, 48)
+		Me.Label8.Name = "Label8"
+		Me.Label8.Size = New Size(31, 13)
+		Me.Label8.TabIndex = 0
+		Me.Label8.Text = "[m/s]"
+		'
+		'Label5
+		'
+		Me.Label5.AutoSize = True
+		Me.Label5.Location = New Point(20, 22)
+		Me.Label5.Name = "Label5"
+		Me.Label5.Size = New Size(79, 13)
+		Me.Label5.TabIndex = 0
+		Me.Label5.Text = "Torque reserve"
+		'
+		'Label7
+		'
+		Me.Label7.AutoSize = True
+		Me.Label7.Location = New Point(272, 22)
+		Me.Label7.Name = "Label7"
+		Me.Label7.Size = New Size(21, 13)
+		Me.Label7.TabIndex = 0
+		Me.Label7.Text = "[%]"
+		'
+		'CmOpenFile
+		'
+		Me.CmOpenFile.Items.AddRange(New ToolStripItem() {Me.OpenWithToolStripMenuItem, Me.ShowInFolderToolStripMenuItem})
+		Me.CmOpenFile.Name = "CmOpenFile"
+		Me.CmOpenFile.Size = New Size(153, 48)
+		'
+		'OpenWithToolStripMenuItem
+		'
+		Me.OpenWithToolStripMenuItem.Name = "OpenWithToolStripMenuItem"
+		Me.OpenWithToolStripMenuItem.Size = New Size(152, 22)
+		Me.OpenWithToolStripMenuItem.Text = "Open with ..."
+		'
+		'ShowInFolderToolStripMenuItem
+		'
+		Me.ShowInFolderToolStripMenuItem.Name = "ShowInFolderToolStripMenuItem"
+		Me.ShowInFolderToolStripMenuItem.Size = New Size(152, 22)
+		Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder"
+		'
+		'GroupBox3
+		'
+		Me.GroupBox3.Controls.Add(Me.BtTCShiftFileBrowse)
+		Me.GroupBox3.Controls.Add(Me.LblTCShiftFile)
+		Me.GroupBox3.Controls.Add(Me.TBTCShiftPolygon)
+		Me.GroupBox3.Controls.Add(Me.PnTC)
+		Me.GroupBox3.Controls.Add(Me.ChTCon)
+		Me.GroupBox3.Location = New Point(459, 440)
+		Me.GroupBox3.Name = "GroupBox3"
+		Me.GroupBox3.Size = New Size(414, 162)
+		Me.GroupBox3.TabIndex = 5
+		Me.GroupBox3.TabStop = False
+		Me.GroupBox3.Text = "Torque Converter"
+		'
+		'PnTC
+		'
+		Me.PnTC.Controls.Add(Me.Label17)
+		Me.PnTC.Controls.Add(Me.Label18)
+		Me.PnTC.Controls.Add(Me.Label15)
+		Me.PnTC.Controls.Add(Me.TbTCinertia)
+		Me.PnTC.Controls.Add(Me.Label1)
+		Me.PnTC.Controls.Add(Me.Label14)
+		Me.PnTC.Controls.Add(Me.BtTCfileBrowse)
+		Me.PnTC.Controls.Add(Me.TbTCfile)
+		Me.PnTC.Controls.Add(Me.BtTCfileOpen)
+		Me.PnTC.Controls.Add(Me.TbTCrefrpm)
+		Me.PnTC.Location = New Point(6, 39)
+		Me.PnTC.Name = "PnTC"
+		Me.PnTC.Size = New Size(402, 72)
+		Me.PnTC.TabIndex = 36
+		'
+		'Label17
+		'
+		Me.Label17.AutoSize = True
+		Me.Label17.Location = New Point(0, 5)
+		Me.Label17.Name = "Label17"
+		Me.Label17.Size = New Size(176, 13)
+		Me.Label17.TabIndex = 0
+		Me.Label17.Text = "Torque converter characteristics file"
+		'
+		'Label18
+		'
+		Me.Label18.AutoSize = True
+		Me.Label18.Location = New Point(5, 50)
+		Me.Label18.Name = "Label18"
+		Me.Label18.Size = New Size(36, 13)
+		Me.Label18.TabIndex = 2
+		Me.Label18.Text = "Inertia"
+		'
+		'Label15
+		'
+		Me.Label15.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
+		Me.Label15.AutoSize = True
+		Me.Label15.Location = New Point(185, 50)
+		Me.Label15.Name = "Label15"
+		Me.Label15.Size = New Size(77, 13)
+		Me.Label15.TabIndex = 0
+		Me.Label15.Text = "Reference rpm"
+		'
+		'TbTCinertia
+		'
+		Me.TbTCinertia.Location = New Point(47, 47)
+		Me.TbTCinertia.Name = "TbTCinertia"
+		Me.TbTCinertia.Size = New Size(67, 20)
+		Me.TbTCinertia.TabIndex = 3
+		'
+		'Label1
+		'
+		Me.Label1.AutoSize = True
+		Me.Label1.Location = New Point(120, 50)
+		Me.Label1.Name = "Label1"
+		Me.Label1.Size = New Size(36, 13)
+		Me.Label1.TabIndex = 2
+		Me.Label1.Text = "[kgm²]"
+		'
+		'Label14
+		'
+		Me.Label14.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
+		Me.Label14.AutoSize = True
+		Me.Label14.Location = New Point(341, 50)
+		Me.Label14.Name = "Label14"
+		Me.Label14.Size = New Size(40, 13)
+		Me.Label14.TabIndex = 0
+		Me.Label14.Text = "[1/min]"
+		'
+		'BtTCfileBrowse
+		'
+		Me.BtTCfileBrowse.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
+		Me.BtTCfileBrowse.Image = My.Resources.Resources.Open_icon
+		Me.BtTCfileBrowse.Location = New Point(348, 19)
+		Me.BtTCfileBrowse.Name = "BtTCfileBrowse"
+		Me.BtTCfileBrowse.Size = New Size(24, 24)
+		Me.BtTCfileBrowse.TabIndex = 1
+		Me.BtTCfileBrowse.TabStop = False
+		Me.BtTCfileBrowse.UseVisualStyleBackColor = True
+		'
+		'TbTCfile
+		'
+		Me.TbTCfile.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
+			Or AnchorStyles.Right), AnchorStyles)
+		Me.TbTCfile.Location = New Point(4, 21)
+		Me.TbTCfile.Name = "TbTCfile"
+		Me.TbTCfile.Size = New Size(343, 20)
+		Me.TbTCfile.TabIndex = 0
+		'
+		'BtTCfileOpen
+		'
+		Me.BtTCfileOpen.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
+		Me.BtTCfileOpen.Image = My.Resources.Resources.application_export_icon_small
+		Me.BtTCfileOpen.Location = New Point(372, 19)
+		Me.BtTCfileOpen.Name = "BtTCfileOpen"
+		Me.BtTCfileOpen.Size = New Size(24, 24)
+		Me.BtTCfileOpen.TabIndex = 2
+		Me.BtTCfileOpen.TabStop = False
+		Me.BtTCfileOpen.UseVisualStyleBackColor = True
+		'
+		'TbTCrefrpm
+		'
+		Me.TbTCrefrpm.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
+		Me.TbTCrefrpm.Location = New Point(268, 47)
+		Me.TbTCrefrpm.Name = "TbTCrefrpm"
+		Me.TbTCrefrpm.Size = New Size(67, 20)
+		Me.TbTCrefrpm.TabIndex = 4
+		'
+		'ChTCon
+		'
+		Me.ChTCon.AutoSize = True
+		Me.ChTCon.Checked = True
+		Me.ChTCon.CheckState = CheckState.Checked
+		Me.ChTCon.Location = New Point(9, 19)
+		Me.ChTCon.Name = "ChTCon"
+		Me.ChTCon.Size = New Size(88, 17)
+		Me.ChTCon.TabIndex = 0
+		Me.ChTCon.Text = "Installed (AT)"
+		Me.ChTCon.UseVisualStyleBackColor = True
+		'
+		'Label16
+		'
+		Me.Label16.AutoSize = True
+		Me.Label16.Location = New Point(18, 111)
+		Me.Label16.Name = "Label16"
+		Me.Label16.Size = New Size(95, 13)
+		Me.Label16.TabIndex = 45
+		Me.Label16.Text = "Transmission Type"
+		'
+		'CbGStype
+		'
+		Me.CbGStype.DropDownStyle = ComboBoxStyle.DropDownList
+		Me.CbGStype.FormattingEnabled = True
+		Me.CbGStype.Location = New Point(119, 108)
+		Me.CbGStype.Name = "CbGStype"
+		Me.CbGStype.Size = New Size(227, 21)
+		Me.CbGStype.TabIndex = 1
+		'
+		'BtAddGear
+		'
+		Me.BtAddGear.Image = My.Resources.Resources.plus_circle_icon
+		Me.BtAddGear.Location = New Point(6, 202)
+		Me.BtAddGear.Name = "BtAddGear"
+		Me.BtAddGear.Size = New Size(24, 24)
+		Me.BtAddGear.TabIndex = 1
+		Me.BtAddGear.UseVisualStyleBackColor = True
+		'
+		'GroupBox4
+		'
+		Me.GroupBox4.Controls.Add(Me.Label32)
+		Me.GroupBox4.Controls.Add(Me.LvGears)
+		Me.GroupBox4.Controls.Add(Me.BtRemGear)
+		Me.GroupBox4.Controls.Add(Me.BtAddGear)
+		Me.GroupBox4.Location = New Point(12, 135)
+		Me.GroupBox4.Name = "GroupBox4"
+		Me.GroupBox4.Size = New Size(441, 232)
+		Me.GroupBox4.TabIndex = 2
+		Me.GroupBox4.TabStop = False
+		Me.GroupBox4.Text = "Gears"
+		'
+		'Label32
+		'
+		Me.Label32.AutoSize = True
+		Me.Label32.Location = New Point(331, 202)
+		Me.Label32.Name = "Label32"
+		Me.Label32.Size = New Size(106, 13)
+		Me.Label32.TabIndex = 3
+		Me.Label32.Text = "(Double-Click to Edit)"
+		'
+		'PnInertiaTI
+		'
+		Me.PnInertiaTI.Controls.Add(Me.Label6)
+		Me.PnInertiaTI.Controls.Add(Me.TBI_getr)
+		Me.PnInertiaTI.Controls.Add(Me.Label33)
+		Me.PnInertiaTI.Controls.Add(Me.Label48)
+		Me.PnInertiaTI.Controls.Add(Me.Label49)
+		Me.PnInertiaTI.Controls.Add(Me.TbTracInt)
+		Me.PnInertiaTI.Location = New Point(469, 406)
+		Me.PnInertiaTI.Name = "PnInertiaTI"
+		Me.PnInertiaTI.Size = New Size(398, 30)
+		Me.PnInertiaTI.TabIndex = 4
+		'
+		'PicBox
+		'
+		Me.PicBox.BackColor = Color.LightGray
+		Me.PicBox.Location = New Point(459, 28)
+		Me.PicBox.Name = "PicBox"
+		Me.PicBox.Size = New Size(406, 372)
+		Me.PicBox.TabIndex = 48
+		Me.PicBox.TabStop = False
+		'
+		'TBTCShiftPolygon
+		'
+		Me.TBTCShiftPolygon.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
+			Or AnchorStyles.Right), AnchorStyles)
+		Me.TBTCShiftPolygon.Location = New Point(10, 136)
+		Me.TBTCShiftPolygon.Name = "TBTCShiftPolygon"
+		Me.TBTCShiftPolygon.Size = New Size(343, 20)
+		Me.TBTCShiftPolygon.TabIndex = 37
+		'
+		'LblTCShiftFile
+		'
+		Me.LblTCShiftFile.AutoSize = True
+		Me.LblTCShiftFile.Location = New Point(7, 120)
+		Me.LblTCShiftFile.Name = "LblTCShiftFile"
+		Me.LblTCShiftFile.Size = New Size(172, 13)
+		Me.LblTCShiftFile.TabIndex = 5
+		Me.LblTCShiftFile.Text = "Torque converter shift polygons file"
+		'
+		'BtTCShiftFileBrowse
+		'
+		Me.BtTCShiftFileBrowse.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
+		Me.BtTCShiftFileBrowse.Image = My.Resources.Resources.Open_icon
+		Me.BtTCShiftFileBrowse.Location = New Point(354, 134)
+		Me.BtTCShiftFileBrowse.Name = "BtTCShiftFileBrowse"
+		Me.BtTCShiftFileBrowse.Size = New Size(24, 24)
+		Me.BtTCShiftFileBrowse.TabIndex = 5
+		Me.BtTCShiftFileBrowse.TabStop = False
+		Me.BtTCShiftFileBrowse.UseVisualStyleBackColor = True
+		'
+		'F_GBX
+		'
+		Me.AcceptButton = Me.ButOK
+		Me.AutoScaleDimensions = New SizeF(6.0!, 13.0!)
+		Me.AutoScaleMode = AutoScaleMode.Font
+		Me.CancelButton = Me.ButCancel
+		Me.ClientSize = New Size(877, 706)
+		Me.Controls.Add(Me.PicBox)
+		Me.Controls.Add(Me.PnInertiaTI)
+		Me.Controls.Add(Me.GroupBox4)
+		Me.Controls.Add(Me.CbGStype)
+		Me.Controls.Add(Me.Label16)
+		Me.Controls.Add(Me.PictureBox1)
+		Me.Controls.Add(Me.GrGearShift)
+		Me.Controls.Add(Me.GroupBox3)
+		Me.Controls.Add(Me.Label3)
+		Me.Controls.Add(Me.TbName)
+		Me.Controls.Add(Me.ButCancel)
+		Me.Controls.Add(Me.ButOK)
+		Me.Controls.Add(Me.StatusStrip1)
+		Me.Controls.Add(Me.ToolStrip1)
+		Me.FormBorderStyle = FormBorderStyle.FixedSingle
+		Me.Icon = CType(resources.GetObject("$this.Icon"), Icon)
+		Me.MaximizeBox = False
+		Me.Name = "GearboxForm"
+		Me.StartPosition = FormStartPosition.CenterParent
+		Me.Text = "F_GBX"
+		Me.ToolStrip1.ResumeLayout(False)
+		Me.ToolStrip1.PerformLayout()
+		Me.StatusStrip1.ResumeLayout(False)
+		Me.StatusStrip1.PerformLayout()
+		CType(Me.PictureBox1, ISupportInitialize).EndInit()
+		Me.GrGearShift.ResumeLayout(False)
+		Me.GrGearShift.PerformLayout()
+		Me.GroupBox1.ResumeLayout(False)
+		Me.GroupBox1.PerformLayout()
+		Me.PnTorqRes.ResumeLayout(False)
+		Me.PnTorqRes.PerformLayout()
+		Me.GroupBox2.ResumeLayout(False)
+		Me.GroupBox2.PerformLayout()
+		Me.CmOpenFile.ResumeLayout(False)
+		Me.GroupBox3.ResumeLayout(False)
+		Me.GroupBox3.PerformLayout()
+		Me.PnTC.ResumeLayout(False)
+		Me.PnTC.PerformLayout()
+		Me.GroupBox4.ResumeLayout(False)
+		Me.GroupBox4.PerformLayout()
+		Me.PnInertiaTI.ResumeLayout(False)
+		Me.PnInertiaTI.PerformLayout()
+		CType(Me.PicBox, ISupportInitialize).EndInit()
+		Me.ResumeLayout(False)
+		Me.PerformLayout()
+
+	End Sub
+	Friend WithEvents ToolStrip1 As ToolStrip
+	Friend WithEvents ToolStripBtNew As ToolStripButton
+	Friend WithEvents ToolStripBtOpen As ToolStripButton
+	Friend WithEvents ToolStripBtSave As ToolStripButton
+	Friend WithEvents ToolStripBtSaveAs As ToolStripButton
+	Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
+	Friend WithEvents ToolStripBtSendTo As ToolStripButton
+	Friend WithEvents StatusStrip1 As StatusStrip
+	Friend WithEvents LbStatus As ToolStripStatusLabel
+	Friend WithEvents ButCancel As Button
+	Friend WithEvents ButOK As Button
+	Friend WithEvents BtRemGear As Button
+	Friend WithEvents TbTracInt As TextBox
+	Friend WithEvents LvGears As ListView
+	Friend WithEvents ColumnHeader1 As ColumnHeader
+	Friend WithEvents ColumnHeader2 As ColumnHeader
+	Friend WithEvents ColumnHeader3 As ColumnHeader
+	Friend WithEvents TBI_getr As TextBox
+	Friend WithEvents Label49 As Label
+	Friend WithEvents Label33 As Label
+	Friend WithEvents Label48 As Label
+	Friend WithEvents Label6 As Label
+	Friend WithEvents Label3 As Label
+	Friend WithEvents TbName As TextBox
+	Friend WithEvents PictureBox1 As PictureBox
+	Friend WithEvents ToolStripSeparator1 As ToolStripSeparator
+	Friend WithEvents ToolStripButton1 As ToolStripButton
+	Friend WithEvents GrGearShift As GroupBox
+	Friend WithEvents Label2 As Label
+	Friend WithEvents TbTqResvStart As TextBox
+	Friend WithEvents TbTqResv As TextBox
+	Friend WithEvents Label7 As Label
+	Friend WithEvents Label5 As Label
+	Friend WithEvents Label4 As Label
+	Friend WithEvents GroupBox2 As GroupBox
+	Friend WithEvents TbStartAcc As TextBox
+	Friend WithEvents Label11 As Label
+	Friend WithEvents TbStartSpeed As TextBox
+	Friend WithEvents Label9 As Label
+	Friend WithEvents Label10 As Label
+	Friend WithEvents Label8 As Label
+	Friend WithEvents TbShiftTime As TextBox
+	Friend WithEvents Label12 As Label
+	Friend WithEvents Label13 As Label
+	Friend WithEvents ChSkipGears As CheckBox
+	Friend WithEvents ChShiftInside As CheckBox
+	Friend WithEvents CmOpenFile As ContextMenuStrip
+	Friend WithEvents OpenWithToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents ShowInFolderToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents GroupBox3 As GroupBox
+	Friend WithEvents TbTCfile As TextBox
+	Friend WithEvents ChTCon As CheckBox
+	Friend WithEvents BtTCfileBrowse As Button
+	Friend WithEvents BtTCfileOpen As Button
+	Friend WithEvents TbTCrefrpm As TextBox
+	Friend WithEvents Label14 As Label
+	Friend WithEvents Label15 As Label
+	Friend WithEvents Label16 As Label
+	Friend WithEvents CbGStype As ComboBox
+	Friend WithEvents Label17 As Label
+	Friend WithEvents PnTC As Panel
+	Friend WithEvents PnTorqRes As Panel
+	Friend WithEvents BtAddGear As Button
+	Friend WithEvents ColumnHeader4 As ColumnHeader
+	Friend WithEvents GroupBox4 As GroupBox
+	Friend WithEvents Label32 As Label
+	Friend WithEvents PnInertiaTI As Panel
+	Friend WithEvents ColumnHeader5 As ColumnHeader
+	Friend WithEvents PicBox As PictureBox
+	Friend WithEvents TbTCinertia As TextBox
+	Friend WithEvents Label1 As Label
+	Friend WithEvents Label18 As Label
+	Friend WithEvents ColumnHeader6 As ColumnHeader
+	Friend WithEvents GroupBox1 As GroupBox
+	Friend WithEvents tbUpshiftMinAcceleration As TextBox
+	Friend WithEvents tbUpshiftAfterDownshift As TextBox
+	Friend WithEvents tbDownshiftAfterUpshift As TextBox
+	Friend WithEvents Label24 As Label
+	Friend WithEvents Label23 As Label
+	Friend WithEvents Label22 As Label
+	Friend WithEvents Label21 As Label
+	Friend WithEvents Label20 As Label
+	Friend WithEvents Label19 As Label
+	Friend WithEvents BtTCShiftFileBrowse As Button
+	Friend WithEvents LblTCShiftFile As Label
+	Friend WithEvents TBTCShiftPolygon As TextBox
+End Class
diff --git a/VECTO/GUI/F_GBX.resx b/VECTO/GUI/GearboxForm.resx
similarity index 100%
rename from VECTO/GUI/F_GBX.resx
rename to VECTO/GUI/GearboxForm.resx
diff --git a/VECTO/GUI/F_GBX.vb b/VECTO/GUI/GearboxForm.vb
similarity index 88%
rename from VECTO/GUI/F_GBX.vb
rename to VECTO/GUI/GearboxForm.vb
index 85bacf736e..54b713201a 100644
--- a/VECTO/GUI/F_GBX.vb
+++ b/VECTO/GUI/GearboxForm.vb
@@ -1,983 +1,983 @@
-' Copyright 2014 European Union.
-' Licensed under the EUPL (the 'Licence');
-'
-' * You may not use this work except in compliance with the Licence.
-' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
-' * Unless required by applicable law or agreed to in writing,
-'   software distributed under the Licence is distributed on an "AS IS" basis,
-'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-'
-' See the LICENSE.txt for the specific language governing permissions and limitations.
-Imports System.Collections.Generic
-Imports System.Drawing.Imaging
-Imports System.Globalization
-Imports System.IO
-Imports System.Linq
-Imports System.Text.RegularExpressions
-Imports System.Windows.Forms.DataVisualization.Charting
-Imports TUGraz.VECTO.Input_Files
-Imports TUGraz.VectoCommon.InputData
-Imports TUGraz.VectoCommon.Models
-Imports TUGraz.VectoCommon.Utils
-Imports TUGraz.VectoCore.Configuration
-Imports TUGraz.VectoCore.InputData.Impl
-Imports TUGraz.VectoCore.Models.Declaration
-Imports TUGraz.VectoCore.Models.SimulationComponent.Data
-Imports TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox
-
-''' <summary>
-''' Gearbox Editor
-''' </summary>
-''' <remarks></remarks>
-Public Class F_GBX
-	Private Enum GearboxTbl
-		GearNr = 0
-		'TorqueConverter = 1
-		Ratio = 1
-		LossMapEfficiency = 2
-		ShiftPolygons = 3
-		MaxTorque = 4
-	End Enum
-
-	Private GbxFile As String = ""
-	Public AutoSendTo As Boolean = False
-	Public JobDir As String = ""
-	Private GearDia As GearboxGearDialog
-
-	Private Init As Boolean = False
-
-	Private Changed As Boolean = False
-
-	'Before closing Editor: Check if file was changed and ask to save.
-	Private Sub F_GBX_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
-		If e.CloseReason <> CloseReason.ApplicationExitCall And e.CloseReason <> CloseReason.WindowsShutDown Then
-			e.Cancel = ChangeCheckCancel()
-		End If
-	End Sub
-
-	'Initialise.
-	Private Sub F_GBX_Load(sender As Object, e As EventArgs) Handles Me.Load
-
-		Init = False
-		GearDia = New GearboxGearDialog
-
-		PnInertiaTI.Enabled = Not Cfg.DeclMode
-		GrGearShift.Enabled = Not Cfg.DeclMode
-		ChTCon.Enabled = Not Cfg.DeclMode
-
-		CbGStype.Items.Clear()
-		CbGStype.ValueMember = "Value"
-		CbGStype.DisplayMember = "Label"
-
-		If Cfg.DeclMode Then
-			CbGStype.DataSource = [Enum].GetValues(GetType(GearboxType)) _
-				.Cast(Of GearboxType)() _
-				.Where(Function(type) type.ManualTransmission()) _
-				.Select(Function(type) New With {Key .Value = type, .Label = type.GetLabel()}).ToList()
-		Else
-			CbGStype.DataSource = [Enum].GetValues(GetType(GearboxType)) _
-				.Cast(Of GearboxType) _
-				.Where(Function(type) type.AutomaticTransmission() OrElse type.ManualTransmission()) _
-				.Select(Function(type) New With {Key .Value = type, .Label = type.GetLabel()}).ToList()
-		End If
-
-		Init = True
-
-		DeclInit()
-
-		Changed = False
-		newGBX()
-	End Sub
-
-	'Set generic values for Declaration mode.
-	Private Sub DeclInit()
-		Dim GStype As GearboxType
-		Dim lv0 As ListViewItem
-
-		If Not Cfg.DeclMode Then Exit Sub
-
-		TBI_getr.Text = DeclarationData.Gearbox.Inertia.Value()	'cDeclaration.GbInertia
-
-		GStype = CbGStype.SelectedValue	'CType(Me.CbGStype.SelectedIndex, tGearbox)
-
-		TbTracInt.Text = GStype.TractionInterruption().Value()
-		TbShiftTime.Text = DeclarationData.Gearbox.MinTimeBetweenGearshifts.Value()	'cDeclaration.ShiftTime(GStype)
-
-		TbTqResv.Text = DeclarationData.Gearbox.TorqueReserve ' cDeclaration.TqResv
-		TbTqResvStart.Text = DeclarationData.Gearbox.TorqueReserveStart	'cDeclaration.TqResvStart
-		TbStartSpeed.Text = DeclarationData.Gearbox.StartSpeed.Value() 'cDeclaration.StartSpeed
-		TbStartAcc.Text = DeclarationData.Gearbox.StartAcceleration.Value()	' cDeclaration.StartAcc
-
-		tbUpshiftMinAcceleration.Text = DeclarationData.Gearbox.UpshiftMinAcceleration.Value()
-		tbDownshiftAfterUpshift.Text = DeclarationData.Gearbox.DownshiftAfterUpshiftDelay.Value()
-		tbUpshiftAfterDownshift.Text = DeclarationData.Gearbox.UpshiftAfterDownshiftDelay.Value()
-
-		For Each lv0 In LvGears.Items
-			lv0.SubItems(GearboxTbl.ShiftPolygons).Text = "-"
-		Next
-	End Sub
-
-#Region "Toolbar"
-
-	Private Sub ToolStripBtNew_Click(sender As Object, e As EventArgs) Handles ToolStripBtNew.Click
-		newGBX()
-	End Sub
-
-	Private Sub ToolStripBtOpen_Click(sender As Object, e As EventArgs) Handles ToolStripBtOpen.Click
-		If fbGBX.OpenDialog(GbxFile) Then openGBX(fbGBX.Files(0))
-	End Sub
-
-	Private Sub ToolStripBtSave_Click(sender As Object, e As EventArgs) Handles ToolStripBtSave.Click
-		SaveOrSaveAs(False)
-	End Sub
-
-	Private Sub ToolStripBtSaveAs_Click(sender As Object, e As EventArgs) Handles ToolStripBtSaveAs.Click
-		SaveOrSaveAs(True)
-	End Sub
-
-	Private Sub ToolStripBtSendTo_Click(sender As Object, e As EventArgs) Handles ToolStripBtSendTo.Click
-
-		If ChangeCheckCancel() Then Exit Sub
-
-		If GbxFile = "" Then
-			If MsgBox("Save file now?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
-				If Not SaveOrSaveAs(True) Then Exit Sub
-			Else
-				Exit Sub
-			End If
-		End If
-
-		If Not F_VECTO.Visible Then
-			JobDir = ""
-			F_VECTO.Show()
-			F_VECTO.VECTOnew()
-		Else
-			F_VECTO.WindowState = FormWindowState.Normal
-		End If
-
-		F_VECTO.TbGBX.Text = fFileWoDir(GbxFile, JobDir)
-	End Sub
-
-	'Help
-	Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
-		If File.Exists(MyAppPath & "User Manual\help.html") Then
-			Dim BrowserRegistryString As String =
-					My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString
-			Dim DefaultBrowserPath As String =
-					Regex.Match(BrowserRegistryString, "(\"".*?\"")").Captures(0).ToString
-			Process.Start(DefaultBrowserPath,
-						String.Format("""{0}{1}""", MyAppPath, "User Manual\help.html#gearbox-editor"))
-		Else
-			MsgBox("User Manual not found!", MsgBoxStyle.Critical)
-		End If
-	End Sub
-
-#End Region
-
-	'New file
-	Private Sub newGBX()
-		'Dim lvi As ListViewItem
-
-		If ChangeCheckCancel() Then Exit Sub
-
-		CbGStype.SelectedIndex = 0
-
-		TbName.Text = ""
-		TbTracInt.Text = ""
-		TBI_getr.Text = ""
-
-		LvGears.Items.Clear()
-
-		LvGears.Items.Add(CreateListviewItem("Axle", "-", 0, 0, "", ""))
-
-		'Me.ChSkipGears.Checked = False         'set by CbGStype.SelectedIndexChanged
-		'Me.ChShiftInside.Checked = False       'set by CbGStype.SelectedIndexChanged
-		TbTqResv.Text = ""
-		TbShiftTime.Text = ""
-		TbTqResvStart.Text = ""
-		TbStartSpeed.Text = ""
-		TbStartAcc.Text = ""
-
-		'Me.ChTCon.Checked = False              'set by CbGStype.SelectedIndexChanged
-		TbTCfile.Text = ""
-		TbTCrefrpm.Text = ""
-		TbTCinertia.Text = ""
-
-		DeclInit()
-
-		GbxFile = ""
-		Text = "GBX Editor"
-		LbStatus.Text = ""
-
-		Changed = False
-		UpdatePic()
-	End Sub
-
-	'Open file
-	Public Sub openGBX(ByVal file As String)
-		Dim GBX0 As cGBX
-		Dim i As Integer
-		'Dim lv0 As ListViewItem
-
-		If ChangeCheckCancel() Then Exit Sub
-
-		GBX0 = New cGBX
-
-		GBX0.FilePath = file
-
-		If Not GBX0.ReadFile Then
-			MsgBox("Cannot read " & file & "!")
-			Exit Sub
-		End If
-
-		If Cfg.DeclMode <> GBX0.SavedInDeclMode Then
-			Select Case WrongMode()
-				Case 1
-					Close()
-					F_MAINForm.RbDecl.Checked = Not F_MAINForm.RbDecl.Checked
-					F_MAINForm.OpenVectoFile(file)
-				Case -1
-					Exit Sub
-				Case Else '0
-					'Continue...
-			End Select
-		End If
-
-		TbName.Text = GBX0.ModelName
-		TbTracInt.Text = GBX0.TracIntrSi.ToString
-		TBI_getr.Text = GBX0.GbxInertia.ToString
-
-		ChTCon.Checked = GBX0.TCon
-
-		LvGears.Items.Clear()
-
-		For i = 0 To GBX0.Igetr.Count - 1
-
-			If i = 0 Then
-				'lv0 = New ListViewItem("Axle")
-				LvGears.Items.Add(CreateListviewItem("Axle", "-", GBX0.Igetr(i), GBX0.GetrMap(i, True), GBX0.gsFile(i, True),
-													GBX0.MaxTorque(i)))
-			Else
-				'lv0 = New ListViewItem(i.ToString("00"))
-				LvGears.Items.Add(CreateListviewItem(i.ToString("00"), "-", GBX0.Igetr(i), GBX0.GetrMap(i, True),
-													GBX0.gsFile(i, True), GBX0.MaxTorque(i)))
-			End If
-
-		Next
-
-		ChSkipGears.Checked = GBX0.gs_SkipGears
-		TbTqResv.Text = GBX0.gs_TorqueResv.ToString
-		TbShiftTime.Text = GBX0.gs_ShiftTime.ToString
-		TbTqResvStart.Text = GBX0.gs_TorqueResvStart.ToString
-		TbStartSpeed.Text = GBX0.gs_StartSpeed.ToString
-		TbStartAcc.Text = GBX0.gs_StartAcc.ToString
-		ChShiftInside.Checked = GBX0.gs_ShiftInside
-
-		TbTCfile.Text = GBX0.TCfile(True)
-		TbTCrefrpm.Text = GBX0.TCrefrpm
-		TbTCinertia.Text = GBX0.TCinertia
-		TBTCShiftPolygon.Text = GBX0.TCshiftFile
-
-		tbUpshiftMinAcceleration.Text = GBX0.UpshiftMinAcceleration
-		tbDownshiftAfterUpshift.Text = GBX0.DownshiftAfterUpshift
-		tbUpshiftAfterDownshift.Text = GBX0.UpshiftAfterDownshift
-
-		CbGStype.SelectedValue = GBX0.gs_Type
-		'If CType(GBX0.gs_Type, Integer) <= Me.CbGStype.Items.Count - 1 Then
-		'	Me.CbGStype.SelectedIndex = CType(GBX0.gs_Type, Integer)
-		'Else
-		'	Me.CbGStype.SelectedIndex = 0
-		'End If
-
-		DeclInit()
-
-
-		fbGBX.UpdateHistory(file)
-		Text = fFILE(file, True)
-		LbStatus.Text = ""
-		GbxFile = file
-		Activate()
-
-		Changed = False
-		UpdatePic()
-	End Sub
-
-	Private Function CreateListviewItem(gear As String, tc As String, ratio As Single, getrMap As String,
-										shiftPolygon As String, fldFile As String) As ListViewItem
-		Dim retVal As ListViewItem = New ListViewItem(gear)
-		'retVal.SubItems.Add(tc)
-		retVal.SubItems.Add(ratio)
-		retVal.SubItems.Add(getrMap)
-		retVal.SubItems.Add(shiftPolygon)
-		retVal.SubItems.Add(fldFile)
-		Return retVal
-	End Function
-
-	'Save or Save As function = true if file is saved
-	Private Function SaveOrSaveAs(ByVal SaveAs As Boolean) As Boolean
-		If GbxFile = "" Or SaveAs Then
-			If fbGBX.SaveDialog(GbxFile) Then
-				GbxFile = fbGBX.Files(0)
-			Else
-				Return False
-			End If
-		End If
-		Return saveGBX(GbxFile)
-	End Function
-
-	'Save file
-	Private Function saveGBX(ByVal file As String) As Boolean
-		Dim GBX0 As cGBX
-		Dim i As Int16
-
-		GBX0 = New cGBX
-		GBX0.FilePath = file
-
-		GBX0.ModelName = TbName.Text
-		If Trim(GBX0.ModelName) = "" Then GBX0.ModelName = "Undefined"
-
-		GBX0.TracIntrSi = fTextboxToNumString(TbTracInt.Text)
-		GBX0.GbxInertia = fTextboxToNumString(TBI_getr.Text)
-
-		For i = 0 To LvGears.Items.Count - 1
-			'GBX0.IsTCgear.Add(Me.LvGears.Items(i).SubItems(GearboxTbl.TorqueConverter).Text = "on" And i > 0)
-			GBX0.Igetr.Add(CSng(LvGears.Items(i).SubItems(GearboxTbl.Ratio).Text))
-			GBX0.GetrMaps.Add(New cSubPath)
-			GBX0.GetrMap(i) = LvGears.Items(i).SubItems(GearboxTbl.LossMapEfficiency).Text
-			GBX0.gs_files.Add(New cSubPath)
-			GBX0.gsFile(i) = LvGears.Items(i).SubItems(GearboxTbl.ShiftPolygons).Text
-			'GBX0.FldFiles.Add(New cSubPath)
-			'GBX0.FldFile(i) = Me.LvGears.Items(i).SubItems(GearboxTbl.MaxTorque).Text
-			GBX0.MaxTorque.Add(LvGears.Items(i).SubItems(GearboxTbl.MaxTorque).Text)
-		Next
-
-		GBX0.gs_TorqueResv = fTextboxToNumString(TbTqResv.Text)
-		GBX0.gs_SkipGears = ChSkipGears.Checked
-		GBX0.gs_ShiftTime = fTextboxToNumString(TbShiftTime.Text)
-		GBX0.gs_TorqueResvStart = fTextboxToNumString(TbTqResvStart.Text)
-		GBX0.gs_StartSpeed = fTextboxToNumString(TbStartSpeed.Text)
-		GBX0.gs_StartAcc = fTextboxToNumString(TbStartAcc.Text)
-		GBX0.gs_ShiftInside = ChShiftInside.Checked
-
-		GBX0.gs_Type = CbGStype.SelectedValue
-
-		GBX0.TCon = ChTCon.Checked
-		GBX0.TCfile = TbTCfile.Text
-		GBX0.TCrefrpm = fTextboxToNumString(TbTCrefrpm.Text)
-		GBX0.TCinertia = fTextboxToNumString(TbTCinertia.Text)
-		GBX0.TCshiftFile = TBTCShiftPolygon.Text
-
-		GBX0.DownshiftAfterUpshift = fTextboxToNumString(tbDownshiftAfterUpshift.Text)
-		GBX0.UpshiftAfterDownshift = fTextboxToNumString(tbUpshiftAfterDownshift.Text)
-		GBX0.UpshiftMinAcceleration = fTextboxToNumString(tbUpshiftMinAcceleration.Text)
-
-		If Not GBX0.SaveFile Then
-			MsgBox("Cannot safe to " & file, MsgBoxStyle.Critical)
-			Return False
-		End If
-
-		If AutoSendTo Then
-			If F_VECTO.Visible Then
-				If UCase(fFileRepl(F_VECTO.TbGBX.Text, JobDir)) <> UCase(file) Then F_VECTO.TbGBX.Text = fFileWoDir(file, JobDir)
-				F_VECTO.UpdatePic()
-			End If
-		End If
-
-		fbGBX.UpdateHistory(file)
-		Text = fFILE(file, True)
-		LbStatus.Text = ""
-
-		Changed = False
-
-		Return True
-	End Function
-
-#Region "Change Events"
-
-	'Change Status ändern |@@| Change Status change
-	Private Sub Change()
-		If Not Changed Then
-			LbStatus.Text = "Unsaved changes in current file"
-			Changed = True
-		End If
-	End Sub
-
-	' "Save changes ?" ...liefert True wenn User Vorgang abbricht |@@| Save changes? "... Returns True if user aborts
-	Private Function ChangeCheckCancel() As Boolean
-
-		If Changed Then
-			Select Case MsgBox("Save changes ?", MsgBoxStyle.YesNoCancel)
-				Case MsgBoxResult.Yes
-					Return Not SaveOrSaveAs(False)
-				Case MsgBoxResult.Cancel
-					Return True
-				Case Else 'MsgBoxResult.No
-					Changed = False
-					Return False
-			End Select
-
-		Else
-
-			Return False
-
-		End If
-	End Function
-
-	Private Sub TbName_TextChanged(sender As Object, e As EventArgs) Handles TbName.TextChanged
-		Change()
-	End Sub
-
-	Private Sub TBI_getr_TextChanged(sender As Object, e As EventArgs) Handles TBI_getr.TextChanged
-		Change()
-	End Sub
-
-	Private Sub TbTracInt_TextChanged(sender As Object, e As EventArgs) Handles TbTracInt.TextChanged
-		Change()
-	End Sub
-
-	Private Sub ChSkipGears_CheckedChanged(sender As Object, e As EventArgs) _
-		Handles ChSkipGears.CheckedChanged
-		CheckEnableTorqRes()
-		Change()
-	End Sub
-
-	Private Sub ChShiftInside_CheckedChanged(sender As Object, e As EventArgs) _
-		Handles ChShiftInside.CheckedChanged
-		CheckEnableTorqRes()
-		Change()
-	End Sub
-
-	Private Sub TbTqResv_TextChanged(sender As Object, e As EventArgs) Handles TbTqResv.TextChanged
-		Change()
-	End Sub
-
-	Private Sub TbShiftTime_TextChanged(sender As Object, e As EventArgs) Handles TbShiftTime.TextChanged
-		Change()
-	End Sub
-
-	Private Sub TbTqResvStart_TextChanged(sender As Object, e As EventArgs) Handles TbTqResvStart.TextChanged
-		Change()
-	End Sub
-
-	Private Sub TbStartSpeed_TextChanged(sender As Object, e As EventArgs) Handles TbStartSpeed.TextChanged
-		Change()
-	End Sub
-
-	Private Sub TbStartAcc_TextChanged(sender As Object, e As EventArgs) Handles TbStartAcc.TextChanged
-		Change()
-	End Sub
-
-	Private Sub TbTCfile_TextChanged(sender As Object, e As EventArgs) Handles TbTCfile.TextChanged
-		Change()
-	End Sub
-
-	Private Sub TbTCrefrpm_TextChanged(sender As Object, e As EventArgs) Handles TbTCrefrpm.TextChanged
-		Change()
-	End Sub
-
-	Private Sub TbTCinertia_TextChanged(sender As Object, e As EventArgs) Handles TbTCinertia.TextChanged
-		Change()
-	End Sub
-
-
-	Private Sub CheckEnableTorqRes()
-		If ChShiftInside.Checked Or ChSkipGears.Checked Then
-			PnTorqRes.Enabled = True
-		Else
-			PnTorqRes.Enabled = False
-		End If
-	End Sub
-
-
-#End Region
-
-	'Save and close
-	Private Sub ButOK_Click(sender As Object, e As EventArgs) Handles ButOK.Click
-		If SaveOrSaveAs(False) Then Close()
-	End Sub
-
-	'Cancel
-	Private Sub ButCancel_Click(sender As Object, e As EventArgs) Handles ButCancel.Click
-		Close()
-	End Sub
-
-	'Enable/Disable settings for specific transmission types
-	Private Sub CbGStype_SelectedIndexChanged(sender As Object, e As EventArgs) _
-		Handles CbGStype.SelectedIndexChanged
-		Dim GStype As GearboxType = CbGStype.SelectedItem.Value
-
-		Change()
-
-		ChShiftInside.Enabled = (GStype.EarlyShiftGears())
-		ChSkipGears.Enabled = (GStype.SkipGears())
-		ChTCon.Enabled = (GStype.AutomaticTransmission())
-	End Sub
-
-
-	Private Sub LvGears_SelectedIndexChanged(sender As Object, e As EventArgs) _
-		Handles LvGears.SelectedIndexChanged
-		UpdatePic()
-	End Sub
-
-#Region "Gears"
-
-	'Gear-DoubleClick
-	Private Sub LvGears_MouseDoubleClick(ByVal sender As Object, ByVal e As MouseEventArgs) _
-		Handles LvGears.MouseDoubleClick
-		EditGear()
-	End Sub
-
-	'Gear-KeyDown
-	Private Sub LvGears_KeyDown(sender As Object, e As KeyEventArgs) Handles LvGears.KeyDown
-		Select Case e.KeyCode
-			Case Keys.Delete, Keys.Back
-				RemoveGear(False)
-			Case Keys.Enter
-				EditGear()
-		End Select
-	End Sub
-
-	'Remove Gear Button
-	Private Sub BtClearGear_Click(sender As Object, e As EventArgs) Handles BtRemGear.Click
-		RemoveGear(False)
-	End Sub
-
-	'Add Gear button
-	Private Sub BtAddGear_Click(sender As Object, e As EventArgs) Handles BtAddGear.Click
-		AddGear()
-		LvGears.Items(LvGears.Items.Count - 1).Selected = True
-		EditGear()
-	End Sub
-
-	'Edit Gear
-	Private Sub EditGear()
-
-		Do
-
-			'GearDia.ChIsTCgear.Enabled = (Me.ChTCon.Checked And Me.LvGears.SelectedIndices(0) > 0)
-			GearDia.PnShiftPoly.Enabled = (Not Cfg.DeclMode And LvGears.SelectedIndices(0) > 0)
-			GearDia.PnFld.Enabled = (LvGears.SelectedIndices(0) > 0)
-			GearDia.GbxPath = fPATH(GbxFile)
-			GearDia.TbGear.Text = LvGears.SelectedItems(0).SubItems(GearboxTbl.GearNr).Text
-			GearDia.TbRatio.Text = LvGears.SelectedItems(0).SubItems(GearboxTbl.Ratio).Text
-			GearDia.TbMapPath.Text = LvGears.SelectedItems(0).SubItems(GearboxTbl.LossMapEfficiency).Text
-			If LvGears.SelectedIndices(0) > 0 Then
-				GearDia.TbShiftPolyFile.Text = LvGears.SelectedItems(0).SubItems(GearboxTbl.ShiftPolygons).Text
-				GearDia.TbMaxTorque.Text = LvGears.SelectedItems(0).SubItems(GearboxTbl.MaxTorque).Text
-			Else
-				GearDia.TbShiftPolyFile.Text = ""
-				GearDia.TbMaxTorque.Text = ""
-			End If
-
-			If LvGears.SelectedItems(0).Index = 0 Then
-				GearDia.BtPrevious.Enabled = False
-			Else
-				GearDia.BtPrevious.Enabled = True
-			End If
-
-			If GearDia.ShowDialog = DialogResult.OK Then
-
-				'Me.LvGears.SelectedItems(0).SubItems(GearboxTbl.TorqueConverter).Text = "-"
-
-
-				LvGears.SelectedItems(0).SubItems(GearboxTbl.Ratio).Text = GearDia.TbRatio.Text
-				LvGears.SelectedItems(0).SubItems(GearboxTbl.LossMapEfficiency).Text = GearDia.TbMapPath.Text
-				LvGears.SelectedItems(0).SubItems(GearboxTbl.ShiftPolygons).Text = GearDia.TbShiftPolyFile.Text
-				LvGears.SelectedItems(0).SubItems(GearboxTbl.MaxTorque).Text = GearDia.TbMaxTorque.Text
-
-				UpdatePic()
-				Change()
-
-			Else
-
-				If LvGears.SelectedItems(0).SubItems(GearboxTbl.Ratio).Text = "" Then RemoveGear(True)
-
-			End If
-
-			If GearDia.NextGear Then
-				If LvGears.Items.Count - 1 = LvGears.SelectedIndices(0) Then AddGear()
-
-				LvGears.Items(LvGears.SelectedIndices(0) + 1).Selected = True
-			End If
-
-			If GearDia.PreviousGear AndAlso LvGears.SelectedIndices(0) > 0 Then
-				LvGears.Items(LvGears.SelectedIndices(0) - 1).Selected = True
-			End If
-
-		Loop Until Not (GearDia.NextGear OrElse GearDia.PreviousGear)
-	End Sub
-
-	'Add Gear
-	Private Sub AddGear()
-		Dim lvi As ListViewItem
-
-		lvi = CreateListviewItem(LvGears.Items.Count.ToString("00"), "-", 1, "", "", "")
-
-		LvGears.Items.Add(lvi)
-
-		lvi.EnsureVisible()
-
-		LvGears.Focus()
-
-		'Change() => NO! Change() is already handled by EditGear
-	End Sub
-
-	'Remove Gear
-	Private Sub RemoveGear(ByVal NoChange As Boolean)
-		Dim i0 As Int16
-		Dim i As Int16
-		Dim lv0 As ListViewItem
-
-		If LvGears.Items.Count < 2 Then Exit Sub
-
-		If LvGears.SelectedItems.Count = 0 Then LvGears.Items(LvGears.Items.Count - 1).Selected = True
-
-		i0 = LvGears.SelectedItems(0).Index
-
-		If i0 = 0 Then Exit Sub 'Must not remove axle
-
-		LvGears.SelectedItems(0).Remove()
-
-		i = 0
-		For Each lv0 In LvGears.Items
-			If lv0.SubItems(GearboxTbl.GearNr).Text = "Axle" Then Continue For
-			i += 1
-			lv0.SubItems(GearboxTbl.GearNr).Text = i.ToString("00")
-		Next
-
-		If i0 < LvGears.Items.Count Then
-			LvGears.Items(i0).Selected = True
-			LvGears.Items(i0).EnsureVisible()
-		End If
-
-		LvGears.Focus()
-		UpdatePic()
-
-		If Not NoChange Then Change()
-	End Sub
-
-
-#End Region
-
-
-#Region "Open File Context Menu"
-
-	Private CmFiles As String()
-
-	Private Sub OpenFiles(ParamArray files() As String)
-
-		If files.Length = 0 Then Exit Sub
-
-		CmFiles = files
-
-		OpenWithToolStripMenuItem.Text = "Open with " & Cfg.OpenCmdName
-
-		CmOpenFile.Show(Windows.Forms.Cursor.Position)
-	End Sub
-
-	Private Sub OpenWithToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles OpenWithToolStripMenuItem.Click
-		If Not FileOpenAlt(CmFiles(0)) Then MsgBox("Failed to open file!")
-	End Sub
-
-	Private Sub ShowInFolderToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles ShowInFolderToolStripMenuItem.Click
-		If File.Exists(CmFiles(0)) Then
-			Try
-				Process.Start("explorer", "/select,""" & CmFiles(0) & "")
-			Catch ex As Exception
-				MsgBox("Failed to open file!")
-			End Try
-		Else
-			MsgBox("File not found!")
-		End If
-	End Sub
-
-#End Region
-
-
-	Private Sub UpdatePic()
-
-		Dim f As cFile_V3
-		Dim path As String
-		Dim lM As List(Of Single) = Nothing
-		Dim lup As List(Of Single) = Nothing
-		Dim ldown As List(Of Single) = Nothing
-		Dim line As String()
-		Dim MyChart As Chart
-		Dim s As Series
-		Dim a As ChartArea
-		Dim img As Image
-		Dim Gear As Integer
-		Dim fldOK As Boolean
-		Dim fldpath As String
-		Dim FLD0 As cFLD = Nothing
-		Dim ShiftOK As Boolean
-
-
-		PicBox.Image = Nothing
-
-		Try
-
-			'Check Files
-			If LvGears.Items.Count > 1 Then
-
-				If LvGears.SelectedItems.Count > 0 AndAlso LvGears.SelectedIndices(0) > 0 Then
-					path = fFileRepl(LvGears.SelectedItems(0).SubItems(GearboxTbl.ShiftPolygons).Text, fPATH(GbxFile))
-					'fldpath = fFileRepl(LvGears.SelectedItems(0).SubItems(GearboxTbl.MaxTorque).Text, fPATH(GbxFile))
-					Gear = LvGears.SelectedIndices(0)
-				Else
-					path = fFileRepl(LvGears.Items(1).SubItems(GearboxTbl.ShiftPolygons).Text, fPATH(GbxFile))
-					'fldpath = fFileRepl(Me.LvGears.Items(1).SubItems(GearboxTbl.MaxTorque).Text, fPATH(GbxFile))
-					Gear = 1
-				End If
-
-				f = New cFile_V3
-				ShiftOK = f.OpenRead(path)
-
-				fldpath = F_VECTO.FLDfile
-
-				fldOK = fldpath.Trim <> ""
-
-				If fldOK Then
-					FLD0 = New cFLD
-					FLD0.FilePath = fldpath
-					fldOK = FLD0.ReadFile(True, False)
-				End If
-
-			Else
-
-				Exit Sub
-
-			End If
-
-		Catch ex As Exception
-			Exit Sub
-
-		End Try
-
-		'Read ShiftPolygon
-		If ShiftOK Then
-
-			'Header
-			f.ReadLine()
-
-			Try
-				lM = New List(Of Single)
-				lup = New List(Of Single)
-				ldown = New List(Of Single)
-
-				Do While Not f.EndOfFile
-					line = f.ReadLine
-					lM.Add(CSng(line(0)))
-					lup.Add(CSng(line(1)))
-					ldown.Add(CSng(line(2)))
-				Loop
-
-				f.Close()
-
-			Catch ex As Exception
-				f.Close()
-				Exit Sub
-			End Try
-
-			If lM.Count < 2 Then ShiftOK = False
-
-		End If
-
-
-		'Create plot
-		If Not ShiftOK And Not fldOK Then Exit Sub
-
-		MyChart = New Chart
-		MyChart.Width = PicBox.Width
-		MyChart.Height = PicBox.Height
-
-		a = New ChartArea
-
-		'Shiftpolygons from file
-		If ShiftOK Then
-			s = New Series
-			s.Points.DataBindXY(lup, lM)
-			s.ChartType = SeriesChartType.FastLine
-			s.BorderWidth = 2
-			s.Color = Color.DarkRed
-			s.Name = "Upshift curve"
-			MyChart.Series.Add(s)
-
-			s = New Series
-			s.Points.DataBindXY(ldown, lM)
-			s.ChartType = SeriesChartType.FastLine
-			s.BorderWidth = 2
-			s.Color = Color.DarkRed
-			s.Name = "Downshift curve"
-			MyChart.Series.Add(s)
-		End If
-
-		Dim vectoJob As cVECTO = New cVECTO() With {.FilePath = F_VECTO.VECTOfile}
-		Dim vectoOk As Boolean = vectoJob.ReadFile()
-		Dim vehicle As cVEH = New cVEH() With {.FilePath = vectoJob.PathVeh(False)}
-		Dim vehicleOk As Boolean = vehicle.ReadFile(False)
-
-		'Fld
-		If fldOK AndAlso vectoOk AndAlso vehicleOk Then
-
-			s = New Series
-			s.Points.DataBindXY(FLD0.LnU, FLD0.LTq)
-			s.ChartType = SeriesChartType.FastLine
-			s.BorderWidth = 2
-			s.Color = Color.DarkBlue
-			s.Name = "Full load"
-			MyChart.Series.Add(s)
-
-			If F_VECTO.Visible AndAlso F_VECTO.n_idle > 0 Then
-				If FLD0.Init(F_VECTO.n_idle) Then
-
-					'Dim fullLoadCurve As FullLoadCurve = ConvertToFullLoadCurve(FLD0.LnU, FLD0.LTq)
-					Dim gears As IList(Of ITransmissionInputData) = ConvertToGears(LvGears.Items)
-					If (CType(CbGStype.SelectedValue, GearboxType).ManualTransmission() AndAlso gears.Count > 1) Then
-						Dim engine As CombustionEngineData = ConvertToEngineData(FLD0, F_VECTO.n_idle)
-						Dim shiftLines As ShiftPolygon = DeclarationData.Gearbox.ComputeShiftPolygon(Gear - 1, engine.FullLoadCurve, gears,
-																									engine,
-																									Double.Parse(LvGears.Items(0).SubItems(GearboxTbl.Ratio).Text, CultureInfo.InvariantCulture),
-																									(vehicle.rdyn / 1000.0).SI(Of Meter))
-
-						s = New Series
-
-						's.Points.DataBindXY(Shiftpoly.gs_nUup, Shiftpoly.gs_TqUp)
-						s.Points.DataBindXY(
-							shiftLines.Upshift.Select(Function(pt) pt.AngularSpeed.Value() / Constants.RPMToRad).ToList(),
-							shiftLines.Upshift.Select(Function(pt) pt.Torque.Value()).ToList())
-						s.ChartType = SeriesChartType.FastLine
-						s.BorderWidth = 2
-						s.Color = Color.DarkRed
-						s.BorderDashStyle = ChartDashStyle.Dash
-						s.Name = "Upshift curve (generic)"
-						MyChart.Series.Add(s)
-
-						s = New Series
-						's.Points.DataBindXY(Shiftpoly.gs_nUdown, Shiftpoly.gs_TqDown)
-						s.Points.DataBindXY(
-							shiftLines.Downshift.Select(Function(pt) pt.AngularSpeed.Value() / Constants.RPMToRad).ToList(),
-							shiftLines.Downshift.Select(Function(pt) pt.Torque.Value()).ToList())
-						s.ChartType = SeriesChartType.FastLine
-						s.BorderWidth = 2
-						s.Color = Color.DarkRed
-						s.BorderDashStyle = ChartDashStyle.Dash
-						s.Name = "Downshift curve (generic)"
-						MyChart.Series.Add(s)
-					End If
-				End If
-			End If
-
-		End If
-
-
-		a.Name = "main"
-
-		a.AxisX.Title = "engine speed [1/min]"
-		a.AxisX.TitleFont = New Font("Helvetica", 10)
-		a.AxisX.LabelStyle.Font = New Font("Helvetica", 8)
-		a.AxisX.LabelAutoFitStyle = LabelAutoFitStyles.None
-		a.AxisX.MajorGrid.LineDashStyle = ChartDashStyle.Dot
-
-		a.AxisY.Title = "engine torque [Nm]"
-		a.AxisY.TitleFont = New Font("Helvetica", 10)
-		a.AxisY.LabelStyle.Font = New Font("Helvetica", 8)
-		a.AxisY.LabelAutoFitStyle = LabelAutoFitStyles.None
-		a.AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dot
-
-		a.AxisX.Minimum = 300
-		a.BorderDashStyle = ChartDashStyle.Solid
-		a.BorderWidth = 1
-
-		a.BackColor = Color.GhostWhite
-
-		MyChart.ChartAreas.Add(a)
-
-		MyChart.Titles.Add("Gear " & Gear & " shift polygons")
-		MyChart.Titles(0).Font = New Font("Helvetica", 12)
-
-		MyChart.Update()
-
-		img = New Bitmap(MyChart.Width, MyChart.Height, PixelFormat.Format32bppArgb)
-		MyChart.DrawToBitmap(img, New Rectangle(0, 0, PicBox.Width, PicBox.Height))
-
-		PicBox.Image = img
-	End Sub
-
-
-	Private Function ConvertToGears(gbx As ListView.ListViewItemCollection) As IList(Of ITransmissionInputData)
-		Dim retVal As List(Of ITransmissionInputData) = New List(Of ITransmissionInputData)
-		Dim value As Double
-
-		For i As Integer = 1 To gbx.Count - 1
-			If _
-				gbx(i).SubItems(GearboxTbl.Ratio).Text <> "" AndAlso Double.TryParse(gbx(i).SubItems(GearboxTbl.Ratio).Text, value) _
-				Then
-				retVal.Add(
-					New TransmissionInputData() _
-							With {.Ratio = Double.Parse(value, CultureInfo.InvariantCulture)})
-
-			End If
-		Next
-		Return retVal
-	End Function
-
-
-#Region "Torque Converter"
-
-	'TC on/off
-	Private Sub ChTCon_CheckedChanged(sender As Object, e As EventArgs) Handles ChTCon.CheckedChanged
-		Change()
-		CheckGearTC()
-		PnTC.Enabled = ChTCon.Checked
-		LblTCShiftFile.Enabled = ChTCon.Checked
-		TBTCShiftPolygon.Enabled = ChTCon.Checked
-	End Sub
-
-	'Browse TC file
-	Private Sub BtTCfileBrowse_Click(sender As Object, e As EventArgs) Handles BtTCfileBrowse.Click
-		If fbTCC.OpenDialog(fFileRepl(TbTCfile.Text, fPATH(GbxFile))) Then
-			TbTCfile.Text = fFileWoDir(fbTCC.Files(0), fPATH(GbxFile))
-		End If
-	End Sub
-
-	'Open TC file
-	Private Sub BtTCfileOpen_Click(sender As Object, e As EventArgs) Handles BtTCfileOpen.Click
-		OpenFiles(fFileRepl(TbTCfile.Text, fPATH(GbxFile)))
-	End Sub
-
-	Private Sub CheckGearTC()
-		Dim lv0 As ListViewItem
-
-		If Not Init Then Exit Sub
-
-		For Each lv0 In LvGears.Items
-
-			If lv0.SubItems(GearboxTbl.GearNr).Text = "Axle" Then Continue For
-
-			'lv0.SubItems(GearboxTbl.TorqueConverter).Text = "-"
-		Next
-	End Sub
-
-
-#End Region
-
-	Private Sub GroupBox1_Enter(sender As Object, e As EventArgs) Handles GroupBox1.Enter
-	End Sub
-
-	Public Sub New()
-
-		' Dieser Aufruf ist für den Designer erforderlich.
-		InitializeComponent()
-
-		' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
-	End Sub
-
-	Private Sub BtTCShiftFileBrowse_Click(sender As Object, e As EventArgs) Handles BtTCShiftFileBrowse.Click
-		If fbTCCShift.OpenDialog(fFileRepl(TBTCShiftPolygon.Text, fPATH(GbxFile))) Then
-			TBTCShiftPolygon.Text = fFileWoDir(fbTCCShift.Files(0), fPATH(GbxFile))
-		End If
-	End Sub
-End Class
+' Copyright 2014 European Union.
+' Licensed under the EUPL (the 'Licence');
+'
+' * You may not use this work except in compliance with the Licence.
+' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
+' * Unless required by applicable law or agreed to in writing,
+'   software distributed under the Licence is distributed on an "AS IS" basis,
+'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+'
+' See the LICENSE.txt for the specific language governing permissions and limitations.
+Imports System.Collections.Generic
+Imports System.Drawing.Imaging
+Imports System.Globalization
+Imports System.IO
+Imports System.Linq
+Imports System.Text.RegularExpressions
+Imports System.Windows.Forms.DataVisualization.Charting
+Imports TUGraz.VECTO.Input_Files
+Imports TUGraz.VectoCommon.InputData
+Imports TUGraz.VectoCommon.Models
+Imports TUGraz.VectoCommon.Utils
+Imports TUGraz.VectoCore.Configuration
+Imports TUGraz.VectoCore.InputData.Impl
+Imports TUGraz.VectoCore.Models.Declaration
+Imports TUGraz.VectoCore.Models.SimulationComponent.Data
+Imports TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox
+
+''' <summary>
+''' Gearbox Editor
+''' </summary>
+''' <remarks></remarks>
+Public Class GearboxForm
+	Private Enum GearboxTbl
+		GearNr = 0
+		'TorqueConverter = 1
+		Ratio = 1
+		LossMapEfficiency = 2
+		ShiftPolygons = 3
+		MaxTorque = 4
+	End Enum
+
+	Private GbxFile As String = ""
+	Public AutoSendTo As Boolean = False
+	Public JobDir As String = ""
+	Private GearDia As GearboxGearDialog
+
+	Private Init As Boolean = False
+
+	Private Changed As Boolean = False
+
+	'Before closing Editor: Check if file was changed and ask to save.
+	Private Sub F_GBX_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
+		If e.CloseReason <> CloseReason.ApplicationExitCall And e.CloseReason <> CloseReason.WindowsShutDown Then
+			e.Cancel = ChangeCheckCancel()
+		End If
+	End Sub
+
+	'Initialise.
+	Private Sub F_GBX_Load(sender As Object, e As EventArgs) Handles Me.Load
+
+		Init = False
+		GearDia = New GearboxGearDialog
+
+		PnInertiaTI.Enabled = Not Cfg.DeclMode
+		GrGearShift.Enabled = Not Cfg.DeclMode
+		ChTCon.Enabled = Not Cfg.DeclMode
+
+		CbGStype.Items.Clear()
+		CbGStype.ValueMember = "Value"
+		CbGStype.DisplayMember = "Label"
+
+		If Cfg.DeclMode Then
+			CbGStype.DataSource = [Enum].GetValues(GetType(GearboxType)) _
+				.Cast(Of GearboxType)() _
+				.Where(Function(type) type.ManualTransmission()) _
+				.Select(Function(type) New With {Key .Value = type, .Label = type.GetLabel()}).ToList()
+		Else
+			CbGStype.DataSource = [Enum].GetValues(GetType(GearboxType)) _
+				.Cast(Of GearboxType) _
+				.Where(Function(type) type.AutomaticTransmission() OrElse type.ManualTransmission()) _
+				.Select(Function(type) New With {Key .Value = type, .Label = type.GetLabel()}).ToList()
+		End If
+
+		Init = True
+
+		DeclInit()
+
+		Changed = False
+		newGBX()
+	End Sub
+
+	'Set generic values for Declaration mode.
+	Private Sub DeclInit()
+		Dim GStype As GearboxType
+		Dim lv0 As ListViewItem
+
+		If Not Cfg.DeclMode Then Exit Sub
+
+		TBI_getr.Text = DeclarationData.Gearbox.Inertia.Value()	'cDeclaration.GbInertia
+
+		GStype = CbGStype.SelectedValue	'CType(Me.CbGStype.SelectedIndex, tGearbox)
+
+		TbTracInt.Text = GStype.TractionInterruption().Value()
+		TbShiftTime.Text = DeclarationData.Gearbox.MinTimeBetweenGearshifts.Value()	'cDeclaration.ShiftTime(GStype)
+
+		TbTqResv.Text = DeclarationData.Gearbox.TorqueReserve ' cDeclaration.TqResv
+		TbTqResvStart.Text = DeclarationData.Gearbox.TorqueReserveStart	'cDeclaration.TqResvStart
+		TbStartSpeed.Text = DeclarationData.Gearbox.StartSpeed.Value() 'cDeclaration.StartSpeed
+		TbStartAcc.Text = DeclarationData.Gearbox.StartAcceleration.Value()	' cDeclaration.StartAcc
+
+		tbUpshiftMinAcceleration.Text = DeclarationData.Gearbox.UpshiftMinAcceleration.Value()
+		tbDownshiftAfterUpshift.Text = DeclarationData.Gearbox.DownshiftAfterUpshiftDelay.Value()
+		tbUpshiftAfterDownshift.Text = DeclarationData.Gearbox.UpshiftAfterDownshiftDelay.Value()
+
+		For Each lv0 In LvGears.Items
+			lv0.SubItems(GearboxTbl.ShiftPolygons).Text = "-"
+		Next
+	End Sub
+
+#Region "Toolbar"
+
+	Private Sub ToolStripBtNew_Click(sender As Object, e As EventArgs) Handles ToolStripBtNew.Click
+		newGBX()
+	End Sub
+
+	Private Sub ToolStripBtOpen_Click(sender As Object, e As EventArgs) Handles ToolStripBtOpen.Click
+		If GearboxFileBrowser.OpenDialog(GbxFile) Then openGBX(GearboxFileBrowser.Files(0))
+	End Sub
+
+	Private Sub ToolStripBtSave_Click(sender As Object, e As EventArgs) Handles ToolStripBtSave.Click
+		SaveOrSaveAs(False)
+	End Sub
+
+	Private Sub ToolStripBtSaveAs_Click(sender As Object, e As EventArgs) Handles ToolStripBtSaveAs.Click
+		SaveOrSaveAs(True)
+	End Sub
+
+	Private Sub ToolStripBtSendTo_Click(sender As Object, e As EventArgs) Handles ToolStripBtSendTo.Click
+
+		If ChangeCheckCancel() Then Exit Sub
+
+		If GbxFile = "" Then
+			If MsgBox("Save file now?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
+				If Not SaveOrSaveAs(True) Then Exit Sub
+			Else
+				Exit Sub
+			End If
+		End If
+
+		If Not VectoJobForm.Visible Then
+			JobDir = ""
+			VectoJobForm.Show()
+			VectoJobForm.VECTOnew()
+		Else
+			VectoJobForm.WindowState = FormWindowState.Normal
+		End If
+
+		VectoJobForm.TbGBX.Text = fFileWoDir(GbxFile, JobDir)
+	End Sub
+
+	'Help
+	Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
+		If File.Exists(MyAppPath & "User Manual\help.html") Then
+			Dim BrowserRegistryString As String =
+					My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString
+			Dim DefaultBrowserPath As String =
+					Regex.Match(BrowserRegistryString, "(\"".*?\"")").Captures(0).ToString
+			Process.Start(DefaultBrowserPath,
+						String.Format("""{0}{1}""", MyAppPath, "User Manual\help.html#gearbox-editor"))
+		Else
+			MsgBox("User Manual not found!", MsgBoxStyle.Critical)
+		End If
+	End Sub
+
+#End Region
+
+	'New file
+	Private Sub newGBX()
+		'Dim lvi As ListViewItem
+
+		If ChangeCheckCancel() Then Exit Sub
+
+		CbGStype.SelectedIndex = 0
+
+		TbName.Text = ""
+		TbTracInt.Text = ""
+		TBI_getr.Text = ""
+
+		LvGears.Items.Clear()
+
+		LvGears.Items.Add(CreateListviewItem("Axle", "-", 0, 0, "", ""))
+
+		'Me.ChSkipGears.Checked = False         'set by CbGStype.SelectedIndexChanged
+		'Me.ChShiftInside.Checked = False       'set by CbGStype.SelectedIndexChanged
+		TbTqResv.Text = ""
+		TbShiftTime.Text = ""
+		TbTqResvStart.Text = ""
+		TbStartSpeed.Text = ""
+		TbStartAcc.Text = ""
+
+		'Me.ChTCon.Checked = False              'set by CbGStype.SelectedIndexChanged
+		TbTCfile.Text = ""
+		TbTCrefrpm.Text = ""
+		TbTCinertia.Text = ""
+
+		DeclInit()
+
+		GbxFile = ""
+		Text = "GBX Editor"
+		LbStatus.Text = ""
+
+		Changed = False
+		UpdatePic()
+	End Sub
+
+	'Open file
+	Public Sub openGBX(ByVal file As String)
+		Dim GBX0 As Gearbox
+		Dim i As Integer
+		'Dim lv0 As ListViewItem
+
+		If ChangeCheckCancel() Then Exit Sub
+
+		GBX0 = New Gearbox
+
+		GBX0.FilePath = file
+
+		If Not GBX0.ReadFile Then
+			MsgBox("Cannot read " & file & "!")
+			Exit Sub
+		End If
+
+		If Cfg.DeclMode <> GBX0.SavedInDeclMode Then
+			Select Case WrongMode()
+				Case 1
+					Close()
+					MainForm.RbDecl.Checked = Not MainForm.RbDecl.Checked
+					MainForm.OpenVectoFile(file)
+				Case -1
+					Exit Sub
+				Case Else '0
+					'Continue...
+			End Select
+		End If
+
+		TbName.Text = GBX0.ModelName
+		TbTracInt.Text = GBX0.TracIntrSi.ToString
+		TBI_getr.Text = GBX0.GbxInertia.ToString
+
+		ChTCon.Checked = GBX0.TorqueConverterEnabled
+
+		LvGears.Items.Clear()
+
+		For i = 0 To GBX0.Igetr.Count - 1
+
+			If i = 0 Then
+				'lv0 = New ListViewItem("Axle")
+				LvGears.Items.Add(CreateListviewItem("Axle", "-", GBX0.Igetr(i), GBX0.GetrMap(i, True), GBX0.gsFile(i, True),
+													GBX0.MaxTorque(i)))
+			Else
+				'lv0 = New ListViewItem(i.ToString("00"))
+				LvGears.Items.Add(CreateListviewItem(i.ToString("00"), "-", GBX0.Igetr(i), GBX0.GetrMap(i, True),
+													GBX0.gsFile(i, True), GBX0.MaxTorque(i)))
+			End If
+
+		Next
+
+		ChSkipGears.Checked = GBX0.SkipGears
+		TbTqResv.Text = GBX0.TorqueResv.ToString
+		TbShiftTime.Text = GBX0.ShiftTime.ToString
+		TbTqResvStart.Text = GBX0.TorqueResvStart.ToString
+		TbStartSpeed.Text = GBX0.StartSpeed.ToString
+		TbStartAcc.Text = GBX0.StartAcc.ToString
+		ChShiftInside.Checked = GBX0.ShiftInside
+
+		TbTCfile.Text = GBX0.TCfile(True)
+		TbTCrefrpm.Text = GBX0.TorqueConverterReferenceRPM
+		TbTCinertia.Text = GBX0.TorqueConverterInertia
+		TBTCShiftPolygon.Text = GBX0.TCshiftFile
+
+		tbUpshiftMinAcceleration.Text = GBX0.UpshiftMinAcceleration
+		tbDownshiftAfterUpshift.Text = GBX0.DownshiftAfterUpshift
+		tbUpshiftAfterDownshift.Text = GBX0.UpshiftAfterDownshift
+
+		CbGStype.SelectedValue = GBX0.Type
+		'If CType(GBX0.gs_Type, Integer) <= Me.CbGStype.Items.Count - 1 Then
+		'	Me.CbGStype.SelectedIndex = CType(GBX0.gs_Type, Integer)
+		'Else
+		'	Me.CbGStype.SelectedIndex = 0
+		'End If
+
+		DeclInit()
+
+
+		GearboxFileBrowser.UpdateHistory(file)
+		Text = fFILE(file, True)
+		LbStatus.Text = ""
+		GbxFile = file
+		Activate()
+
+		Changed = False
+		UpdatePic()
+	End Sub
+
+	Private Function CreateListviewItem(gear As String, tc As String, ratio As Single, getrMap As String,
+										shiftPolygon As String, fldFile As String) As ListViewItem
+		Dim retVal As ListViewItem = New ListViewItem(gear)
+		'retVal.SubItems.Add(tc)
+		retVal.SubItems.Add(ratio)
+		retVal.SubItems.Add(getrMap)
+		retVal.SubItems.Add(shiftPolygon)
+		retVal.SubItems.Add(fldFile)
+		Return retVal
+	End Function
+
+	'Save or Save As function = true if file is saved
+	Private Function SaveOrSaveAs(ByVal SaveAs As Boolean) As Boolean
+		If GbxFile = "" Or SaveAs Then
+			If GearboxFileBrowser.SaveDialog(GbxFile) Then
+				GbxFile = GearboxFileBrowser.Files(0)
+			Else
+				Return False
+			End If
+		End If
+		Return saveGBX(GbxFile)
+	End Function
+
+	'Save file
+	Private Function saveGBX(ByVal file As String) As Boolean
+		Dim GBX0 As Gearbox
+		Dim i As Int16
+
+		GBX0 = New Gearbox
+		GBX0.FilePath = file
+
+		GBX0.ModelName = TbName.Text
+		If Trim(GBX0.ModelName) = "" Then GBX0.ModelName = "Undefined"
+
+		GBX0.TracIntrSi = fTextboxToNumString(TbTracInt.Text)
+		GBX0.GbxInertia = fTextboxToNumString(TBI_getr.Text)
+
+		For i = 0 To LvGears.Items.Count - 1
+			'GBX0.IsTCgear.Add(Me.LvGears.Items(i).SubItems(GearboxTbl.TorqueConverter).Text = "on" And i > 0)
+			GBX0.Igetr.Add(CSng(LvGears.Items(i).SubItems(GearboxTbl.Ratio).Text))
+			GBX0.GetrMaps.Add(New SubPath)
+			GBX0.GetrMap(i) = LvGears.Items(i).SubItems(GearboxTbl.LossMapEfficiency).Text
+			GBX0.gs_files.Add(New SubPath)
+			GBX0.gsFile(i) = LvGears.Items(i).SubItems(GearboxTbl.ShiftPolygons).Text
+			'GBX0.FldFiles.Add(New cSubPath)
+			'GBX0.FldFile(i) = Me.LvGears.Items(i).SubItems(GearboxTbl.MaxTorque).Text
+			GBX0.MaxTorque.Add(LvGears.Items(i).SubItems(GearboxTbl.MaxTorque).Text)
+		Next
+
+		GBX0.TorqueResv = fTextboxToNumString(TbTqResv.Text)
+		GBX0.SkipGears = ChSkipGears.Checked
+		GBX0.ShiftTime = fTextboxToNumString(TbShiftTime.Text)
+		GBX0.TorqueResvStart = fTextboxToNumString(TbTqResvStart.Text)
+		GBX0.StartSpeed = fTextboxToNumString(TbStartSpeed.Text)
+		GBX0.StartAcc = fTextboxToNumString(TbStartAcc.Text)
+		GBX0.ShiftInside = ChShiftInside.Checked
+
+		GBX0.Type = CbGStype.SelectedValue
+
+		GBX0.TorqueConverterEnabled = ChTCon.Checked
+		GBX0.TCfile = TbTCfile.Text
+		GBX0.TorqueConverterReferenceRPM = fTextboxToNumString(TbTCrefrpm.Text)
+		GBX0.TorqueConverterInertia = fTextboxToNumString(TbTCinertia.Text)
+		GBX0.TCshiftFile = TBTCShiftPolygon.Text
+
+		GBX0.DownshiftAfterUpshift = fTextboxToNumString(tbDownshiftAfterUpshift.Text)
+		GBX0.UpshiftAfterDownshift = fTextboxToNumString(tbUpshiftAfterDownshift.Text)
+		GBX0.UpshiftMinAcceleration = fTextboxToNumString(tbUpshiftMinAcceleration.Text)
+
+		If Not GBX0.SaveFile Then
+			MsgBox("Cannot safe to " & file, MsgBoxStyle.Critical)
+			Return False
+		End If
+
+		If AutoSendTo Then
+			If VectoJobForm.Visible Then
+				If UCase(fFileRepl(VectoJobForm.TbGBX.Text, JobDir)) <> UCase(file) Then VectoJobForm.TbGBX.Text = fFileWoDir(file, JobDir)
+				VectoJobForm.UpdatePic()
+			End If
+		End If
+
+		GearboxFileBrowser.UpdateHistory(file)
+		Text = fFILE(file, True)
+		LbStatus.Text = ""
+
+		Changed = False
+
+		Return True
+	End Function
+
+#Region "Change Events"
+
+	'Change Status ändern |@@| Change Status change
+	Private Sub Change()
+		If Not Changed Then
+			LbStatus.Text = "Unsaved changes in current file"
+			Changed = True
+		End If
+	End Sub
+
+	' "Save changes ?" ...liefert True wenn User Vorgang abbricht |@@| Save changes? "... Returns True if user aborts
+	Private Function ChangeCheckCancel() As Boolean
+
+		If Changed Then
+			Select Case MsgBox("Save changes ?", MsgBoxStyle.YesNoCancel)
+				Case MsgBoxResult.Yes
+					Return Not SaveOrSaveAs(False)
+				Case MsgBoxResult.Cancel
+					Return True
+				Case Else 'MsgBoxResult.No
+					Changed = False
+					Return False
+			End Select
+
+		Else
+
+			Return False
+
+		End If
+	End Function
+
+	Private Sub TbName_TextChanged(sender As Object, e As EventArgs) Handles TbName.TextChanged
+		Change()
+	End Sub
+
+	Private Sub TBI_getr_TextChanged(sender As Object, e As EventArgs) Handles TBI_getr.TextChanged
+		Change()
+	End Sub
+
+	Private Sub TbTracInt_TextChanged(sender As Object, e As EventArgs) Handles TbTracInt.TextChanged
+		Change()
+	End Sub
+
+	Private Sub ChSkipGears_CheckedChanged(sender As Object, e As EventArgs) _
+		Handles ChSkipGears.CheckedChanged
+		CheckEnableTorqRes()
+		Change()
+	End Sub
+
+	Private Sub ChShiftInside_CheckedChanged(sender As Object, e As EventArgs) _
+		Handles ChShiftInside.CheckedChanged
+		CheckEnableTorqRes()
+		Change()
+	End Sub
+
+	Private Sub TbTqResv_TextChanged(sender As Object, e As EventArgs) Handles TbTqResv.TextChanged
+		Change()
+	End Sub
+
+	Private Sub TbShiftTime_TextChanged(sender As Object, e As EventArgs) Handles TbShiftTime.TextChanged
+		Change()
+	End Sub
+
+	Private Sub TbTqResvStart_TextChanged(sender As Object, e As EventArgs) Handles TbTqResvStart.TextChanged
+		Change()
+	End Sub
+
+	Private Sub TbStartSpeed_TextChanged(sender As Object, e As EventArgs) Handles TbStartSpeed.TextChanged
+		Change()
+	End Sub
+
+	Private Sub TbStartAcc_TextChanged(sender As Object, e As EventArgs) Handles TbStartAcc.TextChanged
+		Change()
+	End Sub
+
+	Private Sub TbTCfile_TextChanged(sender As Object, e As EventArgs) Handles TbTCfile.TextChanged
+		Change()
+	End Sub
+
+	Private Sub TbTCrefrpm_TextChanged(sender As Object, e As EventArgs) Handles TbTCrefrpm.TextChanged
+		Change()
+	End Sub
+
+	Private Sub TbTCinertia_TextChanged(sender As Object, e As EventArgs) Handles TbTCinertia.TextChanged
+		Change()
+	End Sub
+
+
+	Private Sub CheckEnableTorqRes()
+		If ChShiftInside.Checked Or ChSkipGears.Checked Then
+			PnTorqRes.Enabled = True
+		Else
+			PnTorqRes.Enabled = False
+		End If
+	End Sub
+
+
+#End Region
+
+	'Save and close
+	Private Sub ButOK_Click(sender As Object, e As EventArgs) Handles ButOK.Click
+		If SaveOrSaveAs(False) Then Close()
+	End Sub
+
+	'Cancel
+	Private Sub ButCancel_Click(sender As Object, e As EventArgs) Handles ButCancel.Click
+		Close()
+	End Sub
+
+	'Enable/Disable settings for specific transmission types
+	Private Sub CbGStype_SelectedIndexChanged(sender As Object, e As EventArgs) _
+		Handles CbGStype.SelectedIndexChanged
+		Dim GStype As GearboxType = CbGStype.SelectedItem.Value
+
+		Change()
+
+		ChShiftInside.Enabled = (GStype.EarlyShiftGears())
+		ChSkipGears.Enabled = (GStype.SkipGears())
+		ChTCon.Enabled = (GStype.AutomaticTransmission())
+	End Sub
+
+
+	Private Sub LvGears_SelectedIndexChanged(sender As Object, e As EventArgs) _
+		Handles LvGears.SelectedIndexChanged
+		UpdatePic()
+	End Sub
+
+#Region "Gears"
+
+	'Gear-DoubleClick
+	Private Sub LvGears_MouseDoubleClick(ByVal sender As Object, ByVal e As MouseEventArgs) _
+		Handles LvGears.MouseDoubleClick
+		EditGear()
+	End Sub
+
+	'Gear-KeyDown
+	Private Sub LvGears_KeyDown(sender As Object, e As KeyEventArgs) Handles LvGears.KeyDown
+		Select Case e.KeyCode
+			Case Keys.Delete, Keys.Back
+				RemoveGear(False)
+			Case Keys.Enter
+				EditGear()
+		End Select
+	End Sub
+
+	'Remove Gear Button
+	Private Sub BtClearGear_Click(sender As Object, e As EventArgs) Handles BtRemGear.Click
+		RemoveGear(False)
+	End Sub
+
+	'Add Gear button
+	Private Sub BtAddGear_Click(sender As Object, e As EventArgs) Handles BtAddGear.Click
+		AddGear()
+		LvGears.Items(LvGears.Items.Count - 1).Selected = True
+		EditGear()
+	End Sub
+
+	'Edit Gear
+	Private Sub EditGear()
+
+		Do
+
+			'GearDia.ChIsTCgear.Enabled = (Me.ChTCon.Checked And Me.LvGears.SelectedIndices(0) > 0)
+			GearDia.PnShiftPoly.Enabled = (Not Cfg.DeclMode And LvGears.SelectedIndices(0) > 0)
+			GearDia.PnFld.Enabled = (LvGears.SelectedIndices(0) > 0)
+			GearDia.GbxPath = fPATH(GbxFile)
+			GearDia.TbGear.Text = LvGears.SelectedItems(0).SubItems(GearboxTbl.GearNr).Text
+			GearDia.TbRatio.Text = LvGears.SelectedItems(0).SubItems(GearboxTbl.Ratio).Text
+			GearDia.TbMapPath.Text = LvGears.SelectedItems(0).SubItems(GearboxTbl.LossMapEfficiency).Text
+			If LvGears.SelectedIndices(0) > 0 Then
+				GearDia.TbShiftPolyFile.Text = LvGears.SelectedItems(0).SubItems(GearboxTbl.ShiftPolygons).Text
+				GearDia.TbMaxTorque.Text = LvGears.SelectedItems(0).SubItems(GearboxTbl.MaxTorque).Text
+			Else
+				GearDia.TbShiftPolyFile.Text = ""
+				GearDia.TbMaxTorque.Text = ""
+			End If
+
+			If LvGears.SelectedItems(0).Index = 0 Then
+				GearDia.BtPrevious.Enabled = False
+			Else
+				GearDia.BtPrevious.Enabled = True
+			End If
+
+			If GearDia.ShowDialog = DialogResult.OK Then
+
+				'Me.LvGears.SelectedItems(0).SubItems(GearboxTbl.TorqueConverter).Text = "-"
+
+
+				LvGears.SelectedItems(0).SubItems(GearboxTbl.Ratio).Text = GearDia.TbRatio.Text
+				LvGears.SelectedItems(0).SubItems(GearboxTbl.LossMapEfficiency).Text = GearDia.TbMapPath.Text
+				LvGears.SelectedItems(0).SubItems(GearboxTbl.ShiftPolygons).Text = GearDia.TbShiftPolyFile.Text
+				LvGears.SelectedItems(0).SubItems(GearboxTbl.MaxTorque).Text = GearDia.TbMaxTorque.Text
+
+				UpdatePic()
+				Change()
+
+			Else
+
+				If LvGears.SelectedItems(0).SubItems(GearboxTbl.Ratio).Text = "" Then RemoveGear(True)
+
+			End If
+
+			If GearDia.NextGear Then
+				If LvGears.Items.Count - 1 = LvGears.SelectedIndices(0) Then AddGear()
+
+				LvGears.Items(LvGears.SelectedIndices(0) + 1).Selected = True
+			End If
+
+			If GearDia.PreviousGear AndAlso LvGears.SelectedIndices(0) > 0 Then
+				LvGears.Items(LvGears.SelectedIndices(0) - 1).Selected = True
+			End If
+
+		Loop Until Not (GearDia.NextGear OrElse GearDia.PreviousGear)
+	End Sub
+
+	'Add Gear
+	Private Sub AddGear()
+		Dim lvi As ListViewItem
+
+		lvi = CreateListviewItem(LvGears.Items.Count.ToString("00"), "-", 1, "", "", "")
+
+		LvGears.Items.Add(lvi)
+
+		lvi.EnsureVisible()
+
+		LvGears.Focus()
+
+		'Change() => NO! Change() is already handled by EditGear
+	End Sub
+
+	'Remove Gear
+	Private Sub RemoveGear(ByVal NoChange As Boolean)
+		Dim i0 As Int16
+		Dim i As Int16
+		Dim lv0 As ListViewItem
+
+		If LvGears.Items.Count < 2 Then Exit Sub
+
+		If LvGears.SelectedItems.Count = 0 Then LvGears.Items(LvGears.Items.Count - 1).Selected = True
+
+		i0 = LvGears.SelectedItems(0).Index
+
+		If i0 = 0 Then Exit Sub 'Must not remove axle
+
+		LvGears.SelectedItems(0).Remove()
+
+		i = 0
+		For Each lv0 In LvGears.Items
+			If lv0.SubItems(GearboxTbl.GearNr).Text = "Axle" Then Continue For
+			i += 1
+			lv0.SubItems(GearboxTbl.GearNr).Text = i.ToString("00")
+		Next
+
+		If i0 < LvGears.Items.Count Then
+			LvGears.Items(i0).Selected = True
+			LvGears.Items(i0).EnsureVisible()
+		End If
+
+		LvGears.Focus()
+		UpdatePic()
+
+		If Not NoChange Then Change()
+	End Sub
+
+
+#End Region
+
+
+#Region "Open File Context Menu"
+
+	Private CmFiles As String()
+
+	Private Sub OpenFiles(ParamArray files() As String)
+
+		If files.Length = 0 Then Exit Sub
+
+		CmFiles = files
+
+		OpenWithToolStripMenuItem.Text = "Open with " & Cfg.OpenCmdName
+
+		CmOpenFile.Show(Windows.Forms.Cursor.Position)
+	End Sub
+
+	Private Sub OpenWithToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles OpenWithToolStripMenuItem.Click
+		If Not FileOpenAlt(CmFiles(0)) Then MsgBox("Failed to open file!")
+	End Sub
+
+	Private Sub ShowInFolderToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles ShowInFolderToolStripMenuItem.Click
+		If File.Exists(CmFiles(0)) Then
+			Try
+				Process.Start("explorer", "/select,""" & CmFiles(0) & "")
+			Catch ex As Exception
+				MsgBox("Failed to open file!")
+			End Try
+		Else
+			MsgBox("File not found!")
+		End If
+	End Sub
+
+#End Region
+
+
+	Private Sub UpdatePic()
+
+		Dim f As CsvFile
+		Dim path As String
+		Dim lM As List(Of Single) = Nothing
+		Dim lup As List(Of Single) = Nothing
+		Dim ldown As List(Of Single) = Nothing
+		Dim line As String()
+		Dim MyChart As Chart
+		Dim s As Series
+		Dim a As ChartArea
+		Dim img As Image
+		Dim Gear As Integer
+		Dim fldOK As Boolean
+		Dim fldpath As String
+		Dim FLD0 As EngineFullLoadCurve = Nothing
+		Dim ShiftOK As Boolean
+
+
+		PicBox.Image = Nothing
+
+		Try
+
+			'Check Files
+			If LvGears.Items.Count > 1 Then
+
+				If LvGears.SelectedItems.Count > 0 AndAlso LvGears.SelectedIndices(0) > 0 Then
+					path = fFileRepl(LvGears.SelectedItems(0).SubItems(GearboxTbl.ShiftPolygons).Text, fPATH(GbxFile))
+					'fldpath = fFileRepl(LvGears.SelectedItems(0).SubItems(GearboxTbl.MaxTorque).Text, fPATH(GbxFile))
+					Gear = LvGears.SelectedIndices(0)
+				Else
+					path = fFileRepl(LvGears.Items(1).SubItems(GearboxTbl.ShiftPolygons).Text, fPATH(GbxFile))
+					'fldpath = fFileRepl(Me.LvGears.Items(1).SubItems(GearboxTbl.MaxTorque).Text, fPATH(GbxFile))
+					Gear = 1
+				End If
+
+				f = New CsvFile
+				ShiftOK = f.OpenRead(path)
+
+				fldpath = VectoJobForm.FLDfile
+
+				fldOK = fldpath.Trim <> ""
+
+				If fldOK Then
+					FLD0 = New EngineFullLoadCurve
+					FLD0.FilePath = fldpath
+					fldOK = FLD0.ReadFile(True, False)
+				End If
+
+			Else
+
+				Exit Sub
+
+			End If
+
+		Catch ex As Exception
+			Exit Sub
+
+		End Try
+
+		'Read ShiftPolygon
+		If ShiftOK Then
+
+			'Header
+			f.ReadLine()
+
+			Try
+				lM = New List(Of Single)
+				lup = New List(Of Single)
+				ldown = New List(Of Single)
+
+				Do While Not f.EndOfFile
+					line = f.ReadLine
+					lM.Add(CSng(line(0)))
+					lup.Add(CSng(line(1)))
+					ldown.Add(CSng(line(2)))
+				Loop
+
+				f.Close()
+
+			Catch ex As Exception
+				f.Close()
+				Exit Sub
+			End Try
+
+			If lM.Count < 2 Then ShiftOK = False
+
+		End If
+
+
+		'Create plot
+		If Not ShiftOK And Not fldOK Then Exit Sub
+
+		MyChart = New Chart
+		MyChart.Width = PicBox.Width
+		MyChart.Height = PicBox.Height
+
+		a = New ChartArea
+
+		'Shiftpolygons from file
+		If ShiftOK Then
+			s = New Series
+			s.Points.DataBindXY(lup, lM)
+			s.ChartType = SeriesChartType.FastLine
+			s.BorderWidth = 2
+			s.Color = Color.DarkRed
+			s.Name = "Upshift curve"
+			MyChart.Series.Add(s)
+
+			s = New Series
+			s.Points.DataBindXY(ldown, lM)
+			s.ChartType = SeriesChartType.FastLine
+			s.BorderWidth = 2
+			s.Color = Color.DarkRed
+			s.Name = "Downshift curve"
+			MyChart.Series.Add(s)
+		End If
+
+		Dim vectoJob As VectoJob = New VectoJob() With {.FilePath = VectoJobForm.VECTOfile}
+		Dim vectoOk As Boolean = vectoJob.ReadFile()
+		Dim vehicle As Vehicle = New Vehicle() With {.FilePath = vectoJob.PathVeh(False)}
+		Dim vehicleOk As Boolean = vehicle.ReadFile(False)
+
+		'Fld
+		If fldOK AndAlso vectoOk AndAlso vehicleOk Then
+
+			s = New Series
+			s.Points.DataBindXY(FLD0.LnU, FLD0.LTq)
+			s.ChartType = SeriesChartType.FastLine
+			s.BorderWidth = 2
+			s.Color = Color.DarkBlue
+			s.Name = "Full load"
+			MyChart.Series.Add(s)
+
+			If VectoJobForm.Visible AndAlso VectoJobForm.n_idle > 0 Then
+				If FLD0.Init(VectoJobForm.n_idle) Then
+
+					'Dim fullLoadCurve As FullLoadCurve = ConvertToFullLoadCurve(FLD0.LnU, FLD0.LTq)
+					Dim gears As IList(Of ITransmissionInputData) = ConvertToGears(LvGears.Items)
+					If (CType(CbGStype.SelectedValue, GearboxType).ManualTransmission() AndAlso gears.Count > 1) Then
+						Dim engine As CombustionEngineData = ConvertToEngineData(FLD0, VectoJobForm.n_idle)
+						Dim shiftLines As ShiftPolygon = DeclarationData.Gearbox.ComputeShiftPolygon(Gear - 1, engine.FullLoadCurve, gears,
+																									engine,
+																									Double.Parse(LvGears.Items(0).SubItems(GearboxTbl.Ratio).Text, CultureInfo.InvariantCulture),
+																									(vehicle.rdyn / 1000.0).SI(Of Meter))
+
+						s = New Series
+
+						's.Points.DataBindXY(Shiftpoly.gs_nUup, Shiftpoly.gs_TqUp)
+						s.Points.DataBindXY(
+							shiftLines.Upshift.Select(Function(pt) pt.AngularSpeed.Value() / Constants.RPMToRad).ToList(),
+							shiftLines.Upshift.Select(Function(pt) pt.Torque.Value()).ToList())
+						s.ChartType = SeriesChartType.FastLine
+						s.BorderWidth = 2
+						s.Color = Color.DarkRed
+						s.BorderDashStyle = ChartDashStyle.Dash
+						s.Name = "Upshift curve (generic)"
+						MyChart.Series.Add(s)
+
+						s = New Series
+						's.Points.DataBindXY(Shiftpoly.gs_nUdown, Shiftpoly.gs_TqDown)
+						s.Points.DataBindXY(
+							shiftLines.Downshift.Select(Function(pt) pt.AngularSpeed.Value() / Constants.RPMToRad).ToList(),
+							shiftLines.Downshift.Select(Function(pt) pt.Torque.Value()).ToList())
+						s.ChartType = SeriesChartType.FastLine
+						s.BorderWidth = 2
+						s.Color = Color.DarkRed
+						s.BorderDashStyle = ChartDashStyle.Dash
+						s.Name = "Downshift curve (generic)"
+						MyChart.Series.Add(s)
+					End If
+				End If
+			End If
+
+		End If
+
+
+		a.Name = "main"
+
+		a.AxisX.Title = "engine speed [1/min]"
+		a.AxisX.TitleFont = New Font("Helvetica", 10)
+		a.AxisX.LabelStyle.Font = New Font("Helvetica", 8)
+		a.AxisX.LabelAutoFitStyle = LabelAutoFitStyles.None
+		a.AxisX.MajorGrid.LineDashStyle = ChartDashStyle.Dot
+
+		a.AxisY.Title = "engine torque [Nm]"
+		a.AxisY.TitleFont = New Font("Helvetica", 10)
+		a.AxisY.LabelStyle.Font = New Font("Helvetica", 8)
+		a.AxisY.LabelAutoFitStyle = LabelAutoFitStyles.None
+		a.AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dot
+
+		a.AxisX.Minimum = 300
+		a.BorderDashStyle = ChartDashStyle.Solid
+		a.BorderWidth = 1
+
+		a.BackColor = Color.GhostWhite
+
+		MyChart.ChartAreas.Add(a)
+
+		MyChart.Titles.Add("Gear " & Gear & " shift polygons")
+		MyChart.Titles(0).Font = New Font("Helvetica", 12)
+
+		MyChart.Update()
+
+		img = New Bitmap(MyChart.Width, MyChart.Height, PixelFormat.Format32bppArgb)
+		MyChart.DrawToBitmap(img, New Rectangle(0, 0, PicBox.Width, PicBox.Height))
+
+		PicBox.Image = img
+	End Sub
+
+
+	Private Function ConvertToGears(gbx As ListView.ListViewItemCollection) As IList(Of ITransmissionInputData)
+		Dim retVal As List(Of ITransmissionInputData) = New List(Of ITransmissionInputData)
+		Dim value As Double
+
+		For i As Integer = 1 To gbx.Count - 1
+			If _
+				gbx(i).SubItems(GearboxTbl.Ratio).Text <> "" AndAlso Double.TryParse(gbx(i).SubItems(GearboxTbl.Ratio).Text, value) _
+				Then
+				retVal.Add(
+					New TransmissionInputData() _
+							With {.Ratio = Double.Parse(value, CultureInfo.InvariantCulture)})
+
+			End If
+		Next
+		Return retVal
+	End Function
+
+
+#Region "Torque Converter"
+
+	'TC on/off
+	Private Sub ChTCon_CheckedChanged(sender As Object, e As EventArgs) Handles ChTCon.CheckedChanged
+		Change()
+		CheckGearTC()
+		PnTC.Enabled = ChTCon.Checked
+		LblTCShiftFile.Enabled = ChTCon.Checked
+		TBTCShiftPolygon.Enabled = ChTCon.Checked
+	End Sub
+
+	'Browse TC file
+	Private Sub BtTCfileBrowse_Click(sender As Object, e As EventArgs) Handles BtTCfileBrowse.Click
+		If TorqueConverterFileBrowser.OpenDialog(fFileRepl(TbTCfile.Text, fPATH(GbxFile))) Then
+			TbTCfile.Text = fFileWoDir(TorqueConverterFileBrowser.Files(0), fPATH(GbxFile))
+		End If
+	End Sub
+
+	'Open TC file
+	Private Sub BtTCfileOpen_Click(sender As Object, e As EventArgs) Handles BtTCfileOpen.Click
+		OpenFiles(fFileRepl(TbTCfile.Text, fPATH(GbxFile)))
+	End Sub
+
+	Private Sub CheckGearTC()
+		Dim lv0 As ListViewItem
+
+		If Not Init Then Exit Sub
+
+		For Each lv0 In LvGears.Items
+
+			If lv0.SubItems(GearboxTbl.GearNr).Text = "Axle" Then Continue For
+
+			'lv0.SubItems(GearboxTbl.TorqueConverter).Text = "-"
+		Next
+	End Sub
+
+
+#End Region
+
+	Private Sub GroupBox1_Enter(sender As Object, e As EventArgs) Handles GroupBox1.Enter
+	End Sub
+
+	Public Sub New()
+
+		' Dieser Aufruf ist für den Designer erforderlich.
+		InitializeComponent()
+
+		' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
+	End Sub
+
+	Private Sub BtTCShiftFileBrowse_Click(sender As Object, e As EventArgs) Handles BtTCShiftFileBrowse.Click
+		If fbTCCShift.OpenDialog(fFileRepl(TBTCShiftPolygon.Text, fPATH(GbxFile))) Then
+			TBTCShiftPolygon.Text = fFileWoDir(fbTCCShift.Files(0), fPATH(GbxFile))
+		End If
+	End Sub
+End Class
diff --git a/VECTO/GUI/GearboxGearDialog.vb b/VECTO/GUI/GearboxGearDialog.vb
index 50d2b97c31..2052373ebb 100644
--- a/VECTO/GUI/GearboxGearDialog.vb
+++ b/VECTO/GUI/GearboxGearDialog.vb
@@ -76,15 +76,15 @@ Public Class GearboxGearDialog
 
 	'Browse for transmission loss map
 	Private Sub BtBrowse_Click(sender As Object, e As EventArgs) Handles BtBrowse.Click
-		If fbTLM.OpenDialog(fFileRepl(TbMapPath.Text, GbxPath)) Then
-			TbMapPath.Text = fFileWoDir(fbTLM.Files(0), GbxPath)
+		If TransmissionLossMapFileBrowser.OpenDialog(fFileRepl(TbMapPath.Text, GbxPath)) Then
+			TbMapPath.Text = fFileWoDir(TransmissionLossMapFileBrowser.Files(0), GbxPath)
 		End If
 	End Sub
 
 	'Browse for shift polygons file
 	Private Sub BtShiftPolyBrowse_Click(sender As Object, e As EventArgs) Handles BtShiftPolyBrowse.Click
-		If fbGBS.OpenDialog(fFileRepl(TbShiftPolyFile.Text, GbxPath)) Then
-			TbShiftPolyFile.Text = fFileWoDir(fbGBS.Files(0), GbxPath)
+		If GearboxShiftPolygonFileBrowser.OpenDialog(fFileRepl(TbShiftPolyFile.Text, GbxPath)) Then
+			TbShiftPolyFile.Text = fFileWoDir(GearboxShiftPolygonFileBrowser.Files(0), GbxPath)
 		End If
 	End Sub
 
diff --git a/VECTO/GUI/F_Graph_ChEdit.Designer.vb b/VECTO/GUI/GraphEditChannelDialog.Designer.vb
similarity index 98%
rename from VECTO/GUI/F_Graph_ChEdit.Designer.vb
rename to VECTO/GUI/GraphEditChannelDialog.Designer.vb
index 051a181016..cb71b3a869 100644
--- a/VECTO/GUI/F_Graph_ChEdit.Designer.vb
+++ b/VECTO/GUI/GraphEditChannelDialog.Designer.vb
@@ -3,7 +3,7 @@ Imports Microsoft.VisualBasic.CompilerServices
 
 
 <DesignerGenerated()> _
-Partial Class F_Graph_ChEdit
+Partial Class GraphEditChannelDialog
 	Inherits Form
 
 	'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
@@ -126,7 +126,7 @@ Partial Class F_Graph_ChEdit
 		Me.FormBorderStyle = FormBorderStyle.FixedDialog
 		Me.MaximizeBox = False
 		Me.MinimizeBox = False
-		Me.Name = "F_Graph_ChEdit"
+		Me.Name = "GraphEditChannelDialog"
 		Me.ShowInTaskbar = False
 		Me.StartPosition = FormStartPosition.CenterParent
 		Me.Text = "Edit Channel"
diff --git a/VECTO/GUI/F_Graph_ChEdit.resx b/VECTO/GUI/GraphEditChannelDialog.resx
similarity index 100%
rename from VECTO/GUI/F_Graph_ChEdit.resx
rename to VECTO/GUI/GraphEditChannelDialog.resx
diff --git a/VECTO/GUI/F_Graph_ChEdit.vb b/VECTO/GUI/GraphEditChannelDialog.vb
similarity index 95%
rename from VECTO/GUI/F_Graph_ChEdit.vb
rename to VECTO/GUI/GraphEditChannelDialog.vb
index b01f7207d3..f8dc25a867 100644
--- a/VECTO/GUI/F_Graph_ChEdit.vb
+++ b/VECTO/GUI/GraphEditChannelDialog.vb
@@ -10,7 +10,7 @@
 ' See the LICENSE.txt for the specific language governing permissions and limitations.
 
 
-Public Class F_Graph_ChEdit
+Public Class GraphEditChannelDialog
 	Private Sub OK_Button_Click(ByVal sender As Object, ByVal e As EventArgs) Handles OK_Button.Click
 		DialogResult = DialogResult.OK
 		Close()
diff --git a/VECTO/GUI/F_Graph.Designer.vb b/VECTO/GUI/GraphForm.Designer.vb
similarity index 99%
rename from VECTO/GUI/F_Graph.Designer.vb
rename to VECTO/GUI/GraphForm.Designer.vb
index d9b26b9e35..4df01c9598 100644
--- a/VECTO/GUI/F_Graph.Designer.vb
+++ b/VECTO/GUI/GraphForm.Designer.vb
@@ -2,7 +2,7 @@
 Imports Microsoft.VisualBasic.CompilerServices
 
 <DesignerGenerated()> _
-Partial Class F_Graph
+Partial Class GraphForm
 	Inherits Form
 
 	'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
@@ -25,7 +25,7 @@ Partial Class F_Graph
 	'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
 	<DebuggerStepThrough()> _
 	Private Sub InitializeComponent()
-		Dim resources As ComponentResourceManager = New ComponentResourceManager(GetType(F_Graph))
+		Dim resources As ComponentResourceManager = New ComponentResourceManager(GetType(GraphForm))
 		Me.PictureBox1 = New PictureBox()
 		Me.GroupBox1 = New GroupBox()
 		Me.BtRemCh = New Button()
@@ -310,7 +310,7 @@ Partial Class F_Graph
 		Me.Controls.Add(Me.PictureBox1)
 		Me.Icon = CType(resources.GetObject("$this.Icon"), Icon)
 		Me.MinimumSize = New Size(1000, 300)
-		Me.Name = "F_Graph"
+		Me.Name = "GraphForm"
 		Me.SizeGripStyle = SizeGripStyle.Show
 		Me.Text = "Graph"
 		CType(Me.PictureBox1, ISupportInitialize).EndInit()
diff --git a/VECTO/GUI/F_Graph.resx b/VECTO/GUI/GraphForm.resx
similarity index 100%
rename from VECTO/GUI/F_Graph.resx
rename to VECTO/GUI/GraphForm.resx
diff --git a/VECTO/GUI/F_Graph.vb b/VECTO/GUI/GraphForm.vb
similarity index 55%
rename from VECTO/GUI/F_Graph.vb
rename to VECTO/GUI/GraphForm.vb
index 18500f7667..879f987971 100644
--- a/VECTO/GUI/F_Graph.vb
+++ b/VECTO/GUI/GraphForm.vb
@@ -1,593 +1,584 @@
-' Copyright 2014 European Union.
-' Licensed under the EUPL (the 'Licence');
-'
-' * You may not use this work except in compliance with the Licence.
-' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
-' * Unless required by applicable law or agreed to in writing,
-'   software distributed under the Licence is distributed on an "AS IS" basis,
-'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-'
-' See the LICENSE.txt for the specific language governing permissions and limitations.
-
-Imports System.Collections.Generic
-Imports System.Drawing.Imaging
-Imports System.IO
-Imports System.Linq
-Imports System.Text.RegularExpressions
-Imports System.Windows.Forms.DataVisualization.Charting
-
-Public Class F_Graph
-	Private Filepath As String
-	Private Channels As List(Of cChannel)
-	Private DistList As List(Of Single)
-	Private TimeList As List(Of Single)
-
-	Private xMin As Single
-	Private xMax As Single
-
-	Private xMax0 As Single
-
-
-	Public Sub New()
-
-		' Dieser Aufruf ist für den Designer erforderlich.
-		InitializeComponent()
-
-		' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
-		Channels = New List(Of cChannel)
-
-		Clear()
-
-		CbXaxis.SelectedIndex = 0
-	End Sub
-
-	Private Sub ToolStripBtOpen_Click(sender As Object, e As EventArgs) Handles ToolStripBtOpen.Click
-
-		If fbVMOD.OpenDialog(Filepath) Then
-
-			LoadNewFile(fbVMOD.Files(0))
-
-		End If
-	End Sub
-
-
-	Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click
-		LoadFile()
-	End Sub
-
-	Public Sub LoadNewFile(ByVal Path As String)
-		Dim lv0 As ListViewItem
-		Dim i As Integer = 0
-
-		Clear()
-
-		Filepath = Path
-
-		LoadFile()
-
-		For Each channel As cChannel In Channels
-			If (channel.Name = "v_act [km/h]" OrElse channel.Name = "v_targ [km/h]") Then
-				lv0 = New ListViewItem
-				lv0.Text = channel.Name
-				lv0.SubItems.Add("Left")
-				lv0.Tag = i
-				lv0.Checked = True
-				ListView1.Items.Add(lv0)
-			End If
-			i += 1
-		Next
-	End Sub
-
-	Private Sub LoadFile()
-		Dim file As cFile_V3
-		Dim i As Integer
-		Dim sDim As Integer
-		Dim line As String()
-		Dim c0 As cChannel
-		Dim l0 As List(Of String)
-
-
-		file = New cFile_V3
-
-		If file.OpenRead(Filepath) Then
-
-			Try
-
-				Channels.Clear()
-
-				'Header
-				line = file.ReadLine
-
-				sDim = UBound(line)
-
-				For i = 0 To sDim
-					c0 = New cChannel
-					c0.Name = line(i)
-					c0.Values = New List(Of String)
-					Channels.Add(c0)
-				Next
-
-				'Values
-				Do While Not file.EndOfFile
-					line = file.ReadLine
-					For i = 0 To sDim
-						Channels(i).Values.Add(line(i))
-					Next
-				Loop
-
-				file.Close()
-
-				l0 = Channels(0).Values
-				TimeList = Nothing
-				DistList = Nothing
-
-				For Each channel As cChannel In Channels
-					If (channel.Name = "time [s]" AndAlso TimeList Is Nothing) Then
-						TimeList = channel.Values.Select(Function(x) CSng(x)).ToList()
-					End If
-					If (channel.Name = "dist [m]" AndAlso DistList Is Nothing) Then
-						DistList = channel.Values.Select(Function(x) CSng(x)).ToList()
-					End If
-				Next
-
-				SetxMax0()
-
-				TbXmin.Text = 0
-				TbXmax.Text = xMax0
-
-				Text = fFILE(Filepath, True)
-
-			Catch ex As Exception
-				file.Close()
-				Exit Sub
-			End Try
-
-		End If
-
-		UpdateGraph()
-	End Sub
-
-	Private Sub SetxMax0()
-
-		If Channels.Count = 0 Then Exit Sub
-
-		If CbXaxis.SelectedIndex = 0 Then
-			xMax0 = DistList(DistList.Count - 1)
-		Else
-			xMax0 = TimeList(TimeList.Count - 1)
-		End If
-	End Sub
-
-	Private Sub UpdateGraph()
-		Dim lv0 As ListViewItem
-		Dim MyChart As Chart
-		Dim s As Series
-		Dim a As ChartArea
-		Dim OverDist As Boolean
-		Dim leftaxis As New List(Of String)
-		Dim rightaxis As New List(Of String)
-		Dim IsLeft As Boolean
-		Dim txt As String
-		Dim i As Integer
-		Dim img As Image
-
-		If WindowState = FormWindowState.Minimized Then Exit Sub
-
-		If ListView1.CheckedItems.Count = 0 Then
-			PictureBox1.Image = Nothing
-			Exit Sub
-		End If
-
-		OverDist = (CbXaxis.SelectedIndex = 0)
-
-		SetxMax0()
-
-
-		MyChart = New Chart
-		MyChart.Width = PictureBox1.Width
-		MyChart.Height = PictureBox1.Height
-
-		a = New ChartArea
-
-
-		For Each lv0 In ListView1.CheckedItems
-
-			IsLeft = (lv0.SubItems(1).Text = "Left")
-
-			s = New Series
-
-			If OverDist Then
-				s.Points.DataBindXY(DistList, Channels(lv0.Tag).Values)
-			Else
-				s.Points.DataBindXY(TimeList, Channels(lv0.Tag).Values)
-			End If
-
-			s.ChartType = SeriesChartType.FastLine
-			s.Name = lv0.Text
-			s.BorderWidth = 2
-
-			If IsLeft Then
-				If Not leftaxis.Contains(lv0.SubItems(0).Text) Then leftaxis.Add(lv0.SubItems(0).Text)
-			Else
-				If Not rightaxis.Contains(lv0.SubItems(0).Text) Then rightaxis.Add(lv0.SubItems(0).Text)
-				s.YAxisType = AxisType.Secondary
-			End If
-
-			MyChart.Series.Add(s)
-
-		Next
-
-
-		a.Name = "main"
-
-		If OverDist Then
-			a.AxisX.Title = "distance [km]"
-		Else
-			a.AxisX.Title = "time [s]"
-		End If
-		a.AxisX.TitleFont = New Font("Helvetica", 10)
-		a.AxisX.LabelStyle.Font = New Font("Helvetica", 8)
-		a.AxisX.LabelAutoFitStyle = LabelAutoFitStyles.None
-		a.AxisX.MajorGrid.LineDashStyle = ChartDashStyle.Dot
-
-		If xMax > xMin Then
-			a.AxisX.Minimum = xMin
-			a.AxisX.Maximum = xMax
-			a.AxisX.Interval = xAutoInt()
-		Else
-			a.AxisX.Minimum = 0
-			a.AxisX.Maximum = xMax0
-		End If
-
-
-		If leftaxis.Count > 0 Then
-
-			txt = leftaxis(0)
-			For i = 1 To leftaxis.Count - 1
-				txt &= ", " & leftaxis(i)
-			Next
-
-			a.AxisY.Title = txt
-			a.AxisY.TitleFont = New Font("Helvetica", 10)
-			a.AxisY.LabelStyle.Font = New Font("Helvetica", 8)
-			a.AxisY.LabelAutoFitStyle = LabelAutoFitStyles.None
-
-		End If
-
-		If rightaxis.Count > 0 Then
-
-			txt = rightaxis(0)
-			For i = 1 To rightaxis.Count - 1
-				txt &= ", " & rightaxis(i)
-			Next
-
-			a.AxisY2.Title = txt
-			a.AxisY2.TitleFont = New Font("Helvetica", 10)
-			a.AxisY2.LabelStyle.Font = New Font("Helvetica", 8)
-			a.AxisY2.LabelAutoFitStyle = LabelAutoFitStyles.None
-			a.AxisY2.MinorGrid.Enabled = False
-			a.AxisY2.MajorGrid.Enabled = False
-
-		End If
-
-		a.BackColor = Color.GhostWhite
-
-		a.BorderDashStyle = ChartDashStyle.Solid
-		a.BorderWidth = 1
-
-		MyChart.ChartAreas.Add(a)
-
-		With MyChart.ChartAreas(0)
-			.Position.X = 0
-			.Position.Y = 0
-			.Position.Width = 85
-			.Position.Height = 100
-		End With
-
-		MyChart.Legends.Add("main")
-		MyChart.Legends(0).Font = New Font("Helvetica", 8)
-		MyChart.Legends(0).BorderColor = Color.Black
-		MyChart.Legends(0).BorderWidth = 1
-		MyChart.Legends(0).Position.X = 86
-		MyChart.Legends(0).Position.Y = 3
-		MyChart.Legends(0).Position.Width = 13
-		MyChart.Legends(0).Position.Height = 40
-
-		MyChart.Update()
-
-		img = New Bitmap(MyChart.Width, MyChart.Height, PixelFormat.Format32bppArgb)
-		MyChart.DrawToBitmap(img, New Rectangle(0, 0, PictureBox1.Width, PictureBox1.Height))
-
-		PictureBox1.Image = img
-	End Sub
-
-	Private Function xAutoInt() As Single
-		Dim Interv0 As Single
-		Dim Grx As Long
-		Dim xyd(3) As Single
-		Dim xydmin As Single
-		Dim xyamin As Single
-		Dim xya(3) As Single
-		Dim i As Int16
-
-		Interv0 = (xMax - xMin) / 10
-
-		Grx = 20
-		Do While 10 ^ Grx > Interv0
-			Grx = Grx - 1
-		Loop
-
-		xyd(0) = 1 * 10 ^ Grx
-		xyd(1) = 2.5 * 10 ^ Grx
-		xyd(2) = 5 * 10 ^ Grx
-		xyd(3) = 10 * 10 ^ Grx
-		For i = 0 To 3
-			xya(i) = Math.Abs(Interv0 - xyd(i))
-		Next
-
-		xyamin = xya(0)
-		xydmin = xyd(0)
-		For i = 1 To 3
-			If xya(i) < xyamin Then
-				xyamin = xya(i)
-				xydmin = xyd(i)
-			End If
-		Next
-
-		'Intervall speichern
-		Return xydmin
-	End Function
-
-	Private Sub Clear()
-
-		Filepath = ""
-
-		ListView1.Items.Clear()
-
-		TbXmin.Text = ""
-		TbXmax.Text = ""
-
-		PictureBox1.Image = Nothing
-	End Sub
-
-	Private Class cChannel
-		Public Name As String
-		Public Values As List(Of String)
-	End Class
-
-	Private Sub BtAddCh_Click(sender As Object, e As EventArgs) Handles BtAddCh.Click
-		Dim dlog As New F_Graph_ChEdit
-		Dim i As Integer
-		Dim lv0 As ListViewItem
-
-		If Channels.Count = 0 Then Exit Sub
-
-		For i = 0 To Channels.Count - 1
-			dlog.ComboBox1.Items.Add(Channels(i).Name)
-		Next
-
-		dlog.RbLeft.Checked = True
-
-		dlog.ComboBox1.SelectedIndex = 0
-
-		If dlog.ShowDialog = DialogResult.OK Then
-			lv0 = New ListViewItem
-			i = dlog.ComboBox1.SelectedIndex
-			lv0.Text = Channels(i).Name
-			lv0.Tag = i
-			lv0.Checked = True
-			If dlog.RbLeft.Checked Then
-				lv0.SubItems.Add("Left")
-			Else
-				lv0.SubItems.Add("Right")
-			End If
-
-			ListView1.Items.Add(lv0)
-
-			UpdateGraph()
-
-		End If
-	End Sub
-
-	Private Sub EditChannel()
-		Dim dlog As New F_Graph_ChEdit
-		Dim i As Integer
-		Dim lv0 As ListViewItem
-
-		If ListView1.SelectedItems.Count = 0 Or Channels.Count = 0 Then Exit Sub
-
-		lv0 = ListView1.SelectedItems(0)
-
-		For i = 0 To Channels.Count - 1
-			dlog.ComboBox1.Items.Add(Channels(i).Name)
-		Next
-
-		If lv0.SubItems(1).Text = "Left" Then
-			dlog.RbLeft.Checked = True
-		Else
-			dlog.RbRight.Checked = True
-		End If
-
-		dlog.ComboBox1.SelectedIndex = lv0.Tag
-
-		If dlog.ShowDialog = DialogResult.OK Then
-			i = dlog.ComboBox1.SelectedIndex
-			lv0.Text = Channels(i).Name
-			lv0.Tag = i
-			lv0.Checked = True
-			If dlog.RbLeft.Checked Then
-				lv0.SubItems(1).Text = "Left"
-			Else
-				lv0.SubItems(1).Text = "Right"
-			End If
-
-			UpdateGraph()
-
-		End If
-	End Sub
-
-	Private Sub RemoveChannel()
-		Dim i0 As Int16
-
-		If ListView1.Items.Count = 0 Then Exit Sub
-
-		If ListView1.SelectedItems.Count = 0 Then ListView1.Items(ListView1.Items.Count - 1).Selected = True
-
-		i0 = ListView1.SelectedItems(0).Index
-
-		ListView1.SelectedItems(0).Remove()
-
-		If i0 < ListView1.Items.Count Then
-			ListView1.Items(i0).Selected = True
-			ListView1.Items(i0).EnsureVisible()
-		End If
-
-		UpdateGraph()
-	End Sub
-
-	Private Sub ListView1_DoubleClick(sender As Object, e As EventArgs) Handles ListView1.DoubleClick
-		If ListView1.SelectedItems.Count > 0 Then
-			ListView1.SelectedItems(0).Checked = Not ListView1.SelectedItems(0).Checked
-			EditChannel()
-		End If
-	End Sub
-
-	Private Sub BtRemCh_Click(sender As Object, e As EventArgs) Handles BtRemCh.Click
-		RemoveChannel()
-	End Sub
-
-	Private Sub ListView1_ItemChecked(sender As Object, e As ItemCheckedEventArgs) _
-		Handles ListView1.ItemChecked
-		UpdateGraph()
-	End Sub
-
-	Private Sub ListView1_KeyDown(sender As Object, e As KeyEventArgs) Handles ListView1.KeyDown
-		Select Case e.KeyCode
-			Case Keys.Delete, Keys.Back
-				RemoveChannel()
-			Case Keys.Enter
-				EditChannel()
-		End Select
-	End Sub
-
-	Private Sub CbXaxis_SelectedIndexChanged(sender As Object, e As EventArgs) _
-		Handles CbXaxis.SelectedIndexChanged
-		SetxMax0()
-		TbXmin.Text = 0
-		TbXmax.Text = xMax0
-		UpdateGraph()
-	End Sub
-
-	Private Sub BtReset_Click(sender As Object, e As EventArgs) Handles BtReset.Click
-		xMin = 0
-		xMax = xMax0
-		TbXmin.Text = 0
-		TbXmax.Text = xMax0
-	End Sub
-
-	Private Sub TbXmin_TextChanged(sender As Object, e As EventArgs) Handles TbXmin.TextChanged
-		If IsNumeric(TbXmin.Text) Then xMin = TbXmin.Text
-		UpdateGraph()
-	End Sub
-
-	Private Sub TbXmax_TextChanged(sender As Object, e As EventArgs) Handles TbXmax.TextChanged
-		If IsNumeric(TbXmax.Text) Then xMax = TbXmax.Text
-		UpdateGraph()
-	End Sub
-
-	Private Sub ToolStripButton3_Click(sender As Object, e As EventArgs) Handles ToolStripButton3.Click
-		Dim FGraph As New F_Graph
-		FGraph.Show()
-	End Sub
-
-	Private Sub F_Graph_SizeChanged(sender As Object, e As EventArgs) Handles Me.SizeChanged
-		UpdateGraph()
-	End Sub
-
-	Private Sub BtZoomIn_Click(sender As Object, e As EventArgs) Handles BtZoomIn.Click
-		Dim d As Single
-
-		d = (xMax - xMin) / 10
-
-		xMin += 2 * 0.5 * d
-		xMax -= 2 * (1 - 0.5) * d
-
-		If xMin > 1000 Then
-			xMin = Math.Round(xMin / 100, 0) * 100
-		Else
-			xMin = Math.Round(xMin, 0)
-		End If
-
-		TbXmin.Text = xMin
-		TbXmax.Text = xMax
-	End Sub
-
-	Private Sub BtZoomOut_Click(sender As Object, e As EventArgs) Handles BtZoomOut.Click
-		Dim d As Single
-
-		d = (xMax - xMin) / 10
-
-		xMin -= 2 * 0.5 * d
-		xMax += 2 * (1 - 0.5) * d
-
-		If xMin > 1000 Then
-			xMin = Math.Round(xMin / 100, 0) * 100
-		Else
-			xMin = Math.Round(xMin, 0)
-		End If
-
-		TbXmin.Text = xMin
-		TbXmax.Text = xMax
-	End Sub
-
-	Private Sub BtMoveL_Click(sender As Object, e As EventArgs) Handles BtMoveL.Click
-		Dim d As Single
-
-		If xMin <= 0 Then Exit Sub
-
-		d = (xMax - xMin) / 3
-		xMin -= d
-		xMax -= d
-
-		If xMin > 1000 Then
-			xMin = Math.Round(xMin / 100, 0) * 100
-		Else
-			xMin = Math.Round(xMin, 0)
-		End If
-
-		TbXmin.Text = xMin
-		TbXmax.Text = xMax
-	End Sub
-
-	Private Sub BtMoveR_Click(sender As Object, e As EventArgs) Handles BtMoveR.Click
-		Dim d As Single
-
-		If xMax >= xMax0 Then Exit Sub
-
-		d = (xMax - xMin) / 3
-		xMin += d
-		xMax += d
-
-		If xMin > 1000 Then
-			xMin = Math.Round(xMin / 100, 0) * 100
-		Else
-			xMin = Math.Round(xMin, 0)
-		End If
-
-		TbXmin.Text = xMin
-		TbXmax.Text = xMax
-	End Sub
-
-	Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
-		If File.Exists(MyAppPath & "User Manual\help.html") Then
-			Dim BrowserRegistryString As String =
-					My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString
-			Dim DefaultBrowserPath As String =
-					Regex.Match(BrowserRegistryString, "(\"".*?\"")").Captures(0).ToString
-			Process.Start(DefaultBrowserPath,
-						String.Format("""{0}{1}""", MyAppPath, "User Manual\help.html#graph-window"))
-		Else
-			MsgBox("User Manual not found!", MsgBoxStyle.Critical)
-		End If
-	End Sub
+' Copyright 2014 European Union.
+' Licensed under the EUPL (the 'Licence');
+'
+' * You may not use this work except in compliance with the Licence.
+' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
+' * Unless required by applicable law or agreed to in writing,
+'   software distributed under the Licence is distributed on an "AS IS" basis,
+'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+'
+' See the LICENSE.txt for the specific language governing permissions and limitations.
+
+Imports System.Collections.Generic
+Imports System.Drawing.Imaging
+Imports System.IO
+Imports System.Linq
+Imports System.Text.RegularExpressions
+Imports System.Windows.Forms.DataVisualization.Charting
+
+Public Class GraphForm
+	Private _filepath As String
+	Private ReadOnly _channels As List(Of Channel)
+	Private _distanceList As List(Of Single)
+	Private _timeList As List(Of Single)
+
+	Private _xMin As Single
+	Private _xMax As Single
+
+	Private _xMax0 As Single
+
+
+	Public Sub New()
+
+		' Dieser Aufruf ist für den Designer erforderlich.
+		InitializeComponent()
+
+		' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
+		_channels = New List(Of Channel)
+
+		Clear()
+
+		CbXaxis.SelectedIndex = 0
+	End Sub
+
+	Private Sub ToolStripBtOpen_Click(sender As Object, e As EventArgs) Handles ToolStripBtOpen.Click
+
+		If ModalResultsFileBrowser.OpenDialog(_filepath) Then
+
+			LoadNewFile(ModalResultsFileBrowser.Files(0))
+
+		End If
+	End Sub
+
+
+	Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click
+		LoadFile()
+	End Sub
+
+	Public Sub LoadNewFile(ByVal path As String)
+		Dim lv0 As ListViewItem
+		Dim i As Integer = 0
+
+		Clear()
+
+		_filepath = path
+
+		LoadFile()
+
+		For Each channel As Channel In _channels
+			If (channel.Name = "v_act [km/h]" OrElse channel.Name = "v_targ [km/h]") Then
+				lv0 = New ListViewItem
+				lv0.Text = channel.Name
+				lv0.SubItems.Add("Left")
+				lv0.Tag = i
+				lv0.Checked = True
+				ListView1.Items.Add(lv0)
+			End If
+			i += 1
+		Next
+	End Sub
+
+	Private Sub LoadFile()
+		Dim file As CsvFile
+		Dim i As Integer
+		Dim sDim As Integer
+		Dim line As String()
+		Dim c0 As Channel
+		Dim l0 As List(Of String)
+
+
+		file = New CsvFile
+
+		If file.OpenRead(_filepath) Then
+
+			Try
+
+				_channels.Clear()
+
+				'Header
+				line = file.ReadLine
+
+				sDim = UBound(line)
+
+				For i = 0 To sDim
+					c0 = New Channel
+					c0.Name = line(i)
+					c0.Values = New List(Of String)
+					_channels.Add(c0)
+				Next
+
+				'Values
+				Do While Not file.EndOfFile
+					line = file.ReadLine
+					For i = 0 To sDim
+						_channels(i).Values.Add(line(i))
+					Next
+				Loop
+
+				file.Close()
+
+				l0 = _channels(0).Values
+				_timeList = Nothing
+				_distanceList = Nothing
+
+				For Each channel As Channel In _channels
+					If (channel.Name = "time [s]" AndAlso _timeList Is Nothing) Then
+						_timeList = channel.Values.Select(Function(x) CSng(x)).ToList()
+					End If
+					If (channel.Name = "dist [m]" AndAlso _distanceList Is Nothing) Then
+						_distanceList = channel.Values.Select(Function(x) CSng(x)).ToList()
+					End If
+				Next
+
+				SetxMax0()
+
+				TbXmin.Text = 0
+				TbXmax.Text = _xMax0
+
+				Text = fFILE(_filepath, True)
+
+			Catch ex As Exception
+				file.Close()
+				Exit Sub
+			End Try
+
+		End If
+
+		UpdateGraph()
+	End Sub
+
+	Private Sub SetxMax0()
+
+		If _channels.Count = 0 Then Exit Sub
+
+		If CbXaxis.SelectedIndex = 0 Then
+			_xMax0 = _distanceList(_distanceList.Count - 1)
+		Else
+			_xMax0 = _timeList(_timeList.Count - 1)
+		End If
+	End Sub
+
+	Private Sub UpdateGraph()
+		Dim listViewItem As ListViewItem
+		Dim leftaxis As New List(Of String)
+		Dim rightaxis As New List(Of String)
+		Dim txt As String
+		Dim i As Integer
+
+		If WindowState = FormWindowState.Minimized Then Exit Sub
+
+		If ListView1.CheckedItems.Count = 0 Then
+			PictureBox1.Image = Nothing
+			Exit Sub
+		End If
+
+		Dim overDist As Boolean = (CbXaxis.SelectedIndex = 0)
+
+		SetxMax0()
+
+
+		Dim chart As Chart = New Chart
+		chart.Width = PictureBox1.Width
+		chart.Height = PictureBox1.Height
+
+		Dim chartArea As ChartArea = New ChartArea
+
+
+		For Each listViewItem In ListView1.CheckedItems
+
+			Dim isLeft As Boolean = (listViewItem.SubItems(1).Text = "Left")
+
+			Dim chartSeries As Series = New Series
+
+			If overDist Then
+				chartSeries.Points.DataBindXY(_distanceList, _channels(listViewItem.Tag).Values)
+			Else
+				chartSeries.Points.DataBindXY(_timeList, _channels(listViewItem.Tag).Values)
+			End If
+
+			chartSeries.ChartType = SeriesChartType.FastLine
+			chartSeries.Name = listViewItem.Text
+			chartSeries.BorderWidth = 2
+
+			If isLeft Then
+				If Not leftaxis.Contains(listViewItem.SubItems(0).Text) Then leftaxis.Add(listViewItem.SubItems(0).Text)
+			Else
+				If Not rightaxis.Contains(listViewItem.SubItems(0).Text) Then rightaxis.Add(listViewItem.SubItems(0).Text)
+				chartSeries.YAxisType = AxisType.Secondary
+			End If
+
+			chart.Series.Add(chartSeries)
+
+		Next
+
+
+		chartArea.Name = "main"
+
+		If overDist Then
+			chartArea.AxisX.Title = "distance [km]"
+		Else
+			chartArea.AxisX.Title = "time [s]"
+		End If
+		chartArea.AxisX.TitleFont = New Font("Helvetica", 10)
+		chartArea.AxisX.LabelStyle.Font = New Font("Helvetica", 8)
+		chartArea.AxisX.LabelAutoFitStyle = LabelAutoFitStyles.None
+		chartArea.AxisX.MajorGrid.LineDashStyle = ChartDashStyle.Dot
+
+		If _xMax > _xMin Then
+			chartArea.AxisX.Minimum = _xMin
+			chartArea.AxisX.Maximum = _xMax
+			chartArea.AxisX.Interval = AutoIntervalXAxis()
+		Else
+			chartArea.AxisX.Minimum = 0
+			chartArea.AxisX.Maximum = _xMax0
+		End If
+
+
+		If leftaxis.Count > 0 Then
+
+			txt = leftaxis(0)
+			For i = 1 To leftaxis.Count - 1
+				txt &= ", " & leftaxis(i)
+			Next
+
+			chartArea.AxisY.Title = txt
+			chartArea.AxisY.TitleFont = New Font("Helvetica", 10)
+			chartArea.AxisY.LabelStyle.Font = New Font("Helvetica", 8)
+			chartArea.AxisY.LabelAutoFitStyle = LabelAutoFitStyles.None
+
+		End If
+
+		If rightaxis.Count > 0 Then
+
+			txt = rightaxis(0)
+			For i = 1 To rightaxis.Count - 1
+				txt &= ", " & rightaxis(i)
+			Next
+
+			chartArea.AxisY2.Title = txt
+			chartArea.AxisY2.TitleFont = New Font("Helvetica", 10)
+			chartArea.AxisY2.LabelStyle.Font = New Font("Helvetica", 8)
+			chartArea.AxisY2.LabelAutoFitStyle = LabelAutoFitStyles.None
+			chartArea.AxisY2.MinorGrid.Enabled = False
+			chartArea.AxisY2.MajorGrid.Enabled = False
+
+		End If
+
+		chartArea.BackColor = Color.GhostWhite
+
+		chartArea.BorderDashStyle = ChartDashStyle.Solid
+		chartArea.BorderWidth = 1
+
+		chart.ChartAreas.Add(chartArea)
+
+		With chart.ChartAreas(0)
+			.Position.X = 0
+			.Position.Y = 0
+			.Position.Width = 85
+			.Position.Height = 100
+		End With
+
+		chart.Legends.Add("main")
+		chart.Legends(0).Font = New Font("Helvetica", 8)
+		chart.Legends(0).BorderColor = Color.Black
+		chart.Legends(0).BorderWidth = 1
+		chart.Legends(0).Position.X = 86
+		chart.Legends(0).Position.Y = 3
+		chart.Legends(0).Position.Width = 13
+		chart.Legends(0).Position.Height = 40
+
+		chart.Update()
+
+		Dim img As Image = New Bitmap(chart.Width, chart.Height, PixelFormat.Format32bppArgb)
+		chart.DrawToBitmap(img, New Rectangle(0, 0, PictureBox1.Width, PictureBox1.Height))
+
+		PictureBox1.Image = img
+	End Sub
+
+	Private Function AutoIntervalXAxis() As Single
+		Dim xyd(3) As Single
+		Dim xya(3) As Single
+		Dim i As Int16
+
+		Dim inv As Single = (_xMax - _xMin) / 10
+
+		Dim grx As Long = 20
+		Do While 10 ^ grx > inv
+			grx = grx - 1
+		Loop
+
+		xyd(0) = 1 * 10 ^ grx
+		xyd(1) = 2.5 * 10 ^ grx
+		xyd(2) = 5 * 10 ^ grx
+		xyd(3) = 10 * 10 ^ grx
+		For i = 0 To 3
+			xya(i) = Math.Abs(inv - xyd(i))
+		Next
+
+		Dim xyamin As Single = xya(0)
+		Dim xydmin As Single = xyd(0)
+		For i = 1 To 3
+			If xya(i) < xyamin Then
+				xyamin = xya(i)
+				xydmin = xyd(i)
+			End If
+		Next
+
+		'Intervall speichern
+		Return xydmin
+	End Function
+
+	Private Sub Clear()
+
+		_filepath = ""
+
+		ListView1.Items.Clear()
+
+		TbXmin.Text = ""
+		TbXmax.Text = ""
+
+		PictureBox1.Image = Nothing
+	End Sub
+
+
+	Private Sub BtAddCh_Click(sender As Object, e As EventArgs) Handles BtAddCh.Click
+		Dim dlog As New GraphEditChannelDialog
+		Dim i As Integer
+		Dim lv0 As ListViewItem
+
+		If _channels.Count = 0 Then Exit Sub
+
+		For i = 0 To _channels.Count - 1
+			dlog.ComboBox1.Items.Add(_channels(i).Name)
+		Next
+
+		dlog.RbLeft.Checked = True
+
+		dlog.ComboBox1.SelectedIndex = 0
+
+		If dlog.ShowDialog = DialogResult.OK Then
+			lv0 = New ListViewItem
+			i = dlog.ComboBox1.SelectedIndex
+			lv0.Text = _channels(i).Name
+			lv0.Tag = i
+			lv0.Checked = True
+			If dlog.RbLeft.Checked Then
+				lv0.SubItems.Add("Left")
+			Else
+				lv0.SubItems.Add("Right")
+			End If
+
+			ListView1.Items.Add(lv0)
+
+			UpdateGraph()
+
+		End If
+	End Sub
+
+	Private Sub EditChannel()
+		Dim dlog As New GraphEditChannelDialog
+		Dim i As Integer
+		Dim lv0 As ListViewItem
+
+		If ListView1.SelectedItems.Count = 0 Or _channels.Count = 0 Then Exit Sub
+
+		lv0 = ListView1.SelectedItems(0)
+
+		For i = 0 To _channels.Count - 1
+			dlog.ComboBox1.Items.Add(_channels(i).Name)
+		Next
+
+		If lv0.SubItems(1).Text = "Left" Then
+			dlog.RbLeft.Checked = True
+		Else
+			dlog.RbRight.Checked = True
+		End If
+
+		dlog.ComboBox1.SelectedIndex = lv0.Tag
+
+		If dlog.ShowDialog = DialogResult.OK Then
+			i = dlog.ComboBox1.SelectedIndex
+			lv0.Text = _channels(i).Name
+			lv0.Tag = i
+			lv0.Checked = True
+			If dlog.RbLeft.Checked Then
+				lv0.SubItems(1).Text = "Left"
+			Else
+				lv0.SubItems(1).Text = "Right"
+			End If
+
+			UpdateGraph()
+
+		End If
+	End Sub
+
+	Private Sub RemoveChannel()
+		Dim i0 As Int16
+
+		If ListView1.Items.Count = 0 Then Exit Sub
+
+		If ListView1.SelectedItems.Count = 0 Then ListView1.Items(ListView1.Items.Count - 1).Selected = True
+
+		i0 = ListView1.SelectedItems(0).Index
+
+		ListView1.SelectedItems(0).Remove()
+
+		If i0 < ListView1.Items.Count Then
+			ListView1.Items(i0).Selected = True
+			ListView1.Items(i0).EnsureVisible()
+		End If
+
+		UpdateGraph()
+	End Sub
+
+	Private Sub ListView1_DoubleClick(sender As Object, e As EventArgs) Handles ListView1.DoubleClick
+		If ListView1.SelectedItems.Count > 0 Then
+			ListView1.SelectedItems(0).Checked = Not ListView1.SelectedItems(0).Checked
+			EditChannel()
+		End If
+	End Sub
+
+	Private Sub BtRemCh_Click(sender As Object, e As EventArgs) Handles BtRemCh.Click
+		RemoveChannel()
+	End Sub
+
+	Private Sub ListView1_ItemChecked(sender As Object, e As ItemCheckedEventArgs) _
+		Handles ListView1.ItemChecked
+		UpdateGraph()
+	End Sub
+
+	Private Sub ListView1_KeyDown(sender As Object, e As KeyEventArgs) Handles ListView1.KeyDown
+		Select Case e.KeyCode
+			Case Keys.Delete, Keys.Back
+				RemoveChannel()
+			Case Keys.Enter
+				EditChannel()
+		End Select
+	End Sub
+
+	Private Sub CbXaxis_SelectedIndexChanged(sender As Object, e As EventArgs) _
+		Handles CbXaxis.SelectedIndexChanged
+		SetxMax0()
+		TbXmin.Text = 0
+		TbXmax.Text = _xMax0
+		UpdateGraph()
+	End Sub
+
+	Private Sub BtReset_Click(sender As Object, e As EventArgs) Handles BtReset.Click
+		_xMin = 0
+		_xMax = _xMax0
+		TbXmin.Text = 0
+		TbXmax.Text = _xMax0
+	End Sub
+
+	Private Sub TbXmin_TextChanged(sender As Object, e As EventArgs) Handles TbXmin.TextChanged
+		If IsNumeric(TbXmin.Text) Then _xMin = TbXmin.Text
+		UpdateGraph()
+	End Sub
+
+	Private Sub TbXmax_TextChanged(sender As Object, e As EventArgs) Handles TbXmax.TextChanged
+		If IsNumeric(TbXmax.Text) Then _xMax = TbXmax.Text
+		UpdateGraph()
+	End Sub
+
+	Private Sub ToolStripButton3_Click(sender As Object, e As EventArgs) Handles ToolStripButton3.Click
+		Dim FGraph As New GraphForm
+		FGraph.Show()
+	End Sub
+
+	Private Sub F_Graph_SizeChanged(sender As Object, e As EventArgs) Handles Me.SizeChanged
+		UpdateGraph()
+	End Sub
+
+	Private Sub BtZoomIn_Click(sender As Object, e As EventArgs) Handles BtZoomIn.Click
+		Dim d As Single
+
+		d = (_xMax - _xMin) / 10
+
+		_xMin += 2 * 0.5 * d
+		_xMax -= 2 * (1 - 0.5) * d
+
+		If _xMin > 1000 Then
+			_xMin = Math.Round(_xMin / 100, 0) * 100
+		Else
+			_xMin = Math.Round(_xMin, 0)
+		End If
+
+		TbXmin.Text = _xMin
+		TbXmax.Text = _xMax
+	End Sub
+
+	Private Sub BtZoomOut_Click(sender As Object, e As EventArgs) Handles BtZoomOut.Click
+		Dim d As Single
+
+		d = (_xMax - _xMin) / 10
+
+		_xMin -= 2 * 0.5 * d
+		_xMax += 2 * (1 - 0.5) * d
+
+		If _xMin > 1000 Then
+			_xMin = Math.Round(_xMin / 100, 0) * 100
+		Else
+			_xMin = Math.Round(_xMin, 0)
+		End If
+
+		TbXmin.Text = _xMin
+		TbXmax.Text = _xMax
+	End Sub
+
+	Private Sub BtMoveL_Click(sender As Object, e As EventArgs) Handles BtMoveL.Click
+		Dim d As Single
+
+		If _xMin <= 0 Then Exit Sub
+
+		d = (_xMax - _xMin) / 3
+		_xMin -= d
+		_xMax -= d
+
+		If _xMin > 1000 Then
+			_xMin = Math.Round(_xMin / 100, 0) * 100
+		Else
+			_xMin = Math.Round(_xMin, 0)
+		End If
+
+		TbXmin.Text = _xMin
+		TbXmax.Text = _xMax
+	End Sub
+
+	Private Sub BtMoveR_Click(sender As Object, e As EventArgs) Handles BtMoveR.Click
+		Dim d As Single
+
+		If _xMax >= _xMax0 Then Exit Sub
+
+		d = (_xMax - _xMin) / 3
+		_xMin += d
+		_xMax += d
+
+		If _xMin > 1000 Then
+			_xMin = Math.Round(_xMin / 100, 0) * 100
+		Else
+			_xMin = Math.Round(_xMin, 0)
+		End If
+
+		TbXmin.Text = _xMin
+		TbXmax.Text = _xMax
+	End Sub
+
+	Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
+		If File.Exists(MyAppPath & "User Manual\help.html") Then
+			Dim BrowserRegistryString As String =
+					My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString
+			Dim DefaultBrowserPath As String =
+					Regex.Match(BrowserRegistryString, "(\"".*?\"")").Captures(0).ToString
+			Process.Start(DefaultBrowserPath,
+						String.Format("""{0}{1}""", MyAppPath, "User Manual\help.html#graph-window"))
+		Else
+			MsgBox("User Manual not found!", MsgBoxStyle.Critical)
+		End If
+	End Sub
+
+	Private Class Channel
+		Public Name As String
+		Public Values As List(Of String)
+	End Class
 End Class
\ No newline at end of file
diff --git a/VECTO/GUI/F_JIRA.Designer.vb b/VECTO/GUI/JiraDialog.Designer.vb
similarity index 98%
rename from VECTO/GUI/F_JIRA.Designer.vb
rename to VECTO/GUI/JiraDialog.Designer.vb
index 2e0d6c0342..2636603f0e 100644
--- a/VECTO/GUI/F_JIRA.Designer.vb
+++ b/VECTO/GUI/JiraDialog.Designer.vb
@@ -3,7 +3,7 @@ Imports Microsoft.VisualBasic.CompilerServices
 
 
 <DesignerGenerated()> _
-Partial Class F_JIRA
+Partial Class JiraDialog
 	Inherits Form
 
 	'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
@@ -118,7 +118,7 @@ Partial Class F_JIRA
 		Me.FormBorderStyle = FormBorderStyle.FixedDialog
 		Me.MaximizeBox = False
 		Me.MinimizeBox = False
-		Me.Name = "F_JIRA"
+		Me.Name = "JiraDialog"
 		Me.ShowInTaskbar = False
 		Me.StartPosition = FormStartPosition.CenterParent
 		Me.Text = "Report Issue via CITnet"
diff --git a/VECTO/GUI/F_JIRA.resx b/VECTO/GUI/JiraDialog.resx
similarity index 100%
rename from VECTO/GUI/F_JIRA.resx
rename to VECTO/GUI/JiraDialog.resx
diff --git a/VECTO/GUI/F_JIRA.vb b/VECTO/GUI/JiraDialog.vb
similarity index 97%
rename from VECTO/GUI/F_JIRA.vb
rename to VECTO/GUI/JiraDialog.vb
index 43157fae55..7f7d2802a7 100644
--- a/VECTO/GUI/F_JIRA.vb
+++ b/VECTO/GUI/JiraDialog.vb
@@ -1,7 +1,7 @@
 Imports System.IO
 Imports System.Windows.Forms
 
-Public Class F_JIRA
+Public Class JiraDialog
 	Private Sub OK_Button_Click(ByVal sender As Object, ByVal e As EventArgs) Handles OK_Button.Click
 		DialogResult = DialogResult.OK
 		Close()
diff --git a/VECTO/GUI/F_MAINForm.Designer.vb b/VECTO/GUI/MainForm.Designer.vb
similarity index 97%
rename from VECTO/GUI/F_MAINForm.Designer.vb
rename to VECTO/GUI/MainForm.Designer.vb
index 08cf1e715d..9bb73f5934 100644
--- a/VECTO/GUI/F_MAINForm.Designer.vb
+++ b/VECTO/GUI/MainForm.Designer.vb
@@ -1,903 +1,903 @@
-' Copyright 2014 European Union.
-' Licensed under the EUPL (the 'Licence');
-'
-' * You may not use this work except in compliance with the Licence.
-' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
-' * Unless required by applicable law or agreed to in writing,
-'   software distributed under the Licence is distributed on an "AS IS" basis,
-'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-'
-' See the LICENSE.txt for the specific language governing permissions and limitations.
-Imports System.ComponentModel
-Imports Microsoft.VisualBasic.CompilerServices
-
-<DesignerGenerated()> _
-Partial Class F_MAINForm
-	Inherits Form
-
-	'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
-	<DebuggerNonUserCode()> _
-	Protected Overrides Sub Dispose(ByVal disposing As Boolean)
-		Try
-			If disposing AndAlso components IsNot Nothing Then
-				components.Dispose()
-			End If
-		Finally
-			MyBase.Dispose(disposing)
-		End Try
-	End Sub
-
-	'Wird vom Windows Form-Designer benötigt.
-	Private components As IContainer
-
-	'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
-	'Das Bearbeiten ist mit dem Windows Form-Designer möglich.  
-	'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
-	<DebuggerStepThrough()> _
-	Private Sub InitializeComponent()
-		Me.components = New System.ComponentModel.Container()
-		Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(F_MAINForm))
-		Me.StatusBAR = New System.Windows.Forms.StatusStrip()
-		Me.ToolStripLbStatus = New System.Windows.Forms.ToolStripStatusLabel()
-		Me.ToolStripProgBarJob = New System.Windows.Forms.ToolStripProgressBar()
-		Me.ToolStripProgBarOverall = New System.Windows.Forms.ToolStripProgressBar()
-		Me.TabControl1 = New System.Windows.Forms.TabControl()
-		Me.TabPageGEN = New System.Windows.Forms.TabPage()
-		Me.Label6 = New System.Windows.Forms.Label()
-		Me.btStartV3 = New System.Windows.Forms.Button()
-		Me.LbDecl = New System.Windows.Forms.Label()
-		Me.PictureBox1 = New System.Windows.Forms.PictureBox()
-		Me.BtGENdown = New System.Windows.Forms.Button()
-		Me.BtGENup = New System.Windows.Forms.Button()
-		Me.LbAutoShDown = New System.Windows.Forms.Label()
-		Me.ChBoxAllGEN = New System.Windows.Forms.CheckBox()
-		Me.LvGEN = New System.Windows.Forms.ListView()
-		Me.ColGENpath = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
-		Me.ColGENstatus = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
-		Me.ButtonGENremove = New System.Windows.Forms.Button()
-		Me.ButtonGENadd = New System.Windows.Forms.Button()
-		Me.TabPgOptions = New System.Windows.Forms.TabPage()
-		Me.PanelOptAllg = New System.Windows.Forms.Panel()
-		Me.GroupBox2 = New System.Windows.Forms.GroupBox()
-		Me.ChBoxModOut = New System.Windows.Forms.CheckBox()
-		Me.ChBoxMod1Hz = New System.Windows.Forms.CheckBox()
-		Me.GroupBox1 = New System.Windows.Forms.GroupBox()
-		Me.RbDev = New System.Windows.Forms.RadioButton()
-		Me.RbDecl = New System.Windows.Forms.RadioButton()
-		Me.TabPageDEV = New System.Windows.Forms.TabPage()
-		Me.Label1 = New System.Windows.Forms.Label()
-		Me.LvDEVoptions = New System.Windows.Forms.ListView()
-		Me.ColumnHeader4 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
-		Me.ColumnHeader7 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
-		Me.ColumnHeader5 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
-		Me.ColumnHeader6 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
-		Me.ColumnHeader8 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
-		Me.ColumnHeader9 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
-		Me.ConMenFilelist = New System.Windows.Forms.ContextMenuStrip(Me.components)
-		Me.SaveListToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
-		Me.LoadListToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
-		Me.LoadDefaultListToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
-		Me.ClearListToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
-		Me.BackgroundWorker1 = New System.ComponentModel.BackgroundWorker()
-		Me.LvMsg = New System.Windows.Forms.ListView()
-		Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
-		Me.ColumnHeader2 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
-		Me.ColumnHeader3 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
-		Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
-		Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
-		Me.ToolStripBtNew = New System.Windows.Forms.ToolStripButton()
-		Me.ToolStripBtOpen = New System.Windows.Forms.ToolStripButton()
-		Me.ToolStripSeparator2 = New System.Windows.Forms.ToolStripSeparator()
-		Me.ToolStripDrDnBtTools = New System.Windows.Forms.ToolStripDropDownButton()
-		Me.GENEditorToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem()
-		Me.VEHEditorToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
-		Me.EngineEditorToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
-		Me.GearboxEditorToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
-		Me.GraphToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
-		Me.ToolStripSeparator6 = New System.Windows.Forms.ToolStripSeparator()
-		Me.SignOrVerifyFilesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
-		Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator()
-		Me.OpenLogToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
-		Me.SettingsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
-		Me.ToolStripDrDnBtInfo = New System.Windows.Forms.ToolStripDropDownButton()
-		Me.UserManualToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
-		Me.UpdateNotesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
-		Me.ReportBugViaCITnetToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
-		Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator()
-		Me.CreateActivationFileToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
-		Me.AboutVECTOToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem()
-		Me.CmDEV = New System.Windows.Forms.ContextMenuStrip(Me.components)
-		Me.TmProgSec = New System.Windows.Forms.Timer(Me.components)
-		Me.CmOpenFile = New System.Windows.Forms.ContextMenuStrip(Me.components)
-		Me.OpenWithToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
-		Me.OpenInGraphWindowToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
-		Me.ShowInFolderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
-		Me.ToolTip1 = New System.Windows.Forms.ToolTip(Me.components)
-		Me.StatusBAR.SuspendLayout()
-		Me.TabControl1.SuspendLayout()
-		Me.TabPageGEN.SuspendLayout()
-		CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
-		Me.TabPgOptions.SuspendLayout()
-		Me.PanelOptAllg.SuspendLayout()
-		Me.GroupBox2.SuspendLayout()
-		Me.GroupBox1.SuspendLayout()
-		Me.TabPageDEV.SuspendLayout()
-		Me.ConMenFilelist.SuspendLayout()
-		CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit()
-		Me.SplitContainer1.Panel1.SuspendLayout()
-		Me.SplitContainer1.Panel2.SuspendLayout()
-		Me.SplitContainer1.SuspendLayout()
-		Me.ToolStrip1.SuspendLayout()
-		Me.CmOpenFile.SuspendLayout()
-		Me.SuspendLayout()
-		'
-		'StatusBAR
-		'
-		Me.StatusBAR.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripLbStatus, Me.ToolStripProgBarJob, Me.ToolStripProgBarOverall})
-		Me.StatusBAR.Location = New System.Drawing.Point(0, 648)
-		Me.StatusBAR.Name = "StatusBAR"
-		Me.StatusBAR.Size = New System.Drawing.Size(1045, 22)
-		Me.StatusBAR.TabIndex = 7
-		Me.StatusBAR.Text = "StatusBAR"
-		'
-		'ToolStripLbStatus
-		'
-		Me.ToolStripLbStatus.Name = "ToolStripLbStatus"
-		Me.ToolStripLbStatus.Size = New System.Drawing.Size(1030, 17)
-		Me.ToolStripLbStatus.Spring = True
-		Me.ToolStripLbStatus.Text = "Status Text"
-		Me.ToolStripLbStatus.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
-		'
-		'ToolStripProgBarJob
-		'
-		Me.ToolStripProgBarJob.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right
-		Me.ToolStripProgBarJob.AutoSize = False
-		Me.ToolStripProgBarJob.Name = "ToolStripProgBarJob"
-		Me.ToolStripProgBarJob.Size = New System.Drawing.Size(100, 16)
-		Me.ToolStripProgBarJob.Style = System.Windows.Forms.ProgressBarStyle.Continuous
-		Me.ToolStripProgBarJob.ToolTipText = "overall progress"
-		Me.ToolStripProgBarJob.Visible = False
-		'
-		'ToolStripProgBarOverall
-		'
-		Me.ToolStripProgBarOverall.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right
-		Me.ToolStripProgBarOverall.AutoSize = False
-		Me.ToolStripProgBarOverall.Name = "ToolStripProgBarOverall"
-		Me.ToolStripProgBarOverall.Size = New System.Drawing.Size(100, 16)
-		Me.ToolStripProgBarOverall.Style = System.Windows.Forms.ProgressBarStyle.Continuous
-		Me.ToolStripProgBarOverall.ToolTipText = "job progress"
-		Me.ToolStripProgBarOverall.Visible = False
-		'
-		'TabControl1
-		'
-		Me.TabControl1.Controls.Add(Me.TabPageGEN)
-		Me.TabControl1.Controls.Add(Me.TabPgOptions)
-		Me.TabControl1.Controls.Add(Me.TabPageDEV)
-		Me.TabControl1.Dock = System.Windows.Forms.DockStyle.Fill
-		Me.TabControl1.Location = New System.Drawing.Point(3, 3)
-		Me.TabControl1.Margin = New System.Windows.Forms.Padding(0)
-		Me.TabControl1.Name = "TabControl1"
-		Me.TabControl1.Padding = New System.Drawing.Point(0, 0)
-		Me.TabControl1.SelectedIndex = 0
-		Me.TabControl1.Size = New System.Drawing.Size(1042, 328)
-		Me.TabControl1.TabIndex = 10
-		'
-		'TabPageGEN
-		'
-		Me.TabPageGEN.Controls.Add(Me.Label6)
-		Me.TabPageGEN.Controls.Add(Me.btStartV3)
-		Me.TabPageGEN.Controls.Add(Me.LbDecl)
-		Me.TabPageGEN.Controls.Add(Me.PictureBox1)
-		Me.TabPageGEN.Controls.Add(Me.BtGENdown)
-		Me.TabPageGEN.Controls.Add(Me.BtGENup)
-		Me.TabPageGEN.Controls.Add(Me.LbAutoShDown)
-		Me.TabPageGEN.Controls.Add(Me.ChBoxAllGEN)
-		Me.TabPageGEN.Controls.Add(Me.LvGEN)
-		Me.TabPageGEN.Controls.Add(Me.ButtonGENremove)
-		Me.TabPageGEN.Controls.Add(Me.ButtonGENadd)
-		Me.TabPageGEN.Location = New System.Drawing.Point(4, 22)
-		Me.TabPageGEN.Margin = New System.Windows.Forms.Padding(0)
-		Me.TabPageGEN.Name = "TabPageGEN"
-		Me.TabPageGEN.Size = New System.Drawing.Size(1034, 302)
-		Me.TabPageGEN.TabIndex = 0
-		Me.TabPageGEN.Text = "Job Files"
-		Me.TabPageGEN.UseVisualStyleBackColor = True
-		'
-		'Label6
-		'
-		Me.Label6.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
-		Me.Label6.AutoSize = True
-		Me.Label6.Location = New System.Drawing.Point(814, 268)
-		Me.Label6.Name = "Label6"
-		Me.Label6.Size = New System.Drawing.Size(217, 13)
-		Me.Label6.TabIndex = 21
-		Me.Label6.Text = "(Double-Click to Edit, Right-Click for Options)"
-		'
-		'btStartV3
-		'
-		Me.btStartV3.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
-		Me.btStartV3.Image = Global.TUGraz.VECTO.My.Resources.Resources.Play_icon
-		Me.btStartV3.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
-		Me.btStartV3.Location = New System.Drawing.Point(3, 56)
-		Me.btStartV3.Name = "btStartV3"
-		Me.btStartV3.Size = New System.Drawing.Size(108, 50)
-		Me.btStartV3.TabIndex = 20
-		Me.btStartV3.Text = "START"
-		Me.btStartV3.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
-		Me.ToolTip1.SetToolTip(Me.btStartV3, "Start Simulation")
-		Me.btStartV3.UseVisualStyleBackColor = True
-		'
-		'LbDecl
-		'
-		Me.LbDecl.AutoSize = True
-		Me.LbDecl.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
-		Me.LbDecl.Location = New System.Drawing.Point(5, 109)
-		Me.LbDecl.Name = "LbDecl"
-		Me.LbDecl.Size = New System.Drawing.Size(107, 13)
-		Me.LbDecl.TabIndex = 19
-		Me.LbDecl.Text = "Declaration Mode"
-		Me.LbDecl.Visible = False
-		'
-		'PictureBox1
-		'
-		Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image)
-		Me.PictureBox1.Location = New System.Drawing.Point(3, 3)
-		Me.PictureBox1.Name = "PictureBox1"
-		Me.PictureBox1.Size = New System.Drawing.Size(108, 47)
-		Me.PictureBox1.TabIndex = 18
-		Me.PictureBox1.TabStop = False
-		'
-		'BtGENdown
-		'
-		Me.BtGENdown.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
-		Me.BtGENdown.Image = Global.TUGraz.VECTO.My.Resources.Resources.Actions_arrow_down_icon
-		Me.BtGENdown.Location = New System.Drawing.Point(307, 267)
-		Me.BtGENdown.Name = "BtGENdown"
-		Me.BtGENdown.Size = New System.Drawing.Size(30, 30)
-		Me.BtGENdown.TabIndex = 6
-		Me.ToolTip1.SetToolTip(Me.BtGENdown, "Move job down one row")
-		Me.BtGENdown.UseVisualStyleBackColor = True
-		'
-		'BtGENup
-		'
-		Me.BtGENup.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
-		Me.BtGENup.Image = Global.TUGraz.VECTO.My.Resources.Resources.Actions_arrow_up_icon
-		Me.BtGENup.Location = New System.Drawing.Point(276, 267)
-		Me.BtGENup.Name = "BtGENup"
-		Me.BtGENup.Size = New System.Drawing.Size(30, 30)
-		Me.BtGENup.TabIndex = 4
-		Me.ToolTip1.SetToolTip(Me.BtGENup, "Move job up one row")
-		Me.BtGENup.UseVisualStyleBackColor = True
-		'
-		'LbAutoShDown
-		'
-		Me.LbAutoShDown.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
-		Me.LbAutoShDown.AutoSize = True
-		Me.LbAutoShDown.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
-		Me.LbAutoShDown.ForeColor = System.Drawing.Color.Red
-		Me.LbAutoShDown.Location = New System.Drawing.Point(408, 275)
-		Me.LbAutoShDown.Name = "LbAutoShDown"
-		Me.LbAutoShDown.Size = New System.Drawing.Size(225, 13)
-		Me.LbAutoShDown.TabIndex = 17
-		Me.LbAutoShDown.Text = "!!! Automatic Shutdown is activated !!!"
-		Me.LbAutoShDown.Visible = False
-		'
-		'ChBoxAllGEN
-		'
-		Me.ChBoxAllGEN.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
-		Me.ChBoxAllGEN.AutoSize = True
-		Me.ChBoxAllGEN.Location = New System.Drawing.Point(195, 274)
-		Me.ChBoxAllGEN.Name = "ChBoxAllGEN"
-		Me.ChBoxAllGEN.Size = New System.Drawing.Size(70, 17)
-		Me.ChBoxAllGEN.TabIndex = 16
-		Me.ChBoxAllGEN.Text = "Select All"
-		Me.ToolTip1.SetToolTip(Me.ChBoxAllGEN, "Select All / None")
-		Me.ChBoxAllGEN.UseVisualStyleBackColor = True
-		'
-		'LvGEN
-		'
-		Me.LvGEN.AllowDrop = True
-		Me.LvGEN.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
-			Or System.Windows.Forms.AnchorStyles.Left) _
-			Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
-		Me.LvGEN.CheckBoxes = True
-		Me.LvGEN.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColGENpath, Me.ColGENstatus})
-		Me.LvGEN.FullRowSelect = True
-		Me.LvGEN.GridLines = True
-		Me.LvGEN.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable
-		Me.LvGEN.HideSelection = False
-		Me.LvGEN.LabelEdit = True
-		Me.LvGEN.Location = New System.Drawing.Point(114, 3)
-		Me.LvGEN.Name = "LvGEN"
-		Me.LvGEN.Size = New System.Drawing.Size(917, 263)
-		Me.LvGEN.TabIndex = 14
-		Me.LvGEN.UseCompatibleStateImageBehavior = False
-		Me.LvGEN.View = System.Windows.Forms.View.Details
-		'
-		'ColGENpath
-		'
-		Me.ColGENpath.Text = "Filepath"
-		Me.ColGENpath.Width = 797
-		'
-		'ColGENstatus
-		'
-		Me.ColGENstatus.Text = ""
-		Me.ColGENstatus.Width = 175
-		'
-		'ButtonGENremove
-		'
-		Me.ButtonGENremove.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
-		Me.ButtonGENremove.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
-		Me.ButtonGENremove.Image = Global.TUGraz.VECTO.My.Resources.Resources.minus_circle_icon
-		Me.ButtonGENremove.Location = New System.Drawing.Point(147, 267)
-		Me.ButtonGENremove.Name = "ButtonGENremove"
-		Me.ButtonGENremove.Size = New System.Drawing.Size(33, 30)
-		Me.ButtonGENremove.TabIndex = 2
-		Me.ToolTip1.SetToolTip(Me.ButtonGENremove, "Remove selected entries")
-		Me.ButtonGENremove.UseVisualStyleBackColor = True
-		'
-		'ButtonGENadd
-		'
-		Me.ButtonGENadd.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
-		Me.ButtonGENadd.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
-		Me.ButtonGENadd.Image = Global.TUGraz.VECTO.My.Resources.Resources.plus_circle_icon
-		Me.ButtonGENadd.Location = New System.Drawing.Point(113, 267)
-		Me.ButtonGENadd.Name = "ButtonGENadd"
-		Me.ButtonGENadd.Size = New System.Drawing.Size(33, 30)
-		Me.ButtonGENadd.TabIndex = 1
-		Me.ToolTip1.SetToolTip(Me.ButtonGENadd, "Add Job File")
-		Me.ButtonGENadd.UseVisualStyleBackColor = True
-		'
-		'TabPgOptions
-		'
-		Me.TabPgOptions.Controls.Add(Me.PanelOptAllg)
-		Me.TabPgOptions.Location = New System.Drawing.Point(4, 22)
-		Me.TabPgOptions.Name = "TabPgOptions"
-		Me.TabPgOptions.Padding = New System.Windows.Forms.Padding(3)
-		Me.TabPgOptions.Size = New System.Drawing.Size(1034, 302)
-		Me.TabPgOptions.TabIndex = 2
-		Me.TabPgOptions.Text = "Options"
-		Me.TabPgOptions.UseVisualStyleBackColor = True
-		'
-		'PanelOptAllg
-		'
-		Me.PanelOptAllg.Controls.Add(Me.GroupBox2)
-		Me.PanelOptAllg.Controls.Add(Me.GroupBox1)
-		Me.PanelOptAllg.Location = New System.Drawing.Point(6, 6)
-		Me.PanelOptAllg.Name = "PanelOptAllg"
-		Me.PanelOptAllg.Size = New System.Drawing.Size(1022, 290)
-		Me.PanelOptAllg.TabIndex = 0
-		'
-		'GroupBox2
-		'
-		Me.GroupBox2.Controls.Add(Me.ChBoxModOut)
-		Me.GroupBox2.Controls.Add(Me.ChBoxMod1Hz)
-		Me.GroupBox2.Location = New System.Drawing.Point(9, 81)
-		Me.GroupBox2.Name = "GroupBox2"
-		Me.GroupBox2.Size = New System.Drawing.Size(167, 89)
-		Me.GroupBox2.TabIndex = 16
-		Me.GroupBox2.TabStop = False
-		Me.GroupBox2.Text = "Mode"
-		'
-		'ChBoxModOut
-		'
-		Me.ChBoxModOut.AutoSize = True
-		Me.ChBoxModOut.Checked = True
-		Me.ChBoxModOut.CheckState = System.Windows.Forms.CheckState.Checked
-		Me.ChBoxModOut.Location = New System.Drawing.Point(6, 19)
-		Me.ChBoxModOut.Name = "ChBoxModOut"
-		Me.ChBoxModOut.Size = New System.Drawing.Size(115, 17)
-		Me.ChBoxModOut.TabIndex = 0
-		Me.ChBoxModOut.Text = "Write modal results"
-		Me.ChBoxModOut.UseVisualStyleBackColor = True
-		'
-		'ChBoxMod1Hz
-		'
-		Me.ChBoxMod1Hz.AutoSize = True
-		Me.ChBoxMod1Hz.Location = New System.Drawing.Point(6, 42)
-		Me.ChBoxMod1Hz.Name = "ChBoxMod1Hz"
-		Me.ChBoxMod1Hz.Size = New System.Drawing.Size(121, 17)
-		Me.ChBoxMod1Hz.TabIndex = 16
-		Me.ChBoxMod1Hz.Text = "Modal results in 1Hz"
-		Me.ChBoxMod1Hz.UseVisualStyleBackColor = True
-		'
-		'GroupBox1
-		'
-		Me.GroupBox1.Controls.Add(Me.RbDev)
-		Me.GroupBox1.Controls.Add(Me.RbDecl)
-		Me.GroupBox1.Location = New System.Drawing.Point(3, 3)
-		Me.GroupBox1.Name = "GroupBox1"
-		Me.GroupBox1.Size = New System.Drawing.Size(173, 72)
-		Me.GroupBox1.TabIndex = 15
-		Me.GroupBox1.TabStop = False
-		Me.GroupBox1.Text = "Mode"
-		'
-		'RbDev
-		'
-		Me.RbDev.AutoSize = True
-		Me.RbDev.Checked = True
-		Me.RbDev.Location = New System.Drawing.Point(6, 42)
-		Me.RbDev.Name = "RbDev"
-		Me.RbDev.Size = New System.Drawing.Size(111, 17)
-		Me.RbDev.TabIndex = 1
-		Me.RbDev.TabStop = True
-		Me.RbDev.Text = "Engineering Mode"
-		Me.RbDev.UseVisualStyleBackColor = True
-		'
-		'RbDecl
-		'
-		Me.RbDecl.AutoSize = True
-		Me.RbDecl.Location = New System.Drawing.Point(6, 19)
-		Me.RbDecl.Name = "RbDecl"
-		Me.RbDecl.Size = New System.Drawing.Size(109, 17)
-		Me.RbDecl.TabIndex = 0
-		Me.RbDecl.TabStop = True
-		Me.RbDecl.Text = "Declaration Mode"
-		Me.RbDecl.UseVisualStyleBackColor = True
-		'
-		'TabPageDEV
-		'
-		Me.TabPageDEV.Controls.Add(Me.Label1)
-		Me.TabPageDEV.Controls.Add(Me.LvDEVoptions)
-		Me.TabPageDEV.Location = New System.Drawing.Point(4, 22)
-		Me.TabPageDEV.Name = "TabPageDEV"
-		Me.TabPageDEV.Padding = New System.Windows.Forms.Padding(3)
-		Me.TabPageDEV.Size = New System.Drawing.Size(1034, 302)
-		Me.TabPageDEV.TabIndex = 3
-		Me.TabPageDEV.Text = "Test"
-		Me.TabPageDEV.UseVisualStyleBackColor = True
-		'
-		'Label1
-		'
-		Me.Label1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
-		Me.Label1.AutoSize = True
-		Me.Label1.Location = New System.Drawing.Point(1012, 283)
-		Me.Label1.Name = "Label1"
-		Me.Label1.Size = New System.Drawing.Size(106, 13)
-		Me.Label1.TabIndex = 1
-		Me.Label1.Text = "(Double-Click to Edit)"
-		'
-		'LvDEVoptions
-		'
-		Me.LvDEVoptions.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
-			Or System.Windows.Forms.AnchorStyles.Left) _
-			Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
-		Me.LvDEVoptions.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader4, Me.ColumnHeader7, Me.ColumnHeader5, Me.ColumnHeader6, Me.ColumnHeader8, Me.ColumnHeader9})
-		Me.LvDEVoptions.FullRowSelect = True
-		Me.LvDEVoptions.GridLines = True
-		Me.LvDEVoptions.Location = New System.Drawing.Point(6, 6)
-		Me.LvDEVoptions.MultiSelect = False
-		Me.LvDEVoptions.Name = "LvDEVoptions"
-		Me.LvDEVoptions.Size = New System.Drawing.Size(1022, 277)
-		Me.LvDEVoptions.TabIndex = 0
-		Me.LvDEVoptions.UseCompatibleStateImageBehavior = False
-		Me.LvDEVoptions.View = System.Windows.Forms.View.Details
-		'
-		'ColumnHeader4
-		'
-		Me.ColumnHeader4.Text = "Property"
-		Me.ColumnHeader4.Width = 89
-		'
-		'ColumnHeader7
-		'
-		Me.ColumnHeader7.Text = "Description"
-		Me.ColumnHeader7.Width = 527
-		'
-		'ColumnHeader5
-		'
-		Me.ColumnHeader5.Text = "Type"
-		Me.ColumnHeader5.Width = 82
-		'
-		'ColumnHeader6
-		'
-		Me.ColumnHeader6.Text = "Value"
-		Me.ColumnHeader6.Width = 134
-		'
-		'ColumnHeader8
-		'
-		Me.ColumnHeader8.Text = "Default"
-		Me.ColumnHeader8.Width = 120
-		'
-		'ColumnHeader9
-		'
-		Me.ColumnHeader9.Text = "Saved In DEVconfig.txt"
-		Me.ColumnHeader9.Width = 129
-		'
-		'ConMenFilelist
-		'
-		Me.ConMenFilelist.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.SaveListToolStripMenuItem, Me.LoadListToolStripMenuItem, Me.LoadDefaultListToolStripMenuItem, Me.ClearListToolStripMenuItem})
-		Me.ConMenFilelist.Name = "ConMenFilelist"
-		Me.ConMenFilelist.Size = New System.Drawing.Size(176, 92)
-		'
-		'SaveListToolStripMenuItem
-		'
-		Me.SaveListToolStripMenuItem.Name = "SaveListToolStripMenuItem"
-		Me.SaveListToolStripMenuItem.Size = New System.Drawing.Size(175, 22)
-		Me.SaveListToolStripMenuItem.Text = "Save List..."
-		'
-		'LoadListToolStripMenuItem
-		'
-		Me.LoadListToolStripMenuItem.Name = "LoadListToolStripMenuItem"
-		Me.LoadListToolStripMenuItem.Size = New System.Drawing.Size(175, 22)
-		Me.LoadListToolStripMenuItem.Text = "Load List..."
-		'
-		'LoadDefaultListToolStripMenuItem
-		'
-		Me.LoadDefaultListToolStripMenuItem.Name = "LoadDefaultListToolStripMenuItem"
-		Me.LoadDefaultListToolStripMenuItem.Size = New System.Drawing.Size(175, 22)
-		Me.LoadDefaultListToolStripMenuItem.Text = "Load Autosave-List"
-		'
-		'ClearListToolStripMenuItem
-		'
-		Me.ClearListToolStripMenuItem.Name = "ClearListToolStripMenuItem"
-		Me.ClearListToolStripMenuItem.Size = New System.Drawing.Size(175, 22)
-		Me.ClearListToolStripMenuItem.Text = "Clear List"
-		'
-		'LvMsg
-		'
-		Me.LvMsg.AllowColumnReorder = True
-		Me.LvMsg.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
-		Me.LvMsg.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3})
-		Me.LvMsg.Dock = System.Windows.Forms.DockStyle.Fill
-		Me.LvMsg.Font = New System.Drawing.Font("Courier New", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
-		Me.LvMsg.FullRowSelect = True
-		Me.LvMsg.GridLines = True
-		Me.LvMsg.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable
-		Me.LvMsg.LabelWrap = False
-		Me.LvMsg.Location = New System.Drawing.Point(0, 0)
-		Me.LvMsg.Margin = New System.Windows.Forms.Padding(0)
-		Me.LvMsg.Name = "LvMsg"
-		Me.LvMsg.Size = New System.Drawing.Size(1045, 281)
-		Me.LvMsg.TabIndex = 0
-		Me.LvMsg.UseCompatibleStateImageBehavior = False
-		Me.LvMsg.View = System.Windows.Forms.View.Details
-		'
-		'ColumnHeader1
-		'
-		Me.ColumnHeader1.Text = "Message"
-		Me.ColumnHeader1.Width = 779
-		'
-		'ColumnHeader2
-		'
-		Me.ColumnHeader2.Text = "Time"
-		Me.ColumnHeader2.Width = 151
-		'
-		'ColumnHeader3
-		'
-		Me.ColumnHeader3.Text = "Source"
-		Me.ColumnHeader3.Width = 138
-		'
-		'SplitContainer1
-		'
-		Me.SplitContainer1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
-			Or System.Windows.Forms.AnchorStyles.Left) _
-			Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
-		Me.SplitContainer1.Location = New System.Drawing.Point(0, 27)
-		Me.SplitContainer1.Margin = New System.Windows.Forms.Padding(0)
-		Me.SplitContainer1.Name = "SplitContainer1"
-		Me.SplitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal
-		'
-		'SplitContainer1.Panel1
-		'
-		Me.SplitContainer1.Panel1.Controls.Add(Me.TabControl1)
-		Me.SplitContainer1.Panel1.Padding = New System.Windows.Forms.Padding(3, 3, 0, 2)
-		'
-		'SplitContainer1.Panel2
-		'
-		Me.SplitContainer1.Panel2.Controls.Add(Me.LvMsg)
-		Me.SplitContainer1.Size = New System.Drawing.Size(1045, 618)
-		Me.SplitContainer1.SplitterDistance = 333
-		Me.SplitContainer1.TabIndex = 12
-		'
-		'ToolStrip1
-		'
-		Me.ToolStrip1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None
-		Me.ToolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden
-		Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripBtNew, Me.ToolStripBtOpen, Me.ToolStripSeparator2, Me.ToolStripDrDnBtTools, Me.ToolStripDrDnBtInfo})
-		Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
-		Me.ToolStrip1.Name = "ToolStrip1"
-		Me.ToolStrip1.Size = New System.Drawing.Size(1045, 25)
-		Me.ToolStrip1.TabIndex = 11
-		Me.ToolStrip1.Text = "ToolStrip1"
-		'
-		'ToolStripBtNew
-		'
-		Me.ToolStripBtNew.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
-		Me.ToolStripBtNew.Image = Global.TUGraz.VECTO.My.Resources.Resources.blue_document_icon
-		Me.ToolStripBtNew.ImageTransparentColor = System.Drawing.Color.Magenta
-		Me.ToolStripBtNew.Name = "ToolStripBtNew"
-		Me.ToolStripBtNew.Size = New System.Drawing.Size(23, 22)
-		Me.ToolStripBtNew.Text = "ToolStripBtNew"
-		Me.ToolStripBtNew.ToolTipText = "New Job File"
-		'
-		'ToolStripBtOpen
-		'
-		Me.ToolStripBtOpen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
-		Me.ToolStripBtOpen.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon
-		Me.ToolStripBtOpen.ImageTransparentColor = System.Drawing.Color.Magenta
-		Me.ToolStripBtOpen.Name = "ToolStripBtOpen"
-		Me.ToolStripBtOpen.Size = New System.Drawing.Size(23, 22)
-		Me.ToolStripBtOpen.Text = "ToolStripButton1"
-		Me.ToolStripBtOpen.ToolTipText = "Open File..."
-		'
-		'ToolStripSeparator2
-		'
-		Me.ToolStripSeparator2.Name = "ToolStripSeparator2"
-		Me.ToolStripSeparator2.Size = New System.Drawing.Size(6, 25)
-		'
-		'ToolStripDrDnBtTools
-		'
-		Me.ToolStripDrDnBtTools.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.GENEditorToolStripMenuItem1, Me.VEHEditorToolStripMenuItem, Me.EngineEditorToolStripMenuItem, Me.GearboxEditorToolStripMenuItem, Me.GraphToolStripMenuItem, Me.ToolStripSeparator6, Me.SignOrVerifyFilesToolStripMenuItem, Me.ToolStripSeparator4, Me.OpenLogToolStripMenuItem, Me.SettingsToolStripMenuItem})
-		Me.ToolStripDrDnBtTools.Image = Global.TUGraz.VECTO.My.Resources.Resources.Misc_Tools_icon
-		Me.ToolStripDrDnBtTools.ImageTransparentColor = System.Drawing.Color.Magenta
-		Me.ToolStripDrDnBtTools.Name = "ToolStripDrDnBtTools"
-		Me.ToolStripDrDnBtTools.Size = New System.Drawing.Size(65, 22)
-		Me.ToolStripDrDnBtTools.Text = "Tools"
-		'
-		'GENEditorToolStripMenuItem1
-		'
-		Me.GENEditorToolStripMenuItem1.Image = Global.TUGraz.VECTO.My.Resources.Resources.F_VECTO
-		Me.GENEditorToolStripMenuItem1.Name = "GENEditorToolStripMenuItem1"
-		Me.GENEditorToolStripMenuItem1.Size = New System.Drawing.Size(170, 22)
-		Me.GENEditorToolStripMenuItem1.Text = "Job Editor"
-		'
-		'VEHEditorToolStripMenuItem
-		'
-		Me.VEHEditorToolStripMenuItem.Image = Global.TUGraz.VECTO.My.Resources.Resources.F_VEH
-		Me.VEHEditorToolStripMenuItem.Name = "VEHEditorToolStripMenuItem"
-		Me.VEHEditorToolStripMenuItem.Size = New System.Drawing.Size(170, 22)
-		Me.VEHEditorToolStripMenuItem.Text = "Vehicle Editor"
-		'
-		'EngineEditorToolStripMenuItem
-		'
-		Me.EngineEditorToolStripMenuItem.Image = Global.TUGraz.VECTO.My.Resources.Resources.F_ENG
-		Me.EngineEditorToolStripMenuItem.Name = "EngineEditorToolStripMenuItem"
-		Me.EngineEditorToolStripMenuItem.Size = New System.Drawing.Size(170, 22)
-		Me.EngineEditorToolStripMenuItem.Text = "Engine Editor"
-		'
-		'GearboxEditorToolStripMenuItem
-		'
-		Me.GearboxEditorToolStripMenuItem.Image = Global.TUGraz.VECTO.My.Resources.Resources.F_GBX
-		Me.GearboxEditorToolStripMenuItem.Name = "GearboxEditorToolStripMenuItem"
-		Me.GearboxEditorToolStripMenuItem.Size = New System.Drawing.Size(170, 22)
-		Me.GearboxEditorToolStripMenuItem.Text = "Gearbox Editor"
-		'
-		'GraphToolStripMenuItem
-		'
-		Me.GraphToolStripMenuItem.Image = Global.TUGraz.VECTO.My.Resources.Resources.F_Graph
-		Me.GraphToolStripMenuItem.Name = "GraphToolStripMenuItem"
-		Me.GraphToolStripMenuItem.Size = New System.Drawing.Size(170, 22)
-		Me.GraphToolStripMenuItem.Text = "Graph"
-		'
-		'ToolStripSeparator6
-		'
-		Me.ToolStripSeparator6.Name = "ToolStripSeparator6"
-		Me.ToolStripSeparator6.Size = New System.Drawing.Size(167, 6)
-		'
-		'SignOrVerifyFilesToolStripMenuItem
-		'
-		Me.SignOrVerifyFilesToolStripMenuItem.Image = Global.TUGraz.VECTO.My.Resources.Resources.Status_dialog_password_icon
-		Me.SignOrVerifyFilesToolStripMenuItem.Name = "SignOrVerifyFilesToolStripMenuItem"
-		Me.SignOrVerifyFilesToolStripMenuItem.Size = New System.Drawing.Size(170, 22)
-		Me.SignOrVerifyFilesToolStripMenuItem.Text = "Sign or Verify Files"
-		'
-		'ToolStripSeparator4
-		'
-		Me.ToolStripSeparator4.Name = "ToolStripSeparator4"
-		Me.ToolStripSeparator4.Size = New System.Drawing.Size(167, 6)
-		Me.ToolStripSeparator4.Visible = False
-		'
-		'OpenLogToolStripMenuItem
-		'
-		Me.OpenLogToolStripMenuItem.Name = "OpenLogToolStripMenuItem"
-		Me.OpenLogToolStripMenuItem.Size = New System.Drawing.Size(170, 22)
-		Me.OpenLogToolStripMenuItem.Text = "Open Log"
-		'
-		'SettingsToolStripMenuItem
-		'
-		Me.SettingsToolStripMenuItem.Name = "SettingsToolStripMenuItem"
-		Me.SettingsToolStripMenuItem.Size = New System.Drawing.Size(170, 22)
-		Me.SettingsToolStripMenuItem.Text = "Settings"
-		'
-		'ToolStripDrDnBtInfo
-		'
-		Me.ToolStripDrDnBtInfo.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.UserManualToolStripMenuItem, Me.UpdateNotesToolStripMenuItem, Me.ReportBugViaCITnetToolStripMenuItem, Me.ToolStripSeparator3, Me.CreateActivationFileToolStripMenuItem, Me.AboutVECTOToolStripMenuItem1})
-		Me.ToolStripDrDnBtInfo.Image = Global.TUGraz.VECTO.My.Resources.Resources.Help_icon
-		Me.ToolStripDrDnBtInfo.ImageTransparentColor = System.Drawing.Color.Magenta
-		Me.ToolStripDrDnBtInfo.Name = "ToolStripDrDnBtInfo"
-		Me.ToolStripDrDnBtInfo.Size = New System.Drawing.Size(61, 22)
-		Me.ToolStripDrDnBtInfo.Text = "Help"
-		'
-		'UserManualToolStripMenuItem
-		'
-		Me.UserManualToolStripMenuItem.Name = "UserManualToolStripMenuItem"
-		Me.UserManualToolStripMenuItem.Size = New System.Drawing.Size(222, 22)
-		Me.UserManualToolStripMenuItem.Text = "User Manual"
-		'
-		'UpdateNotesToolStripMenuItem
-		'
-		Me.UpdateNotesToolStripMenuItem.Name = "UpdateNotesToolStripMenuItem"
-		Me.UpdateNotesToolStripMenuItem.Size = New System.Drawing.Size(222, 22)
-		Me.UpdateNotesToolStripMenuItem.Text = "Release Notes"
-		'
-		'ReportBugViaCITnetToolStripMenuItem
-		'
-		Me.ReportBugViaCITnetToolStripMenuItem.Name = "ReportBugViaCITnetToolStripMenuItem"
-		Me.ReportBugViaCITnetToolStripMenuItem.Size = New System.Drawing.Size(222, 22)
-		Me.ReportBugViaCITnetToolStripMenuItem.Text = "Report Bug via CITnet / JIRA"
-		'
-		'ToolStripSeparator3
-		'
-		Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
-		Me.ToolStripSeparator3.Size = New System.Drawing.Size(219, 6)
-		'
-		'CreateActivationFileToolStripMenuItem
-		'
-		Me.CreateActivationFileToolStripMenuItem.Name = "CreateActivationFileToolStripMenuItem"
-		Me.CreateActivationFileToolStripMenuItem.Size = New System.Drawing.Size(222, 22)
-		Me.CreateActivationFileToolStripMenuItem.Text = "Create Activation File"
-		'
-		'AboutVECTOToolStripMenuItem1
-		'
-		Me.AboutVECTOToolStripMenuItem1.Name = "AboutVECTOToolStripMenuItem1"
-		Me.AboutVECTOToolStripMenuItem1.Size = New System.Drawing.Size(222, 22)
-		Me.AboutVECTOToolStripMenuItem1.Text = "About VECTO"
-		'
-		'CmDEV
-		'
-		Me.CmDEV.Name = "CmDEV"
-		Me.CmDEV.Size = New System.Drawing.Size(61, 4)
-		'
-		'TmProgSec
-		'
-		Me.TmProgSec.Interval = 1000
-		'
-		'CmOpenFile
-		'
-		Me.CmOpenFile.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.OpenWithToolStripMenuItem, Me.OpenInGraphWindowToolStripMenuItem, Me.ShowInFolderToolStripMenuItem})
-		Me.CmOpenFile.Name = "CmOpenFile"
-		Me.CmOpenFile.Size = New System.Drawing.Size(199, 70)
-		'
-		'OpenWithToolStripMenuItem
-		'
-		Me.OpenWithToolStripMenuItem.Name = "OpenWithToolStripMenuItem"
-		Me.OpenWithToolStripMenuItem.Size = New System.Drawing.Size(198, 22)
-		Me.OpenWithToolStripMenuItem.Text = "Open with ..."
-		'
-		'OpenInGraphWindowToolStripMenuItem
-		'
-		Me.OpenInGraphWindowToolStripMenuItem.Name = "OpenInGraphWindowToolStripMenuItem"
-		Me.OpenInGraphWindowToolStripMenuItem.Size = New System.Drawing.Size(198, 22)
-		Me.OpenInGraphWindowToolStripMenuItem.Text = "Open in Graph Window"
-		'
-		'ShowInFolderToolStripMenuItem
-		'
-		Me.ShowInFolderToolStripMenuItem.Name = "ShowInFolderToolStripMenuItem"
-		Me.ShowInFolderToolStripMenuItem.Size = New System.Drawing.Size(198, 22)
-		Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder"
-		'
-		'F_MAINForm
-		'
-		Me.AcceptButton = Me.btStartV3
-		Me.ClientSize = New System.Drawing.Size(1045, 670)
-		Me.Controls.Add(Me.ToolStrip1)
-		Me.Controls.Add(Me.SplitContainer1)
-		Me.Controls.Add(Me.StatusBAR)
-		Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
-		Me.MinimumSize = New System.Drawing.Size(785, 485)
-		Me.Name = "F_MAINForm"
-		Me.Text = "VECTO"
-		Me.StatusBAR.ResumeLayout(False)
-		Me.StatusBAR.PerformLayout()
-		Me.TabControl1.ResumeLayout(False)
-		Me.TabPageGEN.ResumeLayout(False)
-		Me.TabPageGEN.PerformLayout()
-		CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
-		Me.TabPgOptions.ResumeLayout(False)
-		Me.PanelOptAllg.ResumeLayout(False)
-		Me.GroupBox2.ResumeLayout(False)
-		Me.GroupBox2.PerformLayout()
-		Me.GroupBox1.ResumeLayout(False)
-		Me.GroupBox1.PerformLayout()
-		Me.TabPageDEV.ResumeLayout(False)
-		Me.TabPageDEV.PerformLayout()
-		Me.ConMenFilelist.ResumeLayout(False)
-		Me.SplitContainer1.Panel1.ResumeLayout(False)
-		Me.SplitContainer1.Panel2.ResumeLayout(False)
-		CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit()
-		Me.SplitContainer1.ResumeLayout(False)
-		Me.ToolStrip1.ResumeLayout(False)
-		Me.ToolStrip1.PerformLayout()
-		Me.CmOpenFile.ResumeLayout(False)
-		Me.ResumeLayout(False)
-		Me.PerformLayout()
-
-	End Sub
-	Friend WithEvents StatusBAR As StatusStrip
-	Friend WithEvents ToolStripLbStatus As ToolStripStatusLabel
-	Friend WithEvents TabControl1 As TabControl
-	Friend WithEvents TabPageGEN As TabPage
-	Friend WithEvents ButtonGENadd As Button
-	Friend WithEvents ButtonGENremove As Button
-	Friend WithEvents ConMenFilelist As ContextMenuStrip
-	Friend WithEvents SaveListToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents LoadListToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents LoadDefaultListToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents ClearListToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents BackgroundWorker1 As BackgroundWorker
-	Friend WithEvents ToolStripProgBarOverall As ToolStripProgressBar
-	Friend WithEvents LvGEN As ListView
-	Friend WithEvents ColGENpath As ColumnHeader
-	Friend WithEvents ColGENstatus As ColumnHeader
-	Friend WithEvents ChBoxAllGEN As CheckBox
-	Friend WithEvents TabPgOptions As TabPage
-	Friend WithEvents ChBoxModOut As CheckBox
-	Friend WithEvents PanelOptAllg As Panel
-	Friend WithEvents LbAutoShDown As Label
-	Friend WithEvents LvMsg As ListView
-	Friend WithEvents ColumnHeader1 As ColumnHeader
-	Friend WithEvents SplitContainer1 As SplitContainer
-	Friend WithEvents ColumnHeader2 As ColumnHeader
-	Friend WithEvents ColumnHeader3 As ColumnHeader
-	Friend WithEvents TabPageDEV As TabPage
-	Friend WithEvents LvDEVoptions As ListView
-	Friend WithEvents ColumnHeader4 As ColumnHeader
-	Friend WithEvents ColumnHeader5 As ColumnHeader
-	Friend WithEvents ColumnHeader6 As ColumnHeader
-	Friend WithEvents CmDEV As ContextMenuStrip
-	Friend WithEvents ColumnHeader7 As ColumnHeader
-	Friend WithEvents BtGENup As Button
-	Friend WithEvents BtGENdown As Button
-	Friend WithEvents ToolStrip1 As ToolStrip
-	Friend WithEvents ToolStripBtNew As ToolStripButton
-	Friend WithEvents ToolStripBtOpen As ToolStripButton
-	Friend WithEvents ToolStripDrDnBtTools As ToolStripDropDownButton
-	Friend WithEvents GENEditorToolStripMenuItem1 As ToolStripMenuItem
-	Friend WithEvents VEHEditorToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents ToolStripSeparator4 As ToolStripSeparator
-	Friend WithEvents OpenLogToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents SettingsToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents ToolStripDrDnBtInfo As ToolStripDropDownButton
-	Friend WithEvents CreateActivationFileToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents AboutVECTOToolStripMenuItem1 As ToolStripMenuItem
-	Friend WithEvents ToolStripSeparator2 As ToolStripSeparator
-	Friend WithEvents ToolStripProgBarJob As ToolStripProgressBar
-	Friend WithEvents TmProgSec As Timer
-	Friend WithEvents PictureBox1 As PictureBox
-	Friend WithEvents EngineEditorToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents GearboxEditorToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents UserManualToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
-	Friend WithEvents CmOpenFile As ContextMenuStrip
-	Friend WithEvents OpenWithToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents ShowInFolderToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents ColumnHeader8 As ColumnHeader
-	Friend WithEvents ColumnHeader9 As ColumnHeader
-	Friend WithEvents UpdateNotesToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents SignOrVerifyFilesToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents ToolStripSeparator6 As ToolStripSeparator
-	Friend WithEvents LbDecl As Label
-	Friend WithEvents GraphToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents OpenInGraphWindowToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents RbDev As RadioButton
-	Friend WithEvents RbDecl As RadioButton
-	Friend WithEvents GroupBox1 As GroupBox
-	Friend WithEvents Label1 As Label
-	Friend WithEvents ReportBugViaCITnetToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents btStartV3 As Button
-	Friend WithEvents ChBoxMod1Hz As CheckBox
-	Friend WithEvents Label6 As Label
-	Friend WithEvents ToolTip1 As ToolTip
-	Friend WithEvents NewToolStripButton As ToolStripButton
-	Friend WithEvents OpenToolStripButton As ToolStripButton
-	Friend WithEvents SaveToolStripButton As ToolStripButton
-	Friend WithEvents PrintToolStripButton As ToolStripButton
-	Friend WithEvents toolStripSeparator As ToolStripSeparator
-	Friend WithEvents CutToolStripButton As ToolStripButton
-	Friend WithEvents CopyToolStripButton As ToolStripButton
-	Friend WithEvents PasteToolStripButton As ToolStripButton
-	Friend WithEvents toolStripSeparator1 As ToolStripSeparator
-	Friend WithEvents HelpToolStripButton As ToolStripButton
-	Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox
-
-End Class
+' Copyright 2014 European Union.
+' Licensed under the EUPL (the 'Licence');
+'
+' * You may not use this work except in compliance with the Licence.
+' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
+' * Unless required by applicable law or agreed to in writing,
+'   software distributed under the Licence is distributed on an "AS IS" basis,
+'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+'
+' See the LICENSE.txt for the specific language governing permissions and limitations.
+Imports System.ComponentModel
+Imports Microsoft.VisualBasic.CompilerServices
+
+<DesignerGenerated()> _
+Partial Class MainForm
+	Inherits Form
+
+	'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
+	<DebuggerNonUserCode()> _
+	Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+		Try
+			If disposing AndAlso components IsNot Nothing Then
+				components.Dispose()
+			End If
+		Finally
+			MyBase.Dispose(disposing)
+		End Try
+	End Sub
+
+	'Wird vom Windows Form-Designer benötigt.
+	Private components As IContainer
+
+	'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
+	'Das Bearbeiten ist mit dem Windows Form-Designer möglich.  
+	'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
+	<DebuggerStepThrough()> _
+	Private Sub InitializeComponent()
+		Me.components = New System.ComponentModel.Container()
+		Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(MainForm))
+		Me.StatusBAR = New System.Windows.Forms.StatusStrip()
+		Me.ToolStripLbStatus = New System.Windows.Forms.ToolStripStatusLabel()
+		Me.ToolStripProgBarJob = New System.Windows.Forms.ToolStripProgressBar()
+		Me.ToolStripProgBarOverall = New System.Windows.Forms.ToolStripProgressBar()
+		Me.TabControl1 = New System.Windows.Forms.TabControl()
+		Me.TabPageGEN = New System.Windows.Forms.TabPage()
+		Me.Label6 = New System.Windows.Forms.Label()
+		Me.btStartV3 = New System.Windows.Forms.Button()
+		Me.LbDecl = New System.Windows.Forms.Label()
+		Me.PictureBox1 = New System.Windows.Forms.PictureBox()
+		Me.BtGENdown = New System.Windows.Forms.Button()
+		Me.BtGENup = New System.Windows.Forms.Button()
+		Me.LbAutoShDown = New System.Windows.Forms.Label()
+		Me.ChBoxAllGEN = New System.Windows.Forms.CheckBox()
+		Me.LvGEN = New System.Windows.Forms.ListView()
+		Me.ColGENpath = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
+		Me.ColGENstatus = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
+		Me.ButtonGENremove = New System.Windows.Forms.Button()
+		Me.ButtonGENadd = New System.Windows.Forms.Button()
+		Me.TabPgOptions = New System.Windows.Forms.TabPage()
+		Me.PanelOptAllg = New System.Windows.Forms.Panel()
+		Me.GroupBox2 = New System.Windows.Forms.GroupBox()
+		Me.ChBoxModOut = New System.Windows.Forms.CheckBox()
+		Me.ChBoxMod1Hz = New System.Windows.Forms.CheckBox()
+		Me.GroupBox1 = New System.Windows.Forms.GroupBox()
+		Me.RbDev = New System.Windows.Forms.RadioButton()
+		Me.RbDecl = New System.Windows.Forms.RadioButton()
+		Me.TabPageDEV = New System.Windows.Forms.TabPage()
+		Me.Label1 = New System.Windows.Forms.Label()
+		Me.LvDEVoptions = New System.Windows.Forms.ListView()
+		Me.ColumnHeader4 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
+		Me.ColumnHeader7 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
+		Me.ColumnHeader5 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
+		Me.ColumnHeader6 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
+		Me.ColumnHeader8 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
+		Me.ColumnHeader9 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
+		Me.ConMenFilelist = New System.Windows.Forms.ContextMenuStrip(Me.components)
+		Me.SaveListToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
+		Me.LoadListToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
+		Me.LoadDefaultListToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
+		Me.ClearListToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
+		Me.BackgroundWorker1 = New System.ComponentModel.BackgroundWorker()
+		Me.LvMsg = New System.Windows.Forms.ListView()
+		Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
+		Me.ColumnHeader2 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
+		Me.ColumnHeader3 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
+		Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
+		Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
+		Me.ToolStripBtNew = New System.Windows.Forms.ToolStripButton()
+		Me.ToolStripBtOpen = New System.Windows.Forms.ToolStripButton()
+		Me.ToolStripSeparator2 = New System.Windows.Forms.ToolStripSeparator()
+		Me.ToolStripDrDnBtTools = New System.Windows.Forms.ToolStripDropDownButton()
+		Me.GENEditorToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem()
+		Me.VEHEditorToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
+		Me.EngineEditorToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
+		Me.GearboxEditorToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
+		Me.GraphToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
+		Me.ToolStripSeparator6 = New System.Windows.Forms.ToolStripSeparator()
+		Me.SignOrVerifyFilesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
+		Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator()
+		Me.OpenLogToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
+		Me.SettingsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
+		Me.ToolStripDrDnBtInfo = New System.Windows.Forms.ToolStripDropDownButton()
+		Me.UserManualToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
+		Me.UpdateNotesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
+		Me.ReportBugViaCITnetToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
+		Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator()
+		Me.CreateActivationFileToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
+		Me.AboutVECTOToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem()
+		Me.CmDEV = New System.Windows.Forms.ContextMenuStrip(Me.components)
+		Me.TmProgSec = New System.Windows.Forms.Timer(Me.components)
+		Me.CmOpenFile = New System.Windows.Forms.ContextMenuStrip(Me.components)
+		Me.OpenWithToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
+		Me.OpenInGraphWindowToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
+		Me.ShowInFolderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
+		Me.ToolTip1 = New System.Windows.Forms.ToolTip(Me.components)
+		Me.StatusBAR.SuspendLayout()
+		Me.TabControl1.SuspendLayout()
+		Me.TabPageGEN.SuspendLayout()
+		CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
+		Me.TabPgOptions.SuspendLayout()
+		Me.PanelOptAllg.SuspendLayout()
+		Me.GroupBox2.SuspendLayout()
+		Me.GroupBox1.SuspendLayout()
+		Me.TabPageDEV.SuspendLayout()
+		Me.ConMenFilelist.SuspendLayout()
+		CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit()
+		Me.SplitContainer1.Panel1.SuspendLayout()
+		Me.SplitContainer1.Panel2.SuspendLayout()
+		Me.SplitContainer1.SuspendLayout()
+		Me.ToolStrip1.SuspendLayout()
+		Me.CmOpenFile.SuspendLayout()
+		Me.SuspendLayout()
+		'
+		'StatusBAR
+		'
+		Me.StatusBAR.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripLbStatus, Me.ToolStripProgBarJob, Me.ToolStripProgBarOverall})
+		Me.StatusBAR.Location = New System.Drawing.Point(0, 648)
+		Me.StatusBAR.Name = "StatusBAR"
+		Me.StatusBAR.Size = New System.Drawing.Size(1045, 22)
+		Me.StatusBAR.TabIndex = 7
+		Me.StatusBAR.Text = "StatusBAR"
+		'
+		'ToolStripLbStatus
+		'
+		Me.ToolStripLbStatus.Name = "ToolStripLbStatus"
+		Me.ToolStripLbStatus.Size = New System.Drawing.Size(1030, 17)
+		Me.ToolStripLbStatus.Spring = True
+		Me.ToolStripLbStatus.Text = "Status Text"
+		Me.ToolStripLbStatus.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
+		'
+		'ToolStripProgBarJob
+		'
+		Me.ToolStripProgBarJob.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right
+		Me.ToolStripProgBarJob.AutoSize = False
+		Me.ToolStripProgBarJob.Name = "ToolStripProgBarJob"
+		Me.ToolStripProgBarJob.Size = New System.Drawing.Size(100, 16)
+		Me.ToolStripProgBarJob.Style = System.Windows.Forms.ProgressBarStyle.Continuous
+		Me.ToolStripProgBarJob.ToolTipText = "overall progress"
+		Me.ToolStripProgBarJob.Visible = False
+		'
+		'ToolStripProgBarOverall
+		'
+		Me.ToolStripProgBarOverall.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right
+		Me.ToolStripProgBarOverall.AutoSize = False
+		Me.ToolStripProgBarOverall.Name = "ToolStripProgBarOverall"
+		Me.ToolStripProgBarOverall.Size = New System.Drawing.Size(100, 16)
+		Me.ToolStripProgBarOverall.Style = System.Windows.Forms.ProgressBarStyle.Continuous
+		Me.ToolStripProgBarOverall.ToolTipText = "job progress"
+		Me.ToolStripProgBarOverall.Visible = False
+		'
+		'TabControl1
+		'
+		Me.TabControl1.Controls.Add(Me.TabPageGEN)
+		Me.TabControl1.Controls.Add(Me.TabPgOptions)
+		Me.TabControl1.Controls.Add(Me.TabPageDEV)
+		Me.TabControl1.Dock = System.Windows.Forms.DockStyle.Fill
+		Me.TabControl1.Location = New System.Drawing.Point(3, 3)
+		Me.TabControl1.Margin = New System.Windows.Forms.Padding(0)
+		Me.TabControl1.Name = "TabControl1"
+		Me.TabControl1.Padding = New System.Drawing.Point(0, 0)
+		Me.TabControl1.SelectedIndex = 0
+		Me.TabControl1.Size = New System.Drawing.Size(1042, 328)
+		Me.TabControl1.TabIndex = 10
+		'
+		'TabPageGEN
+		'
+		Me.TabPageGEN.Controls.Add(Me.Label6)
+		Me.TabPageGEN.Controls.Add(Me.btStartV3)
+		Me.TabPageGEN.Controls.Add(Me.LbDecl)
+		Me.TabPageGEN.Controls.Add(Me.PictureBox1)
+		Me.TabPageGEN.Controls.Add(Me.BtGENdown)
+		Me.TabPageGEN.Controls.Add(Me.BtGENup)
+		Me.TabPageGEN.Controls.Add(Me.LbAutoShDown)
+		Me.TabPageGEN.Controls.Add(Me.ChBoxAllGEN)
+		Me.TabPageGEN.Controls.Add(Me.LvGEN)
+		Me.TabPageGEN.Controls.Add(Me.ButtonGENremove)
+		Me.TabPageGEN.Controls.Add(Me.ButtonGENadd)
+		Me.TabPageGEN.Location = New System.Drawing.Point(4, 22)
+		Me.TabPageGEN.Margin = New System.Windows.Forms.Padding(0)
+		Me.TabPageGEN.Name = "TabPageGEN"
+		Me.TabPageGEN.Size = New System.Drawing.Size(1034, 302)
+		Me.TabPageGEN.TabIndex = 0
+		Me.TabPageGEN.Text = "Job Files"
+		Me.TabPageGEN.UseVisualStyleBackColor = True
+		'
+		'Label6
+		'
+		Me.Label6.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+		Me.Label6.AutoSize = True
+		Me.Label6.Location = New System.Drawing.Point(814, 268)
+		Me.Label6.Name = "Label6"
+		Me.Label6.Size = New System.Drawing.Size(217, 13)
+		Me.Label6.TabIndex = 21
+		Me.Label6.Text = "(Double-Click to Edit, Right-Click for Options)"
+		'
+		'btStartV3
+		'
+		Me.btStartV3.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+		Me.btStartV3.Image = Global.TUGraz.VECTO.My.Resources.Resources.Play_icon
+		Me.btStartV3.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
+		Me.btStartV3.Location = New System.Drawing.Point(3, 56)
+		Me.btStartV3.Name = "btStartV3"
+		Me.btStartV3.Size = New System.Drawing.Size(108, 50)
+		Me.btStartV3.TabIndex = 20
+		Me.btStartV3.Text = "START"
+		Me.btStartV3.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText
+		Me.ToolTip1.SetToolTip(Me.btStartV3, "Start Simulation")
+		Me.btStartV3.UseVisualStyleBackColor = True
+		'
+		'LbDecl
+		'
+		Me.LbDecl.AutoSize = True
+		Me.LbDecl.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+		Me.LbDecl.Location = New System.Drawing.Point(5, 109)
+		Me.LbDecl.Name = "LbDecl"
+		Me.LbDecl.Size = New System.Drawing.Size(107, 13)
+		Me.LbDecl.TabIndex = 19
+		Me.LbDecl.Text = "Declaration Mode"
+		Me.LbDecl.Visible = False
+		'
+		'PictureBox1
+		'
+		Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image)
+		Me.PictureBox1.Location = New System.Drawing.Point(3, 3)
+		Me.PictureBox1.Name = "PictureBox1"
+		Me.PictureBox1.Size = New System.Drawing.Size(108, 47)
+		Me.PictureBox1.TabIndex = 18
+		Me.PictureBox1.TabStop = False
+		'
+		'BtGENdown
+		'
+		Me.BtGENdown.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
+		Me.BtGENdown.Image = Global.TUGraz.VECTO.My.Resources.Resources.Actions_arrow_down_icon
+		Me.BtGENdown.Location = New System.Drawing.Point(307, 267)
+		Me.BtGENdown.Name = "BtGENdown"
+		Me.BtGENdown.Size = New System.Drawing.Size(30, 30)
+		Me.BtGENdown.TabIndex = 6
+		Me.ToolTip1.SetToolTip(Me.BtGENdown, "Move job down one row")
+		Me.BtGENdown.UseVisualStyleBackColor = True
+		'
+		'BtGENup
+		'
+		Me.BtGENup.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
+		Me.BtGENup.Image = Global.TUGraz.VECTO.My.Resources.Resources.Actions_arrow_up_icon
+		Me.BtGENup.Location = New System.Drawing.Point(276, 267)
+		Me.BtGENup.Name = "BtGENup"
+		Me.BtGENup.Size = New System.Drawing.Size(30, 30)
+		Me.BtGENup.TabIndex = 4
+		Me.ToolTip1.SetToolTip(Me.BtGENup, "Move job up one row")
+		Me.BtGENup.UseVisualStyleBackColor = True
+		'
+		'LbAutoShDown
+		'
+		Me.LbAutoShDown.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
+		Me.LbAutoShDown.AutoSize = True
+		Me.LbAutoShDown.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+		Me.LbAutoShDown.ForeColor = System.Drawing.Color.Red
+		Me.LbAutoShDown.Location = New System.Drawing.Point(408, 275)
+		Me.LbAutoShDown.Name = "LbAutoShDown"
+		Me.LbAutoShDown.Size = New System.Drawing.Size(225, 13)
+		Me.LbAutoShDown.TabIndex = 17
+		Me.LbAutoShDown.Text = "!!! Automatic Shutdown is activated !!!"
+		Me.LbAutoShDown.Visible = False
+		'
+		'ChBoxAllGEN
+		'
+		Me.ChBoxAllGEN.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
+		Me.ChBoxAllGEN.AutoSize = True
+		Me.ChBoxAllGEN.Location = New System.Drawing.Point(195, 274)
+		Me.ChBoxAllGEN.Name = "ChBoxAllGEN"
+		Me.ChBoxAllGEN.Size = New System.Drawing.Size(70, 17)
+		Me.ChBoxAllGEN.TabIndex = 16
+		Me.ChBoxAllGEN.Text = "Select All"
+		Me.ToolTip1.SetToolTip(Me.ChBoxAllGEN, "Select All / None")
+		Me.ChBoxAllGEN.UseVisualStyleBackColor = True
+		'
+		'LvGEN
+		'
+		Me.LvGEN.AllowDrop = True
+		Me.LvGEN.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+			Or System.Windows.Forms.AnchorStyles.Left) _
+			Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+		Me.LvGEN.CheckBoxes = True
+		Me.LvGEN.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColGENpath, Me.ColGENstatus})
+		Me.LvGEN.FullRowSelect = True
+		Me.LvGEN.GridLines = True
+		Me.LvGEN.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable
+		Me.LvGEN.HideSelection = False
+		Me.LvGEN.LabelEdit = True
+		Me.LvGEN.Location = New System.Drawing.Point(114, 3)
+		Me.LvGEN.Name = "LvGEN"
+		Me.LvGEN.Size = New System.Drawing.Size(917, 263)
+		Me.LvGEN.TabIndex = 14
+		Me.LvGEN.UseCompatibleStateImageBehavior = False
+		Me.LvGEN.View = System.Windows.Forms.View.Details
+		'
+		'ColGENpath
+		'
+		Me.ColGENpath.Text = "Filepath"
+		Me.ColGENpath.Width = 797
+		'
+		'ColGENstatus
+		'
+		Me.ColGENstatus.Text = ""
+		Me.ColGENstatus.Width = 175
+		'
+		'ButtonGENremove
+		'
+		Me.ButtonGENremove.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
+		Me.ButtonGENremove.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+		Me.ButtonGENremove.Image = Global.TUGraz.VECTO.My.Resources.Resources.minus_circle_icon
+		Me.ButtonGENremove.Location = New System.Drawing.Point(147, 267)
+		Me.ButtonGENremove.Name = "ButtonGENremove"
+		Me.ButtonGENremove.Size = New System.Drawing.Size(33, 30)
+		Me.ButtonGENremove.TabIndex = 2
+		Me.ToolTip1.SetToolTip(Me.ButtonGENremove, "Remove selected entries")
+		Me.ButtonGENremove.UseVisualStyleBackColor = True
+		'
+		'ButtonGENadd
+		'
+		Me.ButtonGENadd.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
+		Me.ButtonGENadd.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+		Me.ButtonGENadd.Image = Global.TUGraz.VECTO.My.Resources.Resources.plus_circle_icon
+		Me.ButtonGENadd.Location = New System.Drawing.Point(113, 267)
+		Me.ButtonGENadd.Name = "ButtonGENadd"
+		Me.ButtonGENadd.Size = New System.Drawing.Size(33, 30)
+		Me.ButtonGENadd.TabIndex = 1
+		Me.ToolTip1.SetToolTip(Me.ButtonGENadd, "Add Job File")
+		Me.ButtonGENadd.UseVisualStyleBackColor = True
+		'
+		'TabPgOptions
+		'
+		Me.TabPgOptions.Controls.Add(Me.PanelOptAllg)
+		Me.TabPgOptions.Location = New System.Drawing.Point(4, 22)
+		Me.TabPgOptions.Name = "TabPgOptions"
+		Me.TabPgOptions.Padding = New System.Windows.Forms.Padding(3)
+		Me.TabPgOptions.Size = New System.Drawing.Size(1034, 302)
+		Me.TabPgOptions.TabIndex = 2
+		Me.TabPgOptions.Text = "Options"
+		Me.TabPgOptions.UseVisualStyleBackColor = True
+		'
+		'PanelOptAllg
+		'
+		Me.PanelOptAllg.Controls.Add(Me.GroupBox2)
+		Me.PanelOptAllg.Controls.Add(Me.GroupBox1)
+		Me.PanelOptAllg.Location = New System.Drawing.Point(6, 6)
+		Me.PanelOptAllg.Name = "PanelOptAllg"
+		Me.PanelOptAllg.Size = New System.Drawing.Size(1022, 290)
+		Me.PanelOptAllg.TabIndex = 0
+		'
+		'GroupBox2
+		'
+		Me.GroupBox2.Controls.Add(Me.ChBoxModOut)
+		Me.GroupBox2.Controls.Add(Me.ChBoxMod1Hz)
+		Me.GroupBox2.Location = New System.Drawing.Point(9, 81)
+		Me.GroupBox2.Name = "GroupBox2"
+		Me.GroupBox2.Size = New System.Drawing.Size(167, 89)
+		Me.GroupBox2.TabIndex = 16
+		Me.GroupBox2.TabStop = False
+		Me.GroupBox2.Text = "Mode"
+		'
+		'ChBoxModOut
+		'
+		Me.ChBoxModOut.AutoSize = True
+		Me.ChBoxModOut.Checked = True
+		Me.ChBoxModOut.CheckState = System.Windows.Forms.CheckState.Checked
+		Me.ChBoxModOut.Location = New System.Drawing.Point(6, 19)
+		Me.ChBoxModOut.Name = "ChBoxModOut"
+		Me.ChBoxModOut.Size = New System.Drawing.Size(115, 17)
+		Me.ChBoxModOut.TabIndex = 0
+		Me.ChBoxModOut.Text = "Write modal results"
+		Me.ChBoxModOut.UseVisualStyleBackColor = True
+		'
+		'ChBoxMod1Hz
+		'
+		Me.ChBoxMod1Hz.AutoSize = True
+		Me.ChBoxMod1Hz.Location = New System.Drawing.Point(6, 42)
+		Me.ChBoxMod1Hz.Name = "ChBoxMod1Hz"
+		Me.ChBoxMod1Hz.Size = New System.Drawing.Size(121, 17)
+		Me.ChBoxMod1Hz.TabIndex = 16
+		Me.ChBoxMod1Hz.Text = "Modal results in 1Hz"
+		Me.ChBoxMod1Hz.UseVisualStyleBackColor = True
+		'
+		'GroupBox1
+		'
+		Me.GroupBox1.Controls.Add(Me.RbDev)
+		Me.GroupBox1.Controls.Add(Me.RbDecl)
+		Me.GroupBox1.Location = New System.Drawing.Point(3, 3)
+		Me.GroupBox1.Name = "GroupBox1"
+		Me.GroupBox1.Size = New System.Drawing.Size(173, 72)
+		Me.GroupBox1.TabIndex = 15
+		Me.GroupBox1.TabStop = False
+		Me.GroupBox1.Text = "Mode"
+		'
+		'RbDev
+		'
+		Me.RbDev.AutoSize = True
+		Me.RbDev.Checked = True
+		Me.RbDev.Location = New System.Drawing.Point(6, 42)
+		Me.RbDev.Name = "RbDev"
+		Me.RbDev.Size = New System.Drawing.Size(111, 17)
+		Me.RbDev.TabIndex = 1
+		Me.RbDev.TabStop = True
+		Me.RbDev.Text = "Engineering Mode"
+		Me.RbDev.UseVisualStyleBackColor = True
+		'
+		'RbDecl
+		'
+		Me.RbDecl.AutoSize = True
+		Me.RbDecl.Location = New System.Drawing.Point(6, 19)
+		Me.RbDecl.Name = "RbDecl"
+		Me.RbDecl.Size = New System.Drawing.Size(109, 17)
+		Me.RbDecl.TabIndex = 0
+		Me.RbDecl.TabStop = True
+		Me.RbDecl.Text = "Declaration Mode"
+		Me.RbDecl.UseVisualStyleBackColor = True
+		'
+		'TabPageDEV
+		'
+		Me.TabPageDEV.Controls.Add(Me.Label1)
+		Me.TabPageDEV.Controls.Add(Me.LvDEVoptions)
+		Me.TabPageDEV.Location = New System.Drawing.Point(4, 22)
+		Me.TabPageDEV.Name = "TabPageDEV"
+		Me.TabPageDEV.Padding = New System.Windows.Forms.Padding(3)
+		Me.TabPageDEV.Size = New System.Drawing.Size(1034, 302)
+		Me.TabPageDEV.TabIndex = 3
+		Me.TabPageDEV.Text = "Test"
+		Me.TabPageDEV.UseVisualStyleBackColor = True
+		'
+		'Label1
+		'
+		Me.Label1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
+		Me.Label1.AutoSize = True
+		Me.Label1.Location = New System.Drawing.Point(1012, 283)
+		Me.Label1.Name = "Label1"
+		Me.Label1.Size = New System.Drawing.Size(106, 13)
+		Me.Label1.TabIndex = 1
+		Me.Label1.Text = "(Double-Click to Edit)"
+		'
+		'LvDEVoptions
+		'
+		Me.LvDEVoptions.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+			Or System.Windows.Forms.AnchorStyles.Left) _
+			Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+		Me.LvDEVoptions.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader4, Me.ColumnHeader7, Me.ColumnHeader5, Me.ColumnHeader6, Me.ColumnHeader8, Me.ColumnHeader9})
+		Me.LvDEVoptions.FullRowSelect = True
+		Me.LvDEVoptions.GridLines = True
+		Me.LvDEVoptions.Location = New System.Drawing.Point(6, 6)
+		Me.LvDEVoptions.MultiSelect = False
+		Me.LvDEVoptions.Name = "LvDEVoptions"
+		Me.LvDEVoptions.Size = New System.Drawing.Size(1022, 277)
+		Me.LvDEVoptions.TabIndex = 0
+		Me.LvDEVoptions.UseCompatibleStateImageBehavior = False
+		Me.LvDEVoptions.View = System.Windows.Forms.View.Details
+		'
+		'ColumnHeader4
+		'
+		Me.ColumnHeader4.Text = "Property"
+		Me.ColumnHeader4.Width = 89
+		'
+		'ColumnHeader7
+		'
+		Me.ColumnHeader7.Text = "Description"
+		Me.ColumnHeader7.Width = 527
+		'
+		'ColumnHeader5
+		'
+		Me.ColumnHeader5.Text = "Type"
+		Me.ColumnHeader5.Width = 82
+		'
+		'ColumnHeader6
+		'
+		Me.ColumnHeader6.Text = "Value"
+		Me.ColumnHeader6.Width = 134
+		'
+		'ColumnHeader8
+		'
+		Me.ColumnHeader8.Text = "Default"
+		Me.ColumnHeader8.Width = 120
+		'
+		'ColumnHeader9
+		'
+		Me.ColumnHeader9.Text = "Saved In DEVconfig.txt"
+		Me.ColumnHeader9.Width = 129
+		'
+		'ConMenFilelist
+		'
+		Me.ConMenFilelist.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.SaveListToolStripMenuItem, Me.LoadListToolStripMenuItem, Me.LoadDefaultListToolStripMenuItem, Me.ClearListToolStripMenuItem})
+		Me.ConMenFilelist.Name = "ConMenFilelist"
+		Me.ConMenFilelist.Size = New System.Drawing.Size(176, 92)
+		'
+		'SaveListToolStripMenuItem
+		'
+		Me.SaveListToolStripMenuItem.Name = "SaveListToolStripMenuItem"
+		Me.SaveListToolStripMenuItem.Size = New System.Drawing.Size(175, 22)
+		Me.SaveListToolStripMenuItem.Text = "Save List..."
+		'
+		'LoadListToolStripMenuItem
+		'
+		Me.LoadListToolStripMenuItem.Name = "LoadListToolStripMenuItem"
+		Me.LoadListToolStripMenuItem.Size = New System.Drawing.Size(175, 22)
+		Me.LoadListToolStripMenuItem.Text = "Load List..."
+		'
+		'LoadDefaultListToolStripMenuItem
+		'
+		Me.LoadDefaultListToolStripMenuItem.Name = "LoadDefaultListToolStripMenuItem"
+		Me.LoadDefaultListToolStripMenuItem.Size = New System.Drawing.Size(175, 22)
+		Me.LoadDefaultListToolStripMenuItem.Text = "Load Autosave-List"
+		'
+		'ClearListToolStripMenuItem
+		'
+		Me.ClearListToolStripMenuItem.Name = "ClearListToolStripMenuItem"
+		Me.ClearListToolStripMenuItem.Size = New System.Drawing.Size(175, 22)
+		Me.ClearListToolStripMenuItem.Text = "Clear List"
+		'
+		'LvMsg
+		'
+		Me.LvMsg.AllowColumnReorder = True
+		Me.LvMsg.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
+		Me.LvMsg.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3})
+		Me.LvMsg.Dock = System.Windows.Forms.DockStyle.Fill
+		Me.LvMsg.Font = New System.Drawing.Font("Courier New", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+		Me.LvMsg.FullRowSelect = True
+		Me.LvMsg.GridLines = True
+		Me.LvMsg.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable
+		Me.LvMsg.LabelWrap = False
+		Me.LvMsg.Location = New System.Drawing.Point(0, 0)
+		Me.LvMsg.Margin = New System.Windows.Forms.Padding(0)
+		Me.LvMsg.Name = "LvMsg"
+		Me.LvMsg.Size = New System.Drawing.Size(1045, 281)
+		Me.LvMsg.TabIndex = 0
+		Me.LvMsg.UseCompatibleStateImageBehavior = False
+		Me.LvMsg.View = System.Windows.Forms.View.Details
+		'
+		'ColumnHeader1
+		'
+		Me.ColumnHeader1.Text = "Message"
+		Me.ColumnHeader1.Width = 779
+		'
+		'ColumnHeader2
+		'
+		Me.ColumnHeader2.Text = "Time"
+		Me.ColumnHeader2.Width = 151
+		'
+		'ColumnHeader3
+		'
+		Me.ColumnHeader3.Text = "Source"
+		Me.ColumnHeader3.Width = 138
+		'
+		'SplitContainer1
+		'
+		Me.SplitContainer1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+			Or System.Windows.Forms.AnchorStyles.Left) _
+			Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+		Me.SplitContainer1.Location = New System.Drawing.Point(0, 27)
+		Me.SplitContainer1.Margin = New System.Windows.Forms.Padding(0)
+		Me.SplitContainer1.Name = "SplitContainer1"
+		Me.SplitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal
+		'
+		'SplitContainer1.Panel1
+		'
+		Me.SplitContainer1.Panel1.Controls.Add(Me.TabControl1)
+		Me.SplitContainer1.Panel1.Padding = New System.Windows.Forms.Padding(3, 3, 0, 2)
+		'
+		'SplitContainer1.Panel2
+		'
+		Me.SplitContainer1.Panel2.Controls.Add(Me.LvMsg)
+		Me.SplitContainer1.Size = New System.Drawing.Size(1045, 618)
+		Me.SplitContainer1.SplitterDistance = 333
+		Me.SplitContainer1.TabIndex = 12
+		'
+		'ToolStrip1
+		'
+		Me.ToolStrip1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None
+		Me.ToolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden
+		Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripBtNew, Me.ToolStripBtOpen, Me.ToolStripSeparator2, Me.ToolStripDrDnBtTools, Me.ToolStripDrDnBtInfo})
+		Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
+		Me.ToolStrip1.Name = "ToolStrip1"
+		Me.ToolStrip1.Size = New System.Drawing.Size(1045, 25)
+		Me.ToolStrip1.TabIndex = 11
+		Me.ToolStrip1.Text = "ToolStrip1"
+		'
+		'ToolStripBtNew
+		'
+		Me.ToolStripBtNew.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
+		Me.ToolStripBtNew.Image = Global.TUGraz.VECTO.My.Resources.Resources.blue_document_icon
+		Me.ToolStripBtNew.ImageTransparentColor = System.Drawing.Color.Magenta
+		Me.ToolStripBtNew.Name = "ToolStripBtNew"
+		Me.ToolStripBtNew.Size = New System.Drawing.Size(23, 22)
+		Me.ToolStripBtNew.Text = "ToolStripBtNew"
+		Me.ToolStripBtNew.ToolTipText = "New Job File"
+		'
+		'ToolStripBtOpen
+		'
+		Me.ToolStripBtOpen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
+		Me.ToolStripBtOpen.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon
+		Me.ToolStripBtOpen.ImageTransparentColor = System.Drawing.Color.Magenta
+		Me.ToolStripBtOpen.Name = "ToolStripBtOpen"
+		Me.ToolStripBtOpen.Size = New System.Drawing.Size(23, 22)
+		Me.ToolStripBtOpen.Text = "ToolStripButton1"
+		Me.ToolStripBtOpen.ToolTipText = "Open File..."
+		'
+		'ToolStripSeparator2
+		'
+		Me.ToolStripSeparator2.Name = "ToolStripSeparator2"
+		Me.ToolStripSeparator2.Size = New System.Drawing.Size(6, 25)
+		'
+		'ToolStripDrDnBtTools
+		'
+		Me.ToolStripDrDnBtTools.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.GENEditorToolStripMenuItem1, Me.VEHEditorToolStripMenuItem, Me.EngineEditorToolStripMenuItem, Me.GearboxEditorToolStripMenuItem, Me.GraphToolStripMenuItem, Me.ToolStripSeparator6, Me.SignOrVerifyFilesToolStripMenuItem, Me.ToolStripSeparator4, Me.OpenLogToolStripMenuItem, Me.SettingsToolStripMenuItem})
+		Me.ToolStripDrDnBtTools.Image = Global.TUGraz.VECTO.My.Resources.Resources.Misc_Tools_icon
+		Me.ToolStripDrDnBtTools.ImageTransparentColor = System.Drawing.Color.Magenta
+		Me.ToolStripDrDnBtTools.Name = "ToolStripDrDnBtTools"
+		Me.ToolStripDrDnBtTools.Size = New System.Drawing.Size(65, 22)
+		Me.ToolStripDrDnBtTools.Text = "Tools"
+		'
+		'GENEditorToolStripMenuItem1
+		'
+		Me.GENEditorToolStripMenuItem1.Image = Global.TUGraz.VECTO.My.Resources.Resources.F_VECTO
+		Me.GENEditorToolStripMenuItem1.Name = "GENEditorToolStripMenuItem1"
+		Me.GENEditorToolStripMenuItem1.Size = New System.Drawing.Size(170, 22)
+		Me.GENEditorToolStripMenuItem1.Text = "Job Editor"
+		'
+		'VEHEditorToolStripMenuItem
+		'
+		Me.VEHEditorToolStripMenuItem.Image = Global.TUGraz.VECTO.My.Resources.Resources.F_VEH
+		Me.VEHEditorToolStripMenuItem.Name = "VEHEditorToolStripMenuItem"
+		Me.VEHEditorToolStripMenuItem.Size = New System.Drawing.Size(170, 22)
+		Me.VEHEditorToolStripMenuItem.Text = "Vehicle Editor"
+		'
+		'EngineEditorToolStripMenuItem
+		'
+		Me.EngineEditorToolStripMenuItem.Image = Global.TUGraz.VECTO.My.Resources.Resources.F_ENG
+		Me.EngineEditorToolStripMenuItem.Name = "EngineEditorToolStripMenuItem"
+		Me.EngineEditorToolStripMenuItem.Size = New System.Drawing.Size(170, 22)
+		Me.EngineEditorToolStripMenuItem.Text = "Engine Editor"
+		'
+		'GearboxEditorToolStripMenuItem
+		'
+		Me.GearboxEditorToolStripMenuItem.Image = Global.TUGraz.VECTO.My.Resources.Resources.F_GBX
+		Me.GearboxEditorToolStripMenuItem.Name = "GearboxEditorToolStripMenuItem"
+		Me.GearboxEditorToolStripMenuItem.Size = New System.Drawing.Size(170, 22)
+		Me.GearboxEditorToolStripMenuItem.Text = "Gearbox Editor"
+		'
+		'GraphToolStripMenuItem
+		'
+		Me.GraphToolStripMenuItem.Image = Global.TUGraz.VECTO.My.Resources.Resources.F_Graph
+		Me.GraphToolStripMenuItem.Name = "GraphToolStripMenuItem"
+		Me.GraphToolStripMenuItem.Size = New System.Drawing.Size(170, 22)
+		Me.GraphToolStripMenuItem.Text = "Graph"
+		'
+		'ToolStripSeparator6
+		'
+		Me.ToolStripSeparator6.Name = "ToolStripSeparator6"
+		Me.ToolStripSeparator6.Size = New System.Drawing.Size(167, 6)
+		'
+		'SignOrVerifyFilesToolStripMenuItem
+		'
+		Me.SignOrVerifyFilesToolStripMenuItem.Image = Global.TUGraz.VECTO.My.Resources.Resources.Status_dialog_password_icon
+		Me.SignOrVerifyFilesToolStripMenuItem.Name = "SignOrVerifyFilesToolStripMenuItem"
+		Me.SignOrVerifyFilesToolStripMenuItem.Size = New System.Drawing.Size(170, 22)
+		Me.SignOrVerifyFilesToolStripMenuItem.Text = "Sign or Verify Files"
+		'
+		'ToolStripSeparator4
+		'
+		Me.ToolStripSeparator4.Name = "ToolStripSeparator4"
+		Me.ToolStripSeparator4.Size = New System.Drawing.Size(167, 6)
+		Me.ToolStripSeparator4.Visible = False
+		'
+		'OpenLogToolStripMenuItem
+		'
+		Me.OpenLogToolStripMenuItem.Name = "OpenLogToolStripMenuItem"
+		Me.OpenLogToolStripMenuItem.Size = New System.Drawing.Size(170, 22)
+		Me.OpenLogToolStripMenuItem.Text = "Open Log"
+		'
+		'SettingsToolStripMenuItem
+		'
+		Me.SettingsToolStripMenuItem.Name = "SettingsToolStripMenuItem"
+		Me.SettingsToolStripMenuItem.Size = New System.Drawing.Size(170, 22)
+		Me.SettingsToolStripMenuItem.Text = "Settings"
+		'
+		'ToolStripDrDnBtInfo
+		'
+		Me.ToolStripDrDnBtInfo.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.UserManualToolStripMenuItem, Me.UpdateNotesToolStripMenuItem, Me.ReportBugViaCITnetToolStripMenuItem, Me.ToolStripSeparator3, Me.CreateActivationFileToolStripMenuItem, Me.AboutVECTOToolStripMenuItem1})
+		Me.ToolStripDrDnBtInfo.Image = Global.TUGraz.VECTO.My.Resources.Resources.Help_icon
+		Me.ToolStripDrDnBtInfo.ImageTransparentColor = System.Drawing.Color.Magenta
+		Me.ToolStripDrDnBtInfo.Name = "ToolStripDrDnBtInfo"
+		Me.ToolStripDrDnBtInfo.Size = New System.Drawing.Size(61, 22)
+		Me.ToolStripDrDnBtInfo.Text = "Help"
+		'
+		'UserManualToolStripMenuItem
+		'
+		Me.UserManualToolStripMenuItem.Name = "UserManualToolStripMenuItem"
+		Me.UserManualToolStripMenuItem.Size = New System.Drawing.Size(222, 22)
+		Me.UserManualToolStripMenuItem.Text = "User Manual"
+		'
+		'UpdateNotesToolStripMenuItem
+		'
+		Me.UpdateNotesToolStripMenuItem.Name = "UpdateNotesToolStripMenuItem"
+		Me.UpdateNotesToolStripMenuItem.Size = New System.Drawing.Size(222, 22)
+		Me.UpdateNotesToolStripMenuItem.Text = "Release Notes"
+		'
+		'ReportBugViaCITnetToolStripMenuItem
+		'
+		Me.ReportBugViaCITnetToolStripMenuItem.Name = "ReportBugViaCITnetToolStripMenuItem"
+		Me.ReportBugViaCITnetToolStripMenuItem.Size = New System.Drawing.Size(222, 22)
+		Me.ReportBugViaCITnetToolStripMenuItem.Text = "Report Bug via CITnet / JIRA"
+		'
+		'ToolStripSeparator3
+		'
+		Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
+		Me.ToolStripSeparator3.Size = New System.Drawing.Size(219, 6)
+		'
+		'CreateActivationFileToolStripMenuItem
+		'
+		Me.CreateActivationFileToolStripMenuItem.Name = "CreateActivationFileToolStripMenuItem"
+		Me.CreateActivationFileToolStripMenuItem.Size = New System.Drawing.Size(222, 22)
+		Me.CreateActivationFileToolStripMenuItem.Text = "Create Activation File"
+		'
+		'AboutVECTOToolStripMenuItem1
+		'
+		Me.AboutVECTOToolStripMenuItem1.Name = "AboutVECTOToolStripMenuItem1"
+		Me.AboutVECTOToolStripMenuItem1.Size = New System.Drawing.Size(222, 22)
+		Me.AboutVECTOToolStripMenuItem1.Text = "About VECTO"
+		'
+		'CmDEV
+		'
+		Me.CmDEV.Name = "CmDEV"
+		Me.CmDEV.Size = New System.Drawing.Size(61, 4)
+		'
+		'TmProgSec
+		'
+		Me.TmProgSec.Interval = 1000
+		'
+		'CmOpenFile
+		'
+		Me.CmOpenFile.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.OpenWithToolStripMenuItem, Me.OpenInGraphWindowToolStripMenuItem, Me.ShowInFolderToolStripMenuItem})
+		Me.CmOpenFile.Name = "CmOpenFile"
+		Me.CmOpenFile.Size = New System.Drawing.Size(199, 70)
+		'
+		'OpenWithToolStripMenuItem
+		'
+		Me.OpenWithToolStripMenuItem.Name = "OpenWithToolStripMenuItem"
+		Me.OpenWithToolStripMenuItem.Size = New System.Drawing.Size(198, 22)
+		Me.OpenWithToolStripMenuItem.Text = "Open with ..."
+		'
+		'OpenInGraphWindowToolStripMenuItem
+		'
+		Me.OpenInGraphWindowToolStripMenuItem.Name = "OpenInGraphWindowToolStripMenuItem"
+		Me.OpenInGraphWindowToolStripMenuItem.Size = New System.Drawing.Size(198, 22)
+		Me.OpenInGraphWindowToolStripMenuItem.Text = "Open in Graph Window"
+		'
+		'ShowInFolderToolStripMenuItem
+		'
+		Me.ShowInFolderToolStripMenuItem.Name = "ShowInFolderToolStripMenuItem"
+		Me.ShowInFolderToolStripMenuItem.Size = New System.Drawing.Size(198, 22)
+		Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder"
+		'
+		'F_MAINForm
+		'
+		Me.AcceptButton = Me.btStartV3
+		Me.ClientSize = New System.Drawing.Size(1045, 670)
+		Me.Controls.Add(Me.ToolStrip1)
+		Me.Controls.Add(Me.SplitContainer1)
+		Me.Controls.Add(Me.StatusBAR)
+		Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
+		Me.MinimumSize = New System.Drawing.Size(785, 485)
+		Me.Name = "MainForm"
+		Me.Text = "VECTO"
+		Me.StatusBAR.ResumeLayout(False)
+		Me.StatusBAR.PerformLayout()
+		Me.TabControl1.ResumeLayout(False)
+		Me.TabPageGEN.ResumeLayout(False)
+		Me.TabPageGEN.PerformLayout()
+		CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
+		Me.TabPgOptions.ResumeLayout(False)
+		Me.PanelOptAllg.ResumeLayout(False)
+		Me.GroupBox2.ResumeLayout(False)
+		Me.GroupBox2.PerformLayout()
+		Me.GroupBox1.ResumeLayout(False)
+		Me.GroupBox1.PerformLayout()
+		Me.TabPageDEV.ResumeLayout(False)
+		Me.TabPageDEV.PerformLayout()
+		Me.ConMenFilelist.ResumeLayout(False)
+		Me.SplitContainer1.Panel1.ResumeLayout(False)
+		Me.SplitContainer1.Panel2.ResumeLayout(False)
+		CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit()
+		Me.SplitContainer1.ResumeLayout(False)
+		Me.ToolStrip1.ResumeLayout(False)
+		Me.ToolStrip1.PerformLayout()
+		Me.CmOpenFile.ResumeLayout(False)
+		Me.ResumeLayout(False)
+		Me.PerformLayout()
+
+	End Sub
+	Friend WithEvents StatusBAR As StatusStrip
+	Friend WithEvents ToolStripLbStatus As ToolStripStatusLabel
+	Friend WithEvents TabControl1 As TabControl
+	Friend WithEvents TabPageGEN As TabPage
+	Friend WithEvents ButtonGENadd As Button
+	Friend WithEvents ButtonGENremove As Button
+	Friend WithEvents ConMenFilelist As ContextMenuStrip
+	Friend WithEvents SaveListToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents LoadListToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents LoadDefaultListToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents ClearListToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents BackgroundWorker1 As BackgroundWorker
+	Friend WithEvents ToolStripProgBarOverall As ToolStripProgressBar
+	Friend WithEvents LvGEN As ListView
+	Friend WithEvents ColGENpath As ColumnHeader
+	Friend WithEvents ColGENstatus As ColumnHeader
+	Friend WithEvents ChBoxAllGEN As CheckBox
+	Friend WithEvents TabPgOptions As TabPage
+	Friend WithEvents ChBoxModOut As CheckBox
+	Friend WithEvents PanelOptAllg As Panel
+	Friend WithEvents LbAutoShDown As Label
+	Friend WithEvents LvMsg As ListView
+	Friend WithEvents ColumnHeader1 As ColumnHeader
+	Friend WithEvents SplitContainer1 As SplitContainer
+	Friend WithEvents ColumnHeader2 As ColumnHeader
+	Friend WithEvents ColumnHeader3 As ColumnHeader
+	Friend WithEvents TabPageDEV As TabPage
+	Friend WithEvents LvDEVoptions As ListView
+	Friend WithEvents ColumnHeader4 As ColumnHeader
+	Friend WithEvents ColumnHeader5 As ColumnHeader
+	Friend WithEvents ColumnHeader6 As ColumnHeader
+	Friend WithEvents CmDEV As ContextMenuStrip
+	Friend WithEvents ColumnHeader7 As ColumnHeader
+	Friend WithEvents BtGENup As Button
+	Friend WithEvents BtGENdown As Button
+	Friend WithEvents ToolStrip1 As ToolStrip
+	Friend WithEvents ToolStripBtNew As ToolStripButton
+	Friend WithEvents ToolStripBtOpen As ToolStripButton
+	Friend WithEvents ToolStripDrDnBtTools As ToolStripDropDownButton
+	Friend WithEvents GENEditorToolStripMenuItem1 As ToolStripMenuItem
+	Friend WithEvents VEHEditorToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents ToolStripSeparator4 As ToolStripSeparator
+	Friend WithEvents OpenLogToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents SettingsToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents ToolStripDrDnBtInfo As ToolStripDropDownButton
+	Friend WithEvents CreateActivationFileToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents AboutVECTOToolStripMenuItem1 As ToolStripMenuItem
+	Friend WithEvents ToolStripSeparator2 As ToolStripSeparator
+	Friend WithEvents ToolStripProgBarJob As ToolStripProgressBar
+	Friend WithEvents TmProgSec As Timer
+	Friend WithEvents PictureBox1 As PictureBox
+	Friend WithEvents EngineEditorToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents GearboxEditorToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents UserManualToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
+	Friend WithEvents CmOpenFile As ContextMenuStrip
+	Friend WithEvents OpenWithToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents ShowInFolderToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents ColumnHeader8 As ColumnHeader
+	Friend WithEvents ColumnHeader9 As ColumnHeader
+	Friend WithEvents UpdateNotesToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents SignOrVerifyFilesToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents ToolStripSeparator6 As ToolStripSeparator
+	Friend WithEvents LbDecl As Label
+	Friend WithEvents GraphToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents OpenInGraphWindowToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents RbDev As RadioButton
+	Friend WithEvents RbDecl As RadioButton
+	Friend WithEvents GroupBox1 As GroupBox
+	Friend WithEvents Label1 As Label
+	Friend WithEvents ReportBugViaCITnetToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents btStartV3 As Button
+	Friend WithEvents ChBoxMod1Hz As CheckBox
+	Friend WithEvents Label6 As Label
+	Friend WithEvents ToolTip1 As ToolTip
+	Friend WithEvents NewToolStripButton As ToolStripButton
+	Friend WithEvents OpenToolStripButton As ToolStripButton
+	Friend WithEvents SaveToolStripButton As ToolStripButton
+	Friend WithEvents PrintToolStripButton As ToolStripButton
+	Friend WithEvents toolStripSeparator As ToolStripSeparator
+	Friend WithEvents CutToolStripButton As ToolStripButton
+	Friend WithEvents CopyToolStripButton As ToolStripButton
+	Friend WithEvents PasteToolStripButton As ToolStripButton
+	Friend WithEvents toolStripSeparator1 As ToolStripSeparator
+	Friend WithEvents HelpToolStripButton As ToolStripButton
+	Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox
+
+End Class
diff --git a/VECTO/GUI/F_MAINForm.resx b/VECTO/GUI/MainForm.resx
similarity index 98%
rename from VECTO/GUI/F_MAINForm.resx
rename to VECTO/GUI/MainForm.resx
index 0d31c37361..1ab95c20be 100644
--- a/VECTO/GUI/F_MAINForm.resx
+++ b/VECTO/GUI/MainForm.resx
@@ -1,305 +1,305 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <metadata name="StatusBAR.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>15, 12</value>
-  </metadata>
-  <metadata name="ToolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>850, 12</value>
-  </metadata>
-  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-  <data name="PictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAAGkAAAAsCAYAAABmF5blAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAJcEhZcwAALuIAAC8GAUsgSLcAAAAGYktHRAD/AP8A/6C9p5MAAAAHdElNRQfcChILJTNC/q9R
-        AAARd0lEQVR4Xu2bh19Vx7bH3//wrsm9N9WuscWCvdfYa2JEY4sNQbGb2EBEBMWeqIiFYkEQUJoamoCo
-        IBgFC4JSLKBgAREQLOut35wz230qB/S+p+/D+nx+n8PZe2b27PnuNbPW7MN/UZ199FYH6ROwOkifgNVB
-        +gSsDtJ72Nu3b7V/1cxQryZ1FUioVFrxggqeFVqkyldVBhd6w98fPisyWr56FXHdQlFfqNhQj4ofKyos
-        gZ4IFUHPn9JjoWf0pBQqpqfQixJ6xiouey5UUl5Kz1m419KKMnrBKntZTuUvK6i8soIqKl/Sy6pKvj+o
-        iqpevaJXr1/R6zevWW/4HiHNID98+JBycnMoNzfXYuWw8vLy6PXr1xaDUiC94Q5EXD5LvZ2sqbvjeLPq
-        s24i+SWG6lwEf1/Nu0ljtsw1Uudn6mFCPVm91k4Q6s3qw9fvy+33XTeJ+jlPogHrJ9NAlyn0w4ZpNMT1
-        Vxq6cSaN2DSLRm+eQ+O22tL47fNp4s6FNGXXEpru8RvN9lxFdgccaYG3My077Eorj20mx+PbyeXELnIP
-        9aTtEV60O/Iw7Y/1J9+EYPK/EE4nLkXSqb/PUsy183QuI4Uu3b7K95JBGQ/uUM6ju3T/yUPxMBQzbACt
-        rKqiipcvycfXlwKDAiksPLxGOnr0KIWEhlBZWZlFoHQ8KTM/h7o7/ET/PbNDtbI76MhP3EtRDwJk3Pjn
-        czoZKW9F/5gFddTKiurxsc/483P+/hnr89md6J+sf83pTP+26SL0pW1X+tquO30zryfVn9+bGi3oS00W
-        9afmSwZSq6U/0PfLh1KHlSOpy+pxAnhfhjpow1QBcSw/LNY7FtDU3ctopudKmndwLS3xdaGVfu7kFLiD
-        3EI8aPupg+QRdYS84oLI73wYnUyJpDNX4uns9YuUlHWFrubeoFsMKrfwPhU8LWTPfCY8D54GSEd4sEtL
-        S5UxsFQYq1OnT1FQcDA9e/ZMHDNnOpDg2quObVEGVzOwhsI5DMrdogfKhfGEzfD4XVN31ru66nbqze4o
-        BFD1ZjIcFiAJ6UH6Ym5XhtTNKKTvBKTBDGmYAqnnWoa0fhJ7nBYSe5n1Tg2kWexd87wAaYMW0k7aGLKX
-        IXlpIQVqIUUxpASGlPQOUr4aUrFRSLUxjFlcXBx7VChl52Qr42jMdAIHFIq9foGaLOxfLaSv7XpQBE8R
-        svEb97Ko3e8jTdaTgHQgqQC9g6TxIh1IdvqQBmkhsSet0IU0yFUDCVPhRAlpnxrSZnIKYkihGkh7GZI3
-        e9Kx8+EaSFcTKO6GhHTzHSReLwGprKL8g0GC0tLSBKiUlBTlmL4ZQMLi+sufi7WDbRoUhCdSLoCHEk7Q
-        v3hwLYUEQGpIAATJqe4dpB4CUgN9SMsGU9vfhpHVylHUdY0GUj94kus0GuE+WwtpIU3bs5xmM6T5DGnp
-        oQ20iiGt00LaISAd1UDitSmEIf0lICVTEtYlhpTJkPKKPjwkaRi7+w8eCFDR0dFiKtQHZQAJhbzOBpod
-        cAjnRmyaTU84mqrgtcn2gIPR8vKYGlI9NSCWBGQK0rc83TWw7yMgNV00QEBqLSANZ0ijNZCcJjCkX2iw
-        63QB6cdtdjTpDwlpNdl7O9GyQ648nW8m56A/aBND2nnam/ZGHyUfhoQAIiQlmiGdo3iGlMyQ0jgQysrP
-        ZkgPROT57AVD4mn9Q0KCYdzRTiiDCo8IpyoOTNSgdCDBcDKbIxpEedVBar54oLiZW3wjHVeOMSiP7waQ
-        GIo+JLUnqae7r2y7ayH1ooYMqfFChrR4ALXQQmr3+3DquGo0dXP4kXoxpP6A5DadRrrP0UJaxBHfcpqz
-        H5DWiWhvNa+5zsF/kHuYp4DkGe1HPvHBFHAxgkJTYygyLZHib17iCC+N0jnCyyrIFmvvI04LEMrL6O7l
-        B4QEw7i/4pggIiJCeNWLFy8UUEYhIS9Ye3wH/YMjMFOgcPwzHvQ9kUdEOP5vHlRTZSGzkFgaQDKy66pA
-        +kYHUj9qxpBacmTXZtkQAanTqjEM6Sfqvc6aBrhMpiFuv9IoDs9/2j5PTNu/cjBjs38NLfBxpuWH3WiN
-        /1ZaH/wnbQ7bR3+c8aF9McfIN/4EHU86RWGXYymKISUwpJQ7aXTtbgbdLsihe4/zOTfTQCoHJM6fPjQk
-        GMYeCucwPfF8omlIMJxMzEhlTxlkduBxbsqupSI3sQiQFpI+IH1IylSnhVR/fi+e6jSQ4L0CEgcN7VeM
-        oM6rxoq0oY8W0tCNMziHshH502RA2ruC5vJUvJAh/XZkIzkwJJcTu2lL+H7684wv7Y/x5/X0JAUmnaZw
-        zhOj0zW5UuqddLp+9xbdfpjLkAqokBNorNdIev9TkGAY+xs3b1JsbGz1kJCR4ymsDlJ97VNuESSGoUBi
-        L1UD0p/qTAcNMvyWkd1YTgc4wXaeSAM3TKFhDAkJ9c877EWCO4Mh2XJOt8hnPf1+ZBM5BmyjDSf30NaI
-        A7Trr0N0IDaADp8LoaDkMxytxlFM+gVKvJVKl7OvccSaSXce5olkFrsaJWWlYkcCqcp/ChLsJiCdrQYS
-        DAWO8jT2xdxuJgEgH8I5cV5JWA2nyHqsL3jQv2TP+HJud/qK24TgKcJbbHlKQ5jNwCFAEdPbgn7UlNMB
-        eE8L9p5Wy4eIYAFwlGlOGzAgqhu+aaZIYiWgmQCk8iI51bnzVLeTpzpPbdCgH35fzPybrnCOlPHgNuUU
-        3qP8p4/ElhO2kz46SJiLB7pMNeslxqRfHnkLBiI0NdpAYUIxvB7EUDh/huOTFcHrA/IwbNecvhLHiudB
-        jKe/0hJ4cT9HUemJYhsn9vpFOssDG3czmRIyLgkvuMCDnHT7Cl3idSWVPeLvnBsiUrvG09eN+1liuyeL
-        1xp4SQ7nQHlF+cJbEGZjWgMQhNslPL1hfw9THHZXqniaQ8qBPbzKykqxvfN/DgkdcjvpITyhpqCk/snr
-        jAfnIjL+//+ijwISDIXwNLbmSKqmkLAG4bO7w3gRosubQ5h59+5dyvuklUclJSXk5+f3cUDC9v1cDmFr
-        Cwl5CUJ62d7jx48pKiqKQsPC6GRICAUGBtLx48eNCjvMKGepkF8EBXNiGhBAAccDKPjECT4ealDOtCwr
-        i4QzOzub0tPThUeZM/lwYibRn01MWY0gwVAwiMNT5CyWgpKAmi0aKHaU1R3C38ioE+ITyH3jJppna0ez
-        Zsw0Kk+PvWKBRh1Two2jTGpKKu3d40FLFi2mGdOmc/0ZtHrlSjp65CjduXNH2b4ypXv37lHAMX/y9ztW
-        vY4doxyGJAdd32SbuM9bGRkUcvIk7dm1m7Zt2Ur7PfdRVGQk5efna+oaqV8rSHgJN3zjTIsgCUBaSFN3
-        LxURkbwYPvHk7f5zF3Wx6kgNvv6G6n/1tfjUF47b2tgIAMYMbUEYrPXOztStcxdq+M23op5aTRo0pJHD
-        hpOPlzeVl5crfVEbjkVwAtmiWXNqzOVRx5yaN24igJpqC7rGXubk6Ei9e/Skpo0ai75Bjb6tL64zbvQY
-        8j7oRc+fPzdop8aQYHhitoYfEDnOu3dDhhK5EMR/I3THpqu6A/g78q9IsmrXXhlEY4CkbG3mGoWEdqDr
-        167RnJmzRFlT7cnjLXlgNm9yNwoK3yPCwqkZD6Z+fWNqXL+B8Chj7WCs4DljRo4SZU3dI44DtsOq1eIN
-        r7qtWkFCYeQN7bWvIqQM4GiFYwPWTxEbk+qLI2hY6+BI9Y102JhMeRLaLCwsJHu7eUpZ0dZXhu2prwFQ
-        8CgMpNrQ3oeCdOb0aerbq7fOtc0J3oUxUe/V1RoSkrgF3uuqBSR3FFyCd4mAQX0j6Mi0KVMMBq9H1240
-        avgIGj1ipI62uLsbhYRB3rfXU0xNsi18Qp15Gh0xdBgN7NdfDLo8LsuMHD5cLPrqfuFvDG7Xjp2o/fdt
-        hTAtyT5KyXOd2neg4MAggzbu379Pv1hPVK6nVpuWrciqbTulT/I4HtgWTZuRH4fzsr1aQYKhAhJPvHwz
-        BwhTXeulQ8RLM/VNwDD/Wo//WaeTbVu3oUCO5IoKi+hxESeSKhUXFxu0ge+PHj2i8eN+FO1Ioa2F9vaU
-        lJQkIkgEAvt4kbZq1045j094gY83e5OqXbRZyn1Lu3qVlUZJFy8q7ct6gwcOorizZ8V5lNN/7Y2/fX18
-        RPvy3iBMaatXrqL4uDjxgs+PA5mfxo5T2pbtT544iZ48eSLaeS9IRSVPxbaLASABR6PPeM2y2bdabOmr
-        bwKGgdCHBHefPnUaOa5xICd2e6l1a514sJIM2sB3HG/bqrXOIGIhzsrKEuelEF1tcnMTC3czHqyWzZuL
-        erhWRUWFtkWNyTow/EBk2uR3Ho9PeOcThg9Tl5VWUV5BdnNtlfuS9+bs5CRyKVkHwkMwZNAPOuOAh1Xe
-        b60hwTDNYFPy8zmdTQLCPtzxi6eUC6jNGCT8rf4uJZ54Xj/028F3LMxNGzZS6mEw3FxdDX4mhb/v37tP
-        wUFBInqDJ6RcukSZmZkG65LaqoNkzAofFdKwwUN07qVbp87C6/T7hGtvctso+i3LImo8zvkdzr8XJNHA
-        g9vUZc04jTdJOFIMaQSH6tgDU3dMmlFIkOq7FNYEU5CwaAOirNeI/0b+YawspkzM9z5eXnTk8GEK8Pen
-        2JgY4WWmrKaQcB1MrwgY1PcAaEVFRcbvgXOtJg0bKmVxvwcPHBDnMnlGSE5OVurVGFJlVaXYUcbaIwGp
-        Xzls41Dd1FOqDwmfgITFvicHD2ohvwjw1zxZasP3sJBQHU+CnJ3WGfWkxHOJ1EEbCAAsZDN7tghiTFlt
-        IBVwcjqof3+dPvXr3ZvycnMN+gTt9fBQghPUwd+HDx0S5zB+CJhkvRpBgqEi3l42WdBPeI4EBFmtGCV+
-        vCEb1zf9wAGfmJsvnL8gIi4kplL4jv0x/bbwHb+sad/me4N2cBw3iDIQBnutg4NSRpZ337hRADVltZnu
-        cG9Y/JU6LKyDIkjR9gmGTwQ+v06brtM+IryoyCil72qrFST8IAO/xFF7EbTYx0Vs6etfRBoWUHWIis/O
-        HaxEqO3N0xFuSBFPdZiW9AcTbWOwJllb67QD4RgixWuc5J5PPC+8CzevLtemRUvRrqk+wmoDCSC2bt4s
-        yksB1IC+/cRa8/TpU9FuFq+HCIykF8n2B/UfQLk5OdrWdK3GkGBv374RbzS/tOkq4GCaa2zfV/kdnimD
-        Cy+0X6DcvOwgFlB0Wl/Y1zOVzB7y8RXhrXogoe+aNBV5DKI4eVx93naODZUUG3qo2moDCe1dTr1MfXr2
-        UupJtW7Rgn4cM5am/jJZ5G/qgEEKUSiSfWP9qiWkt3S7IFf8dlt60fht88WP5c3dPM75evuISEa/k8Zk
-        blsIAcGK5b+JcupBwd9qqY/14XUuJjrabB9htYEEe8Nev3vXLoOdC3U76uPiGAszwG1t+mDMag1J/KIo
-        YLvwIngUfmSonnuNGc4VFBTQfLt54mky1mm1TEGCoS38d8KyJUsEdLRltD3t8V7de4hEsro+wmoLCe1i
-        Snd12SC2oIz2RyvAwSfyOyS65vpUK0gwNIofEeKXOz3Zo+SLPXOG8xD+BQSvKXDj2CrBlsn3esKxZUuW
-        moQEQ1vYXfDYvUe01ZynOjV8TJkIMDDFRUdFWQQIVvaijOZxYqruy8QJE8S1qjO0D8jYfRg+ZKjogxqO
-        VKvm39HC+fYib5PjYsreCxJeQ+BH+qv9t4r3/5aY7BDm34L8AkpPS6dLnBMkJyUZCO9izHUehvMILvC2
-        9/SpU+I1yIb1LiKCw9SK7N5YlGjOAPP69euqviTT1StXzEaEasO10AaChAP799N8XlvhMXhlMmmCtYg4
-        0VdL+/VekNAR/EjkfOblGg0CDOUtkSWmLo8+YTAh9fGamLqeviw1dR1sQWGvD3tzCNVlgGBpe7WGBMNF
-        sDbhv9/4m+ZgnX1wey9Idfa/Y3WQPgGrg/QJWB2kj96I/gcOkiuMy/nVgwAAAABJRU5ErkJggg==
-</value>
-  </data>
-  <metadata name="ConMenFilelist.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>219, 14</value>
-  </metadata>
-  <metadata name="BackgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>357, 12</value>
-  </metadata>
-  <metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>524, 13</value>
-  </metadata>
-  <metadata name="CmDEV.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>126, 9</value>
-  </metadata>
-  <metadata name="TmProgSec.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>619, 13</value>
-  </metadata>
-  <metadata name="CmOpenFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>732, 12</value>
-  </metadata>
-  <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>49</value>
-  </metadata>
-  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
-        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
-        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP39
-        /QDg6NsB/v7+AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
-        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
-        /wD+/v4A1uDQAIildvn19/MB////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
-        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
-        /wD///8A////AP7+/gCdtI51RHEm/sbUvQL+/v4A////AP///wD///8A////AP///wD///8A////AP//
-        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
-        /wD///8A////AP///wD///8A7PDpAGOJS/44aBn/jal82f39/AH///8A////AP///wD///8A////AP//
-        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
-        /wD///8A////AP///wD///8A////AP7+/gC3ya0BPGse/jdnGP9Vfjv/4OfcAf///wD///8A////AP//
-        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
-        /wD///8A////AP///wD///8A////AP///wD///8A+vv6AH+ea/42Zhf/N2cY/zhnGf+nvJo0/v7+AP//
-        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
-        /wD///8A////AP///wD///8A////AP///wD///8A////AP/+/gDU3s0BSHQs/jZmF/82Zhf/NmYX/22Q
-        V//y9fAB////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
-        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A/v7+AJqyioo1Zhb/NmYW/zZm
-        F/82Zhf/P20h/8DPtwL+/v4A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
-        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wDr7+cAX4ZF/jVm
-        Ff82ZhX/NmYW/zZmFv82Zhf/h6N0//z9/AH+/v4A////AP///wD///8A////AP///wD///8A////AP//
-        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A/v7+ALTG
-        qAE6ahn+NmcV/zZnFf82ZhX/NmYV/zVlF/9PeTP/2+TWAf7+/gD///8A////AP///wD///8A////AP//
-        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
-        /wD4+vgAeppl/jVmFP82ZxX/NmcV/zZnFf82ZhX/NmYV/zZmFv+huJNb/v7+AP///wD///8A////AP//
-        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
-        /wD///8A/v7+AM/byAFGcyj+NWYU/zVmFP82ZxX/NmcV/zZnFf82ZxX/NWYV/2eMT//v8+0B////AP//
-        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
-        /wD///8A////AP///wD+/v4Alq+FpTRlE/81ZhT/NWYU/zVmFP82ZxX/NmcV/zZnFf82ZxX/PWwd/7zM
-        sQL+/v4A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
-        /wD///8A////AP///wD///8A////AOju5QBbg0H+NWUU/zVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZn
-        Ff81ZhT/gqBu//v8+gH///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
-        /wD///8A////AP///wD///8A////AP///wD+/v4AscOlAThoGP41ZhT/NWYU/zVmFP81ZhT/NWYU/zVm
-        FP82ZxX/NmcV/zVmFP9Ldy7/1+DQAf7+/gD///8A////AP///wD///8A////AP///wD///8A////AP//
-        /wD///8A////AP///wD///8A////AP///wD///8A////APj59wB2l2H+NGUT/zVmFP81ZhT/NWYU/zVm
-        FP81ZhT/NWYU/zVmFP82ZxX/NmcV/zVmFf+ctI18/v7+AP///wD///8A////AP///wD///8A////AP//
-        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD+/v4AzdnFAURxJf41ZhT/NWYU/zVm
-        FP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX/NWYU/2KISf/s8ekB////AP///wD///8A////AP//
-        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP7+/gCUroOxNGUT/zVm
-        FP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX/O2ob/7fIqwL+/v4A/v7+AP39
-        /QD9/v0A/f79AP3+/QD9/v0A/f79AP3+/QD9/v0A/f79AP///wD///8A////AP///wD///8A5uziAFmB
-        Pv40ZRP/NWYU/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zZnFf81ZhT/eppl/9Te
-        zQLZ4tMB2eLTAdni0wHZ4tMB2eLTAdni1AHZ4tQB2eLUAdrj1AHa49UB////AP///wD///8A////AP7+
-        /gCvwqIGN2cW/jVmFP81ZhT/NWYU/zVmFP81ZhT/NGYT/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zZn
-        Ff81ZhT/RHIm/0RxJv9EcSf/RXEo/0VyKP9Fcin/RnMq/0d0K/9IdCv/SXUs/0t3Lv////8A////AP//
-        /wD//v8A9vj1AHSWXv40ZRP/NWYU/zVmFP81ZhT/NWYU/zVmFP82ZhX/U3w3/jRlE/81ZhT/NWYU/zVm
-        FP81ZhT/NWYU/zZnFf82ZxX/NmYV/zZmFv82Zhf/NmYX/zdnGP83Zxj/OWgZ/zppGv86ahv/PGwd////
-        /wD///8A////AP7//gDK1sIBQnAk/jRlE/81ZhT/NWYU/zVmFP81ZhT/NWYU/0dzKf+gt5FlP24g/jVm
-        FP81ZhT/NWYU/zVmFP81ZhT/NmcV/zZnFf82ZxX/NmYW/zZmF/82Zhf/N2cY/zdnGP84aBn/Omka/zpq
-        G/87axz/////AP///wD///8A/f79AI+qfsw0ZRP/NWYU/zVmFP81ZhT/NWYU/zVmFP81ZRT/aY1R/+Lp
-        3gFfhkX+NGUT/zVmFP81ZhT/NWYU/zVmFP81ZhT/NmcV/zZnFf82ZhX/NmYW/zZmF/83Zxf/N2cY/zho
-        Gf85aRr/Omob/ztrHP////8A////AP///gDj6t8AVn88/jRlFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zRl
-        E/+Wr4Wl/f39AZCqfss0ZRP/NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZmFf82Zhb/NmYX/zZm
-        F/83Zxj/N2cY/zlpGv86ahv/O2sc/////wD///8A/v7+AKzAnxc3Zxb+NWYU/zVmFP81ZhT/NWYU/zVm
-        FP81ZhT/PWwd/8PSugH+/v4AwtC4AD1sHf41ZhT/NWYU/zVmFP81ZhT/NWYU/zZnFf82ZxX/NmYV/zZm
-        Fv82Zhf/NmYX/zdnGP83Zxj/OWka/zpqG/86ahv/////AP///wD1+PQAcpRc/jRlE/81ZhT/NWYU/zVm
-        FP81ZhT/NWYU/zVmFP9XgDz/6e7mAf///wDp7uYAWYE+/jVmFP81ZhT/NWYU/zVmFP81ZhT/NmcV/zZn
-        Ff82ZhT/NmYV/zZmF/82Zhf/N2cX/zdnGP85aRr/Omob/zpqG/////8A/v7+AMjVvwFBbyL+NGUU/zVm
-        FP81ZhT/NWYU/zVmFP81ZhT/NGUT/4Ggbf78/PwB////AP39/QCJpXb4NGUT/zVmFP81ZhT/NGUT/zVm
-        FP82ZxX/NmcV/zZmFf82ZhX/NmYX/zZmF/83Zxf/N2cY/zhoGf86aRr/Omob/////wD9/v0Aj6p90TZn
-        Ff42ZxX+NmcV/jZnFf42ZxX+NmcV/jZnFf44aBj+r8KiBv7+/gD///8A/v7+ALrKrwA7ahv9NmcV/jZn
-        Ff42ZxX+N2cW/jdoFv43aBb+N2gW/jdnF/43Zxj+OGcZ/jhoGf45aBr+Omob/jtrHP48ax3+////APr7
-        +gDB0LcAscSkALHEpACxxKQAscSkALHEpACxxKQAscSkALTGqADu8uwA///+AP///wD///8A8/bxALbH
-        qgCxxKQAscSkALHEpACxxKQAscSlALHEpQCxxKUAscSlALHEpQCxxKUAscSmALLEpgCyxaYAs8WnALPF
-        pwD5+vgA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
-        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
-        /wD///8A////AP///wD4+vcA+Pr3APj69wD9/fwA////APj69wD4+vcA+Pr3APj69wD4+vcA+fr4APn6
-        +AD5+vgA+fr4APn7+QD6+/kA+/v6APv7+wD7/PsA/Pz8AP39/AD9/v0A/v/+APr6+gD6+voA+vr6APr6
-        +gD6+voA////AP///wD///8A////////////+/////v////x////8f///+H////g////wP///8B////A
-        f///gH///4A///8AP///AB///wAf//4AH//+AA///AAP//wAB//8AAAA+AAAAPgEAADwBAAA8AQAAPAO
-        AADgDgAA4A4AAMAfAAD///////////////8=
-</value>
-  </data>
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="StatusBAR.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>15, 12</value>
+  </metadata>
+  <metadata name="ToolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>850, 12</value>
+  </metadata>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="PictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAGkAAAAsCAYAAABmF5blAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAJcEhZcwAALuIAAC8GAUsgSLcAAAAGYktHRAD/AP8A/6C9p5MAAAAHdElNRQfcChILJTNC/q9R
+        AAARd0lEQVR4Xu2bh19Vx7bH3//wrsm9N9WuscWCvdfYa2JEY4sNQbGb2EBEBMWeqIiFYkEQUJoamoCo
+        IBgFC4JSLKBgAREQLOut35wz230qB/S+p+/D+nx+n8PZe2b27PnuNbPW7MN/UZ199FYH6ROwOkifgNVB
+        +gSsDtJ72Nu3b7V/1cxQryZ1FUioVFrxggqeFVqkyldVBhd6w98fPisyWr56FXHdQlFfqNhQj4ofKyos
+        gZ4IFUHPn9JjoWf0pBQqpqfQixJ6xiouey5UUl5Kz1m419KKMnrBKntZTuUvK6i8soIqKl/Sy6pKvj+o
+        iqpevaJXr1/R6zevWW/4HiHNID98+JBycnMoNzfXYuWw8vLy6PXr1xaDUiC94Q5EXD5LvZ2sqbvjeLPq
+        s24i+SWG6lwEf1/Nu0ljtsw1Uudn6mFCPVm91k4Q6s3qw9fvy+33XTeJ+jlPogHrJ9NAlyn0w4ZpNMT1
+        Vxq6cSaN2DSLRm+eQ+O22tL47fNp4s6FNGXXEpru8RvN9lxFdgccaYG3My077Eorj20mx+PbyeXELnIP
+        9aTtEV60O/Iw7Y/1J9+EYPK/EE4nLkXSqb/PUsy183QuI4Uu3b7K95JBGQ/uUM6ju3T/yUPxMBQzbACt
+        rKqiipcvycfXlwKDAiksPLxGOnr0KIWEhlBZWZlFoHQ8KTM/h7o7/ET/PbNDtbI76MhP3EtRDwJk3Pjn
+        czoZKW9F/5gFddTKiurxsc/483P+/hnr89md6J+sf83pTP+26SL0pW1X+tquO30zryfVn9+bGi3oS00W
+        9afmSwZSq6U/0PfLh1KHlSOpy+pxAnhfhjpow1QBcSw/LNY7FtDU3ctopudKmndwLS3xdaGVfu7kFLiD
+        3EI8aPupg+QRdYS84oLI73wYnUyJpDNX4uns9YuUlHWFrubeoFsMKrfwPhU8LWTPfCY8D54GSEd4sEtL
+        S5UxsFQYq1OnT1FQcDA9e/ZMHDNnOpDg2quObVEGVzOwhsI5DMrdogfKhfGEzfD4XVN31ru66nbqze4o
+        BFD1ZjIcFiAJ6UH6Ym5XhtTNKKTvBKTBDGmYAqnnWoa0fhJ7nBYSe5n1Tg2kWexd87wAaYMW0k7aGLKX
+        IXlpIQVqIUUxpASGlPQOUr4aUrFRSLUxjFlcXBx7VChl52Qr42jMdAIHFIq9foGaLOxfLaSv7XpQBE8R
+        svEb97Ko3e8jTdaTgHQgqQC9g6TxIh1IdvqQBmkhsSet0IU0yFUDCVPhRAlpnxrSZnIKYkihGkh7GZI3
+        e9Kx8+EaSFcTKO6GhHTzHSReLwGprKL8g0GC0tLSBKiUlBTlmL4ZQMLi+sufi7WDbRoUhCdSLoCHEk7Q
+        v3hwLYUEQGpIAATJqe4dpB4CUgN9SMsGU9vfhpHVylHUdY0GUj94kus0GuE+WwtpIU3bs5xmM6T5DGnp
+        oQ20iiGt00LaISAd1UDitSmEIf0lICVTEtYlhpTJkPKKPjwkaRi7+w8eCFDR0dFiKtQHZQAJhbzOBpod
+        cAjnRmyaTU84mqrgtcn2gIPR8vKYGlI9NSCWBGQK0rc83TWw7yMgNV00QEBqLSANZ0ijNZCcJjCkX2iw
+        63QB6cdtdjTpDwlpNdl7O9GyQ648nW8m56A/aBND2nnam/ZGHyUfhoQAIiQlmiGdo3iGlMyQ0jgQysrP
+        ZkgPROT57AVD4mn9Q0KCYdzRTiiDCo8IpyoOTNSgdCDBcDKbIxpEedVBar54oLiZW3wjHVeOMSiP7waQ
+        GIo+JLUnqae7r2y7ayH1ooYMqfFChrR4ALXQQmr3+3DquGo0dXP4kXoxpP6A5DadRrrP0UJaxBHfcpqz
+        H5DWiWhvNa+5zsF/kHuYp4DkGe1HPvHBFHAxgkJTYygyLZHib17iCC+N0jnCyyrIFmvvI04LEMrL6O7l
+        B4QEw7i/4pggIiJCeNWLFy8UUEYhIS9Ye3wH/YMjMFOgcPwzHvQ9kUdEOP5vHlRTZSGzkFgaQDKy66pA
+        +kYHUj9qxpBacmTXZtkQAanTqjEM6Sfqvc6aBrhMpiFuv9IoDs9/2j5PTNu/cjBjs38NLfBxpuWH3WiN
+        /1ZaH/wnbQ7bR3+c8aF9McfIN/4EHU86RWGXYymKISUwpJQ7aXTtbgbdLsihe4/zOTfTQCoHJM6fPjQk
+        GMYeCucwPfF8omlIMJxMzEhlTxlkduBxbsqupSI3sQiQFpI+IH1IylSnhVR/fi+e6jSQ4L0CEgcN7VeM
+        oM6rxoq0oY8W0tCNMziHshH502RA2ruC5vJUvJAh/XZkIzkwJJcTu2lL+H7684wv7Y/x5/X0JAUmnaZw
+        zhOj0zW5UuqddLp+9xbdfpjLkAqokBNorNdIev9TkGAY+xs3b1JsbGz1kJCR4ymsDlJ97VNuESSGoUBi
+        L1UD0p/qTAcNMvyWkd1YTgc4wXaeSAM3TKFhDAkJ9c877EWCO4Mh2XJOt8hnPf1+ZBM5BmyjDSf30NaI
+        A7Trr0N0IDaADp8LoaDkMxytxlFM+gVKvJVKl7OvccSaSXce5olkFrsaJWWlYkcCqcp/ChLsJiCdrQYS
+        DAWO8jT2xdxuJgEgH8I5cV5JWA2nyHqsL3jQv2TP+HJud/qK24TgKcJbbHlKQ5jNwCFAEdPbgn7UlNMB
+        eE8L9p5Wy4eIYAFwlGlOGzAgqhu+aaZIYiWgmQCk8iI51bnzVLeTpzpPbdCgH35fzPybrnCOlPHgNuUU
+        3qP8p4/ElhO2kz46SJiLB7pMNeslxqRfHnkLBiI0NdpAYUIxvB7EUDh/huOTFcHrA/IwbNecvhLHiudB
+        jKe/0hJ4cT9HUemJYhsn9vpFOssDG3czmRIyLgkvuMCDnHT7Cl3idSWVPeLvnBsiUrvG09eN+1liuyeL
+        1xp4SQ7nQHlF+cJbEGZjWgMQhNslPL1hfw9THHZXqniaQ8qBPbzKykqxvfN/DgkdcjvpITyhpqCk/snr
+        jAfnIjL+//+ijwISDIXwNLbmSKqmkLAG4bO7w3gRosubQ5h59+5dyvuklUclJSXk5+f3cUDC9v1cDmFr
+        Cwl5CUJ62d7jx48pKiqKQsPC6GRICAUGBtLx48eNCjvMKGepkF8EBXNiGhBAAccDKPjECT4ealDOtCwr
+        i4QzOzub0tPThUeZM/lwYibRn01MWY0gwVAwiMNT5CyWgpKAmi0aKHaU1R3C38ioE+ITyH3jJppna0ez
+        Zsw0Kk+PvWKBRh1Two2jTGpKKu3d40FLFi2mGdOmc/0ZtHrlSjp65CjduXNH2b4ypXv37lHAMX/y9ztW
+        vY4doxyGJAdd32SbuM9bGRkUcvIk7dm1m7Zt2Ur7PfdRVGQk5efna+oaqV8rSHgJN3zjTIsgCUBaSFN3
+        LxURkbwYPvHk7f5zF3Wx6kgNvv6G6n/1tfjUF47b2tgIAMYMbUEYrPXOztStcxdq+M23op5aTRo0pJHD
+        hpOPlzeVl5crfVEbjkVwAtmiWXNqzOVRx5yaN24igJpqC7rGXubk6Ei9e/Skpo0ai75Bjb6tL64zbvQY
+        8j7oRc+fPzdop8aQYHhitoYfEDnOu3dDhhK5EMR/I3THpqu6A/g78q9IsmrXXhlEY4CkbG3mGoWEdqDr
+        167RnJmzRFlT7cnjLXlgNm9yNwoK3yPCwqkZD6Z+fWNqXL+B8Chj7WCs4DljRo4SZU3dI44DtsOq1eIN
+        r7qtWkFCYeQN7bWvIqQM4GiFYwPWTxEbk+qLI2hY6+BI9Y102JhMeRLaLCwsJHu7eUpZ0dZXhu2prwFQ
+        8CgMpNrQ3oeCdOb0aerbq7fOtc0J3oUxUe/V1RoSkrgF3uuqBSR3FFyCd4mAQX0j6Mi0KVMMBq9H1240
+        avgIGj1ipI62uLsbhYRB3rfXU0xNsi18Qp15Gh0xdBgN7NdfDLo8LsuMHD5cLPrqfuFvDG7Xjp2o/fdt
+        hTAtyT5KyXOd2neg4MAggzbu379Pv1hPVK6nVpuWrciqbTulT/I4HtgWTZuRH4fzsr1aQYKhAhJPvHwz
+        BwhTXeulQ8RLM/VNwDD/Wo//WaeTbVu3oUCO5IoKi+hxESeSKhUXFxu0ge+PHj2i8eN+FO1Ioa2F9vaU
+        lJQkIkgEAvt4kbZq1045j094gY83e5OqXbRZyn1Lu3qVlUZJFy8q7ct6gwcOorizZ8V5lNN/7Y2/fX18
+        RPvy3iBMaatXrqL4uDjxgs+PA5mfxo5T2pbtT544iZ48eSLaeS9IRSVPxbaLASABR6PPeM2y2bdabOmr
+        bwKGgdCHBHefPnUaOa5xICd2e6l1a514sJIM2sB3HG/bqrXOIGIhzsrKEuelEF1tcnMTC3czHqyWzZuL
+        erhWRUWFtkWNyTow/EBk2uR3Ho9PeOcThg9Tl5VWUV5BdnNtlfuS9+bs5CRyKVkHwkMwZNAPOuOAh1Xe
+        b60hwTDNYFPy8zmdTQLCPtzxi6eUC6jNGCT8rf4uJZ54Xj/028F3LMxNGzZS6mEw3FxdDX4mhb/v37tP
+        wUFBInqDJ6RcukSZmZkG65LaqoNkzAofFdKwwUN07qVbp87C6/T7hGtvctso+i3LImo8zvkdzr8XJNHA
+        g9vUZc04jTdJOFIMaQSH6tgDU3dMmlFIkOq7FNYEU5CwaAOirNeI/0b+YawspkzM9z5eXnTk8GEK8Pen
+        2JgY4WWmrKaQcB1MrwgY1PcAaEVFRcbvgXOtJg0bKmVxvwcPHBDnMnlGSE5OVurVGFJlVaXYUcbaIwGp
+        Xzls41Dd1FOqDwmfgITFvicHD2ohvwjw1zxZasP3sJBQHU+CnJ3WGfWkxHOJ1EEbCAAsZDN7tghiTFlt
+        IBVwcjqof3+dPvXr3ZvycnMN+gTt9fBQghPUwd+HDx0S5zB+CJhkvRpBgqEi3l42WdBPeI4EBFmtGCV+
+        vCEb1zf9wAGfmJsvnL8gIi4kplL4jv0x/bbwHb+sad/me4N2cBw3iDIQBnutg4NSRpZ337hRADVltZnu
+        cG9Y/JU6LKyDIkjR9gmGTwQ+v06brtM+IryoyCil72qrFST8IAO/xFF7EbTYx0Vs6etfRBoWUHWIis/O
+        HaxEqO3N0xFuSBFPdZiW9AcTbWOwJllb67QD4RgixWuc5J5PPC+8CzevLtemRUvRrqk+wmoDCSC2bt4s
+        yksB1IC+/cRa8/TpU9FuFq+HCIykF8n2B/UfQLk5OdrWdK3GkGBv374RbzS/tOkq4GCaa2zfV/kdnimD
+        Cy+0X6DcvOwgFlB0Wl/Y1zOVzB7y8RXhrXogoe+aNBV5DKI4eVx93naODZUUG3qo2moDCe1dTr1MfXr2
+        UupJtW7Rgn4cM5am/jJZ5G/qgEEKUSiSfWP9qiWkt3S7IFf8dlt60fht88WP5c3dPM75evuISEa/k8Zk
+        blsIAcGK5b+JcupBwd9qqY/14XUuJjrabB9htYEEe8Nev3vXLoOdC3U76uPiGAszwG1t+mDMag1J/KIo
+        YLvwIngUfmSonnuNGc4VFBTQfLt54mky1mm1TEGCoS38d8KyJUsEdLRltD3t8V7de4hEsro+wmoLCe1i
+        Snd12SC2oIz2RyvAwSfyOyS65vpUK0gwNIofEeKXOz3Zo+SLPXOG8xD+BQSvKXDj2CrBlsn3esKxZUuW
+        moQEQ1vYXfDYvUe01ZynOjV8TJkIMDDFRUdFWQQIVvaijOZxYqruy8QJE8S1qjO0D8jYfRg+ZKjogxqO
+        VKvm39HC+fYib5PjYsreCxJeQ+BH+qv9t4r3/5aY7BDm34L8AkpPS6dLnBMkJyUZCO9izHUehvMILvC2
+        9/SpU+I1yIb1LiKCw9SK7N5YlGjOAPP69euqviTT1StXzEaEasO10AaChAP799N8XlvhMXhlMmmCtYg4
+        0VdL+/VekNAR/EjkfOblGg0CDOUtkSWmLo8+YTAh9fGamLqeviw1dR1sQWGvD3tzCNVlgGBpe7WGBMNF
+        sDbhv9/4m+ZgnX1wey9Idfa/Y3WQPgGrg/QJWB2kj96I/gcOkiuMy/nVgwAAAABJRU5ErkJggg==
+</value>
+  </data>
+  <metadata name="ConMenFilelist.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>219, 14</value>
+  </metadata>
+  <metadata name="BackgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>357, 12</value>
+  </metadata>
+  <metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>524, 13</value>
+  </metadata>
+  <metadata name="CmDEV.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>126, 9</value>
+  </metadata>
+  <metadata name="TmProgSec.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>619, 13</value>
+  </metadata>
+  <metadata name="CmOpenFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>732, 12</value>
+  </metadata>
+  <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>49</value>
+  </metadata>
+  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP39
+        /QDg6NsB/v7+AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD+/v4A1uDQAIildvn19/MB////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP7+/gCdtI51RHEm/sbUvQL+/v4A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A7PDpAGOJS/44aBn/jal82f39/AH///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP7+/gC3ya0BPGse/jdnGP9Vfjv/4OfcAf///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A+vv6AH+ea/42Zhf/N2cY/zhnGf+nvJo0/v7+AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A////AP/+/gDU3s0BSHQs/jZmF/82Zhf/NmYX/22Q
+        V//y9fAB////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A/v7+AJqyioo1Zhb/NmYW/zZm
+        F/82Zhf/P20h/8DPtwL+/v4A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wDr7+cAX4ZF/jVm
+        Ff82ZhX/NmYW/zZmFv82Zhf/h6N0//z9/AH+/v4A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A/v7+ALTG
+        qAE6ahn+NmcV/zZnFf82ZhX/NmYV/zVlF/9PeTP/2+TWAf7+/gD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD4+vgAeppl/jVmFP82ZxX/NmcV/zZnFf82ZhX/NmYV/zZmFv+huJNb/v7+AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A/v7+AM/byAFGcyj+NWYU/zVmFP82ZxX/NmcV/zZnFf82ZxX/NWYV/2eMT//v8+0B////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD+/v4Alq+FpTRlE/81ZhT/NWYU/zVmFP82ZxX/NmcV/zZnFf82ZxX/PWwd/7zM
+        sQL+/v4A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AOju5QBbg0H+NWUU/zVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZn
+        Ff81ZhT/gqBu//v8+gH///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD+/v4AscOlAThoGP41ZhT/NWYU/zVmFP81ZhT/NWYU/zVm
+        FP82ZxX/NmcV/zVmFP9Ldy7/1+DQAf7+/gD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A////APj59wB2l2H+NGUT/zVmFP81ZhT/NWYU/zVm
+        FP81ZhT/NWYU/zVmFP82ZxX/NmcV/zVmFf+ctI18/v7+AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD+/v4AzdnFAURxJf41ZhT/NWYU/zVm
+        FP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX/NWYU/2KISf/s8ekB////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP7+/gCUroOxNGUT/zVm
+        FP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX/O2ob/7fIqwL+/v4A/v7+AP39
+        /QD9/v0A/f79AP3+/QD9/v0A/f79AP3+/QD9/v0A/f79AP///wD///8A////AP///wD///8A5uziAFmB
+        Pv40ZRP/NWYU/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zZnFf81ZhT/eppl/9Te
+        zQLZ4tMB2eLTAdni0wHZ4tMB2eLTAdni1AHZ4tQB2eLUAdrj1AHa49UB////AP///wD///8A////AP7+
+        /gCvwqIGN2cW/jVmFP81ZhT/NWYU/zVmFP81ZhT/NGYT/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zZn
+        Ff81ZhT/RHIm/0RxJv9EcSf/RXEo/0VyKP9Fcin/RnMq/0d0K/9IdCv/SXUs/0t3Lv////8A////AP//
+        /wD//v8A9vj1AHSWXv40ZRP/NWYU/zVmFP81ZhT/NWYU/zVmFP82ZhX/U3w3/jRlE/81ZhT/NWYU/zVm
+        FP81ZhT/NWYU/zZnFf82ZxX/NmYV/zZmFv82Zhf/NmYX/zdnGP83Zxj/OWgZ/zppGv86ahv/PGwd////
+        /wD///8A////AP7//gDK1sIBQnAk/jRlE/81ZhT/NWYU/zVmFP81ZhT/NWYU/0dzKf+gt5FlP24g/jVm
+        FP81ZhT/NWYU/zVmFP81ZhT/NmcV/zZnFf82ZxX/NmYW/zZmF/82Zhf/N2cY/zdnGP84aBn/Omka/zpq
+        G/87axz/////AP///wD///8A/f79AI+qfsw0ZRP/NWYU/zVmFP81ZhT/NWYU/zVmFP81ZRT/aY1R/+Lp
+        3gFfhkX+NGUT/zVmFP81ZhT/NWYU/zVmFP81ZhT/NmcV/zZnFf82ZhX/NmYW/zZmF/83Zxf/N2cY/zho
+        Gf85aRr/Omob/ztrHP////8A////AP///gDj6t8AVn88/jRlFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zRl
+        E/+Wr4Wl/f39AZCqfss0ZRP/NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZmFf82Zhb/NmYX/zZm
+        F/83Zxj/N2cY/zlpGv86ahv/O2sc/////wD///8A/v7+AKzAnxc3Zxb+NWYU/zVmFP81ZhT/NWYU/zVm
+        FP81ZhT/PWwd/8PSugH+/v4AwtC4AD1sHf41ZhT/NWYU/zVmFP81ZhT/NWYU/zZnFf82ZxX/NmYV/zZm
+        Fv82Zhf/NmYX/zdnGP83Zxj/OWka/zpqG/86ahv/////AP///wD1+PQAcpRc/jRlE/81ZhT/NWYU/zVm
+        FP81ZhT/NWYU/zVmFP9XgDz/6e7mAf///wDp7uYAWYE+/jVmFP81ZhT/NWYU/zVmFP81ZhT/NmcV/zZn
+        Ff82ZhT/NmYV/zZmF/82Zhf/N2cX/zdnGP85aRr/Omob/zpqG/////8A/v7+AMjVvwFBbyL+NGUU/zVm
+        FP81ZhT/NWYU/zVmFP81ZhT/NGUT/4Ggbf78/PwB////AP39/QCJpXb4NGUT/zVmFP81ZhT/NGUT/zVm
+        FP82ZxX/NmcV/zZmFf82ZhX/NmYX/zZmF/83Zxf/N2cY/zhoGf86aRr/Omob/////wD9/v0Aj6p90TZn
+        Ff42ZxX+NmcV/jZnFf42ZxX+NmcV/jZnFf44aBj+r8KiBv7+/gD///8A/v7+ALrKrwA7ahv9NmcV/jZn
+        Ff42ZxX+N2cW/jdoFv43aBb+N2gW/jdnF/43Zxj+OGcZ/jhoGf45aBr+Omob/jtrHP48ax3+////APr7
+        +gDB0LcAscSkALHEpACxxKQAscSkALHEpACxxKQAscSkALTGqADu8uwA///+AP///wD///8A8/bxALbH
+        qgCxxKQAscSkALHEpACxxKQAscSlALHEpQCxxKUAscSlALHEpQCxxKUAscSmALLEpgCyxaYAs8WnALPF
+        pwD5+vgA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD4+vcA+Pr3APj69wD9/fwA////APj69wD4+vcA+Pr3APj69wD4+vcA+fr4APn6
+        +AD5+vgA+fr4APn7+QD6+/kA+/v6APv7+wD7/PsA/Pz8AP39/AD9/v0A/v/+APr6+gD6+voA+vr6APr6
+        +gD6+voA////AP///wD///8A////////////+/////v////x////8f///+H////g////wP///8B////A
+        f///gH///4A///8AP///AB///wAf//4AH//+AA///AAP//wAB//8AAAA+AAAAPgEAADwBAAA8AQAAPAO
+        AADgDgAA4A4AAMAfAAD///////////////8=
+</value>
+  </data>
 </root>
\ No newline at end of file
diff --git a/VECTO/GUI/F_MAINForm.vb b/VECTO/GUI/MainForm.vb
similarity index 85%
rename from VECTO/GUI/F_MAINForm.vb
rename to VECTO/GUI/MainForm.vb
index 3fe73dfb0f..98d4b9d721 100644
--- a/VECTO/GUI/F_MAINForm.vb
+++ b/VECTO/GUI/MainForm.vb
@@ -1,1923 +1,1917 @@
-'
-' This file is part of VECTO.
-'
-' Copyright © 2012-2016 European Union
-'
-' Developed by Graz University of Technology,
-'              Institute of Internal Combustion Engines and Thermodynamics,
-'              Institute of Technical Informatics
-'
-' VECTO is licensed under the EUPL, Version 1.1 or - as soon they will be approved
-' by the European Commission - subsequent versions of the EUPL (the "Licence");
-' You may not use VECTO except in compliance with the Licence.
-' You may obtain a copy of the Licence at:
-'
-' https://joinup.ec.europa.eu/community/eupl/og_page/eupl
-'
-' Unless required by applicable law or agreed to in writing, VECTO
-' distributed under the Licence is distributed on an "AS IS" basis,
-' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-' See the Licence for the specific language governing permissions and
-' limitations under the Licence.
-'
-' Authors:
-'   Stefan Hausberger, hausberger@ivt.tugraz.at, IVT, Graz University of Technology
-'   Christian Kreiner, christian.kreiner@tugraz.at, ITI, Graz University of Technology
-'   Michael Krisper, michael.krisper@tugraz.at, ITI, Graz University of Technology
-'   Raphael Luz, luz@ivt.tugraz.at, IVT, Graz University of Technology
-'   Markus Quaritsch, markus.quaritsch@tugraz.at, IVT, Graz University of Technology
-'   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
-'
-
-Imports System.Collections.Generic
-Imports System.ComponentModel
-Imports System.IO
-Imports System.Linq
-Imports System.Reflection
-Imports TUGraz.VectoCore.Models.Simulation.Impl
-Imports TUGraz.VectoCore.InputData.FileIO.JSON
-Imports System.Text
-Imports System.Text.RegularExpressions
-Imports System.Threading
-Imports TUGraz.VectoCommon.InputData
-Imports TUGraz.VectoCommon.Models
-Imports TUGraz.VectoCommon.Utils
-Imports TUGraz.VectoCore.OutputData
-Imports TUGraz.VectoCore.OutputData.FileIO
-Imports TUGraz.VectoCore.Utils
-
-''' <summary>
-''' Main application form. Loads at application start. Closing form ends application.
-''' </summary>
-''' <remarks></remarks>
-
-Public Class F_MAINForm
-	Private JobListView As cFileListView
-	Private CycleListView As cFileListView
-
-	Private LastModeName As String
-	Private ConMenTarget As ListView
-	Private ConMenTarJob As Boolean
-
-	Private GUIlocked As Boolean
-
-	Private CheckLock As Boolean
-	Private GENchecked As Integer
-	Private GENcheckAllLock As Boolean
-
-	Private CbDeclLock As Boolean = False
-
-#Region "SLEEP Control - Prevent sleep while VECTO is running"
-
-	Private Declare Function SetThreadExecutionState Lib "kernel32" (esFlags As Long) As Long
-
-	Private Sub AllowSleepOFF()
-#If Not PLATFORM = "x86" Then
-		SetThreadExecutionState(tEXECUTION_STATE.ES_CONTINUOUS Or tEXECUTION_STATE.ES_SYSTEM_REQUIRED)
-#End If
-	End Sub
-
-	Private Sub AllowSleepON()
-#If Not PLATFORM = "x86" Then
-		SetThreadExecutionState(tEXECUTION_STATE.ES_CONTINUOUS)
-#End If
-	End Sub
-
-	Private Enum tEXECUTION_STATE As Integer
-		''' Informs the system that the state being set should remain in effect until the next call that uses ES_CONTINUOUS and one of the other state flags is cleared.
-		ES_CONTINUOUS = &H80000000
-		''' Forces the display to be on by resetting the display idle timer.
-		ES_DISPLAY_REQUIRED = &H2
-		''' Forces the system to be in the working state by resetting the system idle timer.
-		ES_SYSTEM_REQUIRED = &H1
-	End Enum
-
-#End Region
-
-#Region "FileBrowser Init/Close"
-
-	Private Sub FB_Initialize()
-		FB_Init = False
-		Try
-			COREvers = Assembly.LoadFrom("VectoCore.dll").GetName().Version.ToString()
-		Catch ex As Exception
-			LogFile.WriteToLog(tMsgID.Err, ex.StackTrace)
-		End Try
-
-
-		fbFolder = New cFileBrowser("WorkDir", True)
-		fbFileLists = New cFileBrowser("FileLists")
-		fbVECTO = New cFileBrowser("vecto")
-		fbVEH = New cFileBrowser("vveh")
-		fbMAP = New cFileBrowser("vmap")
-		fbDRI = New cFileBrowser("vdri")
-		fbFLD = New cFileBrowser("vfld")
-		fbENG = New cFileBrowser("veng")
-		fbGBX = New cFileBrowser("vgbx")
-		fbACC = New cFileBrowser("vacc")
-		fbAUX = New cFileBrowser("vaux")
-		fbGBS = New cFileBrowser("vgbs")
-		fbRLM = New cFileBrowser("vrlm")
-		fbTLM = New cFileBrowser("vtlm")
-		fbTCC = New cFileBrowser("vtcc")
-		fbTCCShift = New cFileBrowser("vgbs")
-		fbCDx = New cFileBrowser("vcdx")
-		fbDfVelocityDrop = New cFileBrowser("DfVelocityDrop")
-		fbDfTargetSpeed = New cFileBrowser("DfTargetSpeed")
-		fbDfVelocityDrop.Extensions = New String() {"csv"}
-		fbDfTargetSpeed.Extensions = New String() {"csv"}
-
-		fbVMOD = New cFileBrowser("vmod")
-
-
-		'-------------------------------------------------------
-		fbFileLists.Extensions = New String() {"txt"}
-		fbVECTO.Extensions = New String() {"vecto"}
-		fbVEH.Extensions = New String() {"vveh"}
-		fbMAP.Extensions = New String() {"vmap"}
-		fbDRI.Extensions = New String() {"vdri"}
-		fbFLD.Extensions = New String() {"vfld"}
-		fbENG.Extensions = New String() {"veng"}
-		fbGBX.Extensions = New String() {"vgbx"}
-		fbACC.Extensions = New String() {"vacc"}
-		fbAUX.Extensions = New String() {"vaux"}
-		fbGBS.Extensions = New String() {"vgbs"}
-		fbRLM.Extensions = New String() {"vrlm"}
-		fbTLM.Extensions = New String() {"vtlm"}
-		fbTCC.Extensions = New String() {"vtcc"}
-		fbTCCShift.Extensions = New String() {"vgbs"}
-		fbCDx.Extensions = New String() {"vcdv", "vcdb"}
-
-		fbVMOD.Extensions = New String() {"vmod"}
-	End Sub
-
-	Private Sub FB_Close()
-		fbFolder.Close()
-		fbFileLists.Close()
-		fbVECTO.Close()
-		fbVEH.Close()
-		fbMAP.Close()
-		fbDRI.Close()
-		fbFLD.Close()
-		fbENG.Close()
-		fbGBX.Close()
-		fbACC.Close()
-		fbAUX.Close()
-		fbGBS.Close()
-		fbRLM.Close()
-		fbTLM.Close()
-		fbTCC.Close()
-		fbTCCShift.Close()
-		fbCDx.Close()
-		fbVMOD.Close()
-	End Sub
-
-#End Region
-
-	'Lock certain GUI elements while VECTO is running
-	Private Sub LockGUI(Lock As Boolean)
-		GUIlocked = Lock
-
-		PanelOptAllg.Enabled = Not Lock
-		
-		BtGENup.Enabled = Not Lock
-		BtGENdown.Enabled = Not Lock
-		ButtonGENadd.Enabled = Not Lock
-		ButtonGENremove.Enabled = Not Lock
-		LvGEN.LabelEdit = Not Lock
-		ChBoxAllGEN.Enabled = Not Lock
-
-		btStartV3.Enabled = Not Lock
-
-	End Sub
-
-
-
-
-#Region "Form Init/Close"
-
-	'Initialise
-	Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
-		Dim x As Integer
-
-		GUIlocked = False
-		CheckLock = False
-		GENcheckAllLock = False
-		GENchecked = 0
-
-
-		'Load Tabs properly (otherwise problem with ListViews)
-		For x = 0 To TabControl1.TabCount - 1
-			TabControl1.TabPages(x).Show()
-		Next
-
-		LastModeName = ""
-
-		FB_Initialize()
-
-		Text = "VECTO " & VECTOvers & " / VectoCore " & COREvers
-
-
-		'FileLists
-		JobListView = New cFileListView(MyConfPath & "joblist.txt")
-		JobListView.LVbox = LvGEN
-		CycleListView = New cFileListView(MyConfPath & "cyclelist.txt")
-		
-		JobListView.LoadList()
-
-		LoadOptions()
-
-		'Resize columns ... after Loading the @file-lists
-		LvGEN.Columns(1).Width = -2
-		LvMsg.Columns(2).Width = -2
-
-		'Initialize BackgroundWorker
-
-		VECTOworkerV3 = New BackgroundWorker()
-		AddHandler VECTOworkerV3.DoWork, AddressOf VectoWorkerV3_OnDoWork
-		AddHandler VECTOworkerV3.ProgressChanged, AddressOf VectoWorkerV3_OnProgressChanged
-		AddHandler VECTOworkerV3.RunWorkerCompleted, AddressOf VectoWorkerV3_OnRunWorkerCompleted
-
-		VECTOworkerV3.WorkerReportsProgress = True
-		VECTOworkerV3.WorkerSupportsCancellation = True
-
-
-		'Set mode (Batch/Standard)
-		ModeUpdate()
-
-#If DEBUG Then
-		Const LicCheck As Boolean = False
-#Else
-		Const LicCheck as Boolean = True
-#End If
-
-		'License check
-		If LicCheck And Not Lic.LICcheck() Then
-			MsgBox("License File invalid!" & vbCrLf & vbCrLf & Lic.FailMsg)
-			If Lic.CreateActFile(MyAppPath & "ActivationCode.dat") Then
-				MsgBox("Activation File created.")
-			Else
-				MsgBox("Failed to create Activation File! Is Directory Read-Only?")
-			End If
-			Close()
-		Else
-			GUImsg(tMsgID.Normal, "License File validated.")
-			If Lic.TimeWarn Then GUImsg(tMsgID.Warn, "License expiring date (y/m/d): " & Lic.ExpTime)
-		End If
-
-		DeclOnOff()
-	End Sub
-
-	Public Shared Sub LogMethod(level As String, message As String)
-		Try
-			If level = "Warn" Then
-				VECTOworkerV3.ReportProgress(100, New With {.Target = "ListBoxWarning", .Message = message})
-			ElseIf level = "Error" Or level = "Fatal" Then
-				VECTOworkerV3.ReportProgress(100, New With {.Target = "ListBoxError", .Message = message})
-
-			End If
-		Catch e As InvalidOperationException
-
-		End Try
-	End Sub
-
-	'Declaration mode GUI settings
-	Private Sub DeclOnOff()
-
-		If Cfg.DeclMode Then
-			Text = "VECTO " & COREvers & " - Declaration Mode"
-			Cfg.DeclInit()
-		Else
-			Text = "VECTO " & COREvers
-		End If
-
-		If Cfg.DeclMode Then
-			LastModeName = "Declaration"
-		Else
-			LastModeName = "Engineering"
-			End If
-
-		Status(LastModeName & " Mode")
-
-		LoadOptions()
-
-		LbDecl.Visible = Cfg.DeclMode
-
-
-	End Sub
-
-	'Shown Event (Form-Load finished) ... here StartUp Forms are loaded (DEV, GEN/ADV- Editor ..)
-	Private Sub F01_MAINForm_Shown(sender As Object, e As EventArgs) Handles Me.Shown
-		Dim fwelcome As F_Welcome
-
-		If Cfg.FirstRun Then
-			Cfg.FirstRun = False
-			fwelcome = New F_Welcome
-			fwelcome.ShowDialog()
-		End If
-		'End If
-	End Sub
-
-	'Open file
-
-	'Close
-	Private Sub F01_MAINForm_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
-
-		'Save File-Lists
-		SaveFileLists()
-
-		'Close log
-		LogFile.CloseLog()
-
-		'Config save
-		SetOptions()
-		Cfg.Save()
-		
-		'File browser instances close
-		FB_Close()
-	End Sub
-
-#End Region
-
-	'Open file - Job, vehicle, engine, gearbox or signature file
-	Public Sub OpenVectoFile(File As String)
-
-		If Not IO.File.Exists(File) Then
-
-			GUImsg(tMsgID.Err, "File not found! (" & File & ")")
-			MsgBox("File not found! (" & File & ")", MsgBoxStyle.Critical)
-
-		Else
-
-			Select Case UCase(fEXT(File))
-				Case ".VGBX"
-					If Not F_GBX.Visible Then
-						F_GBX.Show()
-					Else
-						F_GBX.JobDir = ""
-						If F_GBX.WindowState = FormWindowState.Minimized Then F_GBX.WindowState = FormWindowState.Normal
-						F_GBX.BringToFront()
-					End If
-					F_GBX.openGBX(File)
-				Case ".VVEH"
-					If Not F_VEH.Visible Then
-						F_VEH.Show()
-					Else
-						F_VEH.JobDir = ""
-						If F_VEH.WindowState = FormWindowState.Minimized Then F_VEH.WindowState = FormWindowState.Normal
-						F_VEH.BringToFront()
-					End If
-					F_VEH.OpenVehicle(File)
-				Case ".VENG"
-					If Not F_ENG.Visible Then
-						F_ENG.Show()
-					Else
-						F_ENG.JobDir = ""
-						If F_ENG.WindowState = FormWindowState.Minimized Then F_ENG.WindowState = FormWindowState.Normal
-						F_ENG.BringToFront()
-					End If
-					F_ENG.openENG(File)
-				Case ".VECTO"
-					OpenVECTOeditor(File)
-				Case ".VSIG"
-					OpenSigFile(File)
-				Case Else
-					MsgBox("Type '" & fEXT(File) & "' unknown!", MsgBoxStyle.Critical)
-			End Select
-
-		End If
-	End Sub
-
-
-#Region "Events"
-
-	Private Sub ButtonGENremove_Click(sender As Object, e As EventArgs) _
-		Handles ButtonGENremove.Click
-		RemoveJobFile()
-	End Sub
-
-	Private Sub ButtonGENadd_Click(sender As Object, e As EventArgs) _
-		Handles ButtonGENadd.Click
-		AddJobFile()
-	End Sub
-
-	Private Sub ListViewGEN_KeyDown(sender As Object, e As KeyEventArgs) _
-		Handles LvGEN.KeyDown
-		Select Case e.KeyCode
-			Case Keys.Delete, Keys.Back
-				If Not GUIlocked Then RemoveJobFile()
-			Case Keys.Enter
-				OpenJobFile()
-		End Select
-	End Sub
-
-	Private Sub ListViewGEN_DoubleClick(sender As Object, e As EventArgs) Handles LvGEN.DoubleClick
-		If LvGEN.SelectedItems.Count > 0 Then
-			LvGEN.SelectedItems(0).Checked = Not LvGEN.SelectedItems(0).Checked
-			OpenJobFile()
-		End If
-	End Sub
-
-	Private Sub LvGEN_ItemChecked(sender As Object, e As ItemCheckedEventArgs) _
-		Handles LvGEN.ItemChecked
-
-		If e.Item.Checked Then
-			GENchecked += 1
-		Else
-			GENchecked -= 1
-		End If
-
-		If CheckLock Then Exit Sub
-		UpdateJobTabText()
-	End Sub
-
-	Private Sub ChBoxAllGEN_CheckedChanged(sender As Object, e As EventArgs) _
-		Handles ChBoxAllGEN.CheckedChanged
-
-		If GENcheckAllLock And ChBoxAllGEN.CheckState = CheckState.Indeterminate Then Exit Sub
-
-		CheckAllGEN(ChBoxAllGEN.Checked)
-	End Sub
-
-	Private Sub CheckAllGEN(Check As Boolean)
-		Dim x As ListViewItem
-
-		CheckLock = True
-		LvGEN.BeginUpdate()
-
-		For Each x In LvGEN.Items
-			x.Checked = Check
-		Next
-
-		LvGEN.EndUpdate()
-		CheckLock = False
-
-		GENchecked = LvGEN.CheckedItems.Count
-		UpdateJobTabText()
-	End Sub
-
-	Private Sub ListGEN_DragEnter(sender As Object, e As DragEventArgs) _
-		Handles LvGEN.DragEnter
-		If (e.Data.GetDataPresent(DataFormats.FileDrop)) Then
-			e.Effect = DragDropEffects.Copy
-		End If
-	End Sub
-
-	Private Sub ListGEN_DragDrop(sender As Object, e As DragEventArgs) _
-		Handles LvGEN.DragDrop
-		Dim f As String()
-		f = CType(e.Data.GetData(DataFormats.FileDrop), Array)
-		AddToJobListView(f)
-	End Sub
-
-	Private Sub BtGENup_Click(sender As Object, e As EventArgs) Handles BtGENup.Click
-		MoveItem(LvGEN, True)
-	End Sub
-
-	Private Sub BtGENdown_Click(sender As Object, e As EventArgs) Handles BtGENdown.Click
-		MoveItem(LvGEN, False)
-	End Sub
-
-#End Region
-
-	'Remove selected file(s) from job list
-	Private Sub RemoveJobFile()
-		Dim lastindx As Integer
-		Dim SelIx() As Integer
-		Dim i As Integer
-
-		If LvGEN.SelectedItems.Count < 1 Then
-			If LvGEN.Items.Count = 1 Then
-				LvGEN.Items(0).Selected = True
-			Else
-				Exit Sub
-			End If
-		End If
-
-		LvGEN.BeginUpdate()
-		CheckLock = True
-
-		ReDim SelIx(LvGEN.SelectedItems.Count - 1)
-		LvGEN.SelectedIndices.CopyTo(SelIx, 0)
-
-		lastindx = LvGEN.SelectedIndices(LvGEN.SelectedItems.Count - 1)
-
-		For i = UBound(SelIx) To 0 Step -1
-			LvGEN.Items.RemoveAt(SelIx(i))
-		Next
-
-		If lastindx < LvGEN.Items.Count Then
-			LvGEN.Items(lastindx).Selected = True
-		Else
-			If LvGEN.Items.Count > 0 Then LvGEN.Items(LvGEN.Items.Count - 1).Selected = True
-		End If
-
-		LvGEN.EndUpdate()
-		CheckLock = False
-
-		GENchecked = LvGEN.CheckedItems.Count
-		UpdateJobTabText()
-	End Sub
-
-	'Browse for job file(s) and add to job list with AddToJobListView
-	Private Sub AddJobFile()
-		Dim x As String()
-		Dim Chck As Boolean = False
-
-		x = New String() {""}
-
-		'STANDARD/BATCH
-		If fbVECTO.OpenDialog("", True, "vecto") Then
-			Chck = True
-			x = fbVECTO.Files
-		End If
-
-		If Chck Then AddToJobListView(x)
-	End Sub
-
-	'Open file in list
-	Private Sub OpenJobFile()
-		Dim f As String
-
-		If LvGEN.SelectedItems.Count < 1 Then
-			If LvGEN.Items.Count = 1 Then
-				LvGEN.Items(0).Selected = True
-			Else
-				Exit Sub
-			End If
-		End If
-
-		f = LvGEN.SelectedItems(0).SubItems(0).Text
-		f = fFileRepl(f)
-		If Not File.Exists(f) Then
-			MsgBox(f & " not found!")
-		Else
-			OpenVECTOeditor(f)
-		End If
-	End Sub
-
-	'Add File to job listview (multiple files)
-	Private Sub AddToJobListView(Path As String(), Optional ByVal Txt As String = " ")
-		Dim pDim As Int16
-		Dim p As Int16
-		Dim f As Int16
-		Dim fList As String()
-		Dim fListDim As Int16 = -1
-		Dim ListViewItem0 As ListViewItem
-
-		'If VECTO runs: Cancel operation (because Mode-change during calculation is not very clever)
-		If VECTOworkerV3.IsBusy Then Exit Sub
-
-		pDim = UBound(Path)
-		ReDim fList(0)	   'um Nullverweisausnahme-Warnung zu verhindern
-
-		'******************************************* Begin Update '*******************************************
-		LvGEN.BeginUpdate()
-		CheckLock = True
-
-		LvGEN.SelectedIndices.Clear()
-
-		If pDim = 0 Then
-			fListDim = LvGEN.Items.Count - 1
-			ReDim fList(fListDim)
-			For f = 0 To fListDim
-				fList(f) = fFileRepl(LvGEN.Items(f).SubItems(0).Text)
-			Next
-		End If
-
-		For p = 0 To pDim
-
-			If pDim = 0 Then
-
-				For f = 0 To fListDim
-
-					'If file already exists in the list: Do not append (only when a single file)
-					If UCase(Path(p)) = UCase(fList(f)) Then
-
-						'Status reset
-						LvGEN.Items(f).SubItems(1).Text = Txt
-						LvGEN.Items(f).BackColor = Color.FromKnownColor(KnownColor.Window)
-						LvGEN.Items(f).ForeColor = Color.FromKnownColor(KnownColor.WindowText)
-
-						'Element auswählen und anhaken |@@| Element selection and hook
-						LvGEN.Items(f).Selected = True
-						LvGEN.Items(f).Checked = True
-						LvGEN.Items(f).EnsureVisible()
-
-						GoTo lbFound
-					End If
-				Next
-
-			End If
-
-			'Otherwise: Add File (without WorkDir)
-			ListViewItem0 = New ListViewItem(Path(p))	'fFileWD(Path(p)))
-			ListViewItem0.SubItems.Add(" ")
-			ListViewItem0.Checked = True
-			ListViewItem0.Selected = True
-			LvGEN.Items.Add(ListViewItem0)
-			ListViewItem0.EnsureVisible()
-lbFound:
-		Next
-
-		LvGEN.EndUpdate()
-		CheckLock = False
-		'******************************************* End Update '*******************************************
-
-		'Number update
-		GENchecked = LvGEN.CheckedItems.Count
-		UpdateJobTabText()
-	End Sub
-
-	'Add File to job listview (single file)
-	Public Sub AddToJobListView(Path As String, Optional ByVal Txt As String = " ")
-		Dim p(0) As String
-		p(0) = Path
-		AddToJobListView(p, Txt)
-	End Sub
-
-	'Update job files counter in tab titel
-	Private Sub UpdateJobTabText()
-		Dim c As Integer
-		c = LvGEN.Items.Count
-
-		TabPageGEN.Text = "Job Files ( " & GENchecked & " / " & c & " )"
-		
-		GENcheckAllLock = True
-
-		If GENchecked = 0 Then
-			ChBoxAllGEN.CheckState = CheckState.Unchecked
-		ElseIf GENchecked = c Then
-			ChBoxAllGEN.CheckState = CheckState.Checked
-		Else
-			ChBoxAllGEN.CheckState = CheckState.Indeterminate
-		End If
-
-		GENcheckAllLock = False
-	End Sub
-
-
-#Region "Toolstrip"
-
-	'New Job file
-	Private Sub ToolStripBtNew_Click(sender As Object, e As EventArgs) Handles ToolStripBtNew.Click
-		OpenVECTOeditor("<New>")
-	End Sub
-
-	'Open input file
-	Private Sub ToolStripBtOpen_Click(sender As Object, e As EventArgs) Handles ToolStripBtOpen.Click
-
-		If fbVECTO.OpenDialog("", False, "vecto,vveh,vgbx,veng,vsig") Then
-			OpenVectoFile(fbVECTO.Files(0))
-		End If
-	End Sub
-
-	Private Sub GENEditorToolStripMenuItem1_Click(sender As Object, e As EventArgs) _
-		Handles GENEditorToolStripMenuItem1.Click
-		OpenVECTOeditor("<New>")
-	End Sub
-
-	Private Sub VEHEditorToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles VEHEditorToolStripMenuItem.Click
-		If Not F_VEH.Visible Then
-			F_VEH.Show()
-		Else
-			If F_VEH.WindowState = FormWindowState.Minimized Then F_VEH.WindowState = FormWindowState.Normal
-			F_VEH.BringToFront()
-		End If
-	End Sub
-
-	Private Sub EngineEditorToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles EngineEditorToolStripMenuItem.Click
-		If Not F_ENG.Visible Then
-			F_ENG.Show()
-		Else
-			If F_ENG.WindowState = FormWindowState.Minimized Then F_ENG.WindowState = FormWindowState.Normal
-			F_ENG.BringToFront()
-		End If
-	End Sub
-
-	Private Sub GearboxEditorToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles GearboxEditorToolStripMenuItem.Click
-		If Not F_GBX.Visible Then
-			F_GBX.Show()
-		Else
-			If F_GBX.WindowState = FormWindowState.Minimized Then F_GBX.WindowState = FormWindowState.Normal
-			F_GBX.BringToFront()
-		End If
-	End Sub
-
-	Private Sub GraphToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles GraphToolStripMenuItem.Click
-		Dim FGraph As New F_Graph
-		FGraph.Show()
-	End Sub
-
-	Private Sub SignOrVerifyFilesToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles SignOrVerifyFilesToolStripMenuItem.Click
-		If Not F_FileSign.Visible Then
-			F_FileSign.Show()
-		Else
-			If F_FileSign.WindowState = FormWindowState.Minimized Then F_FileSign.WindowState = FormWindowState.Normal
-			F_FileSign.BringToFront()
-		End If
-	End Sub
-
-	Private Sub OpenLogToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles OpenLogToolStripMenuItem.Click
-		Process.Start(MyAppPath & "log.txt")
-	End Sub
-
-	Private Sub SettingsToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles SettingsToolStripMenuItem.Click
-		F_Settings.ShowDialog()
-	End Sub
-
-	Private Sub UserManualToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles UserManualToolStripMenuItem.Click
-		If File.Exists(MyAppPath & "User Manual\help.html") Then
-			Dim BrowserRegistryString As String =
-					My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString
-			Dim DefaultBrowserPath As String =
-					Regex.Match(BrowserRegistryString, "(\"".*?\"")").Captures(0).ToString
-			Process.Start(DefaultBrowserPath, Uri.EscapeDataString(MyAppPath & "User Manual\help.html"))
-		Else
-			MsgBox("User Manual not found!", MsgBoxStyle.Critical)
-		End If
-	End Sub
-
-	Private Sub UpdateNotesToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles UpdateNotesToolStripMenuItem.Click
-		If File.Exists(MyAppPath & "User Manual\Release Notes.pdf") Then
-			Process.Start(MyAppPath & "User Manual\Release Notes.pdf")
-		Else
-			MsgBox("Release Notes not found!", MsgBoxStyle.Critical)
-		End If
-	End Sub
-
-	Private Sub ReportBugViaCITnetToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles ReportBugViaCITnetToolStripMenuItem.Click
-		F_JIRA.ShowDialog()
-	End Sub
-
-	Private Sub CreateActivationFileToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles CreateActivationFileToolStripMenuItem.Click
-		If MsgBox("Create Activation File ?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
-			If Lic.CreateActFile(MyAppPath & "ActivationCode.dat") Then
-				GUImsg(tMsgID.Normal, "Activation File created.")
-			Else
-				GUImsg(tMsgID.Err, "Failed to create Activation File!")
-				MsgBox("ERROR! Failed to create Activation File!", MsgBoxStyle.Critical)
-			End If
-		End If
-	End Sub
-
-	Private Sub AboutVECTOToolStripMenuItem1_Click(sender As Object, e As EventArgs) _
-		Handles AboutVECTOToolStripMenuItem1.Click
-		F_AboutBox.ShowDialog()
-	End Sub
-
-
-#End Region
-
-	'Move job/cycle file up or down in list view
-	Private Sub MoveItem(ByRef ListV As ListView, MoveUp As Boolean)
-		Dim x As Int32
-		Dim y As Int32
-		Dim y1 As Int32
-		Dim items() As String
-		Dim check() As Boolean
-		Dim index() As Integer
-		Dim ListViewItem0 As ListViewItem
-
-		If GUIlocked Then Exit Sub
-
-		'Cache Selected Items
-		y1 = ListV.SelectedItems.Count - 1
-		ReDim items(y1)
-		ReDim check(y1)
-		ReDim index(y1)
-		y = 0
-		For Each x In ListV.SelectedIndices
-			items(y) = ListV.Items(x).SubItems(0).Text
-			check(y) = ListV.Items(x).Checked
-			If MoveUp Then
-				If x = 0 Then Exit Sub
-				index(y) = x - 1
-			Else
-				If x = ListV.Items.Count - 1 Then Exit Sub
-				index(y) = x + 1
-			End If
-			y += 1
-		Next
-
-		ListV.BeginUpdate()
-
-		'Delete Selected Items
-		For Each ListViewItem0 In ListV.SelectedItems
-			ListViewItem0.Remove()
-		Next
-
-		'Items select and Insert
-		For y = 0 To y1
-			If Not check(y) Then GENchecked += 1
-			ListViewItem0 = ListV.Items.Insert(index(y), items(y))
-			ListViewItem0.SubItems.Add(" ")
-			ListViewItem0.Checked = check(y)
-			ListV.SelectedIndices.Add(index(y))
-		Next
-
-		ListV.EndUpdate()
-	End Sub
-
-
-#Region "job/cycle file List - Context Menu"
-
-	'Save List
-	Private Sub SaveListToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles SaveListToolStripMenuItem.Click
-		If fbFileLists.SaveDialog("") Then
-			If ConMenTarJob Then
-				JobListView.SaveList(fbFileLists.Files(0))
-			Else
-				CycleListView.SaveList(fbFileLists.Files(0))
-			End If
-		End If
-	End Sub
-
-	'Load List
-	Private Sub LoadListToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles LoadListToolStripMenuItem.Click
-
-		If GUIlocked Then Exit Sub
-
-		If fbFileLists.OpenDialog("") Then
-
-			If ConMenTarJob Then 'GEN
-				JobListView.LoadList(fbFileLists.Files(0))
-				GENchecked = LvGEN.CheckedItems.Count
-				UpdateJobTabText()
-			Else 'DRI
-				'Mode toggle 
-				CycleListView.LoadList(fbFileLists.Files(0))
-				End If
-
-		End If
-	End Sub
-
-	'Load Default List
-	Private Sub LoadDefaultListToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles LoadDefaultListToolStripMenuItem.Click
-
-		If GUIlocked Then Exit Sub
-
-		If ConMenTarJob Then
-
-			JobListView.LoadList()
-
-			GENchecked = LvGEN.CheckedItems.Count
-			UpdateJobTabText()
-		Else
-			CycleListView.LoadList()
-			
-		End If
-	End Sub
-
-	'Clear List
-	Private Sub ClearListToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles ClearListToolStripMenuItem.Click
-
-		If GUIlocked Then Exit Sub
-
-		ConMenTarget.Items.Clear()
-		If ConMenTarJob Then
-			GENchecked = LvGEN.CheckedItems.Count
-			UpdateJobTabText()
-		End If
-	End Sub
-
-#End Region
-
-	'VECTO Start button - Calls VECTO_Launcher or aborts calculation
-
-	Private Sub btStartV3_Click(sender As Object, e As EventArgs) Handles btStartV3.Click
-		If Not VECTOworkerV3.IsBusy Then
-			'Save Lists for Crash
-			SaveFileLists()
-
-			LvGEN.SelectedItems.Clear()
-
-			If LvGEN.CheckedItems.Count = 0 Then
-				GUImsg(tMsgID.Err, "No job file selected!")
-				Exit Sub
-			End If
-
-			Status("Launching VECTO ...")
-			JobFileList.Clear()
-			JobFileList.AddRange(From listViewItem In LvGEN.CheckedItems Select fFileRepl(listViewItem.SubItems(0).Text))
-
-			SetOptions()
-			Cfg.Save()
-			ClearMSG()
-
-			LockGUI(True)
-			btStartV3.Enabled = True
-			btStartV3.Text = "STOP"
-			btStartV3.Image = My.Resources.Stop_icon
-
-			ToolStripProgBarOverall.Value = 0
-			ToolStripProgBarOverall.Style = ProgressBarStyle.Continuous
-			ToolStripProgBarOverall.Visible = True
-
-			VECTOworkerV3.RunWorkerAsync()
-		Else
-			btStartV3.Enabled = False
-			btStartV3.Text = "Aborting..."
-			btStartV3.Image = My.Resources.Play_icon_gray
-			VECTOworkerV3.CancelAsync()
-		End If
-	End Sub
-
-	Private Sub VectoWorkerV3_OnDoWork(sender As BackgroundWorker, e As DoWorkEventArgs)
-		AllowSleepOFF()
-
-		Dim sumFileWriter As FileOutputWriter = New FileOutputWriter(JobFileList(0))
-		Dim sumWriter As SummaryDataContainer = New SummaryDataContainer(sumFileWriter)
-		Dim jobContainer As JobContainer = New JobContainer(sumWriter)
-
-		Dim mode As ExecutionMode
-		If Cfg.DeclMode Then
-			mode = ExecutionMode.Declaration
-		Else
-			mode = ExecutionMode.Engineering
-			Physics.FuelDensity = New SI(Cfg.FuelDens).Kilo.Gramm.Per.Cubic.Dezi.Meter.Cast(Of KilogramPerCubicMeter)()
-			Physics.AirDensity = New SI(Cfg.AirDensity).Kilo.Gramm.Per.Cubic.Meter.Cast(Of KilogramPerCubicMeter)()
-			Physics.CO2PerFuelWeight = Cfg.CO2perFC
-		End If
-
-		'dictionary of run-identifiers to fileWriters (used for output directory of modfile)
-		Dim fileWriters As Dictionary(Of Integer, FileOutputWriter) = New Dictionary(Of Integer, FileOutputWriter)
-
-		'list of finished runs
-		Dim finishedRuns As List(Of Integer) = New List(Of Integer)
-
-		For Each jobFile As String In JobFileList
-			Try
-				sender.ReportProgress(0, New With {.Target = "ListBox", .Message = "Reading File " + jobFile, .Link = jobFile})
-
-				Dim dataProvider As IInputDataProvider = JSONInputDataFactory.ReadJsonJob(jobFile)
-				Dim fileWriter As FileOutputWriter = New FileOutputWriter(jobFile)
-
-				Dim runsFactory As SimulatorFactory = New SimulatorFactory(mode, dataProvider, fileWriter)
-				runsFactory.WriteModalResults = Cfg.ModOut
-				runsFactory.ModalResults1Hz = Cfg.Mod1Hz
-
-				For Each runId As Integer In jobContainer.AddRuns(runsFactory)
-					fileWriters.Add(runId, fileWriter)
-				Next
-
-				sender.ReportProgress(0, New With {.Target = "ListBox", .Message = "Finished Reading Data for job: " + jobFile})
-
-			Catch ex As Exception
-				MsgBox(String.Format("ERROR running job {0}: {1}", jobFile, ex.Message), MsgBoxStyle.Critical)
-				sender.ReportProgress(0, New With {.Target = "ListBoxError", .Message = ex.Message})
-				Return
-			End Try
-		Next
-
-		'print detected cycles
-		For Each cycle As JobContainer.CycleTypeDescription In jobContainer.GetCycleTypes()
-			sender.ReportProgress(0,
-								New With {.Target = "ListBox", .Message = String.Format("Detected Cycle {0}: {1}", cycle.Name, cycle.CycleType)})
-		Next
-
-		sender.ReportProgress(0,
-							New _
-								With {.Target = "ListBox",
-								.Message = _
-								String.Format("Starting Simulation ({0} Jobs, {1} Runs)", JobFileList.Count, jobContainer.GetProgress().Count)})
-
-		jobContainer.Execute(True)
-
-		Dim start As DateTime = DateTime.Now()
-
-		While Not jobContainer.AllCompleted
-			'cancel the job if thread is interrupted (button "Stop" clicked)
-			If sender.CancellationPending Then
-				jobContainer.Cancel()
-				Return
-			End If
-
-			Dim progress As Dictionary(Of Integer, JobContainer.ProgressEntry) = jobContainer.GetProgress()
-			Dim sumProgress As Double = progress.Sum(Function(pair) pair.Value.Progress)
-			Dim duration As Double = (DateTime.Now() - start).TotalSeconds
-
-			sender.ReportProgress(Int((sumProgress * 100.0) / progress.Count), New With {.Target = "Status",
-									.Message = _
-									String.Format("Duration: {0:0}s, Current Progress: {1:P} ({2})", duration, sumProgress / progress.Count,
-												String.Join(", ", progress.Select(Function(pair) String.Format("{0,4:P}", pair.Value.Progress))))})
-
-			Dim justFinished As Dictionary(Of Integer, JobContainer.ProgressEntry) =
-					progress.Where(Function(proc) proc.Value.Done AndAlso Not finishedRuns.Contains(proc.Key)).ToDictionary(
-						Function(pair) pair.Key, Function(pair) pair.Value)
-			PrintRuns(justFinished, fileWriters)
-			finishedRuns.AddRange(justFinished.Select(Function(pair) pair.Key))
-			Thread.Sleep(100)
-		End While
-
-		Dim remainingRuns As Dictionary(Of Integer, JobContainer.ProgressEntry) =
-				jobContainer.GetProgress().Where(Function(proc) proc.Value.Done AndAlso Not finishedRuns.Contains(proc.Key)).
-				ToDictionary(Function(pair) pair.Key, Function(pair) pair.Value)
-		PrintRuns(remainingRuns, fileWriters)
-
-		finishedRuns.Clear()
-		fileWriters.Clear()
-
-		For Each progressEntry As KeyValuePair(Of Integer, JobContainer.ProgressEntry) In jobContainer.GetProgress()
-			sender.ReportProgress(100, New With {.Target = "ListBox",
-									.Message = String.Format("{0,-60} {1,8:P} {2,10:F2}s - {3}",
-															String.Format("{0} {1} {2}", progressEntry.Value.RunName, progressEntry.Value.CycleName,
-																		progressEntry.Value.RunSuffix),
-															progressEntry.Value.Progress, progressEntry.Value.ExecTime / 1000.0,
-															IIf(progressEntry.Value.Success, "Success", "Aborted"))})
-			If (Not progressEntry.Value.Success) Then
-				sender.ReportProgress(100, New With {.Target = "ListBox", .Message = progressEntry.Value.Error.Message})
-			End If
-
-		Next
-
-		For Each job As String In JobFileList
-			Dim report As String = New FileOutputWriter(job).PDFReportName
-			If File.Exists(report) Then
-				sender.ReportProgress(100,
-									New _
-										With {.Target = "ListBox",
-										.Message = String.Format("PDF-Report for '{0}' written to {1}", Path.GetFileName(job), report),
-										.Link = "<RUN>" + report})
-			End If
-		Next
-
-		If File.Exists(sumFileWriter.SumFileName) Then
-			sender.ReportProgress(100, New With {.Target = "ListBox",
-									.Message = String.Format("Sum File written to {0}", sumFileWriter.SumFileName),
-									.Link = sumFileWriter.SumFileName})
-		End If
-
-		sender.ReportProgress(100,
-							New _
-								With {.Target = "ListBox",
-								.Message = String.Format("Simulation Finished in {0:0}s", (DateTime.Now() - start).TotalSeconds)})
-	End Sub
-
-
-	Private Shared Sub PrintRuns(progress As Dictionary(Of Integer, JobContainer.ProgressEntry),
-								fileWriters As Dictionary(Of Integer, FileOutputWriter))
-		For Each p As KeyValuePair(Of Integer, JobContainer.ProgressEntry) In progress
-			Dim modFilename As String = fileWriters(p.Key).GetModDataFileName(p.Value.RunName, p.Value.CycleName,
-																			p.Value.RunSuffix + IIf(Cfg.Mod1Hz, "_1Hz", ""))
-
-			Dim runName As String = String.Format("{0} {1} {2}", p.Value.RunName, p.Value.CycleName, p.Value.RunSuffix)
-
-			If Not p.Value.Error Is Nothing Then
-				VECTOworkerV3.ReportProgress(0,
-											New _
-												With {.Target = "ListBoxError",
-												.Message = String.Format("Finished Run {0} with ERROR: {1}", runName, p.Value.Error.Message),
-												.Link = modFilename})
-			Else
-				VECTOworkerV3.ReportProgress(0,
-											New With {.Target = "ListBox", .Message = String.Format("Finished Run {0} successfully.", runName)})
-			End If
-
-			If (File.Exists(modFilename)) Then
-				VECTOworkerV3.ReportProgress(0,
-											New _
-												With {.Target = "ListBox",
-												.Message = String.Format("Run {0}: Modal Results written to {1}", runName, modFilename), .Link = modFilename
-												})
-			End If
-		Next
-	End Sub
-
-	Private Sub VectoWorkerV3_OnProgressChanged(sender As Object, e As ProgressChangedEventArgs)
-		Select Case e.UserState.Target
-			Case "ListBox"
-				If e.UserState.GetType().GetProperty("Link") Is Nothing Then
-					MSGtoForm(tMsgID.Normal, e.UserState.Message, "", "")
-				Else
-					MSGtoForm(tMsgID.Normal, e.UserState.Message, "", e.UserState.Link)
-				End If
-			Case "ListBoxWarning"
-				MSGtoForm(tMsgID.Warn, e.UserState.Message, "", "")
-				Return
-			Case "ListBoxError"
-				MSGtoForm(tMsgID.Err, e.UserState.Message, "", "")
-				Return
-			Case "Status"
-				Status(e.UserState.Message)
-		End Select
-
-		ToolStripProgBarOverall.Value = e.ProgressPercentage
-	End Sub
-
-	Private Sub VectoWorkerV3_OnRunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs)
-
-		'Progbar reset
-		ToolStripProgBarOverall.Visible = False
-		ToolStripProgBarOverall.Style = ProgressBarStyle.Continuous
-		ToolStripProgBarOverall.Value = 0
-		ProgSecStop()
-
-		LvGEN.SelectedIndices.Clear()
-
-		'ShutDown when Unexpected Error
-		If e.Error IsNot Nothing Then
-			MsgBox("An Unexpected Error occurred!" & ChrW(10) & ChrW(10) &
-					e.Error.Message.ToString, MsgBoxStyle.Critical, "Unexpected Error")
-			LogFile.WriteToLog(tMsgID.Err, ">>>Unexpected Error:" & e.Error.ToString())
-		End If
-
-		'Options enable / GUI reset
-		LockGUI(False)
-		btStartV3.Text = "START"
-		btStartV3.Image = My.Resources.Play_icon
-		Status(LastModeName & " Mode")
-
-		'SLEEP reactivate
-		AllowSleepON()
-	End Sub
-
-
-	Private Sub ModeUpdate()
-
-		'Save lists
-		JobListView.SaveList()
-		
-		'GUI changes according to current mode
-		
-		If Cfg.DeclMode Then
-			LastModeName = "Declaration"
-		Else
-			LastModeName = "Engineering"
-		End If
-
-		'Update job counter
-		GENchecked = LvGEN.CheckedItems.Count
-		UpdateJobTabText()
-
-		'Status label
-		Status(LastModeName & " Mode")
-	End Sub
-
-	'Class for ListView control - Job and cycle lists
-	Private Class cFileListView
-		Private FilePath As String
-		Private LoadedDefault As Boolean
-		Public LVbox As ListView
-
-		Public Sub New(Path As String)
-			FilePath = Path
-			LoadedDefault = False
-		End Sub
-
-		Public Sub SaveList(Optional ByVal Path As String = "")
-			Dim x As Int32
-			Dim file As cFile_V3
-			'If LVbox.Items.Count = 0 Then Exit Sub
-			file = New cFile_V3
-			If Path = "" Then
-				If Not LoadedDefault Then Exit Sub
-				Path = FilePath
-			End If
-			file.OpenWrite(Path, "?")
-			For x = 1 To LVbox.Items.Count
-				file.WriteLine(LVbox.Items(x - 1).SubItems(0).Text, Math.Abs(CInt(LVbox.Items(x - 1).Checked)))
-			Next
-			file.Close()
-		End Sub
-
-		Public Sub LoadList(Optional ByVal Path As String = "")
-			Dim line As String()
-			Dim NoCheck As Boolean
-			Dim file As cFile_V3
-			Dim ListViewItem0 As ListViewItem
-
-			If Path = "" Then
-				Path = FilePath
-				LoadedDefault = True
-			End If
-
-			file = New cFile_V3
-
-			If Not file.OpenRead(Path, "?") Then
-				If Not LoadedDefault Then GUImsg(tMsgID.Err, "Cannot open file (" & Path & ")!")
-				Exit Sub
-			End If
-
-			F_MAINForm.CheckLock = True
-			LVbox.BeginUpdate()
-
-			LVbox.Items.Clear()
-
-			NoCheck = False
-			Do While Not file.EndOfFile
-				line = file.ReadLine
-
-				ListViewItem0 = New ListViewItem(line(0))
-				ListViewItem0.SubItems.Add(" ")
-
-				If NoCheck Then
-					ListViewItem0.Checked = True
-				Else
-					If UBound(line) < 1 Then
-						NoCheck = True
-						ListViewItem0.Checked = True
-					Else
-						If IsNumeric(line(1)) Then
-							ListViewItem0.Checked = CBool(line(1))
-						Else
-							ListViewItem0.Checked = True
-						End If
-					End If
-				End If
-				LVbox.Items.Add(ListViewItem0)
-			Loop
-
-			file.Close()
-
-			LVbox.EndUpdate()
-			F_MAINForm.CheckLock = False
-
-			If LVbox.Items.Count > 0 Then LVbox.Items(LVbox.Items.Count - 1).EnsureVisible()
-		End Sub
-	End Class
-
-	
-	'Open Job Editor and open file (or new file)
-	Friend Sub OpenVECTOeditor(x As String)
-
-		If Not F_VECTO.Visible Then
-			F_VECTO.Show()
-		Else
-			If F_VECTO.WindowState = FormWindowState.Minimized Then F_VECTO.WindowState = FormWindowState.Normal
-			F_VECTO.BringToFront()
-		End If
-
-		If x = "<New>" Then
-			F_VECTO.VECTOnew()
-		Else
-			F_VECTO.VECTOload2Form(x)
-		End If
-
-		F_VECTO.Activate()
-	End Sub
-
-	'Open signature file (.vsig)
-	Friend Sub OpenSigFile(file As String)
-		If Not F_FileSign.Visible Then
-			F_FileSign.Show()
-
-		End If
-		F_FileSign.WindowState = FormWindowState.Normal
-		F_FileSign.TbSigFile.Text = file
-		F_FileSign.VerifySigFile()
-		F_FileSign.Activate()
-	End Sub
-
-	'Save job and cycle file lists
-	Private Sub SaveFileLists()
-		JobListView.SaveList()
-		'If Cfg.BatchMode Then CycleListView.SaveList()
-	End Sub
-
-
-#Region "Progressbar controls"
-
-	'Initialise progress bar (Start of next job in calculation)
-
-	'Stop - Hide progress bar
-	Private Sub ProgSecStop()
-		TmProgSec.Stop()
-		ToolStripProgBarJob.Visible = False
-		ToolStripProgBarJob.Value = 0
-	End Sub
-
-	'Timer to update progress bar regularly
-	Private Sub TmProgSec_Tick(sender As Object, e As EventArgs) Handles TmProgSec.Tick
-		If GUItest0.TestActive Then
-			Call GUItest0.TestTick()
-			Exit Sub
-		Else
-			If Not ProgBarCtrl.ProgLock Then ProgSecUpdate()
-		End If
-	End Sub
-
-	'Update progress bar (timer controlled)
-	Private Sub ProgSecUpdate()
-
-		With ProgBarCtrl
-
-			If .ProgJobInt > 0 AndAlso ToolStripProgBarJob.Style = ProgressBarStyle.Marquee Then
-				ToolStripProgBarJob.Style = ProgressBarStyle.Continuous
-			End If
-
-			If .ProgJobInt < 0 Then
-				.ProgJobInt = 0
-			ElseIf .ProgJobInt > 100 Then
-				.ProgJobInt = 100
-			End If
-
-			ToolStripProgBarJob.Value = .ProgJobInt
-
-			If .ProgOverallStartInt > -1 Then
-				ToolStripProgBarOverall.Value =
-					CInt(.ProgOverallStartInt + (.PgroOverallEndInt - .ProgOverallStartInt) * .ProgJobInt / 100)
-			End If
-
-		End With
-	End Sub
-
-
-#End Region
-
-#Region "Options Tab"
-
-	'Load options from config class
-	Public Sub LoadOptions()
-		ChBoxModOut.Checked = Cfg.ModOut
-		ChBoxMod1Hz.Checked = Cfg.Mod1Hz
-		
-		RbDecl.Checked = Cfg.DeclMode
-	End Sub
-
-	'Update config class from options in GUI, e.g. before running calculations 
-	Private Sub SetOptions()
-	Cfg.ModOut = ChBoxModOut.Checked
-		Cfg.Mod1Hz = ChBoxMod1Hz.Checked
-		
-	End Sub
-
-#End Region
-
-
-	'Add message to message list
-	Public Sub MSGtoForm(ID As tMsgID, Msg As String, Source As String, Link As String)
-
-		If (InvokeRequired) Then
-			'Me.Invoke(New MsgToFormDelegate(AddressOf MSGtoForm), ID, Msg, Source, Link)
-			Exit Sub
-		End If
-		Dim lv0 As ListViewItem
-
-		lv0 = New ListViewItem
-		lv0.Text = Msg
-		lv0.SubItems.Add(Now.ToString("HH:mm:ss.ff"))
-		lv0.SubItems.Add(Source)
-
-		If LvMsg.Items.Count > 9999 Then LvMsg.Items.RemoveAt(0)
-
-		LogFile.WriteToLog(ID, Msg & vbTab & Source)
-
-		Select Case ID
-
-			Case tMsgID.Err
-
-				lv0.BackColor = Color.Red
-				lv0.ForeColor = Color.White
-
-			Case tMsgID.Warn
-
-				lv0.BackColor = Color.Khaki				 'FromArgb(218, 125, 0) 'DarkOrange
-				lv0.ForeColor = Color.Black
-
-			Case Else
-
-				If ID = tMsgID.NewJob Then
-					lv0.BackColor = Color.LightGray
-					lv0.ForeColor = Color.DarkBlue
-				End If
-
-		End Select
-
-		If Link <> "" Then
-			If Not ID = tMsgID.Err Then lv0.ForeColor = Color.Blue
-			lv0.SubItems(0).Font = New Font(LvMsg.Font, FontStyle.Underline)
-			lv0.Tag = Link
-		End If
-
-
-		LvMsg.Items.Add(lv0)
-
-		lv0.EnsureVisible()
-	End Sub
-
-
-	'Open link in message list
-	Private Sub LvMsg_MouseClick(sender As Object, e As MouseEventArgs) Handles LvMsg.MouseClick
-		Dim txt As String
-		If LvMsg.SelectedIndices.Count > 0 Then
-			If Not LvMsg.SelectedItems(0).Tag Is Nothing Then
-				If _
-					Len(CStr(LvMsg.SelectedItems(0).Tag)) > 4 AndAlso
-					Microsoft.VisualBasic.Left(CStr(LvMsg.SelectedItems(0).Tag), 4) = "<UM>" Then
-					txt = CStr(LvMsg.SelectedItems(0).Tag).Replace("<UM>", MyAppPath & "User Manual")
-					txt = txt.Replace(" ", "%20")
-					txt = txt.Replace("\", "/")
-					txt = "file:///" & txt
-					Try
-						Process.Start(txt)
-					Catch ex As Exception
-						MsgBox("Cannot open link! (-_-;)")
-					End Try
-				ElseIf _
-					Len(CStr(LvMsg.SelectedItems(0).Tag)) > 5 AndAlso
-					Microsoft.VisualBasic.Left(CStr(LvMsg.SelectedItems(0).Tag), 5) = "<GUI>" Then
-					txt = CStr(LvMsg.SelectedItems(0).Tag).Replace("<GUI>", "")
-					OpenVectoFile(txt)
-				ElseIf _
-					Len(CStr(LvMsg.SelectedItems(0).Tag)) > 5 AndAlso
-					Microsoft.VisualBasic.Left(CStr(LvMsg.SelectedItems(0).Tag), 5) = "<RUN>" Then
-					txt = CStr(LvMsg.SelectedItems(0).Tag).Replace("<RUN>", "")
-					Try
-						Process.Start(txt)
-					Catch ex As Exception
-						GUImsg(tMsgID.Err, "Could not run '" & txt & "'!")
-					End Try
-				Else
-					OpenFiles(CStr(LvMsg.SelectedItems(0).Tag))
-				End If
-			End If
-		End If
-	End Sub
-
-	'Link-cursor (Hand) for links
-	Private Sub LvMsg_MouseMove(sender As Object, e As MouseEventArgs) Handles LvMsg.MouseMove
-		Dim lv0 As ListViewItem
-		lv0 = LvMsg.GetItemAt(e.Location.X, e.Location.Y)
-		If lv0 Is Nothing OrElse lv0.Tag Is Nothing Then
-			LvMsg.Cursor = Cursors.Arrow
-		Else
-			LvMsg.Cursor = Cursors.Hand
-		End If
-		If mouseDownOnListView Then
-			Try
-				LvMsg.HitTest(e.Location).Item.Selected = True
-			Catch
-			End Try
-		End If
-	End Sub
-
-#Region "Open File Context Menu"
-
-	Private CmFiles As String()
-
-	'Initialise and open context menu
-	Private Sub OpenFiles(ParamArray files() As String)
-
-		If files.Length = 0 Then Exit Sub
-
-		CmFiles = files
-
-		OpenInGraphWindowToolStripMenuItem.Enabled = (UCase(fEXT(CmFiles(0))) = ".VMOD")
-
-
-		OpenWithToolStripMenuItem.Text = "Open with " & Cfg.OpenCmdName
-
-		CmOpenFile.Show(Cursor.Position)
-	End Sub
-
-	'Open with tool defined in Settings
-	Private Sub OpenWithToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles OpenWithToolStripMenuItem.Click
-		If Not FileOpenAlt(CmFiles(0)) Then MsgBox("Failed to open file!")
-	End Sub
-
-	Private Sub OpenInGraphWindowToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles OpenInGraphWindowToolStripMenuItem.Click
-		Dim FGraph As New F_Graph
-		FGraph.Show()
-		FGraph.LoadNewFile(CmFiles(0))
-	End Sub
-
-	'Show in folder
-	Private Sub ShowInFolderToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles ShowInFolderToolStripMenuItem.Click
-		If File.Exists(CmFiles(0)) Then
-			Try
-				Process.Start("explorer", "/select,""" & CmFiles(0) & "")
-			Catch ex As Exception
-				MsgBox("Failed to open file!")
-			End Try
-		Else
-			MsgBox("File not found!")
-		End If
-	End Sub
-
-#End Region
-
-	'Change Declaraion Mode
-	Private Sub RbDecl_CheckedChanged(sender As Object, e As EventArgs) Handles RbDecl.CheckedChanged
-		If CbDeclLock Then Exit Sub
-
-		If F_VECTO.Visible Or F_VEH.Visible Or F_GBX.Visible Or F_ENG.Visible Then
-			CbDeclLock = True
-			RbDecl.Checked = Not RbDecl.Checked
-			CbDeclLock = False
-			MsgBox("Please close all dialog windows (e.g. Job Editor) before changing mode!")
-		Else
-			Cfg.DeclMode = RbDecl.Checked
-			RbDev.Checked = Not RbDecl.Checked
-			DeclOnOff()
-		End If
-	End Sub
-
-
-#Region "GUI Tests"
-
-	Private GUItest0 As New GUItest(Me)
-	Private mouseDownOnListView As Boolean
-
-	Private Class GUItest
-		Private RowLim As Int16 = 9
-		Private ColLim As Int16 = 45
-		Public TestActive As Boolean = False
-		Private TestAborted As Boolean
-		Private xCtrl As Int16
-		Private xPanel As Int16
-		Private Scr As Int32
-		Private PRbAlt As Boolean
-		Private Ctrls(RowLim + 1) As Int16
-		Private Pnls(RowLim + 1) As Int16
-		Private CtrlC As Int16
-		Private CtrlCL As Int16
-		Private PnDir As Int16
-		Private PnDirC As Int16
-		Private PnDirCL As Int16
-		Private PnDirRnd As Int16
-		Private CtrlRnd As Int16
-		Private DiffC As Int16
-		Private DiffLvl As Int16
-		Private bInit As Int16
-		Private MyForm As F_MAINForm
-		Private KeyCode As List(Of Integer)
-
-		Private Sub TestRun()
-
-			Dim z As Int16
-
-			xPanel = ColLim - 10
-			xCtrl = ColLim - 10
-			PRbAlt = False
-			Scr = 0
-			PnDir = 0
-			PnDirCL = 10
-			PnDirC = 0 ' StrDirCL
-			CtrlCL = 5
-			CtrlC = CtrlCL
-			PnDirRnd = 5
-			CtrlRnd = 8
-			DiffC = 0
-			DiffLvl = 1
-			bInit = 0
-			TestAborted = False
-			Randomize()
-
-
-			MyForm.LvMsg.Items.Clear()
-			MyForm.ToolStripLbStatus.Text = "Score: 0000             Press <Esc> to Quit"
-
-			For z = 1 To RowLim - 6
-				PRbAlt = Not PRbAlt
-				If Not PRbAlt Then
-					MyForm.LvMsg.Items.Add(Space(ColLim - 11) & "*|       |*")
-				Else
-					MyForm.LvMsg.Items.Add(Space(ColLim - 11) & "*|   |   |*")
-				End If
-			Next
-
-			PRbAlt = False
-
-			MyForm.LvMsg.Items.Add("  VECTO Interactive Mode" & Space(ColLim - 35) & "*|       |*")
-			MyForm.LvMsg.Items.Add(Space(ColLim - 11) & "*|   |   |*")
-			MyForm.LvMsg.Items.Add(Space(ColLim - 11) & "*|       |*")
-			MyForm.LvMsg.Items.Add(Space(ColLim - 11) & "*|   |   |*")
-			MyForm.LvMsg.Items.Add(Space(ColLim - 11) & "*|       |*")
-			MyForm.LvMsg.Items.Add(Space(ColLim - 11) & "*|   ∆   |*")
-
-			For z = 1 To RowLim + 1
-				Pnls(z) = ColLim - 10
-				Ctrls(z) = 0
-			Next
-
-			MyForm.TmProgSec.Interval = 200
-
-			MyForm.LvMsg.Focus()
-
-			MyForm.TmProgSec.Start()
-		End Sub
-
-		Public Sub TestStop()
-			MyForm.TmProgSec.Stop()
-			TestActive = False
-			MyForm.LvMsg.Items.Clear()
-			CtrlC = 0
-			MyForm.ToolStripLbStatus.Text = MyForm.LastModeName & " Mode"
-		End Sub
-
-		Public Sub TestTick()
-
-			If bInit = 24 Then GoTo LbRace
-			bInit += 1
-
-			Select Case bInit
-				Case 10
-					MyForm.LvMsg.Items.RemoveAt(RowLim - 6)
-					MyForm.LvMsg.Items.RemoveAt(RowLim - 5)
-					MyForm.LvMsg.Items.Insert(RowLim - 6, Space(ColLim - 11) & "*|       |*")
-					MyForm.LvMsg.Items.Insert(RowLim - 4, Space(ColLim - 30) & "  3      " & Space(10) & "*|       |*")
-				Case 14
-					MyForm.LvMsg.Items.RemoveAt(RowLim - 4)
-					MyForm.LvMsg.Items.Insert(RowLim - 4, Space(ColLim - 30) & "  2      " & Space(10) & "*|       |*")
-				Case 18
-					MyForm.LvMsg.Items.RemoveAt(RowLim - 4)
-					MyForm.LvMsg.Items.Insert(RowLim - 4, Space(ColLim - 30) & "  1      " & Space(10) & "*|       |*")
-				Case 22
-					MyForm.LvMsg.Items.RemoveAt(RowLim - 4)
-					MyForm.LvMsg.Items.Insert(RowLim - 4, Space(ColLim - 30) & " Go!     " & Space(10) & "*|       |*")
-				Case 24
-					MyForm.LvMsg.Items.RemoveAt(RowLim - 4)
-					MyForm.LvMsg.Items.Insert(RowLim - 4, Space(ColLim - 30) & "         " & Space(10) & "*|       |*")
-			End Select
-			Exit Sub
-LbRace:
-
-			PRbAlt = Not PRbAlt
-
-			MyForm.LvMsg.BeginUpdate()
-
-			sLists()
-
-			sAlign()
-
-			sSetCtrl()
-
-			sSetPanel()
-
-			MyForm.LvMsg.Items.RemoveAt(RowLim)
-
-			sUpdateCtrl()
-
-			MyForm.LvMsg.EndUpdate()
-
-			If Math.Abs(xCtrl - Pnls(2)) > 4 Then
-				sAbort()
-				Exit Sub
-			ElseIf Ctrls(2) <> 0 Then
-				If xCtrl = Pnls(2) + Ctrls(2) - 4 Then
-					sAbort()
-					Exit Sub
-				End If
-				Scr += 5 * DiffLvl
-			End If
-
-			Scr += DiffLvl
-			DiffC += 1
-
-			'Erhöhe Schwierigkeitsgrad
-			If DiffC = (DiffLvl + 3) * 4 Then
-				DiffC = 0
-				DiffLvl += 1
-				If DiffLvl > 2 And DiffLvl < 7 Then MyForm.TmProgSec.Interval = 300 - (DiffLvl) * 30
-				Scr += 100
-				Select Case DiffLvl
-					Case 3
-						PnDirCL = 3
-						CtrlCL = 4
-						CtrlRnd = 6
-					Case 5
-						PnDirCL = 2
-						PnDirRnd = 4
-					Case 8
-						CtrlCL = 2
-					Case 10
-						CtrlRnd = 4
-						PnDirRnd = 3
-				End Select
-			End If
-		End Sub
-
-		Public Sub TestKey(Key0 As Integer)
-
-			If TestActive Then
-				Select Case Key0
-					Case Keys.Left
-						xCtrl -= 1
-						sUpdateCtrl()
-					Case Keys.Right
-						xCtrl += 1
-						sUpdateCtrl()
-					Case Keys.Escape
-						TestStop()
-				End Select
-			Else
-
-				If KeyCode(CtrlC) = Key0 Then
-					CtrlC += 1
-					If CtrlC = KeyCode.Count Then
-						TestActive = True
-						TestRun()
-					End If
-				Else
-					CtrlC = 0
-				End If
-
-			End If
-		End Sub
-
-		Private Sub sAbort()
-
-			Dim s As String, s1 As String
-
-			If TestAborted Then Exit Sub
-
-			TestAborted = True
-
-			MyForm.TmProgSec.Stop()
-
-			MyForm.LvMsg.BeginUpdate()
-
-			s = MyForm.LvMsg.Items(0).Text
-			MyForm.LvMsg.Items.RemoveAt(0)
-			MyForm.LvMsg.Items.Insert(0, "You crashed!" & Microsoft.VisualBasic.Right(s, Len(s) - 12))
-
-			s = MyForm.LvMsg.Items(1).Text
-			s1 = "Score: " & Scr & " "
-			MyForm.LvMsg.Items.RemoveAt(1)
-			MyForm.LvMsg.Items.Insert(1, s1 & Microsoft.VisualBasic.Right(s, Len(s) - Len(s1)))
-
-			MyForm.LvMsg.EndUpdate()
-
-			LogFile.WriteToLog(tMsgID.Normal, "*** Race Score: " & Scr.ToString("0000") & " ***")
-
-			CtrlC = 0
-			TestActive = False
-
-			MyForm.ToolStripLbStatus.Text = MyForm.LastModeName & " Mode"
-		End Sub
-
-		Private Sub sSetCtrl()
-			Dim x As Int16
-			If Scr < 10 Then Exit Sub
-			Ctrls(RowLim + 1) = 0
-			CtrlC += 1
-			If CtrlC < CtrlCL Then Exit Sub
-			Select Case CInt(Int((CtrlRnd * Rnd()) + 1))
-				Case 1, 2
-					CtrlC = 0
-					x = CInt(Int((7 * Rnd()) + 1))
-					Ctrls(RowLim + 1) = x
-				Case Else
-			End Select
-		End Sub
-
-		Private Sub sUpdateCtrl()
-			Dim s As String
-			If bInit < 21 Then
-				xCtrl = ColLim - 10
-				Exit Sub
-			End If
-			If Math.Abs(xCtrl - Pnls(1)) > 5 Then
-				sAbort()
-				Exit Sub
-			End If
-			s = Replace(MyForm.LvMsg.Items(RowLim - 1).Text.ToString, "∆", " ") & "   "
-			s = Microsoft.VisualBasic.Left(s, ColLim + 15)
-			's = s.Remove(0, 20)
-			's = "Press <Esc> to Quit " & s
-			If Mid(s, xCtrl + 5, 1) = "X" Then
-				sAbort()
-				Exit Sub
-			End If
-			s = s.Remove(xCtrl + 4, 1)
-			's = Trim(s.Insert(xCar + 4, "∆")) & Space(ColLim + 5 - Streets(2)) & "Pts: " & Pts & " Lv: " & DiffLvl
-			s = Space(Pnls(2) - 1) & Trim(s.Insert(xCtrl + 4, "∆"))
-			MyForm.LvMsg.Items.RemoveAt(RowLim - 1)
-			MyForm.LvMsg.Items.Insert(RowLim - 1, s)
-			MyForm.ToolStripLbStatus.Text = "Score: " & Scr.ToString("0000") & "             Press <Esc> to Quit"
-		End Sub
-
-		Private Sub sSetPanel()
-			Dim s As String
-			s = "*|   |   |*"
-			If PRbAlt Then
-				s = s.Remove(5, 1)
-				s = s.Insert(5, " ")
-			End If
-			If Ctrls(RowLim + 1) <> 0 Then
-				s = s.Remove(Ctrls(RowLim + 1) + 1, 1)
-				s = s.Insert(Ctrls(RowLim + 1) + 1, "X")
-			End If
-			Select Case xPanel - Pnls(RowLim)
-				Case -1
-					s = Replace(s, "|", "\")
-				Case 1
-					s = Replace(s, "|", "/")
-			End Select
-			MyForm.LvMsg.Items.Insert(0, Space(xPanel - 1) & s)
-		End Sub
-
-		Private Sub sAlign()
-			PnDirC += 1
-			If PnDirC < PnDirCL Then GoTo Lb1
-			PnDirC = 0
-			Select Case CInt(Int((PnDirRnd * Rnd()) + 1))
-				Case 1
-					PnDir = 1
-				Case 2
-					PnDir = -1
-				Case Else
-					PnDir = 0
-			End Select
-Lb1:
-			xPanel += PnDir
-			If xPanel > ColLim Then
-				xPanel = ColLim
-			ElseIf xPanel < 22 Then
-				xPanel = 22
-			End If
-			Pnls(RowLim + 1) = xPanel
-		End Sub
-
-		Private Sub sLists()
-			Dim x As Int16
-			For x = 2 To RowLim + 1
-				Ctrls(x - 1) = Ctrls(x)
-				Pnls(x - 1) = Pnls(x)
-			Next
-		End Sub
-
-		Public Sub New(Form As F_MAINForm)
-			MyForm = Form
-			KeyCode = New List(Of Integer)
-			KeyCode.Add(Keys.Up)
-			KeyCode.Add(Keys.Up)
-			KeyCode.Add(Keys.Down)
-			KeyCode.Add(Keys.Down)
-			KeyCode.Add(Keys.Left)
-			KeyCode.Add(Keys.Right)
-			KeyCode.Add(Keys.Left)
-			KeyCode.Add(Keys.Right)
-			KeyCode.Add(Keys.B)
-			KeyCode.Add(Keys.A)
-			CtrlC = 0
-		End Sub
-	End Class
-
-	Private Sub LvMsg_KeyDown(sender As Object, e As KeyEventArgs) Handles LvMsg.KeyDown
-		GUItest0.TestKey(e.KeyValue)
-		If GUItest0.TestActive Then e.SuppressKeyPress = True
-	End Sub
-
-	Private Sub LvMsg_LostFocus(sender As Object, e As EventArgs) Handles LvMsg.LostFocus
-		If GUItest0.TestActive Then GUItest0.TestStop()
-	End Sub
-
-#End Region
-
-	Private Sub LvMsg_KeyUp(sender As Object, e As KeyEventArgs) Handles LvMsg.KeyUp
-		If (e.Control And e.KeyCode = Keys.C) Then
-			Dim builder As StringBuilder = New StringBuilder()
-			For Each selectedItem As ListViewItem In LvMsg.SelectedItems
-				builder.AppendLine(String.Join(", ",
-												selectedItem.SubItems.Cast(Of ListViewItem.ListViewSubItem).Select(
-													Function(item) item.Text)))
-			Next
-			Clipboard.SetText(builder.ToString())
-		End If
-	End Sub
-
-	Private Sub LvMsg_MouseDown(sender As Object, e As MouseEventArgs) Handles LvMsg.MouseDown
-		mouseDownOnListView = True
-	End Sub
-
-	Private Sub LvMsg_MouseUp(sender As Object, e As MouseEventArgs) Handles LvMsg.MouseUp
-		mouseDownOnListView = False
-	End Sub
-
-	Private Sub LvGEN_MouseUp(sender As Object, e As MouseEventArgs) Handles LvGEN.MouseUp
-		If e.Button = MouseButtons.Right Then
-			ConMenTarget = LvGEN
-			ConMenTarJob = True
-
-			'Locked functions show/hide
-			LoadListToolStripMenuItem.Enabled = Not GUIlocked
-			LoadDefaultListToolStripMenuItem.Enabled = Not GUIlocked
-			ClearListToolStripMenuItem.Enabled = Not GUIlocked
-
-			ConMenFilelist.Show(MousePosition)
-		End If
-	End Sub
-
-	Private Sub RbDev_CheckedChanged(sender As Object, e As EventArgs) Handles RbDev.CheckedChanged
-	End Sub
-End Class
+'
+' This file is part of VECTO.
+'
+' Copyright © 2012-2016 European Union
+'
+' Developed by Graz University of Technology,
+'              Institute of Internal Combustion Engines and Thermodynamics,
+'              Institute of Technical Informatics
+'
+' VECTO is licensed under the EUPL, Version 1.1 or - as soon they will be approved
+' by the European Commission - subsequent versions of the EUPL (the "Licence");
+' You may not use VECTO except in compliance with the Licence.
+' You may obtain a copy of the Licence at:
+'
+' https://joinup.ec.europa.eu/community/eupl/og_page/eupl
+'
+' Unless required by applicable law or agreed to in writing, VECTO
+' distributed under the Licence is distributed on an "AS IS" basis,
+' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+' See the Licence for the specific language governing permissions and
+' limitations under the Licence.
+'
+' Authors:
+'   Stefan Hausberger, hausberger@ivt.tugraz.at, IVT, Graz University of Technology
+'   Christian Kreiner, christian.kreiner@tugraz.at, ITI, Graz University of Technology
+'   Michael Krisper, michael.krisper@tugraz.at, ITI, Graz University of Technology
+'   Raphael Luz, luz@ivt.tugraz.at, IVT, Graz University of Technology
+'   Markus Quaritsch, markus.quaritsch@tugraz.at, IVT, Graz University of Technology
+'   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
+'
+
+Imports System.Collections.Generic
+Imports System.ComponentModel
+Imports System.IO
+Imports System.Linq
+Imports System.Reflection
+Imports TUGraz.VectoCore.Models.Simulation.Impl
+Imports TUGraz.VectoCore.InputData.FileIO.JSON
+Imports System.Text
+Imports System.Text.RegularExpressions
+Imports System.Threading
+Imports TUGraz.VectoCommon.InputData
+Imports TUGraz.VectoCommon.Models
+Imports TUGraz.VectoCommon.Utils
+Imports TUGraz.VectoCore.OutputData
+Imports TUGraz.VectoCore.OutputData.FileIO
+Imports TUGraz.VectoCore.Utils
+
+''' <summary>
+''' Main application form. Loads at application start. Closing form ends application.
+''' </summary>
+''' <remarks></remarks>
+
+Public Class MainForm
+	Private JobListView As cFileListView
+	Private CycleListView As cFileListView
+
+	Private LastModeName As String
+	Private ConMenTarget As ListView
+	Private ConMenTarJob As Boolean
+
+	Private GUIlocked As Boolean
+
+	Private CheckLock As Boolean
+	Private GENchecked As Integer
+	Private GENcheckAllLock As Boolean
+
+	Private CbDeclLock As Boolean = False
+
+#Region "SLEEP Control - Prevent sleep while VECTO is running"
+
+	Private Declare Function SetThreadExecutionState Lib "kernel32" (esFlags As Long) As Long
+
+	Private Sub AllowSleepOFF()
+#If Not PLATFORM = "x86" Then
+		SetThreadExecutionState(tEXECUTION_STATE.ES_CONTINUOUS Or tEXECUTION_STATE.ES_SYSTEM_REQUIRED)
+#End If
+	End Sub
+
+	Private Sub AllowSleepON()
+#If Not PLATFORM = "x86" Then
+		SetThreadExecutionState(tEXECUTION_STATE.ES_CONTINUOUS)
+#End If
+	End Sub
+
+	Private Enum tEXECUTION_STATE As Integer
+		''' Informs the system that the state being set should remain in effect until the next call that uses ES_CONTINUOUS and one of the other state flags is cleared.
+		ES_CONTINUOUS = &H80000000
+		''' Forces the display to be on by resetting the display idle timer.
+		ES_DISPLAY_REQUIRED = &H2
+		''' Forces the system to be in the working state by resetting the system idle timer.
+		ES_SYSTEM_REQUIRED = &H1
+	End Enum
+
+#End Region
+
+#Region "FileBrowser Init/Close"
+
+	Private Sub FB_Initialize()
+		FileBrowserFolderHistoryIninialized = False
+		Try
+			COREvers = Assembly.LoadFrom("VectoCore.dll").GetName().Version.ToString()
+		Catch ex As Exception
+			LogFile.WriteToLog(MessageType.Err, ex.StackTrace)
+		End Try
+
+
+		FolderFileBrowser = New FileBrowser("WorkDir", True)
+		TextFileBrowser = New FileBrowser("FileLists")
+		JobfileFileBrowser = New FileBrowser("vecto")
+		VehicleFileBrowser = New FileBrowser("vveh")
+		FuelConsumptionMapFileBrowser = New FileBrowser("vmap")
+		DrivingCycleFileBrowser = New FileBrowser("vdri")
+		FullLoadCurveFileBrowser = New FileBrowser("vfld")
+		EngineFileBrowser = New FileBrowser("veng")
+		GearboxFileBrowser = New FileBrowser("vgbx")
+		DriverAccelerationFileBrowser = New FileBrowser("vacc")
+		AuxFileBrowser = New FileBrowser("vaux")
+		GearboxShiftPolygonFileBrowser = New FileBrowser("vgbs")
+		RetarderLossMapFileBrowser = New FileBrowser("vrlm")
+		TransmissionLossMapFileBrowser = New FileBrowser("vtlm")
+		TorqueConverterFileBrowser = New FileBrowser("vtcc")
+		fbTCCShift = New FileBrowser("vgbs")
+		fbCDx = New FileBrowser("vcdx")
+		DriverDecisionFactorVelocityDropFileBrowser = New FileBrowser("DfVelocityDrop")
+		DriverDecisionFactorTargetSpeedFileBrowser = New FileBrowser("DfTargetSpeed")
+		DriverDecisionFactorVelocityDropFileBrowser.Extensions = New String() {"csv"}
+		DriverDecisionFactorTargetSpeedFileBrowser.Extensions = New String() {"csv"}
+
+		ModalResultsFileBrowser = New FileBrowser("vmod")
+
+
+		'-------------------------------------------------------
+		TextFileBrowser.Extensions = New String() {"txt"}
+		JobfileFileBrowser.Extensions = New String() {"vecto"}
+		VehicleFileBrowser.Extensions = New String() {"vveh"}
+		FuelConsumptionMapFileBrowser.Extensions = New String() {"vmap"}
+		DrivingCycleFileBrowser.Extensions = New String() {"vdri"}
+		FullLoadCurveFileBrowser.Extensions = New String() {"vfld"}
+		EngineFileBrowser.Extensions = New String() {"veng"}
+		GearboxFileBrowser.Extensions = New String() {"vgbx"}
+		DriverAccelerationFileBrowser.Extensions = New String() {"vacc"}
+		AuxFileBrowser.Extensions = New String() {"vaux"}
+		GearboxShiftPolygonFileBrowser.Extensions = New String() {"vgbs"}
+		RetarderLossMapFileBrowser.Extensions = New String() {"vrlm"}
+		TransmissionLossMapFileBrowser.Extensions = New String() {"vtlm"}
+		TorqueConverterFileBrowser.Extensions = New String() {"vtcc"}
+		fbTCCShift.Extensions = New String() {"vgbs"}
+		fbCDx.Extensions = New String() {"vcdv", "vcdb"}
+
+		ModalResultsFileBrowser.Extensions = New String() {"vmod"}
+	End Sub
+
+	Private Sub FB_Close()
+		FolderFileBrowser.Close()
+		TextFileBrowser.Close()
+		JobfileFileBrowser.Close()
+		VehicleFileBrowser.Close()
+		FuelConsumptionMapFileBrowser.Close()
+		DrivingCycleFileBrowser.Close()
+		FullLoadCurveFileBrowser.Close()
+		EngineFileBrowser.Close()
+		GearboxFileBrowser.Close()
+		DriverAccelerationFileBrowser.Close()
+		AuxFileBrowser.Close()
+		GearboxShiftPolygonFileBrowser.Close()
+		RetarderLossMapFileBrowser.Close()
+		TransmissionLossMapFileBrowser.Close()
+		TorqueConverterFileBrowser.Close()
+		fbTCCShift.Close()
+		fbCDx.Close()
+		ModalResultsFileBrowser.Close()
+	End Sub
+
+#End Region
+
+	'Lock certain GUI elements while VECTO is running
+	Private Sub LockGUI(Lock As Boolean)
+		GUIlocked = Lock
+
+		PanelOptAllg.Enabled = Not Lock
+
+		BtGENup.Enabled = Not Lock
+		BtGENdown.Enabled = Not Lock
+		ButtonGENadd.Enabled = Not Lock
+		ButtonGENremove.Enabled = Not Lock
+		LvGEN.LabelEdit = Not Lock
+		ChBoxAllGEN.Enabled = Not Lock
+
+		btStartV3.Enabled = Not Lock
+	End Sub
+
+
+#Region "Form Init/Close"
+
+	'Initialise
+	Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
+		Dim x As Integer
+
+		GUIlocked = False
+		CheckLock = False
+		GENcheckAllLock = False
+		GENchecked = 0
+
+
+		'Load Tabs properly (otherwise problem with ListViews)
+		For x = 0 To TabControl1.TabCount - 1
+			TabControl1.TabPages(x).Show()
+		Next
+
+		LastModeName = ""
+
+		FB_Initialize()
+
+		Text = "VECTO " & VECTOvers & " / VectoCore " & COREvers
+
+
+		'FileLists
+		JobListView = New cFileListView(MyConfPath & "joblist.txt")
+		JobListView.LVbox = LvGEN
+		CycleListView = New cFileListView(MyConfPath & "cyclelist.txt")
+
+		JobListView.LoadList()
+
+		LoadOptions()
+
+		'Resize columns ... after Loading the @file-lists
+		LvGEN.Columns(1).Width = -2
+		LvMsg.Columns(2).Width = -2
+
+		'Initialize BackgroundWorker
+
+		VECTOworkerV3 = New BackgroundWorker()
+		AddHandler VECTOworkerV3.DoWork, AddressOf VectoWorkerV3_OnDoWork
+		AddHandler VECTOworkerV3.ProgressChanged, AddressOf VectoWorkerV3_OnProgressChanged
+		AddHandler VECTOworkerV3.RunWorkerCompleted, AddressOf VectoWorkerV3_OnRunWorkerCompleted
+
+		VECTOworkerV3.WorkerReportsProgress = True
+		VECTOworkerV3.WorkerSupportsCancellation = True
+
+
+		'Set mode (Batch/Standard)
+		ModeUpdate()
+
+#If DEBUG Then
+		Const LicCheck As Boolean = False
+#Else
+		Const LicCheck as Boolean = True
+#End If
+
+		'License check
+		If LicCheck And Not Lic.LICcheck() Then
+			MsgBox("License File invalid!" & vbCrLf & vbCrLf & Lic.FailMsg)
+			If Lic.CreateActFile(MyAppPath & "ActivationCode.dat") Then
+				MsgBox("Activation File created.")
+			Else
+				MsgBox("Failed to create Activation File! Is Directory Read-Only?")
+			End If
+			Close()
+		Else
+			GUIMsg(MessageType.Normal, "License File validated.")
+			If Lic.TimeWarn Then GUIMsg(MessageType.Warn, "License expiring date (y/m/d): " & Lic.ExpTime)
+		End If
+
+		DeclOnOff()
+	End Sub
+
+	Public Shared Sub LogMethod(level As String, message As String)
+		Try
+			If level = "Warn" Then
+				VECTOworkerV3.ReportProgress(100, New With {.Target = "ListBoxWarning", .Message = message})
+			ElseIf level = "Error" Or level = "Fatal" Then
+				VECTOworkerV3.ReportProgress(100, New With {.Target = "ListBoxError", .Message = message})
+
+			End If
+		Catch e As InvalidOperationException
+
+		End Try
+	End Sub
+
+	'Declaration mode GUI settings
+	Private Sub DeclOnOff()
+
+		If Cfg.DeclMode Then
+			Text = "VECTO " & COREvers & " - Declaration Mode"
+			Cfg.DeclInit()
+		Else
+			Text = "VECTO " & COREvers
+		End If
+
+		If Cfg.DeclMode Then
+			LastModeName = "Declaration"
+		Else
+			LastModeName = "Engineering"
+		End If
+
+		Status(LastModeName & " Mode")
+
+		LoadOptions()
+
+		LbDecl.Visible = Cfg.DeclMode
+	End Sub
+
+	'Shown Event (Form-Load finished) ... here StartUp Forms are loaded (DEV, GEN/ADV- Editor ..)
+	Private Sub F01_MAINForm_Shown(sender As Object, e As EventArgs) Handles Me.Shown
+		Dim fwelcome As WelcomeDialog
+
+		If Cfg.FirstRun Then
+			Cfg.FirstRun = False
+			fwelcome = New WelcomeDialog
+			fwelcome.ShowDialog()
+		End If
+		'End If
+	End Sub
+
+	'Open file
+
+	'Close
+	Private Sub F01_MAINForm_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
+
+		'Save File-Lists
+		SaveFileLists()
+
+		'Close log
+		LogFile.CloseLog()
+
+		'Config save
+		SetOptions()
+		Cfg.Save()
+
+		'File browser instances close
+		FB_Close()
+	End Sub
+
+#End Region
+
+	'Open file - Job, vehicle, engine, gearbox or signature file
+	Public Sub OpenVectoFile(File As String)
+
+		If Not IO.File.Exists(File) Then
+
+			GUIMsg(MessageType.Err, "File not found! (" & File & ")")
+			MsgBox("File not found! (" & File & ")", MsgBoxStyle.Critical)
+
+		Else
+
+			Select Case UCase(fEXT(File))
+				Case ".VGBX"
+					If Not GearboxForm.Visible Then
+						GearboxForm.Show()
+					Else
+						GearboxForm.JobDir = ""
+						If GearboxForm.WindowState = FormWindowState.Minimized Then GearboxForm.WindowState = FormWindowState.Normal
+						GearboxForm.BringToFront()
+					End If
+					GearboxForm.openGBX(File)
+				Case ".VVEH"
+					If Not VehicleForm.Visible Then
+						VehicleForm.Show()
+					Else
+						VehicleForm.JobDir = ""
+						If VehicleForm.WindowState = FormWindowState.Minimized Then VehicleForm.WindowState = FormWindowState.Normal
+						VehicleForm.BringToFront()
+					End If
+					VehicleForm.OpenVehicle(File)
+				Case ".VENG"
+					If Not EngineForm.Visible Then
+						EngineForm.Show()
+					Else
+						EngineForm.JobDir = ""
+						If EngineForm.WindowState = FormWindowState.Minimized Then EngineForm.WindowState = FormWindowState.Normal
+						EngineForm.BringToFront()
+					End If
+					EngineForm.OpenEngineFile(File)
+				Case ".VECTO"
+					OpenVECTOeditor(File)
+				Case ".VSIG"
+					OpenSigFile(File)
+				Case Else
+					MsgBox("Type '" & fEXT(File) & "' unknown!", MsgBoxStyle.Critical)
+			End Select
+
+		End If
+	End Sub
+
+
+#Region "Events"
+
+	Private Sub ButtonGENremove_Click(sender As Object, e As EventArgs) _
+		Handles ButtonGENremove.Click
+		RemoveJobFile()
+	End Sub
+
+	Private Sub ButtonGENadd_Click(sender As Object, e As EventArgs) _
+		Handles ButtonGENadd.Click
+		AddJobFile()
+	End Sub
+
+	Private Sub ListViewGEN_KeyDown(sender As Object, e As KeyEventArgs) _
+		Handles LvGEN.KeyDown
+		Select Case e.KeyCode
+			Case Keys.Delete, Keys.Back
+				If Not GUIlocked Then RemoveJobFile()
+			Case Keys.Enter
+				OpenJobFile()
+		End Select
+	End Sub
+
+	Private Sub ListViewGEN_DoubleClick(sender As Object, e As EventArgs) Handles LvGEN.DoubleClick
+		If LvGEN.SelectedItems.Count > 0 Then
+			LvGEN.SelectedItems(0).Checked = Not LvGEN.SelectedItems(0).Checked
+			OpenJobFile()
+		End If
+	End Sub
+
+	Private Sub LvGEN_ItemChecked(sender As Object, e As ItemCheckedEventArgs) _
+		Handles LvGEN.ItemChecked
+
+		If e.Item.Checked Then
+			GENchecked += 1
+		Else
+			GENchecked -= 1
+		End If
+
+		If CheckLock Then Exit Sub
+		UpdateJobTabText()
+	End Sub
+
+	Private Sub ChBoxAllGEN_CheckedChanged(sender As Object, e As EventArgs) _
+		Handles ChBoxAllGEN.CheckedChanged
+
+		If GENcheckAllLock And ChBoxAllGEN.CheckState = CheckState.Indeterminate Then Exit Sub
+
+		CheckAllGEN(ChBoxAllGEN.Checked)
+	End Sub
+
+	Private Sub CheckAllGEN(Check As Boolean)
+		Dim x As ListViewItem
+
+		CheckLock = True
+		LvGEN.BeginUpdate()
+
+		For Each x In LvGEN.Items
+			x.Checked = Check
+		Next
+
+		LvGEN.EndUpdate()
+		CheckLock = False
+
+		GENchecked = LvGEN.CheckedItems.Count
+		UpdateJobTabText()
+	End Sub
+
+	Private Sub ListGEN_DragEnter(sender As Object, e As DragEventArgs) _
+		Handles LvGEN.DragEnter
+		If (e.Data.GetDataPresent(DataFormats.FileDrop)) Then
+			e.Effect = DragDropEffects.Copy
+		End If
+	End Sub
+
+	Private Sub ListGEN_DragDrop(sender As Object, e As DragEventArgs) _
+		Handles LvGEN.DragDrop
+		Dim f As String()
+		f = CType(e.Data.GetData(DataFormats.FileDrop), Array)
+		AddToJobListView(f)
+	End Sub
+
+	Private Sub BtGENup_Click(sender As Object, e As EventArgs) Handles BtGENup.Click
+		MoveItem(LvGEN, True)
+	End Sub
+
+	Private Sub BtGENdown_Click(sender As Object, e As EventArgs) Handles BtGENdown.Click
+		MoveItem(LvGEN, False)
+	End Sub
+
+#End Region
+
+	'Remove selected file(s) from job list
+	Private Sub RemoveJobFile()
+		Dim lastindx As Integer
+		Dim SelIx() As Integer
+		Dim i As Integer
+
+		If LvGEN.SelectedItems.Count < 1 Then
+			If LvGEN.Items.Count = 1 Then
+				LvGEN.Items(0).Selected = True
+			Else
+				Exit Sub
+			End If
+		End If
+
+		LvGEN.BeginUpdate()
+		CheckLock = True
+
+		ReDim SelIx(LvGEN.SelectedItems.Count - 1)
+		LvGEN.SelectedIndices.CopyTo(SelIx, 0)
+
+		lastindx = LvGEN.SelectedIndices(LvGEN.SelectedItems.Count - 1)
+
+		For i = UBound(SelIx) To 0 Step -1
+			LvGEN.Items.RemoveAt(SelIx(i))
+		Next
+
+		If lastindx < LvGEN.Items.Count Then
+			LvGEN.Items(lastindx).Selected = True
+		Else
+			If LvGEN.Items.Count > 0 Then LvGEN.Items(LvGEN.Items.Count - 1).Selected = True
+		End If
+
+		LvGEN.EndUpdate()
+		CheckLock = False
+
+		GENchecked = LvGEN.CheckedItems.Count
+		UpdateJobTabText()
+	End Sub
+
+	'Browse for job file(s) and add to job list with AddToJobListView
+	Private Sub AddJobFile()
+		Dim x As String()
+		Dim Chck As Boolean = False
+
+		x = New String() {""}
+
+		'STANDARD/BATCH
+		If JobfileFileBrowser.OpenDialog("", True, "vecto") Then
+			Chck = True
+			x = JobfileFileBrowser.Files
+		End If
+
+		If Chck Then AddToJobListView(x)
+	End Sub
+
+	'Open file in list
+	Private Sub OpenJobFile()
+		Dim f As String
+
+		If LvGEN.SelectedItems.Count < 1 Then
+			If LvGEN.Items.Count = 1 Then
+				LvGEN.Items(0).Selected = True
+			Else
+				Exit Sub
+			End If
+		End If
+
+		f = LvGEN.SelectedItems(0).SubItems(0).Text
+		f = fFileRepl(f)
+		If Not File.Exists(f) Then
+			MsgBox(f & " not found!")
+		Else
+			OpenVECTOeditor(f)
+		End If
+	End Sub
+
+	'Add File to job listview (multiple files)
+	Private Sub AddToJobListView(Path As String(), Optional ByVal Txt As String = " ")
+		Dim pDim As Int16
+		Dim p As Int16
+		Dim f As Int16
+		Dim fList As String()
+		Dim fListDim As Int16 = -1
+		Dim ListViewItem0 As ListViewItem
+
+		'If VECTO runs: Cancel operation (because Mode-change during calculation is not very clever)
+		If VECTOworkerV3.IsBusy Then Exit Sub
+
+		pDim = UBound(Path)
+		ReDim fList(0)	   'um Nullverweisausnahme-Warnung zu verhindern
+
+		'******************************************* Begin Update '*******************************************
+		LvGEN.BeginUpdate()
+		CheckLock = True
+
+		LvGEN.SelectedIndices.Clear()
+
+		If pDim = 0 Then
+			fListDim = LvGEN.Items.Count - 1
+			ReDim fList(fListDim)
+			For f = 0 To fListDim
+				fList(f) = fFileRepl(LvGEN.Items(f).SubItems(0).Text)
+			Next
+		End If
+
+		For p = 0 To pDim
+
+			If pDim = 0 Then
+
+				For f = 0 To fListDim
+
+					'If file already exists in the list: Do not append (only when a single file)
+					If UCase(Path(p)) = UCase(fList(f)) Then
+
+						'Status reset
+						LvGEN.Items(f).SubItems(1).Text = Txt
+						LvGEN.Items(f).BackColor = Color.FromKnownColor(KnownColor.Window)
+						LvGEN.Items(f).ForeColor = Color.FromKnownColor(KnownColor.WindowText)
+
+						'Element auswählen und anhaken |@@| Element selection and hook
+						LvGEN.Items(f).Selected = True
+						LvGEN.Items(f).Checked = True
+						LvGEN.Items(f).EnsureVisible()
+
+						GoTo lbFound
+					End If
+				Next
+
+			End If
+
+			'Otherwise: Add File (without WorkDir)
+			ListViewItem0 = New ListViewItem(Path(p))	'fFileWD(Path(p)))
+			ListViewItem0.SubItems.Add(" ")
+			ListViewItem0.Checked = True
+			ListViewItem0.Selected = True
+			LvGEN.Items.Add(ListViewItem0)
+			ListViewItem0.EnsureVisible()
+lbFound:
+		Next
+
+		LvGEN.EndUpdate()
+		CheckLock = False
+		'******************************************* End Update '*******************************************
+
+		'Number update
+		GENchecked = LvGEN.CheckedItems.Count
+		UpdateJobTabText()
+	End Sub
+
+	'Add File to job listview (single file)
+	Public Sub AddToJobListView(Path As String, Optional ByVal Txt As String = " ")
+		Dim p(0) As String
+		p(0) = Path
+		AddToJobListView(p, Txt)
+	End Sub
+
+	'Update job files counter in tab titel
+	Private Sub UpdateJobTabText()
+		Dim c As Integer
+		c = LvGEN.Items.Count
+
+		TabPageGEN.Text = "Job Files ( " & GENchecked & " / " & c & " )"
+
+		GENcheckAllLock = True
+
+		If GENchecked = 0 Then
+			ChBoxAllGEN.CheckState = CheckState.Unchecked
+		ElseIf GENchecked = c Then
+			ChBoxAllGEN.CheckState = CheckState.Checked
+		Else
+			ChBoxAllGEN.CheckState = CheckState.Indeterminate
+		End If
+
+		GENcheckAllLock = False
+	End Sub
+
+
+#Region "Toolstrip"
+
+	'New Job file
+	Private Sub ToolStripBtNew_Click(sender As Object, e As EventArgs) Handles ToolStripBtNew.Click
+		OpenVECTOeditor("<New>")
+	End Sub
+
+	'Open input file
+	Private Sub ToolStripBtOpen_Click(sender As Object, e As EventArgs) Handles ToolStripBtOpen.Click
+
+		If JobfileFileBrowser.OpenDialog("", False, "vecto,vveh,vgbx,veng,vsig") Then
+			OpenVectoFile(JobfileFileBrowser.Files(0))
+		End If
+	End Sub
+
+	Private Sub GENEditorToolStripMenuItem1_Click(sender As Object, e As EventArgs) _
+		Handles GENEditorToolStripMenuItem1.Click
+		OpenVECTOeditor("<New>")
+	End Sub
+
+	Private Sub VEHEditorToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles VEHEditorToolStripMenuItem.Click
+		If Not VehicleForm.Visible Then
+			VehicleForm.Show()
+		Else
+			If VehicleForm.WindowState = FormWindowState.Minimized Then VehicleForm.WindowState = FormWindowState.Normal
+			VehicleForm.BringToFront()
+		End If
+	End Sub
+
+	Private Sub EngineEditorToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles EngineEditorToolStripMenuItem.Click
+		If Not EngineForm.Visible Then
+			EngineForm.Show()
+		Else
+			If EngineForm.WindowState = FormWindowState.Minimized Then EngineForm.WindowState = FormWindowState.Normal
+			EngineForm.BringToFront()
+		End If
+	End Sub
+
+	Private Sub GearboxEditorToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles GearboxEditorToolStripMenuItem.Click
+		If Not GearboxForm.Visible Then
+			GearboxForm.Show()
+		Else
+			If GearboxForm.WindowState = FormWindowState.Minimized Then GearboxForm.WindowState = FormWindowState.Normal
+			GearboxForm.BringToFront()
+		End If
+	End Sub
+
+	Private Sub GraphToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles GraphToolStripMenuItem.Click
+		Dim FGraph As New GraphForm
+		FGraph.Show()
+	End Sub
+
+	Private Sub SignOrVerifyFilesToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles SignOrVerifyFilesToolStripMenuItem.Click
+		If Not FileSignDialog.Visible Then
+			FileSignDialog.Show()
+		Else
+			If FileSignDialog.WindowState = FormWindowState.Minimized Then FileSignDialog.WindowState = FormWindowState.Normal
+			FileSignDialog.BringToFront()
+		End If
+	End Sub
+
+	Private Sub OpenLogToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles OpenLogToolStripMenuItem.Click
+		Process.Start(MyAppPath & "log.txt")
+	End Sub
+
+	Private Sub SettingsToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles SettingsToolStripMenuItem.Click
+		Settings.ShowDialog()
+	End Sub
+
+	Private Sub UserManualToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles UserManualToolStripMenuItem.Click
+		If File.Exists(MyAppPath & "User Manual\help.html") Then
+			Dim BrowserRegistryString As String =
+					My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString
+			Dim DefaultBrowserPath As String =
+					Regex.Match(BrowserRegistryString, "(\"".*?\"")").Captures(0).ToString
+			Process.Start(DefaultBrowserPath, Uri.EscapeDataString(MyAppPath & "User Manual\help.html"))
+		Else
+			MsgBox("User Manual not found!", MsgBoxStyle.Critical)
+		End If
+	End Sub
+
+	Private Sub UpdateNotesToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles UpdateNotesToolStripMenuItem.Click
+		If File.Exists(MyAppPath & "User Manual\Release Notes.pdf") Then
+			Process.Start(MyAppPath & "User Manual\Release Notes.pdf")
+		Else
+			MsgBox("Release Notes not found!", MsgBoxStyle.Critical)
+		End If
+	End Sub
+
+	Private Sub ReportBugViaCITnetToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles ReportBugViaCITnetToolStripMenuItem.Click
+		JiraDialog.ShowDialog()
+	End Sub
+
+	Private Sub CreateActivationFileToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles CreateActivationFileToolStripMenuItem.Click
+		If MsgBox("Create Activation File ?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
+			If Lic.CreateActFile(MyAppPath & "ActivationCode.dat") Then
+				GUIMsg(MessageType.Normal, "Activation File created.")
+			Else
+				GUIMsg(MessageType.Err, "Failed to create Activation File!")
+				MsgBox("ERROR! Failed to create Activation File!", MsgBoxStyle.Critical)
+			End If
+		End If
+	End Sub
+
+	Private Sub AboutVECTOToolStripMenuItem1_Click(sender As Object, e As EventArgs) _
+		Handles AboutVECTOToolStripMenuItem1.Click
+		AboutBox.ShowDialog()
+	End Sub
+
+
+#End Region
+
+	'Move job/cycle file up or down in list view
+	Private Sub MoveItem(ByRef ListV As ListView, MoveUp As Boolean)
+		Dim x As Int32
+		Dim y As Int32
+		Dim y1 As Int32
+		Dim items() As String
+		Dim check() As Boolean
+		Dim index() As Integer
+		Dim ListViewItem0 As ListViewItem
+
+		If GUIlocked Then Exit Sub
+
+		'Cache Selected Items
+		y1 = ListV.SelectedItems.Count - 1
+		ReDim items(y1)
+		ReDim check(y1)
+		ReDim index(y1)
+		y = 0
+		For Each x In ListV.SelectedIndices
+			items(y) = ListV.Items(x).SubItems(0).Text
+			check(y) = ListV.Items(x).Checked
+			If MoveUp Then
+				If x = 0 Then Exit Sub
+				index(y) = x - 1
+			Else
+				If x = ListV.Items.Count - 1 Then Exit Sub
+				index(y) = x + 1
+			End If
+			y += 1
+		Next
+
+		ListV.BeginUpdate()
+
+		'Delete Selected Items
+		For Each ListViewItem0 In ListV.SelectedItems
+			ListViewItem0.Remove()
+		Next
+
+		'Items select and Insert
+		For y = 0 To y1
+			If Not check(y) Then GENchecked += 1
+			ListViewItem0 = ListV.Items.Insert(index(y), items(y))
+			ListViewItem0.SubItems.Add(" ")
+			ListViewItem0.Checked = check(y)
+			ListV.SelectedIndices.Add(index(y))
+		Next
+
+		ListV.EndUpdate()
+	End Sub
+
+
+#Region "job/cycle file List - Context Menu"
+
+	'Save List
+	Private Sub SaveListToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles SaveListToolStripMenuItem.Click
+		If TextFileBrowser.SaveDialog("") Then
+			If ConMenTarJob Then
+				JobListView.SaveList(TextFileBrowser.Files(0))
+			Else
+				CycleListView.SaveList(TextFileBrowser.Files(0))
+			End If
+		End If
+	End Sub
+
+	'Load List
+	Private Sub LoadListToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles LoadListToolStripMenuItem.Click
+
+		If GUIlocked Then Exit Sub
+
+		If TextFileBrowser.OpenDialog("") Then
+
+			If ConMenTarJob Then 'GEN
+				JobListView.LoadList(TextFileBrowser.Files(0))
+				GENchecked = LvGEN.CheckedItems.Count
+				UpdateJobTabText()
+			Else 'DRI
+				'Mode toggle 
+				CycleListView.LoadList(TextFileBrowser.Files(0))
+			End If
+
+		End If
+	End Sub
+
+	'Load Default List
+	Private Sub LoadDefaultListToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles LoadDefaultListToolStripMenuItem.Click
+
+		If GUIlocked Then Exit Sub
+
+		If ConMenTarJob Then
+
+			JobListView.LoadList()
+
+			GENchecked = LvGEN.CheckedItems.Count
+			UpdateJobTabText()
+		Else
+			CycleListView.LoadList()
+
+		End If
+	End Sub
+
+	'Clear List
+	Private Sub ClearListToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles ClearListToolStripMenuItem.Click
+
+		If GUIlocked Then Exit Sub
+
+		ConMenTarget.Items.Clear()
+		If ConMenTarJob Then
+			GENchecked = LvGEN.CheckedItems.Count
+			UpdateJobTabText()
+		End If
+	End Sub
+
+#End Region
+
+	'VECTO Start button - Calls VECTO_Launcher or aborts calculation
+
+	Private Sub btStartV3_Click(sender As Object, e As EventArgs) Handles btStartV3.Click
+		If Not VECTOworkerV3.IsBusy Then
+			'Save Lists for Crash
+			SaveFileLists()
+
+			LvGEN.SelectedItems.Clear()
+
+			If LvGEN.CheckedItems.Count = 0 Then
+				GUIMsg(MessageType.Err, "No job file selected!")
+				Exit Sub
+			End If
+
+			Status("Launching VECTO ...")
+			JobFileList.Clear()
+			JobFileList.AddRange(From listViewItem In LvGEN.CheckedItems Select fFileRepl(listViewItem.SubItems(0).Text))
+
+			SetOptions()
+			Cfg.Save()
+			ClearMsg()
+
+			LockGUI(True)
+			btStartV3.Enabled = True
+			btStartV3.Text = "STOP"
+			btStartV3.Image = My.Resources.Stop_icon
+
+			ToolStripProgBarOverall.Value = 0
+			ToolStripProgBarOverall.Style = ProgressBarStyle.Continuous
+			ToolStripProgBarOverall.Visible = True
+
+			VECTOworkerV3.RunWorkerAsync()
+		Else
+			btStartV3.Enabled = False
+			btStartV3.Text = "Aborting..."
+			btStartV3.Image = My.Resources.Play_icon_gray
+			VECTOworkerV3.CancelAsync()
+		End If
+	End Sub
+
+	Private Sub VectoWorkerV3_OnDoWork(sender As BackgroundWorker, e As DoWorkEventArgs)
+		AllowSleepOFF()
+
+		Dim sumFileWriter As FileOutputWriter = New FileOutputWriter(JobFileList(0))
+		Dim sumWriter As SummaryDataContainer = New SummaryDataContainer(sumFileWriter)
+		Dim jobContainer As JobContainer = New JobContainer(sumWriter)
+
+		Dim mode As ExecutionMode
+		If Cfg.DeclMode Then
+			mode = ExecutionMode.Declaration
+		Else
+			mode = ExecutionMode.Engineering
+			Physics.FuelDensity = New SI(Cfg.FuelDens).Kilo.Gramm.Per.Cubic.Dezi.Meter.Cast(Of KilogramPerCubicMeter)()
+			Physics.AirDensity = New SI(Cfg.AirDensity).Kilo.Gramm.Per.Cubic.Meter.Cast(Of KilogramPerCubicMeter)()
+			Physics.CO2PerFuelWeight = Cfg.CO2perFC
+		End If
+
+		'dictionary of run-identifiers to fileWriters (used for output directory of modfile)
+		Dim fileWriters As Dictionary(Of Integer, FileOutputWriter) = New Dictionary(Of Integer, FileOutputWriter)
+
+		'list of finished runs
+		Dim finishedRuns As List(Of Integer) = New List(Of Integer)
+
+		For Each jobFile As String In JobFileList
+			Try
+				sender.ReportProgress(0, New With {.Target = "ListBox", .Message = "Reading File " + jobFile, .Link = jobFile})
+
+				Dim dataProvider As IInputDataProvider = JSONInputDataFactory.ReadJsonJob(jobFile)
+				Dim fileWriter As FileOutputWriter = New FileOutputWriter(jobFile)
+
+				Dim runsFactory As SimulatorFactory = New SimulatorFactory(mode, dataProvider, fileWriter)
+				runsFactory.WriteModalResults = Cfg.ModOut
+				runsFactory.ModalResults1Hz = Cfg.Mod1Hz
+
+				For Each runId As Integer In jobContainer.AddRuns(runsFactory)
+					fileWriters.Add(runId, fileWriter)
+				Next
+
+				sender.ReportProgress(0, New With {.Target = "ListBox", .Message = "Finished Reading Data for job: " + jobFile})
+
+			Catch ex As Exception
+				MsgBox(String.Format("ERROR running job {0}: {1}", jobFile, ex.Message), MsgBoxStyle.Critical)
+				sender.ReportProgress(0, New With {.Target = "ListBoxError", .Message = ex.Message})
+				Return
+			End Try
+		Next
+
+		'print detected cycles
+		For Each cycle As JobContainer.CycleTypeDescription In jobContainer.GetCycleTypes()
+			sender.ReportProgress(0,
+								New With {.Target = "ListBox", .Message = String.Format("Detected Cycle {0}: {1}", cycle.Name, cycle.CycleType)})
+		Next
+
+		sender.ReportProgress(0,
+							New _
+								With {.Target = "ListBox",
+								.Message = _
+								String.Format("Starting Simulation ({0} Jobs, {1} Runs)", JobFileList.Count, jobContainer.GetProgress().Count)})
+
+		jobContainer.Execute(True)
+
+		Dim start As DateTime = DateTime.Now()
+
+		While Not jobContainer.AllCompleted
+			'cancel the job if thread is interrupted (button "Stop" clicked)
+			If sender.CancellationPending Then
+				jobContainer.Cancel()
+				Return
+			End If
+
+			Dim progress As Dictionary(Of Integer, JobContainer.ProgressEntry) = jobContainer.GetProgress()
+			Dim sumProgress As Double = progress.Sum(Function(pair) pair.Value.Progress)
+			Dim duration As Double = (DateTime.Now() - start).TotalSeconds
+
+			sender.ReportProgress(Int((sumProgress * 100.0) / progress.Count), New With {.Target = "Status",
+									.Message = _
+									String.Format("Duration: {0:0}s, Current Progress: {1:P} ({2})", duration, sumProgress / progress.Count,
+												String.Join(", ", progress.Select(Function(pair) String.Format("{0,4:P}", pair.Value.Progress))))})
+
+			Dim justFinished As Dictionary(Of Integer, JobContainer.ProgressEntry) =
+					progress.Where(Function(proc) proc.Value.Done AndAlso Not finishedRuns.Contains(proc.Key)).ToDictionary(
+						Function(pair) pair.Key, Function(pair) pair.Value)
+			PrintRuns(justFinished, fileWriters)
+			finishedRuns.AddRange(justFinished.Select(Function(pair) pair.Key))
+			Thread.Sleep(100)
+		End While
+
+		Dim remainingRuns As Dictionary(Of Integer, JobContainer.ProgressEntry) =
+				jobContainer.GetProgress().Where(Function(proc) proc.Value.Done AndAlso Not finishedRuns.Contains(proc.Key)).
+				ToDictionary(Function(pair) pair.Key, Function(pair) pair.Value)
+		PrintRuns(remainingRuns, fileWriters)
+
+		finishedRuns.Clear()
+		fileWriters.Clear()
+
+		For Each progressEntry As KeyValuePair(Of Integer, JobContainer.ProgressEntry) In jobContainer.GetProgress()
+			sender.ReportProgress(100, New With {.Target = "ListBox",
+									.Message = String.Format("{0,-60} {1,8:P} {2,10:F2}s - {3}",
+															String.Format("{0} {1} {2}", progressEntry.Value.RunName, progressEntry.Value.CycleName,
+																		progressEntry.Value.RunSuffix),
+															progressEntry.Value.Progress, progressEntry.Value.ExecTime / 1000.0,
+															IIf(progressEntry.Value.Success, "Success", "Aborted"))})
+			If (Not progressEntry.Value.Success) Then
+				sender.ReportProgress(100, New With {.Target = "ListBox", .Message = progressEntry.Value.Error.Message})
+			End If
+
+		Next
+
+		For Each job As String In JobFileList
+			Dim report As String = New FileOutputWriter(job).PDFReportName
+			If File.Exists(report) Then
+				sender.ReportProgress(100,
+									New _
+										With {.Target = "ListBox",
+										.Message = String.Format("PDF-Report for '{0}' written to {1}", Path.GetFileName(job), report),
+										.Link = "<RUN>" + report})
+			End If
+		Next
+
+		If File.Exists(sumFileWriter.SumFileName) Then
+			sender.ReportProgress(100, New With {.Target = "ListBox",
+									.Message = String.Format("Sum File written to {0}", sumFileWriter.SumFileName),
+									.Link = sumFileWriter.SumFileName})
+		End If
+
+		sender.ReportProgress(100,
+							New _
+								With {.Target = "ListBox",
+								.Message = String.Format("Simulation Finished in {0:0}s", (DateTime.Now() - start).TotalSeconds)})
+	End Sub
+
+
+	Private Shared Sub PrintRuns(progress As Dictionary(Of Integer, JobContainer.ProgressEntry),
+								fileWriters As Dictionary(Of Integer, FileOutputWriter))
+		For Each p As KeyValuePair(Of Integer, JobContainer.ProgressEntry) In progress
+			Dim modFilename As String = fileWriters(p.Key).GetModDataFileName(p.Value.RunName, p.Value.CycleName,
+																			p.Value.RunSuffix + IIf(Cfg.Mod1Hz, "_1Hz", ""))
+
+			Dim runName As String = String.Format("{0} {1} {2}", p.Value.RunName, p.Value.CycleName, p.Value.RunSuffix)
+
+			If Not p.Value.Error Is Nothing Then
+				VECTOworkerV3.ReportProgress(0,
+											New _
+												With {.Target = "ListBoxError",
+												.Message = String.Format("Finished Run {0} with ERROR: {1}", runName, p.Value.Error.Message),
+												.Link = modFilename})
+			Else
+				VECTOworkerV3.ReportProgress(0,
+											New With {.Target = "ListBox", .Message = String.Format("Finished Run {0} successfully.", runName)})
+			End If
+
+			If (File.Exists(modFilename)) Then
+				VECTOworkerV3.ReportProgress(0,
+											New _
+												With {.Target = "ListBox",
+												.Message = String.Format("Run {0}: Modal Results written to {1}", runName, modFilename), .Link = modFilename
+												})
+			End If
+		Next
+	End Sub
+
+	Private Sub VectoWorkerV3_OnProgressChanged(sender As Object, e As ProgressChangedEventArgs)
+		Select Case e.UserState.Target
+			Case "ListBox"
+				If e.UserState.GetType().GetProperty("Link") Is Nothing Then
+					MSGtoForm(MessageType.Normal, e.UserState.Message, "", "")
+				Else
+					MSGtoForm(MessageType.Normal, e.UserState.Message, "", e.UserState.Link)
+				End If
+			Case "ListBoxWarning"
+				MSGtoForm(MessageType.Warn, e.UserState.Message, "", "")
+				Return
+			Case "ListBoxError"
+				MSGtoForm(MessageType.Err, e.UserState.Message, "", "")
+				Return
+			Case "Status"
+				Status(e.UserState.Message)
+		End Select
+
+		ToolStripProgBarOverall.Value = e.ProgressPercentage
+	End Sub
+
+	Private Sub VectoWorkerV3_OnRunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs)
+
+		'Progbar reset
+		ToolStripProgBarOverall.Visible = False
+		ToolStripProgBarOverall.Style = ProgressBarStyle.Continuous
+		ToolStripProgBarOverall.Value = 0
+		ProgSecStop()
+
+		LvGEN.SelectedIndices.Clear()
+
+		'ShutDown when Unexpected Error
+		If e.Error IsNot Nothing Then
+			MsgBox("An Unexpected Error occurred!" & ChrW(10) & ChrW(10) &
+					e.Error.Message.ToString, MsgBoxStyle.Critical, "Unexpected Error")
+			LogFile.WriteToLog(MessageType.Err, ">>>Unexpected Error:" & e.Error.ToString())
+		End If
+
+		'Options enable / GUI reset
+		LockGUI(False)
+		btStartV3.Text = "START"
+		btStartV3.Image = My.Resources.Play_icon
+		Status(LastModeName & " Mode")
+
+		'SLEEP reactivate
+		AllowSleepON()
+	End Sub
+
+
+	Private Sub ModeUpdate()
+
+		'Save lists
+		JobListView.SaveList()
+
+		'GUI changes according to current mode
+
+		If Cfg.DeclMode Then
+			LastModeName = "Declaration"
+		Else
+			LastModeName = "Engineering"
+		End If
+
+		'Update job counter
+		GENchecked = LvGEN.CheckedItems.Count
+		UpdateJobTabText()
+
+		'Status label
+		Status(LastModeName & " Mode")
+	End Sub
+
+	'Class for ListView control - Job and cycle lists
+	Private Class cFileListView
+		Private ReadOnly FilePath As String
+		Private LoadedDefault As Boolean
+		Public LVbox As ListView
+
+		Public Sub New(Path As String)
+			FilePath = Path
+			LoadedDefault = False
+		End Sub
+
+		Public Sub SaveList(Optional ByVal Path As String = "")
+			Dim x As Int32
+			Dim file As CsvFile
+			'If LVbox.Items.Count = 0 Then Exit Sub
+			file = New CsvFile
+			If Path = "" Then
+				If Not LoadedDefault Then Exit Sub
+				Path = FilePath
+			End If
+			file.OpenWrite(Path, "?")
+			For x = 1 To LVbox.Items.Count
+				file.WriteLine(LVbox.Items(x - 1).SubItems(0).Text, Math.Abs(CInt(LVbox.Items(x - 1).Checked)))
+			Next
+			file.Close()
+		End Sub
+
+		Public Sub LoadList(Optional ByVal Path As String = "")
+			Dim line As String()
+			Dim NoCheck As Boolean
+			Dim file As CsvFile
+			Dim ListViewItem0 As ListViewItem
+
+			If Path = "" Then
+				Path = FilePath
+				LoadedDefault = True
+			End If
+
+			file = New CsvFile
+
+			If Not file.OpenRead(Path, "?") Then
+				If Not LoadedDefault Then GUIMsg(MessageType.Err, "Cannot open file (" & Path & ")!")
+				Exit Sub
+			End If
+
+			MainForm.CheckLock = True
+			LVbox.BeginUpdate()
+
+			LVbox.Items.Clear()
+
+			NoCheck = False
+			Do While Not file.EndOfFile
+				line = file.ReadLine
+
+				ListViewItem0 = New ListViewItem(line(0))
+				ListViewItem0.SubItems.Add(" ")
+
+				If NoCheck Then
+					ListViewItem0.Checked = True
+				Else
+					If UBound(line) < 1 Then
+						NoCheck = True
+						ListViewItem0.Checked = True
+					Else
+						If IsNumeric(line(1)) Then
+							ListViewItem0.Checked = CBool(line(1))
+						Else
+							ListViewItem0.Checked = True
+						End If
+					End If
+				End If
+				LVbox.Items.Add(ListViewItem0)
+			Loop
+
+			file.Close()
+
+			LVbox.EndUpdate()
+			MainForm.CheckLock = False
+
+			If LVbox.Items.Count > 0 Then LVbox.Items(LVbox.Items.Count - 1).EnsureVisible()
+		End Sub
+	End Class
+
+
+	'Open Job Editor and open file (or new file)
+	Friend Sub OpenVECTOeditor(x As String)
+
+		If Not VectoJobForm.Visible Then
+			VectoJobForm.Show()
+		Else
+			If VectoJobForm.WindowState = FormWindowState.Minimized Then VectoJobForm.WindowState = FormWindowState.Normal
+			VectoJobForm.BringToFront()
+		End If
+
+		If x = "<New>" Then
+			VectoJobForm.VECTOnew()
+		Else
+			VectoJobForm.VECTOload2Form(x)
+		End If
+
+		VectoJobForm.Activate()
+	End Sub
+
+	'Open signature file (.vsig)
+	Friend Sub OpenSigFile(file As String)
+		If Not FileSignDialog.Visible Then
+			FileSignDialog.Show()
+
+		End If
+		FileSignDialog.WindowState = FormWindowState.Normal
+		FileSignDialog.TbSigFile.Text = file
+		FileSignDialog.VerifySigFile()
+		FileSignDialog.Activate()
+	End Sub
+
+	'Save job and cycle file lists
+	Private Sub SaveFileLists()
+		JobListView.SaveList()
+		'If Cfg.BatchMode Then CycleListView.SaveList()
+	End Sub
+
+
+#Region "Progressbar controls"
+
+	'Initialise progress bar (Start of next job in calculation)
+
+	'Stop - Hide progress bar
+	Private Sub ProgSecStop()
+		TmProgSec.Stop()
+		ToolStripProgBarJob.Visible = False
+		ToolStripProgBarJob.Value = 0
+	End Sub
+
+	'Timer to update progress bar regularly
+	Private Sub TmProgSec_Tick(sender As Object, e As EventArgs) Handles TmProgSec.Tick
+		If GUItest0.TestActive Then
+			Call GUItest0.TestTick()
+			Exit Sub
+		Else
+			If Not ProgBarCtrl.ProgLock Then ProgSecUpdate()
+		End If
+	End Sub
+
+	'Update progress bar (timer controlled)
+	Private Sub ProgSecUpdate()
+
+		With ProgBarCtrl
+
+			If .ProgJobInt > 0 AndAlso ToolStripProgBarJob.Style = ProgressBarStyle.Marquee Then
+				ToolStripProgBarJob.Style = ProgressBarStyle.Continuous
+			End If
+
+			If .ProgJobInt < 0 Then
+				.ProgJobInt = 0
+			ElseIf .ProgJobInt > 100 Then
+				.ProgJobInt = 100
+			End If
+
+			ToolStripProgBarJob.Value = .ProgJobInt
+
+			If .ProgOverallStartInt > -1 Then
+				ToolStripProgBarOverall.Value =
+					CInt(.ProgOverallStartInt + (.PgroOverallEndInt - .ProgOverallStartInt) * .ProgJobInt / 100)
+			End If
+
+		End With
+	End Sub
+
+
+#End Region
+
+#Region "Options Tab"
+
+	'Load options from config class
+	Public Sub LoadOptions()
+		ChBoxModOut.Checked = Cfg.ModOut
+		ChBoxMod1Hz.Checked = Cfg.Mod1Hz
+
+		RbDecl.Checked = Cfg.DeclMode
+	End Sub
+
+	'Update config class from options in GUI, e.g. before running calculations 
+	Private Sub SetOptions()
+		Cfg.ModOut = ChBoxModOut.Checked
+		Cfg.Mod1Hz = ChBoxMod1Hz.Checked
+	End Sub
+
+#End Region
+
+
+	'Add message to message list
+	Public Sub MSGtoForm(ID As MessageType, Msg As String, Source As String, Link As String)
+
+		If (InvokeRequired) Then
+			'Me.Invoke(New MsgToFormDelegate(AddressOf MSGtoForm), ID, Msg, Source, Link)
+			Exit Sub
+		End If
+		Dim lv0 As ListViewItem
+
+		lv0 = New ListViewItem
+		lv0.Text = Msg
+		lv0.SubItems.Add(Now.ToString("HH:mm:ss.ff"))
+		lv0.SubItems.Add(Source)
+
+		If LvMsg.Items.Count > 9999 Then LvMsg.Items.RemoveAt(0)
+
+		LogFile.WriteToLog(ID, Msg & vbTab & Source)
+
+		Select Case ID
+
+			Case MessageType.Err
+
+				lv0.BackColor = Color.Red
+				lv0.ForeColor = Color.White
+
+			Case MessageType.Warn
+
+				lv0.BackColor = Color.Khaki				 'FromArgb(218, 125, 0) 'DarkOrange
+				lv0.ForeColor = Color.Black
+
+			Case Else
+
+				If ID = MessageType.NewJob Then
+					lv0.BackColor = Color.LightGray
+					lv0.ForeColor = Color.DarkBlue
+				End If
+
+		End Select
+
+		If Link <> "" Then
+			If Not ID = MessageType.Err Then lv0.ForeColor = Color.Blue
+			lv0.SubItems(0).Font = New Font(LvMsg.Font, FontStyle.Underline)
+			lv0.Tag = Link
+		End If
+
+
+		LvMsg.Items.Add(lv0)
+
+		lv0.EnsureVisible()
+	End Sub
+
+
+	'Open link in message list
+	Private Sub LvMsg_MouseClick(sender As Object, e As MouseEventArgs) Handles LvMsg.MouseClick
+		Dim txt As String
+		If LvMsg.SelectedIndices.Count > 0 Then
+			If Not LvMsg.SelectedItems(0).Tag Is Nothing Then
+				If _
+					Len(CStr(LvMsg.SelectedItems(0).Tag)) > 4 AndAlso
+					Microsoft.VisualBasic.Left(CStr(LvMsg.SelectedItems(0).Tag), 4) = "<UM>" Then
+					txt = CStr(LvMsg.SelectedItems(0).Tag).Replace("<UM>", MyAppPath & "User Manual")
+					txt = txt.Replace(" ", "%20")
+					txt = txt.Replace("\", "/")
+					txt = "file:///" & txt
+					Try
+						Process.Start(txt)
+					Catch ex As Exception
+						MsgBox("Cannot open link! (-_-;)")
+					End Try
+				ElseIf _
+					Len(CStr(LvMsg.SelectedItems(0).Tag)) > 5 AndAlso
+					Microsoft.VisualBasic.Left(CStr(LvMsg.SelectedItems(0).Tag), 5) = "<GUI>" Then
+					txt = CStr(LvMsg.SelectedItems(0).Tag).Replace("<GUI>", "")
+					OpenVectoFile(txt)
+				ElseIf _
+					Len(CStr(LvMsg.SelectedItems(0).Tag)) > 5 AndAlso
+					Microsoft.VisualBasic.Left(CStr(LvMsg.SelectedItems(0).Tag), 5) = "<RUN>" Then
+					txt = CStr(LvMsg.SelectedItems(0).Tag).Replace("<RUN>", "")
+					Try
+						Process.Start(txt)
+					Catch ex As Exception
+						GUIMsg(MessageType.Err, "Could not run '" & txt & "'!")
+					End Try
+				Else
+					OpenFiles(CStr(LvMsg.SelectedItems(0).Tag))
+				End If
+			End If
+		End If
+	End Sub
+
+	'Link-cursor (Hand) for links
+	Private Sub LvMsg_MouseMove(sender As Object, e As MouseEventArgs) Handles LvMsg.MouseMove
+		Dim lv0 As ListViewItem
+		lv0 = LvMsg.GetItemAt(e.Location.X, e.Location.Y)
+		If lv0 Is Nothing OrElse lv0.Tag Is Nothing Then
+			LvMsg.Cursor = Cursors.Arrow
+		Else
+			LvMsg.Cursor = Cursors.Hand
+		End If
+		If mouseDownOnListView Then
+			Try
+				LvMsg.HitTest(e.Location).Item.Selected = True
+			Catch
+			End Try
+		End If
+	End Sub
+
+#Region "Open File Context Menu"
+
+	Private CmFiles As String()
+
+	'Initialise and open context menu
+	Private Sub OpenFiles(ParamArray files() As String)
+
+		If files.Length = 0 Then Exit Sub
+
+		CmFiles = files
+
+		OpenInGraphWindowToolStripMenuItem.Enabled = (UCase(fEXT(CmFiles(0))) = ".VMOD")
+
+
+		OpenWithToolStripMenuItem.Text = "Open with " & Cfg.OpenCmdName
+
+		CmOpenFile.Show(Cursor.Position)
+	End Sub
+
+	'Open with tool defined in Settings
+	Private Sub OpenWithToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles OpenWithToolStripMenuItem.Click
+		If Not FileOpenAlt(CmFiles(0)) Then MsgBox("Failed to open file!")
+	End Sub
+
+	Private Sub OpenInGraphWindowToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles OpenInGraphWindowToolStripMenuItem.Click
+		Dim FGraph As New GraphForm
+		FGraph.Show()
+		FGraph.LoadNewFile(CmFiles(0))
+	End Sub
+
+	'Show in folder
+	Private Sub ShowInFolderToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles ShowInFolderToolStripMenuItem.Click
+		If File.Exists(CmFiles(0)) Then
+			Try
+				Process.Start("explorer", "/select,""" & CmFiles(0) & "")
+			Catch ex As Exception
+				MsgBox("Failed to open file!")
+			End Try
+		Else
+			MsgBox("File not found!")
+		End If
+	End Sub
+
+#End Region
+
+	'Change Declaraion Mode
+	Private Sub RbDecl_CheckedChanged(sender As Object, e As EventArgs) Handles RbDecl.CheckedChanged
+		If CbDeclLock Then Exit Sub
+
+		If VectoJobForm.Visible Or VehicleForm.Visible Or GearboxForm.Visible Or EngineForm.Visible Then
+			CbDeclLock = True
+			RbDecl.Checked = Not RbDecl.Checked
+			CbDeclLock = False
+			MsgBox("Please close all dialog windows (e.g. Job Editor) before changing mode!")
+		Else
+			Cfg.DeclMode = RbDecl.Checked
+			RbDev.Checked = Not RbDecl.Checked
+			DeclOnOff()
+		End If
+	End Sub
+
+
+#Region "GUI Tests"
+
+	Private ReadOnly GUItest0 As New GUItest(Me)
+	Private mouseDownOnListView As Boolean
+
+	Private Class GUItest
+		Private RowLim As Int16 = 9
+		Private ColLim As Int16 = 45
+		Public TestActive As Boolean = False
+		Private TestAborted As Boolean
+		Private xCtrl As Int16
+		Private xPanel As Int16
+		Private Scr As Int32
+		Private PRbAlt As Boolean
+		Private ReadOnly Ctrls(RowLim + 1) As Int16
+		Private ReadOnly Pnls(RowLim + 1) As Int16
+		Private CtrlC As Int16
+		Private CtrlCL As Int16
+		Private PnDir As Int16
+		Private PnDirC As Int16
+		Private PnDirCL As Int16
+		Private PnDirRnd As Int16
+		Private CtrlRnd As Int16
+		Private DiffC As Int16
+		Private DiffLvl As Int16
+		Private bInit As Int16
+		Private ReadOnly MyForm As MainForm
+		Private ReadOnly KeyCode As List(Of Integer)
+
+		Private Sub TestRun()
+
+			Dim z As Int16
+
+			xPanel = ColLim - 10
+			xCtrl = ColLim - 10
+			PRbAlt = False
+			Scr = 0
+			PnDir = 0
+			PnDirCL = 10
+			PnDirC = 0 ' StrDirCL
+			CtrlCL = 5
+			CtrlC = CtrlCL
+			PnDirRnd = 5
+			CtrlRnd = 8
+			DiffC = 0
+			DiffLvl = 1
+			bInit = 0
+			TestAborted = False
+			Randomize()
+
+
+			MyForm.LvMsg.Items.Clear()
+			MyForm.ToolStripLbStatus.Text = "Score: 0000             Press <Esc> to Quit"
+
+			For z = 1 To RowLim - 6
+				PRbAlt = Not PRbAlt
+				If Not PRbAlt Then
+					MyForm.LvMsg.Items.Add(Space(ColLim - 11) & "*|       |*")
+				Else
+					MyForm.LvMsg.Items.Add(Space(ColLim - 11) & "*|   |   |*")
+				End If
+			Next
+
+			PRbAlt = False
+
+			MyForm.LvMsg.Items.Add("  VECTO Interactive Mode" & Space(ColLim - 35) & "*|       |*")
+			MyForm.LvMsg.Items.Add(Space(ColLim - 11) & "*|   |   |*")
+			MyForm.LvMsg.Items.Add(Space(ColLim - 11) & "*|       |*")
+			MyForm.LvMsg.Items.Add(Space(ColLim - 11) & "*|   |   |*")
+			MyForm.LvMsg.Items.Add(Space(ColLim - 11) & "*|       |*")
+			MyForm.LvMsg.Items.Add(Space(ColLim - 11) & "*|   ∆   |*")
+
+			For z = 1 To RowLim + 1
+				Pnls(z) = ColLim - 10
+				Ctrls(z) = 0
+			Next
+
+			MyForm.TmProgSec.Interval = 200
+
+			MyForm.LvMsg.Focus()
+
+			MyForm.TmProgSec.Start()
+		End Sub
+
+		Public Sub TestStop()
+			MyForm.TmProgSec.Stop()
+			TestActive = False
+			MyForm.LvMsg.Items.Clear()
+			CtrlC = 0
+			MyForm.ToolStripLbStatus.Text = MyForm.LastModeName & " Mode"
+		End Sub
+
+		Public Sub TestTick()
+
+			If bInit = 24 Then GoTo LbRace
+			bInit += 1
+
+			Select Case bInit
+				Case 10
+					MyForm.LvMsg.Items.RemoveAt(RowLim - 6)
+					MyForm.LvMsg.Items.RemoveAt(RowLim - 5)
+					MyForm.LvMsg.Items.Insert(RowLim - 6, Space(ColLim - 11) & "*|       |*")
+					MyForm.LvMsg.Items.Insert(RowLim - 4, Space(ColLim - 30) & "  3      " & Space(10) & "*|       |*")
+				Case 14
+					MyForm.LvMsg.Items.RemoveAt(RowLim - 4)
+					MyForm.LvMsg.Items.Insert(RowLim - 4, Space(ColLim - 30) & "  2      " & Space(10) & "*|       |*")
+				Case 18
+					MyForm.LvMsg.Items.RemoveAt(RowLim - 4)
+					MyForm.LvMsg.Items.Insert(RowLim - 4, Space(ColLim - 30) & "  1      " & Space(10) & "*|       |*")
+				Case 22
+					MyForm.LvMsg.Items.RemoveAt(RowLim - 4)
+					MyForm.LvMsg.Items.Insert(RowLim - 4, Space(ColLim - 30) & " Go!     " & Space(10) & "*|       |*")
+				Case 24
+					MyForm.LvMsg.Items.RemoveAt(RowLim - 4)
+					MyForm.LvMsg.Items.Insert(RowLim - 4, Space(ColLim - 30) & "         " & Space(10) & "*|       |*")
+			End Select
+			Exit Sub
+LbRace:
+
+			PRbAlt = Not PRbAlt
+
+			MyForm.LvMsg.BeginUpdate()
+
+			sLists()
+
+			sAlign()
+
+			sSetCtrl()
+
+			sSetPanel()
+
+			MyForm.LvMsg.Items.RemoveAt(RowLim)
+
+			sUpdateCtrl()
+
+			MyForm.LvMsg.EndUpdate()
+
+			If Math.Abs(xCtrl - Pnls(2)) > 4 Then
+				sAbort()
+				Exit Sub
+			ElseIf Ctrls(2) <> 0 Then
+				If xCtrl = Pnls(2) + Ctrls(2) - 4 Then
+					sAbort()
+					Exit Sub
+				End If
+				Scr += 5 * DiffLvl
+			End If
+
+			Scr += DiffLvl
+			DiffC += 1
+
+			'Erhöhe Schwierigkeitsgrad
+			If DiffC = (DiffLvl + 3) * 4 Then
+				DiffC = 0
+				DiffLvl += 1
+				If DiffLvl > 2 And DiffLvl < 7 Then MyForm.TmProgSec.Interval = 300 - (DiffLvl) * 30
+				Scr += 100
+				Select Case DiffLvl
+					Case 3
+						PnDirCL = 3
+						CtrlCL = 4
+						CtrlRnd = 6
+					Case 5
+						PnDirCL = 2
+						PnDirRnd = 4
+					Case 8
+						CtrlCL = 2
+					Case 10
+						CtrlRnd = 4
+						PnDirRnd = 3
+				End Select
+			End If
+		End Sub
+
+		Public Sub TestKey(Key0 As Integer)
+
+			If TestActive Then
+				Select Case Key0
+					Case Keys.Left
+						xCtrl -= 1
+						sUpdateCtrl()
+					Case Keys.Right
+						xCtrl += 1
+						sUpdateCtrl()
+					Case Keys.Escape
+						TestStop()
+				End Select
+			Else
+
+				If KeyCode(CtrlC) = Key0 Then
+					CtrlC += 1
+					If CtrlC = KeyCode.Count Then
+						TestActive = True
+						TestRun()
+					End If
+				Else
+					CtrlC = 0
+				End If
+
+			End If
+		End Sub
+
+		Private Sub sAbort()
+
+			Dim s As String, s1 As String
+
+			If TestAborted Then Exit Sub
+
+			TestAborted = True
+
+			MyForm.TmProgSec.Stop()
+
+			MyForm.LvMsg.BeginUpdate()
+
+			s = MyForm.LvMsg.Items(0).Text
+			MyForm.LvMsg.Items.RemoveAt(0)
+			MyForm.LvMsg.Items.Insert(0, "You crashed!" & Microsoft.VisualBasic.Right(s, Len(s) - 12))
+
+			s = MyForm.LvMsg.Items(1).Text
+			s1 = "Score: " & Scr & " "
+			MyForm.LvMsg.Items.RemoveAt(1)
+			MyForm.LvMsg.Items.Insert(1, s1 & Microsoft.VisualBasic.Right(s, Len(s) - Len(s1)))
+
+			MyForm.LvMsg.EndUpdate()
+
+			LogFile.WriteToLog(MessageType.Normal, "*** Race Score: " & Scr.ToString("0000") & " ***")
+
+			CtrlC = 0
+			TestActive = False
+
+			MyForm.ToolStripLbStatus.Text = MyForm.LastModeName & " Mode"
+		End Sub
+
+		Private Sub sSetCtrl()
+			Dim x As Int16
+			If Scr < 10 Then Exit Sub
+			Ctrls(RowLim + 1) = 0
+			CtrlC += 1
+			If CtrlC < CtrlCL Then Exit Sub
+			Select Case CInt(Int((CtrlRnd * Rnd()) + 1))
+				Case 1, 2
+					CtrlC = 0
+					x = CInt(Int((7 * Rnd()) + 1))
+					Ctrls(RowLim + 1) = x
+				Case Else
+			End Select
+		End Sub
+
+		Private Sub sUpdateCtrl()
+			Dim s As String
+			If bInit < 21 Then
+				xCtrl = ColLim - 10
+				Exit Sub
+			End If
+			If Math.Abs(xCtrl - Pnls(1)) > 5 Then
+				sAbort()
+				Exit Sub
+			End If
+			s = Replace(MyForm.LvMsg.Items(RowLim - 1).Text.ToString, "∆", " ") & "   "
+			s = Microsoft.VisualBasic.Left(s, ColLim + 15)
+			's = s.Remove(0, 20)
+			's = "Press <Esc> to Quit " & s
+			If Mid(s, xCtrl + 5, 1) = "X" Then
+				sAbort()
+				Exit Sub
+			End If
+			s = s.Remove(xCtrl + 4, 1)
+			's = Trim(s.Insert(xCar + 4, "∆")) & Space(ColLim + 5 - Streets(2)) & "Pts: " & Pts & " Lv: " & DiffLvl
+			s = Space(Pnls(2) - 1) & Trim(s.Insert(xCtrl + 4, "∆"))
+			MyForm.LvMsg.Items.RemoveAt(RowLim - 1)
+			MyForm.LvMsg.Items.Insert(RowLim - 1, s)
+			MyForm.ToolStripLbStatus.Text = "Score: " & Scr.ToString("0000") & "             Press <Esc> to Quit"
+		End Sub
+
+		Private Sub sSetPanel()
+			Dim s As String
+			s = "*|   |   |*"
+			If PRbAlt Then
+				s = s.Remove(5, 1)
+				s = s.Insert(5, " ")
+			End If
+			If Ctrls(RowLim + 1) <> 0 Then
+				s = s.Remove(Ctrls(RowLim + 1) + 1, 1)
+				s = s.Insert(Ctrls(RowLim + 1) + 1, "X")
+			End If
+			Select Case xPanel - Pnls(RowLim)
+				Case -1
+					s = Replace(s, "|", "\")
+				Case 1
+					s = Replace(s, "|", "/")
+			End Select
+			MyForm.LvMsg.Items.Insert(0, Space(xPanel - 1) & s)
+		End Sub
+
+		Private Sub sAlign()
+			PnDirC += 1
+			If PnDirC < PnDirCL Then GoTo Lb1
+			PnDirC = 0
+			Select Case CInt(Int((PnDirRnd * Rnd()) + 1))
+				Case 1
+					PnDir = 1
+				Case 2
+					PnDir = -1
+				Case Else
+					PnDir = 0
+			End Select
+Lb1:
+			xPanel += PnDir
+			If xPanel > ColLim Then
+				xPanel = ColLim
+			ElseIf xPanel < 22 Then
+				xPanel = 22
+			End If
+			Pnls(RowLim + 1) = xPanel
+		End Sub
+
+		Private Sub sLists()
+			Dim x As Int16
+			For x = 2 To RowLim + 1
+				Ctrls(x - 1) = Ctrls(x)
+				Pnls(x - 1) = Pnls(x)
+			Next
+		End Sub
+
+		Public Sub New(Form As MainForm)
+			MyForm = Form
+			KeyCode = New List(Of Integer)
+			KeyCode.Add(Keys.Up)
+			KeyCode.Add(Keys.Up)
+			KeyCode.Add(Keys.Down)
+			KeyCode.Add(Keys.Down)
+			KeyCode.Add(Keys.Left)
+			KeyCode.Add(Keys.Right)
+			KeyCode.Add(Keys.Left)
+			KeyCode.Add(Keys.Right)
+			KeyCode.Add(Keys.B)
+			KeyCode.Add(Keys.A)
+			CtrlC = 0
+		End Sub
+	End Class
+
+	Private Sub LvMsg_KeyDown(sender As Object, e As KeyEventArgs) Handles LvMsg.KeyDown
+		GUItest0.TestKey(e.KeyValue)
+		If GUItest0.TestActive Then e.SuppressKeyPress = True
+	End Sub
+
+	Private Sub LvMsg_LostFocus(sender As Object, e As EventArgs) Handles LvMsg.LostFocus
+		If GUItest0.TestActive Then GUItest0.TestStop()
+	End Sub
+
+#End Region
+
+	Private Sub LvMsg_KeyUp(sender As Object, e As KeyEventArgs) Handles LvMsg.KeyUp
+		If (e.Control And e.KeyCode = Keys.C) Then
+			Dim builder As StringBuilder = New StringBuilder()
+			For Each selectedItem As ListViewItem In LvMsg.SelectedItems
+				builder.AppendLine(String.Join(", ",
+												selectedItem.SubItems.Cast(Of ListViewItem.ListViewSubItem).Select(
+													Function(item) item.Text)))
+			Next
+			Clipboard.SetText(builder.ToString())
+		End If
+	End Sub
+
+	Private Sub LvMsg_MouseDown(sender As Object, e As MouseEventArgs) Handles LvMsg.MouseDown
+		mouseDownOnListView = True
+	End Sub
+
+	Private Sub LvMsg_MouseUp(sender As Object, e As MouseEventArgs) Handles LvMsg.MouseUp
+		mouseDownOnListView = False
+	End Sub
+
+	Private Sub LvGEN_MouseUp(sender As Object, e As MouseEventArgs) Handles LvGEN.MouseUp
+		If e.Button = MouseButtons.Right Then
+			ConMenTarget = LvGEN
+			ConMenTarJob = True
+
+			'Locked functions show/hide
+			LoadListToolStripMenuItem.Enabled = Not GUIlocked
+			LoadDefaultListToolStripMenuItem.Enabled = Not GUIlocked
+			ClearListToolStripMenuItem.Enabled = Not GUIlocked
+
+			ConMenFilelist.Show(MousePosition)
+		End If
+	End Sub
+
+	Private Sub RbDev_CheckedChanged(sender As Object, e As EventArgs) Handles RbDev.CheckedChanged
+	End Sub
+End Class
diff --git a/VECTO/GUI/F_Settings.Designer.vb b/VECTO/GUI/Settings.Designer.vb
similarity index 96%
rename from VECTO/GUI/F_Settings.Designer.vb
rename to VECTO/GUI/Settings.Designer.vb
index 22886baed7..e19fa616df 100644
--- a/VECTO/GUI/F_Settings.Designer.vb
+++ b/VECTO/GUI/Settings.Designer.vb
@@ -1,343 +1,343 @@
-Imports System.ComponentModel
-Imports Microsoft.VisualBasic.CompilerServices
-Imports TUGraz.VECTO.My.Resources
-
-<DesignerGenerated()> _
-Partial Class F_Settings
-	Inherits Form
-
-	'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
-	<DebuggerNonUserCode()> _
-	Protected Overrides Sub Dispose(ByVal disposing As Boolean)
-		Try
-			If disposing AndAlso components IsNot Nothing Then
-				components.Dispose()
-			End If
-		Finally
-			MyBase.Dispose(disposing)
-		End Try
-	End Sub
-
-	'Wird vom Windows Form-Designer benötigt.
-	Private components As IContainer
-
-	'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
-	'Das Bearbeiten ist mit dem Windows Form-Designer möglich.  
-	'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
-	<DebuggerStepThrough()> _
-	Private Sub InitializeComponent()
-		Me.ButtonOK = New Button()
-		Me.ButtonCancel = New Button()
-		Me.GroupBox3 = New GroupBox()
-		Me.GroupBox5 = New GroupBox()
-		Me.TbOpenCmdName = New TextBox()
-		Me.Label7 = New Label()
-		Me.TbOpenCmd = New TextBox()
-		Me.Label12 = New Label()
-		Me.TextBoxLogSize = New TextBox()
-		Me.Label16 = New Label()
-		Me.TabControl1 = New TabControl()
-		Me.TabPage2 = New TabPage()
-		Me.GrCalc = New GroupBox()
-		Me.Label11 = New Label()
-		Me.Label9 = New Label()
-		Me.Label3 = New Label()
-		Me.TbCO2toFC = New TextBox()
-		Me.Label10 = New Label()
-		Me.TbFuelDens = New TextBox()
-		Me.Label8 = New Label()
-		Me.TbAirDensity = New TextBox()
-		Me.Label2 = New Label()
-		Me.ButReset = New Button()
-		Me.BtHelp = New Button()
-		Me.GroupBox3.SuspendLayout()
-		Me.GroupBox5.SuspendLayout()
-		Me.TabControl1.SuspendLayout()
-		Me.TabPage2.SuspendLayout()
-		Me.GrCalc.SuspendLayout()
-		Me.SuspendLayout()
-		'
-		'ButtonOK
-		'
-		Me.ButtonOK.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Right), AnchorStyles)
-		Me.ButtonOK.Location = New Point(347, 278)
-		Me.ButtonOK.Name = "ButtonOK"
-		Me.ButtonOK.Size = New Size(75, 24)
-		Me.ButtonOK.TabIndex = 2
-		Me.ButtonOK.Text = "OK"
-		Me.ButtonOK.UseVisualStyleBackColor = True
-		'
-		'ButtonCancel
-		'
-		Me.ButtonCancel.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Right), AnchorStyles)
-		Me.ButtonCancel.DialogResult = DialogResult.Cancel
-		Me.ButtonCancel.Location = New Point(428, 278)
-		Me.ButtonCancel.Name = "ButtonCancel"
-		Me.ButtonCancel.Size = New Size(75, 24)
-		Me.ButtonCancel.TabIndex = 3
-		Me.ButtonCancel.Text = "Cancel"
-		Me.ButtonCancel.UseVisualStyleBackColor = True
-		'
-		'GroupBox3
-		'
-		Me.GroupBox3.Controls.Add(Me.GroupBox5)
-		Me.GroupBox3.Controls.Add(Me.TextBoxLogSize)
-		Me.GroupBox3.Controls.Add(Me.Label16)
-		Me.GroupBox3.Location = New Point(5, 6)
-		Me.GroupBox3.Name = "GroupBox3"
-		Me.GroupBox3.Size = New Size(489, 124)
-		Me.GroupBox3.TabIndex = 0
-		Me.GroupBox3.TabStop = False
-		Me.GroupBox3.Text = "Interface"
-		'
-		'GroupBox5
-		'
-		Me.GroupBox5.Controls.Add(Me.TbOpenCmdName)
-		Me.GroupBox5.Controls.Add(Me.Label7)
-		Me.GroupBox5.Controls.Add(Me.TbOpenCmd)
-		Me.GroupBox5.Controls.Add(Me.Label12)
-		Me.GroupBox5.Location = New Point(230, 19)
-		Me.GroupBox5.Name = "GroupBox5"
-		Me.GroupBox5.Size = New Size(253, 96)
-		Me.GroupBox5.TabIndex = 1
-		Me.GroupBox5.TabStop = False
-		Me.GroupBox5.Text = "File Open Command"
-		'
-		'TbOpenCmdName
-		'
-		Me.TbOpenCmdName.Location = New Point(66, 19)
-		Me.TbOpenCmdName.Name = "TbOpenCmdName"
-		Me.TbOpenCmdName.Size = New Size(174, 20)
-		Me.TbOpenCmdName.TabIndex = 0
-		'
-		'Label7
-		'
-		Me.Label7.AutoSize = True
-		Me.Label7.Location = New Point(6, 48)
-		Me.Label7.Name = "Label7"
-		Me.Label7.Size = New Size(54, 13)
-		Me.Label7.TabIndex = 12
-		Me.Label7.Text = "Command"
-		'
-		'TbOpenCmd
-		'
-		Me.TbOpenCmd.Location = New Point(66, 45)
-		Me.TbOpenCmd.Name = "TbOpenCmd"
-		Me.TbOpenCmd.Size = New Size(174, 20)
-		Me.TbOpenCmd.TabIndex = 1
-		'
-		'Label12
-		'
-		Me.Label12.AutoSize = True
-		Me.Label12.Location = New Point(25, 22)
-		Me.Label12.Name = "Label12"
-		Me.Label12.Size = New Size(35, 13)
-		Me.Label12.TabIndex = 12
-		Me.Label12.Text = "Name"
-		'
-		'TextBoxLogSize
-		'
-		Me.TextBoxLogSize.Location = New Point(134, 38)
-		Me.TextBoxLogSize.Name = "TextBoxLogSize"
-		Me.TextBoxLogSize.Size = New Size(36, 20)
-		Me.TextBoxLogSize.TabIndex = 0
-		'
-		'Label16
-		'
-		Me.Label16.AutoSize = True
-		Me.Label16.Location = New Point(18, 41)
-		Me.Label16.Name = "Label16"
-		Me.Label16.Size = New Size(110, 13)
-		Me.Label16.TabIndex = 10
-		Me.Label16.Text = "Logfile Size Limit [MB]"
-		'
-		'TabControl1
-		'
-		Me.TabControl1.Anchor = CType((((AnchorStyles.Top Or AnchorStyles.Bottom) _
-			Or AnchorStyles.Left) _
-			Or AnchorStyles.Right), AnchorStyles)
-		Me.TabControl1.Controls.Add(Me.TabPage2)
-		Me.TabControl1.Location = New Point(3, 3)
-		Me.TabControl1.Name = "TabControl1"
-		Me.TabControl1.SelectedIndex = 0
-		Me.TabControl1.Size = New Size(508, 269)
-		Me.TabControl1.TabIndex = 12
-		'
-		'TabPage2
-		'
-		Me.TabPage2.Controls.Add(Me.GrCalc)
-		Me.TabPage2.Controls.Add(Me.GroupBox3)
-		Me.TabPage2.Location = New Point(4, 22)
-		Me.TabPage2.Name = "TabPage2"
-		Me.TabPage2.Padding = New Padding(3)
-		Me.TabPage2.Size = New Size(500, 243)
-		Me.TabPage2.TabIndex = 0
-		Me.TabPage2.Text = "VECTO"
-		Me.TabPage2.UseVisualStyleBackColor = True
-		'
-		'GrCalc
-		'
-		Me.GrCalc.Controls.Add(Me.Label11)
-		Me.GrCalc.Controls.Add(Me.Label9)
-		Me.GrCalc.Controls.Add(Me.Label3)
-		Me.GrCalc.Controls.Add(Me.TbCO2toFC)
-		Me.GrCalc.Controls.Add(Me.Label10)
-		Me.GrCalc.Controls.Add(Me.TbFuelDens)
-		Me.GrCalc.Controls.Add(Me.Label8)
-		Me.GrCalc.Controls.Add(Me.TbAirDensity)
-		Me.GrCalc.Controls.Add(Me.Label2)
-		Me.GrCalc.Location = New Point(6, 136)
-		Me.GrCalc.Name = "GrCalc"
-		Me.GrCalc.Size = New Size(488, 103)
-		Me.GrCalc.TabIndex = 1
-		Me.GrCalc.TabStop = False
-		Me.GrCalc.Text = "Calculation"
-		'
-		'Label11
-		'
-		Me.Label11.AutoSize = True
-		Me.Label11.Location = New Point(164, 66)
-		Me.Label11.Name = "Label11"
-		Me.Label11.Size = New Size(77, 13)
-		Me.Label11.TabIndex = 16
-		Me.Label11.Text = "[kgCO2/KgFC]"
-		'
-		'Label9
-		'
-		Me.Label9.AutoSize = True
-		Me.Label9.Location = New Point(309, 22)
-		Me.Label9.Name = "Label9"
-		Me.Label9.Size = New Size(41, 13)
-		Me.Label9.TabIndex = 16
-		Me.Label9.Text = "[kg/m³]"
-		'
-		'Label3
-		'
-		Me.Label3.AutoSize = True
-		Me.Label3.Location = New Point(130, 22)
-		Me.Label3.Name = "Label3"
-		Me.Label3.Size = New Size(41, 13)
-		Me.Label3.TabIndex = 16
-		Me.Label3.Text = "[kg/m³]"
-		'
-		'TbCO2toFC
-		'
-		Me.TbCO2toFC.Location = New Point(108, 63)
-		Me.TbCO2toFC.Name = "TbCO2toFC"
-		Me.TbCO2toFC.Size = New Size(50, 20)
-		Me.TbCO2toFC.TabIndex = 2
-		'
-		'Label10
-		'
-		Me.Label10.AutoSize = True
-		Me.Label10.Location = New Point(11, 66)
-		Me.Label10.Name = "Label10"
-		Me.Label10.Size = New Size(91, 13)
-		Me.Label10.TabIndex = 14
-		Me.Label10.Text = "CO2-to-Fuel Ratio"
-		'
-		'TbFuelDens
-		'
-		Me.TbFuelDens.Location = New Point(253, 19)
-		Me.TbFuelDens.Name = "TbFuelDens"
-		Me.TbFuelDens.Size = New Size(50, 20)
-		Me.TbFuelDens.TabIndex = 1
-		'
-		'Label8
-		'
-		Me.Label8.AutoSize = True
-		Me.Label8.Location = New Point(184, 22)
-		Me.Label8.Name = "Label8"
-		Me.Label8.Size = New Size(63, 13)
-		Me.Label8.TabIndex = 14
-		Me.Label8.Text = "Fuel density"
-		'
-		'TbAirDensity
-		'
-		Me.TbAirDensity.Location = New Point(74, 19)
-		Me.TbAirDensity.Name = "TbAirDensity"
-		Me.TbAirDensity.Size = New Size(50, 20)
-		Me.TbAirDensity.TabIndex = 0
-		'
-		'Label2
-		'
-		Me.Label2.AutoSize = True
-		Me.Label2.Location = New Point(11, 22)
-		Me.Label2.Name = "Label2"
-		Me.Label2.Size = New Size(57, 13)
-		Me.Label2.TabIndex = 14
-		Me.Label2.Text = "Air Density"
-		'
-		'ButReset
-		'
-		Me.ButReset.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Left), AnchorStyles)
-		Me.ButReset.Location = New Point(31, 278)
-		Me.ButReset.Name = "ButReset"
-		Me.ButReset.Size = New Size(108, 24)
-		Me.ButReset.TabIndex = 1
-		Me.ButReset.Text = "Reset All Settings"
-		Me.ButReset.UseVisualStyleBackColor = True
-		'
-		'BtHelp
-		'
-		Me.BtHelp.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Left), AnchorStyles)
-		Me.BtHelp.Image = Help_icon
-		Me.BtHelp.Location = New Point(4, 278)
-		Me.BtHelp.Name = "BtHelp"
-		Me.BtHelp.Size = New Size(24, 24)
-		Me.BtHelp.TabIndex = 0
-		Me.BtHelp.UseVisualStyleBackColor = True
-		'
-		'F_Settings
-		'
-		Me.AcceptButton = Me.ButtonOK
-		Me.AutoScaleDimensions = New SizeF(6.0!, 13.0!)
-		Me.AutoScaleMode = AutoScaleMode.Font
-		Me.CancelButton = Me.ButtonCancel
-		Me.ClientSize = New Size(515, 310)
-		Me.Controls.Add(Me.BtHelp)
-		Me.Controls.Add(Me.ButReset)
-		Me.Controls.Add(Me.TabControl1)
-		Me.Controls.Add(Me.ButtonCancel)
-		Me.Controls.Add(Me.ButtonOK)
-		Me.FormBorderStyle = FormBorderStyle.FixedToolWindow
-		Me.MaximizeBox = False
-		Me.MinimizeBox = False
-		Me.Name = "F_Settings"
-		Me.Text = "Settings"
-		Me.GroupBox3.ResumeLayout(False)
-		Me.GroupBox3.PerformLayout()
-		Me.GroupBox5.ResumeLayout(False)
-		Me.GroupBox5.PerformLayout()
-		Me.TabControl1.ResumeLayout(False)
-		Me.TabPage2.ResumeLayout(False)
-		Me.GrCalc.ResumeLayout(False)
-		Me.GrCalc.PerformLayout()
-		Me.ResumeLayout(False)
-
-	End Sub
-	Friend WithEvents ButtonOK As Button
-	Friend WithEvents ButtonCancel As Button
-	Friend WithEvents GroupBox3 As GroupBox
-	Friend WithEvents TabControl1 As TabControl
-	Friend WithEvents TabPage2 As TabPage
-	Friend WithEvents TextBoxLogSize As TextBox
-	Friend WithEvents Label16 As Label
-	Friend WithEvents ButReset As Button
-	Friend WithEvents TbOpenCmd As TextBox
-	Friend WithEvents Label7 As Label
-	Friend WithEvents GrCalc As GroupBox
-	Friend WithEvents Label3 As Label
-	Friend WithEvents TbAirDensity As TextBox
-	Friend WithEvents Label2 As Label
-	Friend WithEvents Label9 As Label
-	Friend WithEvents TbFuelDens As TextBox
-	Friend WithEvents Label8 As Label
-	Friend WithEvents Label11 As Label
-	Friend WithEvents TbCO2toFC As TextBox
-	Friend WithEvents Label10 As Label
-	Friend WithEvents BtHelp As Button
-	Friend WithEvents GroupBox5 As GroupBox
-	Friend WithEvents TbOpenCmdName As TextBox
-	Friend WithEvents Label12 As Label
-End Class
+Imports System.ComponentModel
+Imports Microsoft.VisualBasic.CompilerServices
+Imports TUGraz.VECTO.My.Resources
+
+<DesignerGenerated()> _
+Partial Class Settings
+	Inherits Form
+
+	'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
+	<DebuggerNonUserCode()> _
+	Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+		Try
+			If disposing AndAlso components IsNot Nothing Then
+				components.Dispose()
+			End If
+		Finally
+			MyBase.Dispose(disposing)
+		End Try
+	End Sub
+
+	'Wird vom Windows Form-Designer benötigt.
+	Private components As IContainer
+
+	'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
+	'Das Bearbeiten ist mit dem Windows Form-Designer möglich.  
+	'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
+	<DebuggerStepThrough()> _
+	Private Sub InitializeComponent()
+		Me.ButtonOK = New Button()
+		Me.ButtonCancel = New Button()
+		Me.GroupBox3 = New GroupBox()
+		Me.GroupBox5 = New GroupBox()
+		Me.TbOpenCmdName = New TextBox()
+		Me.Label7 = New Label()
+		Me.TbOpenCmd = New TextBox()
+		Me.Label12 = New Label()
+		Me.TextBoxLogSize = New TextBox()
+		Me.Label16 = New Label()
+		Me.TabControl1 = New TabControl()
+		Me.TabPage2 = New TabPage()
+		Me.GrCalc = New GroupBox()
+		Me.Label11 = New Label()
+		Me.Label9 = New Label()
+		Me.Label3 = New Label()
+		Me.TbCO2toFC = New TextBox()
+		Me.Label10 = New Label()
+		Me.TbFuelDens = New TextBox()
+		Me.Label8 = New Label()
+		Me.TbAirDensity = New TextBox()
+		Me.Label2 = New Label()
+		Me.ButReset = New Button()
+		Me.BtHelp = New Button()
+		Me.GroupBox3.SuspendLayout()
+		Me.GroupBox5.SuspendLayout()
+		Me.TabControl1.SuspendLayout()
+		Me.TabPage2.SuspendLayout()
+		Me.GrCalc.SuspendLayout()
+		Me.SuspendLayout()
+		'
+		'ButtonOK
+		'
+		Me.ButtonOK.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Right), AnchorStyles)
+		Me.ButtonOK.Location = New Point(347, 278)
+		Me.ButtonOK.Name = "ButtonOK"
+		Me.ButtonOK.Size = New Size(75, 24)
+		Me.ButtonOK.TabIndex = 2
+		Me.ButtonOK.Text = "OK"
+		Me.ButtonOK.UseVisualStyleBackColor = True
+		'
+		'ButtonCancel
+		'
+		Me.ButtonCancel.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Right), AnchorStyles)
+		Me.ButtonCancel.DialogResult = DialogResult.Cancel
+		Me.ButtonCancel.Location = New Point(428, 278)
+		Me.ButtonCancel.Name = "ButtonCancel"
+		Me.ButtonCancel.Size = New Size(75, 24)
+		Me.ButtonCancel.TabIndex = 3
+		Me.ButtonCancel.Text = "Cancel"
+		Me.ButtonCancel.UseVisualStyleBackColor = True
+		'
+		'GroupBox3
+		'
+		Me.GroupBox3.Controls.Add(Me.GroupBox5)
+		Me.GroupBox3.Controls.Add(Me.TextBoxLogSize)
+		Me.GroupBox3.Controls.Add(Me.Label16)
+		Me.GroupBox3.Location = New Point(5, 6)
+		Me.GroupBox3.Name = "GroupBox3"
+		Me.GroupBox3.Size = New Size(489, 124)
+		Me.GroupBox3.TabIndex = 0
+		Me.GroupBox3.TabStop = False
+		Me.GroupBox3.Text = "Interface"
+		'
+		'GroupBox5
+		'
+		Me.GroupBox5.Controls.Add(Me.TbOpenCmdName)
+		Me.GroupBox5.Controls.Add(Me.Label7)
+		Me.GroupBox5.Controls.Add(Me.TbOpenCmd)
+		Me.GroupBox5.Controls.Add(Me.Label12)
+		Me.GroupBox5.Location = New Point(230, 19)
+		Me.GroupBox5.Name = "GroupBox5"
+		Me.GroupBox5.Size = New Size(253, 96)
+		Me.GroupBox5.TabIndex = 1
+		Me.GroupBox5.TabStop = False
+		Me.GroupBox5.Text = "File Open Command"
+		'
+		'TbOpenCmdName
+		'
+		Me.TbOpenCmdName.Location = New Point(66, 19)
+		Me.TbOpenCmdName.Name = "TbOpenCmdName"
+		Me.TbOpenCmdName.Size = New Size(174, 20)
+		Me.TbOpenCmdName.TabIndex = 0
+		'
+		'Label7
+		'
+		Me.Label7.AutoSize = True
+		Me.Label7.Location = New Point(6, 48)
+		Me.Label7.Name = "Label7"
+		Me.Label7.Size = New Size(54, 13)
+		Me.Label7.TabIndex = 12
+		Me.Label7.Text = "Command"
+		'
+		'TbOpenCmd
+		'
+		Me.TbOpenCmd.Location = New Point(66, 45)
+		Me.TbOpenCmd.Name = "TbOpenCmd"
+		Me.TbOpenCmd.Size = New Size(174, 20)
+		Me.TbOpenCmd.TabIndex = 1
+		'
+		'Label12
+		'
+		Me.Label12.AutoSize = True
+		Me.Label12.Location = New Point(25, 22)
+		Me.Label12.Name = "Label12"
+		Me.Label12.Size = New Size(35, 13)
+		Me.Label12.TabIndex = 12
+		Me.Label12.Text = "Name"
+		'
+		'TextBoxLogSize
+		'
+		Me.TextBoxLogSize.Location = New Point(134, 38)
+		Me.TextBoxLogSize.Name = "TextBoxLogSize"
+		Me.TextBoxLogSize.Size = New Size(36, 20)
+		Me.TextBoxLogSize.TabIndex = 0
+		'
+		'Label16
+		'
+		Me.Label16.AutoSize = True
+		Me.Label16.Location = New Point(18, 41)
+		Me.Label16.Name = "Label16"
+		Me.Label16.Size = New Size(110, 13)
+		Me.Label16.TabIndex = 10
+		Me.Label16.Text = "Logfile Size Limit [MB]"
+		'
+		'TabControl1
+		'
+		Me.TabControl1.Anchor = CType((((AnchorStyles.Top Or AnchorStyles.Bottom) _
+			Or AnchorStyles.Left) _
+			Or AnchorStyles.Right), AnchorStyles)
+		Me.TabControl1.Controls.Add(Me.TabPage2)
+		Me.TabControl1.Location = New Point(3, 3)
+		Me.TabControl1.Name = "TabControl1"
+		Me.TabControl1.SelectedIndex = 0
+		Me.TabControl1.Size = New Size(508, 269)
+		Me.TabControl1.TabIndex = 12
+		'
+		'TabPage2
+		'
+		Me.TabPage2.Controls.Add(Me.GrCalc)
+		Me.TabPage2.Controls.Add(Me.GroupBox3)
+		Me.TabPage2.Location = New Point(4, 22)
+		Me.TabPage2.Name = "TabPage2"
+		Me.TabPage2.Padding = New Padding(3)
+		Me.TabPage2.Size = New Size(500, 243)
+		Me.TabPage2.TabIndex = 0
+		Me.TabPage2.Text = "VECTO"
+		Me.TabPage2.UseVisualStyleBackColor = True
+		'
+		'GrCalc
+		'
+		Me.GrCalc.Controls.Add(Me.Label11)
+		Me.GrCalc.Controls.Add(Me.Label9)
+		Me.GrCalc.Controls.Add(Me.Label3)
+		Me.GrCalc.Controls.Add(Me.TbCO2toFC)
+		Me.GrCalc.Controls.Add(Me.Label10)
+		Me.GrCalc.Controls.Add(Me.TbFuelDens)
+		Me.GrCalc.Controls.Add(Me.Label8)
+		Me.GrCalc.Controls.Add(Me.TbAirDensity)
+		Me.GrCalc.Controls.Add(Me.Label2)
+		Me.GrCalc.Location = New Point(6, 136)
+		Me.GrCalc.Name = "GrCalc"
+		Me.GrCalc.Size = New Size(488, 103)
+		Me.GrCalc.TabIndex = 1
+		Me.GrCalc.TabStop = False
+		Me.GrCalc.Text = "Calculation"
+		'
+		'Label11
+		'
+		Me.Label11.AutoSize = True
+		Me.Label11.Location = New Point(164, 66)
+		Me.Label11.Name = "Label11"
+		Me.Label11.Size = New Size(77, 13)
+		Me.Label11.TabIndex = 16
+		Me.Label11.Text = "[kgCO2/KgFC]"
+		'
+		'Label9
+		'
+		Me.Label9.AutoSize = True
+		Me.Label9.Location = New Point(309, 22)
+		Me.Label9.Name = "Label9"
+		Me.Label9.Size = New Size(41, 13)
+		Me.Label9.TabIndex = 16
+		Me.Label9.Text = "[kg/m³]"
+		'
+		'Label3
+		'
+		Me.Label3.AutoSize = True
+		Me.Label3.Location = New Point(130, 22)
+		Me.Label3.Name = "Label3"
+		Me.Label3.Size = New Size(41, 13)
+		Me.Label3.TabIndex = 16
+		Me.Label3.Text = "[kg/m³]"
+		'
+		'TbCO2toFC
+		'
+		Me.TbCO2toFC.Location = New Point(108, 63)
+		Me.TbCO2toFC.Name = "TbCO2toFC"
+		Me.TbCO2toFC.Size = New Size(50, 20)
+		Me.TbCO2toFC.TabIndex = 2
+		'
+		'Label10
+		'
+		Me.Label10.AutoSize = True
+		Me.Label10.Location = New Point(11, 66)
+		Me.Label10.Name = "Label10"
+		Me.Label10.Size = New Size(91, 13)
+		Me.Label10.TabIndex = 14
+		Me.Label10.Text = "CO2-to-Fuel Ratio"
+		'
+		'TbFuelDens
+		'
+		Me.TbFuelDens.Location = New Point(253, 19)
+		Me.TbFuelDens.Name = "TbFuelDens"
+		Me.TbFuelDens.Size = New Size(50, 20)
+		Me.TbFuelDens.TabIndex = 1
+		'
+		'Label8
+		'
+		Me.Label8.AutoSize = True
+		Me.Label8.Location = New Point(184, 22)
+		Me.Label8.Name = "Label8"
+		Me.Label8.Size = New Size(63, 13)
+		Me.Label8.TabIndex = 14
+		Me.Label8.Text = "Fuel density"
+		'
+		'TbAirDensity
+		'
+		Me.TbAirDensity.Location = New Point(74, 19)
+		Me.TbAirDensity.Name = "TbAirDensity"
+		Me.TbAirDensity.Size = New Size(50, 20)
+		Me.TbAirDensity.TabIndex = 0
+		'
+		'Label2
+		'
+		Me.Label2.AutoSize = True
+		Me.Label2.Location = New Point(11, 22)
+		Me.Label2.Name = "Label2"
+		Me.Label2.Size = New Size(57, 13)
+		Me.Label2.TabIndex = 14
+		Me.Label2.Text = "Air Density"
+		'
+		'ButReset
+		'
+		Me.ButReset.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Left), AnchorStyles)
+		Me.ButReset.Location = New Point(31, 278)
+		Me.ButReset.Name = "ButReset"
+		Me.ButReset.Size = New Size(108, 24)
+		Me.ButReset.TabIndex = 1
+		Me.ButReset.Text = "Reset All Settings"
+		Me.ButReset.UseVisualStyleBackColor = True
+		'
+		'BtHelp
+		'
+		Me.BtHelp.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Left), AnchorStyles)
+		Me.BtHelp.Image = Help_icon
+		Me.BtHelp.Location = New Point(4, 278)
+		Me.BtHelp.Name = "BtHelp"
+		Me.BtHelp.Size = New Size(24, 24)
+		Me.BtHelp.TabIndex = 0
+		Me.BtHelp.UseVisualStyleBackColor = True
+		'
+		'F_Settings
+		'
+		Me.AcceptButton = Me.ButtonOK
+		Me.AutoScaleDimensions = New SizeF(6.0!, 13.0!)
+		Me.AutoScaleMode = AutoScaleMode.Font
+		Me.CancelButton = Me.ButtonCancel
+		Me.ClientSize = New Size(515, 310)
+		Me.Controls.Add(Me.BtHelp)
+		Me.Controls.Add(Me.ButReset)
+		Me.Controls.Add(Me.TabControl1)
+		Me.Controls.Add(Me.ButtonCancel)
+		Me.Controls.Add(Me.ButtonOK)
+		Me.FormBorderStyle = FormBorderStyle.FixedToolWindow
+		Me.MaximizeBox = False
+		Me.MinimizeBox = False
+		Me.Name = "Settings"
+		Me.Text = "Settings"
+		Me.GroupBox3.ResumeLayout(False)
+		Me.GroupBox3.PerformLayout()
+		Me.GroupBox5.ResumeLayout(False)
+		Me.GroupBox5.PerformLayout()
+		Me.TabControl1.ResumeLayout(False)
+		Me.TabPage2.ResumeLayout(False)
+		Me.GrCalc.ResumeLayout(False)
+		Me.GrCalc.PerformLayout()
+		Me.ResumeLayout(False)
+
+	End Sub
+	Friend WithEvents ButtonOK As Button
+	Friend WithEvents ButtonCancel As Button
+	Friend WithEvents GroupBox3 As GroupBox
+	Friend WithEvents TabControl1 As TabControl
+	Friend WithEvents TabPage2 As TabPage
+	Friend WithEvents TextBoxLogSize As TextBox
+	Friend WithEvents Label16 As Label
+	Friend WithEvents ButReset As Button
+	Friend WithEvents TbOpenCmd As TextBox
+	Friend WithEvents Label7 As Label
+	Friend WithEvents GrCalc As GroupBox
+	Friend WithEvents Label3 As Label
+	Friend WithEvents TbAirDensity As TextBox
+	Friend WithEvents Label2 As Label
+	Friend WithEvents Label9 As Label
+	Friend WithEvents TbFuelDens As TextBox
+	Friend WithEvents Label8 As Label
+	Friend WithEvents Label11 As Label
+	Friend WithEvents TbCO2toFC As TextBox
+	Friend WithEvents Label10 As Label
+	Friend WithEvents BtHelp As Button
+	Friend WithEvents GroupBox5 As GroupBox
+	Friend WithEvents TbOpenCmdName As TextBox
+	Friend WithEvents Label12 As Label
+End Class
diff --git a/VECTO/GUI/F_Settings.resx b/VECTO/GUI/Settings.resx
similarity index 100%
rename from VECTO/GUI/F_Settings.resx
rename to VECTO/GUI/Settings.resx
diff --git a/VECTO/GUI/F_Settings.vb b/VECTO/GUI/Settings.vb
similarity index 95%
rename from VECTO/GUI/F_Settings.vb
rename to VECTO/GUI/Settings.vb
index c784039944..1503e05c3d 100644
--- a/VECTO/GUI/F_Settings.vb
+++ b/VECTO/GUI/Settings.vb
@@ -1,85 +1,85 @@
-' Copyright 2014 European Union.
-' Licensed under the EUPL (the 'Licence');
-'
-' * You may not use this work except in compliance with the Licence.
-' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
-' * Unless required by applicable law or agreed to in writing,
-'   software distributed under the Licence is distributed on an "AS IS" basis,
-'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-'
-' See the LICENSE.txt for the specific language governing permissions and limitations.
-Imports System.IO
-Imports System.Text.RegularExpressions
-
-''' <summary>
-''' Settings form
-''' </summary>
-''' <remarks></remarks>
-Public Class F_Settings
-	'Initialize - load config
-	Private Sub F03_Options_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
-
-		LoadSettings()
-	End Sub
-
-	Private Sub LoadSettings()
-
-		TextBoxLogSize.Text = Cfg.LogSize
-		TbAirDensity.Text = CStr(Cfg.AirDensity)
-		TbOpenCmd.Text = Cfg.OpenCmd
-		TbOpenCmdName.Text = Cfg.OpenCmdName
-		TbFuelDens.Text = Cfg.FuelDens.ToString
-		TbCO2toFC.Text = Cfg.CO2perFC.ToString
-
-		GrCalc.Enabled = Not Cfg.DeclMode
-	End Sub
-
-
-	'Reset Button
-	Private Sub ButReset_Click(sender As Object, e As EventArgs) Handles ButReset.Click
-		If _
-			MsgBox(
-				"This will reset all application settings including the Options Tab. Filehistory will not be deleted." & vbCrLf &
-				vbCrLf & "Continue ?", MsgBoxStyle.YesNo, "Reset Application Settings") = MsgBoxResult.Yes Then
-			Cfg.SetDefault()
-			If Cfg.DeclMode Then Cfg.DeclInit()
-			F_MAINForm.LoadOptions()
-			LoadSettings()
-			Close()
-		End If
-	End Sub
-
-	'Save and close
-	Private Sub ButtonOK_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ButtonOK.Click
-		Cfg.LogSize = CSng(TextBoxLogSize.Text)
-		Cfg.AirDensity = CSng(TbAirDensity.Text)
-		Cfg.OpenCmd = TbOpenCmd.Text
-		Cfg.OpenCmdName = TbOpenCmdName.Text
-		Cfg.FuelDens = CSng(TbFuelDens.Text)
-		Cfg.CO2perFC = CSng(TbCO2toFC.Text)
-		'----------------------------------------------------
-
-		Cfg.Save()
-
-		Close()
-	End Sub
-
-	'Cancel
-	Private Sub ButtonCancel_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ButtonCancel.Click
-		Close()
-	End Sub
-
-	'Help button
-	Private Sub BtHelp_Click(sender As Object, e As EventArgs) Handles BtHelp.Click
-		If File.Exists(MyAppPath & "User Manual\help.html") Then
-			Dim BrowserRegistryString As String =
-					My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString
-			Dim DefaultBrowserPath As String =
-					Regex.Match(BrowserRegistryString, "(\"".*?\"")").Captures(0).ToString
-			Process.Start(DefaultBrowserPath,
-											String.Format("""{0}{1}""", MyAppPath, "User Manual\help.html#settings"))
-		Else
-			MsgBox("User Manual not found!", MsgBoxStyle.Critical)
-		End If
-	End Sub
-End Class
+' Copyright 2014 European Union.
+' Licensed under the EUPL (the 'Licence');
+'
+' * You may not use this work except in compliance with the Licence.
+' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
+' * Unless required by applicable law or agreed to in writing,
+'   software distributed under the Licence is distributed on an "AS IS" basis,
+'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+'
+' See the LICENSE.txt for the specific language governing permissions and limitations.
+Imports System.IO
+Imports System.Text.RegularExpressions
+
+''' <summary>
+''' Settings form
+''' </summary>
+''' <remarks></remarks>
+Public Class Settings
+	'Initialize - load config
+	Private Sub F03_Options_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
+
+		LoadSettings()
+	End Sub
+
+	Private Sub LoadSettings()
+
+		TextBoxLogSize.Text = Cfg.LogSize
+		TbAirDensity.Text = CStr(Cfg.AirDensity)
+		TbOpenCmd.Text = Cfg.OpenCmd
+		TbOpenCmdName.Text = Cfg.OpenCmdName
+		TbFuelDens.Text = Cfg.FuelDens.ToString
+		TbCO2toFC.Text = Cfg.CO2perFC.ToString
+
+		GrCalc.Enabled = Not Cfg.DeclMode
+	End Sub
+
+
+	'Reset Button
+	Private Sub ButReset_Click(sender As Object, e As EventArgs) Handles ButReset.Click
+		If _
+			MsgBox(
+				"This will reset all application settings including the Options Tab. Filehistory will not be deleted." & vbCrLf &
+				vbCrLf & "Continue ?", MsgBoxStyle.YesNo, "Reset Application Settings") = MsgBoxResult.Yes Then
+			Cfg.SetDefault()
+			If Cfg.DeclMode Then Cfg.DeclInit()
+			MainForm.LoadOptions()
+			LoadSettings()
+			Close()
+		End If
+	End Sub
+
+	'Save and close
+	Private Sub ButtonOK_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ButtonOK.Click
+		Cfg.LogSize = CSng(TextBoxLogSize.Text)
+		Cfg.AirDensity = CSng(TbAirDensity.Text)
+		Cfg.OpenCmd = TbOpenCmd.Text
+		Cfg.OpenCmdName = TbOpenCmdName.Text
+		Cfg.FuelDens = CSng(TbFuelDens.Text)
+		Cfg.CO2perFC = CSng(TbCO2toFC.Text)
+		'----------------------------------------------------
+
+		Cfg.Save()
+
+		Close()
+	End Sub
+
+	'Cancel
+	Private Sub ButtonCancel_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ButtonCancel.Click
+		Close()
+	End Sub
+
+	'Help button
+	Private Sub BtHelp_Click(sender As Object, e As EventArgs) Handles BtHelp.Click
+		If File.Exists(MyAppPath & "User Manual\help.html") Then
+			Dim BrowserRegistryString As String =
+					My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString
+			Dim DefaultBrowserPath As String =
+					Regex.Match(BrowserRegistryString, "(\"".*?\"")").Captures(0).ToString
+			Process.Start(DefaultBrowserPath,
+											String.Format("""{0}{1}""", MyAppPath, "User Manual\help.html#settings"))
+		Else
+			MsgBox("User Manual not found!", MsgBoxStyle.Critical)
+		End If
+	End Sub
+End Class
diff --git a/VECTO/GUI/F_VECTO.Designer.vb b/VECTO/GUI/VectoJobForm.Designer.vb
similarity index 96%
rename from VECTO/GUI/F_VECTO.Designer.vb
rename to VECTO/GUI/VectoJobForm.Designer.vb
index 350fe1e387..2cf5335dee 100644
--- a/VECTO/GUI/F_VECTO.Designer.vb
+++ b/VECTO/GUI/VectoJobForm.Designer.vb
@@ -1,1327 +1,1327 @@
-Imports System.ComponentModel
-Imports Microsoft.VisualBasic.CompilerServices
-
-<DesignerGenerated()> _
-Partial Class F_VECTO
-	Inherits Form
-
-	'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
-	<DebuggerNonUserCode()> _
-	Protected Overrides Sub Dispose(ByVal disposing As Boolean)
-		Try
-			If disposing AndAlso components IsNot Nothing Then
-				components.Dispose()
-			End If
-		Finally
-			MyBase.Dispose(disposing)
-		End Try
-	End Sub
-
-	'Wird vom Windows Form-Designer benötigt.
-	Private components As IContainer
-
-	'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
-	'Das Bearbeiten ist mit dem Windows Form-Designer möglich.  
-	'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
-	<DebuggerStepThrough()> _
-	Private Sub InitializeComponent()
-		Me.components = New Container()
-		Dim resources As ComponentResourceManager = New ComponentResourceManager(GetType(F_VECTO))
-		Me.TabPgGen = New TabPage()
-		Me.GrCycles = New GroupBox()
-		Me.Label2 = New Label()
-		Me.LvCycles = New ListView()
-		Me.ColumnHeader1 = CType(New ColumnHeader(), ColumnHeader)
-		Me.BtDRIrem = New Button()
-		Me.BtDRIadd = New Button()
-		Me.GrAux = New GroupBox()
-		Me.btnAAUXOpen = New Button()
-		Me.Label1 = New Label()
-		Me.btnBrowseAAUXFile = New Button()
-		Me.txtAdvancedAuxiliaryFile = New TextBox()
-		Me.picAuxInfo = New PictureBox()
-		Me.cboAdvancedAuxiliaries = New ComboBox()
-		Me.lbAdvancedAuxiliaries = New Label()
-		Me.Label32 = New Label()
-		Me.LvAux = New ListView()
-		Me.ColumnHeader4 = CType(New ColumnHeader(), ColumnHeader)
-		Me.ColumnHeader5 = CType(New ColumnHeader(), ColumnHeader)
-		Me.ColumnHeader6 = CType(New ColumnHeader(), ColumnHeader)
-		Me.ButAuxRem = New Button()
-		Me.ButAuxAdd = New Button()
-		Me.TbGBX = New TextBox()
-		Me.TbENG = New TextBox()
-		Me.TbVEH = New TextBox()
-		Me.ButOpenGBX = New Button()
-		Me.ButOpenENG = New Button()
-		Me.ButOpenVEH = New Button()
-		Me.ButtonVEH = New Button()
-		Me.ButtonGBX = New Button()
-		Me.ButtonMAP = New Button()
-		Me.TabControl1 = New TabControl()
-		Me.TabPgDriver = New TabPage()
-		Me.GrVACC = New GroupBox()
-		Me.TbDesMaxFile = New TextBox()
-		Me.BtDesMaxBr = New Button()
-		Me.BtAccOpen = New Button()
-		Me.GrLAC = New GroupBox()
-		Me.Label12 = New Label()
-		Me.tbDfCoastingScale = New TextBox()
-		Me.CbLookAhead = New CheckBox()
-		Me.Label11 = New Label()
-		Me.Label3 = New Label()
-		Me.tbDfCoastingOffset = New TextBox()
-		Me.tbLacDfTargetSpeedFile = New TextBox()
-		Me.Label10 = New Label()
-		Me.Label4 = New Label()
-		Me.Label5 = New Label()
-		Me.btnDfTargetSpeed = New Button()
-		Me.tbLacPreviewFactor = New TextBox()
-		Me.tbLacDfVelocityDropFile = New TextBox()
-		Me.GroupBox1 = New GroupBox()
-		Me.PnEcoRoll = New Panel()
-		Me.Label21 = New Label()
-		Me.Label20 = New Label()
-		Me.Label14 = New Label()
-		Me.TbVmin = New TextBox()
-		Me.TbUnderSpeed = New TextBox()
-		Me.TbOverspeed = New TextBox()
-		Me.Label23 = New Label()
-		Me.Label22 = New Label()
-		Me.Label13 = New Label()
-		Me.RdEcoRoll = New RadioButton()
-		Me.RdOverspeed = New RadioButton()
-		Me.RdOff = New RadioButton()
-		Me.GrStartStop = New GroupBox()
-		Me.PnStartStop = New Panel()
-		Me.Label31 = New Label()
-		Me.Label27 = New Label()
-		Me.TbSSspeed = New TextBox()
-		Me.LabelSSspeed = New Label()
-		Me.Label26 = New Label()
-		Me.Label30 = New Label()
-		Me.LabelSStime = New Label()
-		Me.TbSSdelay = New TextBox()
-		Me.TbSStime = New TextBox()
-		Me.ChBStartStop = New CheckBox()
-		Me.StatusStrip1 = New StatusStrip()
-		Me.ToolStripStatusLabelGEN = New ToolStripStatusLabel()
-		Me.ButOK = New Button()
-		Me.ButCancel = New Button()
-		Me.ToolStrip1 = New ToolStrip()
-		Me.ToolStripBtNew = New ToolStripButton()
-		Me.ToolStripBtOpen = New ToolStripButton()
-		Me.ToolStripBtSave = New ToolStripButton()
-		Me.ToolStripBtSaveAs = New ToolStripButton()
-		Me.ToolStripSeparator1 = New ToolStripSeparator()
-		Me.ToolStripBtSendTo = New ToolStripButton()
-		Me.ToolStripSeparator2 = New ToolStripSeparator()
-		Me.ToolStripButton1 = New ToolStripButton()
-		Me.PictureBox1 = New PictureBox()
-		Me.CbEngOnly = New CheckBox()
-		Me.CmOpenFile = New ContextMenuStrip(Me.components)
-		Me.OpenWithToolStripMenuItem = New ToolStripMenuItem()
-		Me.ShowInFolderToolStripMenuItem = New ToolStripMenuItem()
-		Me.PicVehicle = New PictureBox()
-		Me.PicBox = New PictureBox()
-		Me.TbEngTxt = New TextBox()
-		Me.TbVehCat = New TextBox()
-		Me.TbAxleConf = New TextBox()
-		Me.TbHVCclass = New TextBox()
-		Me.TbGbxTxt = New TextBox()
-		Me.TbMass = New TextBox()
-		Me.ToolTip1 = New ToolTip(Me.components)
-		Me.TabPgGen.SuspendLayout()
-		Me.GrCycles.SuspendLayout()
-		Me.GrAux.SuspendLayout()
-		CType(Me.picAuxInfo, ISupportInitialize).BeginInit()
-		Me.TabControl1.SuspendLayout()
-		Me.TabPgDriver.SuspendLayout()
-		Me.GrVACC.SuspendLayout()
-		Me.GrLAC.SuspendLayout()
-		Me.GroupBox1.SuspendLayout()
-		Me.PnEcoRoll.SuspendLayout()
-		Me.GrStartStop.SuspendLayout()
-		Me.PnStartStop.SuspendLayout()
-		Me.StatusStrip1.SuspendLayout()
-		Me.ToolStrip1.SuspendLayout()
-		CType(Me.PictureBox1, ISupportInitialize).BeginInit()
-		Me.CmOpenFile.SuspendLayout()
-		CType(Me.PicVehicle, ISupportInitialize).BeginInit()
-		CType(Me.PicBox, ISupportInitialize).BeginInit()
-		Me.SuspendLayout()
-		'
-		'TabPgGen
-		'
-		Me.TabPgGen.Controls.Add(Me.GrCycles)
-		Me.TabPgGen.Controls.Add(Me.GrAux)
-		Me.TabPgGen.Controls.Add(Me.TbGBX)
-		Me.TabPgGen.Controls.Add(Me.TbENG)
-		Me.TabPgGen.Controls.Add(Me.TbVEH)
-		Me.TabPgGen.Controls.Add(Me.ButOpenGBX)
-		Me.TabPgGen.Controls.Add(Me.ButOpenENG)
-		Me.TabPgGen.Controls.Add(Me.ButOpenVEH)
-		Me.TabPgGen.Controls.Add(Me.ButtonVEH)
-		Me.TabPgGen.Controls.Add(Me.ButtonGBX)
-		Me.TabPgGen.Controls.Add(Me.ButtonMAP)
-		Me.TabPgGen.Location = New Point(4, 22)
-		Me.TabPgGen.Name = "TabPgGen"
-		Me.TabPgGen.Padding = New Padding(3)
-		Me.TabPgGen.Size = New Size(527, 534)
-		Me.TabPgGen.TabIndex = 0
-		Me.TabPgGen.Text = "General"
-		Me.TabPgGen.UseVisualStyleBackColor = True
-		'
-		'GrCycles
-		'
-		Me.GrCycles.Anchor = CType((((AnchorStyles.Top Or AnchorStyles.Bottom) _
-			Or AnchorStyles.Left) _
-			Or AnchorStyles.Right), AnchorStyles)
-		Me.GrCycles.Controls.Add(Me.Label2)
-		Me.GrCycles.Controls.Add(Me.LvCycles)
-		Me.GrCycles.Controls.Add(Me.BtDRIrem)
-		Me.GrCycles.Controls.Add(Me.BtDRIadd)
-		Me.GrCycles.Location = New Point(9, 314)
-		Me.GrCycles.Name = "GrCycles"
-		Me.GrCycles.Size = New Size(515, 184)
-		Me.GrCycles.TabIndex = 10
-		Me.GrCycles.TabStop = False
-		Me.GrCycles.Text = "Cycles"
-		'
-		'Label2
-		'
-		Me.Label2.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
-		Me.Label2.AutoSize = True
-		Me.Label2.Location = New Point(379, 148)
-		Me.Label2.Name = "Label2"
-		Me.Label2.Size = New Size(133, 13)
-		Me.Label2.TabIndex = 3
-		Me.Label2.Text = "(Double-Click to Open File)"
-		'
-		'LvCycles
-		'
-		Me.LvCycles.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
-			Or AnchorStyles.Right), AnchorStyles)
-		Me.LvCycles.Columns.AddRange(New ColumnHeader() {Me.ColumnHeader1})
-		Me.LvCycles.FullRowSelect = True
-		Me.LvCycles.GridLines = True
-		Me.LvCycles.HeaderStyle = ColumnHeaderStyle.None
-		Me.LvCycles.HideSelection = False
-		Me.LvCycles.LabelEdit = True
-		Me.LvCycles.Location = New Point(6, 25)
-		Me.LvCycles.MultiSelect = False
-		Me.LvCycles.Name = "LvCycles"
-		Me.LvCycles.Size = New Size(503, 123)
-		Me.LvCycles.TabIndex = 0
-		Me.LvCycles.TabStop = False
-		Me.LvCycles.UseCompatibleStateImageBehavior = False
-		Me.LvCycles.View = View.Details
-		'
-		'ColumnHeader1
-		'
-		Me.ColumnHeader1.Text = "Cycle path"
-		Me.ColumnHeader1.Width = 470
-		'
-		'BtDRIrem
-		'
-		Me.BtDRIrem.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Left), AnchorStyles)
-		Me.BtDRIrem.Image = My.Resources.Resources.minus_circle_icon
-		Me.BtDRIrem.Location = New Point(29, 149)
-		Me.BtDRIrem.Name = "BtDRIrem"
-		Me.BtDRIrem.Size = New Size(24, 24)
-		Me.BtDRIrem.TabIndex = 2
-		Me.BtDRIrem.UseVisualStyleBackColor = True
-		'
-		'BtDRIadd
-		'
-		Me.BtDRIadd.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Left), AnchorStyles)
-		Me.BtDRIadd.Image = My.Resources.Resources.plus_circle_icon
-		Me.BtDRIadd.Location = New Point(5, 149)
-		Me.BtDRIadd.Name = "BtDRIadd"
-		Me.BtDRIadd.Size = New Size(24, 24)
-		Me.BtDRIadd.TabIndex = 1
-		Me.BtDRIadd.UseVisualStyleBackColor = True
-		'
-		'GrAux
-		'
-		Me.GrAux.Anchor = CType((((AnchorStyles.Top Or AnchorStyles.Bottom) _
-			Or AnchorStyles.Left) _
-			Or AnchorStyles.Right), AnchorStyles)
-		Me.GrAux.Controls.Add(Me.btnAAUXOpen)
-		Me.GrAux.Controls.Add(Me.Label1)
-		Me.GrAux.Controls.Add(Me.btnBrowseAAUXFile)
-		Me.GrAux.Controls.Add(Me.txtAdvancedAuxiliaryFile)
-		Me.GrAux.Controls.Add(Me.picAuxInfo)
-		Me.GrAux.Controls.Add(Me.cboAdvancedAuxiliaries)
-		Me.GrAux.Controls.Add(Me.lbAdvancedAuxiliaries)
-		Me.GrAux.Controls.Add(Me.Label32)
-		Me.GrAux.Controls.Add(Me.LvAux)
-		Me.GrAux.Controls.Add(Me.ButAuxRem)
-		Me.GrAux.Controls.Add(Me.ButAuxAdd)
-		Me.GrAux.Location = New Point(6, 87)
-		Me.GrAux.Name = "GrAux"
-		Me.GrAux.Size = New Size(515, 221)
-		Me.GrAux.TabIndex = 9
-		Me.GrAux.TabStop = False
-		Me.GrAux.Text = "Auxiliaries"
-		'
-		'btnAAUXOpen
-		'
-		Me.btnAAUXOpen.Image = My.Resources.Resources.application_export_icon_small
-		Me.btnAAUXOpen.Location = New Point(465, 45)
-		Me.btnAAUXOpen.Name = "btnAAUXOpen"
-		Me.btnAAUXOpen.Size = New Size(24, 24)
-		Me.btnAAUXOpen.TabIndex = 41
-		Me.btnAAUXOpen.UseVisualStyleBackColor = True
-		'
-		'Label1
-		'
-		Me.Label1.AutoSize = True
-		Me.Label1.Location = New Point(7, 52)
-		Me.Label1.Name = "Label1"
-		Me.Label1.Size = New Size(96, 13)
-		Me.Label1.TabIndex = 40
-		Me.Label1.Text = "Advanced Aux File"
-		'
-		'btnBrowseAAUXFile
-		'
-		Me.btnBrowseAAUXFile.Image = My.Resources.Resources.Open_icon
-		Me.btnBrowseAAUXFile.Location = New Point(441, 45)
-		Me.btnBrowseAAUXFile.Name = "btnBrowseAAUXFile"
-		Me.btnBrowseAAUXFile.Size = New Size(24, 24)
-		Me.btnBrowseAAUXFile.TabIndex = 39
-		Me.ToolTip1.SetToolTip(Me.btnBrowseAAUXFile, "Configure/Browser  Advanced Auxiliary Files")
-		Me.btnBrowseAAUXFile.UseVisualStyleBackColor = True
-		'
-		'txtAdvancedAuxiliaryFile
-		'
-		Me.txtAdvancedAuxiliaryFile.Location = New Point(119, 47)
-		Me.txtAdvancedAuxiliaryFile.Name = "txtAdvancedAuxiliaryFile"
-		Me.txtAdvancedAuxiliaryFile.Size = New Size(321, 20)
-		Me.txtAdvancedAuxiliaryFile.TabIndex = 38
-		'
-		'picAuxInfo
-		'
-		Me.picAuxInfo.Image = My.Resources.Resources.Information_icon
-		Me.picAuxInfo.InitialImage = My.Resources.Resources.Information_icon
-		Me.picAuxInfo.Location = New Point(451, 19)
-		Me.picAuxInfo.Name = "picAuxInfo"
-		Me.picAuxInfo.Size = New Size(16, 16)
-		Me.picAuxInfo.SizeMode = PictureBoxSizeMode.AutoSize
-		Me.picAuxInfo.TabIndex = 37
-		Me.picAuxInfo.TabStop = False
-		'
-		'cboAdvancedAuxiliaries
-		'
-		Me.cboAdvancedAuxiliaries.FormattingEnabled = True
-		Me.cboAdvancedAuxiliaries.Location = New Point(119, 18)
-		Me.cboAdvancedAuxiliaries.Name = "cboAdvancedAuxiliaries"
-		Me.cboAdvancedAuxiliaries.Size = New Size(321, 21)
-		Me.cboAdvancedAuxiliaries.TabIndex = 36
-		'
-		'lbAdvancedAuxiliaries
-		'
-		Me.lbAdvancedAuxiliaries.AutoSize = True
-		Me.lbAdvancedAuxiliaries.Location = New Point(7, 21)
-		Me.lbAdvancedAuxiliaries.Name = "lbAdvancedAuxiliaries"
-		Me.lbAdvancedAuxiliaries.Size = New Size(72, 13)
-		Me.lbAdvancedAuxiliaries.TabIndex = 35
-		Me.lbAdvancedAuxiliaries.Text = "Auxiliary Type"
-		'
-		'Label32
-		'
-		Me.Label32.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
-		Me.Label32.AutoSize = True
-		Me.Label32.Location = New Point(406, 189)
-		Me.Label32.Name = "Label32"
-		Me.Label32.Size = New Size(106, 13)
-		Me.Label32.TabIndex = 3
-		Me.Label32.Text = "(Double-Click to Edit)"
-		'
-		'LvAux
-		'
-		Me.LvAux.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
-			Or AnchorStyles.Right), AnchorStyles)
-		Me.LvAux.Columns.AddRange(New ColumnHeader() {Me.ColumnHeader4, Me.ColumnHeader5, Me.ColumnHeader6})
-		Me.LvAux.FullRowSelect = True
-		Me.LvAux.GridLines = True
-		Me.LvAux.HideSelection = False
-		Me.LvAux.Location = New Point(6, 72)
-		Me.LvAux.MultiSelect = False
-		Me.LvAux.Name = "LvAux"
-		Me.LvAux.Size = New Size(503, 117)
-		Me.LvAux.TabIndex = 0
-		Me.LvAux.TabStop = False
-		Me.LvAux.UseCompatibleStateImageBehavior = False
-		Me.LvAux.View = View.Details
-		'
-		'ColumnHeader4
-		'
-		Me.ColumnHeader4.Text = "ID"
-		Me.ColumnHeader4.Width = 45
-		'
-		'ColumnHeader5
-		'
-		Me.ColumnHeader5.Text = "Type"
-		Me.ColumnHeader5.Width = 108
-		'
-		'ColumnHeader6
-		'
-		Me.ColumnHeader6.Text = "Input File"
-		Me.ColumnHeader6.Width = 331
-		'
-		'ButAuxRem
-		'
-		Me.ButAuxRem.Image = My.Resources.Resources.minus_circle_icon
-		Me.ButAuxRem.Location = New Point(29, 190)
-		Me.ButAuxRem.Name = "ButAuxRem"
-		Me.ButAuxRem.Size = New Size(24, 24)
-		Me.ButAuxRem.TabIndex = 2
-		Me.ButAuxRem.UseVisualStyleBackColor = True
-		'
-		'ButAuxAdd
-		'
-		Me.ButAuxAdd.Image = My.Resources.Resources.plus_circle_icon
-		Me.ButAuxAdd.Location = New Point(5, 190)
-		Me.ButAuxAdd.Name = "ButAuxAdd"
-		Me.ButAuxAdd.Size = New Size(24, 24)
-		Me.ButAuxAdd.TabIndex = 1
-		Me.ButAuxAdd.UseVisualStyleBackColor = True
-		'
-		'TbGBX
-		'
-		Me.TbGBX.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
-			Or AnchorStyles.Right), AnchorStyles)
-		Me.TbGBX.Location = New Point(84, 60)
-		Me.TbGBX.Name = "TbGBX"
-		Me.TbGBX.Size = New Size(411, 20)
-		Me.TbGBX.TabIndex = 7
-		'
-		'TbENG
-		'
-		Me.TbENG.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
-			Or AnchorStyles.Right), AnchorStyles)
-		Me.TbENG.Location = New Point(84, 33)
-		Me.TbENG.Name = "TbENG"
-		Me.TbENG.Size = New Size(411, 20)
-		Me.TbENG.TabIndex = 4
-		'
-		'TbVEH
-		'
-		Me.TbVEH.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
-			Or AnchorStyles.Right), AnchorStyles)
-		Me.TbVEH.Location = New Point(84, 7)
-		Me.TbVEH.Name = "TbVEH"
-		Me.TbVEH.Size = New Size(411, 20)
-		Me.TbVEH.TabIndex = 1
-		'
-		'ButOpenGBX
-		'
-		Me.ButOpenGBX.Location = New Point(6, 60)
-		Me.ButOpenGBX.Name = "ButOpenGBX"
-		Me.ButOpenGBX.Size = New Size(72, 21)
-		Me.ButOpenGBX.TabIndex = 6
-		Me.ButOpenGBX.TabStop = False
-		Me.ButOpenGBX.Text = "Gearbox"
-		Me.ButOpenGBX.UseVisualStyleBackColor = True
-		'
-		'ButOpenENG
-		'
-		Me.ButOpenENG.Location = New Point(6, 33)
-		Me.ButOpenENG.Name = "ButOpenENG"
-		Me.ButOpenENG.Size = New Size(72, 21)
-		Me.ButOpenENG.TabIndex = 3
-		Me.ButOpenENG.TabStop = False
-		Me.ButOpenENG.Text = "Engine"
-		Me.ButOpenENG.UseVisualStyleBackColor = True
-		'
-		'ButOpenVEH
-		'
-		Me.ButOpenVEH.Location = New Point(6, 6)
-		Me.ButOpenVEH.Name = "ButOpenVEH"
-		Me.ButOpenVEH.Size = New Size(72, 21)
-		Me.ButOpenVEH.TabIndex = 0
-		Me.ButOpenVEH.TabStop = False
-		Me.ButOpenVEH.Text = "Vehicle"
-		Me.ButOpenVEH.UseVisualStyleBackColor = True
-		'
-		'ButtonVEH
-		'
-		Me.ButtonVEH.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
-		Me.ButtonVEH.Image = CType(resources.GetObject("ButtonVEH.Image"), Image)
-		Me.ButtonVEH.Location = New Point(496, 5)
-		Me.ButtonVEH.Name = "ButtonVEH"
-		Me.ButtonVEH.Size = New Size(24, 24)
-		Me.ButtonVEH.TabIndex = 2
-		Me.ButtonVEH.TabStop = False
-		Me.ButtonVEH.UseVisualStyleBackColor = True
-		'
-		'ButtonGBX
-		'
-		Me.ButtonGBX.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
-		Me.ButtonGBX.Image = CType(resources.GetObject("ButtonGBX.Image"), Image)
-		Me.ButtonGBX.Location = New Point(496, 58)
-		Me.ButtonGBX.Name = "ButtonGBX"
-		Me.ButtonGBX.Size = New Size(24, 24)
-		Me.ButtonGBX.TabIndex = 8
-		Me.ButtonGBX.TabStop = False
-		Me.ButtonGBX.UseVisualStyleBackColor = True
-		'
-		'ButtonMAP
-		'
-		Me.ButtonMAP.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
-		Me.ButtonMAP.Image = CType(resources.GetObject("ButtonMAP.Image"), Image)
-		Me.ButtonMAP.Location = New Point(496, 31)
-		Me.ButtonMAP.Name = "ButtonMAP"
-		Me.ButtonMAP.Size = New Size(24, 24)
-		Me.ButtonMAP.TabIndex = 5
-		Me.ButtonMAP.TabStop = False
-		Me.ButtonMAP.UseVisualStyleBackColor = True
-		'
-		'TabControl1
-		'
-		Me.TabControl1.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
-			Or AnchorStyles.Right), AnchorStyles)
-		Me.TabControl1.Controls.Add(Me.TabPgGen)
-		Me.TabControl1.Controls.Add(Me.TabPgDriver)
-		Me.TabControl1.Location = New Point(1, 107)
-		Me.TabControl1.Name = "TabControl1"
-		Me.TabControl1.SelectedIndex = 0
-		Me.TabControl1.Size = New Size(535, 560)
-		Me.TabControl1.SizeMode = TabSizeMode.Fixed
-		Me.TabControl1.TabIndex = 0
-		'
-		'TabPgDriver
-		'
-		Me.TabPgDriver.Controls.Add(Me.GrVACC)
-		Me.TabPgDriver.Controls.Add(Me.GrLAC)
-		Me.TabPgDriver.Controls.Add(Me.GroupBox1)
-		Me.TabPgDriver.Controls.Add(Me.GrStartStop)
-		Me.TabPgDriver.Location = New Point(4, 22)
-		Me.TabPgDriver.Name = "TabPgDriver"
-		Me.TabPgDriver.Padding = New Padding(3)
-		Me.TabPgDriver.Size = New Size(527, 534)
-		Me.TabPgDriver.TabIndex = 7
-		Me.TabPgDriver.Text = "Driver Assist"
-		Me.TabPgDriver.UseVisualStyleBackColor = True
-		'
-		'GrVACC
-		'
-		Me.GrVACC.Controls.Add(Me.TbDesMaxFile)
-		Me.GrVACC.Controls.Add(Me.BtDesMaxBr)
-		Me.GrVACC.Controls.Add(Me.BtAccOpen)
-		Me.GrVACC.Location = New Point(6, 459)
-		Me.GrVACC.Name = "GrVACC"
-		Me.GrVACC.Size = New Size(515, 65)
-		Me.GrVACC.TabIndex = 3
-		Me.GrVACC.TabStop = False
-		Me.GrVACC.Text = "Max. acceleration and brake curves"
-		'
-		'TbDesMaxFile
-		'
-		Me.TbDesMaxFile.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
-			Or AnchorStyles.Right), AnchorStyles)
-		Me.TbDesMaxFile.Location = New Point(6, 29)
-		Me.TbDesMaxFile.Name = "TbDesMaxFile"
-		Me.TbDesMaxFile.Size = New Size(440, 20)
-		Me.TbDesMaxFile.TabIndex = 0
-		'
-		'BtDesMaxBr
-		'
-		Me.BtDesMaxBr.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
-		Me.BtDesMaxBr.Image = My.Resources.Resources.Open_icon
-		Me.BtDesMaxBr.Location = New Point(446, 27)
-		Me.BtDesMaxBr.Name = "BtDesMaxBr"
-		Me.BtDesMaxBr.Size = New Size(24, 24)
-		Me.BtDesMaxBr.TabIndex = 1
-		Me.BtDesMaxBr.UseVisualStyleBackColor = True
-		'
-		'BtAccOpen
-		'
-		Me.BtAccOpen.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
-		Me.BtAccOpen.Image = My.Resources.Resources.application_export_icon_small
-		Me.BtAccOpen.Location = New Point(469, 27)
-		Me.BtAccOpen.Name = "BtAccOpen"
-		Me.BtAccOpen.Size = New Size(24, 24)
-		Me.BtAccOpen.TabIndex = 2
-		Me.BtAccOpen.TabStop = False
-		Me.BtAccOpen.UseVisualStyleBackColor = True
-		'
-		'GrLAC
-		'
-		Me.GrLAC.Controls.Add(Me.Label12)
-		Me.GrLAC.Controls.Add(Me.tbDfCoastingScale)
-		Me.GrLAC.Controls.Add(Me.CbLookAhead)
-		Me.GrLAC.Controls.Add(Me.Label11)
-		Me.GrLAC.Controls.Add(Me.Label3)
-		Me.GrLAC.Controls.Add(Me.tbDfCoastingOffset)
-		Me.GrLAC.Controls.Add(Me.tbLacDfTargetSpeedFile)
-		Me.GrLAC.Controls.Add(Me.Label10)
-		Me.GrLAC.Controls.Add(Me.Label4)
-		Me.GrLAC.Controls.Add(Me.Label5)
-		Me.GrLAC.Controls.Add(Me.btnDfTargetSpeed)
-		Me.GrLAC.Controls.Add(Me.tbLacPreviewFactor)
-		Me.GrLAC.Controls.Add(Me.tbLacDfVelocityDropFile)
-		Me.GrLAC.Location = New Point(7, 290)
-		Me.GrLAC.Name = "GrLAC"
-		Me.GrLAC.Size = New Size(514, 163)
-		Me.GrLAC.TabIndex = 2
-		Me.GrLAC.TabStop = False
-		Me.GrLAC.Text = "Look-Ahead Coasting"
-		'
-		'Label12
-		'
-		Me.Label12.AutoSize = True
-		Me.Label12.Location = New Point(279, 133)
-		Me.Label12.Name = "Label12"
-		Me.Label12.Size = New Size(130, 13)
-		Me.Label12.TabIndex = 17
-		Me.Label12.Text = "* DF_vTarget * DF_vDrop"
-		'
-		'tbDfCoastingScale
-		'
-		Me.tbDfCoastingScale.Location = New Point(236, 130)
-		Me.tbDfCoastingScale.Name = "tbDfCoastingScale"
-		Me.tbDfCoastingScale.Size = New Size(37, 20)
-		Me.tbDfCoastingScale.TabIndex = 16
-		'
-		'CbLookAhead
-		'
-		Me.CbLookAhead.AutoSize = True
-		Me.CbLookAhead.Checked = True
-		Me.CbLookAhead.CheckState = CheckState.Checked
-		Me.CbLookAhead.Location = New Point(16, 21)
-		Me.CbLookAhead.Name = "CbLookAhead"
-		Me.CbLookAhead.Size = New Size(65, 17)
-		Me.CbLookAhead.TabIndex = 0
-		Me.CbLookAhead.Text = "Enabled"
-		Me.CbLookAhead.UseVisualStyleBackColor = True
-		'
-		'Label11
-		'
-		Me.Label11.AutoSize = True
-		Me.Label11.Location = New Point(219, 132)
-		Me.Label11.Name = "Label11"
-		Me.Label11.Size = New Size(13, 13)
-		Me.Label11.TabIndex = 15
-		Me.Label11.Text = "- "
-		'
-		'Label3
-		'
-		Me.Label3.AutoSize = True
-		Me.Label3.Location = New Point(50, 54)
-		Me.Label3.Name = "Label3"
-		Me.Label3.Size = New Size(118, 13)
-		Me.Label3.TabIndex = 4
-		Me.Label3.Text = "Preview distance factor"
-		Me.Label3.TextAlign = ContentAlignment.MiddleRight
-		'
-		'tbDfCoastingOffset
-		'
-		Me.tbDfCoastingOffset.Location = New Point(175, 130)
-		Me.tbDfCoastingOffset.Name = "tbDfCoastingOffset"
-		Me.tbDfCoastingOffset.Size = New Size(37, 20)
-		Me.tbDfCoastingOffset.TabIndex = 14
-		'
-		'tbLacDfTargetSpeedFile
-		'
-		Me.tbLacDfTargetSpeedFile.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
-			Or AnchorStyles.Right), AnchorStyles)
-		Me.tbLacDfTargetSpeedFile.Location = New Point(174, 77)
-		Me.tbLacDfTargetSpeedFile.Name = "tbLacDfTargetSpeedFile"
-		Me.tbLacDfTargetSpeedFile.Size = New Size(264, 20)
-		Me.tbLacDfTargetSpeedFile.TabIndex = 6
-		'
-		'Label10
-		'
-		Me.Label10.AutoSize = True
-		Me.Label10.Location = New Point(89, 133)
-		Me.Label10.Name = "Label10"
-		Me.Label10.Size = New Size(79, 13)
-		Me.Label10.TabIndex = 12
-		Me.Label10.Text = "DF_coasting = "
-		'
-		'Label4
-		'
-		Me.Label4.AutoSize = True
-		Me.Label4.Location = New Point(13, 80)
-		Me.Label4.Name = "Label4"
-		Me.Label4.Size = New Size(155, 13)
-		Me.Label4.TabIndex = 8
-		Me.Label4.Text = "Decision Factor - Target Speed"
-		Me.Label4.TextAlign = ContentAlignment.MiddleRight
-		'
-		'Label5
-		'
-		Me.Label5.AutoSize = True
-		Me.Label5.Location = New Point(15, 107)
-		Me.Label5.Name = "Label5"
-		Me.Label5.Size = New Size(153, 13)
-		Me.Label5.TabIndex = 11
-		Me.Label5.Text = "Decision Factor - Velocity Drop"
-		Me.Label5.TextAlign = ContentAlignment.MiddleRight
-		'
-		'btnDfTargetSpeed
-		'
-		Me.btnDfTargetSpeed.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
-		Me.btnDfTargetSpeed.Image = CType(resources.GetObject("btnDfTargetSpeed.Image"), Image)
-		Me.btnDfTargetSpeed.Location = New Point(438, 76)
-		Me.btnDfTargetSpeed.Name = "btnDfTargetSpeed"
-		Me.btnDfTargetSpeed.Size = New Size(24, 24)
-		Me.btnDfTargetSpeed.TabIndex = 7
-		Me.btnDfTargetSpeed.TabStop = False
-		Me.btnDfTargetSpeed.UseVisualStyleBackColor = True
-		'
-		'tbLacPreviewFactor
-		'
-		Me.tbLacPreviewFactor.Location = New Point(174, 51)
-		Me.tbLacPreviewFactor.Name = "tbLacPreviewFactor"
-		Me.tbLacPreviewFactor.Size = New Size(64, 20)
-		Me.tbLacPreviewFactor.TabIndex = 5
-		'
-		'tbLacDfVelocityDropFile
-		'
-		Me.tbLacDfVelocityDropFile.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
-			Or AnchorStyles.Right), AnchorStyles)
-		Me.tbLacDfVelocityDropFile.Location = New Point(174, 104)
-		Me.tbLacDfVelocityDropFile.Name = "tbLacDfVelocityDropFile"
-		Me.tbLacDfVelocityDropFile.Size = New Size(264, 20)
-		Me.tbLacDfVelocityDropFile.TabIndex = 9
-		'
-		'GroupBox1
-		'
-		Me.GroupBox1.Controls.Add(Me.PnEcoRoll)
-		Me.GroupBox1.Controls.Add(Me.RdEcoRoll)
-		Me.GroupBox1.Controls.Add(Me.RdOverspeed)
-		Me.GroupBox1.Controls.Add(Me.RdOff)
-		Me.GroupBox1.Location = New Point(6, 149)
-		Me.GroupBox1.Name = "GroupBox1"
-		Me.GroupBox1.Size = New Size(515, 135)
-		Me.GroupBox1.TabIndex = 1
-		Me.GroupBox1.TabStop = False
-		Me.GroupBox1.Text = "Overspeed / Eco-Roll"
-		'
-		'PnEcoRoll
-		'
-		Me.PnEcoRoll.Controls.Add(Me.Label21)
-		Me.PnEcoRoll.Controls.Add(Me.Label20)
-		Me.PnEcoRoll.Controls.Add(Me.Label14)
-		Me.PnEcoRoll.Controls.Add(Me.TbVmin)
-		Me.PnEcoRoll.Controls.Add(Me.TbUnderSpeed)
-		Me.PnEcoRoll.Controls.Add(Me.TbOverspeed)
-		Me.PnEcoRoll.Controls.Add(Me.Label23)
-		Me.PnEcoRoll.Controls.Add(Me.Label22)
-		Me.PnEcoRoll.Controls.Add(Me.Label13)
-		Me.PnEcoRoll.Location = New Point(137, 16)
-		Me.PnEcoRoll.Name = "PnEcoRoll"
-		Me.PnEcoRoll.Size = New Size(232, 102)
-		Me.PnEcoRoll.TabIndex = 3
-		'
-		'Label21
-		'
-		Me.Label21.AutoSize = True
-		Me.Label21.Location = New Point(178, 61)
-		Me.Label21.Name = "Label21"
-		Me.Label21.Size = New Size(38, 13)
-		Me.Label21.TabIndex = 3
-		Me.Label21.Text = "[km/h]"
-		'
-		'Label20
-		'
-		Me.Label20.AutoSize = True
-		Me.Label20.Location = New Point(178, 35)
-		Me.Label20.Name = "Label20"
-		Me.Label20.Size = New Size(38, 13)
-		Me.Label20.TabIndex = 3
-		Me.Label20.Text = "[km/h]"
-		'
-		'Label14
-		'
-		Me.Label14.AutoSize = True
-		Me.Label14.Location = New Point(178, 9)
-		Me.Label14.Name = "Label14"
-		Me.Label14.Size = New Size(38, 13)
-		Me.Label14.TabIndex = 3
-		Me.Label14.Text = "[km/h]"
-		'
-		'TbVmin
-		'
-		Me.TbVmin.Location = New Point(108, 58)
-		Me.TbVmin.Name = "TbVmin"
-		Me.TbVmin.Size = New Size(64, 20)
-		Me.TbVmin.TabIndex = 2
-		'
-		'TbUnderSpeed
-		'
-		Me.TbUnderSpeed.Location = New Point(108, 32)
-		Me.TbUnderSpeed.Name = "TbUnderSpeed"
-		Me.TbUnderSpeed.Size = New Size(64, 20)
-		Me.TbUnderSpeed.TabIndex = 1
-		'
-		'TbOverspeed
-		'
-		Me.TbOverspeed.Location = New Point(108, 6)
-		Me.TbOverspeed.Name = "TbOverspeed"
-		Me.TbOverspeed.Size = New Size(64, 20)
-		Me.TbOverspeed.TabIndex = 0
-		'
-		'Label23
-		'
-		Me.Label23.AutoSize = True
-		Me.Label23.Location = New Point(22, 61)
-		Me.Label23.Name = "Label23"
-		Me.Label23.Size = New Size(80, 13)
-		Me.Label23.TabIndex = 1
-		Me.Label23.Text = "Minimum speed"
-		'
-		'Label22
-		'
-		Me.Label22.AutoSize = True
-		Me.Label22.Location = New Point(11, 35)
-		Me.Label22.Name = "Label22"
-		Me.Label22.Size = New Size(91, 13)
-		Me.Label22.TabIndex = 1
-		Me.Label22.Text = "Max. Underspeed"
-		'
-		'Label13
-		'
-		Me.Label13.AutoSize = True
-		Me.Label13.Location = New Point(17, 9)
-		Me.Label13.Name = "Label13"
-		Me.Label13.Size = New Size(85, 13)
-		Me.Label13.TabIndex = 1
-		Me.Label13.Text = "Max. Overspeed"
-		'
-		'RdEcoRoll
-		'
-		Me.RdEcoRoll.AutoSize = True
-		Me.RdEcoRoll.Checked = True
-		Me.RdEcoRoll.Location = New Point(13, 68)
-		Me.RdEcoRoll.Name = "RdEcoRoll"
-		Me.RdEcoRoll.Size = New Size(65, 17)
-		Me.RdEcoRoll.TabIndex = 2
-		Me.RdEcoRoll.TabStop = True
-		Me.RdEcoRoll.Text = "Eco-Roll"
-		Me.RdEcoRoll.UseVisualStyleBackColor = True
-		'
-		'RdOverspeed
-		'
-		Me.RdOverspeed.AutoSize = True
-		Me.RdOverspeed.Location = New Point(13, 45)
-		Me.RdOverspeed.Name = "RdOverspeed"
-		Me.RdOverspeed.Size = New Size(77, 17)
-		Me.RdOverspeed.TabIndex = 1
-		Me.RdOverspeed.Text = "Overspeed"
-		Me.RdOverspeed.UseVisualStyleBackColor = True
-		'
-		'RdOff
-		'
-		Me.RdOff.AutoSize = True
-		Me.RdOff.Location = New Point(13, 22)
-		Me.RdOff.Name = "RdOff"
-		Me.RdOff.Size = New Size(39, 17)
-		Me.RdOff.TabIndex = 0
-		Me.RdOff.Text = "Off"
-		Me.RdOff.UseVisualStyleBackColor = True
-		'
-		'GrStartStop
-		'
-		Me.GrStartStop.Controls.Add(Me.PnStartStop)
-		Me.GrStartStop.Controls.Add(Me.ChBStartStop)
-		Me.GrStartStop.Location = New Point(6, 6)
-		Me.GrStartStop.Name = "GrStartStop"
-		Me.GrStartStop.Size = New Size(515, 137)
-		Me.GrStartStop.TabIndex = 0
-		Me.GrStartStop.TabStop = False
-		Me.GrStartStop.Text = "Engine Start Stop"
-		'
-		'PnStartStop
-		'
-		Me.PnStartStop.Controls.Add(Me.Label31)
-		Me.PnStartStop.Controls.Add(Me.Label27)
-		Me.PnStartStop.Controls.Add(Me.TbSSspeed)
-		Me.PnStartStop.Controls.Add(Me.LabelSSspeed)
-		Me.PnStartStop.Controls.Add(Me.Label26)
-		Me.PnStartStop.Controls.Add(Me.Label30)
-		Me.PnStartStop.Controls.Add(Me.LabelSStime)
-		Me.PnStartStop.Controls.Add(Me.TbSSdelay)
-		Me.PnStartStop.Controls.Add(Me.TbSStime)
-		Me.PnStartStop.Location = New Point(87, 21)
-		Me.PnStartStop.Name = "PnStartStop"
-		Me.PnStartStop.Size = New Size(422, 95)
-		Me.PnStartStop.TabIndex = 1
-		'
-		'Label31
-		'
-		Me.Label31.AutoSize = True
-		Me.Label31.Location = New Point(228, 58)
-		Me.Label31.Name = "Label31"
-		Me.Label31.Size = New Size(18, 13)
-		Me.Label31.TabIndex = 38
-		Me.Label31.Text = "[s]"
-		'
-		'Label27
-		'
-		Me.Label27.AutoSize = True
-		Me.Label27.Location = New Point(228, 32)
-		Me.Label27.Name = "Label27"
-		Me.Label27.Size = New Size(18, 13)
-		Me.Label27.TabIndex = 38
-		Me.Label27.Text = "[s]"
-		'
-		'TbSSspeed
-		'
-		Me.TbSSspeed.Location = New Point(158, 3)
-		Me.TbSSspeed.Name = "TbSSspeed"
-		Me.TbSSspeed.Size = New Size(64, 20)
-		Me.TbSSspeed.TabIndex = 0
-		'
-		'LabelSSspeed
-		'
-		Me.LabelSSspeed.AutoSize = True
-		Me.LabelSSspeed.Location = New Point(91, 6)
-		Me.LabelSSspeed.Name = "LabelSSspeed"
-		Me.LabelSSspeed.Size = New Size(61, 13)
-		Me.LabelSSspeed.TabIndex = 37
-		Me.LabelSSspeed.Text = "Max Speed"
-		'
-		'Label26
-		'
-		Me.Label26.AutoSize = True
-		Me.Label26.Location = New Point(228, 6)
-		Me.Label26.Name = "Label26"
-		Me.Label26.Size = New Size(38, 13)
-		Me.Label26.TabIndex = 38
-		Me.Label26.Text = "[km/h]"
-		'
-		'Label30
-		'
-		Me.Label30.AutoSize = True
-		Me.Label30.Location = New Point(68, 58)
-		Me.Label30.Name = "Label30"
-		Me.Label30.Size = New Size(84, 13)
-		Me.Label30.TabIndex = 35
-		Me.Label30.Text = "Activation Delay"
-		'
-		'LabelSStime
-		'
-		Me.LabelSStime.AutoSize = True
-		Me.LabelSStime.Location = New Point(65, 32)
-		Me.LabelSStime.Name = "LabelSStime"
-		Me.LabelSStime.Size = New Size(87, 13)
-		Me.LabelSStime.TabIndex = 35
-		Me.LabelSStime.Text = "Min ICE-On Time"
-		'
-		'TbSSdelay
-		'
-		Me.TbSSdelay.Location = New Point(158, 55)
-		Me.TbSSdelay.Name = "TbSSdelay"
-		Me.TbSSdelay.Size = New Size(64, 20)
-		Me.TbSSdelay.TabIndex = 2
-		'
-		'TbSStime
-		'
-		Me.TbSStime.Location = New Point(158, 29)
-		Me.TbSStime.Name = "TbSStime"
-		Me.TbSStime.Size = New Size(64, 20)
-		Me.TbSStime.TabIndex = 1
-		'
-		'ChBStartStop
-		'
-		Me.ChBStartStop.AutoSize = True
-		Me.ChBStartStop.Checked = True
-		Me.ChBStartStop.CheckState = CheckState.Checked
-		Me.ChBStartStop.Location = New Point(16, 21)
-		Me.ChBStartStop.Name = "ChBStartStop"
-		Me.ChBStartStop.Size = New Size(65, 17)
-		Me.ChBStartStop.TabIndex = 0
-		Me.ChBStartStop.Text = "Enabled"
-		Me.ChBStartStop.UseVisualStyleBackColor = True
-		'
-		'StatusStrip1
-		'
-		Me.StatusStrip1.Items.AddRange(New ToolStripItem() {Me.ToolStripStatusLabelGEN})
-		Me.StatusStrip1.Location = New Point(0, 672)
-		Me.StatusStrip1.Name = "StatusStrip1"
-		Me.StatusStrip1.Size = New Size(944, 22)
-		Me.StatusStrip1.SizingGrip = False
-		Me.StatusStrip1.TabIndex = 6
-		Me.StatusStrip1.Text = "StatusStrip1"
-		'
-		'ToolStripStatusLabelGEN
-		'
-		Me.ToolStripStatusLabelGEN.Name = "ToolStripStatusLabelGEN"
-		Me.ToolStripStatusLabelGEN.Size = New Size(121, 17)
-		Me.ToolStripStatusLabelGEN.Text = "ToolStripStatusLabel1"
-		'
-		'ButOK
-		'
-		Me.ButOK.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Right), AnchorStyles)
-		Me.ButOK.Location = New Point(779, 646)
-		Me.ButOK.Name = "ButOK"
-		Me.ButOK.Size = New Size(75, 23)
-		Me.ButOK.TabIndex = 0
-		Me.ButOK.Text = "Save"
-		Me.ButOK.UseVisualStyleBackColor = True
-		'
-		'ButCancel
-		'
-		Me.ButCancel.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Right), AnchorStyles)
-		Me.ButCancel.DialogResult = DialogResult.Cancel
-		Me.ButCancel.Location = New Point(860, 646)
-		Me.ButCancel.Name = "ButCancel"
-		Me.ButCancel.Size = New Size(75, 23)
-		Me.ButCancel.TabIndex = 1
-		Me.ButCancel.Text = "Cancel"
-		Me.ButCancel.UseVisualStyleBackColor = True
-		'
-		'ToolStrip1
-		'
-		Me.ToolStrip1.GripStyle = ToolStripGripStyle.Hidden
-		Me.ToolStrip1.Items.AddRange(New ToolStripItem() {Me.ToolStripBtNew, Me.ToolStripBtOpen, Me.ToolStripBtSave, Me.ToolStripBtSaveAs, Me.ToolStripSeparator1, Me.ToolStripBtSendTo, Me.ToolStripSeparator2, Me.ToolStripButton1})
-		Me.ToolStrip1.Location = New Point(0, 0)
-		Me.ToolStrip1.Name = "ToolStrip1"
-		Me.ToolStrip1.Size = New Size(944, 25)
-		Me.ToolStrip1.TabIndex = 20
-		Me.ToolStrip1.Text = "ToolStrip1"
-		'
-		'ToolStripBtNew
-		'
-		Me.ToolStripBtNew.DisplayStyle = ToolStripItemDisplayStyle.Image
-		Me.ToolStripBtNew.Image = My.Resources.Resources.blue_document_icon
-		Me.ToolStripBtNew.ImageTransparentColor = Color.Magenta
-		Me.ToolStripBtNew.Name = "ToolStripBtNew"
-		Me.ToolStripBtNew.Size = New Size(23, 22)
-		Me.ToolStripBtNew.Text = "New"
-		Me.ToolStripBtNew.ToolTipText = "New"
-		'
-		'ToolStripBtOpen
-		'
-		Me.ToolStripBtOpen.DisplayStyle = ToolStripItemDisplayStyle.Image
-		Me.ToolStripBtOpen.Image = My.Resources.Resources.Open_icon
-		Me.ToolStripBtOpen.ImageTransparentColor = Color.Magenta
-		Me.ToolStripBtOpen.Name = "ToolStripBtOpen"
-		Me.ToolStripBtOpen.Size = New Size(23, 22)
-		Me.ToolStripBtOpen.Text = "Open"
-		Me.ToolStripBtOpen.ToolTipText = "Open..."
-		'
-		'ToolStripBtSave
-		'
-		Me.ToolStripBtSave.DisplayStyle = ToolStripItemDisplayStyle.Image
-		Me.ToolStripBtSave.Image = My.Resources.Resources.Actions_document_save_icon
-		Me.ToolStripBtSave.ImageTransparentColor = Color.Magenta
-		Me.ToolStripBtSave.Name = "ToolStripBtSave"
-		Me.ToolStripBtSave.Size = New Size(23, 22)
-		Me.ToolStripBtSave.Text = "Save"
-		Me.ToolStripBtSave.ToolTipText = "Save"
-		'
-		'ToolStripBtSaveAs
-		'
-		Me.ToolStripBtSaveAs.DisplayStyle = ToolStripItemDisplayStyle.Image
-		Me.ToolStripBtSaveAs.Image = My.Resources.Resources.Actions_document_save_as_icon
-		Me.ToolStripBtSaveAs.ImageTransparentColor = Color.Magenta
-		Me.ToolStripBtSaveAs.Name = "ToolStripBtSaveAs"
-		Me.ToolStripBtSaveAs.Size = New Size(23, 22)
-		Me.ToolStripBtSaveAs.Text = "Save As"
-		Me.ToolStripBtSaveAs.ToolTipText = "Save As..."
-		'
-		'ToolStripSeparator1
-		'
-		Me.ToolStripSeparator1.Name = "ToolStripSeparator1"
-		Me.ToolStripSeparator1.Size = New Size(6, 25)
-		'
-		'ToolStripBtSendTo
-		'
-		Me.ToolStripBtSendTo.DisplayStyle = ToolStripItemDisplayStyle.Image
-		Me.ToolStripBtSendTo.Image = My.Resources.Resources.export_icon
-		Me.ToolStripBtSendTo.ImageTransparentColor = Color.Magenta
-		Me.ToolStripBtSendTo.Name = "ToolStripBtSendTo"
-		Me.ToolStripBtSendTo.Size = New Size(23, 22)
-		Me.ToolStripBtSendTo.Text = "Send to Job List"
-		Me.ToolStripBtSendTo.ToolTipText = "Send to Job List"
-		'
-		'ToolStripSeparator2
-		'
-		Me.ToolStripSeparator2.Name = "ToolStripSeparator2"
-		Me.ToolStripSeparator2.Size = New Size(6, 25)
-		'
-		'ToolStripButton1
-		'
-		Me.ToolStripButton1.DisplayStyle = ToolStripItemDisplayStyle.Image
-		Me.ToolStripButton1.Image = My.Resources.Resources.Help_icon
-		Me.ToolStripButton1.ImageTransparentColor = Color.Magenta
-		Me.ToolStripButton1.Name = "ToolStripButton1"
-		Me.ToolStripButton1.Size = New Size(23, 22)
-		Me.ToolStripButton1.Text = "Help"
-		'
-		'PictureBox1
-		'
-		Me.PictureBox1.BackColor = Color.White
-		Me.PictureBox1.Image = My.Resources.Resources.VECTO_VECTO
-		Me.PictureBox1.Location = New Point(12, 28)
-		Me.PictureBox1.Name = "PictureBox1"
-		Me.PictureBox1.Size = New Size(920, 40)
-		Me.PictureBox1.TabIndex = 21
-		Me.PictureBox1.TabStop = False
-		'
-		'CbEngOnly
-		'
-		Me.CbEngOnly.AutoSize = True
-		Me.CbEngOnly.Location = New Point(17, 84)
-		Me.CbEngOnly.Name = "CbEngOnly"
-		Me.CbEngOnly.Size = New Size(113, 17)
-		Me.CbEngOnly.TabIndex = 0
-		Me.CbEngOnly.Text = "Engine Only Mode"
-		Me.CbEngOnly.UseVisualStyleBackColor = True
-		'
-		'CmOpenFile
-		'
-		Me.CmOpenFile.Items.AddRange(New ToolStripItem() {Me.OpenWithToolStripMenuItem, Me.ShowInFolderToolStripMenuItem})
-		Me.CmOpenFile.Name = "CmOpenFile"
-		Me.CmOpenFile.Size = New Size(153, 48)
-		'
-		'OpenWithToolStripMenuItem
-		'
-		Me.OpenWithToolStripMenuItem.Name = "OpenWithToolStripMenuItem"
-		Me.OpenWithToolStripMenuItem.Size = New Size(152, 22)
-		Me.OpenWithToolStripMenuItem.Text = "Open with ..."
-		'
-		'ShowInFolderToolStripMenuItem
-		'
-		Me.ShowInFolderToolStripMenuItem.Name = "ShowInFolderToolStripMenuItem"
-		Me.ShowInFolderToolStripMenuItem.Size = New Size(152, 22)
-		Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder"
-		'
-		'PicVehicle
-		'
-		Me.PicVehicle.BackColor = Color.LightGray
-		Me.PicVehicle.Location = New Point(542, 122)
-		Me.PicVehicle.Name = "PicVehicle"
-		Me.PicVehicle.Size = New Size(300, 88)
-		Me.PicVehicle.SizeMode = PictureBoxSizeMode.StretchImage
-		Me.PicVehicle.TabIndex = 36
-		Me.PicVehicle.TabStop = False
-		'
-		'PicBox
-		'
-		Me.PicBox.BackColor = Color.LightGray
-		Me.PicBox.Location = New Point(542, 268)
-		Me.PicBox.Name = "PicBox"
-		Me.PicBox.Size = New Size(390, 327)
-		Me.PicBox.TabIndex = 36
-		Me.PicBox.TabStop = False
-		'
-		'TbEngTxt
-		'
-		Me.TbEngTxt.Location = New Point(542, 216)
-		Me.TbEngTxt.Name = "TbEngTxt"
-		Me.TbEngTxt.ReadOnly = True
-		Me.TbEngTxt.Size = New Size(390, 20)
-		Me.TbEngTxt.TabIndex = 6
-		'
-		'TbVehCat
-		'
-		Me.TbVehCat.Location = New Point(848, 126)
-		Me.TbVehCat.Name = "TbVehCat"
-		Me.TbVehCat.ReadOnly = True
-		Me.TbVehCat.Size = New Size(87, 20)
-		Me.TbVehCat.TabIndex = 2
-		'
-		'TbAxleConf
-		'
-		Me.TbAxleConf.Location = New Point(904, 155)
-		Me.TbAxleConf.Name = "TbAxleConf"
-		Me.TbAxleConf.ReadOnly = True
-		Me.TbAxleConf.Size = New Size(31, 20)
-		Me.TbAxleConf.TabIndex = 4
-		'
-		'TbHVCclass
-		'
-		Me.TbHVCclass.Location = New Point(848, 184)
-		Me.TbHVCclass.Name = "TbHVCclass"
-		Me.TbHVCclass.ReadOnly = True
-		Me.TbHVCclass.Size = New Size(87, 20)
-		Me.TbHVCclass.TabIndex = 5
-		'
-		'TbGbxTxt
-		'
-		Me.TbGbxTxt.Location = New Point(542, 242)
-		Me.TbGbxTxt.Name = "TbGbxTxt"
-		Me.TbGbxTxt.ReadOnly = True
-		Me.TbGbxTxt.Size = New Size(390, 20)
-		Me.TbGbxTxt.TabIndex = 7
-		'
-		'TbMass
-		'
-		Me.TbMass.Location = New Point(848, 155)
-		Me.TbMass.Name = "TbMass"
-		Me.TbMass.ReadOnly = True
-		Me.TbMass.Size = New Size(50, 20)
-		Me.TbMass.TabIndex = 3
-		'
-		'F_VECTO
-		'
-		Me.AcceptButton = Me.ButOK
-		Me.AutoScaleDimensions = New SizeF(6.0!, 13.0!)
-		Me.AutoScaleMode = AutoScaleMode.Font
-		Me.CancelButton = Me.ButCancel
-		Me.ClientSize = New Size(944, 694)
-		Me.Controls.Add(Me.TbHVCclass)
-		Me.Controls.Add(Me.TbMass)
-		Me.Controls.Add(Me.TbAxleConf)
-		Me.Controls.Add(Me.TbVehCat)
-		Me.Controls.Add(Me.TbGbxTxt)
-		Me.Controls.Add(Me.TbEngTxt)
-		Me.Controls.Add(Me.PicBox)
-		Me.Controls.Add(Me.PicVehicle)
-		Me.Controls.Add(Me.CbEngOnly)
-		Me.Controls.Add(Me.PictureBox1)
-		Me.Controls.Add(Me.ToolStrip1)
-		Me.Controls.Add(Me.ButCancel)
-		Me.Controls.Add(Me.TabControl1)
-		Me.Controls.Add(Me.ButOK)
-		Me.Controls.Add(Me.StatusStrip1)
-		Me.FormBorderStyle = FormBorderStyle.FixedSingle
-		Me.Icon = CType(resources.GetObject("$this.Icon"), Icon)
-		Me.MaximizeBox = False
-		Me.Name = "F_VECTO"
-		Me.StartPosition = FormStartPosition.CenterParent
-		Me.Text = "Job Editor"
-		Me.TabPgGen.ResumeLayout(False)
-		Me.TabPgGen.PerformLayout()
-		Me.GrCycles.ResumeLayout(False)
-		Me.GrCycles.PerformLayout()
-		Me.GrAux.ResumeLayout(False)
-		Me.GrAux.PerformLayout()
-		CType(Me.picAuxInfo, ISupportInitialize).EndInit()
-		Me.TabControl1.ResumeLayout(False)
-		Me.TabPgDriver.ResumeLayout(False)
-		Me.GrVACC.ResumeLayout(False)
-		Me.GrVACC.PerformLayout()
-		Me.GrLAC.ResumeLayout(False)
-		Me.GrLAC.PerformLayout()
-		Me.GroupBox1.ResumeLayout(False)
-		Me.GroupBox1.PerformLayout()
-		Me.PnEcoRoll.ResumeLayout(False)
-		Me.PnEcoRoll.PerformLayout()
-		Me.GrStartStop.ResumeLayout(False)
-		Me.GrStartStop.PerformLayout()
-		Me.PnStartStop.ResumeLayout(False)
-		Me.PnStartStop.PerformLayout()
-		Me.StatusStrip1.ResumeLayout(False)
-		Me.StatusStrip1.PerformLayout()
-		Me.ToolStrip1.ResumeLayout(False)
-		Me.ToolStrip1.PerformLayout()
-		CType(Me.PictureBox1, ISupportInitialize).EndInit()
-		Me.CmOpenFile.ResumeLayout(False)
-		CType(Me.PicVehicle, ISupportInitialize).EndInit()
-		CType(Me.PicBox, ISupportInitialize).EndInit()
-		Me.ResumeLayout(False)
-		Me.PerformLayout()
-
-	End Sub
-	Friend WithEvents TabPgGen As TabPage
-	Friend WithEvents TabControl1 As TabControl
-	Friend WithEvents StatusStrip1 As StatusStrip
-	Friend WithEvents ButtonVEH As Button
-	Friend WithEvents ButtonMAP As Button
-	Friend WithEvents ButtonGBX As Button
-	Friend WithEvents ButOpenVEH As Button
-	Friend WithEvents ButOpenGBX As Button
-	Friend WithEvents ButOpenENG As Button
-	Friend WithEvents ToolStripStatusLabelGEN As ToolStripStatusLabel
-	Friend WithEvents ButOK As Button
-	Friend WithEvents TbGBX As TextBox
-	Friend WithEvents TbENG As TextBox
-	Friend WithEvents TbVEH As TextBox
-	Friend WithEvents ButCancel As Button
-	Friend WithEvents ToolStrip1 As ToolStrip
-	Friend WithEvents ToolStripBtNew As ToolStripButton
-	Friend WithEvents ToolStripBtOpen As ToolStripButton
-	Friend WithEvents ToolStripBtSave As ToolStripButton
-	Friend WithEvents ToolStripBtSaveAs As ToolStripButton
-	Friend WithEvents ToolStripBtSendTo As ToolStripButton
-	Friend WithEvents ToolStripSeparator1 As ToolStripSeparator
-	Friend WithEvents GrAux As GroupBox
-	Friend WithEvents LvAux As ListView
-	Friend WithEvents ColumnHeader4 As ColumnHeader
-	Friend WithEvents ColumnHeader5 As ColumnHeader
-	Friend WithEvents ColumnHeader6 As ColumnHeader
-	Friend WithEvents ButAuxRem As Button
-	Friend WithEvents ButAuxAdd As Button
-	Friend WithEvents PictureBox1 As PictureBox
-	Friend WithEvents TabPgDriver As TabPage
-	Friend WithEvents BtDesMaxBr As Button
-	Friend WithEvents TbDesMaxFile As TextBox
-	Friend WithEvents GrCycles As GroupBox
-	Friend WithEvents LvCycles As ListView
-	Friend WithEvents ColumnHeader1 As ColumnHeader
-	Friend WithEvents BtDRIrem As Button
-	Friend WithEvents BtDRIadd As Button
-	Friend WithEvents ToolStripSeparator2 As ToolStripSeparator
-	Friend WithEvents ToolStripButton1 As ToolStripButton
-	Friend WithEvents CbEngOnly As CheckBox
-	Friend WithEvents BtAccOpen As Button
-	Friend WithEvents Label2 As Label
-	Friend WithEvents CmOpenFile As ContextMenuStrip
-	Friend WithEvents OpenWithToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents ShowInFolderToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents ChBStartStop As CheckBox
-	Friend WithEvents GrStartStop As GroupBox
-	Friend WithEvents TbSSspeed As TextBox
-	Friend WithEvents TbSStime As TextBox
-	Friend WithEvents LabelSStime As Label
-	Friend WithEvents LabelSSspeed As Label
-	Friend WithEvents GrLAC As GroupBox
-	Friend WithEvents CbLookAhead As CheckBox
-	Friend WithEvents GroupBox1 As GroupBox
-	Friend WithEvents Label21 As Label
-	Friend WithEvents Label20 As Label
-	Friend WithEvents Label14 As Label
-	Friend WithEvents TbVmin As TextBox
-	Friend WithEvents TbUnderSpeed As TextBox
-	Friend WithEvents TbOverspeed As TextBox
-	Friend WithEvents Label23 As Label
-	Friend WithEvents Label22 As Label
-	Friend WithEvents Label13 As Label
-	Friend WithEvents RdEcoRoll As RadioButton
-	Friend WithEvents RdOverspeed As RadioButton
-	Friend WithEvents RdOff As RadioButton
-	Friend WithEvents PnStartStop As Panel
-	Friend WithEvents Label27 As Label
-	Friend WithEvents Label26 As Label
-	Friend WithEvents Label31 As Label
-	Friend WithEvents Label30 As Label
-	Friend WithEvents TbSSdelay As TextBox
-	Friend WithEvents Label32 As Label
-	Friend WithEvents PnEcoRoll As Panel
-	Friend WithEvents PicVehicle As PictureBox
-	Friend WithEvents PicBox As PictureBox
-	Friend WithEvents TbEngTxt As TextBox
-	Friend WithEvents TbVehCat As TextBox
-	Friend WithEvents TbAxleConf As TextBox
-	Friend WithEvents TbHVCclass As TextBox
-	Friend WithEvents TbGbxTxt As TextBox
-	Friend WithEvents TbMass As TextBox
-	Friend WithEvents GrVACC As GroupBox
-	Friend WithEvents cboAdvancedAuxiliaries As ComboBox
-	Friend WithEvents picAuxInfo As PictureBox
-	Friend WithEvents ToolTip1 As ToolTip
-	Friend WithEvents Label1 As Label
-	Friend WithEvents btnBrowseAAUXFile As Button
-	Friend WithEvents txtAdvancedAuxiliaryFile As TextBox
-	Friend WithEvents lbAdvancedAuxiliaries As Label
-	Friend WithEvents btnAAUXOpen As Button
-	Friend WithEvents Label12 As Label
-	Friend WithEvents tbDfCoastingScale As TextBox
-	Friend WithEvents Label11 As Label
-	Friend WithEvents Label3 As Label
-	Friend WithEvents tbDfCoastingOffset As TextBox
-	Friend WithEvents tbLacDfTargetSpeedFile As TextBox
-	Friend WithEvents Label10 As Label
-	Friend WithEvents Label4 As Label
-	Friend WithEvents Label5 As Label
-	Friend WithEvents btnDfTargetSpeed As Button
-	Friend WithEvents tbLacPreviewFactor As TextBox
-	Friend WithEvents tbLacDfVelocityDropFile As TextBox
-End Class
+Imports System.ComponentModel
+Imports Microsoft.VisualBasic.CompilerServices
+
+<DesignerGenerated()> _
+Partial Class VectoJobForm
+	Inherits Form
+
+	'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
+	<DebuggerNonUserCode()> _
+	Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+		Try
+			If disposing AndAlso components IsNot Nothing Then
+				components.Dispose()
+			End If
+		Finally
+			MyBase.Dispose(disposing)
+		End Try
+	End Sub
+
+	'Wird vom Windows Form-Designer benötigt.
+	Private components As IContainer
+
+	'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
+	'Das Bearbeiten ist mit dem Windows Form-Designer möglich.  
+	'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
+	<DebuggerStepThrough()> _
+	Private Sub InitializeComponent()
+		Me.components = New Container()
+		Dim resources As ComponentResourceManager = New ComponentResourceManager(GetType(VectoJobForm))
+		Me.TabPgGen = New TabPage()
+		Me.GrCycles = New GroupBox()
+		Me.Label2 = New Label()
+		Me.LvCycles = New ListView()
+		Me.ColumnHeader1 = CType(New ColumnHeader(), ColumnHeader)
+		Me.BtDRIrem = New Button()
+		Me.BtDRIadd = New Button()
+		Me.GrAux = New GroupBox()
+		Me.btnAAUXOpen = New Button()
+		Me.Label1 = New Label()
+		Me.btnBrowseAAUXFile = New Button()
+		Me.txtAdvancedAuxiliaryFile = New TextBox()
+		Me.picAuxInfo = New PictureBox()
+		Me.cboAdvancedAuxiliaries = New ComboBox()
+		Me.lbAdvancedAuxiliaries = New Label()
+		Me.Label32 = New Label()
+		Me.LvAux = New ListView()
+		Me.ColumnHeader4 = CType(New ColumnHeader(), ColumnHeader)
+		Me.ColumnHeader5 = CType(New ColumnHeader(), ColumnHeader)
+		Me.ColumnHeader6 = CType(New ColumnHeader(), ColumnHeader)
+		Me.ButAuxRem = New Button()
+		Me.ButAuxAdd = New Button()
+		Me.TbGBX = New TextBox()
+		Me.TbENG = New TextBox()
+		Me.TbVEH = New TextBox()
+		Me.ButOpenGBX = New Button()
+		Me.ButOpenENG = New Button()
+		Me.ButOpenVEH = New Button()
+		Me.ButtonVEH = New Button()
+		Me.ButtonGBX = New Button()
+		Me.ButtonMAP = New Button()
+		Me.TabControl1 = New TabControl()
+		Me.TabPgDriver = New TabPage()
+		Me.GrVACC = New GroupBox()
+		Me.TbDesMaxFile = New TextBox()
+		Me.BtDesMaxBr = New Button()
+		Me.BtAccOpen = New Button()
+		Me.GrLAC = New GroupBox()
+		Me.Label12 = New Label()
+		Me.tbDfCoastingScale = New TextBox()
+		Me.CbLookAhead = New CheckBox()
+		Me.Label11 = New Label()
+		Me.Label3 = New Label()
+		Me.tbDfCoastingOffset = New TextBox()
+		Me.tbLacDfTargetSpeedFile = New TextBox()
+		Me.Label10 = New Label()
+		Me.Label4 = New Label()
+		Me.Label5 = New Label()
+		Me.btnDfTargetSpeed = New Button()
+		Me.tbLacPreviewFactor = New TextBox()
+		Me.tbLacDfVelocityDropFile = New TextBox()
+		Me.GroupBox1 = New GroupBox()
+		Me.PnEcoRoll = New Panel()
+		Me.Label21 = New Label()
+		Me.Label20 = New Label()
+		Me.Label14 = New Label()
+		Me.TbVmin = New TextBox()
+		Me.TbUnderSpeed = New TextBox()
+		Me.TbOverspeed = New TextBox()
+		Me.Label23 = New Label()
+		Me.Label22 = New Label()
+		Me.Label13 = New Label()
+		Me.RdEcoRoll = New RadioButton()
+		Me.RdOverspeed = New RadioButton()
+		Me.RdOff = New RadioButton()
+		Me.GrStartStop = New GroupBox()
+		Me.PnStartStop = New Panel()
+		Me.Label31 = New Label()
+		Me.Label27 = New Label()
+		Me.TbSSspeed = New TextBox()
+		Me.LabelSSspeed = New Label()
+		Me.Label26 = New Label()
+		Me.Label30 = New Label()
+		Me.LabelSStime = New Label()
+		Me.TbSSdelay = New TextBox()
+		Me.TbSStime = New TextBox()
+		Me.ChBStartStop = New CheckBox()
+		Me.StatusStrip1 = New StatusStrip()
+		Me.ToolStripStatusLabelGEN = New ToolStripStatusLabel()
+		Me.ButOK = New Button()
+		Me.ButCancel = New Button()
+		Me.ToolStrip1 = New ToolStrip()
+		Me.ToolStripBtNew = New ToolStripButton()
+		Me.ToolStripBtOpen = New ToolStripButton()
+		Me.ToolStripBtSave = New ToolStripButton()
+		Me.ToolStripBtSaveAs = New ToolStripButton()
+		Me.ToolStripSeparator1 = New ToolStripSeparator()
+		Me.ToolStripBtSendTo = New ToolStripButton()
+		Me.ToolStripSeparator2 = New ToolStripSeparator()
+		Me.ToolStripButton1 = New ToolStripButton()
+		Me.PictureBox1 = New PictureBox()
+		Me.CbEngOnly = New CheckBox()
+		Me.CmOpenFile = New ContextMenuStrip(Me.components)
+		Me.OpenWithToolStripMenuItem = New ToolStripMenuItem()
+		Me.ShowInFolderToolStripMenuItem = New ToolStripMenuItem()
+		Me.PicVehicle = New PictureBox()
+		Me.PicBox = New PictureBox()
+		Me.TbEngTxt = New TextBox()
+		Me.TbVehCat = New TextBox()
+		Me.TbAxleConf = New TextBox()
+		Me.TbHVCclass = New TextBox()
+		Me.TbGbxTxt = New TextBox()
+		Me.TbMass = New TextBox()
+		Me.ToolTip1 = New ToolTip(Me.components)
+		Me.TabPgGen.SuspendLayout()
+		Me.GrCycles.SuspendLayout()
+		Me.GrAux.SuspendLayout()
+		CType(Me.picAuxInfo, ISupportInitialize).BeginInit()
+		Me.TabControl1.SuspendLayout()
+		Me.TabPgDriver.SuspendLayout()
+		Me.GrVACC.SuspendLayout()
+		Me.GrLAC.SuspendLayout()
+		Me.GroupBox1.SuspendLayout()
+		Me.PnEcoRoll.SuspendLayout()
+		Me.GrStartStop.SuspendLayout()
+		Me.PnStartStop.SuspendLayout()
+		Me.StatusStrip1.SuspendLayout()
+		Me.ToolStrip1.SuspendLayout()
+		CType(Me.PictureBox1, ISupportInitialize).BeginInit()
+		Me.CmOpenFile.SuspendLayout()
+		CType(Me.PicVehicle, ISupportInitialize).BeginInit()
+		CType(Me.PicBox, ISupportInitialize).BeginInit()
+		Me.SuspendLayout()
+		'
+		'TabPgGen
+		'
+		Me.TabPgGen.Controls.Add(Me.GrCycles)
+		Me.TabPgGen.Controls.Add(Me.GrAux)
+		Me.TabPgGen.Controls.Add(Me.TbGBX)
+		Me.TabPgGen.Controls.Add(Me.TbENG)
+		Me.TabPgGen.Controls.Add(Me.TbVEH)
+		Me.TabPgGen.Controls.Add(Me.ButOpenGBX)
+		Me.TabPgGen.Controls.Add(Me.ButOpenENG)
+		Me.TabPgGen.Controls.Add(Me.ButOpenVEH)
+		Me.TabPgGen.Controls.Add(Me.ButtonVEH)
+		Me.TabPgGen.Controls.Add(Me.ButtonGBX)
+		Me.TabPgGen.Controls.Add(Me.ButtonMAP)
+		Me.TabPgGen.Location = New Point(4, 22)
+		Me.TabPgGen.Name = "TabPgGen"
+		Me.TabPgGen.Padding = New Padding(3)
+		Me.TabPgGen.Size = New Size(527, 534)
+		Me.TabPgGen.TabIndex = 0
+		Me.TabPgGen.Text = "General"
+		Me.TabPgGen.UseVisualStyleBackColor = True
+		'
+		'GrCycles
+		'
+		Me.GrCycles.Anchor = CType((((AnchorStyles.Top Or AnchorStyles.Bottom) _
+			Or AnchorStyles.Left) _
+			Or AnchorStyles.Right), AnchorStyles)
+		Me.GrCycles.Controls.Add(Me.Label2)
+		Me.GrCycles.Controls.Add(Me.LvCycles)
+		Me.GrCycles.Controls.Add(Me.BtDRIrem)
+		Me.GrCycles.Controls.Add(Me.BtDRIadd)
+		Me.GrCycles.Location = New Point(9, 314)
+		Me.GrCycles.Name = "GrCycles"
+		Me.GrCycles.Size = New Size(515, 184)
+		Me.GrCycles.TabIndex = 10
+		Me.GrCycles.TabStop = False
+		Me.GrCycles.Text = "Cycles"
+		'
+		'Label2
+		'
+		Me.Label2.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
+		Me.Label2.AutoSize = True
+		Me.Label2.Location = New Point(379, 148)
+		Me.Label2.Name = "Label2"
+		Me.Label2.Size = New Size(133, 13)
+		Me.Label2.TabIndex = 3
+		Me.Label2.Text = "(Double-Click to Open File)"
+		'
+		'LvCycles
+		'
+		Me.LvCycles.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
+			Or AnchorStyles.Right), AnchorStyles)
+		Me.LvCycles.Columns.AddRange(New ColumnHeader() {Me.ColumnHeader1})
+		Me.LvCycles.FullRowSelect = True
+		Me.LvCycles.GridLines = True
+		Me.LvCycles.HeaderStyle = ColumnHeaderStyle.None
+		Me.LvCycles.HideSelection = False
+		Me.LvCycles.LabelEdit = True
+		Me.LvCycles.Location = New Point(6, 25)
+		Me.LvCycles.MultiSelect = False
+		Me.LvCycles.Name = "LvCycles"
+		Me.LvCycles.Size = New Size(503, 123)
+		Me.LvCycles.TabIndex = 0
+		Me.LvCycles.TabStop = False
+		Me.LvCycles.UseCompatibleStateImageBehavior = False
+		Me.LvCycles.View = View.Details
+		'
+		'ColumnHeader1
+		'
+		Me.ColumnHeader1.Text = "Cycle path"
+		Me.ColumnHeader1.Width = 470
+		'
+		'BtDRIrem
+		'
+		Me.BtDRIrem.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Left), AnchorStyles)
+		Me.BtDRIrem.Image = My.Resources.Resources.minus_circle_icon
+		Me.BtDRIrem.Location = New Point(29, 149)
+		Me.BtDRIrem.Name = "BtDRIrem"
+		Me.BtDRIrem.Size = New Size(24, 24)
+		Me.BtDRIrem.TabIndex = 2
+		Me.BtDRIrem.UseVisualStyleBackColor = True
+		'
+		'BtDRIadd
+		'
+		Me.BtDRIadd.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Left), AnchorStyles)
+		Me.BtDRIadd.Image = My.Resources.Resources.plus_circle_icon
+		Me.BtDRIadd.Location = New Point(5, 149)
+		Me.BtDRIadd.Name = "BtDRIadd"
+		Me.BtDRIadd.Size = New Size(24, 24)
+		Me.BtDRIadd.TabIndex = 1
+		Me.BtDRIadd.UseVisualStyleBackColor = True
+		'
+		'GrAux
+		'
+		Me.GrAux.Anchor = CType((((AnchorStyles.Top Or AnchorStyles.Bottom) _
+			Or AnchorStyles.Left) _
+			Or AnchorStyles.Right), AnchorStyles)
+		Me.GrAux.Controls.Add(Me.btnAAUXOpen)
+		Me.GrAux.Controls.Add(Me.Label1)
+		Me.GrAux.Controls.Add(Me.btnBrowseAAUXFile)
+		Me.GrAux.Controls.Add(Me.txtAdvancedAuxiliaryFile)
+		Me.GrAux.Controls.Add(Me.picAuxInfo)
+		Me.GrAux.Controls.Add(Me.cboAdvancedAuxiliaries)
+		Me.GrAux.Controls.Add(Me.lbAdvancedAuxiliaries)
+		Me.GrAux.Controls.Add(Me.Label32)
+		Me.GrAux.Controls.Add(Me.LvAux)
+		Me.GrAux.Controls.Add(Me.ButAuxRem)
+		Me.GrAux.Controls.Add(Me.ButAuxAdd)
+		Me.GrAux.Location = New Point(6, 87)
+		Me.GrAux.Name = "GrAux"
+		Me.GrAux.Size = New Size(515, 221)
+		Me.GrAux.TabIndex = 9
+		Me.GrAux.TabStop = False
+		Me.GrAux.Text = "Auxiliaries"
+		'
+		'btnAAUXOpen
+		'
+		Me.btnAAUXOpen.Image = My.Resources.Resources.application_export_icon_small
+		Me.btnAAUXOpen.Location = New Point(465, 45)
+		Me.btnAAUXOpen.Name = "btnAAUXOpen"
+		Me.btnAAUXOpen.Size = New Size(24, 24)
+		Me.btnAAUXOpen.TabIndex = 41
+		Me.btnAAUXOpen.UseVisualStyleBackColor = True
+		'
+		'Label1
+		'
+		Me.Label1.AutoSize = True
+		Me.Label1.Location = New Point(7, 52)
+		Me.Label1.Name = "Label1"
+		Me.Label1.Size = New Size(96, 13)
+		Me.Label1.TabIndex = 40
+		Me.Label1.Text = "Advanced Aux File"
+		'
+		'btnBrowseAAUXFile
+		'
+		Me.btnBrowseAAUXFile.Image = My.Resources.Resources.Open_icon
+		Me.btnBrowseAAUXFile.Location = New Point(441, 45)
+		Me.btnBrowseAAUXFile.Name = "btnBrowseAAUXFile"
+		Me.btnBrowseAAUXFile.Size = New Size(24, 24)
+		Me.btnBrowseAAUXFile.TabIndex = 39
+		Me.ToolTip1.SetToolTip(Me.btnBrowseAAUXFile, "Configure/Browser  Advanced Auxiliary Files")
+		Me.btnBrowseAAUXFile.UseVisualStyleBackColor = True
+		'
+		'txtAdvancedAuxiliaryFile
+		'
+		Me.txtAdvancedAuxiliaryFile.Location = New Point(119, 47)
+		Me.txtAdvancedAuxiliaryFile.Name = "txtAdvancedAuxiliaryFile"
+		Me.txtAdvancedAuxiliaryFile.Size = New Size(321, 20)
+		Me.txtAdvancedAuxiliaryFile.TabIndex = 38
+		'
+		'picAuxInfo
+		'
+		Me.picAuxInfo.Image = My.Resources.Resources.Information_icon
+		Me.picAuxInfo.InitialImage = My.Resources.Resources.Information_icon
+		Me.picAuxInfo.Location = New Point(451, 19)
+		Me.picAuxInfo.Name = "picAuxInfo"
+		Me.picAuxInfo.Size = New Size(16, 16)
+		Me.picAuxInfo.SizeMode = PictureBoxSizeMode.AutoSize
+		Me.picAuxInfo.TabIndex = 37
+		Me.picAuxInfo.TabStop = False
+		'
+		'cboAdvancedAuxiliaries
+		'
+		Me.cboAdvancedAuxiliaries.FormattingEnabled = True
+		Me.cboAdvancedAuxiliaries.Location = New Point(119, 18)
+		Me.cboAdvancedAuxiliaries.Name = "cboAdvancedAuxiliaries"
+		Me.cboAdvancedAuxiliaries.Size = New Size(321, 21)
+		Me.cboAdvancedAuxiliaries.TabIndex = 36
+		'
+		'lbAdvancedAuxiliaries
+		'
+		Me.lbAdvancedAuxiliaries.AutoSize = True
+		Me.lbAdvancedAuxiliaries.Location = New Point(7, 21)
+		Me.lbAdvancedAuxiliaries.Name = "lbAdvancedAuxiliaries"
+		Me.lbAdvancedAuxiliaries.Size = New Size(72, 13)
+		Me.lbAdvancedAuxiliaries.TabIndex = 35
+		Me.lbAdvancedAuxiliaries.Text = "Auxiliary Type"
+		'
+		'Label32
+		'
+		Me.Label32.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
+		Me.Label32.AutoSize = True
+		Me.Label32.Location = New Point(406, 189)
+		Me.Label32.Name = "Label32"
+		Me.Label32.Size = New Size(106, 13)
+		Me.Label32.TabIndex = 3
+		Me.Label32.Text = "(Double-Click to Edit)"
+		'
+		'LvAux
+		'
+		Me.LvAux.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
+			Or AnchorStyles.Right), AnchorStyles)
+		Me.LvAux.Columns.AddRange(New ColumnHeader() {Me.ColumnHeader4, Me.ColumnHeader5, Me.ColumnHeader6})
+		Me.LvAux.FullRowSelect = True
+		Me.LvAux.GridLines = True
+		Me.LvAux.HideSelection = False
+		Me.LvAux.Location = New Point(6, 72)
+		Me.LvAux.MultiSelect = False
+		Me.LvAux.Name = "LvAux"
+		Me.LvAux.Size = New Size(503, 117)
+		Me.LvAux.TabIndex = 0
+		Me.LvAux.TabStop = False
+		Me.LvAux.UseCompatibleStateImageBehavior = False
+		Me.LvAux.View = View.Details
+		'
+		'ColumnHeader4
+		'
+		Me.ColumnHeader4.Text = "ID"
+		Me.ColumnHeader4.Width = 45
+		'
+		'ColumnHeader5
+		'
+		Me.ColumnHeader5.Text = "Type"
+		Me.ColumnHeader5.Width = 108
+		'
+		'ColumnHeader6
+		'
+		Me.ColumnHeader6.Text = "Input File"
+		Me.ColumnHeader6.Width = 331
+		'
+		'ButAuxRem
+		'
+		Me.ButAuxRem.Image = My.Resources.Resources.minus_circle_icon
+		Me.ButAuxRem.Location = New Point(29, 190)
+		Me.ButAuxRem.Name = "ButAuxRem"
+		Me.ButAuxRem.Size = New Size(24, 24)
+		Me.ButAuxRem.TabIndex = 2
+		Me.ButAuxRem.UseVisualStyleBackColor = True
+		'
+		'ButAuxAdd
+		'
+		Me.ButAuxAdd.Image = My.Resources.Resources.plus_circle_icon
+		Me.ButAuxAdd.Location = New Point(5, 190)
+		Me.ButAuxAdd.Name = "ButAuxAdd"
+		Me.ButAuxAdd.Size = New Size(24, 24)
+		Me.ButAuxAdd.TabIndex = 1
+		Me.ButAuxAdd.UseVisualStyleBackColor = True
+		'
+		'TbGBX
+		'
+		Me.TbGBX.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
+			Or AnchorStyles.Right), AnchorStyles)
+		Me.TbGBX.Location = New Point(84, 60)
+		Me.TbGBX.Name = "TbGBX"
+		Me.TbGBX.Size = New Size(411, 20)
+		Me.TbGBX.TabIndex = 7
+		'
+		'TbENG
+		'
+		Me.TbENG.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
+			Or AnchorStyles.Right), AnchorStyles)
+		Me.TbENG.Location = New Point(84, 33)
+		Me.TbENG.Name = "TbENG"
+		Me.TbENG.Size = New Size(411, 20)
+		Me.TbENG.TabIndex = 4
+		'
+		'TbVEH
+		'
+		Me.TbVEH.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
+			Or AnchorStyles.Right), AnchorStyles)
+		Me.TbVEH.Location = New Point(84, 7)
+		Me.TbVEH.Name = "TbVEH"
+		Me.TbVEH.Size = New Size(411, 20)
+		Me.TbVEH.TabIndex = 1
+		'
+		'ButOpenGBX
+		'
+		Me.ButOpenGBX.Location = New Point(6, 60)
+		Me.ButOpenGBX.Name = "ButOpenGBX"
+		Me.ButOpenGBX.Size = New Size(72, 21)
+		Me.ButOpenGBX.TabIndex = 6
+		Me.ButOpenGBX.TabStop = False
+		Me.ButOpenGBX.Text = "Gearbox"
+		Me.ButOpenGBX.UseVisualStyleBackColor = True
+		'
+		'ButOpenENG
+		'
+		Me.ButOpenENG.Location = New Point(6, 33)
+		Me.ButOpenENG.Name = "ButOpenENG"
+		Me.ButOpenENG.Size = New Size(72, 21)
+		Me.ButOpenENG.TabIndex = 3
+		Me.ButOpenENG.TabStop = False
+		Me.ButOpenENG.Text = "Engine"
+		Me.ButOpenENG.UseVisualStyleBackColor = True
+		'
+		'ButOpenVEH
+		'
+		Me.ButOpenVEH.Location = New Point(6, 6)
+		Me.ButOpenVEH.Name = "ButOpenVEH"
+		Me.ButOpenVEH.Size = New Size(72, 21)
+		Me.ButOpenVEH.TabIndex = 0
+		Me.ButOpenVEH.TabStop = False
+		Me.ButOpenVEH.Text = "Vehicle"
+		Me.ButOpenVEH.UseVisualStyleBackColor = True
+		'
+		'ButtonVEH
+		'
+		Me.ButtonVEH.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
+		Me.ButtonVEH.Image = CType(resources.GetObject("ButtonVEH.Image"), Image)
+		Me.ButtonVEH.Location = New Point(496, 5)
+		Me.ButtonVEH.Name = "ButtonVEH"
+		Me.ButtonVEH.Size = New Size(24, 24)
+		Me.ButtonVEH.TabIndex = 2
+		Me.ButtonVEH.TabStop = False
+		Me.ButtonVEH.UseVisualStyleBackColor = True
+		'
+		'ButtonGBX
+		'
+		Me.ButtonGBX.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
+		Me.ButtonGBX.Image = CType(resources.GetObject("ButtonGBX.Image"), Image)
+		Me.ButtonGBX.Location = New Point(496, 58)
+		Me.ButtonGBX.Name = "ButtonGBX"
+		Me.ButtonGBX.Size = New Size(24, 24)
+		Me.ButtonGBX.TabIndex = 8
+		Me.ButtonGBX.TabStop = False
+		Me.ButtonGBX.UseVisualStyleBackColor = True
+		'
+		'ButtonMAP
+		'
+		Me.ButtonMAP.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
+		Me.ButtonMAP.Image = CType(resources.GetObject("ButtonMAP.Image"), Image)
+		Me.ButtonMAP.Location = New Point(496, 31)
+		Me.ButtonMAP.Name = "ButtonMAP"
+		Me.ButtonMAP.Size = New Size(24, 24)
+		Me.ButtonMAP.TabIndex = 5
+		Me.ButtonMAP.TabStop = False
+		Me.ButtonMAP.UseVisualStyleBackColor = True
+		'
+		'TabControl1
+		'
+		Me.TabControl1.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
+			Or AnchorStyles.Right), AnchorStyles)
+		Me.TabControl1.Controls.Add(Me.TabPgGen)
+		Me.TabControl1.Controls.Add(Me.TabPgDriver)
+		Me.TabControl1.Location = New Point(1, 107)
+		Me.TabControl1.Name = "TabControl1"
+		Me.TabControl1.SelectedIndex = 0
+		Me.TabControl1.Size = New Size(535, 560)
+		Me.TabControl1.SizeMode = TabSizeMode.Fixed
+		Me.TabControl1.TabIndex = 0
+		'
+		'TabPgDriver
+		'
+		Me.TabPgDriver.Controls.Add(Me.GrVACC)
+		Me.TabPgDriver.Controls.Add(Me.GrLAC)
+		Me.TabPgDriver.Controls.Add(Me.GroupBox1)
+		Me.TabPgDriver.Controls.Add(Me.GrStartStop)
+		Me.TabPgDriver.Location = New Point(4, 22)
+		Me.TabPgDriver.Name = "TabPgDriver"
+		Me.TabPgDriver.Padding = New Padding(3)
+		Me.TabPgDriver.Size = New Size(527, 534)
+		Me.TabPgDriver.TabIndex = 7
+		Me.TabPgDriver.Text = "Driver Assist"
+		Me.TabPgDriver.UseVisualStyleBackColor = True
+		'
+		'GrVACC
+		'
+		Me.GrVACC.Controls.Add(Me.TbDesMaxFile)
+		Me.GrVACC.Controls.Add(Me.BtDesMaxBr)
+		Me.GrVACC.Controls.Add(Me.BtAccOpen)
+		Me.GrVACC.Location = New Point(6, 459)
+		Me.GrVACC.Name = "GrVACC"
+		Me.GrVACC.Size = New Size(515, 65)
+		Me.GrVACC.TabIndex = 3
+		Me.GrVACC.TabStop = False
+		Me.GrVACC.Text = "Max. acceleration and brake curves"
+		'
+		'TbDesMaxFile
+		'
+		Me.TbDesMaxFile.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
+			Or AnchorStyles.Right), AnchorStyles)
+		Me.TbDesMaxFile.Location = New Point(6, 29)
+		Me.TbDesMaxFile.Name = "TbDesMaxFile"
+		Me.TbDesMaxFile.Size = New Size(440, 20)
+		Me.TbDesMaxFile.TabIndex = 0
+		'
+		'BtDesMaxBr
+		'
+		Me.BtDesMaxBr.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
+		Me.BtDesMaxBr.Image = My.Resources.Resources.Open_icon
+		Me.BtDesMaxBr.Location = New Point(446, 27)
+		Me.BtDesMaxBr.Name = "BtDesMaxBr"
+		Me.BtDesMaxBr.Size = New Size(24, 24)
+		Me.BtDesMaxBr.TabIndex = 1
+		Me.BtDesMaxBr.UseVisualStyleBackColor = True
+		'
+		'BtAccOpen
+		'
+		Me.BtAccOpen.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
+		Me.BtAccOpen.Image = My.Resources.Resources.application_export_icon_small
+		Me.BtAccOpen.Location = New Point(469, 27)
+		Me.BtAccOpen.Name = "BtAccOpen"
+		Me.BtAccOpen.Size = New Size(24, 24)
+		Me.BtAccOpen.TabIndex = 2
+		Me.BtAccOpen.TabStop = False
+		Me.BtAccOpen.UseVisualStyleBackColor = True
+		'
+		'GrLAC
+		'
+		Me.GrLAC.Controls.Add(Me.Label12)
+		Me.GrLAC.Controls.Add(Me.tbDfCoastingScale)
+		Me.GrLAC.Controls.Add(Me.CbLookAhead)
+		Me.GrLAC.Controls.Add(Me.Label11)
+		Me.GrLAC.Controls.Add(Me.Label3)
+		Me.GrLAC.Controls.Add(Me.tbDfCoastingOffset)
+		Me.GrLAC.Controls.Add(Me.tbLacDfTargetSpeedFile)
+		Me.GrLAC.Controls.Add(Me.Label10)
+		Me.GrLAC.Controls.Add(Me.Label4)
+		Me.GrLAC.Controls.Add(Me.Label5)
+		Me.GrLAC.Controls.Add(Me.btnDfTargetSpeed)
+		Me.GrLAC.Controls.Add(Me.tbLacPreviewFactor)
+		Me.GrLAC.Controls.Add(Me.tbLacDfVelocityDropFile)
+		Me.GrLAC.Location = New Point(7, 290)
+		Me.GrLAC.Name = "GrLAC"
+		Me.GrLAC.Size = New Size(514, 163)
+		Me.GrLAC.TabIndex = 2
+		Me.GrLAC.TabStop = False
+		Me.GrLAC.Text = "Look-Ahead Coasting"
+		'
+		'Label12
+		'
+		Me.Label12.AutoSize = True
+		Me.Label12.Location = New Point(279, 133)
+		Me.Label12.Name = "Label12"
+		Me.Label12.Size = New Size(130, 13)
+		Me.Label12.TabIndex = 17
+		Me.Label12.Text = "* DF_vTarget * DF_vDrop"
+		'
+		'tbDfCoastingScale
+		'
+		Me.tbDfCoastingScale.Location = New Point(236, 130)
+		Me.tbDfCoastingScale.Name = "tbDfCoastingScale"
+		Me.tbDfCoastingScale.Size = New Size(37, 20)
+		Me.tbDfCoastingScale.TabIndex = 16
+		'
+		'CbLookAhead
+		'
+		Me.CbLookAhead.AutoSize = True
+		Me.CbLookAhead.Checked = True
+		Me.CbLookAhead.CheckState = CheckState.Checked
+		Me.CbLookAhead.Location = New Point(16, 21)
+		Me.CbLookAhead.Name = "CbLookAhead"
+		Me.CbLookAhead.Size = New Size(65, 17)
+		Me.CbLookAhead.TabIndex = 0
+		Me.CbLookAhead.Text = "Enabled"
+		Me.CbLookAhead.UseVisualStyleBackColor = True
+		'
+		'Label11
+		'
+		Me.Label11.AutoSize = True
+		Me.Label11.Location = New Point(219, 132)
+		Me.Label11.Name = "Label11"
+		Me.Label11.Size = New Size(13, 13)
+		Me.Label11.TabIndex = 15
+		Me.Label11.Text = "- "
+		'
+		'Label3
+		'
+		Me.Label3.AutoSize = True
+		Me.Label3.Location = New Point(50, 54)
+		Me.Label3.Name = "Label3"
+		Me.Label3.Size = New Size(118, 13)
+		Me.Label3.TabIndex = 4
+		Me.Label3.Text = "Preview distance factor"
+		Me.Label3.TextAlign = ContentAlignment.MiddleRight
+		'
+		'tbDfCoastingOffset
+		'
+		Me.tbDfCoastingOffset.Location = New Point(175, 130)
+		Me.tbDfCoastingOffset.Name = "tbDfCoastingOffset"
+		Me.tbDfCoastingOffset.Size = New Size(37, 20)
+		Me.tbDfCoastingOffset.TabIndex = 14
+		'
+		'tbLacDfTargetSpeedFile
+		'
+		Me.tbLacDfTargetSpeedFile.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
+			Or AnchorStyles.Right), AnchorStyles)
+		Me.tbLacDfTargetSpeedFile.Location = New Point(174, 77)
+		Me.tbLacDfTargetSpeedFile.Name = "tbLacDfTargetSpeedFile"
+		Me.tbLacDfTargetSpeedFile.Size = New Size(264, 20)
+		Me.tbLacDfTargetSpeedFile.TabIndex = 6
+		'
+		'Label10
+		'
+		Me.Label10.AutoSize = True
+		Me.Label10.Location = New Point(89, 133)
+		Me.Label10.Name = "Label10"
+		Me.Label10.Size = New Size(79, 13)
+		Me.Label10.TabIndex = 12
+		Me.Label10.Text = "DF_coasting = "
+		'
+		'Label4
+		'
+		Me.Label4.AutoSize = True
+		Me.Label4.Location = New Point(13, 80)
+		Me.Label4.Name = "Label4"
+		Me.Label4.Size = New Size(155, 13)
+		Me.Label4.TabIndex = 8
+		Me.Label4.Text = "Decision Factor - Target Speed"
+		Me.Label4.TextAlign = ContentAlignment.MiddleRight
+		'
+		'Label5
+		'
+		Me.Label5.AutoSize = True
+		Me.Label5.Location = New Point(15, 107)
+		Me.Label5.Name = "Label5"
+		Me.Label5.Size = New Size(153, 13)
+		Me.Label5.TabIndex = 11
+		Me.Label5.Text = "Decision Factor - Velocity Drop"
+		Me.Label5.TextAlign = ContentAlignment.MiddleRight
+		'
+		'btnDfTargetSpeed
+		'
+		Me.btnDfTargetSpeed.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
+		Me.btnDfTargetSpeed.Image = CType(resources.GetObject("btnDfTargetSpeed.Image"), Image)
+		Me.btnDfTargetSpeed.Location = New Point(438, 76)
+		Me.btnDfTargetSpeed.Name = "btnDfTargetSpeed"
+		Me.btnDfTargetSpeed.Size = New Size(24, 24)
+		Me.btnDfTargetSpeed.TabIndex = 7
+		Me.btnDfTargetSpeed.TabStop = False
+		Me.btnDfTargetSpeed.UseVisualStyleBackColor = True
+		'
+		'tbLacPreviewFactor
+		'
+		Me.tbLacPreviewFactor.Location = New Point(174, 51)
+		Me.tbLacPreviewFactor.Name = "tbLacPreviewFactor"
+		Me.tbLacPreviewFactor.Size = New Size(64, 20)
+		Me.tbLacPreviewFactor.TabIndex = 5
+		'
+		'tbLacDfVelocityDropFile
+		'
+		Me.tbLacDfVelocityDropFile.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
+			Or AnchorStyles.Right), AnchorStyles)
+		Me.tbLacDfVelocityDropFile.Location = New Point(174, 104)
+		Me.tbLacDfVelocityDropFile.Name = "tbLacDfVelocityDropFile"
+		Me.tbLacDfVelocityDropFile.Size = New Size(264, 20)
+		Me.tbLacDfVelocityDropFile.TabIndex = 9
+		'
+		'GroupBox1
+		'
+		Me.GroupBox1.Controls.Add(Me.PnEcoRoll)
+		Me.GroupBox1.Controls.Add(Me.RdEcoRoll)
+		Me.GroupBox1.Controls.Add(Me.RdOverspeed)
+		Me.GroupBox1.Controls.Add(Me.RdOff)
+		Me.GroupBox1.Location = New Point(6, 149)
+		Me.GroupBox1.Name = "GroupBox1"
+		Me.GroupBox1.Size = New Size(515, 135)
+		Me.GroupBox1.TabIndex = 1
+		Me.GroupBox1.TabStop = False
+		Me.GroupBox1.Text = "Overspeed / Eco-Roll"
+		'
+		'PnEcoRoll
+		'
+		Me.PnEcoRoll.Controls.Add(Me.Label21)
+		Me.PnEcoRoll.Controls.Add(Me.Label20)
+		Me.PnEcoRoll.Controls.Add(Me.Label14)
+		Me.PnEcoRoll.Controls.Add(Me.TbVmin)
+		Me.PnEcoRoll.Controls.Add(Me.TbUnderSpeed)
+		Me.PnEcoRoll.Controls.Add(Me.TbOverspeed)
+		Me.PnEcoRoll.Controls.Add(Me.Label23)
+		Me.PnEcoRoll.Controls.Add(Me.Label22)
+		Me.PnEcoRoll.Controls.Add(Me.Label13)
+		Me.PnEcoRoll.Location = New Point(137, 16)
+		Me.PnEcoRoll.Name = "PnEcoRoll"
+		Me.PnEcoRoll.Size = New Size(232, 102)
+		Me.PnEcoRoll.TabIndex = 3
+		'
+		'Label21
+		'
+		Me.Label21.AutoSize = True
+		Me.Label21.Location = New Point(178, 61)
+		Me.Label21.Name = "Label21"
+		Me.Label21.Size = New Size(38, 13)
+		Me.Label21.TabIndex = 3
+		Me.Label21.Text = "[km/h]"
+		'
+		'Label20
+		'
+		Me.Label20.AutoSize = True
+		Me.Label20.Location = New Point(178, 35)
+		Me.Label20.Name = "Label20"
+		Me.Label20.Size = New Size(38, 13)
+		Me.Label20.TabIndex = 3
+		Me.Label20.Text = "[km/h]"
+		'
+		'Label14
+		'
+		Me.Label14.AutoSize = True
+		Me.Label14.Location = New Point(178, 9)
+		Me.Label14.Name = "Label14"
+		Me.Label14.Size = New Size(38, 13)
+		Me.Label14.TabIndex = 3
+		Me.Label14.Text = "[km/h]"
+		'
+		'TbVmin
+		'
+		Me.TbVmin.Location = New Point(108, 58)
+		Me.TbVmin.Name = "TbVmin"
+		Me.TbVmin.Size = New Size(64, 20)
+		Me.TbVmin.TabIndex = 2
+		'
+		'TbUnderSpeed
+		'
+		Me.TbUnderSpeed.Location = New Point(108, 32)
+		Me.TbUnderSpeed.Name = "TbUnderSpeed"
+		Me.TbUnderSpeed.Size = New Size(64, 20)
+		Me.TbUnderSpeed.TabIndex = 1
+		'
+		'TbOverspeed
+		'
+		Me.TbOverspeed.Location = New Point(108, 6)
+		Me.TbOverspeed.Name = "TbOverspeed"
+		Me.TbOverspeed.Size = New Size(64, 20)
+		Me.TbOverspeed.TabIndex = 0
+		'
+		'Label23
+		'
+		Me.Label23.AutoSize = True
+		Me.Label23.Location = New Point(22, 61)
+		Me.Label23.Name = "Label23"
+		Me.Label23.Size = New Size(80, 13)
+		Me.Label23.TabIndex = 1
+		Me.Label23.Text = "Minimum speed"
+		'
+		'Label22
+		'
+		Me.Label22.AutoSize = True
+		Me.Label22.Location = New Point(11, 35)
+		Me.Label22.Name = "Label22"
+		Me.Label22.Size = New Size(91, 13)
+		Me.Label22.TabIndex = 1
+		Me.Label22.Text = "Max. Underspeed"
+		'
+		'Label13
+		'
+		Me.Label13.AutoSize = True
+		Me.Label13.Location = New Point(17, 9)
+		Me.Label13.Name = "Label13"
+		Me.Label13.Size = New Size(85, 13)
+		Me.Label13.TabIndex = 1
+		Me.Label13.Text = "Max. Overspeed"
+		'
+		'RdEcoRoll
+		'
+		Me.RdEcoRoll.AutoSize = True
+		Me.RdEcoRoll.Checked = True
+		Me.RdEcoRoll.Location = New Point(13, 68)
+		Me.RdEcoRoll.Name = "RdEcoRoll"
+		Me.RdEcoRoll.Size = New Size(65, 17)
+		Me.RdEcoRoll.TabIndex = 2
+		Me.RdEcoRoll.TabStop = True
+		Me.RdEcoRoll.Text = "Eco-Roll"
+		Me.RdEcoRoll.UseVisualStyleBackColor = True
+		'
+		'RdOverspeed
+		'
+		Me.RdOverspeed.AutoSize = True
+		Me.RdOverspeed.Location = New Point(13, 45)
+		Me.RdOverspeed.Name = "RdOverspeed"
+		Me.RdOverspeed.Size = New Size(77, 17)
+		Me.RdOverspeed.TabIndex = 1
+		Me.RdOverspeed.Text = "Overspeed"
+		Me.RdOverspeed.UseVisualStyleBackColor = True
+		'
+		'RdOff
+		'
+		Me.RdOff.AutoSize = True
+		Me.RdOff.Location = New Point(13, 22)
+		Me.RdOff.Name = "RdOff"
+		Me.RdOff.Size = New Size(39, 17)
+		Me.RdOff.TabIndex = 0
+		Me.RdOff.Text = "Off"
+		Me.RdOff.UseVisualStyleBackColor = True
+		'
+		'GrStartStop
+		'
+		Me.GrStartStop.Controls.Add(Me.PnStartStop)
+		Me.GrStartStop.Controls.Add(Me.ChBStartStop)
+		Me.GrStartStop.Location = New Point(6, 6)
+		Me.GrStartStop.Name = "GrStartStop"
+		Me.GrStartStop.Size = New Size(515, 137)
+		Me.GrStartStop.TabIndex = 0
+		Me.GrStartStop.TabStop = False
+		Me.GrStartStop.Text = "Engine Start Stop"
+		'
+		'PnStartStop
+		'
+		Me.PnStartStop.Controls.Add(Me.Label31)
+		Me.PnStartStop.Controls.Add(Me.Label27)
+		Me.PnStartStop.Controls.Add(Me.TbSSspeed)
+		Me.PnStartStop.Controls.Add(Me.LabelSSspeed)
+		Me.PnStartStop.Controls.Add(Me.Label26)
+		Me.PnStartStop.Controls.Add(Me.Label30)
+		Me.PnStartStop.Controls.Add(Me.LabelSStime)
+		Me.PnStartStop.Controls.Add(Me.TbSSdelay)
+		Me.PnStartStop.Controls.Add(Me.TbSStime)
+		Me.PnStartStop.Location = New Point(87, 21)
+		Me.PnStartStop.Name = "PnStartStop"
+		Me.PnStartStop.Size = New Size(422, 95)
+		Me.PnStartStop.TabIndex = 1
+		'
+		'Label31
+		'
+		Me.Label31.AutoSize = True
+		Me.Label31.Location = New Point(228, 58)
+		Me.Label31.Name = "Label31"
+		Me.Label31.Size = New Size(18, 13)
+		Me.Label31.TabIndex = 38
+		Me.Label31.Text = "[s]"
+		'
+		'Label27
+		'
+		Me.Label27.AutoSize = True
+		Me.Label27.Location = New Point(228, 32)
+		Me.Label27.Name = "Label27"
+		Me.Label27.Size = New Size(18, 13)
+		Me.Label27.TabIndex = 38
+		Me.Label27.Text = "[s]"
+		'
+		'TbSSspeed
+		'
+		Me.TbSSspeed.Location = New Point(158, 3)
+		Me.TbSSspeed.Name = "TbSSspeed"
+		Me.TbSSspeed.Size = New Size(64, 20)
+		Me.TbSSspeed.TabIndex = 0
+		'
+		'LabelSSspeed
+		'
+		Me.LabelSSspeed.AutoSize = True
+		Me.LabelSSspeed.Location = New Point(91, 6)
+		Me.LabelSSspeed.Name = "LabelSSspeed"
+		Me.LabelSSspeed.Size = New Size(61, 13)
+		Me.LabelSSspeed.TabIndex = 37
+		Me.LabelSSspeed.Text = "Max Speed"
+		'
+		'Label26
+		'
+		Me.Label26.AutoSize = True
+		Me.Label26.Location = New Point(228, 6)
+		Me.Label26.Name = "Label26"
+		Me.Label26.Size = New Size(38, 13)
+		Me.Label26.TabIndex = 38
+		Me.Label26.Text = "[km/h]"
+		'
+		'Label30
+		'
+		Me.Label30.AutoSize = True
+		Me.Label30.Location = New Point(68, 58)
+		Me.Label30.Name = "Label30"
+		Me.Label30.Size = New Size(84, 13)
+		Me.Label30.TabIndex = 35
+		Me.Label30.Text = "Activation Delay"
+		'
+		'LabelSStime
+		'
+		Me.LabelSStime.AutoSize = True
+		Me.LabelSStime.Location = New Point(65, 32)
+		Me.LabelSStime.Name = "LabelSStime"
+		Me.LabelSStime.Size = New Size(87, 13)
+		Me.LabelSStime.TabIndex = 35
+		Me.LabelSStime.Text = "Min ICE-On Time"
+		'
+		'TbSSdelay
+		'
+		Me.TbSSdelay.Location = New Point(158, 55)
+		Me.TbSSdelay.Name = "TbSSdelay"
+		Me.TbSSdelay.Size = New Size(64, 20)
+		Me.TbSSdelay.TabIndex = 2
+		'
+		'TbSStime
+		'
+		Me.TbSStime.Location = New Point(158, 29)
+		Me.TbSStime.Name = "TbSStime"
+		Me.TbSStime.Size = New Size(64, 20)
+		Me.TbSStime.TabIndex = 1
+		'
+		'ChBStartStop
+		'
+		Me.ChBStartStop.AutoSize = True
+		Me.ChBStartStop.Checked = True
+		Me.ChBStartStop.CheckState = CheckState.Checked
+		Me.ChBStartStop.Location = New Point(16, 21)
+		Me.ChBStartStop.Name = "ChBStartStop"
+		Me.ChBStartStop.Size = New Size(65, 17)
+		Me.ChBStartStop.TabIndex = 0
+		Me.ChBStartStop.Text = "Enabled"
+		Me.ChBStartStop.UseVisualStyleBackColor = True
+		'
+		'StatusStrip1
+		'
+		Me.StatusStrip1.Items.AddRange(New ToolStripItem() {Me.ToolStripStatusLabelGEN})
+		Me.StatusStrip1.Location = New Point(0, 672)
+		Me.StatusStrip1.Name = "StatusStrip1"
+		Me.StatusStrip1.Size = New Size(944, 22)
+		Me.StatusStrip1.SizingGrip = False
+		Me.StatusStrip1.TabIndex = 6
+		Me.StatusStrip1.Text = "StatusStrip1"
+		'
+		'ToolStripStatusLabelGEN
+		'
+		Me.ToolStripStatusLabelGEN.Name = "ToolStripStatusLabelGEN"
+		Me.ToolStripStatusLabelGEN.Size = New Size(121, 17)
+		Me.ToolStripStatusLabelGEN.Text = "ToolStripStatusLabel1"
+		'
+		'ButOK
+		'
+		Me.ButOK.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Right), AnchorStyles)
+		Me.ButOK.Location = New Point(779, 646)
+		Me.ButOK.Name = "ButOK"
+		Me.ButOK.Size = New Size(75, 23)
+		Me.ButOK.TabIndex = 0
+		Me.ButOK.Text = "Save"
+		Me.ButOK.UseVisualStyleBackColor = True
+		'
+		'ButCancel
+		'
+		Me.ButCancel.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Right), AnchorStyles)
+		Me.ButCancel.DialogResult = DialogResult.Cancel
+		Me.ButCancel.Location = New Point(860, 646)
+		Me.ButCancel.Name = "ButCancel"
+		Me.ButCancel.Size = New Size(75, 23)
+		Me.ButCancel.TabIndex = 1
+		Me.ButCancel.Text = "Cancel"
+		Me.ButCancel.UseVisualStyleBackColor = True
+		'
+		'ToolStrip1
+		'
+		Me.ToolStrip1.GripStyle = ToolStripGripStyle.Hidden
+		Me.ToolStrip1.Items.AddRange(New ToolStripItem() {Me.ToolStripBtNew, Me.ToolStripBtOpen, Me.ToolStripBtSave, Me.ToolStripBtSaveAs, Me.ToolStripSeparator1, Me.ToolStripBtSendTo, Me.ToolStripSeparator2, Me.ToolStripButton1})
+		Me.ToolStrip1.Location = New Point(0, 0)
+		Me.ToolStrip1.Name = "ToolStrip1"
+		Me.ToolStrip1.Size = New Size(944, 25)
+		Me.ToolStrip1.TabIndex = 20
+		Me.ToolStrip1.Text = "ToolStrip1"
+		'
+		'ToolStripBtNew
+		'
+		Me.ToolStripBtNew.DisplayStyle = ToolStripItemDisplayStyle.Image
+		Me.ToolStripBtNew.Image = My.Resources.Resources.blue_document_icon
+		Me.ToolStripBtNew.ImageTransparentColor = Color.Magenta
+		Me.ToolStripBtNew.Name = "ToolStripBtNew"
+		Me.ToolStripBtNew.Size = New Size(23, 22)
+		Me.ToolStripBtNew.Text = "New"
+		Me.ToolStripBtNew.ToolTipText = "New"
+		'
+		'ToolStripBtOpen
+		'
+		Me.ToolStripBtOpen.DisplayStyle = ToolStripItemDisplayStyle.Image
+		Me.ToolStripBtOpen.Image = My.Resources.Resources.Open_icon
+		Me.ToolStripBtOpen.ImageTransparentColor = Color.Magenta
+		Me.ToolStripBtOpen.Name = "ToolStripBtOpen"
+		Me.ToolStripBtOpen.Size = New Size(23, 22)
+		Me.ToolStripBtOpen.Text = "Open"
+		Me.ToolStripBtOpen.ToolTipText = "Open..."
+		'
+		'ToolStripBtSave
+		'
+		Me.ToolStripBtSave.DisplayStyle = ToolStripItemDisplayStyle.Image
+		Me.ToolStripBtSave.Image = My.Resources.Resources.Actions_document_save_icon
+		Me.ToolStripBtSave.ImageTransparentColor = Color.Magenta
+		Me.ToolStripBtSave.Name = "ToolStripBtSave"
+		Me.ToolStripBtSave.Size = New Size(23, 22)
+		Me.ToolStripBtSave.Text = "Save"
+		Me.ToolStripBtSave.ToolTipText = "Save"
+		'
+		'ToolStripBtSaveAs
+		'
+		Me.ToolStripBtSaveAs.DisplayStyle = ToolStripItemDisplayStyle.Image
+		Me.ToolStripBtSaveAs.Image = My.Resources.Resources.Actions_document_save_as_icon
+		Me.ToolStripBtSaveAs.ImageTransparentColor = Color.Magenta
+		Me.ToolStripBtSaveAs.Name = "ToolStripBtSaveAs"
+		Me.ToolStripBtSaveAs.Size = New Size(23, 22)
+		Me.ToolStripBtSaveAs.Text = "Save As"
+		Me.ToolStripBtSaveAs.ToolTipText = "Save As..."
+		'
+		'ToolStripSeparator1
+		'
+		Me.ToolStripSeparator1.Name = "ToolStripSeparator1"
+		Me.ToolStripSeparator1.Size = New Size(6, 25)
+		'
+		'ToolStripBtSendTo
+		'
+		Me.ToolStripBtSendTo.DisplayStyle = ToolStripItemDisplayStyle.Image
+		Me.ToolStripBtSendTo.Image = My.Resources.Resources.export_icon
+		Me.ToolStripBtSendTo.ImageTransparentColor = Color.Magenta
+		Me.ToolStripBtSendTo.Name = "ToolStripBtSendTo"
+		Me.ToolStripBtSendTo.Size = New Size(23, 22)
+		Me.ToolStripBtSendTo.Text = "Send to Job List"
+		Me.ToolStripBtSendTo.ToolTipText = "Send to Job List"
+		'
+		'ToolStripSeparator2
+		'
+		Me.ToolStripSeparator2.Name = "ToolStripSeparator2"
+		Me.ToolStripSeparator2.Size = New Size(6, 25)
+		'
+		'ToolStripButton1
+		'
+		Me.ToolStripButton1.DisplayStyle = ToolStripItemDisplayStyle.Image
+		Me.ToolStripButton1.Image = My.Resources.Resources.Help_icon
+		Me.ToolStripButton1.ImageTransparentColor = Color.Magenta
+		Me.ToolStripButton1.Name = "ToolStripButton1"
+		Me.ToolStripButton1.Size = New Size(23, 22)
+		Me.ToolStripButton1.Text = "Help"
+		'
+		'PictureBox1
+		'
+		Me.PictureBox1.BackColor = Color.White
+		Me.PictureBox1.Image = My.Resources.Resources.VECTO_VECTO
+		Me.PictureBox1.Location = New Point(12, 28)
+		Me.PictureBox1.Name = "PictureBox1"
+		Me.PictureBox1.Size = New Size(920, 40)
+		Me.PictureBox1.TabIndex = 21
+		Me.PictureBox1.TabStop = False
+		'
+		'CbEngOnly
+		'
+		Me.CbEngOnly.AutoSize = True
+		Me.CbEngOnly.Location = New Point(17, 84)
+		Me.CbEngOnly.Name = "CbEngOnly"
+		Me.CbEngOnly.Size = New Size(113, 17)
+		Me.CbEngOnly.TabIndex = 0
+		Me.CbEngOnly.Text = "Engine Only Mode"
+		Me.CbEngOnly.UseVisualStyleBackColor = True
+		'
+		'CmOpenFile
+		'
+		Me.CmOpenFile.Items.AddRange(New ToolStripItem() {Me.OpenWithToolStripMenuItem, Me.ShowInFolderToolStripMenuItem})
+		Me.CmOpenFile.Name = "CmOpenFile"
+		Me.CmOpenFile.Size = New Size(153, 48)
+		'
+		'OpenWithToolStripMenuItem
+		'
+		Me.OpenWithToolStripMenuItem.Name = "OpenWithToolStripMenuItem"
+		Me.OpenWithToolStripMenuItem.Size = New Size(152, 22)
+		Me.OpenWithToolStripMenuItem.Text = "Open with ..."
+		'
+		'ShowInFolderToolStripMenuItem
+		'
+		Me.ShowInFolderToolStripMenuItem.Name = "ShowInFolderToolStripMenuItem"
+		Me.ShowInFolderToolStripMenuItem.Size = New Size(152, 22)
+		Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder"
+		'
+		'PicVehicle
+		'
+		Me.PicVehicle.BackColor = Color.LightGray
+		Me.PicVehicle.Location = New Point(542, 122)
+		Me.PicVehicle.Name = "PicVehicle"
+		Me.PicVehicle.Size = New Size(300, 88)
+		Me.PicVehicle.SizeMode = PictureBoxSizeMode.StretchImage
+		Me.PicVehicle.TabIndex = 36
+		Me.PicVehicle.TabStop = False
+		'
+		'PicBox
+		'
+		Me.PicBox.BackColor = Color.LightGray
+		Me.PicBox.Location = New Point(542, 268)
+		Me.PicBox.Name = "PicBox"
+		Me.PicBox.Size = New Size(390, 327)
+		Me.PicBox.TabIndex = 36
+		Me.PicBox.TabStop = False
+		'
+		'TbEngTxt
+		'
+		Me.TbEngTxt.Location = New Point(542, 216)
+		Me.TbEngTxt.Name = "TbEngTxt"
+		Me.TbEngTxt.ReadOnly = True
+		Me.TbEngTxt.Size = New Size(390, 20)
+		Me.TbEngTxt.TabIndex = 6
+		'
+		'TbVehCat
+		'
+		Me.TbVehCat.Location = New Point(848, 126)
+		Me.TbVehCat.Name = "TbVehCat"
+		Me.TbVehCat.ReadOnly = True
+		Me.TbVehCat.Size = New Size(87, 20)
+		Me.TbVehCat.TabIndex = 2
+		'
+		'TbAxleConf
+		'
+		Me.TbAxleConf.Location = New Point(904, 155)
+		Me.TbAxleConf.Name = "TbAxleConf"
+		Me.TbAxleConf.ReadOnly = True
+		Me.TbAxleConf.Size = New Size(31, 20)
+		Me.TbAxleConf.TabIndex = 4
+		'
+		'TbHVCclass
+		'
+		Me.TbHVCclass.Location = New Point(848, 184)
+		Me.TbHVCclass.Name = "TbHVCclass"
+		Me.TbHVCclass.ReadOnly = True
+		Me.TbHVCclass.Size = New Size(87, 20)
+		Me.TbHVCclass.TabIndex = 5
+		'
+		'TbGbxTxt
+		'
+		Me.TbGbxTxt.Location = New Point(542, 242)
+		Me.TbGbxTxt.Name = "TbGbxTxt"
+		Me.TbGbxTxt.ReadOnly = True
+		Me.TbGbxTxt.Size = New Size(390, 20)
+		Me.TbGbxTxt.TabIndex = 7
+		'
+		'TbMass
+		'
+		Me.TbMass.Location = New Point(848, 155)
+		Me.TbMass.Name = "TbMass"
+		Me.TbMass.ReadOnly = True
+		Me.TbMass.Size = New Size(50, 20)
+		Me.TbMass.TabIndex = 3
+		'
+		'F_VECTO
+		'
+		Me.AcceptButton = Me.ButOK
+		Me.AutoScaleDimensions = New SizeF(6.0!, 13.0!)
+		Me.AutoScaleMode = AutoScaleMode.Font
+		Me.CancelButton = Me.ButCancel
+		Me.ClientSize = New Size(944, 694)
+		Me.Controls.Add(Me.TbHVCclass)
+		Me.Controls.Add(Me.TbMass)
+		Me.Controls.Add(Me.TbAxleConf)
+		Me.Controls.Add(Me.TbVehCat)
+		Me.Controls.Add(Me.TbGbxTxt)
+		Me.Controls.Add(Me.TbEngTxt)
+		Me.Controls.Add(Me.PicBox)
+		Me.Controls.Add(Me.PicVehicle)
+		Me.Controls.Add(Me.CbEngOnly)
+		Me.Controls.Add(Me.PictureBox1)
+		Me.Controls.Add(Me.ToolStrip1)
+		Me.Controls.Add(Me.ButCancel)
+		Me.Controls.Add(Me.TabControl1)
+		Me.Controls.Add(Me.ButOK)
+		Me.Controls.Add(Me.StatusStrip1)
+		Me.FormBorderStyle = FormBorderStyle.FixedSingle
+		Me.Icon = CType(resources.GetObject("$this.Icon"), Icon)
+		Me.MaximizeBox = False
+		Me.Name = "VectoJobForm"
+		Me.StartPosition = FormStartPosition.CenterParent
+		Me.Text = "Job Editor"
+		Me.TabPgGen.ResumeLayout(False)
+		Me.TabPgGen.PerformLayout()
+		Me.GrCycles.ResumeLayout(False)
+		Me.GrCycles.PerformLayout()
+		Me.GrAux.ResumeLayout(False)
+		Me.GrAux.PerformLayout()
+		CType(Me.picAuxInfo, ISupportInitialize).EndInit()
+		Me.TabControl1.ResumeLayout(False)
+		Me.TabPgDriver.ResumeLayout(False)
+		Me.GrVACC.ResumeLayout(False)
+		Me.GrVACC.PerformLayout()
+		Me.GrLAC.ResumeLayout(False)
+		Me.GrLAC.PerformLayout()
+		Me.GroupBox1.ResumeLayout(False)
+		Me.GroupBox1.PerformLayout()
+		Me.PnEcoRoll.ResumeLayout(False)
+		Me.PnEcoRoll.PerformLayout()
+		Me.GrStartStop.ResumeLayout(False)
+		Me.GrStartStop.PerformLayout()
+		Me.PnStartStop.ResumeLayout(False)
+		Me.PnStartStop.PerformLayout()
+		Me.StatusStrip1.ResumeLayout(False)
+		Me.StatusStrip1.PerformLayout()
+		Me.ToolStrip1.ResumeLayout(False)
+		Me.ToolStrip1.PerformLayout()
+		CType(Me.PictureBox1, ISupportInitialize).EndInit()
+		Me.CmOpenFile.ResumeLayout(False)
+		CType(Me.PicVehicle, ISupportInitialize).EndInit()
+		CType(Me.PicBox, ISupportInitialize).EndInit()
+		Me.ResumeLayout(False)
+		Me.PerformLayout()
+
+	End Sub
+	Friend WithEvents TabPgGen As TabPage
+	Friend WithEvents TabControl1 As TabControl
+	Friend WithEvents StatusStrip1 As StatusStrip
+	Friend WithEvents ButtonVEH As Button
+	Friend WithEvents ButtonMAP As Button
+	Friend WithEvents ButtonGBX As Button
+	Friend WithEvents ButOpenVEH As Button
+	Friend WithEvents ButOpenGBX As Button
+	Friend WithEvents ButOpenENG As Button
+	Friend WithEvents ToolStripStatusLabelGEN As ToolStripStatusLabel
+	Friend WithEvents ButOK As Button
+	Friend WithEvents TbGBX As TextBox
+	Friend WithEvents TbENG As TextBox
+	Friend WithEvents TbVEH As TextBox
+	Friend WithEvents ButCancel As Button
+	Friend WithEvents ToolStrip1 As ToolStrip
+	Friend WithEvents ToolStripBtNew As ToolStripButton
+	Friend WithEvents ToolStripBtOpen As ToolStripButton
+	Friend WithEvents ToolStripBtSave As ToolStripButton
+	Friend WithEvents ToolStripBtSaveAs As ToolStripButton
+	Friend WithEvents ToolStripBtSendTo As ToolStripButton
+	Friend WithEvents ToolStripSeparator1 As ToolStripSeparator
+	Friend WithEvents GrAux As GroupBox
+	Friend WithEvents LvAux As ListView
+	Friend WithEvents ColumnHeader4 As ColumnHeader
+	Friend WithEvents ColumnHeader5 As ColumnHeader
+	Friend WithEvents ColumnHeader6 As ColumnHeader
+	Friend WithEvents ButAuxRem As Button
+	Friend WithEvents ButAuxAdd As Button
+	Friend WithEvents PictureBox1 As PictureBox
+	Friend WithEvents TabPgDriver As TabPage
+	Friend WithEvents BtDesMaxBr As Button
+	Friend WithEvents TbDesMaxFile As TextBox
+	Friend WithEvents GrCycles As GroupBox
+	Friend WithEvents LvCycles As ListView
+	Friend WithEvents ColumnHeader1 As ColumnHeader
+	Friend WithEvents BtDRIrem As Button
+	Friend WithEvents BtDRIadd As Button
+	Friend WithEvents ToolStripSeparator2 As ToolStripSeparator
+	Friend WithEvents ToolStripButton1 As ToolStripButton
+	Friend WithEvents CbEngOnly As CheckBox
+	Friend WithEvents BtAccOpen As Button
+	Friend WithEvents Label2 As Label
+	Friend WithEvents CmOpenFile As ContextMenuStrip
+	Friend WithEvents OpenWithToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents ShowInFolderToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents ChBStartStop As CheckBox
+	Friend WithEvents GrStartStop As GroupBox
+	Friend WithEvents TbSSspeed As TextBox
+	Friend WithEvents TbSStime As TextBox
+	Friend WithEvents LabelSStime As Label
+	Friend WithEvents LabelSSspeed As Label
+	Friend WithEvents GrLAC As GroupBox
+	Friend WithEvents CbLookAhead As CheckBox
+	Friend WithEvents GroupBox1 As GroupBox
+	Friend WithEvents Label21 As Label
+	Friend WithEvents Label20 As Label
+	Friend WithEvents Label14 As Label
+	Friend WithEvents TbVmin As TextBox
+	Friend WithEvents TbUnderSpeed As TextBox
+	Friend WithEvents TbOverspeed As TextBox
+	Friend WithEvents Label23 As Label
+	Friend WithEvents Label22 As Label
+	Friend WithEvents Label13 As Label
+	Friend WithEvents RdEcoRoll As RadioButton
+	Friend WithEvents RdOverspeed As RadioButton
+	Friend WithEvents RdOff As RadioButton
+	Friend WithEvents PnStartStop As Panel
+	Friend WithEvents Label27 As Label
+	Friend WithEvents Label26 As Label
+	Friend WithEvents Label31 As Label
+	Friend WithEvents Label30 As Label
+	Friend WithEvents TbSSdelay As TextBox
+	Friend WithEvents Label32 As Label
+	Friend WithEvents PnEcoRoll As Panel
+	Friend WithEvents PicVehicle As PictureBox
+	Friend WithEvents PicBox As PictureBox
+	Friend WithEvents TbEngTxt As TextBox
+	Friend WithEvents TbVehCat As TextBox
+	Friend WithEvents TbAxleConf As TextBox
+	Friend WithEvents TbHVCclass As TextBox
+	Friend WithEvents TbGbxTxt As TextBox
+	Friend WithEvents TbMass As TextBox
+	Friend WithEvents GrVACC As GroupBox
+	Friend WithEvents cboAdvancedAuxiliaries As ComboBox
+	Friend WithEvents picAuxInfo As PictureBox
+	Friend WithEvents ToolTip1 As ToolTip
+	Friend WithEvents Label1 As Label
+	Friend WithEvents btnBrowseAAUXFile As Button
+	Friend WithEvents txtAdvancedAuxiliaryFile As TextBox
+	Friend WithEvents lbAdvancedAuxiliaries As Label
+	Friend WithEvents btnAAUXOpen As Button
+	Friend WithEvents Label12 As Label
+	Friend WithEvents tbDfCoastingScale As TextBox
+	Friend WithEvents Label11 As Label
+	Friend WithEvents Label3 As Label
+	Friend WithEvents tbDfCoastingOffset As TextBox
+	Friend WithEvents tbLacDfTargetSpeedFile As TextBox
+	Friend WithEvents Label10 As Label
+	Friend WithEvents Label4 As Label
+	Friend WithEvents Label5 As Label
+	Friend WithEvents btnDfTargetSpeed As Button
+	Friend WithEvents tbLacPreviewFactor As TextBox
+	Friend WithEvents tbLacDfVelocityDropFile As TextBox
+End Class
diff --git a/VECTO/GUI/F_VECTO.resx b/VECTO/GUI/VectoJobForm.resx
similarity index 100%
rename from VECTO/GUI/F_VECTO.resx
rename to VECTO/GUI/VectoJobForm.resx
diff --git a/VECTO/GUI/F_VECTO.vb b/VECTO/GUI/VectoJobForm.vb
similarity index 89%
rename from VECTO/GUI/F_VECTO.vb
rename to VECTO/GUI/VectoJobForm.vb
index 56243eedbb..7111cc4210 100644
--- a/VECTO/GUI/F_VECTO.vb
+++ b/VECTO/GUI/VectoJobForm.vb
@@ -1,1410 +1,1410 @@
-' Copyright 2014 European Union.
-' Licensed under the EUPL (the 'Licence');
-'
-' * You may not use this work except in compliance with the Licence.
-' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
-' * Unless required by applicable law or agreed to in writing,
-'   software distributed under the Licence is distributed on an "AS IS" basis,
-'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-'
-' See the LICENSE.txt for the specific language governing permissions and limitations.
-Option Infer On
-
-Imports System.Collections.Generic
-Imports System.Drawing.Imaging
-Imports System.IO
-Imports System.Linq
-Imports System.Text.RegularExpressions
-Imports System.Windows.Forms.DataVisualization.Charting
-Imports TUGraz.VECTO.Input_Files
-Imports TUGraz.VectoCommon.Models
-Imports TUGraz.VectoCommon.Utils
-Imports TUGraz.VectoCore.Models.Declaration
-
-''' <summary>
-''' Job Editor. Create/Edit VECTO job files (.vecto)
-''' </summary>
-''' <remarks></remarks>
-Public Class F_VECTO
-	Public VECTOfile As String
-	Private Changed As Boolean = False
-
-	Private pgDriver As TabPage
-
-	Private pgDriverON As Boolean = True
-
-	Private AuxDlog As F_VEH_AuxDlog
-
-	Public n_idle As Single
-	Public FLDfile As String
-
-	'AA-TB
-	'Populate Advanced Auxiliaries
-	Private Sub PopulateAdvancedAuxiliaries()
-		'Scan the program directory for DLL's which are AdvancedAuxiliaries and display
-		Dim aList As List(Of cAdvancedAuxiliary) = DiscoverAdvancedAuxiliaries()
-
-		cboAdvancedAuxiliaries.DataSource = aList
-		cboAdvancedAuxiliaries.DisplayMember = "AuxiliaryName"
-	End Sub
-
-
-	'Initialise form
-	Private Sub F02_GEN_Load(sender As Object, e As EventArgs) Handles Me.Load
-		Dim x As Int16
-
-		n_idle = -1
-		FLDfile = ""
-
-		AuxDlog = New F_VEH_AuxDlog
-
-		pgDriver = TabPgDriver
-
-		For x = 0 To TabControl1.TabCount - 1
-			TabControl1.TabPages(x).Show()
-		Next
-
-		LvAux.Columns(2).Width = -2
-
-		'Declaration Mode
-		If Cfg.DeclMode Then
-			LvAux.Columns(2).Text = "Technology"
-		Else
-			LvAux.Columns(2).Text = "Input File"
-		End If
-
-		CbEngOnly.Enabled = Not Cfg.DeclMode
-		GrCycles.Enabled = Not Cfg.DeclMode
-		GrVACC.Enabled = Not Cfg.DeclMode
-		PnStartStop.Enabled = Not Cfg.DeclMode
-		RdOff.Enabled = Not Cfg.DeclMode
-		GrLAC.Enabled = Not Cfg.DeclMode
-		ButAuxAdd.Enabled = Not Cfg.DeclMode
-		ButAuxRem.Enabled = Not Cfg.DeclMode
-		PnEcoRoll.Enabled = Not Cfg.DeclMode
-
-		Changed = False
-		'AA-TB
-		PopulateAdvancedAuxiliaries()
-
-		'Attempt to select that found in Config
-	End Sub
-
-	'Close - Check for unsaved changes
-	Private Sub F02_GEN_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
-		If e.CloseReason <> CloseReason.ApplicationExitCall And e.CloseReason <> CloseReason.WindowsShutDown Then
-			e.Cancel = ChangeCheckCancel()
-		End If
-	End Sub
-
-	'Set generic values for Declaration mode
-	Private Sub DeclInit()
-
-		If Not Cfg.DeclMode Then Exit Sub
-
-		LvCycles.Items.Clear()
-		CbEngOnly.Checked = False
-		TbDesMaxFile.Text = ""
-		If Not RdEcoRoll.Checked Then RdOverspeed.Checked = True
-		CbLookAhead.Checked = True
-
-		TbSSspeed.Text = DeclarationData.Driver.StartStop.MaxSpeed.AsKmph()	'cDeclaration.SSspeed
-		TbSStime.Text = DeclarationData.Driver.StartStop.MinTime.Value()   'cDeclaration.SStime
-		TbSSdelay.Text = DeclarationData.Driver.StartStop.Delay.Value()	 ' cDeclaration.SSdelay
-
-		tbLacPreviewFactor.Text = DeclarationData.Driver.LookAhead.LookAheadDistanceFactor
-		tbLacDfTargetSpeedFile.Text = ""
-		tbLacDfVelocityDropFile.Text = ""
-
-		TbOverspeed.Text = DeclarationData.Driver.OverSpeedEcoRoll.OverSpeed.AsKmph()  'cDeclaration.Overspeed
-		TbUnderSpeed.Text = DeclarationData.Driver.OverSpeedEcoRoll.UnderSpeed.AsKmph()	' cDeclaration.Underspeed
-		TbVmin.Text = DeclarationData.Driver.OverSpeedEcoRoll.MinSpeed.AsKmph()	 'cDeclaration.ECvmin
-
-		If _
-			LvAux.Items.Count <> 5 OrElse
-			(LvAux.Items(0).Text <> sKey.AUX.Fan OrElse LvAux.Items(1).Text <> sKey.AUX.SteerPump OrElse
-			LvAux.Items(2).Text <> sKey.AUX.HVAC OrElse LvAux.Items(3).Text <> sKey.AUX.ElecSys OrElse
-			LvAux.Items(4).Text <> sKey.AUX.PneumSys) Then
-			LvAux.Items.Clear()
-
-
-			LvAux.Items.Add(GetTechListForAux(sKey.AUX.Fan, "Fan", DeclarationData.Fan))
-
-			LvAux.Items.Add(GetTechListForAux(sKey.AUX.SteerPump, "Steering pump", DeclarationData.SteeringPump))
-
-			LvAux.Items.Add(GetTechListForAux(sKey.AUX.HVAC, "HVAC", DeclarationData.HeatingVentilationAirConditioning))
-
-			LvAux.Items.Add(GetTechListForAux(sKey.AUX.ElecSys, "Electric System", DeclarationData.ElectricSystem))
-
-			LvAux.Items.Add(GetTechListForAux(sKey.AUX.PneumSys, "Pneymatic System", DeclarationData.PneumaticSystem))
-
-		End If
-	End Sub
-
-	Protected Function GetTechListForAux(key As String, nameStr As String, aux As IDeclarationAuxiliaryTable) As ListViewItem
-		Dim LV0 As ListViewItem
-
-		LV0 = New ListViewItem(key)
-		LV0.SubItems.Add(nameStr)
-		Dim auxtech As String() = aux.GetTechnologies()
-		If auxtech.Count > 1 Then
-			LV0.SubItems.Add("")
-		Else
-			LV0.SubItems.Add(auxtech(0))
-		End If
-		Return LV0
-	End Function
-
-
-	'Show/Hide "Driver Assist" Tab
-	Private Sub SetDrivertab(onOff As Boolean)
-		If onOff Then
-			If Not pgDriverON Then
-				pgDriverON = True
-				TabControl1.TabPages.Insert(1, pgDriver)
-			End If
-		Else
-			If pgDriverON Then
-				pgDriverON = False
-				TabControl1.Controls.Remove(pgDriver)
-			End If
-		End If
-	End Sub
-
-
-#Region "Browse Buttons"
-
-	Private Sub ButtonVEH_Click(sender As Object, e As EventArgs) Handles ButtonVEH.Click
-		If fbVEH.OpenDialog(fFileRepl(TbVEH.Text, fPATH(VECTOfile))) Then
-			TbVEH.Text = fFileWoDir(fbVEH.Files(0), fPATH(VECTOfile))
-		End If
-	End Sub
-
-	Private Sub ButtonMAP_Click(sender As Object, e As EventArgs) Handles ButtonMAP.Click
-		If fbENG.OpenDialog(fFileRepl(TbENG.Text, fPATH(VECTOfile))) Then
-			TbENG.Text = fFileWoDir(fbENG.Files(0), fPATH(VECTOfile))
-		End If
-	End Sub
-
-	Private Sub ButtonGBX_Click(sender As Object, e As EventArgs) Handles ButtonGBX.Click
-		If fbGBX.OpenDialog(fFileRepl(TbGBX.Text, fPATH(VECTOfile))) Then
-			TbGBX.Text = fFileWoDir(fbGBX.Files(0), fPATH(VECTOfile))
-		End If
-	End Sub
-
-	Private Sub BtDesMaxBr_Click_1(sender As Object, e As EventArgs) Handles BtDesMaxBr.Click
-		If fbACC.OpenDialog(fFileRepl(TbDesMaxFile.Text, fPATH(VECTOfile))) Then
-			TbDesMaxFile.Text = fFileWoDir(fbACC.Files(0), fPATH(VECTOfile))
-		End If
-	End Sub
-
-	Private Sub BtAccOpen_Click(sender As Object, e As EventArgs) Handles BtAccOpen.Click
-		OpenFiles(fFileRepl(TbDesMaxFile.Text, fPATH(VECTOfile)))
-	End Sub
-
-#End Region
-
-#Region "Open Buttons"
-
-	'Open Vehicle Editor
-	Private Sub ButOpenVEH_Click(sender As Object, e As EventArgs) Handles ButOpenVEH.Click
-		Dim f As String
-		f = fFileRepl(TbVEH.Text, fPATH(VECTOfile))
-
-		'Thus Veh-file is returned
-		F_VEH.JobDir = fPATH(VECTOfile)
-		F_VEH.AutoSendTo = True
-
-		If Not Trim(f) = "" Then
-			If Not File.Exists(f) Then
-				MsgBox("File not found!")
-				Exit Sub
-			End If
-		End If
-
-		If Not F_VEH.Visible Then
-			F_VEH.Show()
-		Else
-			If F_VEH.WindowState = FormWindowState.Minimized Then F_VEH.WindowState = FormWindowState.Normal
-			F_VEH.BringToFront()
-		End If
-
-		If Not Trim(f) = "" Then F_VEH.OpenVehicle(f)
-	End Sub
-
-	'Open Engine Editor
-	Private Sub ButOpenENG_Click(sender As Object, e As EventArgs) Handles ButOpenENG.Click
-		Dim f As String
-		f = fFileRepl(TbENG.Text, fPATH(VECTOfile))
-
-		'Thus Veh-file is returned
-		F_ENG.JobDir = fPATH(VECTOfile)
-		F_ENG.AutoSendTo = True
-
-		If Not Trim(f) = "" Then
-			If Not File.Exists(f) Then
-				MsgBox("File not found!")
-				Exit Sub
-			End If
-		End If
-
-		If Not F_ENG.Visible Then
-			F_ENG.Show()
-		Else
-			If F_ENG.WindowState = FormWindowState.Minimized Then F_ENG.WindowState = FormWindowState.Normal
-			F_ENG.BringToFront()
-		End If
-
-		If Not Trim(f) = "" Then F_ENG.openENG(f)
-	End Sub
-
-	'Open Gearbox Editor
-	Private Sub ButOpenGBX_Click(sender As Object, e As EventArgs) Handles ButOpenGBX.Click
-		Dim f As String
-		f = fFileRepl(TbGBX.Text, fPATH(VECTOfile))
-
-		'Thus Veh-file is returned
-		F_GBX.JobDir = fPATH(VECTOfile)
-		F_GBX.AutoSendTo = True
-
-		If Not Trim(f) = "" Then
-			If Not File.Exists(f) Then
-				MsgBox("File not found!")
-				Exit Sub
-			End If
-		End If
-
-		If Not F_GBX.Visible Then
-			F_GBX.Show()
-		Else
-			If F_GBX.WindowState = FormWindowState.Minimized Then F_GBX.WindowState = FormWindowState.Normal
-			F_GBX.BringToFront()
-		End If
-
-		If Not Trim(f) = "" Then F_GBX.openGBX(f)
-	End Sub
-
-#End Region
-
-#Region "Toolbar"
-
-	'New
-	Private Sub ToolStripBtNew_Click(sender As Object, e As EventArgs) Handles ToolStripBtNew.Click
-		VECTOnew()
-	End Sub
-
-	'Open
-	Private Sub ToolStripBtOpen_Click(sender As Object, e As EventArgs) Handles ToolStripBtOpen.Click
-		If fbVECTO.OpenDialog(VECTOfile, False, "vecto") Then VECTOload2Form(fbVECTO.Files(0))
-	End Sub
-
-	'Save
-	Private Sub ToolStripBtSave_Click(sender As Object, e As EventArgs) Handles ToolStripBtSave.Click
-		Save()
-	End Sub
-
-	'Save As
-	Private Sub ToolStripBtSaveAs_Click(sender As Object, e As EventArgs) Handles ToolStripBtSaveAs.Click
-		If fbVECTO.SaveDialog(VECTOfile) Then Call VECTOsave(fbVECTO.Files(0))
-	End Sub
-
-	'Send to Job file list in main form
-	Private Sub ToolStripBtSendTo_Click(sender As Object, e As EventArgs) Handles ToolStripBtSendTo.Click
-		If ChangeCheckCancel() Then Exit Sub
-		If VECTOfile = "" Then
-			MsgBox("File not found!" & ChrW(10) & ChrW(10) & "Save file and try again.")
-		Else
-			F_MAINForm.AddToJobListView(VECTOfile)
-		End If
-	End Sub
-
-	'Help
-	Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
-		If File.Exists(MyAppPath & "User Manual\help.html") Then
-			Dim BrowserRegistryString As String =
-					My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString
-			Dim DefaultBrowserPath As String =
-					Regex.Match(BrowserRegistryString, "(\"".*?\"")").Captures(0).ToString
-			Process.Start(DefaultBrowserPath,
-						String.Format("""{0}{1}""", MyAppPath, "User Manual\help.html#job-editor"))
-		Else
-			MsgBox("User Manual not found!", MsgBoxStyle.Critical)
-		End If
-	End Sub
-
-
-#End Region
-
-	'Save ("Save" or "Save As" when new file)
-	Private Function Save() As Boolean
-		If VECTOfile = "" Then
-			If fbVECTO.SaveDialog("") Then
-				VECTOfile = fbVECTO.Files(0)
-			Else
-				Return False
-			End If
-		End If
-		Return VECTOsave(VECTOfile)
-	End Function
-
-	'Open file
-	Public Sub VECTOload2Form(file As String)
-		If ChangeCheckCancel() Then Exit Sub
-
-		VECTOnew()
-
-		'Read GEN
-		Dim VEC0 = New cVECTO
-		VEC0.FilePath = file
-		Try
-			If Not VEC0.ReadFile() Then
-				MsgBox("Failed to load " & fFILE(file, True) & "!")
-				Exit Sub
-			End If
-		Catch ex As Exception
-			MsgBox("Failed to load " & fFILE(file, True) & "!")
-			Exit Sub
-		End Try
-
-		If Cfg.DeclMode <> VEC0.SavedInDeclMode Then
-			Select Case WrongMode()
-				Case 1
-					Close()
-					F_MAINForm.RbDecl.Checked = Not F_MAINForm.RbDecl.Checked
-					F_MAINForm.OpenVectoFile(file)
-				Case -1
-					Exit Sub
-				Case Else '0
-					'Continue...
-			End Select
-		End If
-
-
-		'Update Form
-
-		'Files -----------------------------
-		TbVEH.Text = VEC0.PathVeh(True)
-		TbENG.Text = VEC0.PathEng(True)
-		TbGBX.Text = VEC0.PathGbx(True)
-
-		'Start/Stop
-		ChBStartStop.Checked = VEC0.StartStop
-		TbSSspeed.Text = VEC0.StStV.ToString()
-		TbSStime.Text = VEC0.StStT.ToString()
-		TbSSdelay.Text = VEC0.StStDelay.ToString()
-
-		'VACC
-		TbDesMaxFile.Text = VEC0.DesMaxFile(True)
-
-
-		'AA-TB
-		'Try and Select any previously selected Auxiliary Type
-		For Each item As cAdvancedAuxiliary In cboAdvancedAuxiliaries.Items
-			If item.AssemblyName = VEC0.AuxiliaryAssembly AndAlso VEC0.AuxiliaryVersion = item.AuxiliaryVersion Then
-				cboAdvancedAuxiliaries.SelectedItem = item
-				Exit For
-			End If
-		Next
-		'AA-TB
-		'Assign any previously saved Axiliary FilePath
-		txtAdvancedAuxiliaryFile.Text = VEC0.AdvancedAuxiliaryFilePath
-
-
-		LvAux.Items.Clear()
-		For Each AuxEntryKV In VEC0.AuxPaths
-			Dim lv0 = New ListViewItem
-			lv0.SubItems(0).Text = AuxEntryKV.Key
-			lv0.SubItems.Add(AuxEntryKV.Value.Type)
-			If Cfg.DeclMode Then
-				lv0.SubItems.Add(AuxEntryKV.Value.TechStr)
-			Else
-				lv0.SubItems.Add(AuxEntryKV.Value.Path.OriginalPath)
-			End If
-			LvAux.Items.Add(lv0)
-		Next
-
-		For Each sb In VEC0.CycleFiles
-			Dim lv0 = New ListViewItem
-			lv0.Text = sb.OriginalPath
-			LvCycles.Items.Add(lv0)
-		Next
-
-		CbEngOnly.Checked = VEC0.EngOnly
-
-		If VEC0.EcoRollOn Then
-			RdEcoRoll.Checked = True
-		ElseIf VEC0.OverSpeedOn Then
-			RdOverspeed.Checked = True
-		Else
-			RdOff.Checked = True
-		End If
-		TbOverspeed.Text = CStr(VEC0.OverSpeed)
-		TbUnderSpeed.Text = CStr(VEC0.UnderSpeed)
-		TbVmin.Text = CStr(VEC0.VMin)
-		CbLookAhead.Checked = VEC0.LookAheadOn
-		'TbAlookahead.Text = CStr(VEC0.ALookahead)
-		'TbVminLA.Text = CStr(VEC0.VMinLa)
-		tbLacPreviewFactor.Text = CStr(VEC0.LacPreviewFactor)
-		tbDfCoastingOffset.Text = CStr(VEC0.LacDfOffset)
-		tbDfCoastingScale.Text = CStr(VEC0.LacDfScale)
-
-		tbLacDfTargetSpeedFile.Text = VEC0.LacDfTargetSpeedFile
-		tbLacDfVelocityDropFile.Text = VEC0.LacDfVelocityDropFile
-
-		'-------------------------------------------------------------
-
-		DeclInit()
-
-
-		F_ENG.AutoSendTo = False
-		F_GBX.AutoSendTo = False
-		F_VEH.AutoSendTo = False
-
-
-		VECTOfile = file
-
-		Dim x As Short = Len(file)
-		While Mid(file, x, 1) <> "\" And x > 0
-			x = x - 1
-		End While
-		Text = Mid(file, x + 1, Len(file) - x)
-		Changed = False
-		ToolStripStatusLabelGEN.Text = ""	'file & " opened."
-
-		UpdatePic()
-
-		'-------------------------------------------------------------
-	End Sub
-
-	'Save file
-	Private Function VECTOsave(file As String) As Boolean
-		Dim message As String = String.Empty
-
-		'AA-TB
-		'Validation of Auxiliary Types/Advanced Auxiliaries
-		'if not classic, check the file is valid, if not fail the operation and alert user.
-		If cboAdvancedAuxiliaries.SelectedIndex > 0 Then
-
-			'resolve absolute path for auxiliary file.
-			Dim absoluteAAUxFile = ResolveAAUXFilePath(fPATH(VECTOfile), txtAdvancedAuxiliaryFile.Text)
-
-			Dim aaAssemblyName = DirectCast(cboAdvancedAuxiliaries.SelectedItem, cAdvancedAuxiliary).AssemblyName
-			Dim aaAssemblyVersion = DirectCast(cboAdvancedAuxiliaries.SelectedItem, cAdvancedAuxiliary).AuxiliaryVersion
-
-
-			If Not ValidateAAUXFile(absoluteAAUxFile, aaAssemblyName, aaAssemblyVersion, message) Then
-				MessageBox.Show(
-					String.Format("You have selected an advanced auxiliary *Auxiliary Type*, but the file specified is invalid :{0}",
-								message))
-				Return False
-			End If
-
-		End If
-
-
-		Dim vec0 = New cVECTO
-		vec0.FilePath = file
-
-		'Files ------------------------------------------------- -----------------
-
-		vec0.PathVeh = TbVEH.Text
-		vec0.PathEng = TbENG.Text
-
-		For Each lv0 As ListViewItem In LvCycles.Items
-			Dim sb = New cSubPath
-			sb.Init(fPATH(file), lv0.Text)
-			vec0.CycleFiles.Add(sb)
-		Next
-
-		vec0.PathGbx = TbGBX.Text
-
-
-		'Start/Stop
-		vec0.StartStop = ChBStartStop.Checked
-		vec0.StStV = CSng(fTextboxToNumString(TbSSspeed.Text))
-		vec0.StStT = CSng(fTextboxToNumString(TbSStime.Text))
-		vec0.StStDelay = CInt(fTextboxToNumString(TbSSdelay.Text))
-
-		'a_DesMax
-		vec0.DesMaxFile = TbDesMaxFile.Text
-
-		'AA-TB
-		vec0.AuxiliaryAssembly = DirectCast(cboAdvancedAuxiliaries.SelectedItem, cAdvancedAuxiliary).AssemblyName
-		vec0.AuxiliaryVersion = DirectCast(cboAdvancedAuxiliaries.SelectedItem, cAdvancedAuxiliary).AuxiliaryVersion
-		vec0.AdvancedAuxiliaryFilePath = txtAdvancedAuxiliaryFile.Text
-
-		For Each lv0 As ListViewItem In LvAux.Items
-			Dim auxEntry = New cVECTO.AuxEntry
-
-			If Cfg.DeclMode Then
-				auxEntry.TechStr = lv0.SubItems(2).Text
-			Else
-				auxEntry.Path.Init(fPATH(file), lv0.SubItems(2).Text)
-			End If
-
-			auxEntry.Type = lv0.SubItems(1).Text
-			vec0.AuxPaths.Add(lv0.SubItems(0).Text, auxEntry)
-		Next
-
-		vec0.EngOnly = CbEngOnly.Checked
-
-		vec0.EcoRollOn = RdEcoRoll.Checked
-		vec0.OverSpeedOn = RdOverspeed.Checked
-		vec0.OverSpeed = CSng(fTextboxToNumString(TbOverspeed.Text))
-		vec0.UnderSpeed = CSng(fTextboxToNumString(TbUnderSpeed.Text))
-		vec0.VMin = CSng(fTextboxToNumString(TbVmin.Text))
-		vec0.LookAheadOn = CbLookAhead.Checked
-		'vec0.ALookahead = CSng(fTextboxToNumString(TbAlookahead.Text))
-		'vec0.VMinLa = CSng(fTextboxToNumString(TbVminLA.Text))
-
-		vec0.LacPreviewFactor = CSng(fTextboxToNumString(tbLacPreviewFactor.Text))
-		vec0.LacDfOffset = CSng(fTextboxToNumString(tbDfCoastingOffset.Text))
-		vec0.LacDfScale = CSng(fTextboxToNumString(tbDfCoastingScale.Text))
-		vec0.LacDfTargetSpeedFile = tbLacDfTargetSpeedFile.Text
-		vec0.LacDfVelocityDropFile = tbLacDfVelocityDropFile.Text
-		'------------------------------------------------------------
-
-		'SAVE
-		If Not vec0.SaveFile Then
-			MsgBox("Cannot safe to " & file, MsgBoxStyle.Critical)
-			Return False
-		End If
-
-		VECTOfile = file
-
-		file = fFILE(VECTOfile, True)
-
-		Text = file
-		ToolStripStatusLabelGEN.Text = ""
-
-		F_MAINForm.AddToJobListView(VECTOfile)
-
-		Changed = False
-
-		Return True
-	End Function
-
-	'New file
-	Public Sub VECTOnew()
-
-		If ChangeCheckCancel() Then Exit Sub
-
-		n_idle = -1
-		FLDfile = ""
-
-		'Files
-		TbVEH.Text = ""
-		TbENG.Text = ""
-		LvCycles.Items.Clear()
-		TbGBX.Text = ""
-		TbDesMaxFile.Text = ""
-
-		'Start/Stop
-		TbSSspeed.Text = "5"
-		TbSStime.Text = "5"
-		ChBStartStop.Checked = False
-
-		LvAux.Items.Clear()
-
-		CbEngOnly.Checked = False
-
-		RdOff.Checked = True
-		CbLookAhead.Checked = True
-		'TbAlookahead.Text = "-0.5"
-		TbOverspeed.Text = ""
-		TbUnderSpeed.Text = ""
-		TbVmin.Text = ""
-		'TbVminLA.Text = "50"
-		tbLacPreviewFactor.Text = "10"
-		tbDfCoastingOffset.Text = "2.5"
-		tbDfCoastingScale.Text = "1.5"
-		tbLacDfTargetSpeedFile.Text = ""
-		tbLacDfVelocityDropFile.Text = ""
-
-		'---------------------------------------------------
-
-		DeclInit()
-
-		F_ENG.AutoSendTo = False
-
-		VECTOfile = ""
-		Text = "Job Editor"
-		ToolStripStatusLabelGEN.Text = ""
-		Changed = False
-		UpdatePic()
-	End Sub
-
-
-#Region "Track changes"
-
-#Region "'Change' Events"
-
-	Private Sub TextBoxVEH_TextChanged(sender As Object, e As EventArgs) _
-		Handles TbVEH.TextChanged
-		UpdatePic()
-		Change()
-	End Sub
-
-	Private Sub TextBoxMAP_TextChanged(sender As Object, e As EventArgs) _
-		Handles TbENG.TextChanged
-		UpdatePic()
-		Change()
-	End Sub
-
-	Private Sub TextBoxFLD_TextChanged(sender As Object, e As EventArgs) _
-		Handles TbGBX.TextChanged
-		UpdatePic()
-		Change()
-	End Sub
-
-	Private Sub TbDesMaxFile_TextChanged_1(sender As Object, e As EventArgs) Handles TbDesMaxFile.TextChanged
-		Change()
-	End Sub
-
-
-	Private Sub TBSSspeed_TextChanged(sender As Object, e As EventArgs) Handles TbSSspeed.TextChanged
-		Change()
-	End Sub
-
-	Private Sub TBSStime_TextChanged(sender As Object, e As EventArgs) _
-		Handles TbSStime.TextChanged, TbSSdelay.TextChanged
-		Change()
-	End Sub
-
-	Private Sub TbOverspeed_TextChanged(sender As Object, e As EventArgs) Handles TbOverspeed.TextChanged
-		Change()
-	End Sub
-
-	Private Sub TbUnderSpeed_TextChanged(sender As Object, e As EventArgs) Handles TbUnderSpeed.TextChanged
-		Change()
-	End Sub
-
-	Private Sub TbVmin_TextChanged(sender As Object, e As EventArgs) _
-		Handles TbVmin.TextChanged
-		Change()
-	End Sub
-
-	Private Sub LvCycles_AfterLabelEdit(sender As Object, e As LabelEditEventArgs) _
-		Handles LvCycles.AfterLabelEdit
-		Change()
-	End Sub
-
-
-#End Region
-
-	Private Sub Change()
-		If Not Changed Then
-			ToolStripStatusLabelGEN.Text = "Unsaved changes in current file"
-			Changed = True
-		End If
-	End Sub
-
-	' "Save changes? "... Returns True if User aborts
-	Private Function ChangeCheckCancel() As Boolean
-
-		If Changed Then
-
-			Select Case MsgBox("Save changes ?", MsgBoxStyle.YesNoCancel)
-				Case MsgBoxResult.Yes
-					Return Not Save()
-				Case MsgBoxResult.Cancel
-					Return True
-				Case Else 'MsgBoxResult.No
-					Changed = False
-					Return False
-			End Select
-
-		Else
-
-			Return False
-
-		End If
-	End Function
-
-#End Region
-
-#Region "Aux Listview"
-
-	Private Sub ButAuxAdd_Click(sender As Object, e As EventArgs) Handles ButAuxAdd.Click
-		Dim ID As String
-
-		AuxDlog.VehPath = fPATH(VECTOfile)
-		AuxDlog.TbPath.Text = ""
-		AuxDlog.CbType.SelectedIndex = -1
-		AuxDlog.CbType.Text = ""
-		AuxDlog.TbID.Text = "" '!!! Set Type before ID, because changing the type will overwrite the id !!!
-
-lbDlog:
-		If AuxDlog.ShowDialog = DialogResult.OK Then
-
-			ID = UCase(Trim(AuxDlog.TbID.Text))
-
-			Dim lv0 As ListViewItem
-			For Each lv0 In LvAux.Items
-				If lv0.SubItems(0).Text = ID Then
-					MsgBox("ID '" & ID & "' already defined!", MsgBoxStyle.Critical)
-					AuxDlog.TbID.SelectAll()
-					AuxDlog.TbID.Focus()
-					GoTo lbDlog
-				End If
-			Next
-
-			lv0 = New ListViewItem
-			lv0.SubItems(0).Text = UCase(Trim(AuxDlog.TbID.Text))
-			lv0.SubItems.Add(Trim(AuxDlog.CbType.Text))
-			lv0.SubItems.Add(Trim(AuxDlog.TbPath.Text))
-			LvAux.Items.Add(lv0)
-			Change()
-		End If
-	End Sub
-
-	Private Sub ButAuxRem_Click(sender As Object, e As EventArgs) Handles ButAuxRem.Click
-		RemoveAuxItem()
-	End Sub
-
-	Private Sub LvAux_DoubleClick(sender As Object, e As EventArgs) Handles LvAux.DoubleClick
-		EditAuxItem()
-	End Sub
-
-	Private Sub LvAux_KeyDown(sender As Object, e As KeyEventArgs) Handles LvAux.KeyDown
-		Select Case e.KeyCode
-			Case Keys.Delete, Keys.Back
-				If Not Cfg.DeclMode Then RemoveAuxItem()
-			Case Keys.Enter
-				EditAuxItem()
-		End Select
-	End Sub
-
-	Private Sub EditAuxItem()
-		If LvAux.SelectedItems.Count = 0 Then
-			Exit Sub
-		End If
-
-		Dim selItem = LvAux.SelectedItems(0)
-
-		AuxDlog.VehPath = fPATH(VECTOfile)
-		AuxDlog.CbType.SelectedIndex = -1
-		AuxDlog.CbType.Text = selItem.SubItems(1).Text
-		AuxDlog.TbID.Text = selItem.SubItems(0).Text	'After Type-set!
-
-		If Cfg.DeclMode Then
-			AuxDlog.CbTech.Text = selItem.SubItems(2).Text
-			AuxDlog.TbPath.Text = ""
-		Else
-			AuxDlog.CbTech.SelectedIndex = -1
-			AuxDlog.TbPath.Text = selItem.SubItems(2).Text
-		End If
-
-		If AuxDlog.ShowDialog = DialogResult.OK Then
-			selItem.SubItems(0).Text = UCase(Trim(AuxDlog.TbID.Text))
-			selItem.SubItems(1).Text = Trim(AuxDlog.CbType.Text)
-
-			If Cfg.DeclMode Then
-				selItem.SubItems(2).Text = Trim(AuxDlog.CbTech.Text)
-			Else
-				selItem.SubItems(2).Text = Trim(AuxDlog.TbPath.Text)
-			End If
-
-			Change()
-		End If
-	End Sub
-
-	Private Sub RemoveAuxItem()
-		Dim i As Integer
-
-		If LvAux.SelectedItems.Count = 0 Then
-			If LvAux.Items.Count = 0 Then
-				Exit Sub
-			Else
-				LvAux.Items(LvAux.Items.Count - 1).Selected = True
-			End If
-		End If
-
-		i = LvAux.SelectedItems(0).Index
-
-		LvAux.SelectedItems(0).Remove()
-
-		If LvAux.Items.Count > 0 Then
-			If i < LvAux.Items.Count Then
-				LvAux.Items(i).Selected = True
-			Else
-				LvAux.Items(LvAux.Items.Count - 1).Selected = True
-			End If
-			LvAux.Focus()
-		End If
-
-		Change()
-	End Sub
-
-#End Region
-
-	'OK (Save & Close)
-	Private Sub ButSave_Click(sender As Object, e As EventArgs) Handles ButOK.Click
-		If Not Save() Then Exit Sub
-		Close()
-	End Sub
-
-	'Cancel
-	Private Sub ButCancel_Click(sender As Object, e As EventArgs) Handles ButCancel.Click
-		Close()
-	End Sub
-
-#Region "Cycle list"
-
-	Private Sub LvCycles_DoubleClick(sender As Object, e As EventArgs) Handles LvCycles.DoubleClick
-		If LvCycles.SelectedItems.Count > 0 Then _
-			OpenFiles(fFileRepl(LvCycles.SelectedItems(0).SubItems(0).Text, fPATH(VECTOfile)))
-	End Sub
-
-	Private Sub LvCycles_KeyDown(sender As Object, e As KeyEventArgs) Handles LvCycles.KeyDown
-		Select Case e.KeyCode
-			Case Keys.Delete, Keys.Back
-				RemoveCycle()
-			Case Keys.Enter
-				If LvCycles.SelectedItems.Count > 0 Then LvCycles.SelectedItems(0).BeginEdit()
-		End Select
-	End Sub
-
-	Private Sub BtDRIadd_Click(sender As Object, e As EventArgs) Handles BtDRIadd.Click
-		Dim genDir As String = fPATH(VECTOfile)
-
-		If fbDRI.OpenDialog("", True) Then
-			For Each s In fbDRI.Files
-				LvCycles.Items.Add(fFileWoDir(s, genDir))
-			Next
-			Change()
-		End If
-	End Sub
-
-	Private Sub BtDRIrem_Click(sender As Object, e As EventArgs) Handles BtDRIrem.Click
-		RemoveCycle()
-	End Sub
-
-	Private Sub RemoveCycle()
-		Dim i As Integer
-
-		If LvCycles.SelectedItems.Count = 0 Then
-			If LvCycles.Items.Count = 0 Then
-				Exit Sub
-			Else
-				LvCycles.Items(LvCycles.Items.Count - 1).Selected = True
-			End If
-		End If
-
-		i = LvCycles.SelectedItems(0).Index
-
-		LvCycles.SelectedItems(0).Remove()
-
-		If LvCycles.Items.Count > 0 Then
-			If i < LvCycles.Items.Count Then
-				LvCycles.Items(i).Selected = True
-			Else
-				LvCycles.Items(LvCycles.Items.Count - 1).Selected = True
-			End If
-
-			LvCycles.Focus()
-		End If
-
-		Change()
-	End Sub
-
-#End Region
-
-#Region "Enable/Disable GUI controls"
-
-	'Engine only mode changed
-	Private Sub CbEngOnly_CheckedChanged(sender As Object, e As EventArgs) Handles CbEngOnly.CheckedChanged
-		CheckEngOnly()
-		Change()
-	End Sub
-
-	Private Sub CheckEngOnly()
-		Dim OnOff As Boolean
-
-		OnOff = Not CbEngOnly.Checked
-
-		SetDrivertab(OnOff)
-
-		ButOpenVEH.Enabled = OnOff
-		TbVEH.Enabled = OnOff
-		ButtonVEH.Enabled = OnOff
-		ButOpenGBX.Enabled = OnOff
-		TbGBX.Enabled = OnOff
-		ButtonGBX.Enabled = OnOff
-		GrAux.Enabled = OnOff
-	End Sub
-
-	'Start/Stop changed 
-	Private Sub ChBStartStop_CheckedChanged_1(sender As Object, e As EventArgs) _
-		Handles ChBStartStop.CheckedChanged
-		Change()
-		If Not Cfg.DeclMode Then PnStartStop.Enabled = ChBStartStop.Checked
-	End Sub
-
-	'LAC changed
-	Private Sub CbLookAhead_CheckedChanged(sender As Object, e As EventArgs) _
-		Handles CbLookAhead.CheckedChanged
-		Change()
-	End Sub
-
-	'EcoRoll / Overspeed changed
-	Private Sub RdOff_CheckedChanged(sender As Object, e As EventArgs) _
-		Handles RdOff.CheckedChanged, RdOverspeed.CheckedChanged, RdEcoRoll.CheckedChanged
-		Dim EcoR As Boolean
-		Dim Ovr As Boolean
-
-		Change()
-
-		EcoR = RdEcoRoll.Checked
-		Ovr = RdOverspeed.Checked
-
-		TbOverspeed.Enabled = Ovr Or EcoR
-		Label13.Enabled = Ovr Or EcoR
-		Label14.Enabled = Ovr Or EcoR
-
-		TbUnderSpeed.Enabled = EcoR
-		Label22.Enabled = EcoR
-		Label20.Enabled = EcoR
-
-		TbVmin.Enabled = Ovr Or EcoR
-		Label23.Enabled = Ovr Or EcoR
-		Label21.Enabled = Ovr Or EcoR
-	End Sub
-
-#End Region
-
-	Public Sub UpdatePic()
-		Dim VEH0 As New cVEH
-		Dim i As Integer
-		Dim pmax As Single
-
-		Dim f As cFile_V3
-		Dim lM As List(Of Single)
-		Dim lup As List(Of Single)
-		Dim ldown As List(Of Single)
-		Dim line As String()
-
-
-		Dim HDVclass As String
-		'Dim m0 As 
-
-		Dim s As Series
-		Dim a As ChartArea
-		Dim img As Image
-
-		Dim EngOK = False
-
-		TbHVCclass.Text = ""
-		TbVehCat.Text = ""
-		TbMass.Text = ""
-		TbAxleConf.Text = ""
-		TbEngTxt.Text = ""
-		TbGbxTxt.Text = ""
-		PicVehicle.Image = Nothing
-		PicBox.Image = Nothing
-
-
-		VEH0.FilePath = fFileRepl(TbVEH.Text, fPATH(VECTOfile))
-		If VEH0.ReadFile(False) Then
-			Dim maxMass = (VEH0.MassMax * 1000).SI(Of Kilogram)()		   'CSng(fTextboxToNumString(TbMassMass.Text))
-
-			Dim s0 As Segment = Nothing
-			Try
-				s0 = DeclarationData.Segments.Lookup(VEH0.VehCat, VEH0.AxleConf, maxMass, 0.SI(Of Kilogram), True)
-			Catch
-			End Try
-			If Not s0 Is Nothing Then
-				HDVclass = s0.VehicleClass.GetClassNumber()
-
-				If Cfg.DeclMode Then
-					LvCycles.Items.Clear()
-					For Each m0 In s0.Missions
-						LvCycles.Items.Add(m0.MissionType.ToString())
-					Next
-				End If
-
-			Else
-				HDVclass = "-"
-			End If
-
-			PicVehicle.Image = ConvPicPath(HDVclass, False)	'Image.FromFile(cDeclaration.ConvPicPath(HDVclass, False))
-
-			TbHVCclass.Text = "HDV Class " & HDVclass
-			TbVehCat.Text = VEH0.VehCat.GetCategoryName()	'ConvVehCat(VEH0.VehCat, True)
-			TbMass.Text = VEH0.MassMax & " t"
-			TbAxleConf.Text = VEH0.AxleConf.GetName() 'ConvAxleConf(VEH0.AxleConf)
-
-		End If
-
-
-		Dim OkCount = 0
-
-		Dim ENG0 = New cENG
-		ENG0.FilePath = fFileRepl(TbENG.Text, fPATH(VECTOfile))
-
-		'Create plot
-		Dim MyChart = New Chart
-		MyChart.Width = PicBox.Width
-		MyChart.Height = PicBox.Height
-
-		a = New ChartArea
-
-		Dim FLD0 = New cFLD
-
-		If ENG0.ReadFile(False) Then
-
-			n_idle = ENG0.Nidle
-			FLDfile = ENG0.PathFLD
-
-			EngOK = True
-			FLD0.FilePath = ENG0.PathFLD
-
-			If FLD0.ReadFile(False, False) Then
-
-				s = New Series
-				s.Points.DataBindXY(FLD0.LnU, FLD0.LTq)
-				s.ChartType = SeriesChartType.FastLine
-				s.BorderWidth = 2
-				s.Color = Color.DarkBlue
-				s.Name = "Full load"
-				MyChart.Series.Add(s)
-
-				s = New Series
-				s.Points.DataBindXY(FLD0.LnU, FLD0.LTqDrag)
-				s.ChartType = SeriesChartType.FastLine
-				s.BorderWidth = 2
-				s.Color = Color.Blue
-				s.Name = "Motoring"
-				MyChart.Series.Add(s)
-
-				OkCount += 1
-
-				pmax = FLD0.Pfull(FLD0.fnUrated)
-
-			End If
-
-			TbEngTxt.Text = (ENG0.Displ / 1000).ToString("0.0") & " l " & pmax.ToString("#") & " kW  " & ENG0.ModelName
-
-
-			Dim MAP0 = New cMAP
-			MAP0.FilePath = ENG0.PathMAP
-
-			If MAP0.ReadFile(False) Then
-
-				s = New Series
-				s.Points.DataBindXY(MAP0.nU, MAP0.Tq)
-				s.ChartType = SeriesChartType.Point
-				s.MarkerSize = 3
-				s.Color = Color.Red
-				s.Name = "Map"
-				MyChart.Series.Add(s)
-
-				OkCount += 1
-
-			End If
-
-		End If
-
-		Dim GBX0 = New cGBX
-		GBX0.FilePath = fFileRepl(TbGBX.Text, fPATH(VECTOfile))
-
-		If GBX0.ReadFile(False) Then
-
-			TbGbxTxt.Text = GBX0.GearCount & "-Speed " & GBX0.gs_Type.ShortName() & "  " & GBX0.ModelName
-
-			If Cfg.DeclMode Then
-
-				If EngOK Then
-
-					For i = 1 To GBX0.GearCount
-
-						FLD0.FilePath = ENG0.PathFLD
-
-						If FLD0.ReadFile(True, False) Then
-
-							If FLD0.Init(ENG0.Nidle) Then
-
-								'Dim engine As CombustionEngineData = ConvertToEngineData(FLD0, F_VECTO.n_idle)
-								'Dim shiftLines As ShiftPolygon = DeclarationData.Gearbox.ComputeShiftPolygon(Gear - 1,
-								'																			engine.FullLoadCurve, gears,
-								'																			engine,
-								'																			Double.Parse(LvGears.Items(0).SubItems(F_GBX.GearboxTbl.Ratio).Text,
-								'																						CultureInfo.InvariantCulture),
-								'																			(.rdyn / 1000.0).SI(Of Meter))
-
-								's = New Series
-								's.Points.DataBindXY(shiftLines.Upshift.Select(Function(pt) pt.AngularSpeed.Value() / Constants.RPMToRad).ToList(),
-								'					shiftLines.Upshift.Select(Function(pt) pt.Torque.Value()).ToList())
-								's.ChartType = SeriesChartType.FastLine
-								's.BorderWidth = 2
-								's.Color = Color.DarkRed
-								's.Name = "Upshift curve (" & i & ")"
-								'MyChart.Series.Add(s)
-
-								's = New Series
-								's.Points.DataBindXY(
-								'	shiftLines.Downshift.Select(Function(pt) pt.AngularSpeed.Value() / Constants.RPMToRad).ToList(),
-								'	shiftLines.Downshift.Select(Function(pt) pt.Torque.Value()).ToList())
-								's.ChartType = SeriesChartType.FastLine
-								's.BorderWidth = 2
-								's.Color = Color.DarkRed
-								's.Name = "Downshift curve (" & i & ")"
-								'MyChart.Series.Add(s)
-							End If
-
-
-							OkCount += 1
-
-							pmax = FLD0.Pfull(FLD0.fnUrated)
-
-						End If
-
-					Next
-
-				End If
-
-			Else
-
-				f = New cFile_V3
-				For i = 1 To GBX0.GearCount
-
-					lM = New List(Of Single)
-					lup = New List(Of Single)
-					ldown = New List(Of Single)
-
-					If f.OpenRead(GBX0.gsFile(i)) Then
-
-						f.ReadLine()
-
-						Try
-
-							Do While Not f.EndOfFile
-								line = f.ReadLine
-								lM.Add(CSng(line(0)))
-								lup.Add(CSng(line(1)))
-								ldown.Add(CSng(line(2)))
-							Loop
-
-							s = New Series
-							s.Points.DataBindXY(lup, lM)
-							s.ChartType = SeriesChartType.FastLine
-							s.BorderWidth = 2
-							s.Color = Color.DarkRed
-							s.Name = "Upshift curve"
-							' MyChart.Series.Add(s) 'MQ 2016-06-20: do not plot shift lines in engine dialog
-
-							s = New Series
-							s.Points.DataBindXY(ldown, lM)
-							s.ChartType = SeriesChartType.FastLine
-							s.BorderWidth = 2
-							s.Color = Color.DarkRed
-							s.Name = "Downshift curve"
-							'MyChart.Series.Add(s) 'MQ 2016-06-20:do not plot shift lines in engine dialog
-
-							OkCount += 1
-
-							f.Close()
-
-						Catch ex As Exception
-							f.Close()
-						End Try
-
-					End If
-
-				Next
-
-			End If
-
-		End If
-
-		If OkCount > 0 Then
-
-			a.Name = "main"
-
-			a.AxisX.Title = "engine speed [1/min]"
-			a.AxisX.TitleFont = New Font("Helvetica", 10)
-			a.AxisX.LabelStyle.Font = New Font("Helvetica", 8)
-			a.AxisX.LabelAutoFitStyle = LabelAutoFitStyles.None
-			a.AxisX.MajorGrid.LineDashStyle = ChartDashStyle.Dot
-
-			a.AxisY.Title = "engine torque [Nm]"
-			a.AxisY.TitleFont = New Font("Helvetica", 10)
-			a.AxisY.LabelStyle.Font = New Font("Helvetica", 8)
-			a.AxisY.LabelAutoFitStyle = LabelAutoFitStyles.None
-			a.AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dot
-
-			a.AxisX.Minimum = 300
-			a.BorderDashStyle = ChartDashStyle.Solid
-			a.BorderWidth = 1
-
-			a.BackColor = Color.GhostWhite
-
-			MyChart.ChartAreas.Add(a)
-
-			MyChart.Update()
-
-			img = New Bitmap(MyChart.Width, MyChart.Height, PixelFormat.Format32bppArgb)
-			MyChart.DrawToBitmap(img, New Rectangle(0, 0, PicBox.Width, PicBox.Height))
-
-			PicBox.Image = img
-
-
-		End If
-	End Sub
-
-
-#Region "Open File Context Menu"
-
-	Private CmFiles As String()
-
-	Private Sub OpenFiles(ParamArray files() As String)
-		If files.Length = 0 Then Exit Sub
-
-		CmFiles = files
-		OpenWithToolStripMenuItem.Text = "Open with " & Cfg.OpenCmdName
-		CmOpenFile.Show(Windows.Forms.Cursor.Position)
-	End Sub
-
-	Private Sub OpenWithToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles OpenWithToolStripMenuItem.Click
-		If Not FileOpenAlt(CmFiles(0)) Then MsgBox("Failed to open file!")
-	End Sub
-
-	Private Sub ShowInFolderToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles ShowInFolderToolStripMenuItem.Click
-		If File.Exists(CmFiles(0)) Then
-			Try
-				Process.Start("explorer", "/select,""" & CmFiles(0) & "")
-			Catch ex As Exception
-				MsgBox("Failed to open file!")
-			End Try
-		Else
-			MsgBox("File not found!")
-		End If
-	End Sub
-
-#End Region
-
-
-	'AA-TB
-	Private Sub picAuxInfo_MouseEnter(sender As Object, e As EventArgs) Handles picAuxInfo.MouseEnter
-
-
-		If cboAdvancedAuxiliaries.SelectedIndex = -1 Then Exit Sub
-
-		'Get tooltip
-		Dim item As cAdvancedAuxiliary
-
-		item = DirectCast(cboAdvancedAuxiliaries.SelectedItem, cAdvancedAuxiliary)
-
-		If item.AuxiliaryVersion = "CLASSIC" Then
-
-			ToolTip1.ToolTipTitle = "Classic Vecto Auxiliaries"
-			ToolTip1.SetToolTip(picAuxInfo, "Uses original basic auxiliaries calculation")
-
-		Else
-
-			ToolTip1.ToolTipTitle = "Advanced Auxiliary Information"
-			ToolTip1.SetToolTip(picAuxInfo, item.AuxiliaryName & " : Version=" & item.AuxiliaryVersion)
-
-		End If
-	End Sub
-
-	'AA-TB
-	Private Sub btnBrowseAAUXFile_Click(sender As Object, e As EventArgs) Handles btnBrowseAAUXFile.Click
-
-		If String.IsNullOrEmpty(VECTOfile) Then
-			MessageBox.Show(
-				"Please complete and save a valid new .vecto file before adding/configuring advanced bus auxiliaries.")
-			Return
-		End If
-
-		Dim aauxFileValidated As Boolean = False
-		Dim fbAux As New cFileBrowser(True, False)
-		Dim message As String = String.Empty
-		Dim absoluteAuxPath As String
-		Dim assembly As cAdvancedAuxiliary
-
-		'If Classic is selected, then bail
-		If cboAdvancedAuxiliaries.SelectedIndex = 0 Then Return
-
-		'Get Absolute Path for AAUX FILE.
-		absoluteAuxPath = ResolveAAUXFilePath(fPATH(VECTOfile), txtAdvancedAuxiliaryFile.Text)
-
-		'Set Extensions
-		fbAux.Extensions = New String() {"AAUX"}
-
-		Try
-
-			assembly = DirectCast(cboAdvancedAuxiliaries.SelectedItem, cAdvancedAuxiliary)
-
-			Dim validAAUXFile As Boolean = ValidateAAUXFile(absoluteAuxPath, assembly.AssemblyName,
-															assembly.AuxiliaryVersion, message)
-			Dim fileExists As Boolean = File.Exists(absoluteAuxPath)
-
-			If fileExists AndAlso validAAUXFile Then
-				ConfigureAdvancedAuxiliaries(assembly.AssemblyName, assembly.AuxiliaryVersion,
-											txtAdvancedAuxiliaryFile.Text, VECTOfile)
-			Else
-
-				Dim needToFindOrCreateFile As Boolean = True
-
-				While needToFindOrCreateFile
-
-					'Find / Create  file and configure.
-					If fbAux.CustomDialog(absoluteAuxPath, False, False, tFbExtMode.ForceExt, False, String.Empty) Then
-						txtAdvancedAuxiliaryFile.Text = fFileWoDir(fbAux.Files(0), fPATH(VECTOfile))
-						assembly = DirectCast(cboAdvancedAuxiliaries.SelectedItem, cAdvancedAuxiliary)
-
-						If _
-							File.Exists(ResolveAAUXFilePath(fPATH(VECTOfile), txtAdvancedAuxiliaryFile.Text)) OrElse
-							MsgBox("Do you want to create a new .AAUX file?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
-							needToFindOrCreateFile = False
-							ConfigureAdvancedAuxiliaries(assembly.AssemblyName, assembly.AuxiliaryVersion,
-														txtAdvancedAuxiliaryFile.Text, VECTOfile)
-						End If
-					Else
-						needToFindOrCreateFile = False
-					End If
-
-				End While
-
-			End If
-
-		Catch ex As Exception
-			MessageBox.Show("There was an error configuring your Advanced Auxiliary File")
-		End Try
-	End Sub
-
-	'AA-TB
-	Private Sub cboAdvancedAuxiliaries_SelectedIndexChanged(sender As Object, e As EventArgs) _
-		Handles cboAdvancedAuxiliaries.SelectedIndexChanged
-
-		'Enable or otherwise the text box and browser button associated with Advanced Axuiliaries
-		If cboAdvancedAuxiliaries.SelectedIndex = 0 Then
-
-			btnBrowseAAUXFile.Enabled = False
-			txtAdvancedAuxiliaryFile.Enabled = False
-
-		Else
-
-			btnBrowseAAUXFile.Enabled = True
-			txtAdvancedAuxiliaryFile.Enabled = True
-
-		End If
-	End Sub
-
-
-	'AA-TB
-	Private Sub btnAAUXOpen_Click(sender As Object, e As EventArgs) Handles btnAAUXOpen.Click
-
-		OpenFiles(fFileRepl(txtAdvancedAuxiliaryFile.Text, fPATH(VECTOfile)))
-	End Sub
-
-	Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnDfTargetSpeed.Click
-		If fbDfTargetSpeed.OpenDialog(fFileRepl(tbLacDfTargetSpeedFile.Text, fPATH(VECTOfile))) Then _
-			tbLacDfTargetSpeedFile.Text = fFileWoDir(fbDfTargetSpeed.Files(0), fPATH(VECTOfile))
-	End Sub
-End Class
-
-
+' Copyright 2014 European Union.
+' Licensed under the EUPL (the 'Licence');
+'
+' * You may not use this work except in compliance with the Licence.
+' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
+' * Unless required by applicable law or agreed to in writing,
+'   software distributed under the Licence is distributed on an "AS IS" basis,
+'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+'
+' See the LICENSE.txt for the specific language governing permissions and limitations.
+Option Infer On
+
+Imports System.Collections.Generic
+Imports System.Drawing.Imaging
+Imports System.IO
+Imports System.Linq
+Imports System.Text.RegularExpressions
+Imports System.Windows.Forms.DataVisualization.Charting
+Imports TUGraz.VECTO.Input_Files
+Imports TUGraz.VectoCommon.Models
+Imports TUGraz.VectoCommon.Utils
+Imports TUGraz.VectoCore.Models.Declaration
+
+''' <summary>
+''' Job Editor. Create/Edit VECTO job files (.vecto)
+''' </summary>
+''' <remarks></remarks>
+Public Class VectoJobForm
+	Public VECTOfile As String
+	Private Changed As Boolean = False
+
+	Private pgDriver As TabPage
+
+	Private pgDriverON As Boolean = True
+
+	Private AuxDlog As VehicleAuxiliariesDialog
+
+	Public n_idle As Single
+	Public FLDfile As String
+
+	'AA-TB
+	'Populate Advanced Auxiliaries
+	Private Sub PopulateAdvancedAuxiliaries()
+		'Scan the program directory for DLL's which are AdvancedAuxiliaries and display
+		Dim aList As List(Of cAdvancedAuxiliary) = DiscoverAdvancedAuxiliaries()
+
+		cboAdvancedAuxiliaries.DataSource = aList
+		cboAdvancedAuxiliaries.DisplayMember = "AuxiliaryName"
+	End Sub
+
+
+	'Initialise form
+	Private Sub F02_GEN_Load(sender As Object, e As EventArgs) Handles Me.Load
+		Dim x As Int16
+
+		n_idle = -1
+		FLDfile = ""
+
+		AuxDlog = New VehicleAuxiliariesDialog
+
+		pgDriver = TabPgDriver
+
+		For x = 0 To TabControl1.TabCount - 1
+			TabControl1.TabPages(x).Show()
+		Next
+
+		LvAux.Columns(2).Width = -2
+
+		'Declaration Mode
+		If Cfg.DeclMode Then
+			LvAux.Columns(2).Text = "Technology"
+		Else
+			LvAux.Columns(2).Text = "Input File"
+		End If
+
+		CbEngOnly.Enabled = Not Cfg.DeclMode
+		GrCycles.Enabled = Not Cfg.DeclMode
+		GrVACC.Enabled = Not Cfg.DeclMode
+		PnStartStop.Enabled = Not Cfg.DeclMode
+		RdOff.Enabled = Not Cfg.DeclMode
+		GrLAC.Enabled = Not Cfg.DeclMode
+		ButAuxAdd.Enabled = Not Cfg.DeclMode
+		ButAuxRem.Enabled = Not Cfg.DeclMode
+		PnEcoRoll.Enabled = Not Cfg.DeclMode
+
+		Changed = False
+		'AA-TB
+		PopulateAdvancedAuxiliaries()
+
+		'Attempt to select that found in Config
+	End Sub
+
+	'Close - Check for unsaved changes
+	Private Sub F02_GEN_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
+		If e.CloseReason <> CloseReason.ApplicationExitCall And e.CloseReason <> CloseReason.WindowsShutDown Then
+			e.Cancel = ChangeCheckCancel()
+		End If
+	End Sub
+
+	'Set generic values for Declaration mode
+	Private Sub DeclInit()
+
+		If Not Cfg.DeclMode Then Exit Sub
+
+		LvCycles.Items.Clear()
+		CbEngOnly.Checked = False
+		TbDesMaxFile.Text = ""
+		If Not RdEcoRoll.Checked Then RdOverspeed.Checked = True
+		CbLookAhead.Checked = True
+
+		TbSSspeed.Text = DeclarationData.Driver.StartStop.MaxSpeed.AsKmph()	'cDeclaration.SSspeed
+		TbSStime.Text = DeclarationData.Driver.StartStop.MinTime.Value()   'cDeclaration.SStime
+		TbSSdelay.Text = DeclarationData.Driver.StartStop.Delay.Value()	 ' cDeclaration.SSdelay
+
+		tbLacPreviewFactor.Text = DeclarationData.Driver.LookAhead.LookAheadDistanceFactor
+		tbLacDfTargetSpeedFile.Text = ""
+		tbLacDfVelocityDropFile.Text = ""
+
+		TbOverspeed.Text = DeclarationData.Driver.OverSpeedEcoRoll.OverSpeed.AsKmph()  'cDeclaration.Overspeed
+		TbUnderSpeed.Text = DeclarationData.Driver.OverSpeedEcoRoll.UnderSpeed.AsKmph()	' cDeclaration.Underspeed
+		TbVmin.Text = DeclarationData.Driver.OverSpeedEcoRoll.MinSpeed.AsKmph()	 'cDeclaration.ECvmin
+
+		If _
+			LvAux.Items.Count <> 5 OrElse
+			(LvAux.Items(0).Text <> sKey.AUX.Fan OrElse LvAux.Items(1).Text <> sKey.AUX.SteerPump OrElse
+			LvAux.Items(2).Text <> sKey.AUX.HVAC OrElse LvAux.Items(3).Text <> sKey.AUX.ElecSys OrElse
+			LvAux.Items(4).Text <> sKey.AUX.PneumSys) Then
+			LvAux.Items.Clear()
+
+
+			LvAux.Items.Add(GetTechListForAux(sKey.AUX.Fan, "Fan", DeclarationData.Fan))
+
+			LvAux.Items.Add(GetTechListForAux(sKey.AUX.SteerPump, "Steering pump", DeclarationData.SteeringPump))
+
+			LvAux.Items.Add(GetTechListForAux(sKey.AUX.HVAC, "HVAC", DeclarationData.HeatingVentilationAirConditioning))
+
+			LvAux.Items.Add(GetTechListForAux(sKey.AUX.ElecSys, "Electric System", DeclarationData.ElectricSystem))
+
+			LvAux.Items.Add(GetTechListForAux(sKey.AUX.PneumSys, "Pneymatic System", DeclarationData.PneumaticSystem))
+
+		End If
+	End Sub
+
+	Protected Function GetTechListForAux(key As String, nameStr As String, aux As IDeclarationAuxiliaryTable) As ListViewItem
+		Dim LV0 As ListViewItem
+
+		LV0 = New ListViewItem(key)
+		LV0.SubItems.Add(nameStr)
+		Dim auxtech As String() = aux.GetTechnologies()
+		If auxtech.Count > 1 Then
+			LV0.SubItems.Add("")
+		Else
+			LV0.SubItems.Add(auxtech(0))
+		End If
+		Return LV0
+	End Function
+
+
+	'Show/Hide "Driver Assist" Tab
+	Private Sub SetDrivertab(onOff As Boolean)
+		If onOff Then
+			If Not pgDriverON Then
+				pgDriverON = True
+				TabControl1.TabPages.Insert(1, pgDriver)
+			End If
+		Else
+			If pgDriverON Then
+				pgDriverON = False
+				TabControl1.Controls.Remove(pgDriver)
+			End If
+		End If
+	End Sub
+
+
+#Region "Browse Buttons"
+
+	Private Sub ButtonVEH_Click(sender As Object, e As EventArgs) Handles ButtonVEH.Click
+		If VehicleFileBrowser.OpenDialog(fFileRepl(TbVEH.Text, fPATH(VECTOfile))) Then
+			TbVEH.Text = fFileWoDir(VehicleFileBrowser.Files(0), fPATH(VECTOfile))
+		End If
+	End Sub
+
+	Private Sub ButtonMAP_Click(sender As Object, e As EventArgs) Handles ButtonMAP.Click
+		If EngineFileBrowser.OpenDialog(fFileRepl(TbENG.Text, fPATH(VECTOfile))) Then
+			TbENG.Text = fFileWoDir(EngineFileBrowser.Files(0), fPATH(VECTOfile))
+		End If
+	End Sub
+
+	Private Sub ButtonGBX_Click(sender As Object, e As EventArgs) Handles ButtonGBX.Click
+		If GearboxFileBrowser.OpenDialog(fFileRepl(TbGBX.Text, fPATH(VECTOfile))) Then
+			TbGBX.Text = fFileWoDir(GearboxFileBrowser.Files(0), fPATH(VECTOfile))
+		End If
+	End Sub
+
+	Private Sub BtDesMaxBr_Click_1(sender As Object, e As EventArgs) Handles BtDesMaxBr.Click
+		If DriverAccelerationFileBrowser.OpenDialog(fFileRepl(TbDesMaxFile.Text, fPATH(VECTOfile))) Then
+			TbDesMaxFile.Text = fFileWoDir(DriverAccelerationFileBrowser.Files(0), fPATH(VECTOfile))
+		End If
+	End Sub
+
+	Private Sub BtAccOpen_Click(sender As Object, e As EventArgs) Handles BtAccOpen.Click
+		OpenFiles(fFileRepl(TbDesMaxFile.Text, fPATH(VECTOfile)))
+	End Sub
+
+#End Region
+
+#Region "Open Buttons"
+
+	'Open Vehicle Editor
+	Private Sub ButOpenVEH_Click(sender As Object, e As EventArgs) Handles ButOpenVEH.Click
+		Dim f As String
+		f = fFileRepl(TbVEH.Text, fPATH(VECTOfile))
+
+		'Thus Veh-file is returned
+		VehicleForm.JobDir = fPATH(VECTOfile)
+		VehicleForm.AutoSendTo = True
+
+		If Not Trim(f) = "" Then
+			If Not File.Exists(f) Then
+				MsgBox("File not found!")
+				Exit Sub
+			End If
+		End If
+
+		If Not VehicleForm.Visible Then
+			VehicleForm.Show()
+		Else
+			If VehicleForm.WindowState = FormWindowState.Minimized Then VehicleForm.WindowState = FormWindowState.Normal
+			VehicleForm.BringToFront()
+		End If
+
+		If Not Trim(f) = "" Then VehicleForm.OpenVehicle(f)
+	End Sub
+
+	'Open Engine Editor
+	Private Sub ButOpenENG_Click(sender As Object, e As EventArgs) Handles ButOpenENG.Click
+		Dim f As String
+		f = fFileRepl(TbENG.Text, fPATH(VECTOfile))
+
+		'Thus Veh-file is returned
+		EngineForm.JobDir = fPATH(VECTOfile)
+		EngineForm.AutoSendTo = True
+
+		If Not Trim(f) = "" Then
+			If Not File.Exists(f) Then
+				MsgBox("File not found!")
+				Exit Sub
+			End If
+		End If
+
+		If Not EngineForm.Visible Then
+			EngineForm.Show()
+		Else
+			If EngineForm.WindowState = FormWindowState.Minimized Then EngineForm.WindowState = FormWindowState.Normal
+			EngineForm.BringToFront()
+		End If
+
+		If Not Trim(f) = "" Then EngineForm.OpenEngineFile(f)
+	End Sub
+
+	'Open Gearbox Editor
+	Private Sub ButOpenGBX_Click(sender As Object, e As EventArgs) Handles ButOpenGBX.Click
+		Dim f As String
+		f = fFileRepl(TbGBX.Text, fPATH(VECTOfile))
+
+		'Thus Veh-file is returned
+		GearboxForm.JobDir = fPATH(VECTOfile)
+		GearboxForm.AutoSendTo = True
+
+		If Not Trim(f) = "" Then
+			If Not File.Exists(f) Then
+				MsgBox("File not found!")
+				Exit Sub
+			End If
+		End If
+
+		If Not GearboxForm.Visible Then
+			GearboxForm.Show()
+		Else
+			If GearboxForm.WindowState = FormWindowState.Minimized Then GearboxForm.WindowState = FormWindowState.Normal
+			GearboxForm.BringToFront()
+		End If
+
+		If Not Trim(f) = "" Then GearboxForm.openGBX(f)
+	End Sub
+
+#End Region
+
+#Region "Toolbar"
+
+	'New
+	Private Sub ToolStripBtNew_Click(sender As Object, e As EventArgs) Handles ToolStripBtNew.Click
+		VECTOnew()
+	End Sub
+
+	'Open
+	Private Sub ToolStripBtOpen_Click(sender As Object, e As EventArgs) Handles ToolStripBtOpen.Click
+		If JobfileFileBrowser.OpenDialog(VECTOfile, False, "vecto") Then VECTOload2Form(JobfileFileBrowser.Files(0))
+	End Sub
+
+	'Save
+	Private Sub ToolStripBtSave_Click(sender As Object, e As EventArgs) Handles ToolStripBtSave.Click
+		Save()
+	End Sub
+
+	'Save As
+	Private Sub ToolStripBtSaveAs_Click(sender As Object, e As EventArgs) Handles ToolStripBtSaveAs.Click
+		If JobfileFileBrowser.SaveDialog(VECTOfile) Then Call VECTOsave(JobfileFileBrowser.Files(0))
+	End Sub
+
+	'Send to Job file list in main form
+	Private Sub ToolStripBtSendTo_Click(sender As Object, e As EventArgs) Handles ToolStripBtSendTo.Click
+		If ChangeCheckCancel() Then Exit Sub
+		If VECTOfile = "" Then
+			MsgBox("File not found!" & ChrW(10) & ChrW(10) & "Save file and try again.")
+		Else
+			MainForm.AddToJobListView(VECTOfile)
+		End If
+	End Sub
+
+	'Help
+	Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
+		If File.Exists(MyAppPath & "User Manual\help.html") Then
+			Dim BrowserRegistryString As String =
+					My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString
+			Dim DefaultBrowserPath As String =
+					Regex.Match(BrowserRegistryString, "(\"".*?\"")").Captures(0).ToString
+			Process.Start(DefaultBrowserPath,
+						String.Format("""{0}{1}""", MyAppPath, "User Manual\help.html#job-editor"))
+		Else
+			MsgBox("User Manual not found!", MsgBoxStyle.Critical)
+		End If
+	End Sub
+
+
+#End Region
+
+	'Save ("Save" or "Save As" when new file)
+	Private Function Save() As Boolean
+		If VECTOfile = "" Then
+			If JobfileFileBrowser.SaveDialog("") Then
+				VECTOfile = JobfileFileBrowser.Files(0)
+			Else
+				Return False
+			End If
+		End If
+		Return VECTOsave(VECTOfile)
+	End Function
+
+	'Open file
+	Public Sub VECTOload2Form(file As String)
+		If ChangeCheckCancel() Then Exit Sub
+
+		VECTOnew()
+
+		'Read GEN
+		Dim VEC0 = New VectoJob
+		VEC0.FilePath = file
+		Try
+			If Not VEC0.ReadFile() Then
+				MsgBox("Failed to load " & fFILE(file, True) & "!")
+				Exit Sub
+			End If
+		Catch ex As Exception
+			MsgBox("Failed to load " & fFILE(file, True) & "!")
+			Exit Sub
+		End Try
+
+		If Cfg.DeclMode <> VEC0.SavedInDeclMode Then
+			Select Case WrongMode()
+				Case 1
+					Close()
+					MainForm.RbDecl.Checked = Not MainForm.RbDecl.Checked
+					MainForm.OpenVectoFile(file)
+				Case -1
+					Exit Sub
+				Case Else '0
+					'Continue...
+			End Select
+		End If
+
+
+		'Update Form
+
+		'Files -----------------------------
+		TbVEH.Text = VEC0.PathVeh(True)
+		TbENG.Text = VEC0.PathEng(True)
+		TbGBX.Text = VEC0.PathGbx(True)
+
+		'Start/Stop
+		ChBStartStop.Checked = VEC0.StartStop
+		TbSSspeed.Text = VEC0.StStV.ToString()
+		TbSStime.Text = VEC0.StStT.ToString()
+		TbSSdelay.Text = VEC0.StStDelay.ToString()
+
+		'VACC
+		TbDesMaxFile.Text = VEC0.DesMaxFile(True)
+
+
+		'AA-TB
+		'Try and Select any previously selected Auxiliary Type
+		For Each item As cAdvancedAuxiliary In cboAdvancedAuxiliaries.Items
+			If item.AssemblyName = VEC0.AuxiliaryAssembly AndAlso VEC0.AuxiliaryVersion = item.AuxiliaryVersion Then
+				cboAdvancedAuxiliaries.SelectedItem = item
+				Exit For
+			End If
+		Next
+		'AA-TB
+		'Assign any previously saved Axiliary FilePath
+		txtAdvancedAuxiliaryFile.Text = VEC0.AdvancedAuxiliaryFilePath
+
+
+		LvAux.Items.Clear()
+		For Each AuxEntryKV In VEC0.AuxPaths
+			Dim lv0 = New ListViewItem
+			lv0.SubItems(0).Text = AuxEntryKV.Key
+			lv0.SubItems.Add(AuxEntryKV.Value.Type)
+			If Cfg.DeclMode Then
+				lv0.SubItems.Add(AuxEntryKV.Value.TechStr)
+			Else
+				lv0.SubItems.Add(AuxEntryKV.Value.Path.OriginalPath)
+			End If
+			LvAux.Items.Add(lv0)
+		Next
+
+		For Each sb In VEC0.CycleFiles
+			Dim lv0 = New ListViewItem
+			lv0.Text = sb.OriginalPath
+			LvCycles.Items.Add(lv0)
+		Next
+
+		CbEngOnly.Checked = VEC0.EngOnly
+
+		If VEC0.EcoRollOn Then
+			RdEcoRoll.Checked = True
+		ElseIf VEC0.OverSpeedOn Then
+			RdOverspeed.Checked = True
+		Else
+			RdOff.Checked = True
+		End If
+		TbOverspeed.Text = CStr(VEC0.OverSpeed)
+		TbUnderSpeed.Text = CStr(VEC0.UnderSpeed)
+		TbVmin.Text = CStr(VEC0.VMin)
+		CbLookAhead.Checked = VEC0.LookAheadOn
+		'TbAlookahead.Text = CStr(VEC0.ALookahead)
+		'TbVminLA.Text = CStr(VEC0.VMinLa)
+		tbLacPreviewFactor.Text = CStr(VEC0.LacPreviewFactor)
+		tbDfCoastingOffset.Text = CStr(VEC0.LacDfOffset)
+		tbDfCoastingScale.Text = CStr(VEC0.LacDfScale)
+
+		tbLacDfTargetSpeedFile.Text = VEC0.LacDfTargetSpeedFile
+		tbLacDfVelocityDropFile.Text = VEC0.LacDfVelocityDropFile
+
+		'-------------------------------------------------------------
+
+		DeclInit()
+
+
+		EngineForm.AutoSendTo = False
+		GearboxForm.AutoSendTo = False
+		VehicleForm.AutoSendTo = False
+
+
+		VECTOfile = file
+
+		Dim x As Short = Len(file)
+		While Mid(file, x, 1) <> "\" And x > 0
+			x = x - 1
+		End While
+		Text = Mid(file, x + 1, Len(file) - x)
+		Changed = False
+		ToolStripStatusLabelGEN.Text = ""	'file & " opened."
+
+		UpdatePic()
+
+		'-------------------------------------------------------------
+	End Sub
+
+	'Save file
+	Private Function VECTOsave(file As String) As Boolean
+		Dim message As String = String.Empty
+
+		'AA-TB
+		'Validation of Auxiliary Types/Advanced Auxiliaries
+		'if not classic, check the file is valid, if not fail the operation and alert user.
+		If cboAdvancedAuxiliaries.SelectedIndex > 0 Then
+
+			'resolve absolute path for auxiliary file.
+			Dim absoluteAAUxFile = ResolveAAUXFilePath(fPATH(VECTOfile), txtAdvancedAuxiliaryFile.Text)
+
+			Dim aaAssemblyName = DirectCast(cboAdvancedAuxiliaries.SelectedItem, cAdvancedAuxiliary).AssemblyName
+			Dim aaAssemblyVersion = DirectCast(cboAdvancedAuxiliaries.SelectedItem, cAdvancedAuxiliary).AuxiliaryVersion
+
+
+			If Not ValidateAAUXFile(absoluteAAUxFile, aaAssemblyName, aaAssemblyVersion, message) Then
+				MessageBox.Show(
+					String.Format("You have selected an advanced auxiliary *Auxiliary Type*, but the file specified is invalid :{0}",
+								message))
+				Return False
+			End If
+
+		End If
+
+
+		Dim vec0 = New VectoJob
+		vec0.FilePath = file
+
+		'Files ------------------------------------------------- -----------------
+
+		vec0.PathVeh = TbVEH.Text
+		vec0.PathEng = TbENG.Text
+
+		For Each lv0 As ListViewItem In LvCycles.Items
+			Dim sb = New SubPath
+			sb.Init(fPATH(file), lv0.Text)
+			vec0.CycleFiles.Add(sb)
+		Next
+
+		vec0.PathGbx = TbGBX.Text
+
+
+		'Start/Stop
+		vec0.StartStop = ChBStartStop.Checked
+		vec0.StStV = CSng(fTextboxToNumString(TbSSspeed.Text))
+		vec0.StStT = CSng(fTextboxToNumString(TbSStime.Text))
+		vec0.StStDelay = CInt(fTextboxToNumString(TbSSdelay.Text))
+
+		'a_DesMax
+		vec0.DesMaxFile = TbDesMaxFile.Text
+
+		'AA-TB
+		vec0.AuxiliaryAssembly = DirectCast(cboAdvancedAuxiliaries.SelectedItem, cAdvancedAuxiliary).AssemblyName
+		vec0.AuxiliaryVersion = DirectCast(cboAdvancedAuxiliaries.SelectedItem, cAdvancedAuxiliary).AuxiliaryVersion
+		vec0.AdvancedAuxiliaryFilePath = txtAdvancedAuxiliaryFile.Text
+
+		For Each lv0 As ListViewItem In LvAux.Items
+			Dim auxEntry = New VectoJob.AuxEntry
+
+			If Cfg.DeclMode Then
+				auxEntry.TechStr = lv0.SubItems(2).Text
+			Else
+				auxEntry.Path.Init(fPATH(file), lv0.SubItems(2).Text)
+			End If
+
+			auxEntry.Type = lv0.SubItems(1).Text
+			vec0.AuxPaths.Add(lv0.SubItems(0).Text, auxEntry)
+		Next
+
+		vec0.EngOnly = CbEngOnly.Checked
+
+		vec0.EcoRollOn = RdEcoRoll.Checked
+		vec0.OverSpeedOn = RdOverspeed.Checked
+		vec0.OverSpeed = CSng(fTextboxToNumString(TbOverspeed.Text))
+		vec0.UnderSpeed = CSng(fTextboxToNumString(TbUnderSpeed.Text))
+		vec0.VMin = CSng(fTextboxToNumString(TbVmin.Text))
+		vec0.LookAheadOn = CbLookAhead.Checked
+		'vec0.ALookahead = CSng(fTextboxToNumString(TbAlookahead.Text))
+		'vec0.VMinLa = CSng(fTextboxToNumString(TbVminLA.Text))
+
+		vec0.LacPreviewFactor = CSng(fTextboxToNumString(tbLacPreviewFactor.Text))
+		vec0.LacDfOffset = CSng(fTextboxToNumString(tbDfCoastingOffset.Text))
+		vec0.LacDfScale = CSng(fTextboxToNumString(tbDfCoastingScale.Text))
+		vec0.LacDfTargetSpeedFile = tbLacDfTargetSpeedFile.Text
+		vec0.LacDfVelocityDropFile = tbLacDfVelocityDropFile.Text
+		'------------------------------------------------------------
+
+		'SAVE
+		If Not vec0.SaveFile Then
+			MsgBox("Cannot safe to " & file, MsgBoxStyle.Critical)
+			Return False
+		End If
+
+		VECTOfile = file
+
+		file = fFILE(VECTOfile, True)
+
+		Text = file
+		ToolStripStatusLabelGEN.Text = ""
+
+		MainForm.AddToJobListView(VECTOfile)
+
+		Changed = False
+
+		Return True
+	End Function
+
+	'New file
+	Public Sub VECTOnew()
+
+		If ChangeCheckCancel() Then Exit Sub
+
+		n_idle = -1
+		FLDfile = ""
+
+		'Files
+		TbVEH.Text = ""
+		TbENG.Text = ""
+		LvCycles.Items.Clear()
+		TbGBX.Text = ""
+		TbDesMaxFile.Text = ""
+
+		'Start/Stop
+		TbSSspeed.Text = "5"
+		TbSStime.Text = "5"
+		ChBStartStop.Checked = False
+
+		LvAux.Items.Clear()
+
+		CbEngOnly.Checked = False
+
+		RdOff.Checked = True
+		CbLookAhead.Checked = True
+		'TbAlookahead.Text = "-0.5"
+		TbOverspeed.Text = ""
+		TbUnderSpeed.Text = ""
+		TbVmin.Text = ""
+		'TbVminLA.Text = "50"
+		tbLacPreviewFactor.Text = "10"
+		tbDfCoastingOffset.Text = "2.5"
+		tbDfCoastingScale.Text = "1.5"
+		tbLacDfTargetSpeedFile.Text = ""
+		tbLacDfVelocityDropFile.Text = ""
+
+		'---------------------------------------------------
+
+		DeclInit()
+
+		EngineForm.AutoSendTo = False
+
+		VECTOfile = ""
+		Text = "Job Editor"
+		ToolStripStatusLabelGEN.Text = ""
+		Changed = False
+		UpdatePic()
+	End Sub
+
+
+#Region "Track changes"
+
+#Region "'Change' Events"
+
+	Private Sub TextBoxVEH_TextChanged(sender As Object, e As EventArgs) _
+		Handles TbVEH.TextChanged
+		UpdatePic()
+		Change()
+	End Sub
+
+	Private Sub TextBoxMAP_TextChanged(sender As Object, e As EventArgs) _
+		Handles TbENG.TextChanged
+		UpdatePic()
+		Change()
+	End Sub
+
+	Private Sub TextBoxFLD_TextChanged(sender As Object, e As EventArgs) _
+		Handles TbGBX.TextChanged
+		UpdatePic()
+		Change()
+	End Sub
+
+	Private Sub TbDesMaxFile_TextChanged_1(sender As Object, e As EventArgs) Handles TbDesMaxFile.TextChanged
+		Change()
+	End Sub
+
+
+	Private Sub TBSSspeed_TextChanged(sender As Object, e As EventArgs) Handles TbSSspeed.TextChanged
+		Change()
+	End Sub
+
+	Private Sub TBSStime_TextChanged(sender As Object, e As EventArgs) _
+		Handles TbSStime.TextChanged, TbSSdelay.TextChanged
+		Change()
+	End Sub
+
+	Private Sub TbOverspeed_TextChanged(sender As Object, e As EventArgs) Handles TbOverspeed.TextChanged
+		Change()
+	End Sub
+
+	Private Sub TbUnderSpeed_TextChanged(sender As Object, e As EventArgs) Handles TbUnderSpeed.TextChanged
+		Change()
+	End Sub
+
+	Private Sub TbVmin_TextChanged(sender As Object, e As EventArgs) _
+		Handles TbVmin.TextChanged
+		Change()
+	End Sub
+
+	Private Sub LvCycles_AfterLabelEdit(sender As Object, e As LabelEditEventArgs) _
+		Handles LvCycles.AfterLabelEdit
+		Change()
+	End Sub
+
+
+#End Region
+
+	Private Sub Change()
+		If Not Changed Then
+			ToolStripStatusLabelGEN.Text = "Unsaved changes in current file"
+			Changed = True
+		End If
+	End Sub
+
+	' "Save changes? "... Returns True if User aborts
+	Private Function ChangeCheckCancel() As Boolean
+
+		If Changed Then
+
+			Select Case MsgBox("Save changes ?", MsgBoxStyle.YesNoCancel)
+				Case MsgBoxResult.Yes
+					Return Not Save()
+				Case MsgBoxResult.Cancel
+					Return True
+				Case Else 'MsgBoxResult.No
+					Changed = False
+					Return False
+			End Select
+
+		Else
+
+			Return False
+
+		End If
+	End Function
+
+#End Region
+
+#Region "Aux Listview"
+
+	Private Sub ButAuxAdd_Click(sender As Object, e As EventArgs) Handles ButAuxAdd.Click
+		Dim ID As String
+
+		AuxDlog.VehPath = fPATH(VECTOfile)
+		AuxDlog.TbPath.Text = ""
+		AuxDlog.CbType.SelectedIndex = -1
+		AuxDlog.CbType.Text = ""
+		AuxDlog.TbID.Text = "" '!!! Set Type before ID, because changing the type will overwrite the id !!!
+
+lbDlog:
+		If AuxDlog.ShowDialog = DialogResult.OK Then
+
+			ID = UCase(Trim(AuxDlog.TbID.Text))
+
+			Dim lv0 As ListViewItem
+			For Each lv0 In LvAux.Items
+				If lv0.SubItems(0).Text = ID Then
+					MsgBox("ID '" & ID & "' already defined!", MsgBoxStyle.Critical)
+					AuxDlog.TbID.SelectAll()
+					AuxDlog.TbID.Focus()
+					GoTo lbDlog
+				End If
+			Next
+
+			lv0 = New ListViewItem
+			lv0.SubItems(0).Text = UCase(Trim(AuxDlog.TbID.Text))
+			lv0.SubItems.Add(Trim(AuxDlog.CbType.Text))
+			lv0.SubItems.Add(Trim(AuxDlog.TbPath.Text))
+			LvAux.Items.Add(lv0)
+			Change()
+		End If
+	End Sub
+
+	Private Sub ButAuxRem_Click(sender As Object, e As EventArgs) Handles ButAuxRem.Click
+		RemoveAuxItem()
+	End Sub
+
+	Private Sub LvAux_DoubleClick(sender As Object, e As EventArgs) Handles LvAux.DoubleClick
+		EditAuxItem()
+	End Sub
+
+	Private Sub LvAux_KeyDown(sender As Object, e As KeyEventArgs) Handles LvAux.KeyDown
+		Select Case e.KeyCode
+			Case Keys.Delete, Keys.Back
+				If Not Cfg.DeclMode Then RemoveAuxItem()
+			Case Keys.Enter
+				EditAuxItem()
+		End Select
+	End Sub
+
+	Private Sub EditAuxItem()
+		If LvAux.SelectedItems.Count = 0 Then
+			Exit Sub
+		End If
+
+		Dim selItem = LvAux.SelectedItems(0)
+
+		AuxDlog.VehPath = fPATH(VECTOfile)
+		AuxDlog.CbType.SelectedIndex = -1
+		AuxDlog.CbType.Text = selItem.SubItems(1).Text
+		AuxDlog.TbID.Text = selItem.SubItems(0).Text	'After Type-set!
+
+		If Cfg.DeclMode Then
+			AuxDlog.CbTech.Text = selItem.SubItems(2).Text
+			AuxDlog.TbPath.Text = ""
+		Else
+			AuxDlog.CbTech.SelectedIndex = -1
+			AuxDlog.TbPath.Text = selItem.SubItems(2).Text
+		End If
+
+		If AuxDlog.ShowDialog = DialogResult.OK Then
+			selItem.SubItems(0).Text = UCase(Trim(AuxDlog.TbID.Text))
+			selItem.SubItems(1).Text = Trim(AuxDlog.CbType.Text)
+
+			If Cfg.DeclMode Then
+				selItem.SubItems(2).Text = Trim(AuxDlog.CbTech.Text)
+			Else
+				selItem.SubItems(2).Text = Trim(AuxDlog.TbPath.Text)
+			End If
+
+			Change()
+		End If
+	End Sub
+
+	Private Sub RemoveAuxItem()
+		Dim i As Integer
+
+		If LvAux.SelectedItems.Count = 0 Then
+			If LvAux.Items.Count = 0 Then
+				Exit Sub
+			Else
+				LvAux.Items(LvAux.Items.Count - 1).Selected = True
+			End If
+		End If
+
+		i = LvAux.SelectedItems(0).Index
+
+		LvAux.SelectedItems(0).Remove()
+
+		If LvAux.Items.Count > 0 Then
+			If i < LvAux.Items.Count Then
+				LvAux.Items(i).Selected = True
+			Else
+				LvAux.Items(LvAux.Items.Count - 1).Selected = True
+			End If
+			LvAux.Focus()
+		End If
+
+		Change()
+	End Sub
+
+#End Region
+
+	'OK (Save & Close)
+	Private Sub ButSave_Click(sender As Object, e As EventArgs) Handles ButOK.Click
+		If Not Save() Then Exit Sub
+		Close()
+	End Sub
+
+	'Cancel
+	Private Sub ButCancel_Click(sender As Object, e As EventArgs) Handles ButCancel.Click
+		Close()
+	End Sub
+
+#Region "Cycle list"
+
+	Private Sub LvCycles_DoubleClick(sender As Object, e As EventArgs) Handles LvCycles.DoubleClick
+		If LvCycles.SelectedItems.Count > 0 Then _
+			OpenFiles(fFileRepl(LvCycles.SelectedItems(0).SubItems(0).Text, fPATH(VECTOfile)))
+	End Sub
+
+	Private Sub LvCycles_KeyDown(sender As Object, e As KeyEventArgs) Handles LvCycles.KeyDown
+		Select Case e.KeyCode
+			Case Keys.Delete, Keys.Back
+				RemoveCycle()
+			Case Keys.Enter
+				If LvCycles.SelectedItems.Count > 0 Then LvCycles.SelectedItems(0).BeginEdit()
+		End Select
+	End Sub
+
+	Private Sub BtDRIadd_Click(sender As Object, e As EventArgs) Handles BtDRIadd.Click
+		Dim genDir As String = fPATH(VECTOfile)
+
+		If DrivingCycleFileBrowser.OpenDialog("", True) Then
+			For Each s In DrivingCycleFileBrowser.Files
+				LvCycles.Items.Add(fFileWoDir(s, genDir))
+			Next
+			Change()
+		End If
+	End Sub
+
+	Private Sub BtDRIrem_Click(sender As Object, e As EventArgs) Handles BtDRIrem.Click
+		RemoveCycle()
+	End Sub
+
+	Private Sub RemoveCycle()
+		Dim i As Integer
+
+		If LvCycles.SelectedItems.Count = 0 Then
+			If LvCycles.Items.Count = 0 Then
+				Exit Sub
+			Else
+				LvCycles.Items(LvCycles.Items.Count - 1).Selected = True
+			End If
+		End If
+
+		i = LvCycles.SelectedItems(0).Index
+
+		LvCycles.SelectedItems(0).Remove()
+
+		If LvCycles.Items.Count > 0 Then
+			If i < LvCycles.Items.Count Then
+				LvCycles.Items(i).Selected = True
+			Else
+				LvCycles.Items(LvCycles.Items.Count - 1).Selected = True
+			End If
+
+			LvCycles.Focus()
+		End If
+
+		Change()
+	End Sub
+
+#End Region
+
+#Region "Enable/Disable GUI controls"
+
+	'Engine only mode changed
+	Private Sub CbEngOnly_CheckedChanged(sender As Object, e As EventArgs) Handles CbEngOnly.CheckedChanged
+		CheckEngOnly()
+		Change()
+	End Sub
+
+	Private Sub CheckEngOnly()
+		Dim OnOff As Boolean
+
+		OnOff = Not CbEngOnly.Checked
+
+		SetDrivertab(OnOff)
+
+		ButOpenVEH.Enabled = OnOff
+		TbVEH.Enabled = OnOff
+		ButtonVEH.Enabled = OnOff
+		ButOpenGBX.Enabled = OnOff
+		TbGBX.Enabled = OnOff
+		ButtonGBX.Enabled = OnOff
+		GrAux.Enabled = OnOff
+	End Sub
+
+	'Start/Stop changed 
+	Private Sub ChBStartStop_CheckedChanged_1(sender As Object, e As EventArgs) _
+		Handles ChBStartStop.CheckedChanged
+		Change()
+		If Not Cfg.DeclMode Then PnStartStop.Enabled = ChBStartStop.Checked
+	End Sub
+
+	'LAC changed
+	Private Sub CbLookAhead_CheckedChanged(sender As Object, e As EventArgs) _
+		Handles CbLookAhead.CheckedChanged
+		Change()
+	End Sub
+
+	'EcoRoll / Overspeed changed
+	Private Sub RdOff_CheckedChanged(sender As Object, e As EventArgs) _
+		Handles RdOff.CheckedChanged, RdOverspeed.CheckedChanged, RdEcoRoll.CheckedChanged
+		Dim EcoR As Boolean
+		Dim Ovr As Boolean
+
+		Change()
+
+		EcoR = RdEcoRoll.Checked
+		Ovr = RdOverspeed.Checked
+
+		TbOverspeed.Enabled = Ovr Or EcoR
+		Label13.Enabled = Ovr Or EcoR
+		Label14.Enabled = Ovr Or EcoR
+
+		TbUnderSpeed.Enabled = EcoR
+		Label22.Enabled = EcoR
+		Label20.Enabled = EcoR
+
+		TbVmin.Enabled = Ovr Or EcoR
+		Label23.Enabled = Ovr Or EcoR
+		Label21.Enabled = Ovr Or EcoR
+	End Sub
+
+#End Region
+
+	Public Sub UpdatePic()
+		Dim VEH0 As New Vehicle
+		Dim i As Integer
+		Dim pmax As Single
+
+		Dim f As CsvFile
+		Dim lM As List(Of Single)
+		Dim lup As List(Of Single)
+		Dim ldown As List(Of Single)
+		Dim line As String()
+
+
+		Dim HDVclass As String
+		'Dim m0 As 
+
+		Dim s As Series
+		Dim a As ChartArea
+		Dim img As Image
+
+		Dim EngOK = False
+
+		TbHVCclass.Text = ""
+		TbVehCat.Text = ""
+		TbMass.Text = ""
+		TbAxleConf.Text = ""
+		TbEngTxt.Text = ""
+		TbGbxTxt.Text = ""
+		PicVehicle.Image = Nothing
+		PicBox.Image = Nothing
+
+
+		VEH0.FilePath = fFileRepl(TbVEH.Text, fPATH(VECTOfile))
+		If VEH0.ReadFile(False) Then
+			Dim maxMass = (VEH0.MassMax * 1000).SI(Of Kilogram)()		   'CSng(fTextboxToNumString(TbMassMass.Text))
+
+			Dim s0 As Segment = Nothing
+			Try
+				s0 = DeclarationData.Segments.Lookup(VEH0.VehCat, VEH0.AxleConf, maxMass, 0.SI(Of Kilogram), True)
+			Catch
+			End Try
+			If Not s0 Is Nothing Then
+				HDVclass = s0.VehicleClass.GetClassNumber()
+
+				If Cfg.DeclMode Then
+					LvCycles.Items.Clear()
+					For Each m0 In s0.Missions
+						LvCycles.Items.Add(m0.MissionType.ToString())
+					Next
+				End If
+
+			Else
+				HDVclass = "-"
+			End If
+
+			PicVehicle.Image = ConvPicPath(HDVclass, False)	'Image.FromFile(cDeclaration.ConvPicPath(HDVclass, False))
+
+			TbHVCclass.Text = "HDV Class " & HDVclass
+			TbVehCat.Text = VEH0.VehCat.GetCategoryName()	'ConvVehCat(VEH0.VehCat, True)
+			TbMass.Text = VEH0.MassMax & " t"
+			TbAxleConf.Text = VEH0.AxleConf.GetName() 'ConvAxleConf(VEH0.AxleConf)
+
+		End If
+
+
+		Dim OkCount = 0
+
+		Dim ENG0 = New Engine
+		ENG0.FilePath = fFileRepl(TbENG.Text, fPATH(VECTOfile))
+
+		'Create plot
+		Dim MyChart = New Chart
+		MyChart.Width = PicBox.Width
+		MyChart.Height = PicBox.Height
+
+		a = New ChartArea
+
+		Dim FLD0 = New EngineFullLoadCurve
+
+		If ENG0.ReadFile(False) Then
+
+			n_idle = ENG0.Nidle
+			FLDfile = ENG0.PathFLD
+
+			EngOK = True
+			FLD0.FilePath = ENG0.PathFLD
+
+			If FLD0.ReadFile(False, False) Then
+
+				s = New Series
+				s.Points.DataBindXY(FLD0.LnU, FLD0.LTq)
+				s.ChartType = SeriesChartType.FastLine
+				s.BorderWidth = 2
+				s.Color = Color.DarkBlue
+				s.Name = "Full load"
+				MyChart.Series.Add(s)
+
+				s = New Series
+				s.Points.DataBindXY(FLD0.LnU, FLD0.LTqDrag)
+				s.ChartType = SeriesChartType.FastLine
+				s.BorderWidth = 2
+				s.Color = Color.Blue
+				s.Name = "Motoring"
+				MyChart.Series.Add(s)
+
+				OkCount += 1
+
+				pmax = FLD0.Pfull(FLD0.fnUrated)
+
+			End If
+
+			TbEngTxt.Text = (ENG0.Displ / 1000).ToString("0.0") & " l " & pmax.ToString("#") & " kW  " & ENG0.ModelName
+
+
+			Dim MAP0 = New FuelconsumptionMap
+			MAP0.FilePath = ENG0.PathMAP
+
+			If MAP0.ReadFile(False) Then
+
+				s = New Series
+				s.Points.DataBindXY(MAP0.nU, MAP0.Tq)
+				s.ChartType = SeriesChartType.Point
+				s.MarkerSize = 3
+				s.Color = Color.Red
+				s.Name = "Map"
+				MyChart.Series.Add(s)
+
+				OkCount += 1
+
+			End If
+
+		End If
+
+		Dim GBX0 = New Gearbox
+		GBX0.FilePath = fFileRepl(TbGBX.Text, fPATH(VECTOfile))
+
+		If GBX0.ReadFile(False) Then
+
+			TbGbxTxt.Text = GBX0.GearCount & "-Speed " & GBX0.Type.ShortName() & "  " & GBX0.ModelName
+
+			If Cfg.DeclMode Then
+
+				If EngOK Then
+
+					For i = 1 To GBX0.GearCount
+
+						FLD0.FilePath = ENG0.PathFLD
+
+						If FLD0.ReadFile(True, False) Then
+
+							If FLD0.Init(ENG0.Nidle) Then
+
+								'Dim engine As CombustionEngineData = ConvertToEngineData(FLD0, F_VECTO.n_idle)
+								'Dim shiftLines As ShiftPolygon = DeclarationData.Gearbox.ComputeShiftPolygon(Gear - 1,
+								'																			engine.FullLoadCurve, gears,
+								'																			engine,
+								'																			Double.Parse(LvGears.Items(0).SubItems(F_GBX.GearboxTbl.Ratio).Text,
+								'																						CultureInfo.InvariantCulture),
+								'																			(.rdyn / 1000.0).SI(Of Meter))
+
+								's = New Series
+								's.Points.DataBindXY(shiftLines.Upshift.Select(Function(pt) pt.AngularSpeed.Value() / Constants.RPMToRad).ToList(),
+								'					shiftLines.Upshift.Select(Function(pt) pt.Torque.Value()).ToList())
+								's.ChartType = SeriesChartType.FastLine
+								's.BorderWidth = 2
+								's.Color = Color.DarkRed
+								's.Name = "Upshift curve (" & i & ")"
+								'MyChart.Series.Add(s)
+
+								's = New Series
+								's.Points.DataBindXY(
+								'	shiftLines.Downshift.Select(Function(pt) pt.AngularSpeed.Value() / Constants.RPMToRad).ToList(),
+								'	shiftLines.Downshift.Select(Function(pt) pt.Torque.Value()).ToList())
+								's.ChartType = SeriesChartType.FastLine
+								's.BorderWidth = 2
+								's.Color = Color.DarkRed
+								's.Name = "Downshift curve (" & i & ")"
+								'MyChart.Series.Add(s)
+							End If
+
+
+							OkCount += 1
+
+							pmax = FLD0.Pfull(FLD0.fnUrated)
+
+						End If
+
+					Next
+
+				End If
+
+			Else
+
+				f = New CsvFile
+				For i = 1 To GBX0.GearCount
+
+					lM = New List(Of Single)
+					lup = New List(Of Single)
+					ldown = New List(Of Single)
+
+					If f.OpenRead(GBX0.gsFile(i)) Then
+
+						f.ReadLine()
+
+						Try
+
+							Do While Not f.EndOfFile
+								line = f.ReadLine
+								lM.Add(CSng(line(0)))
+								lup.Add(CSng(line(1)))
+								ldown.Add(CSng(line(2)))
+							Loop
+
+							s = New Series
+							s.Points.DataBindXY(lup, lM)
+							s.ChartType = SeriesChartType.FastLine
+							s.BorderWidth = 2
+							s.Color = Color.DarkRed
+							s.Name = "Upshift curve"
+							' MyChart.Series.Add(s) 'MQ 2016-06-20: do not plot shift lines in engine dialog
+
+							s = New Series
+							s.Points.DataBindXY(ldown, lM)
+							s.ChartType = SeriesChartType.FastLine
+							s.BorderWidth = 2
+							s.Color = Color.DarkRed
+							s.Name = "Downshift curve"
+							'MyChart.Series.Add(s) 'MQ 2016-06-20:do not plot shift lines in engine dialog
+
+							OkCount += 1
+
+							f.Close()
+
+						Catch ex As Exception
+							f.Close()
+						End Try
+
+					End If
+
+				Next
+
+			End If
+
+		End If
+
+		If OkCount > 0 Then
+
+			a.Name = "main"
+
+			a.AxisX.Title = "engine speed [1/min]"
+			a.AxisX.TitleFont = New Font("Helvetica", 10)
+			a.AxisX.LabelStyle.Font = New Font("Helvetica", 8)
+			a.AxisX.LabelAutoFitStyle = LabelAutoFitStyles.None
+			a.AxisX.MajorGrid.LineDashStyle = ChartDashStyle.Dot
+
+			a.AxisY.Title = "engine torque [Nm]"
+			a.AxisY.TitleFont = New Font("Helvetica", 10)
+			a.AxisY.LabelStyle.Font = New Font("Helvetica", 8)
+			a.AxisY.LabelAutoFitStyle = LabelAutoFitStyles.None
+			a.AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dot
+
+			a.AxisX.Minimum = 300
+			a.BorderDashStyle = ChartDashStyle.Solid
+			a.BorderWidth = 1
+
+			a.BackColor = Color.GhostWhite
+
+			MyChart.ChartAreas.Add(a)
+
+			MyChart.Update()
+
+			img = New Bitmap(MyChart.Width, MyChart.Height, PixelFormat.Format32bppArgb)
+			MyChart.DrawToBitmap(img, New Rectangle(0, 0, PicBox.Width, PicBox.Height))
+
+			PicBox.Image = img
+
+
+		End If
+	End Sub
+
+
+#Region "Open File Context Menu"
+
+	Private CmFiles As String()
+
+	Private Sub OpenFiles(ParamArray files() As String)
+		If files.Length = 0 Then Exit Sub
+
+		CmFiles = files
+		OpenWithToolStripMenuItem.Text = "Open with " & Cfg.OpenCmdName
+		CmOpenFile.Show(Windows.Forms.Cursor.Position)
+	End Sub
+
+	Private Sub OpenWithToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles OpenWithToolStripMenuItem.Click
+		If Not FileOpenAlt(CmFiles(0)) Then MsgBox("Failed to open file!")
+	End Sub
+
+	Private Sub ShowInFolderToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles ShowInFolderToolStripMenuItem.Click
+		If File.Exists(CmFiles(0)) Then
+			Try
+				Process.Start("explorer", "/select,""" & CmFiles(0) & "")
+			Catch ex As Exception
+				MsgBox("Failed to open file!")
+			End Try
+		Else
+			MsgBox("File not found!")
+		End If
+	End Sub
+
+#End Region
+
+
+	'AA-TB
+	Private Sub picAuxInfo_MouseEnter(sender As Object, e As EventArgs) Handles picAuxInfo.MouseEnter
+
+
+		If cboAdvancedAuxiliaries.SelectedIndex = -1 Then Exit Sub
+
+		'Get tooltip
+		Dim item As cAdvancedAuxiliary
+
+		item = DirectCast(cboAdvancedAuxiliaries.SelectedItem, cAdvancedAuxiliary)
+
+		If item.AuxiliaryVersion = "CLASSIC" Then
+
+			ToolTip1.ToolTipTitle = "Classic Vecto Auxiliaries"
+			ToolTip1.SetToolTip(picAuxInfo, "Uses original basic auxiliaries calculation")
+
+		Else
+
+			ToolTip1.ToolTipTitle = "Advanced Auxiliary Information"
+			ToolTip1.SetToolTip(picAuxInfo, item.AuxiliaryName & " : Version=" & item.AuxiliaryVersion)
+
+		End If
+	End Sub
+
+	'AA-TB
+	Private Sub btnBrowseAAUXFile_Click(sender As Object, e As EventArgs) Handles btnBrowseAAUXFile.Click
+
+		If String.IsNullOrEmpty(VECTOfile) Then
+			MessageBox.Show(
+				"Please complete and save a valid new .vecto file before adding/configuring advanced bus auxiliaries.")
+			Return
+		End If
+
+		Dim aauxFileValidated As Boolean = False
+		Dim fbAux As New FileBrowser(True, False)
+		Dim message As String = String.Empty
+		Dim absoluteAuxPath As String
+		Dim assembly As cAdvancedAuxiliary
+
+		'If Classic is selected, then bail
+		If cboAdvancedAuxiliaries.SelectedIndex = 0 Then Return
+
+		'Get Absolute Path for AAUX FILE.
+		absoluteAuxPath = ResolveAAUXFilePath(fPATH(VECTOfile), txtAdvancedAuxiliaryFile.Text)
+
+		'Set Extensions
+		fbAux.Extensions = New String() {"AAUX"}
+
+		Try
+
+			assembly = DirectCast(cboAdvancedAuxiliaries.SelectedItem, cAdvancedAuxiliary)
+
+			Dim validAAUXFile As Boolean = ValidateAAUXFile(absoluteAuxPath, assembly.AssemblyName,
+															assembly.AuxiliaryVersion, message)
+			Dim fileExists As Boolean = File.Exists(absoluteAuxPath)
+
+			If fileExists AndAlso validAAUXFile Then
+				ConfigureAdvancedAuxiliaries(assembly.AssemblyName, assembly.AuxiliaryVersion,
+											txtAdvancedAuxiliaryFile.Text, VECTOfile)
+			Else
+
+				Dim needToFindOrCreateFile As Boolean = True
+
+				While needToFindOrCreateFile
+
+					'Find / Create  file and configure.
+					If fbAux.CustomDialog(absoluteAuxPath, False, False, tFbExtMode.ForceExt, False, String.Empty) Then
+						txtAdvancedAuxiliaryFile.Text = fFileWoDir(fbAux.Files(0), fPATH(VECTOfile))
+						assembly = DirectCast(cboAdvancedAuxiliaries.SelectedItem, cAdvancedAuxiliary)
+
+						If _
+							File.Exists(ResolveAAUXFilePath(fPATH(VECTOfile), txtAdvancedAuxiliaryFile.Text)) OrElse
+							MsgBox("Do you want to create a new .AAUX file?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
+							needToFindOrCreateFile = False
+							ConfigureAdvancedAuxiliaries(assembly.AssemblyName, assembly.AuxiliaryVersion,
+														txtAdvancedAuxiliaryFile.Text, VECTOfile)
+						End If
+					Else
+						needToFindOrCreateFile = False
+					End If
+
+				End While
+
+			End If
+
+		Catch ex As Exception
+			MessageBox.Show("There was an error configuring your Advanced Auxiliary File")
+		End Try
+	End Sub
+
+	'AA-TB
+	Private Sub cboAdvancedAuxiliaries_SelectedIndexChanged(sender As Object, e As EventArgs) _
+		Handles cboAdvancedAuxiliaries.SelectedIndexChanged
+
+		'Enable or otherwise the text box and browser button associated with Advanced Axuiliaries
+		If cboAdvancedAuxiliaries.SelectedIndex = 0 Then
+
+			btnBrowseAAUXFile.Enabled = False
+			txtAdvancedAuxiliaryFile.Enabled = False
+
+		Else
+
+			btnBrowseAAUXFile.Enabled = True
+			txtAdvancedAuxiliaryFile.Enabled = True
+
+		End If
+	End Sub
+
+
+	'AA-TB
+	Private Sub btnAAUXOpen_Click(sender As Object, e As EventArgs) Handles btnAAUXOpen.Click
+
+		OpenFiles(fFileRepl(txtAdvancedAuxiliaryFile.Text, fPATH(VECTOfile)))
+	End Sub
+
+	Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnDfTargetSpeed.Click
+		If DriverDecisionFactorTargetSpeedFileBrowser.OpenDialog(fFileRepl(tbLacDfTargetSpeedFile.Text, fPATH(VECTOfile))) Then _
+			tbLacDfTargetSpeedFile.Text = fFileWoDir(DriverDecisionFactorTargetSpeedFileBrowser.Files(0), fPATH(VECTOfile))
+	End Sub
+End Class
+
+
diff --git a/VECTO/GUI/F_VEH_AuxDlog.Designer.vb b/VECTO/GUI/VehicleAuxiliariesDialog.Designer.vb
similarity index 98%
rename from VECTO/GUI/F_VEH_AuxDlog.Designer.vb
rename to VECTO/GUI/VehicleAuxiliariesDialog.Designer.vb
index b017cd6cd8..11ae33217f 100644
--- a/VECTO/GUI/F_VEH_AuxDlog.Designer.vb
+++ b/VECTO/GUI/VehicleAuxiliariesDialog.Designer.vb
@@ -13,7 +13,7 @@ Imports Microsoft.VisualBasic.CompilerServices
 Imports TUGraz.VECTO.My.Resources
 
 <DesignerGenerated()> _
-Partial Class F_VEH_AuxDlog
+Partial Class VehicleAuxiliariesDialog
 	Inherits Form
 
 	'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
@@ -213,7 +213,7 @@ Partial Class F_VEH_AuxDlog
 		Me.FormBorderStyle = FormBorderStyle.FixedDialog
 		Me.MaximizeBox = False
 		Me.MinimizeBox = False
-		Me.Name = "F_VEH_AuxDlog"
+		Me.Name = "VehicleAuxiliariesDialog"
 		Me.ShowInTaskbar = False
 		Me.StartPosition = FormStartPosition.CenterParent
 		Me.Text = "Auxiliary"
diff --git a/VECTO/GUI/F_VEH_AuxDlog.resx b/VECTO/GUI/VehicleAuxiliariesDialog.resx
similarity index 100%
rename from VECTO/GUI/F_VEH_AuxDlog.resx
rename to VECTO/GUI/VehicleAuxiliariesDialog.resx
diff --git a/VECTO/GUI/F_VEH_AuxDlog.vb b/VECTO/GUI/VehicleAuxiliariesDialog.vb
similarity index 95%
rename from VECTO/GUI/F_VEH_AuxDlog.vb
rename to VECTO/GUI/VehicleAuxiliariesDialog.vb
index 44d9659ea4..9377923544 100644
--- a/VECTO/GUI/F_VEH_AuxDlog.vb
+++ b/VECTO/GUI/VehicleAuxiliariesDialog.vb
@@ -17,7 +17,7 @@ Imports TUGraz.VectoCore.Models.Declaration
 ''' <summary>
 ''' Aux Config Editor (Job Editor sub-dialog)
 ''' </summary>
-Public Class F_VEH_AuxDlog
+Public Class VehicleAuxiliariesDialog
 	Public VehPath As String = ""
 
 	Public Sub New()
@@ -94,7 +94,7 @@ Public Class F_VEH_AuxDlog
 
 	'Browse for .vaux files
 	Private Sub BtBrowse_Click(sender As Object, e As EventArgs) Handles BtBrowse.Click
-		If fbAUX.OpenDialog(fFileRepl(TbPath.Text, VehPath)) Then TbPath.Text = fFileWoDir(fbAUX.Files(0), VehPath)
+		If AuxFileBrowser.OpenDialog(fFileRepl(TbPath.Text, VehPath)) Then TbPath.Text = fFileWoDir(AuxFileBrowser.Files(0), VehPath)
 	End Sub
 
 	'Update ID when Aux Type was changed
diff --git a/VECTO/GUI/F_VEH_Axle.Designer.vb b/VECTO/GUI/VehicleAxleDialog.Designer.vb
similarity index 99%
rename from VECTO/GUI/F_VEH_Axle.Designer.vb
rename to VECTO/GUI/VehicleAxleDialog.Designer.vb
index 9e3467ae73..8516f0a970 100644
--- a/VECTO/GUI/F_VEH_Axle.Designer.vb
+++ b/VECTO/GUI/VehicleAxleDialog.Designer.vb
@@ -12,7 +12,7 @@ Imports System.ComponentModel
 Imports Microsoft.VisualBasic.CompilerServices
 
 <DesignerGenerated()> _
-Partial Class F_VEH_Axle
+Partial Class VehicleAxleDialog
 	Inherits Form
 
 	'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
@@ -276,7 +276,7 @@ Partial Class F_VEH_Axle
 		Me.FormBorderStyle = FormBorderStyle.FixedDialog
 		Me.MaximizeBox = False
 		Me.MinimizeBox = False
-		Me.Name = "F_VEH_Axle"
+		Me.Name = "VehicleAxleDialog"
 		Me.ShowInTaskbar = False
 		Me.StartPosition = FormStartPosition.CenterParent
 		Me.Text = "Axle configuration"
diff --git a/VECTO/GUI/F_VEH_Axle.resx b/VECTO/GUI/VehicleAxleDialog.resx
similarity index 100%
rename from VECTO/GUI/F_VEH_Axle.resx
rename to VECTO/GUI/VehicleAxleDialog.resx
diff --git a/VECTO/GUI/F_VEH_Axle.vb b/VECTO/GUI/VehicleAxleDialog.vb
similarity index 98%
rename from VECTO/GUI/F_VEH_Axle.vb
rename to VECTO/GUI/VehicleAxleDialog.vb
index e8626c4a61..43a6468b52 100644
--- a/VECTO/GUI/F_VEH_Axle.vb
+++ b/VECTO/GUI/VehicleAxleDialog.vb
@@ -18,7 +18,7 @@ Imports TUGraz.VectoCore.Models.Declaration
 ''' <summary>
 ''' Axle Config Editor (Vehicle Editor sub-dialog)
 ''' </summary>
-Public Class F_VEH_Axle
+Public Class VehicleAxleDialog
 	Public Sub New()
 		InitializeComponent()
 
diff --git a/VECTO/GUI/F_VEH.Designer.vb b/VECTO/GUI/VehicleForm.Designer.vb
similarity index 96%
rename from VECTO/GUI/F_VEH.Designer.vb
rename to VECTO/GUI/VehicleForm.Designer.vb
index 5277f4332f..1544567384 100644
--- a/VECTO/GUI/F_VEH.Designer.vb
+++ b/VECTO/GUI/VehicleForm.Designer.vb
@@ -1,1085 +1,1085 @@
-' Copyright 2014 European Union.
-' Licensed under the EUPL (the 'Licence');
-'
-' * You may not use this work except in compliance with the Licence.
-' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
-' * Unless required by applicable law or agreed to in writing,
-'   software distributed under the Licence is distributed on an "AS IS" basis,
-'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-'
-' See the LICENSE.txt for the specific language governing permissions and limitations.
-Imports System.ComponentModel
-Imports System.Linq
-Imports Microsoft.VisualBasic.CompilerServices
-Imports TUGraz.VectoCommon.Models
-
-<DesignerGenerated()> _
-Partial Class F_VEH
-	Inherits Form
-
-	'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
-	<DebuggerNonUserCode()> _
-	Protected Overrides Sub Dispose(ByVal disposing As Boolean)
-		Try
-			If disposing AndAlso components IsNot Nothing Then
-				components.Dispose()
-			End If
-		Finally
-			MyBase.Dispose(disposing)
-		End Try
-	End Sub
-
-	'Wird vom Windows Form-Designer benötigt.
-	Private components As IContainer
-
-	'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
-	'Das Bearbeiten ist mit dem Windows Form-Designer möglich.  
-	'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
-	<DebuggerStepThrough()> _
-	Private Sub InitializeComponent()
-		Me.components = New Container()
-		Dim resources As ComponentResourceManager = New ComponentResourceManager(GetType(F_VEH))
-		Me.Label1 = New Label()
-		Me.TbMass = New TextBox()
-		Me.Label2 = New Label()
-		Me.TbLoad = New TextBox()
-		Me.Label3 = New Label()
-		Me.TBcdA = New TextBox()
-		Me.Label13 = New Label()
-		Me.TBrdyn = New TextBox()
-		Me.ButOK = New Button()
-		Me.ButCancel = New Button()
-		Me.Label14 = New Label()
-		Me.Label31 = New Label()
-		Me.Label35 = New Label()
-		Me.CbCdMode = New ComboBox()
-		Me.TbCdFile = New TextBox()
-		Me.BtCdFileBrowse = New Button()
-		Me.GroupBox6 = New GroupBox()
-		Me.BtCdFileOpen = New Button()
-		Me.LbCdMode = New Label()
-		Me.ToolStrip1 = New ToolStrip()
-		Me.ToolStripBtNew = New ToolStripButton()
-		Me.ToolStripBtOpen = New ToolStripButton()
-		Me.ToolStripBtSave = New ToolStripButton()
-		Me.ToolStripBtSaveAs = New ToolStripButton()
-		Me.ToolStripSeparator3 = New ToolStripSeparator()
-		Me.ToolStripBtSendTo = New ToolStripButton()
-		Me.ToolStripSeparator1 = New ToolStripSeparator()
-		Me.ToolStripButton1 = New ToolStripButton()
-		Me.GroupBox7 = New GroupBox()
-		Me.PnRt = New Panel()
-		Me.Label15 = New Label()
-		Me.BtRtBrowse = New Button()
-		Me.TbRtPath = New TextBox()
-		Me.Label45 = New Label()
-		Me.LbRtRatio = New Label()
-		Me.TbRtRatio = New TextBox()
-		Me.CbRtType = New ComboBox()
-		Me.Label46 = New Label()
-		Me.Label50 = New Label()
-		Me.TbMassExtra = New TextBox()
-		Me.GroupBox8 = New GroupBox()
-		Me.PnWheelDiam = New Panel()
-		Me.Label6 = New Label()
-		Me.ButAxlRem = New Button()
-		Me.LvRRC = New ListView()
-		Me.ColumnHeader7 = CType(New ColumnHeader(), ColumnHeader)
-		Me.ColumnHeader8 = CType(New ColumnHeader(), ColumnHeader)
-		Me.ColumnHeader2 = CType(New ColumnHeader(), ColumnHeader)
-		Me.ColumnHeader9 = CType(New ColumnHeader(), ColumnHeader)
-		Me.ColumnHeader1 = CType(New ColumnHeader(), ColumnHeader)
-		Me.ColumnHeader3 = CType(New ColumnHeader(), ColumnHeader)
-		Me.ColumnHeader4 = CType(New ColumnHeader(), ColumnHeader)
-		Me.ButAxlAdd = New Button()
-		Me.CbAxleConfig = New ComboBox()
-		Me.CbCat = New ComboBox()
-		Me.Label5 = New Label()
-		Me.Label9 = New Label()
-		Me.TbMassMass = New TextBox()
-		Me.StatusStrip1 = New StatusStrip()
-		Me.LbStatus = New ToolStripStatusLabel()
-		Me.TbHDVclass = New TextBox()
-		Me.Label11 = New Label()
-		Me.TbLoadingMax = New TextBox()
-		Me.Label22 = New Label()
-		Me.GroupBox1 = New GroupBox()
-		Me.PnLoad = New Panel()
-		Me.GrAirRes = New GroupBox()
-		Me.PnCdATrTr = New Panel()
-		Me.Label38 = New Label()
-		Me.PictureBox1 = New PictureBox()
-		Me.CmOpenFile = New ContextMenuStrip(Me.components)
-		Me.OpenWithToolStripMenuItem = New ToolStripMenuItem()
-		Me.ShowInFolderToolStripMenuItem = New ToolStripMenuItem()
-		Me.PnAll = New Panel()
-		Me.GroupBox2 = New GroupBox()
-		Me.pnAngularGearFields = New Panel()
-		Me.Label4 = New Label()
-		Me.Label12 = New Label()
-		Me.Label10 = New Label()
-		Me.tbAngularGearRatio = New TextBox()
-		Me.btAngularGearLossMapBrowse = New Button()
-		Me.tbAngularGearLossMapPath = New TextBox()
-		Me.cbAngularGearType = New ComboBox()
-		Me.PicVehicle = New PictureBox()
-		Me.Label8 = New Label()
-		Me.ToolTip1 = New ToolTip(Me.components)
-		Me.GroupBox3 = New GroupBox()
-		Me.GroupBox6.SuspendLayout()
-		Me.ToolStrip1.SuspendLayout()
-		Me.GroupBox7.SuspendLayout()
-		Me.PnRt.SuspendLayout()
-		Me.GroupBox8.SuspendLayout()
-		Me.PnWheelDiam.SuspendLayout()
-		Me.StatusStrip1.SuspendLayout()
-		Me.GroupBox1.SuspendLayout()
-		Me.PnLoad.SuspendLayout()
-		Me.GrAirRes.SuspendLayout()
-		Me.PnCdATrTr.SuspendLayout()
-		CType(Me.PictureBox1, ISupportInitialize).BeginInit()
-		Me.CmOpenFile.SuspendLayout()
-		Me.PnAll.SuspendLayout()
-		Me.GroupBox2.SuspendLayout()
-		Me.pnAngularGearFields.SuspendLayout()
-		CType(Me.PicVehicle, ISupportInitialize).BeginInit()
-		Me.GroupBox3.SuspendLayout()
-		Me.SuspendLayout()
-		'
-		'Label1
-		'
-		Me.Label1.AutoSize = True
-		Me.Label1.Location = New Point(62, 22)
-		Me.Label1.Name = "Label1"
-		Me.Label1.Size = New Size(104, 13)
-		Me.Label1.TabIndex = 0
-		Me.Label1.Text = "Curb Weight Vehicle"
-		'
-		'TbMass
-		'
-		Me.TbMass.Location = New Point(172, 19)
-		Me.TbMass.Name = "TbMass"
-		Me.TbMass.Size = New Size(57, 20)
-		Me.TbMass.TabIndex = 0
-		'
-		'Label2
-		'
-		Me.Label2.AutoSize = True
-		Me.Label2.Location = New Point(115, 31)
-		Me.Label2.Name = "Label2"
-		Me.Label2.Size = New Size(45, 13)
-		Me.Label2.TabIndex = 2
-		Me.Label2.Text = "Loading"
-		'
-		'TbLoad
-		'
-		Me.TbLoad.Location = New Point(166, 28)
-		Me.TbLoad.Name = "TbLoad"
-		Me.TbLoad.Size = New Size(57, 20)
-		Me.TbLoad.TabIndex = 1
-		'
-		'Label3
-		'
-		Me.Label3.AutoSize = True
-		Me.Label3.Location = New Point(3, 6)
-		Me.Label3.Name = "Label3"
-		Me.Label3.Size = New Size(37, 13)
-		Me.Label3.TabIndex = 8
-		Me.Label3.Text = "cd x A"
-		'
-		'TBcdA
-		'
-		Me.TBcdA.Location = New Point(46, 3)
-		Me.TBcdA.Name = "TBcdA"
-		Me.TBcdA.Size = New Size(57, 20)
-		Me.TBcdA.TabIndex = 0
-		'
-		'Label13
-		'
-		Me.Label13.AutoSize = True
-		Me.Label13.Location = New Point(3, 7)
-		Me.Label13.Name = "Label13"
-		Me.Label13.Size = New Size(40, 13)
-		Me.Label13.TabIndex = 6
-		Me.Label13.Text = "Radius"
-		'
-		'TBrdyn
-		'
-		Me.TBrdyn.Location = New Point(46, 4)
-		Me.TBrdyn.Name = "TBrdyn"
-		Me.TBrdyn.Size = New Size(57, 20)
-		Me.TBrdyn.TabIndex = 0
-		'
-		'ButOK
-		'
-		Me.ButOK.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Right), AnchorStyles)
-		Me.ButOK.Location = New Point(421, 661)
-		Me.ButOK.Name = "ButOK"
-		Me.ButOK.Size = New Size(75, 23)
-		Me.ButOK.TabIndex = 5
-		Me.ButOK.Text = "Save"
-		Me.ButOK.UseVisualStyleBackColor = True
-		'
-		'ButCancel
-		'
-		Me.ButCancel.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Right), AnchorStyles)
-		Me.ButCancel.DialogResult = DialogResult.Cancel
-		Me.ButCancel.Location = New Point(502, 661)
-		Me.ButCancel.Name = "ButCancel"
-		Me.ButCancel.Size = New Size(75, 23)
-		Me.ButCancel.TabIndex = 6
-		Me.ButCancel.Text = "Cancel"
-		Me.ButCancel.UseVisualStyleBackColor = True
-		'
-		'Label14
-		'
-		Me.Label14.AutoSize = True
-		Me.Label14.Location = New Point(231, 22)
-		Me.Label14.Name = "Label14"
-		Me.Label14.Size = New Size(25, 13)
-		Me.Label14.TabIndex = 24
-		Me.Label14.Text = "[kg]"
-		'
-		'Label31
-		'
-		Me.Label31.AutoSize = True
-		Me.Label31.Location = New Point(225, 31)
-		Me.Label31.Name = "Label31"
-		Me.Label31.Size = New Size(25, 13)
-		Me.Label31.TabIndex = 24
-		Me.Label31.Text = "[kg]"
-		'
-		'Label35
-		'
-		Me.Label35.AutoSize = True
-		Me.Label35.Location = New Point(105, 7)
-		Me.Label35.Name = "Label35"
-		Me.Label35.Size = New Size(29, 13)
-		Me.Label35.TabIndex = 24
-		Me.Label35.Text = "[mm]"
-		'
-		'CbCdMode
-		'
-		Me.CbCdMode.DropDownStyle = ComboBoxStyle.DropDownList
-		Me.CbCdMode.FormattingEnabled = True
-		Me.CbCdMode.Location = New Point(6, 19)
-		Me.CbCdMode.Name = "CbCdMode"
-		Me.CbCdMode.Size = New Size(207, 21)
-		Me.CbCdMode.TabIndex = 0
-		'
-		'TbCdFile
-		'
-		Me.TbCdFile.Anchor = CType((((AnchorStyles.Top Or AnchorStyles.Bottom) _
-			Or AnchorStyles.Left) _
-			Or AnchorStyles.Right), AnchorStyles)
-		Me.TbCdFile.Enabled = False
-		Me.TbCdFile.Location = New Point(6, 46)
-		Me.TbCdFile.Name = "TbCdFile"
-		Me.TbCdFile.Size = New Size(504, 20)
-		Me.TbCdFile.TabIndex = 1
-		'
-		'BtCdFileBrowse
-		'
-		Me.BtCdFileBrowse.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Right), AnchorStyles)
-		Me.BtCdFileBrowse.Enabled = False
-		Me.BtCdFileBrowse.Image = My.Resources.Resources.Open_icon
-		Me.BtCdFileBrowse.Location = New Point(510, 43)
-		Me.BtCdFileBrowse.Name = "BtCdFileBrowse"
-		Me.BtCdFileBrowse.Size = New Size(24, 24)
-		Me.BtCdFileBrowse.TabIndex = 2
-		Me.BtCdFileBrowse.UseVisualStyleBackColor = True
-		'
-		'GroupBox6
-		'
-		Me.GroupBox6.Controls.Add(Me.BtCdFileOpen)
-		Me.GroupBox6.Controls.Add(Me.LbCdMode)
-		Me.GroupBox6.Controls.Add(Me.CbCdMode)
-		Me.GroupBox6.Controls.Add(Me.BtCdFileBrowse)
-		Me.GroupBox6.Controls.Add(Me.TbCdFile)
-		Me.GroupBox6.Location = New Point(6, 407)
-		Me.GroupBox6.Name = "GroupBox6"
-		Me.GroupBox6.Size = New Size(562, 74)
-		Me.GroupBox6.TabIndex = 5
-		Me.GroupBox6.TabStop = False
-		Me.GroupBox6.Text = "Cross Wind Correction"
-		'
-		'BtCdFileOpen
-		'
-		Me.BtCdFileOpen.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Right), AnchorStyles)
-		Me.BtCdFileOpen.Enabled = False
-		Me.BtCdFileOpen.Image = My.Resources.Resources.application_export_icon_small
-		Me.BtCdFileOpen.Location = New Point(533, 43)
-		Me.BtCdFileOpen.Name = "BtCdFileOpen"
-		Me.BtCdFileOpen.Size = New Size(24, 24)
-		Me.BtCdFileOpen.TabIndex = 3
-		Me.BtCdFileOpen.TabStop = False
-		Me.BtCdFileOpen.UseVisualStyleBackColor = True
-		'
-		'LbCdMode
-		'
-		Me.LbCdMode.AutoSize = True
-		Me.LbCdMode.Location = New Point(219, 22)
-		Me.LbCdMode.Name = "LbCdMode"
-		Me.LbCdMode.Size = New Size(59, 13)
-		Me.LbCdMode.TabIndex = 28
-		Me.LbCdMode.Text = "LbCdMode"
-		'
-		'ToolStrip1
-		'
-		Me.ToolStrip1.GripStyle = ToolStripGripStyle.Hidden
-		Me.ToolStrip1.Items.AddRange(New ToolStripItem() {Me.ToolStripBtNew, Me.ToolStripBtOpen, Me.ToolStripBtSave, Me.ToolStripBtSaveAs, Me.ToolStripSeparator3, Me.ToolStripBtSendTo, Me.ToolStripSeparator1, Me.ToolStripButton1})
-		Me.ToolStrip1.Location = New Point(0, 0)
-		Me.ToolStrip1.Name = "ToolStrip1"
-		Me.ToolStrip1.Size = New Size(589, 25)
-		Me.ToolStrip1.TabIndex = 29
-		Me.ToolStrip1.Text = "ToolStrip1"
-		'
-		'ToolStripBtNew
-		'
-		Me.ToolStripBtNew.DisplayStyle = ToolStripItemDisplayStyle.Image
-		Me.ToolStripBtNew.Image = My.Resources.Resources.blue_document_icon
-		Me.ToolStripBtNew.ImageTransparentColor = Color.Magenta
-		Me.ToolStripBtNew.Name = "ToolStripBtNew"
-		Me.ToolStripBtNew.Size = New Size(23, 22)
-		Me.ToolStripBtNew.Text = "ToolStripButton1"
-		Me.ToolStripBtNew.ToolTipText = "New"
-		'
-		'ToolStripBtOpen
-		'
-		Me.ToolStripBtOpen.DisplayStyle = ToolStripItemDisplayStyle.Image
-		Me.ToolStripBtOpen.Image = My.Resources.Resources.Open_icon
-		Me.ToolStripBtOpen.ImageTransparentColor = Color.Magenta
-		Me.ToolStripBtOpen.Name = "ToolStripBtOpen"
-		Me.ToolStripBtOpen.Size = New Size(23, 22)
-		Me.ToolStripBtOpen.Text = "ToolStripButton1"
-		Me.ToolStripBtOpen.ToolTipText = "Open..."
-		'
-		'ToolStripBtSave
-		'
-		Me.ToolStripBtSave.DisplayStyle = ToolStripItemDisplayStyle.Image
-		Me.ToolStripBtSave.Image = My.Resources.Resources.Actions_document_save_icon
-		Me.ToolStripBtSave.ImageTransparentColor = Color.Magenta
-		Me.ToolStripBtSave.Name = "ToolStripBtSave"
-		Me.ToolStripBtSave.Size = New Size(23, 22)
-		Me.ToolStripBtSave.Text = "ToolStripButton1"
-		Me.ToolStripBtSave.ToolTipText = "Save"
-		'
-		'ToolStripBtSaveAs
-		'
-		Me.ToolStripBtSaveAs.DisplayStyle = ToolStripItemDisplayStyle.Image
-		Me.ToolStripBtSaveAs.Image = My.Resources.Resources.Actions_document_save_as_icon
-		Me.ToolStripBtSaveAs.ImageTransparentColor = Color.Magenta
-		Me.ToolStripBtSaveAs.Name = "ToolStripBtSaveAs"
-		Me.ToolStripBtSaveAs.Size = New Size(23, 22)
-		Me.ToolStripBtSaveAs.Text = "ToolStripButton1"
-		Me.ToolStripBtSaveAs.ToolTipText = "Save As..."
-		'
-		'ToolStripSeparator3
-		'
-		Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
-		Me.ToolStripSeparator3.Size = New Size(6, 25)
-		'
-		'ToolStripBtSendTo
-		'
-		Me.ToolStripBtSendTo.DisplayStyle = ToolStripItemDisplayStyle.Image
-		Me.ToolStripBtSendTo.Image = My.Resources.Resources.export_icon
-		Me.ToolStripBtSendTo.ImageTransparentColor = Color.Magenta
-		Me.ToolStripBtSendTo.Name = "ToolStripBtSendTo"
-		Me.ToolStripBtSendTo.Size = New Size(23, 22)
-		Me.ToolStripBtSendTo.Text = "Send to Job Editor"
-		Me.ToolStripBtSendTo.ToolTipText = "Send to Job Editor"
-		'
-		'ToolStripSeparator1
-		'
-		Me.ToolStripSeparator1.Name = "ToolStripSeparator1"
-		Me.ToolStripSeparator1.Size = New Size(6, 25)
-		'
-		'ToolStripButton1
-		'
-		Me.ToolStripButton1.DisplayStyle = ToolStripItemDisplayStyle.Image
-		Me.ToolStripButton1.Image = My.Resources.Resources.Help_icon
-		Me.ToolStripButton1.ImageTransparentColor = Color.Magenta
-		Me.ToolStripButton1.Name = "ToolStripButton1"
-		Me.ToolStripButton1.Size = New Size(23, 22)
-		Me.ToolStripButton1.Text = "Help"
-		'
-		'GroupBox7
-		'
-		Me.GroupBox7.Controls.Add(Me.PnRt)
-		Me.GroupBox7.Controls.Add(Me.CbRtType)
-		Me.GroupBox7.Location = New Point(6, 290)
-		Me.GroupBox7.Name = "GroupBox7"
-		Me.GroupBox7.Size = New Size(278, 111)
-		Me.GroupBox7.TabIndex = 3
-		Me.GroupBox7.TabStop = False
-		Me.GroupBox7.Text = "Retarder Losses"
-		'
-		'PnRt
-		'
-		Me.PnRt.Controls.Add(Me.Label15)
-		Me.PnRt.Controls.Add(Me.BtRtBrowse)
-		Me.PnRt.Controls.Add(Me.TbRtPath)
-		Me.PnRt.Controls.Add(Me.Label45)
-		Me.PnRt.Controls.Add(Me.LbRtRatio)
-		Me.PnRt.Controls.Add(Me.TbRtRatio)
-		Me.PnRt.Location = New Point(3, 42)
-		Me.PnRt.Name = "PnRt"
-		Me.PnRt.Size = New Size(272, 63)
-		Me.PnRt.TabIndex = 1
-		'
-		'Label15
-		'
-		Me.Label15.Location = New Point(6, 23)
-		Me.Label15.Name = "Label15"
-		Me.Label15.Size = New Size(201, 16)
-		Me.Label15.TabIndex = 15
-		Me.Label15.Text = "Retarder Loss Map"
-		Me.Label15.TextAlign = ContentAlignment.BottomLeft
-		'
-		'BtRtBrowse
-		'
-		Me.BtRtBrowse.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Left), AnchorStyles)
-		Me.BtRtBrowse.Image = My.Resources.Resources.Open_icon
-		Me.BtRtBrowse.Location = New Point(245, 39)
-		Me.BtRtBrowse.Name = "BtRtBrowse"
-		Me.BtRtBrowse.Size = New Size(24, 24)
-		Me.BtRtBrowse.TabIndex = 14
-		Me.BtRtBrowse.UseVisualStyleBackColor = True
-		'
-		'TbRtPath
-		'
-		Me.TbRtPath.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Left), AnchorStyles)
-		Me.TbRtPath.Location = New Point(6, 41)
-		Me.TbRtPath.Name = "TbRtPath"
-		Me.TbRtPath.Size = New Size(239, 20)
-		Me.TbRtPath.TabIndex = 13
-		'
-		'Label45
-		'
-		Me.Label45.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
-		Me.Label45.AutoSize = True
-		Me.Label45.Location = New Point(251, 4)
-		Me.Label45.Name = "Label45"
-		Me.Label45.Size = New Size(16, 13)
-		Me.Label45.TabIndex = 10
-		Me.Label45.Text = "[-]"
-		'
-		'LbRtRatio
-		'
-		Me.LbRtRatio.Location = New Point(19, 4)
-		Me.LbRtRatio.Name = "LbRtRatio"
-		Me.LbRtRatio.Size = New Size(167, 17)
-		Me.LbRtRatio.TabIndex = 5
-		Me.LbRtRatio.Text = "Ratio"
-		Me.LbRtRatio.TextAlign = ContentAlignment.TopRight
-		'
-		'TbRtRatio
-		'
-		Me.TbRtRatio.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
-		Me.TbRtRatio.Location = New Point(193, 2)
-		Me.TbRtRatio.Name = "TbRtRatio"
-		Me.TbRtRatio.Size = New Size(56, 20)
-		Me.TbRtRatio.TabIndex = 0
-		'
-		'CbRtType
-		'
-		Me.CbRtType.DropDownStyle = ComboBoxStyle.DropDownList
-		Me.CbRtType.FormattingEnabled = True
-		
-		Me.CbRtType.Location = New Point(6, 19)
-		Me.CbRtType.Name = "CbRtType"
-		Me.CbRtType.Size = New Size(266, 21)
-		Me.CbRtType.TabIndex = 0
-		'
-		'Label46
-		'
-		Me.Label46.AutoSize = True
-		Me.Label46.Location = New Point(6, 5)
-		Me.Label46.Name = "Label46"
-		Me.Label46.Size = New Size(154, 13)
-		Me.Label46.TabIndex = 31
-		Me.Label46.Text = "Curb Weight Extra Trailer/Body"
-		'
-		'Label50
-		'
-		Me.Label50.AutoSize = True
-		Me.Label50.Location = New Point(225, 5)
-		Me.Label50.Name = "Label50"
-		Me.Label50.Size = New Size(25, 13)
-		Me.Label50.TabIndex = 24
-		Me.Label50.Text = "[kg]"
-		'
-		'TbMassExtra
-		'
-		Me.TbMassExtra.Location = New Point(166, 2)
-		Me.TbMassExtra.Name = "TbMassExtra"
-		Me.TbMassExtra.Size = New Size(57, 20)
-		Me.TbMassExtra.TabIndex = 0
-		'
-		'GroupBox8
-		'
-		Me.GroupBox8.Controls.Add(Me.Label6)
-		Me.GroupBox8.Controls.Add(Me.ButAxlRem)
-		Me.GroupBox8.Controls.Add(Me.LvRRC)
-		Me.GroupBox8.Controls.Add(Me.ButAxlAdd)
-		Me.GroupBox8.Location = New Point(6, 133)
-		Me.GroupBox8.Name = "GroupBox8"
-		Me.GroupBox8.Size = New Size(562, 151)
-		Me.GroupBox8.TabIndex = 2
-		Me.GroupBox8.TabStop = False
-		Me.GroupBox8.Text = "Axles / Wheels"
-		'
-		'PnWheelDiam
-		'
-		Me.PnWheelDiam.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
-			Or AnchorStyles.Right), AnchorStyles)
-		Me.PnWheelDiam.Controls.Add(Me.Label13)
-		Me.PnWheelDiam.Controls.Add(Me.TBrdyn)
-		Me.PnWheelDiam.Controls.Add(Me.Label35)
-		Me.PnWheelDiam.Location = New Point(3, 16)
-		Me.PnWheelDiam.Name = "PnWheelDiam"
-		Me.PnWheelDiam.Size = New Size(228, 34)
-		Me.PnWheelDiam.TabIndex = 5
-		'
-		'Label6
-		'
-		Me.Label6.AutoSize = True
-		Me.Label6.Location = New Point(450, 121)
-		Me.Label6.Name = "Label6"
-		Me.Label6.Size = New Size(106, 13)
-		Me.Label6.TabIndex = 3
-		Me.Label6.Text = "(Double-Click to Edit)"
-		'
-		'ButAxlRem
-		'
-		Me.ButAxlRem.Image = My.Resources.Resources.minus_circle_icon
-		Me.ButAxlRem.Location = New Point(29, 122)
-		Me.ButAxlRem.Name = "ButAxlRem"
-		Me.ButAxlRem.Size = New Size(24, 24)
-		Me.ButAxlRem.TabIndex = 2
-		Me.ButAxlRem.UseVisualStyleBackColor = True
-		'
-		'LvRRC
-		'
-		Me.LvRRC.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
-			Or AnchorStyles.Right), AnchorStyles)
-		Me.LvRRC.Columns.AddRange(New ColumnHeader() {Me.ColumnHeader7, Me.ColumnHeader8, Me.ColumnHeader2, Me.ColumnHeader9, Me.ColumnHeader1, Me.ColumnHeader3, Me.ColumnHeader4})
-		Me.LvRRC.FullRowSelect = True
-		Me.LvRRC.GridLines = True
-		Me.LvRRC.HideSelection = False
-		Me.LvRRC.Location = New Point(6, 19)
-		Me.LvRRC.MultiSelect = False
-		Me.LvRRC.Name = "LvRRC"
-		Me.LvRRC.Size = New Size(550, 102)
-		Me.LvRRC.TabIndex = 0
-		Me.LvRRC.TabStop = False
-		Me.LvRRC.UseCompatibleStateImageBehavior = False
-		Me.LvRRC.View = View.Details
-		'
-		'ColumnHeader7
-		'
-		Me.ColumnHeader7.Text = "#"
-		Me.ColumnHeader7.Width = 22
-		'
-		'ColumnHeader8
-		'
-		Me.ColumnHeader8.Text = "Rel. load"
-		Me.ColumnHeader8.Width = 62
-		'
-		'ColumnHeader2
-		'
-		Me.ColumnHeader2.Text = "Twin T."
-		Me.ColumnHeader2.Width = 51
-		'
-		'ColumnHeader9
-		'
-		Me.ColumnHeader9.Text = "RRC"
-		Me.ColumnHeader9.Width = 59
-		'
-		'ColumnHeader1
-		'
-		Me.ColumnHeader1.Text = "Fz ISO"
-		Me.ColumnHeader1.Width = 55
-		'
-		'ColumnHeader3
-		'
-		Me.ColumnHeader3.Text = "Wheels"
-		Me.ColumnHeader3.Width = 181
-		'
-		'ColumnHeader4
-		'
-		Me.ColumnHeader4.Text = "Inertia"
-		'
-		'ButAxlAdd
-		'
-		Me.ButAxlAdd.Image = My.Resources.Resources.plus_circle_icon
-		Me.ButAxlAdd.Location = New Point(5, 122)
-		Me.ButAxlAdd.Name = "ButAxlAdd"
-		Me.ButAxlAdd.Size = New Size(24, 24)
-		Me.ButAxlAdd.TabIndex = 1
-		Me.ButAxlAdd.UseVisualStyleBackColor = True
-		'
-		'CbAxleConfig
-		'
-		Me.CbAxleConfig.DropDownStyle = ComboBoxStyle.DropDownList
-		Me.CbAxleConfig.FormattingEnabled = True
-		
-		Me.CbAxleConfig.Location = New Point(153, 80)
-		Me.CbAxleConfig.Name = "CbAxleConfig"
-		Me.CbAxleConfig.Size = New Size(60, 21)
-		Me.CbAxleConfig.TabIndex = 1
-		'
-		'CbCat
-		'
-		Me.CbCat.DropDownStyle = ComboBoxStyle.DropDownList
-		Me.CbCat.FormattingEnabled = True
-		
-		Me.CbCat.Location = New Point(12, 80)
-		Me.CbCat.Name = "CbCat"
-		Me.CbCat.Size = New Size(135, 21)
-		Me.CbCat.TabIndex = 0
-		'
-		'Label5
-		'
-		Me.Label5.AutoSize = True
-		Me.Label5.Location = New Point(13, 110)
-		Me.Label5.Name = "Label5"
-		Me.Label5.Size = New Size(134, 13)
-		Me.Label5.TabIndex = 2
-		Me.Label5.Text = "Gross Vehicle Mass Rating"
-		'
-		'Label9
-		'
-		Me.Label9.AutoSize = True
-		Me.Label9.Location = New Point(197, 110)
-		Me.Label9.Name = "Label9"
-		Me.Label9.Size = New Size(16, 13)
-		Me.Label9.TabIndex = 3
-		Me.Label9.Text = "[t]"
-		Me.Label9.TextAlign = ContentAlignment.MiddleLeft
-		'
-		'TbMassMass
-		'
-		Me.TbMassMass.Location = New Point(153, 107)
-		Me.TbMassMass.Name = "TbMassMass"
-		Me.TbMassMass.Size = New Size(42, 20)
-		Me.TbMassMass.TabIndex = 2
-		'
-		'StatusStrip1
-		'
-		Me.StatusStrip1.Items.AddRange(New ToolStripItem() {Me.LbStatus})
-		Me.StatusStrip1.Location = New Point(0, 687)
-		Me.StatusStrip1.Name = "StatusStrip1"
-		Me.StatusStrip1.Size = New Size(589, 22)
-		Me.StatusStrip1.SizingGrip = False
-		Me.StatusStrip1.TabIndex = 36
-		Me.StatusStrip1.Text = "StatusStrip1"
-		'
-		'LbStatus
-		'
-		Me.LbStatus.Name = "LbStatus"
-		Me.LbStatus.Size = New Size(39, 17)
-		Me.LbStatus.Text = "Status"
-		'
-		'TbHDVclass
-		'
-		Me.TbHDVclass.Location = New Point(153, 133)
-		Me.TbHDVclass.Name = "TbHDVclass"
-		Me.TbHDVclass.ReadOnly = True
-		Me.TbHDVclass.Size = New Size(42, 20)
-		Me.TbHDVclass.TabIndex = 3
-		Me.TbHDVclass.TabStop = False
-		Me.TbHDVclass.TextAlign = HorizontalAlignment.Center
-		'
-		'Label11
-		'
-		Me.Label11.AutoSize = True
-		Me.Label11.Location = New Point(89, 57)
-		Me.Label11.Name = "Label11"
-		Me.Label11.Size = New Size(71, 13)
-		Me.Label11.TabIndex = 31
-		Me.Label11.Text = "Max. Loading"
-		'
-		'TbLoadingMax
-		'
-		Me.TbLoadingMax.Location = New Point(166, 54)
-		Me.TbLoadingMax.Name = "TbLoadingMax"
-		Me.TbLoadingMax.ReadOnly = True
-		Me.TbLoadingMax.Size = New Size(57, 20)
-		Me.TbLoadingMax.TabIndex = 2
-		Me.TbLoadingMax.TabStop = False
-		'
-		'Label22
-		'
-		Me.Label22.AutoSize = True
-		Me.Label22.Location = New Point(225, 57)
-		Me.Label22.Name = "Label22"
-		Me.Label22.Size = New Size(25, 13)
-		Me.Label22.TabIndex = 24
-		Me.Label22.Text = "[kg]"
-		'
-		'GroupBox1
-		'
-		Me.GroupBox1.Controls.Add(Me.PnLoad)
-		Me.GroupBox1.Controls.Add(Me.TbMass)
-		Me.GroupBox1.Controls.Add(Me.Label1)
-		Me.GroupBox1.Controls.Add(Me.Label14)
-		Me.GroupBox1.Location = New Point(6, 3)
-		Me.GroupBox1.Name = "GroupBox1"
-		Me.GroupBox1.Size = New Size(278, 124)
-		Me.GroupBox1.TabIndex = 0
-		Me.GroupBox1.TabStop = False
-		Me.GroupBox1.Text = "Weight / Loading"
-		'
-		'PnLoad
-		'
-		Me.PnLoad.Controls.Add(Me.Label2)
-		Me.PnLoad.Controls.Add(Me.Label31)
-		Me.PnLoad.Controls.Add(Me.TbLoad)
-		Me.PnLoad.Controls.Add(Me.TbMassExtra)
-		Me.PnLoad.Controls.Add(Me.TbLoadingMax)
-		Me.PnLoad.Controls.Add(Me.Label50)
-		Me.PnLoad.Controls.Add(Me.Label46)
-		Me.PnLoad.Controls.Add(Me.Label22)
-		Me.PnLoad.Controls.Add(Me.Label11)
-		Me.PnLoad.Location = New Point(6, 43)
-		Me.PnLoad.Name = "PnLoad"
-		Me.PnLoad.Size = New Size(256, 75)
-		Me.PnLoad.TabIndex = 1
-		'
-		'GrAirRes
-		'
-		Me.GrAirRes.Controls.Add(Me.PnCdATrTr)
-		Me.GrAirRes.Location = New Point(290, 3)
-		Me.GrAirRes.Name = "GrAirRes"
-		Me.GrAirRes.Size = New Size(278, 48)
-		Me.GrAirRes.TabIndex = 1
-		Me.GrAirRes.TabStop = False
-		Me.GrAirRes.Text = "Air Resistance"
-		'
-		'PnCdATrTr
-		'
-		Me.PnCdATrTr.Controls.Add(Me.TBcdA)
-		Me.PnCdATrTr.Controls.Add(Me.Label38)
-		Me.PnCdATrTr.Controls.Add(Me.Label3)
-		Me.PnCdATrTr.Dock = DockStyle.Fill
-		Me.PnCdATrTr.Location = New Point(3, 16)
-		Me.PnCdATrTr.Name = "PnCdATrTr"
-		Me.PnCdATrTr.Size = New Size(272, 29)
-		Me.PnCdATrTr.TabIndex = 0
-		'
-		'Label38
-		'
-		Me.Label38.AutoSize = True
-		Me.Label38.Location = New Point(105, 6)
-		Me.Label38.Name = "Label38"
-		Me.Label38.Size = New Size(24, 13)
-		Me.Label38.TabIndex = 24
-		Me.Label38.Text = "[m²]"
-		'
-		'PictureBox1
-		'
-		Me.PictureBox1.BackColor = Color.White
-		Me.PictureBox1.Image = My.Resources.Resources.VECTO_VEH
-		Me.PictureBox1.Location = New Point(12, 28)
-		Me.PictureBox1.Name = "PictureBox1"
-		Me.PictureBox1.Size = New Size(569, 40)
-		Me.PictureBox1.TabIndex = 37
-		Me.PictureBox1.TabStop = False
-		'
-		'CmOpenFile
-		'
-		Me.CmOpenFile.Items.AddRange(New ToolStripItem() {Me.OpenWithToolStripMenuItem, Me.ShowInFolderToolStripMenuItem})
-		Me.CmOpenFile.Name = "CmOpenFile"
-		Me.CmOpenFile.Size = New Size(153, 48)
-		'
-		'OpenWithToolStripMenuItem
-		'
-		Me.OpenWithToolStripMenuItem.Name = "OpenWithToolStripMenuItem"
-		Me.OpenWithToolStripMenuItem.Size = New Size(152, 22)
-		Me.OpenWithToolStripMenuItem.Text = "Open with ..."
-		'
-		'ShowInFolderToolStripMenuItem
-		'
-		Me.ShowInFolderToolStripMenuItem.Name = "ShowInFolderToolStripMenuItem"
-		Me.ShowInFolderToolStripMenuItem.Size = New Size(152, 22)
-		Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder"
-		'
-		'PnAll
-		'
-		Me.PnAll.Controls.Add(Me.GroupBox3)
-		Me.PnAll.Controls.Add(Me.GroupBox2)
-		Me.PnAll.Controls.Add(Me.GrAirRes)
-		Me.PnAll.Controls.Add(Me.GroupBox1)
-		Me.PnAll.Controls.Add(Me.GroupBox8)
-		Me.PnAll.Controls.Add(Me.GroupBox7)
-		Me.PnAll.Controls.Add(Me.GroupBox6)
-		Me.PnAll.Location = New Point(6, 172)
-		Me.PnAll.Name = "PnAll"
-		Me.PnAll.Size = New Size(575, 485)
-		Me.PnAll.TabIndex = 4
-		'
-		'GroupBox2
-		'
-		Me.GroupBox2.Controls.Add(Me.pnAngularGearFields)
-		Me.GroupBox2.Controls.Add(Me.cbAngularGearType)
-		Me.GroupBox2.Location = New Point(290, 290)
-		Me.GroupBox2.Name = "GroupBox2"
-		Me.GroupBox2.Size = New Size(278, 111)
-		Me.GroupBox2.TabIndex = 4
-		Me.GroupBox2.TabStop = False
-		Me.GroupBox2.Text = "Angular Gear"
-		'
-		'pnAngularGearFields
-		'
-		Me.pnAngularGearFields.Controls.Add(Me.Label4)
-		Me.pnAngularGearFields.Controls.Add(Me.Label12)
-		Me.pnAngularGearFields.Controls.Add(Me.Label10)
-		Me.pnAngularGearFields.Controls.Add(Me.tbAngularGearRatio)
-		Me.pnAngularGearFields.Controls.Add(Me.btAngularGearLossMapBrowse)
-		Me.pnAngularGearFields.Controls.Add(Me.tbAngularGearLossMapPath)
-		Me.pnAngularGearFields.Location = New Point(3, 42)
-		Me.pnAngularGearFields.Name = "pnAngularGearFields"
-		Me.pnAngularGearFields.Size = New Size(272, 63)
-		Me.pnAngularGearFields.TabIndex = 6
-		'
-		'Label4
-		'
-		Me.Label4.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
-		Me.Label4.AutoSize = True
-		Me.Label4.Location = New Point(251, 4)
-		Me.Label4.Name = "Label4"
-		Me.Label4.Size = New Size(16, 13)
-		Me.Label4.TabIndex = 16
-		Me.Label4.Text = "[-]"
-		'
-		'Label12
-		'
-		Me.Label12.Location = New Point(6, 24)
-		Me.Label12.Name = "Label12"
-		Me.Label12.Size = New Size(263, 16)
-		Me.Label12.TabIndex = 17
-		Me.Label12.Text = "Transmission Loss Map or Efficiency Value [0..1]"
-		Me.Label12.TextAlign = ContentAlignment.BottomLeft
-		'
-		'Label10
-		'
-		Me.Label10.Location = New Point(144, 4)
-		Me.Label10.Name = "Label10"
-		Me.Label10.Size = New Size(44, 18)
-		Me.Label10.TabIndex = 15
-		Me.Label10.Text = "Ratio"
-		Me.Label10.TextAlign = ContentAlignment.TopRight
-		'
-		'tbAngularGearRatio
-		'
-		Me.tbAngularGearRatio.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
-		Me.tbAngularGearRatio.Location = New Point(193, 2)
-		Me.tbAngularGearRatio.Name = "tbAngularGearRatio"
-		Me.tbAngularGearRatio.Size = New Size(56, 20)
-		Me.tbAngularGearRatio.TabIndex = 12
-		'
-		'btAngularGearLossMapBrowse
-		'
-		Me.btAngularGearLossMapBrowse.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Left), AnchorStyles)
-		Me.btAngularGearLossMapBrowse.Image = My.Resources.Resources.Open_icon
-		Me.btAngularGearLossMapBrowse.Location = New Point(244, 39)
-		Me.btAngularGearLossMapBrowse.Name = "btAngularGearLossMapBrowse"
-		Me.btAngularGearLossMapBrowse.Size = New Size(24, 24)
-		Me.btAngularGearLossMapBrowse.TabIndex = 14
-		Me.btAngularGearLossMapBrowse.UseVisualStyleBackColor = True
-		'
-		'tbAngularGearLossMapPath
-		'
-		Me.tbAngularGearLossMapPath.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Left), AnchorStyles)
-		Me.tbAngularGearLossMapPath.Location = New Point(6, 41)
-		Me.tbAngularGearLossMapPath.Name = "tbAngularGearLossMapPath"
-		Me.tbAngularGearLossMapPath.Size = New Size(238, 20)
-		Me.tbAngularGearLossMapPath.TabIndex = 13
-		'
-		'cbAngularGearType
-		'
-		Me.cbAngularGearType.DropDownStyle = ComboBoxStyle.DropDownList
-		Me.cbAngularGearType.FormattingEnabled = True
-		
-		Me.cbAngularGearType.Location = New Point(6, 19)
-		Me.cbAngularGearType.Name = "cbAngularGearType"
-		Me.cbAngularGearType.Size = New Size(266, 21)
-		Me.cbAngularGearType.TabIndex = 0
-		'
-		'PicVehicle
-		'
-		Me.PicVehicle.BackColor = Color.LightGray
-		Me.PicVehicle.Location = New Point(281, 74)
-		Me.PicVehicle.Name = "PicVehicle"
-		Me.PicVehicle.Size = New Size(300, 88)
-		Me.PicVehicle.SizeMode = PictureBoxSizeMode.StretchImage
-		Me.PicVehicle.TabIndex = 39
-		Me.PicVehicle.TabStop = False
-		'
-		'Label8
-		'
-		Me.Label8.AutoSize = True
-		Me.Label8.Location = New Point(89, 136)
-		Me.Label8.Name = "Label8"
-		Me.Label8.Size = New Size(58, 13)
-		Me.Label8.TabIndex = 10
-		Me.Label8.Text = "HDV Class"
-		'
-		'GroupBox3
-		'
-		Me.GroupBox3.Controls.Add(Me.PnWheelDiam)
-		Me.GroupBox3.Location = New Point(290, 54)
-		Me.GroupBox3.Name = "GroupBox3"
-		Me.GroupBox3.Size = New Size(278, 73)
-		Me.GroupBox3.TabIndex = 6
-		Me.GroupBox3.TabStop = False
-		Me.GroupBox3.Text = "Dynamic Tire Radius"
-		'
-		'F_VEH
-		'
-		Me.AcceptButton = Me.ButOK
-		Me.AutoScaleDimensions = New SizeF(6.0!, 13.0!)
-		Me.AutoScaleMode = AutoScaleMode.Font
-		Me.CancelButton = Me.ButCancel
-		Me.ClientSize = New Size(589, 709)
-		Me.Controls.Add(Me.Label8)
-		Me.Controls.Add(Me.TbHDVclass)
-		Me.Controls.Add(Me.PicVehicle)
-		Me.Controls.Add(Me.PnAll)
-		Me.Controls.Add(Me.PictureBox1)
-		Me.Controls.Add(Me.Label9)
-		Me.Controls.Add(Me.StatusStrip1)
-		Me.Controls.Add(Me.CbAxleConfig)
-		Me.Controls.Add(Me.TbMassMass)
-		Me.Controls.Add(Me.CbCat)
-		Me.Controls.Add(Me.Label5)
-		Me.Controls.Add(Me.ToolStrip1)
-		Me.Controls.Add(Me.ButCancel)
-		Me.Controls.Add(Me.ButOK)
-		Me.FormBorderStyle = FormBorderStyle.FixedSingle
-		Me.Icon = CType(resources.GetObject("$this.Icon"), Icon)
-		Me.MaximizeBox = False
-		Me.Name = "F_VEH"
-		Me.StartPosition = FormStartPosition.CenterParent
-		Me.Text = "F05_VEH"
-		Me.GroupBox6.ResumeLayout(False)
-		Me.GroupBox6.PerformLayout()
-		Me.ToolStrip1.ResumeLayout(False)
-		Me.ToolStrip1.PerformLayout()
-		Me.GroupBox7.ResumeLayout(False)
-		Me.PnRt.ResumeLayout(False)
-		Me.PnRt.PerformLayout()
-		Me.GroupBox8.ResumeLayout(False)
-		Me.GroupBox8.PerformLayout()
-		Me.PnWheelDiam.ResumeLayout(False)
-		Me.PnWheelDiam.PerformLayout()
-		Me.StatusStrip1.ResumeLayout(False)
-		Me.StatusStrip1.PerformLayout()
-		Me.GroupBox1.ResumeLayout(False)
-		Me.GroupBox1.PerformLayout()
-		Me.PnLoad.ResumeLayout(False)
-		Me.PnLoad.PerformLayout()
-		Me.GrAirRes.ResumeLayout(False)
-		Me.PnCdATrTr.ResumeLayout(False)
-		Me.PnCdATrTr.PerformLayout()
-		CType(Me.PictureBox1, ISupportInitialize).EndInit()
-		Me.CmOpenFile.ResumeLayout(False)
-		Me.PnAll.ResumeLayout(False)
-		Me.GroupBox2.ResumeLayout(False)
-		Me.pnAngularGearFields.ResumeLayout(False)
-		Me.pnAngularGearFields.PerformLayout()
-		CType(Me.PicVehicle, ISupportInitialize).EndInit()
-		Me.GroupBox3.ResumeLayout(False)
-		Me.ResumeLayout(False)
-		Me.PerformLayout()
-
-	End Sub
-	Friend WithEvents Label1 As Label
-	Friend WithEvents TbMass As TextBox
-	Friend WithEvents Label2 As Label
-	Friend WithEvents TbLoad As TextBox
-	Friend WithEvents Label3 As Label
-	Friend WithEvents TBcdA As TextBox
-	Friend WithEvents Label13 As Label
-	Friend WithEvents TBrdyn As TextBox
-	Friend WithEvents ButOK As Button
-	Friend WithEvents ButCancel As Button
-	Friend WithEvents Label14 As Label
-	Friend WithEvents Label31 As Label
-	Friend WithEvents Label35 As Label
-	Friend WithEvents CbCdMode As ComboBox
-	Friend WithEvents TbCdFile As TextBox
-	Friend WithEvents BtCdFileBrowse As Button
-	Friend WithEvents GroupBox6 As GroupBox
-	Friend WithEvents LbCdMode As Label
-	Friend WithEvents ToolStrip1 As ToolStrip
-	Friend WithEvents ToolStripBtNew As ToolStripButton
-	Friend WithEvents ToolStripBtOpen As ToolStripButton
-	Friend WithEvents ToolStripBtSave As ToolStripButton
-	Friend WithEvents ToolStripBtSaveAs As ToolStripButton
-	Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
-	Friend WithEvents ToolStripBtSendTo As ToolStripButton
-	Friend WithEvents GroupBox7 As GroupBox
-	Friend WithEvents LbRtRatio As Label
-	Friend WithEvents TbRtRatio As TextBox
-	Friend WithEvents CbRtType As ComboBox
-	Friend WithEvents Label45 As Label
-	Friend WithEvents PnRt As Panel
-	Friend WithEvents Label46 As Label
-	Friend WithEvents Label50 As Label
-	Friend WithEvents TbMassExtra As TextBox
-	Friend WithEvents GroupBox8 As GroupBox
-	Friend WithEvents ButAxlRem As Button
-	Friend WithEvents LvRRC As ListView
-	Friend WithEvents ColumnHeader7 As ColumnHeader
-	Friend WithEvents ColumnHeader8 As ColumnHeader
-	Friend WithEvents ButAxlAdd As Button
-	Friend WithEvents CbCat As ComboBox
-	Friend WithEvents Label5 As Label
-	Friend WithEvents Label9 As Label
-	Friend WithEvents TbMassMass As TextBox
-	Friend WithEvents ColumnHeader9 As ColumnHeader
-	Friend WithEvents StatusStrip1 As StatusStrip
-	Friend WithEvents LbStatus As ToolStripStatusLabel
-	Friend WithEvents CbAxleConfig As ComboBox
-	Friend WithEvents TbHDVclass As TextBox
-	Friend WithEvents Label11 As Label
-	Friend WithEvents TbLoadingMax As TextBox
-	Friend WithEvents Label22 As Label
-	Friend WithEvents GroupBox1 As GroupBox
-	Friend WithEvents GrAirRes As GroupBox
-	Friend WithEvents PictureBox1 As PictureBox
-	Friend WithEvents ToolStripSeparator1 As ToolStripSeparator
-	Friend WithEvents ToolStripButton1 As ToolStripButton
-	Friend WithEvents CmOpenFile As ContextMenuStrip
-	Friend WithEvents OpenWithToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents ShowInFolderToolStripMenuItem As ToolStripMenuItem
-	Friend WithEvents BtCdFileOpen As Button
-	Friend WithEvents ColumnHeader1 As ColumnHeader
-	Friend WithEvents ColumnHeader2 As ColumnHeader
-	Friend WithEvents PnLoad As Panel
-	Friend WithEvents PnAll As Panel
-	Friend WithEvents Label6 As Label
-	Friend WithEvents ColumnHeader3 As ColumnHeader
-	Friend WithEvents ColumnHeader4 As ColumnHeader
-	Friend WithEvents PnWheelDiam As Panel
-	Friend WithEvents PicVehicle As PictureBox
-	Friend WithEvents Label8 As Label
-	Friend WithEvents PnCdATrTr As Panel
-	Friend WithEvents Label38 As Label
-	Friend WithEvents GroupBox2 As GroupBox
-	Friend WithEvents cbAngularGearType As ComboBox
-	Friend WithEvents Label15 As Label
-	Friend WithEvents BtRtBrowse As Button
-	Friend WithEvents TbRtPath As TextBox
-	Friend WithEvents pnAngularGearFields As Panel
-	Friend WithEvents Label4 As Label
-	Friend WithEvents Label12 As Label
-	Friend WithEvents Label10 As Label
-	Friend WithEvents tbAngularGearRatio As TextBox
-	Friend WithEvents btAngularGearLossMapBrowse As Button
-	Friend WithEvents tbAngularGearLossMapPath As TextBox
-	Friend WithEvents ToolTip1 As ToolTip
-	Friend WithEvents GroupBox3 As GroupBox
-End Class
+' Copyright 2014 European Union.
+' Licensed under the EUPL (the 'Licence');
+'
+' * You may not use this work except in compliance with the Licence.
+' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
+' * Unless required by applicable law or agreed to in writing,
+'   software distributed under the Licence is distributed on an "AS IS" basis,
+'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+'
+' See the LICENSE.txt for the specific language governing permissions and limitations.
+Imports System.ComponentModel
+Imports System.Linq
+Imports Microsoft.VisualBasic.CompilerServices
+Imports TUGraz.VectoCommon.Models
+
+<DesignerGenerated()> _
+Partial Class VehicleForm
+	Inherits Form
+
+	'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
+	<DebuggerNonUserCode()> _
+	Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+		Try
+			If disposing AndAlso components IsNot Nothing Then
+				components.Dispose()
+			End If
+		Finally
+			MyBase.Dispose(disposing)
+		End Try
+	End Sub
+
+	'Wird vom Windows Form-Designer benötigt.
+	Private components As IContainer
+
+	'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
+	'Das Bearbeiten ist mit dem Windows Form-Designer möglich.  
+	'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
+	<DebuggerStepThrough()> _
+	Private Sub InitializeComponent()
+		Me.components = New Container()
+		Dim resources As ComponentResourceManager = New ComponentResourceManager(GetType(VehicleForm))
+		Me.Label1 = New Label()
+		Me.TbMass = New TextBox()
+		Me.Label2 = New Label()
+		Me.TbLoad = New TextBox()
+		Me.Label3 = New Label()
+		Me.TBcdA = New TextBox()
+		Me.Label13 = New Label()
+		Me.TBrdyn = New TextBox()
+		Me.ButOK = New Button()
+		Me.ButCancel = New Button()
+		Me.Label14 = New Label()
+		Me.Label31 = New Label()
+		Me.Label35 = New Label()
+		Me.CbCdMode = New ComboBox()
+		Me.TbCdFile = New TextBox()
+		Me.BtCdFileBrowse = New Button()
+		Me.GroupBox6 = New GroupBox()
+		Me.BtCdFileOpen = New Button()
+		Me.LbCdMode = New Label()
+		Me.ToolStrip1 = New ToolStrip()
+		Me.ToolStripBtNew = New ToolStripButton()
+		Me.ToolStripBtOpen = New ToolStripButton()
+		Me.ToolStripBtSave = New ToolStripButton()
+		Me.ToolStripBtSaveAs = New ToolStripButton()
+		Me.ToolStripSeparator3 = New ToolStripSeparator()
+		Me.ToolStripBtSendTo = New ToolStripButton()
+		Me.ToolStripSeparator1 = New ToolStripSeparator()
+		Me.ToolStripButton1 = New ToolStripButton()
+		Me.GroupBox7 = New GroupBox()
+		Me.PnRt = New Panel()
+		Me.Label15 = New Label()
+		Me.BtRtBrowse = New Button()
+		Me.TbRtPath = New TextBox()
+		Me.Label45 = New Label()
+		Me.LbRtRatio = New Label()
+		Me.TbRtRatio = New TextBox()
+		Me.CbRtType = New ComboBox()
+		Me.Label46 = New Label()
+		Me.Label50 = New Label()
+		Me.TbMassExtra = New TextBox()
+		Me.GroupBox8 = New GroupBox()
+		Me.PnWheelDiam = New Panel()
+		Me.Label6 = New Label()
+		Me.ButAxlRem = New Button()
+		Me.LvRRC = New ListView()
+		Me.ColumnHeader7 = CType(New ColumnHeader(), ColumnHeader)
+		Me.ColumnHeader8 = CType(New ColumnHeader(), ColumnHeader)
+		Me.ColumnHeader2 = CType(New ColumnHeader(), ColumnHeader)
+		Me.ColumnHeader9 = CType(New ColumnHeader(), ColumnHeader)
+		Me.ColumnHeader1 = CType(New ColumnHeader(), ColumnHeader)
+		Me.ColumnHeader3 = CType(New ColumnHeader(), ColumnHeader)
+		Me.ColumnHeader4 = CType(New ColumnHeader(), ColumnHeader)
+		Me.ButAxlAdd = New Button()
+		Me.CbAxleConfig = New ComboBox()
+		Me.CbCat = New ComboBox()
+		Me.Label5 = New Label()
+		Me.Label9 = New Label()
+		Me.TbMassMass = New TextBox()
+		Me.StatusStrip1 = New StatusStrip()
+		Me.LbStatus = New ToolStripStatusLabel()
+		Me.TbHDVclass = New TextBox()
+		Me.Label11 = New Label()
+		Me.TbLoadingMax = New TextBox()
+		Me.Label22 = New Label()
+		Me.GroupBox1 = New GroupBox()
+		Me.PnLoad = New Panel()
+		Me.GrAirRes = New GroupBox()
+		Me.PnCdATrTr = New Panel()
+		Me.Label38 = New Label()
+		Me.PictureBox1 = New PictureBox()
+		Me.CmOpenFile = New ContextMenuStrip(Me.components)
+		Me.OpenWithToolStripMenuItem = New ToolStripMenuItem()
+		Me.ShowInFolderToolStripMenuItem = New ToolStripMenuItem()
+		Me.PnAll = New Panel()
+		Me.GroupBox2 = New GroupBox()
+		Me.pnAngularGearFields = New Panel()
+		Me.Label4 = New Label()
+		Me.Label12 = New Label()
+		Me.Label10 = New Label()
+		Me.tbAngularGearRatio = New TextBox()
+		Me.btAngularGearLossMapBrowse = New Button()
+		Me.tbAngularGearLossMapPath = New TextBox()
+		Me.cbAngularGearType = New ComboBox()
+		Me.PicVehicle = New PictureBox()
+		Me.Label8 = New Label()
+		Me.ToolTip1 = New ToolTip(Me.components)
+		Me.GroupBox3 = New GroupBox()
+		Me.GroupBox6.SuspendLayout()
+		Me.ToolStrip1.SuspendLayout()
+		Me.GroupBox7.SuspendLayout()
+		Me.PnRt.SuspendLayout()
+		Me.GroupBox8.SuspendLayout()
+		Me.PnWheelDiam.SuspendLayout()
+		Me.StatusStrip1.SuspendLayout()
+		Me.GroupBox1.SuspendLayout()
+		Me.PnLoad.SuspendLayout()
+		Me.GrAirRes.SuspendLayout()
+		Me.PnCdATrTr.SuspendLayout()
+		CType(Me.PictureBox1, ISupportInitialize).BeginInit()
+		Me.CmOpenFile.SuspendLayout()
+		Me.PnAll.SuspendLayout()
+		Me.GroupBox2.SuspendLayout()
+		Me.pnAngularGearFields.SuspendLayout()
+		CType(Me.PicVehicle, ISupportInitialize).BeginInit()
+		Me.GroupBox3.SuspendLayout()
+		Me.SuspendLayout()
+		'
+		'Label1
+		'
+		Me.Label1.AutoSize = True
+		Me.Label1.Location = New Point(62, 22)
+		Me.Label1.Name = "Label1"
+		Me.Label1.Size = New Size(104, 13)
+		Me.Label1.TabIndex = 0
+		Me.Label1.Text = "Curb Weight Vehicle"
+		'
+		'TbMass
+		'
+		Me.TbMass.Location = New Point(172, 19)
+		Me.TbMass.Name = "TbMass"
+		Me.TbMass.Size = New Size(57, 20)
+		Me.TbMass.TabIndex = 0
+		'
+		'Label2
+		'
+		Me.Label2.AutoSize = True
+		Me.Label2.Location = New Point(115, 31)
+		Me.Label2.Name = "Label2"
+		Me.Label2.Size = New Size(45, 13)
+		Me.Label2.TabIndex = 2
+		Me.Label2.Text = "Loading"
+		'
+		'TbLoad
+		'
+		Me.TbLoad.Location = New Point(166, 28)
+		Me.TbLoad.Name = "TbLoad"
+		Me.TbLoad.Size = New Size(57, 20)
+		Me.TbLoad.TabIndex = 1
+		'
+		'Label3
+		'
+		Me.Label3.AutoSize = True
+		Me.Label3.Location = New Point(3, 6)
+		Me.Label3.Name = "Label3"
+		Me.Label3.Size = New Size(37, 13)
+		Me.Label3.TabIndex = 8
+		Me.Label3.Text = "cd x A"
+		'
+		'TBcdA
+		'
+		Me.TBcdA.Location = New Point(46, 3)
+		Me.TBcdA.Name = "TBcdA"
+		Me.TBcdA.Size = New Size(57, 20)
+		Me.TBcdA.TabIndex = 0
+		'
+		'Label13
+		'
+		Me.Label13.AutoSize = True
+		Me.Label13.Location = New Point(3, 7)
+		Me.Label13.Name = "Label13"
+		Me.Label13.Size = New Size(40, 13)
+		Me.Label13.TabIndex = 6
+		Me.Label13.Text = "Radius"
+		'
+		'TBrdyn
+		'
+		Me.TBrdyn.Location = New Point(46, 4)
+		Me.TBrdyn.Name = "TBrdyn"
+		Me.TBrdyn.Size = New Size(57, 20)
+		Me.TBrdyn.TabIndex = 0
+		'
+		'ButOK
+		'
+		Me.ButOK.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Right), AnchorStyles)
+		Me.ButOK.Location = New Point(421, 661)
+		Me.ButOK.Name = "ButOK"
+		Me.ButOK.Size = New Size(75, 23)
+		Me.ButOK.TabIndex = 5
+		Me.ButOK.Text = "Save"
+		Me.ButOK.UseVisualStyleBackColor = True
+		'
+		'ButCancel
+		'
+		Me.ButCancel.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Right), AnchorStyles)
+		Me.ButCancel.DialogResult = DialogResult.Cancel
+		Me.ButCancel.Location = New Point(502, 661)
+		Me.ButCancel.Name = "ButCancel"
+		Me.ButCancel.Size = New Size(75, 23)
+		Me.ButCancel.TabIndex = 6
+		Me.ButCancel.Text = "Cancel"
+		Me.ButCancel.UseVisualStyleBackColor = True
+		'
+		'Label14
+		'
+		Me.Label14.AutoSize = True
+		Me.Label14.Location = New Point(231, 22)
+		Me.Label14.Name = "Label14"
+		Me.Label14.Size = New Size(25, 13)
+		Me.Label14.TabIndex = 24
+		Me.Label14.Text = "[kg]"
+		'
+		'Label31
+		'
+		Me.Label31.AutoSize = True
+		Me.Label31.Location = New Point(225, 31)
+		Me.Label31.Name = "Label31"
+		Me.Label31.Size = New Size(25, 13)
+		Me.Label31.TabIndex = 24
+		Me.Label31.Text = "[kg]"
+		'
+		'Label35
+		'
+		Me.Label35.AutoSize = True
+		Me.Label35.Location = New Point(105, 7)
+		Me.Label35.Name = "Label35"
+		Me.Label35.Size = New Size(29, 13)
+		Me.Label35.TabIndex = 24
+		Me.Label35.Text = "[mm]"
+		'
+		'CbCdMode
+		'
+		Me.CbCdMode.DropDownStyle = ComboBoxStyle.DropDownList
+		Me.CbCdMode.FormattingEnabled = True
+		Me.CbCdMode.Location = New Point(6, 19)
+		Me.CbCdMode.Name = "CbCdMode"
+		Me.CbCdMode.Size = New Size(207, 21)
+		Me.CbCdMode.TabIndex = 0
+		'
+		'TbCdFile
+		'
+		Me.TbCdFile.Anchor = CType((((AnchorStyles.Top Or AnchorStyles.Bottom) _
+			Or AnchorStyles.Left) _
+			Or AnchorStyles.Right), AnchorStyles)
+		Me.TbCdFile.Enabled = False
+		Me.TbCdFile.Location = New Point(6, 46)
+		Me.TbCdFile.Name = "TbCdFile"
+		Me.TbCdFile.Size = New Size(504, 20)
+		Me.TbCdFile.TabIndex = 1
+		'
+		'BtCdFileBrowse
+		'
+		Me.BtCdFileBrowse.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Right), AnchorStyles)
+		Me.BtCdFileBrowse.Enabled = False
+		Me.BtCdFileBrowse.Image = My.Resources.Resources.Open_icon
+		Me.BtCdFileBrowse.Location = New Point(510, 43)
+		Me.BtCdFileBrowse.Name = "BtCdFileBrowse"
+		Me.BtCdFileBrowse.Size = New Size(24, 24)
+		Me.BtCdFileBrowse.TabIndex = 2
+		Me.BtCdFileBrowse.UseVisualStyleBackColor = True
+		'
+		'GroupBox6
+		'
+		Me.GroupBox6.Controls.Add(Me.BtCdFileOpen)
+		Me.GroupBox6.Controls.Add(Me.LbCdMode)
+		Me.GroupBox6.Controls.Add(Me.CbCdMode)
+		Me.GroupBox6.Controls.Add(Me.BtCdFileBrowse)
+		Me.GroupBox6.Controls.Add(Me.TbCdFile)
+		Me.GroupBox6.Location = New Point(6, 407)
+		Me.GroupBox6.Name = "GroupBox6"
+		Me.GroupBox6.Size = New Size(562, 74)
+		Me.GroupBox6.TabIndex = 5
+		Me.GroupBox6.TabStop = False
+		Me.GroupBox6.Text = "Cross Wind Correction"
+		'
+		'BtCdFileOpen
+		'
+		Me.BtCdFileOpen.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Right), AnchorStyles)
+		Me.BtCdFileOpen.Enabled = False
+		Me.BtCdFileOpen.Image = My.Resources.Resources.application_export_icon_small
+		Me.BtCdFileOpen.Location = New Point(533, 43)
+		Me.BtCdFileOpen.Name = "BtCdFileOpen"
+		Me.BtCdFileOpen.Size = New Size(24, 24)
+		Me.BtCdFileOpen.TabIndex = 3
+		Me.BtCdFileOpen.TabStop = False
+		Me.BtCdFileOpen.UseVisualStyleBackColor = True
+		'
+		'LbCdMode
+		'
+		Me.LbCdMode.AutoSize = True
+		Me.LbCdMode.Location = New Point(219, 22)
+		Me.LbCdMode.Name = "LbCdMode"
+		Me.LbCdMode.Size = New Size(59, 13)
+		Me.LbCdMode.TabIndex = 28
+		Me.LbCdMode.Text = "LbCdMode"
+		'
+		'ToolStrip1
+		'
+		Me.ToolStrip1.GripStyle = ToolStripGripStyle.Hidden
+		Me.ToolStrip1.Items.AddRange(New ToolStripItem() {Me.ToolStripBtNew, Me.ToolStripBtOpen, Me.ToolStripBtSave, Me.ToolStripBtSaveAs, Me.ToolStripSeparator3, Me.ToolStripBtSendTo, Me.ToolStripSeparator1, Me.ToolStripButton1})
+		Me.ToolStrip1.Location = New Point(0, 0)
+		Me.ToolStrip1.Name = "ToolStrip1"
+		Me.ToolStrip1.Size = New Size(589, 25)
+		Me.ToolStrip1.TabIndex = 29
+		Me.ToolStrip1.Text = "ToolStrip1"
+		'
+		'ToolStripBtNew
+		'
+		Me.ToolStripBtNew.DisplayStyle = ToolStripItemDisplayStyle.Image
+		Me.ToolStripBtNew.Image = My.Resources.Resources.blue_document_icon
+		Me.ToolStripBtNew.ImageTransparentColor = Color.Magenta
+		Me.ToolStripBtNew.Name = "ToolStripBtNew"
+		Me.ToolStripBtNew.Size = New Size(23, 22)
+		Me.ToolStripBtNew.Text = "ToolStripButton1"
+		Me.ToolStripBtNew.ToolTipText = "New"
+		'
+		'ToolStripBtOpen
+		'
+		Me.ToolStripBtOpen.DisplayStyle = ToolStripItemDisplayStyle.Image
+		Me.ToolStripBtOpen.Image = My.Resources.Resources.Open_icon
+		Me.ToolStripBtOpen.ImageTransparentColor = Color.Magenta
+		Me.ToolStripBtOpen.Name = "ToolStripBtOpen"
+		Me.ToolStripBtOpen.Size = New Size(23, 22)
+		Me.ToolStripBtOpen.Text = "ToolStripButton1"
+		Me.ToolStripBtOpen.ToolTipText = "Open..."
+		'
+		'ToolStripBtSave
+		'
+		Me.ToolStripBtSave.DisplayStyle = ToolStripItemDisplayStyle.Image
+		Me.ToolStripBtSave.Image = My.Resources.Resources.Actions_document_save_icon
+		Me.ToolStripBtSave.ImageTransparentColor = Color.Magenta
+		Me.ToolStripBtSave.Name = "ToolStripBtSave"
+		Me.ToolStripBtSave.Size = New Size(23, 22)
+		Me.ToolStripBtSave.Text = "ToolStripButton1"
+		Me.ToolStripBtSave.ToolTipText = "Save"
+		'
+		'ToolStripBtSaveAs
+		'
+		Me.ToolStripBtSaveAs.DisplayStyle = ToolStripItemDisplayStyle.Image
+		Me.ToolStripBtSaveAs.Image = My.Resources.Resources.Actions_document_save_as_icon
+		Me.ToolStripBtSaveAs.ImageTransparentColor = Color.Magenta
+		Me.ToolStripBtSaveAs.Name = "ToolStripBtSaveAs"
+		Me.ToolStripBtSaveAs.Size = New Size(23, 22)
+		Me.ToolStripBtSaveAs.Text = "ToolStripButton1"
+		Me.ToolStripBtSaveAs.ToolTipText = "Save As..."
+		'
+		'ToolStripSeparator3
+		'
+		Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
+		Me.ToolStripSeparator3.Size = New Size(6, 25)
+		'
+		'ToolStripBtSendTo
+		'
+		Me.ToolStripBtSendTo.DisplayStyle = ToolStripItemDisplayStyle.Image
+		Me.ToolStripBtSendTo.Image = My.Resources.Resources.export_icon
+		Me.ToolStripBtSendTo.ImageTransparentColor = Color.Magenta
+		Me.ToolStripBtSendTo.Name = "ToolStripBtSendTo"
+		Me.ToolStripBtSendTo.Size = New Size(23, 22)
+		Me.ToolStripBtSendTo.Text = "Send to Job Editor"
+		Me.ToolStripBtSendTo.ToolTipText = "Send to Job Editor"
+		'
+		'ToolStripSeparator1
+		'
+		Me.ToolStripSeparator1.Name = "ToolStripSeparator1"
+		Me.ToolStripSeparator1.Size = New Size(6, 25)
+		'
+		'ToolStripButton1
+		'
+		Me.ToolStripButton1.DisplayStyle = ToolStripItemDisplayStyle.Image
+		Me.ToolStripButton1.Image = My.Resources.Resources.Help_icon
+		Me.ToolStripButton1.ImageTransparentColor = Color.Magenta
+		Me.ToolStripButton1.Name = "ToolStripButton1"
+		Me.ToolStripButton1.Size = New Size(23, 22)
+		Me.ToolStripButton1.Text = "Help"
+		'
+		'GroupBox7
+		'
+		Me.GroupBox7.Controls.Add(Me.PnRt)
+		Me.GroupBox7.Controls.Add(Me.CbRtType)
+		Me.GroupBox7.Location = New Point(6, 290)
+		Me.GroupBox7.Name = "GroupBox7"
+		Me.GroupBox7.Size = New Size(278, 111)
+		Me.GroupBox7.TabIndex = 3
+		Me.GroupBox7.TabStop = False
+		Me.GroupBox7.Text = "Retarder Losses"
+		'
+		'PnRt
+		'
+		Me.PnRt.Controls.Add(Me.Label15)
+		Me.PnRt.Controls.Add(Me.BtRtBrowse)
+		Me.PnRt.Controls.Add(Me.TbRtPath)
+		Me.PnRt.Controls.Add(Me.Label45)
+		Me.PnRt.Controls.Add(Me.LbRtRatio)
+		Me.PnRt.Controls.Add(Me.TbRtRatio)
+		Me.PnRt.Location = New Point(3, 42)
+		Me.PnRt.Name = "PnRt"
+		Me.PnRt.Size = New Size(272, 63)
+		Me.PnRt.TabIndex = 1
+		'
+		'Label15
+		'
+		Me.Label15.Location = New Point(6, 23)
+		Me.Label15.Name = "Label15"
+		Me.Label15.Size = New Size(201, 16)
+		Me.Label15.TabIndex = 15
+		Me.Label15.Text = "Retarder Loss Map"
+		Me.Label15.TextAlign = ContentAlignment.BottomLeft
+		'
+		'BtRtBrowse
+		'
+		Me.BtRtBrowse.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Left), AnchorStyles)
+		Me.BtRtBrowse.Image = My.Resources.Resources.Open_icon
+		Me.BtRtBrowse.Location = New Point(245, 39)
+		Me.BtRtBrowse.Name = "BtRtBrowse"
+		Me.BtRtBrowse.Size = New Size(24, 24)
+		Me.BtRtBrowse.TabIndex = 14
+		Me.BtRtBrowse.UseVisualStyleBackColor = True
+		'
+		'TbRtPath
+		'
+		Me.TbRtPath.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Left), AnchorStyles)
+		Me.TbRtPath.Location = New Point(6, 41)
+		Me.TbRtPath.Name = "TbRtPath"
+		Me.TbRtPath.Size = New Size(239, 20)
+		Me.TbRtPath.TabIndex = 13
+		'
+		'Label45
+		'
+		Me.Label45.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
+		Me.Label45.AutoSize = True
+		Me.Label45.Location = New Point(251, 4)
+		Me.Label45.Name = "Label45"
+		Me.Label45.Size = New Size(16, 13)
+		Me.Label45.TabIndex = 10
+		Me.Label45.Text = "[-]"
+		'
+		'LbRtRatio
+		'
+		Me.LbRtRatio.Location = New Point(19, 4)
+		Me.LbRtRatio.Name = "LbRtRatio"
+		Me.LbRtRatio.Size = New Size(167, 17)
+		Me.LbRtRatio.TabIndex = 5
+		Me.LbRtRatio.Text = "Ratio"
+		Me.LbRtRatio.TextAlign = ContentAlignment.TopRight
+		'
+		'TbRtRatio
+		'
+		Me.TbRtRatio.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
+		Me.TbRtRatio.Location = New Point(193, 2)
+		Me.TbRtRatio.Name = "TbRtRatio"
+		Me.TbRtRatio.Size = New Size(56, 20)
+		Me.TbRtRatio.TabIndex = 0
+		'
+		'CbRtType
+		'
+		Me.CbRtType.DropDownStyle = ComboBoxStyle.DropDownList
+		Me.CbRtType.FormattingEnabled = True
+
+		Me.CbRtType.Location = New Point(6, 19)
+		Me.CbRtType.Name = "CbRtType"
+		Me.CbRtType.Size = New Size(266, 21)
+		Me.CbRtType.TabIndex = 0
+		'
+		'Label46
+		'
+		Me.Label46.AutoSize = True
+		Me.Label46.Location = New Point(6, 5)
+		Me.Label46.Name = "Label46"
+		Me.Label46.Size = New Size(154, 13)
+		Me.Label46.TabIndex = 31
+		Me.Label46.Text = "Curb Weight Extra Trailer/Body"
+		'
+		'Label50
+		'
+		Me.Label50.AutoSize = True
+		Me.Label50.Location = New Point(225, 5)
+		Me.Label50.Name = "Label50"
+		Me.Label50.Size = New Size(25, 13)
+		Me.Label50.TabIndex = 24
+		Me.Label50.Text = "[kg]"
+		'
+		'TbMassExtra
+		'
+		Me.TbMassExtra.Location = New Point(166, 2)
+		Me.TbMassExtra.Name = "TbMassExtra"
+		Me.TbMassExtra.Size = New Size(57, 20)
+		Me.TbMassExtra.TabIndex = 0
+		'
+		'GroupBox8
+		'
+		Me.GroupBox8.Controls.Add(Me.Label6)
+		Me.GroupBox8.Controls.Add(Me.ButAxlRem)
+		Me.GroupBox8.Controls.Add(Me.LvRRC)
+		Me.GroupBox8.Controls.Add(Me.ButAxlAdd)
+		Me.GroupBox8.Location = New Point(6, 133)
+		Me.GroupBox8.Name = "GroupBox8"
+		Me.GroupBox8.Size = New Size(562, 151)
+		Me.GroupBox8.TabIndex = 2
+		Me.GroupBox8.TabStop = False
+		Me.GroupBox8.Text = "Axles / Wheels"
+		'
+		'PnWheelDiam
+		'
+		Me.PnWheelDiam.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
+			Or AnchorStyles.Right), AnchorStyles)
+		Me.PnWheelDiam.Controls.Add(Me.Label13)
+		Me.PnWheelDiam.Controls.Add(Me.TBrdyn)
+		Me.PnWheelDiam.Controls.Add(Me.Label35)
+		Me.PnWheelDiam.Location = New Point(3, 16)
+		Me.PnWheelDiam.Name = "PnWheelDiam"
+		Me.PnWheelDiam.Size = New Size(228, 34)
+		Me.PnWheelDiam.TabIndex = 5
+		'
+		'Label6
+		'
+		Me.Label6.AutoSize = True
+		Me.Label6.Location = New Point(450, 121)
+		Me.Label6.Name = "Label6"
+		Me.Label6.Size = New Size(106, 13)
+		Me.Label6.TabIndex = 3
+		Me.Label6.Text = "(Double-Click to Edit)"
+		'
+		'ButAxlRem
+		'
+		Me.ButAxlRem.Image = My.Resources.Resources.minus_circle_icon
+		Me.ButAxlRem.Location = New Point(29, 122)
+		Me.ButAxlRem.Name = "ButAxlRem"
+		Me.ButAxlRem.Size = New Size(24, 24)
+		Me.ButAxlRem.TabIndex = 2
+		Me.ButAxlRem.UseVisualStyleBackColor = True
+		'
+		'LvRRC
+		'
+		Me.LvRRC.Anchor = CType(((AnchorStyles.Top Or AnchorStyles.Left) _
+			Or AnchorStyles.Right), AnchorStyles)
+		Me.LvRRC.Columns.AddRange(New ColumnHeader() {Me.ColumnHeader7, Me.ColumnHeader8, Me.ColumnHeader2, Me.ColumnHeader9, Me.ColumnHeader1, Me.ColumnHeader3, Me.ColumnHeader4})
+		Me.LvRRC.FullRowSelect = True
+		Me.LvRRC.GridLines = True
+		Me.LvRRC.HideSelection = False
+		Me.LvRRC.Location = New Point(6, 19)
+		Me.LvRRC.MultiSelect = False
+		Me.LvRRC.Name = "LvRRC"
+		Me.LvRRC.Size = New Size(550, 102)
+		Me.LvRRC.TabIndex = 0
+		Me.LvRRC.TabStop = False
+		Me.LvRRC.UseCompatibleStateImageBehavior = False
+		Me.LvRRC.View = View.Details
+		'
+		'ColumnHeader7
+		'
+		Me.ColumnHeader7.Text = "#"
+		Me.ColumnHeader7.Width = 22
+		'
+		'ColumnHeader8
+		'
+		Me.ColumnHeader8.Text = "Rel. load"
+		Me.ColumnHeader8.Width = 62
+		'
+		'ColumnHeader2
+		'
+		Me.ColumnHeader2.Text = "Twin T."
+		Me.ColumnHeader2.Width = 51
+		'
+		'ColumnHeader9
+		'
+		Me.ColumnHeader9.Text = "RRC"
+		Me.ColumnHeader9.Width = 59
+		'
+		'ColumnHeader1
+		'
+		Me.ColumnHeader1.Text = "Fz ISO"
+		Me.ColumnHeader1.Width = 55
+		'
+		'ColumnHeader3
+		'
+		Me.ColumnHeader3.Text = "Wheels"
+		Me.ColumnHeader3.Width = 181
+		'
+		'ColumnHeader4
+		'
+		Me.ColumnHeader4.Text = "Inertia"
+		'
+		'ButAxlAdd
+		'
+		Me.ButAxlAdd.Image = My.Resources.Resources.plus_circle_icon
+		Me.ButAxlAdd.Location = New Point(5, 122)
+		Me.ButAxlAdd.Name = "ButAxlAdd"
+		Me.ButAxlAdd.Size = New Size(24, 24)
+		Me.ButAxlAdd.TabIndex = 1
+		Me.ButAxlAdd.UseVisualStyleBackColor = True
+		'
+		'CbAxleConfig
+		'
+		Me.CbAxleConfig.DropDownStyle = ComboBoxStyle.DropDownList
+		Me.CbAxleConfig.FormattingEnabled = True
+
+		Me.CbAxleConfig.Location = New Point(153, 80)
+		Me.CbAxleConfig.Name = "CbAxleConfig"
+		Me.CbAxleConfig.Size = New Size(60, 21)
+		Me.CbAxleConfig.TabIndex = 1
+		'
+		'CbCat
+		'
+		Me.CbCat.DropDownStyle = ComboBoxStyle.DropDownList
+		Me.CbCat.FormattingEnabled = True
+
+		Me.CbCat.Location = New Point(12, 80)
+		Me.CbCat.Name = "CbCat"
+		Me.CbCat.Size = New Size(135, 21)
+		Me.CbCat.TabIndex = 0
+		'
+		'Label5
+		'
+		Me.Label5.AutoSize = True
+		Me.Label5.Location = New Point(13, 110)
+		Me.Label5.Name = "Label5"
+		Me.Label5.Size = New Size(134, 13)
+		Me.Label5.TabIndex = 2
+		Me.Label5.Text = "Gross Vehicle Mass Rating"
+		'
+		'Label9
+		'
+		Me.Label9.AutoSize = True
+		Me.Label9.Location = New Point(197, 110)
+		Me.Label9.Name = "Label9"
+		Me.Label9.Size = New Size(16, 13)
+		Me.Label9.TabIndex = 3
+		Me.Label9.Text = "[t]"
+		Me.Label9.TextAlign = ContentAlignment.MiddleLeft
+		'
+		'TbMassMass
+		'
+		Me.TbMassMass.Location = New Point(153, 107)
+		Me.TbMassMass.Name = "TbMassMass"
+		Me.TbMassMass.Size = New Size(42, 20)
+		Me.TbMassMass.TabIndex = 2
+		'
+		'StatusStrip1
+		'
+		Me.StatusStrip1.Items.AddRange(New ToolStripItem() {Me.LbStatus})
+		Me.StatusStrip1.Location = New Point(0, 687)
+		Me.StatusStrip1.Name = "StatusStrip1"
+		Me.StatusStrip1.Size = New Size(589, 22)
+		Me.StatusStrip1.SizingGrip = False
+		Me.StatusStrip1.TabIndex = 36
+		Me.StatusStrip1.Text = "StatusStrip1"
+		'
+		'LbStatus
+		'
+		Me.LbStatus.Name = "LbStatus"
+		Me.LbStatus.Size = New Size(39, 17)
+		Me.LbStatus.Text = "Status"
+		'
+		'TbHDVclass
+		'
+		Me.TbHDVclass.Location = New Point(153, 133)
+		Me.TbHDVclass.Name = "TbHDVclass"
+		Me.TbHDVclass.ReadOnly = True
+		Me.TbHDVclass.Size = New Size(42, 20)
+		Me.TbHDVclass.TabIndex = 3
+		Me.TbHDVclass.TabStop = False
+		Me.TbHDVclass.TextAlign = HorizontalAlignment.Center
+		'
+		'Label11
+		'
+		Me.Label11.AutoSize = True
+		Me.Label11.Location = New Point(89, 57)
+		Me.Label11.Name = "Label11"
+		Me.Label11.Size = New Size(71, 13)
+		Me.Label11.TabIndex = 31
+		Me.Label11.Text = "Max. Loading"
+		'
+		'TbLoadingMax
+		'
+		Me.TbLoadingMax.Location = New Point(166, 54)
+		Me.TbLoadingMax.Name = "TbLoadingMax"
+		Me.TbLoadingMax.ReadOnly = True
+		Me.TbLoadingMax.Size = New Size(57, 20)
+		Me.TbLoadingMax.TabIndex = 2
+		Me.TbLoadingMax.TabStop = False
+		'
+		'Label22
+		'
+		Me.Label22.AutoSize = True
+		Me.Label22.Location = New Point(225, 57)
+		Me.Label22.Name = "Label22"
+		Me.Label22.Size = New Size(25, 13)
+		Me.Label22.TabIndex = 24
+		Me.Label22.Text = "[kg]"
+		'
+		'GroupBox1
+		'
+		Me.GroupBox1.Controls.Add(Me.PnLoad)
+		Me.GroupBox1.Controls.Add(Me.TbMass)
+		Me.GroupBox1.Controls.Add(Me.Label1)
+		Me.GroupBox1.Controls.Add(Me.Label14)
+		Me.GroupBox1.Location = New Point(6, 3)
+		Me.GroupBox1.Name = "GroupBox1"
+		Me.GroupBox1.Size = New Size(278, 124)
+		Me.GroupBox1.TabIndex = 0
+		Me.GroupBox1.TabStop = False
+		Me.GroupBox1.Text = "Weight / Loading"
+		'
+		'PnLoad
+		'
+		Me.PnLoad.Controls.Add(Me.Label2)
+		Me.PnLoad.Controls.Add(Me.Label31)
+		Me.PnLoad.Controls.Add(Me.TbLoad)
+		Me.PnLoad.Controls.Add(Me.TbMassExtra)
+		Me.PnLoad.Controls.Add(Me.TbLoadingMax)
+		Me.PnLoad.Controls.Add(Me.Label50)
+		Me.PnLoad.Controls.Add(Me.Label46)
+		Me.PnLoad.Controls.Add(Me.Label22)
+		Me.PnLoad.Controls.Add(Me.Label11)
+		Me.PnLoad.Location = New Point(6, 43)
+		Me.PnLoad.Name = "PnLoad"
+		Me.PnLoad.Size = New Size(256, 75)
+		Me.PnLoad.TabIndex = 1
+		'
+		'GrAirRes
+		'
+		Me.GrAirRes.Controls.Add(Me.PnCdATrTr)
+		Me.GrAirRes.Location = New Point(290, 3)
+		Me.GrAirRes.Name = "GrAirRes"
+		Me.GrAirRes.Size = New Size(278, 48)
+		Me.GrAirRes.TabIndex = 1
+		Me.GrAirRes.TabStop = False
+		Me.GrAirRes.Text = "Air Resistance"
+		'
+		'PnCdATrTr
+		'
+		Me.PnCdATrTr.Controls.Add(Me.TBcdA)
+		Me.PnCdATrTr.Controls.Add(Me.Label38)
+		Me.PnCdATrTr.Controls.Add(Me.Label3)
+		Me.PnCdATrTr.Dock = DockStyle.Fill
+		Me.PnCdATrTr.Location = New Point(3, 16)
+		Me.PnCdATrTr.Name = "PnCdATrTr"
+		Me.PnCdATrTr.Size = New Size(272, 29)
+		Me.PnCdATrTr.TabIndex = 0
+		'
+		'Label38
+		'
+		Me.Label38.AutoSize = True
+		Me.Label38.Location = New Point(105, 6)
+		Me.Label38.Name = "Label38"
+		Me.Label38.Size = New Size(24, 13)
+		Me.Label38.TabIndex = 24
+		Me.Label38.Text = "[m²]"
+		'
+		'PictureBox1
+		'
+		Me.PictureBox1.BackColor = Color.White
+		Me.PictureBox1.Image = My.Resources.Resources.VECTO_VEH
+		Me.PictureBox1.Location = New Point(12, 28)
+		Me.PictureBox1.Name = "PictureBox1"
+		Me.PictureBox1.Size = New Size(569, 40)
+		Me.PictureBox1.TabIndex = 37
+		Me.PictureBox1.TabStop = False
+		'
+		'CmOpenFile
+		'
+		Me.CmOpenFile.Items.AddRange(New ToolStripItem() {Me.OpenWithToolStripMenuItem, Me.ShowInFolderToolStripMenuItem})
+		Me.CmOpenFile.Name = "CmOpenFile"
+		Me.CmOpenFile.Size = New Size(153, 48)
+		'
+		'OpenWithToolStripMenuItem
+		'
+		Me.OpenWithToolStripMenuItem.Name = "OpenWithToolStripMenuItem"
+		Me.OpenWithToolStripMenuItem.Size = New Size(152, 22)
+		Me.OpenWithToolStripMenuItem.Text = "Open with ..."
+		'
+		'ShowInFolderToolStripMenuItem
+		'
+		Me.ShowInFolderToolStripMenuItem.Name = "ShowInFolderToolStripMenuItem"
+		Me.ShowInFolderToolStripMenuItem.Size = New Size(152, 22)
+		Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder"
+		'
+		'PnAll
+		'
+		Me.PnAll.Controls.Add(Me.GroupBox3)
+		Me.PnAll.Controls.Add(Me.GroupBox2)
+		Me.PnAll.Controls.Add(Me.GrAirRes)
+		Me.PnAll.Controls.Add(Me.GroupBox1)
+		Me.PnAll.Controls.Add(Me.GroupBox8)
+		Me.PnAll.Controls.Add(Me.GroupBox7)
+		Me.PnAll.Controls.Add(Me.GroupBox6)
+		Me.PnAll.Location = New Point(6, 172)
+		Me.PnAll.Name = "PnAll"
+		Me.PnAll.Size = New Size(575, 485)
+		Me.PnAll.TabIndex = 4
+		'
+		'GroupBox2
+		'
+		Me.GroupBox2.Controls.Add(Me.pnAngularGearFields)
+		Me.GroupBox2.Controls.Add(Me.cbAngularGearType)
+		Me.GroupBox2.Location = New Point(290, 290)
+		Me.GroupBox2.Name = "GroupBox2"
+		Me.GroupBox2.Size = New Size(278, 111)
+		Me.GroupBox2.TabIndex = 4
+		Me.GroupBox2.TabStop = False
+		Me.GroupBox2.Text = "Angular Gear"
+		'
+		'pnAngularGearFields
+		'
+		Me.pnAngularGearFields.Controls.Add(Me.Label4)
+		Me.pnAngularGearFields.Controls.Add(Me.Label12)
+		Me.pnAngularGearFields.Controls.Add(Me.Label10)
+		Me.pnAngularGearFields.Controls.Add(Me.tbAngularGearRatio)
+		Me.pnAngularGearFields.Controls.Add(Me.btAngularGearLossMapBrowse)
+		Me.pnAngularGearFields.Controls.Add(Me.tbAngularGearLossMapPath)
+		Me.pnAngularGearFields.Location = New Point(3, 42)
+		Me.pnAngularGearFields.Name = "pnAngularGearFields"
+		Me.pnAngularGearFields.Size = New Size(272, 63)
+		Me.pnAngularGearFields.TabIndex = 6
+		'
+		'Label4
+		'
+		Me.Label4.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
+		Me.Label4.AutoSize = True
+		Me.Label4.Location = New Point(251, 4)
+		Me.Label4.Name = "Label4"
+		Me.Label4.Size = New Size(16, 13)
+		Me.Label4.TabIndex = 16
+		Me.Label4.Text = "[-]"
+		'
+		'Label12
+		'
+		Me.Label12.Location = New Point(6, 24)
+		Me.Label12.Name = "Label12"
+		Me.Label12.Size = New Size(263, 16)
+		Me.Label12.TabIndex = 17
+		Me.Label12.Text = "Transmission Loss Map or Efficiency Value [0..1]"
+		Me.Label12.TextAlign = ContentAlignment.BottomLeft
+		'
+		'Label10
+		'
+		Me.Label10.Location = New Point(144, 4)
+		Me.Label10.Name = "Label10"
+		Me.Label10.Size = New Size(44, 18)
+		Me.Label10.TabIndex = 15
+		Me.Label10.Text = "Ratio"
+		Me.Label10.TextAlign = ContentAlignment.TopRight
+		'
+		'tbAngularGearRatio
+		'
+		Me.tbAngularGearRatio.Anchor = CType((AnchorStyles.Top Or AnchorStyles.Right), AnchorStyles)
+		Me.tbAngularGearRatio.Location = New Point(193, 2)
+		Me.tbAngularGearRatio.Name = "tbAngularGearRatio"
+		Me.tbAngularGearRatio.Size = New Size(56, 20)
+		Me.tbAngularGearRatio.TabIndex = 12
+		'
+		'btAngularGearLossMapBrowse
+		'
+		Me.btAngularGearLossMapBrowse.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Left), AnchorStyles)
+		Me.btAngularGearLossMapBrowse.Image = My.Resources.Resources.Open_icon
+		Me.btAngularGearLossMapBrowse.Location = New Point(244, 39)
+		Me.btAngularGearLossMapBrowse.Name = "btAngularGearLossMapBrowse"
+		Me.btAngularGearLossMapBrowse.Size = New Size(24, 24)
+		Me.btAngularGearLossMapBrowse.TabIndex = 14
+		Me.btAngularGearLossMapBrowse.UseVisualStyleBackColor = True
+		'
+		'tbAngularGearLossMapPath
+		'
+		Me.tbAngularGearLossMapPath.Anchor = CType((AnchorStyles.Bottom Or AnchorStyles.Left), AnchorStyles)
+		Me.tbAngularGearLossMapPath.Location = New Point(6, 41)
+		Me.tbAngularGearLossMapPath.Name = "tbAngularGearLossMapPath"
+		Me.tbAngularGearLossMapPath.Size = New Size(238, 20)
+		Me.tbAngularGearLossMapPath.TabIndex = 13
+		'
+		'cbAngularGearType
+		'
+		Me.cbAngularGearType.DropDownStyle = ComboBoxStyle.DropDownList
+		Me.cbAngularGearType.FormattingEnabled = True
+
+		Me.cbAngularGearType.Location = New Point(6, 19)
+		Me.cbAngularGearType.Name = "cbAngularGearType"
+		Me.cbAngularGearType.Size = New Size(266, 21)
+		Me.cbAngularGearType.TabIndex = 0
+		'
+		'PicVehicle
+		'
+		Me.PicVehicle.BackColor = Color.LightGray
+		Me.PicVehicle.Location = New Point(281, 74)
+		Me.PicVehicle.Name = "PicVehicle"
+		Me.PicVehicle.Size = New Size(300, 88)
+		Me.PicVehicle.SizeMode = PictureBoxSizeMode.StretchImage
+		Me.PicVehicle.TabIndex = 39
+		Me.PicVehicle.TabStop = False
+		'
+		'Label8
+		'
+		Me.Label8.AutoSize = True
+		Me.Label8.Location = New Point(89, 136)
+		Me.Label8.Name = "Label8"
+		Me.Label8.Size = New Size(58, 13)
+		Me.Label8.TabIndex = 10
+		Me.Label8.Text = "HDV Class"
+		'
+		'GroupBox3
+		'
+		Me.GroupBox3.Controls.Add(Me.PnWheelDiam)
+		Me.GroupBox3.Location = New Point(290, 54)
+		Me.GroupBox3.Name = "GroupBox3"
+		Me.GroupBox3.Size = New Size(278, 73)
+		Me.GroupBox3.TabIndex = 6
+		Me.GroupBox3.TabStop = False
+		Me.GroupBox3.Text = "Dynamic Tire Radius"
+		'
+		'F_VEH
+		'
+		Me.AcceptButton = Me.ButOK
+		Me.AutoScaleDimensions = New SizeF(6.0!, 13.0!)
+		Me.AutoScaleMode = AutoScaleMode.Font
+		Me.CancelButton = Me.ButCancel
+		Me.ClientSize = New Size(589, 709)
+		Me.Controls.Add(Me.Label8)
+		Me.Controls.Add(Me.TbHDVclass)
+		Me.Controls.Add(Me.PicVehicle)
+		Me.Controls.Add(Me.PnAll)
+		Me.Controls.Add(Me.PictureBox1)
+		Me.Controls.Add(Me.Label9)
+		Me.Controls.Add(Me.StatusStrip1)
+		Me.Controls.Add(Me.CbAxleConfig)
+		Me.Controls.Add(Me.TbMassMass)
+		Me.Controls.Add(Me.CbCat)
+		Me.Controls.Add(Me.Label5)
+		Me.Controls.Add(Me.ToolStrip1)
+		Me.Controls.Add(Me.ButCancel)
+		Me.Controls.Add(Me.ButOK)
+		Me.FormBorderStyle = FormBorderStyle.FixedSingle
+		Me.Icon = CType(resources.GetObject("$this.Icon"), Icon)
+		Me.MaximizeBox = False
+		Me.Name = "VehicleForm"
+		Me.StartPosition = FormStartPosition.CenterParent
+		Me.Text = "F05_VEH"
+		Me.GroupBox6.ResumeLayout(False)
+		Me.GroupBox6.PerformLayout()
+		Me.ToolStrip1.ResumeLayout(False)
+		Me.ToolStrip1.PerformLayout()
+		Me.GroupBox7.ResumeLayout(False)
+		Me.PnRt.ResumeLayout(False)
+		Me.PnRt.PerformLayout()
+		Me.GroupBox8.ResumeLayout(False)
+		Me.GroupBox8.PerformLayout()
+		Me.PnWheelDiam.ResumeLayout(False)
+		Me.PnWheelDiam.PerformLayout()
+		Me.StatusStrip1.ResumeLayout(False)
+		Me.StatusStrip1.PerformLayout()
+		Me.GroupBox1.ResumeLayout(False)
+		Me.GroupBox1.PerformLayout()
+		Me.PnLoad.ResumeLayout(False)
+		Me.PnLoad.PerformLayout()
+		Me.GrAirRes.ResumeLayout(False)
+		Me.PnCdATrTr.ResumeLayout(False)
+		Me.PnCdATrTr.PerformLayout()
+		CType(Me.PictureBox1, ISupportInitialize).EndInit()
+		Me.CmOpenFile.ResumeLayout(False)
+		Me.PnAll.ResumeLayout(False)
+		Me.GroupBox2.ResumeLayout(False)
+		Me.pnAngularGearFields.ResumeLayout(False)
+		Me.pnAngularGearFields.PerformLayout()
+		CType(Me.PicVehicle, ISupportInitialize).EndInit()
+		Me.GroupBox3.ResumeLayout(False)
+		Me.ResumeLayout(False)
+		Me.PerformLayout()
+
+	End Sub
+	Friend WithEvents Label1 As Label
+	Friend WithEvents TbMass As TextBox
+	Friend WithEvents Label2 As Label
+	Friend WithEvents TbLoad As TextBox
+	Friend WithEvents Label3 As Label
+	Friend WithEvents TBcdA As TextBox
+	Friend WithEvents Label13 As Label
+	Friend WithEvents TBrdyn As TextBox
+	Friend WithEvents ButOK As Button
+	Friend WithEvents ButCancel As Button
+	Friend WithEvents Label14 As Label
+	Friend WithEvents Label31 As Label
+	Friend WithEvents Label35 As Label
+	Friend WithEvents CbCdMode As ComboBox
+	Friend WithEvents TbCdFile As TextBox
+	Friend WithEvents BtCdFileBrowse As Button
+	Friend WithEvents GroupBox6 As GroupBox
+	Friend WithEvents LbCdMode As Label
+	Friend WithEvents ToolStrip1 As ToolStrip
+	Friend WithEvents ToolStripBtNew As ToolStripButton
+	Friend WithEvents ToolStripBtOpen As ToolStripButton
+	Friend WithEvents ToolStripBtSave As ToolStripButton
+	Friend WithEvents ToolStripBtSaveAs As ToolStripButton
+	Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
+	Friend WithEvents ToolStripBtSendTo As ToolStripButton
+	Friend WithEvents GroupBox7 As GroupBox
+	Friend WithEvents LbRtRatio As Label
+	Friend WithEvents TbRtRatio As TextBox
+	Friend WithEvents CbRtType As ComboBox
+	Friend WithEvents Label45 As Label
+	Friend WithEvents PnRt As Panel
+	Friend WithEvents Label46 As Label
+	Friend WithEvents Label50 As Label
+	Friend WithEvents TbMassExtra As TextBox
+	Friend WithEvents GroupBox8 As GroupBox
+	Friend WithEvents ButAxlRem As Button
+	Friend WithEvents LvRRC As ListView
+	Friend WithEvents ColumnHeader7 As ColumnHeader
+	Friend WithEvents ColumnHeader8 As ColumnHeader
+	Friend WithEvents ButAxlAdd As Button
+	Friend WithEvents CbCat As ComboBox
+	Friend WithEvents Label5 As Label
+	Friend WithEvents Label9 As Label
+	Friend WithEvents TbMassMass As TextBox
+	Friend WithEvents ColumnHeader9 As ColumnHeader
+	Friend WithEvents StatusStrip1 As StatusStrip
+	Friend WithEvents LbStatus As ToolStripStatusLabel
+	Friend WithEvents CbAxleConfig As ComboBox
+	Friend WithEvents TbHDVclass As TextBox
+	Friend WithEvents Label11 As Label
+	Friend WithEvents TbLoadingMax As TextBox
+	Friend WithEvents Label22 As Label
+	Friend WithEvents GroupBox1 As GroupBox
+	Friend WithEvents GrAirRes As GroupBox
+	Friend WithEvents PictureBox1 As PictureBox
+	Friend WithEvents ToolStripSeparator1 As ToolStripSeparator
+	Friend WithEvents ToolStripButton1 As ToolStripButton
+	Friend WithEvents CmOpenFile As ContextMenuStrip
+	Friend WithEvents OpenWithToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents ShowInFolderToolStripMenuItem As ToolStripMenuItem
+	Friend WithEvents BtCdFileOpen As Button
+	Friend WithEvents ColumnHeader1 As ColumnHeader
+	Friend WithEvents ColumnHeader2 As ColumnHeader
+	Friend WithEvents PnLoad As Panel
+	Friend WithEvents PnAll As Panel
+	Friend WithEvents Label6 As Label
+	Friend WithEvents ColumnHeader3 As ColumnHeader
+	Friend WithEvents ColumnHeader4 As ColumnHeader
+	Friend WithEvents PnWheelDiam As Panel
+	Friend WithEvents PicVehicle As PictureBox
+	Friend WithEvents Label8 As Label
+	Friend WithEvents PnCdATrTr As Panel
+	Friend WithEvents Label38 As Label
+	Friend WithEvents GroupBox2 As GroupBox
+	Friend WithEvents cbAngularGearType As ComboBox
+	Friend WithEvents Label15 As Label
+	Friend WithEvents BtRtBrowse As Button
+	Friend WithEvents TbRtPath As TextBox
+	Friend WithEvents pnAngularGearFields As Panel
+	Friend WithEvents Label4 As Label
+	Friend WithEvents Label12 As Label
+	Friend WithEvents Label10 As Label
+	Friend WithEvents tbAngularGearRatio As TextBox
+	Friend WithEvents btAngularGearLossMapBrowse As Button
+	Friend WithEvents tbAngularGearLossMapPath As TextBox
+	Friend WithEvents ToolTip1 As ToolTip
+	Friend WithEvents GroupBox3 As GroupBox
+End Class
diff --git a/VECTO/GUI/F_VEH.resx b/VECTO/GUI/VehicleForm.resx
similarity index 100%
rename from VECTO/GUI/F_VEH.resx
rename to VECTO/GUI/VehicleForm.resx
diff --git a/VECTO/GUI/F_VEH.vb b/VECTO/GUI/VehicleForm.vb
similarity index 91%
rename from VECTO/GUI/F_VEH.vb
rename to VECTO/GUI/VehicleForm.vb
index 18ac97f023..870ded15c8 100644
--- a/VECTO/GUI/F_VEH.vb
+++ b/VECTO/GUI/VehicleForm.vb
@@ -1,790 +1,790 @@
-' Copyright 2014 European Union.
-' Licensed under the EUPL (the 'Licence');
-'
-' * You may not use this work except in compliance with the Licence.
-' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
-' * Unless required by applicable law or agreed to in writing,
-'   software distributed under the Licence is distributed on an "AS IS" basis,
-'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-'
-' See the LICENSE.txt for the specific language governing permissions and limitations.
-Option Infer On
-
-Imports System.IO
-Imports System.Linq
-Imports System.Text.RegularExpressions
-Imports TUGraz.VectoCommon.Models
-Imports TUGraz.VectoCommon.Utils
-Imports TUGraz.VectoCore.Models.Declaration
-
-''' <summary>
-''' Vehicle Editor.
-''' </summary>
-Public Class F_VEH
-	Private _axlDlog As F_VEH_Axle
-	Private _hdVclass As String
-	Private _vehFile As String
-	Private _changed As Boolean = False
-	Private _cmFiles As String()
-
-	Public AutoSendTo As Boolean = False
-	Public JobDir As String = ""
-
-	'Close - Check for unsaved changes
-	Private Sub F_VEH_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
-		If e.CloseReason <> CloseReason.ApplicationExitCall And e.CloseReason <> CloseReason.WindowsShutDown Then
-			e.Cancel = ChangeCheckCancel()
-		End If
-	End Sub
-
-	'Initialise form
-	Private Sub F05_VEH_Load(sender As Object, e As EventArgs) Handles MyBase.Load
-		TbLoadingMax.Text = "-"
-		PnLoad.Enabled = Not Cfg.DeclMode
-		ButAxlAdd.Enabled = Not Cfg.DeclMode
-		ButAxlRem.Enabled = Not Cfg.DeclMode
-		CbCdMode.Enabled = Not Cfg.DeclMode
-		PnWheelDiam.Enabled = Not Cfg.DeclMode
-
-		CbCdMode.ValueMember = "Value"
-		CbCdMode.DisplayMember = "Label"
-		CbCdMode.DataSource = [Enum].GetValues(GetType(CrossWindCorrectionMode)) _
-			.Cast(Of CrossWindCorrectionMode) _
-			.Select(Function(mode) New With {Key .Value = mode, .Label = mode.GetLabel()}).ToList()
-
-		CbRtType.ValueMember = "Value"
-		CbRtType.DisplayMember = "Label"
-		CbRtType.DataSource = [Enum].GetValues(GetType(RetarderType)) _
-			.Cast(Of RetarderType) _
-			.Select(Function(type) New With {Key .Value = type, .Label = type.GetLabel()}).ToList()
-
-		CbAxleConfig.ValueMember = "Value"
-		CbAxleConfig.DisplayMember = "Label"
-		CbAxleConfig.DataSource = [Enum].GetValues(GetType(AxleConfiguration)) _
-			.Cast(Of AxleConfiguration) _
-			.Select(Function(category) New With {Key .Value = category, .Label = category.GetName()}).ToList()
-
-		CbCat.ValueMember = "Value"
-		CbCat.DisplayMember = "Label"
-		CbCat.DataSource = [Enum].GetValues(GetType(VehicleCategory)) _
-			.Cast(Of VehicleCategory) _
-			.Select(Function(category) New With {Key .Value = category, .label = category.GetLabel()}).ToList()
-
-		cbAngularGearType.ValueMember = "Value"
-		cbAngularGearType.DisplayMember = "Label"
-		cbAngularGearType.DataSource = [Enum].GetValues(GetType(AngularGearType)) _
-			.Cast(Of AngularGearType).Select(Function(type) New With {Key .Value = type, .Label = type.GetLabel()}).ToList()
-		_axlDlog = New F_VEH_Axle
-
-		_changed = False
-
-		NewVehicle()
-	End Sub
-
-	'Set HDVclasss
-	Private Sub SetHdVclass()
-		If String.IsNullOrEmpty(TbMassMass.Text) Then
-			TbHDVclass.Text = "-"
-			Exit Sub
-		End If
-		Dim vehC = CbCat.SelectedValue
-		Dim axlC = CbAxleConfig.SelectedValue
-		Dim maxMass = (TbMassMass.Text.ToDouble() * 1000).SI(Of Kilogram)()
-
-		_hdVclass = "-"
-		Dim s0 As Segment = Nothing
-		Try
-			s0 = DeclarationData.Segments.Lookup(vehC, axlC, maxMass, 0.SI(Of Kilogram), True)
-
-		Catch
-			' no segment found - ignore
-		End Try
-		If Not s0 Is Nothing Then
-			_hdVclass = s0.VehicleClass
-		End If
-
-
-		TbHDVclass.Text = _hdVclass
-		PicVehicle.Image = ConvPicPath(_hdVclass, False)
-	End Sub
-
-
-	'Set generic values for Declaration mode
-	Private Sub DeclInit()
-		If Not Cfg.DeclMode Then Exit Sub
-
-		If String.IsNullOrEmpty(TbMassMass.Text) Then
-			TbHDVclass.Text = "-"
-			Exit Sub
-		End If
-		Dim vehC = CbCat.SelectedValue
-		Dim axlC = CbAxleConfig.SelectedValue
-		Dim maxMass = (TbMassMass.Text.ToDouble() * 1000).SI(Of Kilogram)()
-
-		Dim s0 As Segment = Nothing
-		Try
-			s0 = DeclarationData.Segments.Lookup(vehC, axlC, maxMass, 0.SI(Of Kilogram), True)
-		Catch
-			' no segment found - ignore
-		End Try
-		If Not s0 Is Nothing Then
-			_hdVclass = s0.VehicleClass
-			Dim axleCount As Short = s0.Missions(0).AxleWeightDistribution.Count()
-			Dim i0 = LvRRC.Items.Count
-
-			If axleCount > i0 Then
-				For i = 1 To axleCount - LvRRC.Items.Count
-					Dim lvi = New ListViewItem
-					lvi.SubItems(0).Text = (i + i0).ToString
-					lvi.SubItems.Add("-")
-					lvi.SubItems.Add("no")
-					lvi.SubItems.Add("")
-					lvi.SubItems.Add("")
-					lvi.SubItems.Add("-")
-					lvi.SubItems.Add("-")
-					LvRRC.Items.Add(lvi)
-				Next
-
-			ElseIf axleCount < LvRRC.Items.Count Then
-				For i = axleCount To LvRRC.Items.Count - 1
-					LvRRC.Items.RemoveAt(LvRRC.Items.Count - 1)
-				Next
-			End If
-
-			PnAll.Enabled = True
-
-		Else
-			PnAll.Enabled = False
-			_hdVclass = "-"
-		End If
-
-		TbMassExtra.Text = "-"
-		TbLoad.Text = "-"
-		CbCdMode.SelectedValue = CrossWindCorrectionMode.DeclarationModeCorrection
-		TbCdFile.Text = ""
-
-		Dim rdyn As Single
-		rdyn = -1
-
-		If rdyn < 0 Then
-			TBrdyn.Text = "-"
-		Else
-			TBrdyn.Text = rdyn
-		End If
-	End Sub
-
-
-#Region "Toolbar"
-
-	'New
-	Private Sub ToolStripBtNew_Click(sender As Object, e As EventArgs) Handles ToolStripBtNew.Click
-		NewVehicle()
-	End Sub
-
-	'Open
-	Private Sub ToolStripBtOpen_Click(sender As Object, e As EventArgs) Handles ToolStripBtOpen.Click
-		If fbVEH.OpenDialog(_vehFile) Then OpenVehicle(fbVEH.Files(0))
-	End Sub
-
-	'Save
-	Private Sub ToolStripBtSave_Click(sender As Object, e As EventArgs) Handles ToolStripBtSave.Click
-		SaveOrSaveAs(False)
-	End Sub
-
-	'Save As
-	Private Sub ToolStripBtSaveAs_Click(sender As Object, e As EventArgs) Handles ToolStripBtSaveAs.Click
-		SaveOrSaveAs(True)
-	End Sub
-
-	'Send to VECTO Editor
-	Private Sub ToolStripBtSendTo_Click(sender As Object, e As EventArgs) Handles ToolStripBtSendTo.Click
-
-		If ChangeCheckCancel() Then Exit Sub
-
-		If _vehFile = "" Then
-			If MsgBox("Save file now?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
-				If Not SaveOrSaveAs(True) Then Exit Sub
-			Else
-				Exit Sub
-			End If
-		End If
-
-
-		If Not F_VECTO.Visible Then
-			JobDir = ""
-			F_VECTO.Show()
-			F_VECTO.VECTOnew()
-		Else
-			F_VECTO.WindowState = FormWindowState.Normal
-		End If
-
-		F_VECTO.TbVEH.Text = fFileWoDir(_vehFile, JobDir)
-	End Sub
-
-	'Help
-	Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
-		If File.Exists(MyAppPath & "User Manual\help.html") Then
-			Dim registryString = My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString
-			Dim defaultBrowserPath = Regex.Match(registryString, "(\"".*?\"")").Captures(0).ToString
-			Process.Start(defaultBrowserPath, String.Format("""{0}{1}""", MyAppPath, "User Manual\help.html#vehicle-editor"))
-		Else
-			MsgBox("User Manual not found!", MsgBoxStyle.Critical)
-		End If
-	End Sub
-
-#End Region
-
-	'Save and Close
-	Private Sub ButOK_Click(sender As Object, e As EventArgs) Handles ButOK.Click
-		If SaveOrSaveAs(False) Then Close()
-	End Sub
-
-	'Cancel
-	Private Sub ButCancel_Click(sender As Object, e As EventArgs) Handles ButCancel.Click
-		Close()
-	End Sub
-
-	'Save or Save As function = true if file is saved
-	Private Function SaveOrSaveAs(saveAs As Boolean) As Boolean
-		If _vehFile = "" Or saveAs Then
-			If fbVEH.SaveDialog(_vehFile) Then
-				_vehFile = fbVEH.Files(0)
-			Else
-				Return False
-			End If
-		End If
-		Return SaveVehicle(_vehFile)
-	End Function
-
-	'New VEH
-	Private Sub NewVehicle()
-		If ChangeCheckCancel() Then Exit Sub
-
-		TbMass.Text = ""
-		TbLoad.Text = ""
-		TBrdyn.Text = ""
-		TBcdA.Text = ""
-
-		CbCdMode.SelectedIndex = 0
-		TbCdFile.Text = ""
-
-		CbRtType.SelectedIndex = 0
-		TbRtRatio.Text = ""
-		TbRtPath.Text = ""
-
-		CbRtType.SelectedIndex = 0
-		TbRtRatio.Text = ""
-		TbRtPath.Text = ""
-
-		CbCat.SelectedIndex = 0
-
-		LvRRC.Items.Clear()
-
-		TbMassMass.Text = ""
-		TbMassExtra.Text = ""
-		CbAxleConfig.SelectedIndex = 0
-
-		DeclInit()
-
-		_vehFile = ""
-		Text = "VEH Editor"
-		LbStatus.Text = ""
-
-		_changed = False
-	End Sub
-
-	'Open VEH
-	Sub OpenVehicle(file As String)
-		Dim inertia As Single
-
-		If ChangeCheckCancel() Then Exit Sub
-
-		Dim veh = New cVEH
-		veh.FilePath = file
-
-		If Not veh.ReadFile Then
-			MsgBox("Cannot read " & file & "!")
-			Exit Sub
-		End If
-
-		If Cfg.DeclMode <> veh.SavedInDeclMode Then
-			Select Case WrongMode()
-				Case 1
-					Close()
-					F_MAINForm.RbDecl.Checked = Not F_MAINForm.RbDecl.Checked
-					F_MAINForm.OpenVectoFile(file)
-				Case -1
-					Exit Sub
-			End Select
-		End If
-
-		TbMass.Text = veh.Mass
-		TbMassExtra.Text = veh.MassExtra
-		TbLoad.Text = veh.Loading
-		TBrdyn.Text = veh.rdyn
-
-		CbCdMode.SelectedValue = veh.CdMode
-		TbCdFile.Text = veh.CdFile.OriginalPath
-
-		CbRtType.SelectedValue = veh.RtType
-		TbRtRatio.Text = veh.RtRatio
-		TbRtPath.Text = veh.RtFile.OriginalPath
-
-		cbAngularGearType.SelectedValue = veh.AngularGearType
-		tbAngularGearRatio.Text = veh.AngularGearRatio
-		tbAngularGearLossMapPath.Text = veh.AngularGearLossMapFile.OriginalPath
-
-		CbCat.SelectedValue = veh.VehCat
-
-
-		LvRRC.Items.Clear()
-		Dim i = 0
-		For Each a0 In veh.Axles
-			i += 1
-			Dim lvi = New ListViewItem
-			lvi.SubItems(0).Text = i.ToString
-
-			If Cfg.DeclMode Then
-				lvi.SubItems.Add("-")
-			Else
-				lvi.SubItems.Add(a0.Share)
-			End If
-
-			If a0.TwinTire Then
-				lvi.SubItems.Add("yes")
-			Else
-				lvi.SubItems.Add("no")
-			End If
-			lvi.SubItems.Add(a0.RRC)
-			lvi.SubItems.Add(a0.FzISO)
-			lvi.SubItems.Add(a0.Wheels)
-
-			If Cfg.DeclMode Then
-				inertia = DeclarationData.Wheels.Lookup(a0.Wheels).Inertia.Value()
-				If inertia < 0 Then
-					lvi.SubItems.Add("-")
-				Else
-					lvi.SubItems.Add(inertia)
-				End If
-			Else
-				lvi.SubItems.Add(a0.Inertia)
-			End If
-
-			LvRRC.Items.Add(lvi)
-		Next
-
-		TbMassMass.Text = veh.MassMax
-		TbMassExtra.Text = veh.MassExtra
-
-		CbAxleConfig.SelectedValue = veh.AxleConf
-
-		TBcdA.Text = veh.CdA0
-
-		DeclInit()
-
-		fbVEH.UpdateHistory(file)
-		Text = fFILE(file, True)
-		LbStatus.Text = ""
-		_vehFile = file
-		Activate()
-
-		_changed = False
-	End Sub
-
-	'Save VEH
-	Private Function SaveVehicle(file As String) As Boolean
-
-		Dim veh = New cVEH
-		veh.FilePath = file
-
-		veh.Mass = CSng(fTextboxToNumString(TbMass.Text))
-		veh.MassExtra = CSng(fTextboxToNumString(TbMassExtra.Text))
-		veh.Loading = CSng(fTextboxToNumString(TbLoad.Text))
-
-		veh.CdA0 = CSng(fTextboxToNumString(TBcdA.Text))
-
-		veh.rdyn = CSng(fTextboxToNumString(TBrdyn.Text))
-		veh.CdMode = CbCdMode.SelectedValue
-		veh.CdFile.Init(fPATH(file), TbCdFile.Text)
-		veh.RtType = CbRtType.SelectedValue
-		veh.RtRatio = CSng(fTextboxToNumString(TbRtRatio.Text))
-		veh.RtFile.Init(fPATH(file), TbRtPath.Text)
-
-		veh.AngularGearType = cbAngularGearType.SelectedValue
-		veh.AngularGearRatio = CSng(fTextboxToNumString(tbAngularGearRatio.Text))
-		veh.AngularGearLossMapFile.Init(fPATH(file), tbAngularGearLossMapPath.Text)
-
-		veh.VehCat = CbCat.SelectedValue 'CType(CbCat.SelectedIndex, tVehCat)
-
-		Dim axleShareCheck As Double
-		For Each LV0 In LvRRC.Items
-			Dim a0 = New cVEH.cAxle
-			a0.Share = fTextboxToNumString(LV0.SubItems(1).Text)
-			axleShareCheck += a0.Share
-			a0.TwinTire = (LV0.SubItems(2).Text = "yes")
-			a0.RRC = fTextboxToNumString(LV0.SubItems(3).Text)
-			a0.FzISO = fTextboxToNumString(LV0.SubItems(4).Text)
-			a0.Wheels = LV0.SubItems(5).Text
-			a0.Inertia = fTextboxToNumString(LV0.SubItems(6).Text)
-			veh.Axles.Add(a0)
-		Next
-
-		If Not Cfg.DeclMode AndAlso Math.Abs(axleShareCheck - 1) > 0.000001 Then
-			MsgBox("Relative axle loads must sum up to 1.0. Current value: " & axleShareCheck, MsgBoxStyle.Critical)
-			Return False
-		End If
-
-		veh.MassMax = CSng(fTextboxToNumString(TbMassMass.Text))
-		veh.MassExtra = CSng(fTextboxToNumString(TbMassExtra.Text))
-		veh.AxleConf = CbAxleConfig.SelectedValue
-
-
-		'---------------------------------------------------------------------------------
-		If Not veh.SaveFile Then
-			MsgBox("Cannot safe to " & file, MsgBoxStyle.Critical)
-			Return False
-		End If
-
-		If AutoSendTo Then
-			If F_VECTO.Visible Then
-				If UCase(fFileRepl(F_VECTO.TbVEH.Text, JobDir)) <> UCase(file) Then F_VECTO.TbVEH.Text = fFileWoDir(file, JobDir)
-				F_VECTO.UpdatePic()
-			End If
-		End If
-
-		fbVEH.UpdateHistory(file)
-		Text = fFILE(file, True)
-		LbStatus.Text = ""
-
-		_changed = False
-
-		Return True
-	End Function
-
-#Region "Cd"
-
-	'Cd Mode Change
-	Private Sub CbCdMode_SelectedIndexChanged(sender As Object, e As EventArgs) _
-		Handles CbCdMode.SelectedIndexChanged
-		Dim bEnabled As Boolean
-
-		Select Case CType(CbCdMode.SelectedValue, CrossWindCorrectionMode)
-
-			Case CrossWindCorrectionMode.VAirBetaLookupTable
-				bEnabled = True
-				LbCdMode.Text = "Input file: Yaw Angle [°], Cd Scaling Factor [-]"
-
-			Case CrossWindCorrectionMode.SpeedDependentCorrectionFactor
-				bEnabled = True
-				LbCdMode.Text = "Input file: Vehicle Speed [km/h], Cd Scaling Factor [-]" _
-				'TODO: MQ 20160901: check if scaling factor or absolue value!
-
-			Case Else ' tCdMode.ConstCd0, tCdMode.CdOfVdecl
-				bEnabled = False
-				LbCdMode.Text = ""
-
-		End Select
-
-		If Not Cfg.DeclMode Then
-			TbCdFile.Enabled = bEnabled
-			BtCdFileBrowse.Enabled = bEnabled
-			BtCdFileOpen.Enabled = bEnabled
-		End If
-
-		Change()
-	End Sub
-
-	'Cd File Browse
-	Private Sub BtCdFileBrowse_Click(sender As Object, e As EventArgs) Handles BtCdFileBrowse.Click
-		Dim ex As String
-
-		If CbCdMode.SelectedIndex = 1 Then
-			ex = "vcdv"
-		Else
-			ex = "vcdb"
-		End If
-
-		If fbCDx.OpenDialog(fFileRepl(TbCdFile.Text, fPATH(_vehFile)), False, ex) Then _
-			TbCdFile.Text = fFileWoDir(fbCDx.Files(0), fPATH(_vehFile))
-	End Sub
-
-	'Open Cd File
-	Private Sub BtCdFileOpen_Click(sender As Object, e As EventArgs) Handles BtCdFileOpen.Click
-		OpenFiles(fFileRepl(TbCdFile.Text, fPATH(_vehFile)))
-	End Sub
-
-#End Region
-
-#Region "Retarder"
-
-	'Rt Type Change
-	Private Sub CbRtType_SelectedIndexChanged(sender As Object, e As EventArgs) _
-		Handles CbRtType.SelectedIndexChanged
-		Select Case CbRtType.SelectedIndex
-			Case 1 'Primary
-				LbRtRatio.Text = "Ratio to engine speed"
-				PnRt.Enabled = True
-			Case 2 'Secondary
-				LbRtRatio.Text = "Ratio to cardan shaft speed"
-				TbRtPath.Enabled = True
-				BtRtBrowse.Enabled = True
-				PnRt.Enabled = True
-			Case Else '0 None
-				LbRtRatio.Text = "Ratio"
-				PnRt.Enabled = False
-		End Select
-
-		Change()
-	End Sub
-
-	'Rt File Browse
-	Private Sub BtRtBrowse_Click(sender As Object, e As EventArgs) Handles BtRtBrowse.Click
-		If fbRLM.OpenDialog(fFileRepl(TbRtPath.Text, fPATH(_vehFile))) Then _
-			TbRtPath.Text = fFileWoDir(fbRLM.Files(0), fPATH(_vehFile))
-	End Sub
-
-#End Region
-
-#Region "Track changes"
-
-	Private Sub Change()
-		If Not _changed Then
-			LbStatus.Text = "Unsaved changes in current file"
-			_changed = True
-		End If
-	End Sub
-
-	' "Save changes? "... Returns True if user aborts
-	Private Function ChangeCheckCancel() As Boolean
-
-		If _changed Then
-			Select Case MsgBox("Save changes ?", MsgBoxStyle.YesNoCancel)
-				Case MsgBoxResult.Yes
-					Return Not SaveOrSaveAs(False)
-				Case MsgBoxResult.Cancel
-					Return True
-				Case Else 'MsgBoxResult.No
-					_changed = False
-					Return False
-			End Select
-
-		Else
-
-			Return False
-
-		End If
-	End Function
-
-	Private Sub TBmass_TextChanged(sender As Object, e As EventArgs) Handles TbMass.TextChanged
-		SetMaxLoad()
-		Change()
-	End Sub
-
-	Private Sub TBcw_TextChanged(sender As Object, e As EventArgs) _
-		Handles TbLoad.TextChanged, TBrdyn.TextChanged, TBcdA.TextChanged, TbCdFile.TextChanged, TbRtRatio.TextChanged,
-				cbAngularGearType.SelectedIndexChanged, TbRtPath.TextChanged, tbAngularGearLossMapPath.TextChanged,
-				tbAngularGearRatio.TextChanged
-		Change()
-	End Sub
-
-	Private Sub CbCat_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CbCat.SelectedIndexChanged
-		Change()
-		SetHdVclass()
-		DeclInit()
-	End Sub
-
-	Private Sub TbMassTrailer_TextChanged(sender As Object, e As EventArgs) Handles TbMassExtra.TextChanged
-		SetMaxLoad()
-		Change()
-	End Sub
-
-	Private Sub TbMassMax_TextChanged(sender As Object, e As EventArgs) Handles TbMassMass.TextChanged
-		SetMaxLoad()
-		Change()
-		SetHdVclass()
-		DeclInit()
-	End Sub
-
-	Private Sub CbAxleConfig_SelectedIndexChanged(sender As Object, e As EventArgs) _
-		Handles CbAxleConfig.SelectedIndexChanged
-		Change()
-		SetHdVclass()
-		DeclInit()
-	End Sub
-
-#End Region
-
-	'Update maximum load when truck/trailer mass was changed
-	Private Sub SetMaxLoad()
-		If Not Cfg.DeclMode Then
-			If IsNumeric(TbMass.Text) And IsNumeric(TbMassExtra.Text) And IsNumeric(TbMassMass.Text) Then
-				TbLoadingMax.Text = CStr(CSng(TbMassMass.Text) * 1000 - CSng(TbMass.Text) - CSng(TbMassExtra.Text))
-			Else
-				TbLoadingMax.Text = ""
-			End If
-		End If
-	End Sub
-
-#Region "Axle Configuration"
-
-	Private Sub ButAxlAdd_Click(sender As Object, e As EventArgs) Handles ButAxlAdd.Click
-		Dim lv0 As ListViewItem
-
-		_axlDlog.Clear()
-
-		If _axlDlog.ShowDialog = DialogResult.OK Then
-			lv0 = New ListViewItem
-
-			lv0.SubItems(0).Text = LvRRC.Items.Count + 1
-			lv0.SubItems.Add(Trim(_axlDlog.TbAxleShare.Text))
-			If _axlDlog.CbTwinT.Checked Then
-				lv0.SubItems.Add("yes")
-			Else
-				lv0.SubItems.Add("no")
-			End If
-			lv0.SubItems.Add(Trim(_axlDlog.TbRRC.Text))
-			lv0.SubItems.Add(Trim(_axlDlog.TbFzISO.Text))
-			lv0.SubItems.Add(Trim(_axlDlog.CbWheels.Text))
-			lv0.SubItems.Add(Trim(_axlDlog.TbI_wheels.Text))
-
-			LvRRC.Items.Add(lv0)
-
-			Change()
-			DeclInit()
-
-		End If
-	End Sub
-
-	Private Sub ButAxlRem_Click(sender As Object, e As EventArgs) Handles ButAxlRem.Click
-		RemoveAxleItem()
-	End Sub
-
-	Private Sub LvAxle_DoubleClick(sender As Object, e As EventArgs) Handles LvRRC.DoubleClick
-		EditAxleItem()
-	End Sub
-
-	Private Sub LvAxle_KeyDown(sender As Object, e As KeyEventArgs) Handles LvRRC.KeyDown
-		Select Case e.KeyCode
-			Case Keys.Delete, Keys.Back
-				If Not Cfg.DeclMode Then RemoveAxleItem()
-			Case Keys.Enter
-				EditAxleItem()
-		End Select
-	End Sub
-
-	Private Sub RemoveAxleItem()
-		Dim lv0 As ListViewItem
-		Dim i As Integer
-
-		If LvRRC.SelectedItems.Count = 0 Then
-			If LvRRC.Items.Count = 0 Then
-				Exit Sub
-			Else
-				LvRRC.Items(LvRRC.Items.Count - 1).Selected = True
-			End If
-		End If
-
-		LvRRC.SelectedItems(0).Remove()
-
-		If LvRRC.Items.Count > 0 Then
-
-			i = 0
-			For Each lv0 In LvRRC.Items
-				i += 1
-				lv0.SubItems(0).Text = i.ToString
-			Next
-
-			LvRRC.Items(LvRRC.Items.Count - 1).Selected = True
-			LvRRC.Focus()
-		End If
-
-		Change()
-	End Sub
-
-	Private Sub EditAxleItem()
-		If LvRRC.SelectedItems.Count = 0 Then Exit Sub
-
-		Dim lv0 = LvRRC.SelectedItems(0)
-
-		_axlDlog.TbAxleShare.Text = lv0.SubItems(1).Text
-		_axlDlog.CbTwinT.Checked = (lv0.SubItems(2).Text = "yes")
-		_axlDlog.TbRRC.Text = lv0.SubItems(3).Text
-		_axlDlog.TbFzISO.Text = lv0.SubItems(4).Text
-		_axlDlog.TbI_wheels.Text = lv0.SubItems(6).Text
-		_axlDlog.CbWheels.Text = lv0.SubItems(5).Text
-
-		If _axlDlog.ShowDialog = DialogResult.OK Then
-			lv0.SubItems(1).Text = _axlDlog.TbAxleShare.Text
-			If _axlDlog.CbTwinT.Checked Then
-				lv0.SubItems(2).Text = "yes"
-			Else
-				lv0.SubItems(2).Text = "no"
-			End If
-			lv0.SubItems(3).Text = _axlDlog.TbRRC.Text
-			lv0.SubItems(4).Text = _axlDlog.TbFzISO.Text
-			lv0.SubItems(5).Text = _axlDlog.CbWheels.Text
-			lv0.SubItems(6).Text = _axlDlog.TbI_wheels.Text
-
-			Change()
-			DeclInit()
-		End If
-	End Sub
-
-#End Region
-
-#Region "Open File Context Menu"
-
-
-	Private Sub OpenFiles(ParamArray files() As String)
-		If files.Length = 0 Then Exit Sub
-
-		_cmFiles = files
-		OpenWithToolStripMenuItem.Text = "Open with " & Cfg.OpenCmdName
-		CmOpenFile.Show(Cursor.Position)
-	End Sub
-
-	Private Sub OpenWithToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles OpenWithToolStripMenuItem.Click
-		If Not FileOpenAlt(_cmFiles(0)) Then MsgBox("Failed to open file!")
-	End Sub
-
-	Private Sub ShowInFolderToolStripMenuItem_Click(sender As Object, e As EventArgs) _
-		Handles ShowInFolderToolStripMenuItem.Click
-		If File.Exists(_cmFiles(0)) Then
-			Try
-				Process.Start("explorer", "/select,""" & _cmFiles(0) & "")
-			Catch ex As Exception
-				MsgBox("Failed to open file!")
-			End Try
-		Else
-			MsgBox("File not found!")
-		End If
-	End Sub
-
-#End Region
-
-
-#Region "Angular Gear"
-
-	Private Sub cbAngularGearType_SelectedIndexChanged(sender As Object, e As EventArgs) _
-		Handles cbAngularGearType.SelectedIndexChanged
-		Select Case CType(cbAngularGearType.SelectedValue, AngularGearType)
-			Case AngularGearType.SeparateAngularGear
-				pnAngularGearFields.Enabled = True
-				tbAngularGearRatio.Text = "1.0"
-			Case Else 'Losses included in Transmission, None
-				tbAngularGearRatio.Text = ""
-				tbAngularGearLossMapPath.Text = ""
-				pnAngularGearFields.Enabled = False
-		End Select
-		Change()
-	End Sub
-
-	Private Sub btAngularGearLossMapBrowse_Click(sender As Object, e As EventArgs) Handles btAngularGearLossMapBrowse.Click
-		If fbTLM.OpenDialog(fFileRepl(TbRtPath.Text, fPATH(_vehFile))) Then _
-			tbAngularGearLossMapPath.Text = fFileWoDir(fbTLM.Files(0), fPATH(_vehFile))
-	End Sub
-
-#End Region
-End Class
-
+' Copyright 2014 European Union.
+' Licensed under the EUPL (the 'Licence');
+'
+' * You may not use this work except in compliance with the Licence.
+' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
+' * Unless required by applicable law or agreed to in writing,
+'   software distributed under the Licence is distributed on an "AS IS" basis,
+'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+'
+' See the LICENSE.txt for the specific language governing permissions and limitations.
+Option Infer On
+
+Imports System.IO
+Imports System.Linq
+Imports System.Text.RegularExpressions
+Imports TUGraz.VectoCommon.Models
+Imports TUGraz.VectoCommon.Utils
+Imports TUGraz.VectoCore.Models.Declaration
+
+''' <summary>
+''' Vehicle Editor.
+''' </summary>
+Public Class VehicleForm
+	Private _axlDlog As VehicleAxleDialog
+	Private _hdVclass As String
+	Private _vehFile As String
+	Private _changed As Boolean = False
+	Private _cmFiles As String()
+
+	Public AutoSendTo As Boolean = False
+	Public JobDir As String = ""
+
+	'Close - Check for unsaved changes
+	Private Sub F_VEH_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
+		If e.CloseReason <> CloseReason.ApplicationExitCall And e.CloseReason <> CloseReason.WindowsShutDown Then
+			e.Cancel = ChangeCheckCancel()
+		End If
+	End Sub
+
+	'Initialise form
+	Private Sub F05_VEH_Load(sender As Object, e As EventArgs) Handles MyBase.Load
+		TbLoadingMax.Text = "-"
+		PnLoad.Enabled = Not Cfg.DeclMode
+		ButAxlAdd.Enabled = Not Cfg.DeclMode
+		ButAxlRem.Enabled = Not Cfg.DeclMode
+		CbCdMode.Enabled = Not Cfg.DeclMode
+		PnWheelDiam.Enabled = Not Cfg.DeclMode
+
+		CbCdMode.ValueMember = "Value"
+		CbCdMode.DisplayMember = "Label"
+		CbCdMode.DataSource = [Enum].GetValues(GetType(CrossWindCorrectionMode)) _
+			.Cast(Of CrossWindCorrectionMode) _
+			.Select(Function(mode) New With {Key .Value = mode, .Label = mode.GetLabel()}).ToList()
+
+		CbRtType.ValueMember = "Value"
+		CbRtType.DisplayMember = "Label"
+		CbRtType.DataSource = [Enum].GetValues(GetType(RetarderType)) _
+			.Cast(Of RetarderType) _
+			.Select(Function(type) New With {Key .Value = type, .Label = type.GetLabel()}).ToList()
+
+		CbAxleConfig.ValueMember = "Value"
+		CbAxleConfig.DisplayMember = "Label"
+		CbAxleConfig.DataSource = [Enum].GetValues(GetType(AxleConfiguration)) _
+			.Cast(Of AxleConfiguration) _
+			.Select(Function(category) New With {Key .Value = category, .Label = category.GetName()}).ToList()
+
+		CbCat.ValueMember = "Value"
+		CbCat.DisplayMember = "Label"
+		CbCat.DataSource = [Enum].GetValues(GetType(VehicleCategory)) _
+			.Cast(Of VehicleCategory) _
+			.Select(Function(category) New With {Key .Value = category, .label = category.GetLabel()}).ToList()
+
+		cbAngularGearType.ValueMember = "Value"
+		cbAngularGearType.DisplayMember = "Label"
+		cbAngularGearType.DataSource = [Enum].GetValues(GetType(AngularGearType)) _
+			.Cast(Of AngularGearType).Select(Function(type) New With {Key .Value = type, .Label = type.GetLabel()}).ToList()
+		_axlDlog = New VehicleAxleDialog
+
+		_changed = False
+
+		NewVehicle()
+	End Sub
+
+	'Set HDVclasss
+	Private Sub SetHdVclass()
+		If String.IsNullOrEmpty(TbMassMass.Text) Then
+			TbHDVclass.Text = "-"
+			Exit Sub
+		End If
+		Dim vehC = CbCat.SelectedValue
+		Dim axlC = CbAxleConfig.SelectedValue
+		Dim maxMass = (TbMassMass.Text.ToDouble() * 1000).SI(Of Kilogram)()
+
+		_hdVclass = "-"
+		Dim s0 As Segment = Nothing
+		Try
+			s0 = DeclarationData.Segments.Lookup(vehC, axlC, maxMass, 0.SI(Of Kilogram), True)
+
+		Catch
+			' no segment found - ignore
+		End Try
+		If Not s0 Is Nothing Then
+			_hdVclass = s0.VehicleClass
+		End If
+
+
+		TbHDVclass.Text = _hdVclass
+		PicVehicle.Image = ConvPicPath(_hdVclass, False)
+	End Sub
+
+
+	'Set generic values for Declaration mode
+	Private Sub DeclInit()
+		If Not Cfg.DeclMode Then Exit Sub
+
+		If String.IsNullOrEmpty(TbMassMass.Text) Then
+			TbHDVclass.Text = "-"
+			Exit Sub
+		End If
+		Dim vehC = CbCat.SelectedValue
+		Dim axlC = CbAxleConfig.SelectedValue
+		Dim maxMass = (TbMassMass.Text.ToDouble() * 1000).SI(Of Kilogram)()
+
+		Dim s0 As Segment = Nothing
+		Try
+			s0 = DeclarationData.Segments.Lookup(vehC, axlC, maxMass, 0.SI(Of Kilogram), True)
+		Catch
+			' no segment found - ignore
+		End Try
+		If Not s0 Is Nothing Then
+			_hdVclass = s0.VehicleClass
+			Dim axleCount As Short = s0.Missions(0).AxleWeightDistribution.Count()
+			Dim i0 = LvRRC.Items.Count
+
+			If axleCount > i0 Then
+				For i = 1 To axleCount - LvRRC.Items.Count
+					Dim lvi = New ListViewItem
+					lvi.SubItems(0).Text = (i + i0).ToString
+					lvi.SubItems.Add("-")
+					lvi.SubItems.Add("no")
+					lvi.SubItems.Add("")
+					lvi.SubItems.Add("")
+					lvi.SubItems.Add("-")
+					lvi.SubItems.Add("-")
+					LvRRC.Items.Add(lvi)
+				Next
+
+			ElseIf axleCount < LvRRC.Items.Count Then
+				For i = axleCount To LvRRC.Items.Count - 1
+					LvRRC.Items.RemoveAt(LvRRC.Items.Count - 1)
+				Next
+			End If
+
+			PnAll.Enabled = True
+
+		Else
+			PnAll.Enabled = False
+			_hdVclass = "-"
+		End If
+
+		TbMassExtra.Text = "-"
+		TbLoad.Text = "-"
+		CbCdMode.SelectedValue = CrossWindCorrectionMode.DeclarationModeCorrection
+		TbCdFile.Text = ""
+
+		Dim rdyn As Single
+		rdyn = -1
+
+		If rdyn < 0 Then
+			TBrdyn.Text = "-"
+		Else
+			TBrdyn.Text = rdyn
+		End If
+	End Sub
+
+
+#Region "Toolbar"
+
+	'New
+	Private Sub ToolStripBtNew_Click(sender As Object, e As EventArgs) Handles ToolStripBtNew.Click
+		NewVehicle()
+	End Sub
+
+	'Open
+	Private Sub ToolStripBtOpen_Click(sender As Object, e As EventArgs) Handles ToolStripBtOpen.Click
+		If VehicleFileBrowser.OpenDialog(_vehFile) Then OpenVehicle(VehicleFileBrowser.Files(0))
+	End Sub
+
+	'Save
+	Private Sub ToolStripBtSave_Click(sender As Object, e As EventArgs) Handles ToolStripBtSave.Click
+		SaveOrSaveAs(False)
+	End Sub
+
+	'Save As
+	Private Sub ToolStripBtSaveAs_Click(sender As Object, e As EventArgs) Handles ToolStripBtSaveAs.Click
+		SaveOrSaveAs(True)
+	End Sub
+
+	'Send to VECTO Editor
+	Private Sub ToolStripBtSendTo_Click(sender As Object, e As EventArgs) Handles ToolStripBtSendTo.Click
+
+		If ChangeCheckCancel() Then Exit Sub
+
+		If _vehFile = "" Then
+			If MsgBox("Save file now?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
+				If Not SaveOrSaveAs(True) Then Exit Sub
+			Else
+				Exit Sub
+			End If
+		End If
+
+
+		If Not VectoJobForm.Visible Then
+			JobDir = ""
+			VectoJobForm.Show()
+			VectoJobForm.VECTOnew()
+		Else
+			VectoJobForm.WindowState = FormWindowState.Normal
+		End If
+
+		VectoJobForm.TbVEH.Text = fFileWoDir(_vehFile, JobDir)
+	End Sub
+
+	'Help
+	Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
+		If File.Exists(MyAppPath & "User Manual\help.html") Then
+			Dim registryString = My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString
+			Dim defaultBrowserPath = Regex.Match(registryString, "(\"".*?\"")").Captures(0).ToString
+			Process.Start(defaultBrowserPath, String.Format("""{0}{1}""", MyAppPath, "User Manual\help.html#vehicle-editor"))
+		Else
+			MsgBox("User Manual not found!", MsgBoxStyle.Critical)
+		End If
+	End Sub
+
+#End Region
+
+	'Save and Close
+	Private Sub ButOK_Click(sender As Object, e As EventArgs) Handles ButOK.Click
+		If SaveOrSaveAs(False) Then Close()
+	End Sub
+
+	'Cancel
+	Private Sub ButCancel_Click(sender As Object, e As EventArgs) Handles ButCancel.Click
+		Close()
+	End Sub
+
+	'Save or Save As function = true if file is saved
+	Private Function SaveOrSaveAs(saveAs As Boolean) As Boolean
+		If _vehFile = "" Or saveAs Then
+			If VehicleFileBrowser.SaveDialog(_vehFile) Then
+				_vehFile = VehicleFileBrowser.Files(0)
+			Else
+				Return False
+			End If
+		End If
+		Return SaveVehicle(_vehFile)
+	End Function
+
+	'New VEH
+	Private Sub NewVehicle()
+		If ChangeCheckCancel() Then Exit Sub
+
+		TbMass.Text = ""
+		TbLoad.Text = ""
+		TBrdyn.Text = ""
+		TBcdA.Text = ""
+
+		CbCdMode.SelectedIndex = 0
+		TbCdFile.Text = ""
+
+		CbRtType.SelectedIndex = 0
+		TbRtRatio.Text = ""
+		TbRtPath.Text = ""
+
+		CbRtType.SelectedIndex = 0
+		TbRtRatio.Text = ""
+		TbRtPath.Text = ""
+
+		CbCat.SelectedIndex = 0
+
+		LvRRC.Items.Clear()
+
+		TbMassMass.Text = ""
+		TbMassExtra.Text = ""
+		CbAxleConfig.SelectedIndex = 0
+
+		DeclInit()
+
+		_vehFile = ""
+		Text = "VEH Editor"
+		LbStatus.Text = ""
+
+		_changed = False
+	End Sub
+
+	'Open VEH
+	Sub OpenVehicle(file As String)
+		Dim inertia As Single
+
+		If ChangeCheckCancel() Then Exit Sub
+
+		Dim veh = New Vehicle
+		veh.FilePath = file
+
+		If Not veh.ReadFile Then
+			MsgBox("Cannot read " & file & "!")
+			Exit Sub
+		End If
+
+		If Cfg.DeclMode <> veh.SavedInDeclMode Then
+			Select Case WrongMode()
+				Case 1
+					Close()
+					MainForm.RbDecl.Checked = Not MainForm.RbDecl.Checked
+					MainForm.OpenVectoFile(file)
+				Case -1
+					Exit Sub
+			End Select
+		End If
+
+		TbMass.Text = veh.Mass
+		TbMassExtra.Text = veh.MassExtra
+		TbLoad.Text = veh.Loading
+		TBrdyn.Text = veh.rdyn
+
+		CbCdMode.SelectedValue = veh.CdMode
+		TbCdFile.Text = veh.CdFile.OriginalPath
+
+		CbRtType.SelectedValue = veh.RtType
+		TbRtRatio.Text = veh.RtRatio
+		TbRtPath.Text = veh.RtFile.OriginalPath
+
+		cbAngularGearType.SelectedValue = veh.AngularGearType
+		tbAngularGearRatio.Text = veh.AngularGearRatio
+		tbAngularGearLossMapPath.Text = veh.AngularGearLossMapFile.OriginalPath
+
+		CbCat.SelectedValue = veh.VehCat
+
+
+		LvRRC.Items.Clear()
+		Dim i = 0
+		For Each a0 In veh.Axles
+			i += 1
+			Dim lvi = New ListViewItem
+			lvi.SubItems(0).Text = i.ToString
+
+			If Cfg.DeclMode Then
+				lvi.SubItems.Add("-")
+			Else
+				lvi.SubItems.Add(a0.Share)
+			End If
+
+			If a0.TwinTire Then
+				lvi.SubItems.Add("yes")
+			Else
+				lvi.SubItems.Add("no")
+			End If
+			lvi.SubItems.Add(a0.RRC)
+			lvi.SubItems.Add(a0.FzISO)
+			lvi.SubItems.Add(a0.Wheels)
+
+			If Cfg.DeclMode Then
+				inertia = DeclarationData.Wheels.Lookup(a0.Wheels).Inertia.Value()
+				If inertia < 0 Then
+					lvi.SubItems.Add("-")
+				Else
+					lvi.SubItems.Add(inertia)
+				End If
+			Else
+				lvi.SubItems.Add(a0.Inertia)
+			End If
+
+			LvRRC.Items.Add(lvi)
+		Next
+
+		TbMassMass.Text = veh.MassMax
+		TbMassExtra.Text = veh.MassExtra
+
+		CbAxleConfig.SelectedValue = veh.AxleConf
+
+		TBcdA.Text = veh.CdA0
+
+		DeclInit()
+
+		VehicleFileBrowser.UpdateHistory(file)
+		Text = fFILE(file, True)
+		LbStatus.Text = ""
+		_vehFile = file
+		Activate()
+
+		_changed = False
+	End Sub
+
+	'Save VEH
+	Private Function SaveVehicle(file As String) As Boolean
+
+		Dim veh = New Vehicle
+		veh.FilePath = file
+
+		veh.Mass = CSng(fTextboxToNumString(TbMass.Text))
+		veh.MassExtra = CSng(fTextboxToNumString(TbMassExtra.Text))
+		veh.Loading = CSng(fTextboxToNumString(TbLoad.Text))
+
+		veh.CdA0 = CSng(fTextboxToNumString(TBcdA.Text))
+
+		veh.rdyn = CSng(fTextboxToNumString(TBrdyn.Text))
+		veh.CdMode = CbCdMode.SelectedValue
+		veh.CdFile.Init(fPATH(file), TbCdFile.Text)
+		veh.RtType = CbRtType.SelectedValue
+		veh.RtRatio = CSng(fTextboxToNumString(TbRtRatio.Text))
+		veh.RtFile.Init(fPATH(file), TbRtPath.Text)
+
+		veh.AngularGearType = cbAngularGearType.SelectedValue
+		veh.AngularGearRatio = CSng(fTextboxToNumString(tbAngularGearRatio.Text))
+		veh.AngularGearLossMapFile.Init(fPATH(file), tbAngularGearLossMapPath.Text)
+
+		veh.VehCat = CbCat.SelectedValue 'CType(CbCat.SelectedIndex, tVehCat)
+
+		Dim axleShareCheck As Double
+		For Each LV0 In LvRRC.Items
+			Dim a0 = New Vehicle.Axle
+			a0.Share = fTextboxToNumString(LV0.SubItems(1).Text)
+			axleShareCheck += a0.Share
+			a0.TwinTire = (LV0.SubItems(2).Text = "yes")
+			a0.RRC = fTextboxToNumString(LV0.SubItems(3).Text)
+			a0.FzISO = fTextboxToNumString(LV0.SubItems(4).Text)
+			a0.Wheels = LV0.SubItems(5).Text
+			a0.Inertia = fTextboxToNumString(LV0.SubItems(6).Text)
+			veh.Axles.Add(a0)
+		Next
+
+		If Not Cfg.DeclMode AndAlso Math.Abs(axleShareCheck - 1) > 0.000001 Then
+			MsgBox("Relative axle loads must sum up to 1.0. Current value: " & axleShareCheck, MsgBoxStyle.Critical)
+			Return False
+		End If
+
+		veh.MassMax = CSng(fTextboxToNumString(TbMassMass.Text))
+		veh.MassExtra = CSng(fTextboxToNumString(TbMassExtra.Text))
+		veh.AxleConf = CbAxleConfig.SelectedValue
+
+
+		'---------------------------------------------------------------------------------
+		If Not veh.SaveFile Then
+			MsgBox("Cannot safe to " & file, MsgBoxStyle.Critical)
+			Return False
+		End If
+
+		If AutoSendTo Then
+			If VectoJobForm.Visible Then
+				If UCase(fFileRepl(VectoJobForm.TbVEH.Text, JobDir)) <> UCase(file) Then VectoJobForm.TbVEH.Text = fFileWoDir(file, JobDir)
+				VectoJobForm.UpdatePic()
+			End If
+		End If
+
+		VehicleFileBrowser.UpdateHistory(file)
+		Text = fFILE(file, True)
+		LbStatus.Text = ""
+
+		_changed = False
+
+		Return True
+	End Function
+
+#Region "Cd"
+
+	'Cd Mode Change
+	Private Sub CbCdMode_SelectedIndexChanged(sender As Object, e As EventArgs) _
+		Handles CbCdMode.SelectedIndexChanged
+		Dim bEnabled As Boolean
+
+		Select Case CType(CbCdMode.SelectedValue, CrossWindCorrectionMode)
+
+			Case CrossWindCorrectionMode.VAirBetaLookupTable
+				bEnabled = True
+				LbCdMode.Text = "Input file: Yaw Angle [°], Cd Scaling Factor [-]"
+
+			Case CrossWindCorrectionMode.SpeedDependentCorrectionFactor
+				bEnabled = True
+				LbCdMode.Text = "Input file: Vehicle Speed [km/h], Cd Scaling Factor [-]" _
+				'TODO: MQ 20160901: check if scaling factor or absolue value!
+
+			Case Else ' tCdMode.ConstCd0, tCdMode.CdOfVdecl
+				bEnabled = False
+				LbCdMode.Text = ""
+
+		End Select
+
+		If Not Cfg.DeclMode Then
+			TbCdFile.Enabled = bEnabled
+			BtCdFileBrowse.Enabled = bEnabled
+			BtCdFileOpen.Enabled = bEnabled
+		End If
+
+		Change()
+	End Sub
+
+	'Cd File Browse
+	Private Sub BtCdFileBrowse_Click(sender As Object, e As EventArgs) Handles BtCdFileBrowse.Click
+		Dim ex As String
+
+		If CbCdMode.SelectedIndex = 1 Then
+			ex = "vcdv"
+		Else
+			ex = "vcdb"
+		End If
+
+		If fbCDx.OpenDialog(fFileRepl(TbCdFile.Text, fPATH(_vehFile)), False, ex) Then _
+			TbCdFile.Text = fFileWoDir(fbCDx.Files(0), fPATH(_vehFile))
+	End Sub
+
+	'Open Cd File
+	Private Sub BtCdFileOpen_Click(sender As Object, e As EventArgs) Handles BtCdFileOpen.Click
+		OpenFiles(fFileRepl(TbCdFile.Text, fPATH(_vehFile)))
+	End Sub
+
+#End Region
+
+#Region "Retarder"
+
+	'Rt Type Change
+	Private Sub CbRtType_SelectedIndexChanged(sender As Object, e As EventArgs) _
+		Handles CbRtType.SelectedIndexChanged
+		Select Case CbRtType.SelectedIndex
+			Case 1 'Primary
+				LbRtRatio.Text = "Ratio to engine speed"
+				PnRt.Enabled = True
+			Case 2 'Secondary
+				LbRtRatio.Text = "Ratio to cardan shaft speed"
+				TbRtPath.Enabled = True
+				BtRtBrowse.Enabled = True
+				PnRt.Enabled = True
+			Case Else '0 None
+				LbRtRatio.Text = "Ratio"
+				PnRt.Enabled = False
+		End Select
+
+		Change()
+	End Sub
+
+	'Rt File Browse
+	Private Sub BtRtBrowse_Click(sender As Object, e As EventArgs) Handles BtRtBrowse.Click
+		If RetarderLossMapFileBrowser.OpenDialog(fFileRepl(TbRtPath.Text, fPATH(_vehFile))) Then _
+			TbRtPath.Text = fFileWoDir(RetarderLossMapFileBrowser.Files(0), fPATH(_vehFile))
+	End Sub
+
+#End Region
+
+#Region "Track changes"
+
+	Private Sub Change()
+		If Not _changed Then
+			LbStatus.Text = "Unsaved changes in current file"
+			_changed = True
+		End If
+	End Sub
+
+	' "Save changes? "... Returns True if user aborts
+	Private Function ChangeCheckCancel() As Boolean
+
+		If _changed Then
+			Select Case MsgBox("Save changes ?", MsgBoxStyle.YesNoCancel)
+				Case MsgBoxResult.Yes
+					Return Not SaveOrSaveAs(False)
+				Case MsgBoxResult.Cancel
+					Return True
+				Case Else 'MsgBoxResult.No
+					_changed = False
+					Return False
+			End Select
+
+		Else
+
+			Return False
+
+		End If
+	End Function
+
+	Private Sub TBmass_TextChanged(sender As Object, e As EventArgs) Handles TbMass.TextChanged
+		SetMaxLoad()
+		Change()
+	End Sub
+
+	Private Sub TBcw_TextChanged(sender As Object, e As EventArgs) _
+		Handles TbLoad.TextChanged, TBrdyn.TextChanged, TBcdA.TextChanged, TbCdFile.TextChanged, TbRtRatio.TextChanged,
+				cbAngularGearType.SelectedIndexChanged, TbRtPath.TextChanged, tbAngularGearLossMapPath.TextChanged,
+				tbAngularGearRatio.TextChanged
+		Change()
+	End Sub
+
+	Private Sub CbCat_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CbCat.SelectedIndexChanged
+		Change()
+		SetHdVclass()
+		DeclInit()
+	End Sub
+
+	Private Sub TbMassTrailer_TextChanged(sender As Object, e As EventArgs) Handles TbMassExtra.TextChanged
+		SetMaxLoad()
+		Change()
+	End Sub
+
+	Private Sub TbMassMax_TextChanged(sender As Object, e As EventArgs) Handles TbMassMass.TextChanged
+		SetMaxLoad()
+		Change()
+		SetHdVclass()
+		DeclInit()
+	End Sub
+
+	Private Sub CbAxleConfig_SelectedIndexChanged(sender As Object, e As EventArgs) _
+		Handles CbAxleConfig.SelectedIndexChanged
+		Change()
+		SetHdVclass()
+		DeclInit()
+	End Sub
+
+#End Region
+
+	'Update maximum load when truck/trailer mass was changed
+	Private Sub SetMaxLoad()
+		If Not Cfg.DeclMode Then
+			If IsNumeric(TbMass.Text) And IsNumeric(TbMassExtra.Text) And IsNumeric(TbMassMass.Text) Then
+				TbLoadingMax.Text = CStr(CSng(TbMassMass.Text) * 1000 - CSng(TbMass.Text) - CSng(TbMassExtra.Text))
+			Else
+				TbLoadingMax.Text = ""
+			End If
+		End If
+	End Sub
+
+#Region "Axle Configuration"
+
+	Private Sub ButAxlAdd_Click(sender As Object, e As EventArgs) Handles ButAxlAdd.Click
+		Dim lv0 As ListViewItem
+
+		_axlDlog.Clear()
+
+		If _axlDlog.ShowDialog = DialogResult.OK Then
+			lv0 = New ListViewItem
+
+			lv0.SubItems(0).Text = LvRRC.Items.Count + 1
+			lv0.SubItems.Add(Trim(_axlDlog.TbAxleShare.Text))
+			If _axlDlog.CbTwinT.Checked Then
+				lv0.SubItems.Add("yes")
+			Else
+				lv0.SubItems.Add("no")
+			End If
+			lv0.SubItems.Add(Trim(_axlDlog.TbRRC.Text))
+			lv0.SubItems.Add(Trim(_axlDlog.TbFzISO.Text))
+			lv0.SubItems.Add(Trim(_axlDlog.CbWheels.Text))
+			lv0.SubItems.Add(Trim(_axlDlog.TbI_wheels.Text))
+
+			LvRRC.Items.Add(lv0)
+
+			Change()
+			DeclInit()
+
+		End If
+	End Sub
+
+	Private Sub ButAxlRem_Click(sender As Object, e As EventArgs) Handles ButAxlRem.Click
+		RemoveAxleItem()
+	End Sub
+
+	Private Sub LvAxle_DoubleClick(sender As Object, e As EventArgs) Handles LvRRC.DoubleClick
+		EditAxleItem()
+	End Sub
+
+	Private Sub LvAxle_KeyDown(sender As Object, e As KeyEventArgs) Handles LvRRC.KeyDown
+		Select Case e.KeyCode
+			Case Keys.Delete, Keys.Back
+				If Not Cfg.DeclMode Then RemoveAxleItem()
+			Case Keys.Enter
+				EditAxleItem()
+		End Select
+	End Sub
+
+	Private Sub RemoveAxleItem()
+		Dim lv0 As ListViewItem
+		Dim i As Integer
+
+		If LvRRC.SelectedItems.Count = 0 Then
+			If LvRRC.Items.Count = 0 Then
+				Exit Sub
+			Else
+				LvRRC.Items(LvRRC.Items.Count - 1).Selected = True
+			End If
+		End If
+
+		LvRRC.SelectedItems(0).Remove()
+
+		If LvRRC.Items.Count > 0 Then
+
+			i = 0
+			For Each lv0 In LvRRC.Items
+				i += 1
+				lv0.SubItems(0).Text = i.ToString
+			Next
+
+			LvRRC.Items(LvRRC.Items.Count - 1).Selected = True
+			LvRRC.Focus()
+		End If
+
+		Change()
+	End Sub
+
+	Private Sub EditAxleItem()
+		If LvRRC.SelectedItems.Count = 0 Then Exit Sub
+
+		Dim lv0 = LvRRC.SelectedItems(0)
+
+		_axlDlog.TbAxleShare.Text = lv0.SubItems(1).Text
+		_axlDlog.CbTwinT.Checked = (lv0.SubItems(2).Text = "yes")
+		_axlDlog.TbRRC.Text = lv0.SubItems(3).Text
+		_axlDlog.TbFzISO.Text = lv0.SubItems(4).Text
+		_axlDlog.TbI_wheels.Text = lv0.SubItems(6).Text
+		_axlDlog.CbWheels.Text = lv0.SubItems(5).Text
+
+		If _axlDlog.ShowDialog = DialogResult.OK Then
+			lv0.SubItems(1).Text = _axlDlog.TbAxleShare.Text
+			If _axlDlog.CbTwinT.Checked Then
+				lv0.SubItems(2).Text = "yes"
+			Else
+				lv0.SubItems(2).Text = "no"
+			End If
+			lv0.SubItems(3).Text = _axlDlog.TbRRC.Text
+			lv0.SubItems(4).Text = _axlDlog.TbFzISO.Text
+			lv0.SubItems(5).Text = _axlDlog.CbWheels.Text
+			lv0.SubItems(6).Text = _axlDlog.TbI_wheels.Text
+
+			Change()
+			DeclInit()
+		End If
+	End Sub
+
+#End Region
+
+#Region "Open File Context Menu"
+
+
+	Private Sub OpenFiles(ParamArray files() As String)
+		If files.Length = 0 Then Exit Sub
+
+		_cmFiles = files
+		OpenWithToolStripMenuItem.Text = "Open with " & Cfg.OpenCmdName
+		CmOpenFile.Show(Cursor.Position)
+	End Sub
+
+	Private Sub OpenWithToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles OpenWithToolStripMenuItem.Click
+		If Not FileOpenAlt(_cmFiles(0)) Then MsgBox("Failed to open file!")
+	End Sub
+
+	Private Sub ShowInFolderToolStripMenuItem_Click(sender As Object, e As EventArgs) _
+		Handles ShowInFolderToolStripMenuItem.Click
+		If File.Exists(_cmFiles(0)) Then
+			Try
+				Process.Start("explorer", "/select,""" & _cmFiles(0) & "")
+			Catch ex As Exception
+				MsgBox("Failed to open file!")
+			End Try
+		Else
+			MsgBox("File not found!")
+		End If
+	End Sub
+
+#End Region
+
+
+#Region "Angular Gear"
+
+	Private Sub cbAngularGearType_SelectedIndexChanged(sender As Object, e As EventArgs) _
+		Handles cbAngularGearType.SelectedIndexChanged
+		Select Case CType(cbAngularGearType.SelectedValue, AngularGearType)
+			Case AngularGearType.SeparateAngularGear
+				pnAngularGearFields.Enabled = True
+				tbAngularGearRatio.Text = "1.0"
+			Case Else 'Losses included in Transmission, None
+				tbAngularGearRatio.Text = ""
+				tbAngularGearLossMapPath.Text = ""
+				pnAngularGearFields.Enabled = False
+		End Select
+		Change()
+	End Sub
+
+	Private Sub btAngularGearLossMapBrowse_Click(sender As Object, e As EventArgs) Handles btAngularGearLossMapBrowse.Click
+		If TransmissionLossMapFileBrowser.OpenDialog(fFileRepl(TbRtPath.Text, fPATH(_vehFile))) Then _
+			tbAngularGearLossMapPath.Text = fFileWoDir(TransmissionLossMapFileBrowser.Files(0), fPATH(_vehFile))
+	End Sub
+
+#End Region
+End Class
+
diff --git a/VECTO/GUI/F_Welcome.Designer.vb b/VECTO/GUI/WelcomeDialog.Designer.vb
similarity index 98%
rename from VECTO/GUI/F_Welcome.Designer.vb
rename to VECTO/GUI/WelcomeDialog.Designer.vb
index 3daaeef2bb..3ab236ad00 100644
--- a/VECTO/GUI/F_Welcome.Designer.vb
+++ b/VECTO/GUI/WelcomeDialog.Designer.vb
@@ -13,7 +13,7 @@ Imports Microsoft.VisualBasic.CompilerServices
 
 
 <DesignerGenerated()> _
-Partial Class F_Welcome
+Partial Class WelcomeDialog
 	Inherits Form
 
 	'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
@@ -93,7 +93,7 @@ Partial Class F_Welcome
 		Me.FormBorderStyle = FormBorderStyle.FixedDialog
 		Me.MaximizeBox = False
 		Me.MinimizeBox = False
-		Me.Name = "F_Welcome"
+		Me.Name = "WelcomeDialog"
 		Me.ShowInTaskbar = False
 		Me.StartPosition = FormStartPosition.CenterParent
 		Me.Text = "F_Welcome"
diff --git a/VECTO/GUI/F_Welcome.resx b/VECTO/GUI/WelcomeDialog.resx
similarity index 100%
rename from VECTO/GUI/F_Welcome.resx
rename to VECTO/GUI/WelcomeDialog.resx
diff --git a/VECTO/GUI/F_Welcome.vb b/VECTO/GUI/WelcomeDialog.vb
similarity index 95%
rename from VECTO/GUI/F_Welcome.vb
rename to VECTO/GUI/WelcomeDialog.vb
index 0a775f793b..3cdcf0eec8 100644
--- a/VECTO/GUI/F_Welcome.vb
+++ b/VECTO/GUI/WelcomeDialog.vb
@@ -1,46 +1,46 @@
-' Copyright 2014 European Union.
-' Licensed under the EUPL (the 'Licence');
-'
-' * You may not use this work except in compliance with the Licence.
-' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
-' * Unless required by applicable law or agreed to in writing,
-'   software distributed under the Licence is distributed on an "AS IS" basis,
-'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-'
-' See the LICENSE.txt for the specific language governing permissions and limitations.
-Imports System.IO
-
-''' <summary>
-''' Welcome screen. Shows only on the first time application start
-''' </summary>
-''' <remarks></remarks>
-Public Class F_Welcome
-	'Close
-	Private Sub Cancel_Button_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Cancel_Button.Click
-		DialogResult = DialogResult.Cancel
-		Close()
-	End Sub
-
-	'Init
-	Private Sub F_Welcome_Load(sender As Object, e As EventArgs) Handles Me.Load
-		Text = "VECTO " & VECTOvers & " / VectoCore " & COREvers
-	End Sub
-
-	'Open Release Notes
-	Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
-		If File.Exists(MyAppPath & "User Manual\Release Notes.pdf") Then
-			Process.Start(MyAppPath & "User Manual\Release Notes.pdf")
-		Else
-			MsgBox("Release Notes not found!", MsgBoxStyle.Critical)
-		End If
-	End Sub
-
-	'Open Quick Start Guide
-	Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
-		If File.Exists(MyAppPath & "User Manual\help.html") Then
-			Process.Start(MyAppPath & "User Manual\help.html")
-		Else
-			MsgBox("User manual not found!", MsgBoxStyle.Critical)
-		End If
-	End Sub
-End Class
+' Copyright 2014 European Union.
+' Licensed under the EUPL (the 'Licence');
+'
+' * You may not use this work except in compliance with the Licence.
+' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
+' * Unless required by applicable law or agreed to in writing,
+'   software distributed under the Licence is distributed on an "AS IS" basis,
+'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+'
+' See the LICENSE.txt for the specific language governing permissions and limitations.
+Imports System.IO
+
+''' <summary>
+''' Welcome screen. Shows only on the first time application start
+''' </summary>
+''' <remarks></remarks>
+Public Class WelcomeDialog
+	'Close
+	Private Sub Cancel_Button_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Cancel_Button.Click
+		DialogResult = DialogResult.Cancel
+		Close()
+	End Sub
+
+	'Init
+	Private Sub F_Welcome_Load(sender As Object, e As EventArgs) Handles Me.Load
+		Text = "VECTO " & VECTOvers & " / VectoCore " & COREvers
+	End Sub
+
+	'Open Release Notes
+	Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
+		If File.Exists(MyAppPath & "User Manual\Release Notes.pdf") Then
+			Process.Start(MyAppPath & "User Manual\Release Notes.pdf")
+		Else
+			MsgBox("Release Notes not found!", MsgBoxStyle.Critical)
+		End If
+	End Sub
+
+	'Open Quick Start Guide
+	Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
+		If File.Exists(MyAppPath & "User Manual\help.html") Then
+			Process.Start(MyAppPath & "User Manual\help.html")
+		Else
+			MsgBox("User manual not found!", MsgBoxStyle.Critical)
+		End If
+	End Sub
+End Class
diff --git a/VECTO/Input Files/cENG.vb b/VECTO/Input Files/Engine.vb
similarity index 92%
rename from VECTO/Input Files/cENG.vb
rename to VECTO/Input Files/Engine.vb
index 5a3bdb4493..4f3f60a485 100644
--- a/VECTO/Input Files/cENG.vb	
+++ b/VECTO/Input Files/Engine.vb	
@@ -1,289 +1,289 @@
-' Copyright 2014 European Union.
-' Licensed under the EUPL (the 'Licence');
-'
-' * You may not use this work except in compliance with the Licence.
-' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
-' * Unless required by applicable law or agreed to in writing,
-'   software distributed under the Licence is distributed on an "AS IS" basis,
-'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-'
-' See the LICENSE.txt for the specific language governing permissions and limitations.
-Imports System.Collections.Generic
-Imports System.IO
-Imports TUGraz.VECTO.Input_Files
-
-''' <summary>
-''' Engine input file
-''' </summary>
-''' <remarks></remarks>
-Public Class cENG
-	''' <summary>
-	''' Current format version
-	''' </summary>
-	''' <remarks></remarks>
-	Private Const FormatVersion As Short = 3
-
-	''' <summary>
-	''' Format version of input file. Defined in ReadFile.
-	''' </summary>
-	''' <remarks></remarks>
-	Private FileVersion As Short
-
-	''' <summary>
-	''' Engine description (model, type, etc.). Saved in input file.
-	''' </summary>
-	''' <remarks></remarks>
-	Public ModelName As String
-
-	''' <summary>
-	''' Engine displacement [ccm]. Saved in input file.
-	''' </summary>
-	''' <remarks></remarks>
-	Public Displ As Single
-
-	''' <summary>
-	''' Idling speed [1/min]. Saved in input file.
-	''' </summary>
-	''' <remarks></remarks>
-	Public Nidle As Single
-
-	''' <summary>
-	''' Rotational inertia including flywheel [kgm²]. Saved in input file. Overwritten by generic value in Declaration mode.
-	''' </summary>
-	''' <remarks></remarks>
-	Public I_mot As Single
-
-	''' <summary>
-	''' List of full load/motoring curve files (.vfld)
-	''' </summary>
-	''' <remarks></remarks>
-	Public fFLD As cSubPath
-
-	''' <summary>
-	''' Path to fuel consumption map
-	''' </summary>
-	''' <remarks></remarks>
-	Private fMAP As cSubPath
-
-	''' <summary>
-	''' Directory of engine file. Defined in FilePath property (Set)
-	''' </summary>
-	''' <remarks></remarks>
-	Private MyPath As String
-
-	''' <summary>
-	''' Full file path. Needs to be defined via FilePath property before calling ReadFile or SaveFile.
-	''' </summary>
-	''' <remarks></remarks>
-	Private sFilePath As String
-
-
-	''' <summary>
-	''' WHTC Urban test results. Saved in input file. 
-	''' </summary>
-	''' <remarks></remarks>
-	Public WHTCurban As Single
-
-	''' <summary>
-	''' WHTC Rural test results. Saved in input file. 
-	''' </summary>
-	''' <remarks></remarks>
-	Public WHTCrural As Single
-
-	''' <summary>
-	''' WHTC Motorway test results. Saved in input file. 
-	''' </summary>
-	''' <remarks></remarks>
-	Public WHTCmw As Single
-
-
-
-	Public SavedInDeclMode As Boolean
-
-
-	''' <summary>
-	''' New instance. Initialise
-	''' </summary>
-	''' <remarks></remarks>
-	Public Sub New()
-		MyPath = ""
-		sFilePath = ""
-		fMAP = New cSubPath
-		fFLD = New cSubPath
-		SetDefault()
-	End Sub
-
-	''' <summary>
-	''' Set default values
-	''' </summary>
-	''' <remarks></remarks>
-	Private Sub SetDefault()
-		ModelName = "Undefined"
-		Displ = 0
-		Nidle = 0
-		I_mot = 0
-
-
-		fMAP.Clear()
-		fFLD.Clear()
-
-		WHTCurban = 0
-		WHTCrural = 0
-		WHTCmw = 0
-
-		SavedInDeclMode = False
-	End Sub
-
-	''' <summary>
-	''' Save file. <see cref="P:VECTO.cENG.FilePath" /> must be set before calling.
-	''' </summary>
-	''' <returns>True if successful.</returns>
-	''' <remarks></remarks>
-	Public Function SaveFile() As Boolean
-		Dim JSON As New JSON
-		Dim dic As Dictionary(Of String, Object)
-
-		'Header
-		dic = New Dictionary(Of String, Object)
-		dic.Add("CreatedBy", Lic.LicString & " (" & Lic.GUID & ")")
-		dic.Add("Date", Now.ToUniversalTime().ToString("o"))
-		dic.Add("AppVersion", VECTOvers)
-		dic.Add("FileVersion", FormatVersion)
-		JSON.Content.Add("Header", dic)
-
-		'Body
-		dic = New Dictionary(Of String, Object)
-
-		dic.Add("SavedInDeclMode", Cfg.DeclMode)
-		SavedInDeclMode = Cfg.DeclMode
-
-		dic.Add("ModelName", ModelName)
-
-		dic.Add("Displacement", Displ)
-		dic.Add("IdlingSpeed", Nidle)
-		dic.Add("Inertia", I_mot)
-
-		dic.Add("FullLoadCurve", fFLD.PathOrDummy)
-
-		dic.Add("FuelMap", fMAP.PathOrDummy)
-
-		dic.Add("WHTC-Urban", WHTCurban)
-		dic.Add("WHTC-Rural", WHTCrural)
-		dic.Add("WHTC-Motorway", WHTCmw)
-
-
-		JSON.Content.Add("Body", dic)
-
-
-		Return JSON.WriteFile(sFilePath)
-	End Function
-
-	''' <summary>
-	''' Read file. <see cref="P:VECTO.cENG.FilePath" /> must be set before calling.
-	''' </summary>
-	''' <returns>True if successful.</returns>
-	''' <remarks></remarks>
-	Public Function ReadFile(Optional ByVal ShowMsg As Boolean = True) As Boolean
-		Dim MsgSrc As String
-		Dim JSON As New JSON
-
-		MsgSrc = "ENG/ReadFile"
-
-		SetDefault()
-
-
-		If Not JSON.ReadFile(sFilePath) Then Return False
-
-		Try
-
-			FileVersion = JSON.Content("Header")("FileVersion")
-
-			If FileVersion > 1 Then
-				SavedInDeclMode = JSON.Content("Body")("SavedInDeclMode")
-			Else
-				SavedInDeclMode = Cfg.DeclMode
-			End If
-
-			ModelName = JSON.Content("Body")("ModelName")
-
-			Displ = JSON.Content("Body")("Displacement")
-			Nidle = JSON.Content("Body")("IdlingSpeed")
-			I_mot = JSON.Content("Body")("Inertia")
-
-			If FileVersion < 3 Then
-				fFLD.Init(MyPath, JSON.Content("Body")("FullLoadCurves")(0)("Path"))
-			Else
-				fFLD.Init(MyPath, JSON.Content("Body")("FullLoadCurve"))
-			End If
-
-			fMAP.Init(MyPath, JSON.Content("Body")("FuelMap"))
-
-			If FileVersion > 2 AndAlso Not JSON.Content("Body")("WHTC-Urban") Is Nothing Then
-				WHTCurban = CSng(JSON.Content("Body")("WHTC-Urban"))
-				WHTCrural = CSng(JSON.Content("Body")("WHTC-Rural"))
-				WHTCmw = CSng(JSON.Content("Body")("WHTC-Motorway"))
-			End If
-
-		Catch ex As Exception
-			If ShowMsg Then WorkerMsg(tMsgID.Err, "Failed to read VECTO file! " & ex.Message, MsgSrc)
-			Return False
-		End Try
-
-		Return True
-	End Function
-
-
-	''' <summary>
-	''' Get or set Filepath before calling <see cref="M:VECTO.cENG.ReadFile" /> or <see cref="M:VECTO.cENG.SaveFile" />
-	''' </summary>
-	''' <value></value>
-	''' <returns>Full filepath</returns>
-	''' <remarks></remarks>
-	Public Property FilePath() As String
-		Get
-			Return sFilePath
-		End Get
-		Set(ByVal value As String)
-			sFilePath = value
-			If sFilePath = "" Then
-				MyPath = ""
-			Else
-				MyPath = Path.GetDirectoryName(sFilePath) & "\"
-			End If
-		End Set
-	End Property
-
-
-	Public Property PathFLD(Optional ByVal Original As Boolean = False) As String
-		Get
-			If Original Then
-				Return fFLD.OriginalPath
-			Else
-				Return fFLD.FullPath
-			End If
-		End Get
-		Set(ByVal value As String)
-			fFLD.Init(MyPath, value)
-		End Set
-	End Property
-
-	''' <summary>
-	''' Get or set file path (cSubPath) to FC map (.vmap)
-	''' </summary>
-	''' <param name="Original">True= (relative) file path as saved in file; False= full file path</param>
-	''' <value></value>
-	''' <returns>Relative or absolute file path to FC map</returns>
-	''' <remarks></remarks>
-	Public Property PathMAP(Optional ByVal Original As Boolean = False) As String
-		Get
-			If Original Then
-				Return fMAP.OriginalPath
-			Else
-				Return fMAP.FullPath
-			End If
-		End Get
-		Set(ByVal value As String)
-			fMAP.Init(MyPath, value)
-		End Set
-	End Property
-End Class
+' Copyright 2014 European Union.
+' Licensed under the EUPL (the 'Licence');
+'
+' * You may not use this work except in compliance with the Licence.
+' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
+' * Unless required by applicable law or agreed to in writing,
+'   software distributed under the Licence is distributed on an "AS IS" basis,
+'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+'
+' See the LICENSE.txt for the specific language governing permissions and limitations.
+Imports System.Collections.Generic
+Imports System.IO
+Imports TUGraz.VECTO.Input_Files
+
+''' <summary>
+''' Engine input file
+''' </summary>
+''' <remarks></remarks>
+Public Class Engine
+	''' <summary>
+	''' Current format version
+	''' </summary>
+	''' <remarks></remarks>
+	Private Const FormatVersion As Short = 3
+
+	''' <summary>
+	''' Format version of input file. Defined in ReadFile.
+	''' </summary>
+	''' <remarks></remarks>
+	Private FileVersion As Short
+
+	''' <summary>
+	''' Engine description (model, type, etc.). Saved in input file.
+	''' </summary>
+	''' <remarks></remarks>
+	Public ModelName As String
+
+	''' <summary>
+	''' Engine displacement [ccm]. Saved in input file.
+	''' </summary>
+	''' <remarks></remarks>
+	Public Displ As Single
+
+	''' <summary>
+	''' Idling speed [1/min]. Saved in input file.
+	''' </summary>
+	''' <remarks></remarks>
+	Public Nidle As Single
+
+	''' <summary>
+	''' Rotational inertia including flywheel [kgm²]. Saved in input file. Overwritten by generic value in Declaration mode.
+	''' </summary>
+	''' <remarks></remarks>
+	Public I_mot As Single
+
+	''' <summary>
+	''' List of full load/motoring curve files (.vfld)
+	''' </summary>
+	''' <remarks></remarks>
+	Public ReadOnly fFLD As SubPath
+
+	''' <summary>
+	''' Path to fuel consumption map
+	''' </summary>
+	''' <remarks></remarks>
+	Private ReadOnly fMAP As SubPath
+
+	''' <summary>
+	''' Directory of engine file. Defined in FilePath property (Set)
+	''' </summary>
+	''' <remarks></remarks>
+	Private MyPath As String
+
+	''' <summary>
+	''' Full file path. Needs to be defined via FilePath property before calling ReadFile or SaveFile.
+	''' </summary>
+	''' <remarks></remarks>
+	Private sFilePath As String
+
+
+	''' <summary>
+	''' WHTC Urban test results. Saved in input file. 
+	''' </summary>
+	''' <remarks></remarks>
+	Public WHTCurban As Single
+
+	''' <summary>
+	''' WHTC Rural test results. Saved in input file. 
+	''' </summary>
+	''' <remarks></remarks>
+	Public WHTCrural As Single
+
+	''' <summary>
+	''' WHTC Motorway test results. Saved in input file. 
+	''' </summary>
+	''' <remarks></remarks>
+	Public WHTCmw As Single
+
+
+
+	Public SavedInDeclMode As Boolean
+
+
+	''' <summary>
+	''' New instance. Initialise
+	''' </summary>
+	''' <remarks></remarks>
+	Public Sub New()
+		MyPath = ""
+		sFilePath = ""
+		fMAP = New SubPath
+		fFLD = New SubPath
+		SetDefault()
+	End Sub
+
+	''' <summary>
+	''' Set default values
+	''' </summary>
+	''' <remarks></remarks>
+	Private Sub SetDefault()
+		ModelName = "Undefined"
+		Displ = 0
+		Nidle = 0
+		I_mot = 0
+
+
+		fMAP.Clear()
+		fFLD.Clear()
+
+		WHTCurban = 0
+		WHTCrural = 0
+		WHTCmw = 0
+
+		SavedInDeclMode = False
+	End Sub
+
+	''' <summary>
+	''' Save file. <see cref="P:VECTO.cENG.FilePath" /> must be set before calling.
+	''' </summary>
+	''' <returns>True if successful.</returns>
+	''' <remarks></remarks>
+	Public Function SaveFile() As Boolean
+		Dim JSON As New JSONParser
+		Dim dic As Dictionary(Of String, Object)
+
+		'Header
+		dic = New Dictionary(Of String, Object)
+		dic.Add("CreatedBy", Lic.LicString & " (" & Lic.GUID & ")")
+		dic.Add("Date", Now.ToUniversalTime().ToString("o"))
+		dic.Add("AppVersion", VECTOvers)
+		dic.Add("FileVersion", FormatVersion)
+		JSON.Content.Add("Header", dic)
+
+		'Body
+		dic = New Dictionary(Of String, Object)
+
+		dic.Add("SavedInDeclMode", Cfg.DeclMode)
+		SavedInDeclMode = Cfg.DeclMode
+
+		dic.Add("ModelName", ModelName)
+
+		dic.Add("Displacement", Displ)
+		dic.Add("IdlingSpeed", Nidle)
+		dic.Add("Inertia", I_mot)
+
+		dic.Add("FullLoadCurve", fFLD.PathOrDummy)
+
+		dic.Add("FuelMap", fMAP.PathOrDummy)
+
+		dic.Add("WHTC-Urban", WHTCurban)
+		dic.Add("WHTC-Rural", WHTCrural)
+		dic.Add("WHTC-Motorway", WHTCmw)
+
+
+		JSON.Content.Add("Body", dic)
+
+
+		Return JSON.WriteFile(sFilePath)
+	End Function
+
+	''' <summary>
+	''' Read file. <see cref="P:VECTO.cENG.FilePath" /> must be set before calling.
+	''' </summary>
+	''' <returns>True if successful.</returns>
+	''' <remarks></remarks>
+	Public Function ReadFile(Optional ByVal ShowMsg As Boolean = True) As Boolean
+		Dim MsgSrc As String
+		Dim JSON As New JSONParser
+
+		MsgSrc = "ENG/ReadFile"
+
+		SetDefault()
+
+
+		If Not JSON.ReadFile(sFilePath) Then Return False
+
+		Try
+
+			FileVersion = JSON.Content("Header")("FileVersion")
+
+			If FileVersion > 1 Then
+				SavedInDeclMode = JSON.Content("Body")("SavedInDeclMode")
+			Else
+				SavedInDeclMode = Cfg.DeclMode
+			End If
+
+			ModelName = JSON.Content("Body")("ModelName")
+
+			Displ = JSON.Content("Body")("Displacement")
+			Nidle = JSON.Content("Body")("IdlingSpeed")
+			I_mot = JSON.Content("Body")("Inertia")
+
+			If FileVersion < 3 Then
+				fFLD.Init(MyPath, JSON.Content("Body")("FullLoadCurves")(0)("Path"))
+			Else
+				fFLD.Init(MyPath, JSON.Content("Body")("FullLoadCurve"))
+			End If
+
+			fMAP.Init(MyPath, JSON.Content("Body")("FuelMap"))
+
+			If FileVersion > 2 AndAlso Not JSON.Content("Body")("WHTC-Urban") Is Nothing Then
+				WHTCurban = CSng(JSON.Content("Body")("WHTC-Urban"))
+				WHTCrural = CSng(JSON.Content("Body")("WHTC-Rural"))
+				WHTCmw = CSng(JSON.Content("Body")("WHTC-Motorway"))
+			End If
+
+		Catch ex As Exception
+			If ShowMsg Then WorkerMsg(MessageType.Err, "Failed to read VECTO file! " & ex.Message, MsgSrc)
+			Return False
+		End Try
+
+		Return True
+	End Function
+
+
+	''' <summary>
+	''' Get or set Filepath before calling <see cref="M:VECTO.cENG.ReadFile" /> or <see cref="M:VECTO.cENG.SaveFile" />
+	''' </summary>
+	''' <value></value>
+	''' <returns>Full filepath</returns>
+	''' <remarks></remarks>
+	Public Property FilePath() As String
+		Get
+			Return sFilePath
+		End Get
+		Set(ByVal value As String)
+			sFilePath = value
+			If sFilePath = "" Then
+				MyPath = ""
+			Else
+				MyPath = Path.GetDirectoryName(sFilePath) & "\"
+			End If
+		End Set
+	End Property
+
+
+	Public Property PathFLD(Optional ByVal Original As Boolean = False) As String
+		Get
+			If Original Then
+				Return fFLD.OriginalPath
+			Else
+				Return fFLD.FullPath
+			End If
+		End Get
+		Set(ByVal value As String)
+			fFLD.Init(MyPath, value)
+		End Set
+	End Property
+
+	''' <summary>
+	''' Get or set file path (cSubPath) to FC map (.vmap)
+	''' </summary>
+	''' <param name="Original">True= (relative) file path as saved in file; False= full file path</param>
+	''' <value></value>
+	''' <returns>Relative or absolute file path to FC map</returns>
+	''' <remarks></remarks>
+	Public Property PathMAP(Optional ByVal Original As Boolean = False) As String
+		Get
+			If Original Then
+				Return fMAP.OriginalPath
+			Else
+				Return fMAP.FullPath
+			End If
+		End Get
+		Set(ByVal value As String)
+			fMAP.Init(MyPath, value)
+		End Set
+	End Property
+End Class
diff --git a/VECTO/Input Files/cFLD.vb b/VECTO/Input Files/EngineFullLoadCurve.vb
similarity index 88%
rename from VECTO/Input Files/cFLD.vb
rename to VECTO/Input Files/EngineFullLoadCurve.vb
index 1f5ed97382..e5ed5ff910 100644
--- a/VECTO/Input Files/cFLD.vb	
+++ b/VECTO/Input Files/EngineFullLoadCurve.vb	
@@ -1,510 +1,510 @@
-' Copyright 2014 European Union.
-' Licensed under the EUPL (the 'Licence');
-'
-' * You may not use this work except in compliance with the Licence.
-' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
-' * Unless required by applicable law or agreed to in writing,
-'   software distributed under the Licence is distributed on an "AS IS" basis,
-'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-'
-' See the LICENSE.txt for the specific language governing permissions and limitations.
-Imports System.Collections.Generic
-
-''' <summary>
-''' Full load/motoring curve input file
-''' </summary>
-''' <remarks></remarks>
-Public Class cFLD
-	''' <summary>
-	''' Full file path. Needs to be defined via FilePath property before calling ReadFile or SaveFile.
-	''' </summary>
-	''' <remarks></remarks>
-	Private sFilePath As String
-
-	''' <summary>
-	''' List of full load torque values [Nm]
-	''' </summary>
-	''' <remarks></remarks>
-	Public LTq As List(Of Single)
-
-	''' <summary>
-	''' List of motoring torque values [Nm]
-	''' </summary>
-	''' <remarks></remarks>
-	Public LTqDrag As List(Of Single)
-
-	''' <summary>
-	''' List of engine speed values [1/min]
-	''' </summary>
-	''' <remarks></remarks>
-	Public LnU As List(Of Single)
-
-	''' <summary>
-	''' List of PT1 values [s]
-	''' </summary>
-	''' <remarks></remarks>
-	Private LPT1 As List(Of Single)
-
-	''' <summary>
-	''' Last index of lists (items count - 1)
-	''' </summary>
-	''' <remarks></remarks>
-	Private iDim As Integer
-
-	''' <summary>
-	''' Nlo [1/min]. Lowest enging speed with 55% of max. power. Defined in Init.
-	''' </summary>
-	''' <remarks></remarks>
-	Public Nlo As Single
-
-	''' <summary>
-	''' Nhi [1/min]. Highest engine speed with 70% of max. power. Defined in Init.
-	''' </summary>
-	''' <remarks></remarks>
-	Public Nhi As Single
-
-	''' <summary>
-	''' Npref [1/min]. Speed at 51% torque/speed-integral between idling and N95h. Defined in Init.
-	''' </summary>
-	''' <remarks></remarks>
-	Public Npref As Single
-
-	''' <summary>
-	''' N95h [1/min]. Highest engine speed with 95% of max. power. Defined in Init.
-	''' </summary>
-	''' <remarks></remarks>
-	Public N95h As Single
-
-	''' <summary>
-	''' N80h [1/min]. Highest engine speed with 80% of max. power. Defined in Init.
-	''' </summary>
-	''' <remarks></remarks>
-	Public N80h As Single
-
-	''' <summary>
-	''' Read file. FilePath must be set before calling. 
-	''' </summary>
-	''' <returns>True if successful.</returns>
-	''' <remarks></remarks>   
-	Public Function ReadFile(ByVal TqOnly As Boolean, Optional ByVal ShowMsg As Boolean = True) As Boolean
-		Dim file As cFile_V3
-		Dim line As String()
-		Dim PT1set As Boolean
-		Dim FirstLine As Boolean
-		Dim nU As Double
-		Dim MsgSrc As String
-
-		MsgSrc = "Main/ReadInp/FLD"
-
-		'Reset
-		LTq = Nothing
-		LTqDrag = Nothing
-		LnU = Nothing
-		LPT1 = Nothing
-		iDim = -1
-
-		'Stop if there's no file
-		If sFilePath = "" OrElse Not IO.File.Exists(sFilePath) Then
-			If ShowMsg Then WorkerMsg(tMsgID.Err, "FLD file '" & sFilePath & "' not found!", MsgSrc)
-			Return False
-		End If
-
-		'Open file
-		file = New cFile_V3
-		If Not file.OpenRead(sFilePath) Then
-			If ShowMsg Then WorkerMsg(tMsgID.Err, "Failed to open file (" & sFilePath & ") !", MsgSrc)
-
-			Return False
-		End If
-
-		'Skip Header
-		file.ReadLine()
-
-		'Initialize Lists
-		LTq = New List(Of Single)
-		LTqDrag = New List(Of Single)
-		LnU = New List(Of Single)
-		LPT1 = New List(Of Single)
-
-		FirstLine = True
-		Try
-
-			Do While Not file.EndOfFile
-
-				'Read Line
-				line = file.ReadLine
-
-				'VECTO: M => Pe
-				nU = CDbl(line(0))
-
-				LnU.Add(nU)
-				LTq.Add(CDbl(line(1)))
-
-				If TqOnly Then
-					LTqDrag.Add(0)
-				Else
-					LTqDrag.Add(CDbl(line(2)))
-				End If
-
-				If FirstLine Then
-					PT1set = (Not TqOnly) AndAlso (UBound(line) > 2)
-					FirstLine = False
-				End If
-
-				'If PT1 not defined, use default value (0)
-				If PT1set Then
-					LPT1.Add(CSng(line(3)))
-				Else
-					LPT1.Add(0)
-				End If
-
-				'Line-counter up (was reset in ResetMe)
-				iDim += 1
-
-
-			Loop
-
-		Catch ex As Exception
-
-			If ShowMsg Then _
-				WorkerMsg(tMsgID.Err, "Error during file read! Line number: " & iDim + 1 & " (" & sFilePath & ")", MsgSrc, sFilePath)
-			GoTo lbEr
-
-		End Try
-
-
-		'Close file
-		file.Close()
-
-		Return True
-
-
-		'ERROR-label for clean Abort
-lbEr:
-		file.Close()
-
-
-		Return False
-	End Function
-
-	''' <summary>
-	''' Returns stationary full load power [kW] at given engine speed.
-	''' </summary>
-	''' <param name="nU">engine speed [1/min]</param>
-	''' <returns>stationary full load power [kW]</returns>
-	''' <remarks></remarks>
-	Public Function Pfull(ByVal nU As Single) As Single
-		Dim i As Int32
-
-		'Extrapolation for x < x(1)
-		If LnU(0) >= nU Then
-			'If LnU(0) > nU Then MODdata.ModErrors.FLDextrapol = "n= " & nU & " [1/min]"
-			i = 1
-			GoTo lbInt
-		End If
-
-		i = 0
-		Do While LnU(i) < nU And i < iDim
-			i += 1
-		Loop
-
-		'Extrapolation for x > x(imax)
-		If LnU(i) < nU Then
-			'MODdata.ModErrors.FLDextrapol = "n= " & nU & " [1/min]"
-		End If
-
-lbInt:
-		'Interpolation
-		Return nMtoPe(nU, (nU - LnU(i - 1)) * (LTq(i) - LTq(i - 1)) / (LnU(i) - LnU(i - 1)) + LTq(i - 1))
-	End Function
-
-	''' <summary>
-	''' Returns stationary full load torque [Nm] at given engine speed.
-	''' </summary>
-	''' <param name="nU">engine speed [1/min]</param>
-	''' <returns>stationary full load torque [Nm]</returns>
-	''' <remarks></remarks>
-	Public Function Tq(ByVal nU As Single) As Single
-		Dim i As Int32
-
-		'Extrapolation for x < x(1)
-		If LnU(0) >= nU Then
-			'If LnU(0) > nU Then MODdata.ModErrors.FLDextrapol = "n= " & nU & " [1/min]"
-			i = 1
-			GoTo lbInt
-		End If
-
-		i = 0
-		Do While LnU(i) < nU And i < iDim
-			i += 1
-		Loop
-
-		'Extrapolation for x > x(imax)
-		If LnU(i) < nU Then
-			'MODdata.ModErrors.FLDextrapol = "n= " & nU & " [1/min]"
-		End If
-
-lbInt:
-		'Interpolation
-		Return (nU - LnU(i - 1)) * (LTq(i) - LTq(i - 1)) / (LnU(i) - LnU(i - 1)) + LTq(i - 1)
-	End Function
-
-	''' <summary>
-	''' Calculates and returns Npref [1/min]. Speed at 51% torque/speed-integral between idling and N95h. Defined in Init.
-	''' </summary>
-	''' <returns>Npref [1/min]</returns>
-	''' <remarks></remarks>
-	Public Function fNpref(ByVal Nidle As Single) As Single
-		Dim i As Integer
-		Dim Amax As Single
-		Dim N95h As Single
-		Dim n As Single
-		Dim T0 As Single
-		Dim dn As Single
-		Dim A As Single
-		Dim k As Single
-
-
-		dn = 0.001
-
-		N95h = fnUofPfull(0.95 * Pfull(fnUrated), False)
-
-		If N95h < 0 Then Return -1
-
-		Amax = Area(Nidle, N95h)
-
-		For i = 0 To iDim - 1
-
-			If Area(Nidle, LnU(i + 1)) > 0.51 * Amax Then
-
-				n = LnU(i)
-				T0 = LTq(i)
-				A = Area(Nidle, n)
-
-				k = (LTq(i + 1) - LTq(i)) / (LnU(i + 1) - LnU(i))
-
-				Do While A < 0.51 * Amax
-					n += dn
-					A += dn * (2 * T0 + k * dn) / 2
-				Loop
-
-				Exit For
-
-			End If
-
-		Next
-
-		Return n
-	End Function
-
-	''' <summary>
-	''' Calculates torque/speed-integral between two engine speed limits. Used for Npref.
-	''' </summary>
-	''' <param name="nFrom">lower engine speed limit [1/min]</param>
-	''' <param name="nTo">upper engine speed limit [1/min]</param>
-	''' <returns>torque/speed-integral between nFrom and nTo [Nm/min]</returns>
-	''' <remarks></remarks>
-	Private Function Area(ByVal nFrom As Single, ByVal nTo As Single) As Single
-		Dim A As Single
-		Dim i As Integer
-
-
-		A = 0
-		For i = 1 To iDim
-
-			If LnU(i - 1) >= nTo Then Exit For
-
-			If LnU(i - 1) >= nFrom Then
-
-
-				If LnU(i) <= nTo Then
-
-					'Add full segment
-					A += (LnU(i) - LnU(i - 1)) * (LTq(i) + LTq(i - 1)) / 2
-
-				Else
-
-					'Add segment till nTo
-					A += (nTo - LnU(i - 1)) * (Tq(nTo) + LTq(i - 1)) / 2
-
-				End If
-
-			Else
-
-				If LnU(i) > nFrom Then
-
-					'Add segment starting from nFrom
-					A += (LnU(i) - nFrom) * (LTq(i) + Tq(nFrom)) / 2
-
-				End If
-
-			End If
-
-		Next
-
-		Return A
-	End Function
-
-	''' <summary>
-	''' Calculates and returns engine speed at maximum power [1/min]. 
-	''' </summary>
-	''' <returns>engine speed at maximum power [1/min]</returns>
-	''' <remarks></remarks>
-	Public Function fnUrated() As Single
-		Dim PeMax As Single
-		Dim nU As Single
-		Dim nUmax As Single
-		Dim nUrated As Single
-		Dim dnU As Single
-		Dim P As Single
-
-		dnU = 1
-		PeMax = 0
-		nU = LnU(0)
-		nUmax = LnU(iDim)
-		nUrated = nU
-
-		Do
-			P = nMtoPe(nU, Tq(nU))
-			If P > PeMax Then
-				PeMax = P
-				nUrated = nU
-			End If
-			nU += dnU
-		Loop Until nU > nUmax
-
-		Return nUrated
-	End Function
-
-	''' <summary>
-	''' Calculates and returns lowest or highest engine speed at given full load power [1/min]. 
-	''' </summary>
-	''' <param name="PeTarget">full load power [kW]</param>
-	''' <param name="FromLeft">True= lowest engine speed; False= highest engine speed</param>
-	''' <returns>lowest or highest engine speed at given full load power [1/min]</returns>
-	''' <remarks></remarks>
-	Public Function fnUofPfull(ByVal PeTarget As Single, ByVal FromLeft As Boolean) As Single
-		Dim Pe As Single
-		Dim LastPe As Single
-		Dim nU As Single
-		Dim nUmin As Single
-		Dim nUmax As Single
-		Dim nUtarget As Single
-		Dim dnU As Single
-
-		dnU = 1
-		nUmin = LnU(0)
-		nUmax = LnU(iDim)
-
-		If FromLeft Then
-
-			nU = nUmin
-			LastPe = nMtoPe(nU, Tq(nU))
-			nUtarget = nU
-
-			If LastPe > PeTarget Then Return -1
-
-			Do
-				Pe = nMtoPe(nU, Tq(nU))
-
-				If Pe > PeTarget Then
-					If Math.Abs(LastPe - PeTarget) < Math.Abs(Pe - PeTarget) Then
-						Return nU - dnU
-					Else
-						Return nU
-					End If
-				End If
-
-				LastPe = Pe
-				nU += dnU
-			Loop Until nU > nUmax
-
-		Else
-
-			nU = nUmax
-			LastPe = nMtoPe(nU, Tq(nU))
-			nUtarget = nU
-
-			If LastPe > PeTarget Then Return -1
-
-			Do
-				Pe = nMtoPe(nU, Tq(nU))
-
-				If Pe > PeTarget Then
-					If Math.Abs(LastPe - PeTarget) < Math.Abs(Pe - PeTarget) Then
-						Return nU + dnU
-					Else
-						Return nU
-					End If
-				End If
-
-				LastPe = Pe
-				nU -= dnU
-			Loop Until nU < nUmin
-
-		End If
-
-		Return nUtarget
-	End Function
-
-	Public Function Init(ByVal Nidle As Single) As Boolean
-		Dim Pmax As Single
-		Dim MsgSrc As String
-
-		MsgSrc = "Main/ReadInp/Eng.Init"
-
-		Pmax = Pfull(fnUrated)
-
-		Nlo = fnUofPfull(0.55 * Pmax, True)
-
-		If Nlo < 0 Then
-			WorkerMsg(tMsgID.Err, "Failed to calculate Nlo! Expand full load curve!", MsgSrc)
-			Return False
-		End If
-
-		N95h = fnUofPfull(0.95 * Pmax, False)
-
-		If N95h < 0 Then
-			WorkerMsg(tMsgID.Err, "Failed to calculate N95h! Expand full load curve!", MsgSrc)
-			Return False
-		End If
-
-		N80h = fnUofPfull(0.8 * Pmax, False)
-
-		If N80h < 0 Then
-			WorkerMsg(tMsgID.Err, "Failed to calculate N80h! Expand full load curve!", MsgSrc)
-			Return False
-		End If
-
-		Npref = fNpref(Nidle)
-
-		If Npref < 0 Then
-			WorkerMsg(tMsgID.Err, "Failed to calculate Npref! Expand full load curve!", MsgSrc)
-			Return False
-		End If
-
-		Nhi = fnUofPfull(0.7 * Pmax, False)
-
-		If Nhi < 0 Then
-			WorkerMsg(tMsgID.Err, "Failed to calculate Nhi! Expand full load curve!", MsgSrc)
-			Return False
-		End If
-
-		Return True
-	End Function
-
-	''' <summary>
-	''' Get or set Filepath before calling ReadFile
-	''' </summary>
-	''' <value></value>
-	''' <returns>Full filepath</returns>
-	''' <remarks></remarks>
-	Public Property FilePath() As String
-		Get
-			Return sFilePath
-		End Get
-		Set(ByVal value As String)
-			sFilePath = value
-		End Set
-	End Property
-End Class
+' Copyright 2014 European Union.
+' Licensed under the EUPL (the 'Licence');
+'
+' * You may not use this work except in compliance with the Licence.
+' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
+' * Unless required by applicable law or agreed to in writing,
+'   software distributed under the Licence is distributed on an "AS IS" basis,
+'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+'
+' See the LICENSE.txt for the specific language governing permissions and limitations.
+Imports System.Collections.Generic
+
+''' <summary>
+''' Full load/motoring curve input file
+''' </summary>
+''' <remarks></remarks>
+Public Class EngineFullLoadCurve
+	''' <summary>
+	''' Full file path. Needs to be defined via FilePath property before calling ReadFile or SaveFile.
+	''' </summary>
+	''' <remarks></remarks>
+	Private sFilePath As String
+
+	''' <summary>
+	''' List of full load torque values [Nm]
+	''' </summary>
+	''' <remarks></remarks>
+	Public LTq As List(Of Single)
+
+	''' <summary>
+	''' List of motoring torque values [Nm]
+	''' </summary>
+	''' <remarks></remarks>
+	Public LTqDrag As List(Of Single)
+
+	''' <summary>
+	''' List of engine speed values [1/min]
+	''' </summary>
+	''' <remarks></remarks>
+	Public LnU As List(Of Single)
+
+	''' <summary>
+	''' List of PT1 values [s]
+	''' </summary>
+	''' <remarks></remarks>
+	Private LPT1 As List(Of Single)
+
+	''' <summary>
+	''' Last index of lists (items count - 1)
+	''' </summary>
+	''' <remarks></remarks>
+	Private iDim As Integer
+
+	''' <summary>
+	''' Nlo [1/min]. Lowest enging speed with 55% of max. power. Defined in Init.
+	''' </summary>
+	''' <remarks></remarks>
+	Public Nlo As Single
+
+	''' <summary>
+	''' Nhi [1/min]. Highest engine speed with 70% of max. power. Defined in Init.
+	''' </summary>
+	''' <remarks></remarks>
+	Public Nhi As Single
+
+	''' <summary>
+	''' Npref [1/min]. Speed at 51% torque/speed-integral between idling and N95h. Defined in Init.
+	''' </summary>
+	''' <remarks></remarks>
+	Public Npref As Single
+
+	''' <summary>
+	''' N95h [1/min]. Highest engine speed with 95% of max. power. Defined in Init.
+	''' </summary>
+	''' <remarks></remarks>
+	Public N95h As Single
+
+	''' <summary>
+	''' N80h [1/min]. Highest engine speed with 80% of max. power. Defined in Init.
+	''' </summary>
+	''' <remarks></remarks>
+	Public N80h As Single
+
+	''' <summary>
+	''' Read file. FilePath must be set before calling. 
+	''' </summary>
+	''' <returns>True if successful.</returns>
+	''' <remarks></remarks>   
+	Public Function ReadFile(ByVal TqOnly As Boolean, Optional ByVal ShowMsg As Boolean = True) As Boolean
+		Dim file As CsvFile
+		Dim line As String()
+		Dim PT1set As Boolean
+		Dim FirstLine As Boolean
+		Dim nU As Double
+		Dim MsgSrc As String
+
+		MsgSrc = "Main/ReadInp/FLD"
+
+		'Reset
+		LTq = Nothing
+		LTqDrag = Nothing
+		LnU = Nothing
+		LPT1 = Nothing
+		iDim = -1
+
+		'Stop if there's no file
+		If sFilePath = "" OrElse Not IO.File.Exists(sFilePath) Then
+			If ShowMsg Then WorkerMsg(MessageType.Err, "FLD file '" & sFilePath & "' not found!", MsgSrc)
+			Return False
+		End If
+
+		'Open file
+		file = New CsvFile
+		If Not file.OpenRead(sFilePath) Then
+			If ShowMsg Then WorkerMsg(MessageType.Err, "Failed to open file (" & sFilePath & ") !", MsgSrc)
+
+			Return False
+		End If
+
+		'Skip Header
+		file.ReadLine()
+
+		'Initialize Lists
+		LTq = New List(Of Single)
+		LTqDrag = New List(Of Single)
+		LnU = New List(Of Single)
+		LPT1 = New List(Of Single)
+
+		FirstLine = True
+		Try
+
+			Do While Not file.EndOfFile
+
+				'Read Line
+				line = file.ReadLine
+
+				'VECTO: M => Pe
+				nU = CDbl(line(0))
+
+				LnU.Add(nU)
+				LTq.Add(CDbl(line(1)))
+
+				If TqOnly Then
+					LTqDrag.Add(0)
+				Else
+					LTqDrag.Add(CDbl(line(2)))
+				End If
+
+				If FirstLine Then
+					PT1set = (Not TqOnly) AndAlso (UBound(line) > 2)
+					FirstLine = False
+				End If
+
+				'If PT1 not defined, use default value (0)
+				If PT1set Then
+					LPT1.Add(CSng(line(3)))
+				Else
+					LPT1.Add(0)
+				End If
+
+				'Line-counter up (was reset in ResetMe)
+				iDim += 1
+
+
+			Loop
+
+		Catch ex As Exception
+
+			If ShowMsg Then _
+				WorkerMsg(MessageType.Err, "Error during file read! Line number: " & iDim + 1 & " (" & sFilePath & ")", MsgSrc, sFilePath)
+			GoTo lbEr
+
+		End Try
+
+
+		'Close file
+		file.Close()
+
+		Return True
+
+
+		'ERROR-label for clean Abort
+lbEr:
+		file.Close()
+
+
+		Return False
+	End Function
+
+	''' <summary>
+	''' Returns stationary full load power [kW] at given engine speed.
+	''' </summary>
+	''' <param name="nU">engine speed [1/min]</param>
+	''' <returns>stationary full load power [kW]</returns>
+	''' <remarks></remarks>
+	Public Function Pfull(ByVal nU As Single) As Single
+		Dim i As Int32
+
+		'Extrapolation for x < x(1)
+		If LnU(0) >= nU Then
+			'If LnU(0) > nU Then MODdata.ModErrors.FLDextrapol = "n= " & nU & " [1/min]"
+			i = 1
+			GoTo lbInt
+		End If
+
+		i = 0
+		Do While LnU(i) < nU And i < iDim
+			i += 1
+		Loop
+
+		'Extrapolation for x > x(imax)
+		If LnU(i) < nU Then
+			'MODdata.ModErrors.FLDextrapol = "n= " & nU & " [1/min]"
+		End If
+
+lbInt:
+		'Interpolation
+		Return nMtoPe(nU, (nU - LnU(i - 1)) * (LTq(i) - LTq(i - 1)) / (LnU(i) - LnU(i - 1)) + LTq(i - 1))
+	End Function
+
+	''' <summary>
+	''' Returns stationary full load torque [Nm] at given engine speed.
+	''' </summary>
+	''' <param name="nU">engine speed [1/min]</param>
+	''' <returns>stationary full load torque [Nm]</returns>
+	''' <remarks></remarks>
+	Public Function Tq(ByVal nU As Single) As Single
+		Dim i As Int32
+
+		'Extrapolation for x < x(1)
+		If LnU(0) >= nU Then
+			'If LnU(0) > nU Then MODdata.ModErrors.FLDextrapol = "n= " & nU & " [1/min]"
+			i = 1
+			GoTo lbInt
+		End If
+
+		i = 0
+		Do While LnU(i) < nU And i < iDim
+			i += 1
+		Loop
+
+		'Extrapolation for x > x(imax)
+		If LnU(i) < nU Then
+			'MODdata.ModErrors.FLDextrapol = "n= " & nU & " [1/min]"
+		End If
+
+lbInt:
+		'Interpolation
+		Return (nU - LnU(i - 1)) * (LTq(i) - LTq(i - 1)) / (LnU(i) - LnU(i - 1)) + LTq(i - 1)
+	End Function
+
+	''' <summary>
+	''' Calculates and returns Npref [1/min]. Speed at 51% torque/speed-integral between idling and N95h. Defined in Init.
+	''' </summary>
+	''' <returns>Npref [1/min]</returns>
+	''' <remarks></remarks>
+	Public Function fNpref(ByVal Nidle As Single) As Single
+		Dim i As Integer
+		Dim Amax As Single
+		Dim N95h As Single
+		Dim n As Single
+		Dim T0 As Single
+		Dim dn As Single
+		Dim A As Single
+		Dim k As Single
+
+
+		dn = 0.001
+
+		N95h = fnUofPfull(0.95 * Pfull(fnUrated), False)
+
+		If N95h < 0 Then Return -1
+
+		Amax = Area(Nidle, N95h)
+
+		For i = 0 To iDim - 1
+
+			If Area(Nidle, LnU(i + 1)) > 0.51 * Amax Then
+
+				n = LnU(i)
+				T0 = LTq(i)
+				A = Area(Nidle, n)
+
+				k = (LTq(i + 1) - LTq(i)) / (LnU(i + 1) - LnU(i))
+
+				Do While A < 0.51 * Amax
+					n += dn
+					A += dn * (2 * T0 + k * dn) / 2
+				Loop
+
+				Exit For
+
+			End If
+
+		Next
+
+		Return n
+	End Function
+
+	''' <summary>
+	''' Calculates torque/speed-integral between two engine speed limits. Used for Npref.
+	''' </summary>
+	''' <param name="nFrom">lower engine speed limit [1/min]</param>
+	''' <param name="nTo">upper engine speed limit [1/min]</param>
+	''' <returns>torque/speed-integral between nFrom and nTo [Nm/min]</returns>
+	''' <remarks></remarks>
+	Private Function Area(ByVal nFrom As Single, ByVal nTo As Single) As Single
+		Dim A As Single
+		Dim i As Integer
+
+
+		A = 0
+		For i = 1 To iDim
+
+			If LnU(i - 1) >= nTo Then Exit For
+
+			If LnU(i - 1) >= nFrom Then
+
+
+				If LnU(i) <= nTo Then
+
+					'Add full segment
+					A += (LnU(i) - LnU(i - 1)) * (LTq(i) + LTq(i - 1)) / 2
+
+				Else
+
+					'Add segment till nTo
+					A += (nTo - LnU(i - 1)) * (Tq(nTo) + LTq(i - 1)) / 2
+
+				End If
+
+			Else
+
+				If LnU(i) > nFrom Then
+
+					'Add segment starting from nFrom
+					A += (LnU(i) - nFrom) * (LTq(i) + Tq(nFrom)) / 2
+
+				End If
+
+			End If
+
+		Next
+
+		Return A
+	End Function
+
+	''' <summary>
+	''' Calculates and returns engine speed at maximum power [1/min]. 
+	''' </summary>
+	''' <returns>engine speed at maximum power [1/min]</returns>
+	''' <remarks></remarks>
+	Public Function fnUrated() As Single
+		Dim PeMax As Single
+		Dim nU As Single
+		Dim nUmax As Single
+		Dim nUrated As Single
+		Dim dnU As Single
+		Dim P As Single
+
+		dnU = 1
+		PeMax = 0
+		nU = LnU(0)
+		nUmax = LnU(iDim)
+		nUrated = nU
+
+		Do
+			P = nMtoPe(nU, Tq(nU))
+			If P > PeMax Then
+				PeMax = P
+				nUrated = nU
+			End If
+			nU += dnU
+		Loop Until nU > nUmax
+
+		Return nUrated
+	End Function
+
+	''' <summary>
+	''' Calculates and returns lowest or highest engine speed at given full load power [1/min]. 
+	''' </summary>
+	''' <param name="PeTarget">full load power [kW]</param>
+	''' <param name="FromLeft">True= lowest engine speed; False= highest engine speed</param>
+	''' <returns>lowest or highest engine speed at given full load power [1/min]</returns>
+	''' <remarks></remarks>
+	Public Function fnUofPfull(ByVal PeTarget As Single, ByVal FromLeft As Boolean) As Single
+		Dim Pe As Single
+		Dim LastPe As Single
+		Dim nU As Single
+		Dim nUmin As Single
+		Dim nUmax As Single
+		Dim nUtarget As Single
+		Dim dnU As Single
+
+		dnU = 1
+		nUmin = LnU(0)
+		nUmax = LnU(iDim)
+
+		If FromLeft Then
+
+			nU = nUmin
+			LastPe = nMtoPe(nU, Tq(nU))
+			nUtarget = nU
+
+			If LastPe > PeTarget Then Return -1
+
+			Do
+				Pe = nMtoPe(nU, Tq(nU))
+
+				If Pe > PeTarget Then
+					If Math.Abs(LastPe - PeTarget) < Math.Abs(Pe - PeTarget) Then
+						Return nU - dnU
+					Else
+						Return nU
+					End If
+				End If
+
+				LastPe = Pe
+				nU += dnU
+			Loop Until nU > nUmax
+
+		Else
+
+			nU = nUmax
+			LastPe = nMtoPe(nU, Tq(nU))
+			nUtarget = nU
+
+			If LastPe > PeTarget Then Return -1
+
+			Do
+				Pe = nMtoPe(nU, Tq(nU))
+
+				If Pe > PeTarget Then
+					If Math.Abs(LastPe - PeTarget) < Math.Abs(Pe - PeTarget) Then
+						Return nU + dnU
+					Else
+						Return nU
+					End If
+				End If
+
+				LastPe = Pe
+				nU -= dnU
+			Loop Until nU < nUmin
+
+		End If
+
+		Return nUtarget
+	End Function
+
+	Public Function Init(ByVal Nidle As Single) As Boolean
+		Dim Pmax As Single
+		Dim MsgSrc As String
+
+		MsgSrc = "Main/ReadInp/Eng.Init"
+
+		Pmax = Pfull(fnUrated)
+
+		Nlo = fnUofPfull(0.55 * Pmax, True)
+
+		If Nlo < 0 Then
+			WorkerMsg(MessageType.Err, "Failed to calculate Nlo! Expand full load curve!", MsgSrc)
+			Return False
+		End If
+
+		N95h = fnUofPfull(0.95 * Pmax, False)
+
+		If N95h < 0 Then
+			WorkerMsg(MessageType.Err, "Failed to calculate N95h! Expand full load curve!", MsgSrc)
+			Return False
+		End If
+
+		N80h = fnUofPfull(0.8 * Pmax, False)
+
+		If N80h < 0 Then
+			WorkerMsg(MessageType.Err, "Failed to calculate N80h! Expand full load curve!", MsgSrc)
+			Return False
+		End If
+
+		Npref = fNpref(Nidle)
+
+		If Npref < 0 Then
+			WorkerMsg(MessageType.Err, "Failed to calculate Npref! Expand full load curve!", MsgSrc)
+			Return False
+		End If
+
+		Nhi = fnUofPfull(0.7 * Pmax, False)
+
+		If Nhi < 0 Then
+			WorkerMsg(MessageType.Err, "Failed to calculate Nhi! Expand full load curve!", MsgSrc)
+			Return False
+		End If
+
+		Return True
+	End Function
+
+	''' <summary>
+	''' Get or set Filepath before calling ReadFile
+	''' </summary>
+	''' <value></value>
+	''' <returns>Full filepath</returns>
+	''' <remarks></remarks>
+	Public Property FilePath() As String
+		Get
+			Return sFilePath
+		End Get
+		Set(ByVal value As String)
+			sFilePath = value
+		End Set
+	End Property
+End Class
diff --git a/VECTO/Input Files/cMAP.vb b/VECTO/Input Files/FuelconsumptionMap.vb
similarity index 59%
rename from VECTO/Input Files/cMAP.vb
rename to VECTO/Input Files/FuelconsumptionMap.vb
index 0f8494554d..2b1e55b2fc 100644
--- a/VECTO/Input Files/cMAP.vb	
+++ b/VECTO/Input Files/FuelconsumptionMap.vb	
@@ -10,25 +10,23 @@
 ' See the LICENSE.txt for the specific language governing permissions and limitations.
 Imports System.Collections.Generic
 
-Public Class cMAP
+Public Class FuelconsumptionMap
 	'Implements IFuelConsumptionMap
 
-	Private LnU As List(Of Single)
-	Private LTq As List(Of Single)
-	Private lFC As List(Of Single)
+	Private _angularSpeedList As List(Of Single)
+	Private _torqueList As List(Of Single)
+	Private _fuelconsumptionList As List(Of Single)
 
-	Private sFilePath As String
-	Private iMapDim As Integer
+	Private _filePath As String
 
 	Private Sub ResetMe()
-		lFC = Nothing
-		LTq = Nothing
-		LnU = Nothing
-		iMapDim = -1
+		_fuelconsumptionList = Nothing
+		_torqueList = Nothing
+		_angularSpeedList = Nothing
 	End Sub
 
 	Public Function ReadFile(Optional ByVal ShowMsg As Boolean = True) As Boolean
-		Dim file As cFile_V3
+		Dim file As CsvFile
 		Dim line As String()
 		Dim nU As Double
 		Dim MsgSrc As String
@@ -40,16 +38,16 @@ Public Class cMAP
 		ResetMe()
 
 		'Stop if there's no file
-		If sFilePath = "" OrElse Not IO.File.Exists(sFilePath) Then
-			If ShowMsg Then WorkerMsg(tMsgID.Err, "Map file not found! (" & sFilePath & ")", MsgSrc)
+		If _filePath = "" OrElse Not IO.File.Exists(_filePath) Then
+			If ShowMsg Then WorkerMsg(MessageType.Err, "Map file not found! (" & _filePath & ")", MsgSrc)
 			Return False
 		End If
 
 		'Open file
-		file = New cFile_V3
-		If Not file.OpenRead(sFilePath) Then
+		file = New CsvFile
+		If Not file.OpenRead(_filePath) Then
 
-			If ShowMsg Then WorkerMsg(tMsgID.Err, "Failed to open file (" & sFilePath & ") !", MsgSrc)
+			If ShowMsg Then WorkerMsg(MessageType.Err, "Failed to open file (" & _filePath & ") !", MsgSrc)
 			Return False
 		End If
 
@@ -57,9 +55,11 @@ Public Class cMAP
 		file.ReadLine()
 
 		'Initi Lists (before version check so ReadOldFormat works)
-		lFC = New List(Of Single)
-		LTq = New List(Of Single)
-		LnU = New List(Of Single)
+		_fuelconsumptionList = New List(Of Single)
+		_torqueList = New List(Of Single)
+		_angularSpeedList = New List(Of Single)
+
+		Dim lineCount As Integer = -1
 
 		Try
 			Do While Not file.EndOfFile
@@ -68,33 +68,33 @@ Public Class cMAP
 				line = file.ReadLine
 
 				'Line counter up (was reset in ResetMe)
-				iMapDim += 1
+				lineCount += 1
 
 				'Revolutions
 				nU = CDbl(line(0))
 
-				LnU.Add(nU)
+				_angularSpeedList.Add(nU)
 
 				'Power
-				LTq.Add(line(1))
+				_torqueList.Add(line(1))
 
 				'FC
 				'Check sign
 				If CSng(line(2)) < 0 Then
 					file.Close()
-					If ShowMsg Then WorkerMsg(tMsgID.Err, "FC < 0 in map at " & nU & " [1/min], " & line(1) & " [Nm]", MsgSrc)
+					If ShowMsg Then WorkerMsg(MessageType.Err, "FC < 0 in map at " & nU & " [1/min], " & line(1) & " [Nm]", MsgSrc)
 					Return False
 				End If
 
-				lFC.Add(CSng(line(2)))
+				_fuelconsumptionList.Add(CSng(line(2)))
 
 
 			Loop
 		Catch ex As Exception
 
 			If ShowMsg Then _
-				WorkerMsg(tMsgID.Err, "Error during file read! Line number " & iMapDim + 1 & " (" & sFilePath & ")", MsgSrc,
-						sFilePath)
+				WorkerMsg(MessageType.Err, "Error during file read! Line number " & lineCount + 1 & " (" & _filePath & ")", MsgSrc,
+						_filePath)
 			GoTo lbEr
 
 		End Try
@@ -119,22 +119,22 @@ lbEr:
 
 	Public Property FilePath() As String
 		Get
-			Return sFilePath
+			Return _filePath
 		End Get
 		Set(ByVal value As String)
-			sFilePath = value
+			_filePath = value
 		End Set
 	End Property
 
 	Public ReadOnly Property Tq As List(Of Single)
 		Get
-			Return LTq
+			Return _torqueList
 		End Get
 	End Property
 
 	Public ReadOnly Property nU As List(Of Single)
 		Get
-			Return LnU
+			Return _angularSpeedList
 		End Get
 	End Property
 
diff --git a/VECTO/Input Files/cGBX.vb b/VECTO/Input Files/Gearbox.vb
similarity index 61%
rename from VECTO/Input Files/cGBX.vb
rename to VECTO/Input Files/Gearbox.vb
index 609dbf4a1d..3f8bfd83dd 100644
--- a/VECTO/Input Files/cGBX.vb	
+++ b/VECTO/Input Files/Gearbox.vb	
@@ -1,331 +1,331 @@
-' Copyright 2014 European Union.
-' Licensed under the EUPL (the 'Licence');
-'
-' * You may not use this work except in compliance with the Licence.
-' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
-' * Unless required by applicable law or agreed to in writing,
-'   software distributed under the Licence is distributed on an "AS IS" basis,
-'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-'
-' See the LICENSE.txt for the specific language governing permissions and limitations.
-Imports System.Collections.Generic
-Imports System.IO
-Imports TUGraz.VECTO.Input_Files
-Imports TUGraz.VectoCommon.Models
-Imports TUGraz.VectoCommon.Utils
-
-Public Class cGBX
-	Private Const FormatVersion As Short = 6
-	Private FileVersion As Short
-
-	Private MyPath As String
-	Private sFilePath As String
-
-	Public ModelName As String
-	Public GbxInertia As Single
-	Public TracIntrSi As Single
-
-	Public Igetr As List(Of Single)
-	Public GetrMaps As List(Of cSubPath)
-	'Public IsTCgear As List(Of Boolean)
-
-	'Gear shift polygons
-	Public gs_files As List(Of cSubPath)
-
-	Public MaxTorque As List(Of String)
-
-	Public gs_TorqueResv As Single
-	Public gs_SkipGears As Boolean
-	Public gs_ShiftTime As Integer
-	Public gs_TorqueResvStart As Single
-	Public gs_StartSpeed As Single
-	Public gs_StartAcc As Single
-	Public gs_ShiftInside As Boolean
-
-	Public gs_Type As GearboxType
-
-	'Torque Converter Input
-	Public TCon As Boolean
-	Public TCrefrpm As Single
-	Private TC_file As New cSubPath
-	Public TCinertia As Single
-
-
-	Public SavedInDeclMode As Boolean
-	Public UpshiftMinAcceleration As Single
-	Public DownshiftAfterUpshift As Single
-	Public UpshiftAfterDownshift As Single
-	Public TCshiftFile As String
-
-
-	Public Sub New()
-		MyPath = ""
-		sFilePath = ""
-		SetDefault()
-	End Sub
-
-	Private Sub SetDefault()
-
-		ModelName = ""
-		GbxInertia = 0
-		TracIntrSi = 0
-
-		Igetr = New List(Of Single)
-		GetrMaps = New List(Of cSubPath)
-		gs_files = New List(Of cSubPath)
-		MaxTorque = New List(Of String)
-
-		gs_TorqueResv = 0
-		gs_SkipGears = False
-		gs_ShiftTime = 0
-		gs_TorqueResvStart = 0
-		gs_StartSpeed = 0
-		gs_StartAcc = 0
-		gs_ShiftInside = False
-
-		gs_Type = GearboxType.MT
-
-		TCon = False
-		TCrefrpm = 0
-		TC_file.Clear()
-
-		TCinertia = 0
-
-		SavedInDeclMode = False
-	End Sub
-
-	Public Function SaveFile() As Boolean
-		Dim i As Integer
-		Dim JSON As New JSON
-		Dim dic As Dictionary(Of String, Object)
-		Dim dic0 As Dictionary(Of String, Object)
-		Dim ls As List(Of Object)
-
-		'Header
-		dic = New Dictionary(Of String, Object)
-		dic.Add("CreatedBy", Lic.LicString & " (" & Lic.GUID & ")")
-		dic.Add("Date", Now.ToUniversalTime().ToString("o"))
-		dic.Add("AppVersion", VECTOvers)
-		dic.Add("FileVersion", FormatVersion)
-		JSON.Content.Add("Header", dic)
-
-		'Body
-		dic = New Dictionary(Of String, Object)
-
-		dic.Add("SavedInDeclMode", Cfg.DeclMode)
-		SavedInDeclMode = Cfg.DeclMode
-
-		dic.Add("ModelName", ModelName)
-
-		dic.Add("Inertia", GbxInertia)
-		dic.Add("TracInt", TracIntrSi)
-
-		ls = New List(Of Object)
-		For i = 0 To Igetr.Count - 1
-			dic0 = New Dictionary(Of String, Object)
-			dic0.Add("Ratio", Igetr(i))
-			If IsNumeric(GetrMap(i, True)) Then
-				dic0.Add("Efficiency", GetrMaps(i).PathOrDummy)
-			Else
-				dic0.Add("LossMap", GetrMaps(i).PathOrDummy)
-			End If
-			If i > 0 Then
-				dic0.Add("ShiftPolygon", gs_files(i).PathOrDummy)
-				dic0.Add("MaxTorque", MaxTorque(i))
-			End If
-
-			ls.Add(dic0)
-		Next
-		dic.Add("Gears", ls)
-
-		dic.Add("TqReserve", gs_TorqueResv)
-		dic.Add("SkipGears", gs_SkipGears)
-		dic.Add("ShiftTime", gs_ShiftTime)
-		dic.Add("EaryShiftUp", gs_ShiftInside)
-
-		dic.Add("StartTqReserve", gs_TorqueResvStart)
-		dic.Add("StartSpeed", gs_StartSpeed)
-		dic.Add("StartAcc", gs_StartAcc)
-
-		dic.Add("GearboxType", gs_Type)
-
-		dic0 = New Dictionary(Of String, Object)
-		dic0.Add("Enabled", TCon)
-		dic0.Add("File", TC_file.PathOrDummy)
-		dic0.Add("RefRPM", TCrefrpm)
-		dic0.Add("Inertia", TCinertia)
-		dic0.Add("ShiftPolygon", TCshiftFile)
-		dic.Add("TorqueConverter", dic0)
-
-
-		dic.Add("DownshiftAferUpshiftDelay", DownshiftAfterUpshift)
-		dic.Add("UpshiftAfterDownshiftDelay", UpshiftAfterDownshift)
-		dic.Add("UpshiftMinAcceleration", UpshiftMinAcceleration)
-
-		JSON.Content.Add("Body", dic)
-
-		Return JSON.WriteFile(sFilePath)
-	End Function
-
-	Public Function ReadFile(Optional ByVal ShowMsg As Boolean = True) As Boolean
-		Dim i As Integer
-		Dim MsgSrc As String
-		Dim JSON As New JSON
-		Dim dic As Object
-
-		MsgSrc = "GBX/ReadFile"
-
-		SetDefault()
-
-		If Not JSON.ReadFile(sFilePath) Then Return False
-
-		Try
-
-			FileVersion = JSON.Content("Header")("FileVersion")
-
-			If FileVersion > 3 Then
-				SavedInDeclMode = JSON.Content("Body")("SavedInDeclMode")
-			Else
-				SavedInDeclMode = Cfg.DeclMode
-			End If
-
-			ModelName = JSON.Content("Body")("ModelName")
-			GbxInertia = JSON.Content("Body")("Inertia")
-			TracIntrSi = JSON.Content("Body")("TracInt")
-
-			i = -1
-			For Each dic In JSON.Content("Body")("Gears")
-				i += 1
-
-				Igetr.Add(dic("Ratio"))
-				GetrMaps.Add(New cSubPath)
-
-				If dic("Efficiency") Is Nothing Then
-					GetrMaps(i).Init(MyPath, dic("LossMap"))
-				Else
-					GetrMaps(i).Init(MyPath, dic("Efficiency"))
-				End If
-
-				MaxTorque.Add(dic("MaxTorque"))
-				gs_files.Add(New cSubPath)
-
-				If i = 0 Then
-					gs_files(i).Init(MyPath, sKey.NoFile)
-				Else
-					If FileVersion < 2 Then
-						gs_files(i).Init(MyPath, JSON.Content("Body")("ShiftPolygons"))
-					Else
-						gs_files(i).Init(MyPath, dic("ShiftPolygon"))
-					End If
-				End If
-
-			Next
-
-			gs_TorqueResv = JSON.Content("Body")("TqReserve")
-			gs_SkipGears = JSON.Content("Body")("SkipGears")
-			gs_ShiftTime = JSON.Content("Body")("ShiftTime")
-			gs_TorqueResvStart = JSON.Content("Body")("StartTqReserve")
-			gs_StartSpeed = JSON.Content("Body")("StartSpeed")
-			gs_StartAcc = JSON.Content("Body")("StartAcc")
-			gs_ShiftInside = JSON.Content("Body")("EaryShiftUp")
-
-			gs_Type = JSON.Content("Body")("GearboxType").ToString.ParseEnum(Of GearboxType)()
-
-			If JSON.Content("Body")("UpshiftMinAcceleration") Is Nothing Then
-				UpshiftMinAcceleration = 0.1
-			Else
-				UpshiftMinAcceleration = JSON.Content("Body")("UpshiftMinAcceleration")
-			End If
-			If JSON.Content("Body")("DownshiftAferUpshiftDelay") Is Nothing Then
-				DownshiftAfterUpshift = 10
-			Else
-				DownshiftAfterUpshift = JSON.Content("Body")("DownshiftAferUpshiftDelay")
-			End If
-
-			If JSON.Content("Body")("UpshiftAfterDownshiftDelay") Is Nothing Then
-				UpshiftAfterDownshift = 10
-			Else
-				UpshiftAfterDownshift = JSON.Content("Body")("UpshiftAfterDownshiftDelay")
-			End If
-
-
-			If JSON.Content("Body")("TorqueConverter") Is Nothing Then
-				TCon = False
-			Else
-				TCon = JSON.Content("Body")("TorqueConverter")("Enabled")
-				TC_file.Init(MyPath, JSON.Content("Body")("TorqueConverter")("File"))
-				TCrefrpm = JSON.Content("Body")("TorqueConverter")("RefRPM")
-				If FileVersion > 2 Then
-					TCinertia = JSON.Content("Body")("TorqueConverter")("Inertia")
-				End If
-				If FileVersion > 5 Then
-					TCshiftFile = JSON.Content("Body")("TorqueConverter")("ShiftPolygon")
-				End If
-			End If
-		Catch ex As Exception
-			If ShowMsg Then WorkerMsg(tMsgID.Err, "Failed to read VECTO file! " & ex.Message, MsgSrc)
-			Return False
-		End Try
-
-		Return True
-	End Function
-
-
-	Public Function GearCount() As Integer
-		Return Igetr.Count - 1
-	End Function
-
-
-	Public Property FilePath() As String
-		Get
-			Return sFilePath
-		End Get
-		Set(ByVal value As String)
-			sFilePath = value
-			If sFilePath = "" Then
-				MyPath = ""
-			Else
-				MyPath = Path.GetDirectoryName(sFilePath) & "\"
-			End If
-		End Set
-	End Property
-
-	Public Property GetrMap(ByVal x As Short, Optional ByVal Original As Boolean = False) As String
-		Get
-			If Original Then
-				Return GetrMaps(x).OriginalPath
-			Else
-				Return GetrMaps(x).FullPath
-			End If
-		End Get
-		Set(ByVal value As String)
-			GetrMaps(x).Init(MyPath, value)
-		End Set
-	End Property
-
-	Public Property gsFile(ByVal x As Short, Optional ByVal Original As Boolean = False) As String
-		Get
-			If Original Then
-				Return gs_files(x).OriginalPath
-			Else
-				Return gs_files(x).FullPath
-			End If
-		End Get
-		Set(value As String)
-			gs_files(x).Init(MyPath, value)
-		End Set
-	End Property
-
-	Public Property TCfile(Optional ByVal Original As Boolean = False) As String
-		Get
-			If Original Then
-				Return TC_file.OriginalPath
-			Else
-				Return TC_file.FullPath
-			End If
-		End Get
-		Set(value As String)
-			TC_file.Init(MyPath, value)
-		End Set
-	End Property
-End Class
+' Copyright 2014 European Union.
+' Licensed under the EUPL (the 'Licence');
+'
+' * You may not use this work except in compliance with the Licence.
+' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
+' * Unless required by applicable law or agreed to in writing,
+'   software distributed under the Licence is distributed on an "AS IS" basis,
+'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+'
+' See the LICENSE.txt for the specific language governing permissions and limitations.
+Imports System.Collections.Generic
+Imports System.IO
+Imports TUGraz.VECTO.Input_Files
+Imports TUGraz.VectoCommon.Models
+Imports TUGraz.VectoCommon.Utils
+
+Public Class Gearbox
+	Private Const FormatVersion As Short = 6
+	Private _fileVersion As Short
+
+	Private _myPath As String
+	Private _filePath As String
+
+	Public ModelName As String
+	Public GbxInertia As Single
+	Public TracIntrSi As Single
+
+	Public Igetr As List(Of Single)
+	Public GetrMaps As List(Of SubPath)
+	'Public IsTCgear As List(Of Boolean)
+
+	'Gear shift polygons
+	Public gs_files As List(Of SubPath)
+
+	Public MaxTorque As List(Of String)
+
+	Public TorqueResv As Single
+	Public SkipGears As Boolean
+	Public ShiftTime As Integer
+	Public TorqueResvStart As Single
+	Public StartSpeed As Single
+	Public StartAcc As Single
+	Public ShiftInside As Boolean
+
+	Public Type As GearboxType
+
+	'Torque Converter Input
+	Public TorqueConverterEnabled As Boolean
+	Public TorqueConverterReferenceRpm As Single
+	Private ReadOnly TorqueConverterFile As New SubPath
+	Public TorqueConverterInertia As Single
+
+
+	Public SavedInDeclMode As Boolean
+	Public UpshiftMinAcceleration As Single
+	Public DownshiftAfterUpshift As Single
+	Public UpshiftAfterDownshift As Single
+	Public TCshiftFile As String
+
+
+	Public Sub New()
+		_myPath = ""
+		_filePath = ""
+		SetDefault()
+	End Sub
+
+	Private Sub SetDefault()
+
+		ModelName = ""
+		GbxInertia = 0
+		TracIntrSi = 0
+
+		Igetr = New List(Of Single)
+		GetrMaps = New List(Of SubPath)
+		gs_files = New List(Of SubPath)
+		MaxTorque = New List(Of String)
+
+		TorqueResv = 0
+		SkipGears = False
+		ShiftTime = 0
+		TorqueResvStart = 0
+		StartSpeed = 0
+		StartAcc = 0
+		ShiftInside = False
+
+		Type = GearboxType.MT
+
+		TorqueConverterEnabled = False
+		TorqueConverterReferenceRpm = 0
+		TorqueConverterFile.Clear()
+
+		TorqueConverterInertia = 0
+
+		SavedInDeclMode = False
+	End Sub
+
+	Public Function SaveFile() As Boolean
+		Dim i As Integer
+		Dim JSON As New JSONParser
+		Dim dic As Dictionary(Of String, Object)
+		Dim dic0 As Dictionary(Of String, Object)
+		Dim ls As List(Of Object)
+
+		'Header
+		dic = New Dictionary(Of String, Object)
+		dic.Add("CreatedBy", Lic.LicString & " (" & Lic.GUID & ")")
+		dic.Add("Date", Now.ToUniversalTime().ToString("o"))
+		dic.Add("AppVersion", VECTOvers)
+		dic.Add("FileVersion", FormatVersion)
+		JSON.Content.Add("Header", dic)
+
+		'Body
+		dic = New Dictionary(Of String, Object)
+
+		dic.Add("SavedInDeclMode", Cfg.DeclMode)
+		SavedInDeclMode = Cfg.DeclMode
+
+		dic.Add("ModelName", ModelName)
+
+		dic.Add("Inertia", GbxInertia)
+		dic.Add("TracInt", TracIntrSi)
+
+		ls = New List(Of Object)
+		For i = 0 To Igetr.Count - 1
+			dic0 = New Dictionary(Of String, Object)
+			dic0.Add("Ratio", Igetr(i))
+			If IsNumeric(GetrMap(i, True)) Then
+				dic0.Add("Efficiency", GetrMaps(i).PathOrDummy)
+			Else
+				dic0.Add("LossMap", GetrMaps(i).PathOrDummy)
+			End If
+			If i > 0 Then
+				dic0.Add("ShiftPolygon", gs_files(i).PathOrDummy)
+				dic0.Add("MaxTorque", MaxTorque(i))
+			End If
+
+			ls.Add(dic0)
+		Next
+		dic.Add("Gears", ls)
+
+		dic.Add("TqReserve", TorqueResv)
+		dic.Add("SkipGears", SkipGears)
+		dic.Add("ShiftTime", ShiftTime)
+		dic.Add("EaryShiftUp", ShiftInside)
+
+		dic.Add("StartTqReserve", TorqueResvStart)
+		dic.Add("StartSpeed", StartSpeed)
+		dic.Add("StartAcc", StartAcc)
+
+		dic.Add("GearboxType", Type)
+
+		dic0 = New Dictionary(Of String, Object)
+		dic0.Add("Enabled", TorqueConverterEnabled)
+		dic0.Add("File", TorqueConverterFile.PathOrDummy)
+		dic0.Add("RefRPM", TorqueConverterReferenceRpm)
+		dic0.Add("Inertia", TorqueConverterInertia)
+		dic0.Add("ShiftPolygon", TCshiftFile)
+		dic.Add("TorqueConverter", dic0)
+
+
+		dic.Add("DownshiftAferUpshiftDelay", DownshiftAfterUpshift)
+		dic.Add("UpshiftAfterDownshiftDelay", UpshiftAfterDownshift)
+		dic.Add("UpshiftMinAcceleration", UpshiftMinAcceleration)
+
+		JSON.Content.Add("Body", dic)
+
+		Return JSON.WriteFile(_filePath)
+	End Function
+
+	Public Function ReadFile(Optional ByVal ShowMsg As Boolean = True) As Boolean
+		Dim i As Integer
+		Dim MsgSrc As String
+		Dim JSON As New JSONParser
+		Dim dic As Object
+
+		MsgSrc = "GBX/ReadFile"
+
+		SetDefault()
+
+		If Not JSON.ReadFile(_filePath) Then Return False
+
+		Try
+
+			_fileVersion = JSON.Content("Header")("FileVersion")
+
+			If _fileVersion > 3 Then
+				SavedInDeclMode = JSON.Content("Body")("SavedInDeclMode")
+			Else
+				SavedInDeclMode = Cfg.DeclMode
+			End If
+
+			ModelName = JSON.Content("Body")("ModelName")
+			GbxInertia = JSON.Content("Body")("Inertia")
+			TracIntrSi = JSON.Content("Body")("TracInt")
+
+			i = -1
+			For Each dic In JSON.Content("Body")("Gears")
+				i += 1
+
+				Igetr.Add(dic("Ratio"))
+				GetrMaps.Add(New SubPath)
+
+				If dic("Efficiency") Is Nothing Then
+					GetrMaps(i).Init(_myPath, dic("LossMap"))
+				Else
+					GetrMaps(i).Init(_myPath, dic("Efficiency"))
+				End If
+
+				MaxTorque.Add(dic("MaxTorque"))
+				gs_files.Add(New SubPath)
+
+				If i = 0 Then
+					gs_files(i).Init(_myPath, sKey.NoFile)
+				Else
+					If _fileVersion < 2 Then
+						gs_files(i).Init(_myPath, JSON.Content("Body")("ShiftPolygons"))
+					Else
+						gs_files(i).Init(_myPath, dic("ShiftPolygon"))
+					End If
+				End If
+
+			Next
+
+			TorqueResv = JSON.Content("Body")("TqReserve")
+			SkipGears = JSON.Content("Body")("SkipGears")
+			ShiftTime = JSON.Content("Body")("ShiftTime")
+			TorqueResvStart = JSON.Content("Body")("StartTqReserve")
+			StartSpeed = JSON.Content("Body")("StartSpeed")
+			StartAcc = JSON.Content("Body")("StartAcc")
+			ShiftInside = JSON.Content("Body")("EaryShiftUp")
+
+			Type = JSON.Content("Body")("GearboxType").ToString.ParseEnum(Of GearboxType)()
+
+			If JSON.Content("Body")("UpshiftMinAcceleration") Is Nothing Then
+				UpshiftMinAcceleration = 0.1
+			Else
+				UpshiftMinAcceleration = JSON.Content("Body")("UpshiftMinAcceleration")
+			End If
+			If JSON.Content("Body")("DownshiftAferUpshiftDelay") Is Nothing Then
+				DownshiftAfterUpshift = 10
+			Else
+				DownshiftAfterUpshift = JSON.Content("Body")("DownshiftAferUpshiftDelay")
+			End If
+
+			If JSON.Content("Body")("UpshiftAfterDownshiftDelay") Is Nothing Then
+				UpshiftAfterDownshift = 10
+			Else
+				UpshiftAfterDownshift = JSON.Content("Body")("UpshiftAfterDownshiftDelay")
+			End If
+
+
+			If JSON.Content("Body")("TorqueConverter") Is Nothing Then
+				TorqueConverterEnabled = False
+			Else
+				TorqueConverterEnabled = JSON.Content("Body")("TorqueConverter")("Enabled")
+				TorqueConverterFile.Init(_myPath, JSON.Content("Body")("TorqueConverter")("File"))
+				TorqueConverterReferenceRpm = JSON.Content("Body")("TorqueConverter")("RefRPM")
+				If _fileVersion > 2 Then
+					TorqueConverterInertia = JSON.Content("Body")("TorqueConverter")("Inertia")
+				End If
+				If _fileVersion > 5 Then
+					TCshiftFile = JSON.Content("Body")("TorqueConverter")("ShiftPolygon")
+				End If
+			End If
+		Catch ex As Exception
+			If ShowMsg Then WorkerMsg(MessageType.Err, "Failed to read VECTO file! " & ex.Message, MsgSrc)
+			Return False
+		End Try
+
+		Return True
+	End Function
+
+
+	Public Function GearCount() As Integer
+		Return Igetr.Count - 1
+	End Function
+
+
+	Public Property FilePath() As String
+		Get
+			Return _filePath
+		End Get
+		Set(ByVal value As String)
+			_filePath = value
+			If _filePath = "" Then
+				_myPath = ""
+			Else
+				_myPath = Path.GetDirectoryName(_filePath) & "\"
+			End If
+		End Set
+	End Property
+
+	Public Property GetrMap(ByVal x As Short, Optional ByVal Original As Boolean = False) As String
+		Get
+			If Original Then
+				Return GetrMaps(x).OriginalPath
+			Else
+				Return GetrMaps(x).FullPath
+			End If
+		End Get
+		Set(ByVal value As String)
+			GetrMaps(x).Init(_myPath, value)
+		End Set
+	End Property
+
+	Public Property gsFile(ByVal x As Short, Optional ByVal Original As Boolean = False) As String
+		Get
+			If Original Then
+				Return gs_files(x).OriginalPath
+			Else
+				Return gs_files(x).FullPath
+			End If
+		End Get
+		Set(value As String)
+			gs_files(x).Init(_myPath, value)
+		End Set
+	End Property
+
+	Public Property TCfile(Optional ByVal Original As Boolean = False) As String
+		Get
+			If Original Then
+				Return TorqueConverterFile.OriginalPath
+			Else
+				Return TorqueConverterFile.FullPath
+			End If
+		End Get
+		Set(value As String)
+			TorqueConverterFile.Init(_myPath, value)
+		End Set
+	End Property
+End Class
diff --git a/VECTO/Input Files/cSubPath.vb b/VECTO/Input Files/SubPath.vb
similarity index 63%
rename from VECTO/Input Files/cSubPath.vb
rename to VECTO/Input Files/SubPath.vb
index aac138b4e2..011151ed16 100644
--- a/VECTO/Input Files/cSubPath.vb	
+++ b/VECTO/Input Files/SubPath.vb	
@@ -1,81 +1,74 @@
-' Copyright 2014 European Union.
-' Licensed under the EUPL (the 'Licence');
-'
-' * You may not use this work except in compliance with the Licence.
-' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
-' * Unless required by applicable law or agreed to in writing,
-'   software distributed under the Licence is distributed on an "AS IS" basis,
-'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-'
-' See the LICENSE.txt for the specific language governing permissions and limitations.
-Namespace Input_Files
-
-	Public Class cSubPath
-
-		Private sFullPath As String
-		Private sOglPath As String
-		Private bDefined As Boolean
-
-		Public Sub New()
-			bDefined = False
-		End Sub
-
-		Public Sub Init(ByVal ParentDir As String, ByVal Path As String)
-			If fFileOrNot(Path) = "" Then
-				bDefined = False
-			Else
-				bDefined = True
-				sOglPath = Path
-				sFullPath = fFileRepl(Path, ParentDir)
-			End If
-		End Sub
-
-		Private Function fFileOrNot(ByVal f As String) As String
-			If Trim(UCase(f)) = sKey.NoFile Then
-				Return ""
-			Else
-				Return f
-			End If
-		End Function
-
-
-		Public Sub Clear()
-			bDefined = False
-		End Sub
-
-		Public ReadOnly Property FullPath() As String
-			Get
-				If bDefined Then
-					Return sFullPath
-				Else
-					Return ""
-				End If
-			End Get
-		End Property
-
-		Public ReadOnly Property OriginalPath() As String
-			Get
-				If bDefined Then
-					Return sOglPath
-				Else
-					Return ""
-				End If
-			End Get
-		End Property
-
-		Public ReadOnly Property PathOrDummy() As String
-			Get
-				If bDefined Then
-					Return sOglPath
-				Else
-					Return sKey.NoFile
-				End If
-			End Get
-		End Property
-
-
-
-
-
-	End Class
-End NameSpace
\ No newline at end of file
+' Copyright 2014 European Union.
+' Licensed under the EUPL (the 'Licence');
+'
+' * You may not use this work except in compliance with the Licence.
+' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
+' * Unless required by applicable law or agreed to in writing,
+'   software distributed under the Licence is distributed on an "AS IS" basis,
+'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+'
+' See the LICENSE.txt for the specific language governing permissions and limitations.
+Namespace Input_Files
+	Public Class SubPath
+		Private _fullPath As String
+		Private _originalPath As String
+		Private _valid As Boolean
+
+		Public Sub New()
+			_valid = False
+		End Sub
+
+		Public Sub Init(parentDir As String, path As String)
+			If CheckFilenameGiven(path) = "" Then
+				_valid = False
+			Else
+				_valid = True
+				_originalPath = path
+				_fullPath = fFileRepl(path, parentDir)
+			End If
+		End Sub
+
+		Private Function CheckFilenameGiven(f As String) As String
+			If Trim(UCase(f)) = sKey.NoFile Then
+				Return ""
+			Else
+				Return f
+			End If
+		End Function
+
+
+		Public Sub Clear()
+			_valid = False
+		End Sub
+
+		Public ReadOnly Property FullPath() As String
+			Get
+				If _valid Then
+					Return _fullPath
+				Else
+					Return ""
+				End If
+			End Get
+		End Property
+
+		Public ReadOnly Property OriginalPath() As String
+			Get
+				If _valid Then
+					Return _originalPath
+				Else
+					Return ""
+				End If
+			End Get
+		End Property
+
+		Public ReadOnly Property PathOrDummy() As String
+			Get
+				If _valid Then
+					Return _originalPath
+				Else
+					Return sKey.NoFile
+				End If
+			End Get
+		End Property
+	End Class
+End Namespace
\ No newline at end of file
diff --git a/VECTO/Input Files/cVECTO.vb b/VECTO/Input Files/VectoJob.vb
similarity index 89%
rename from VECTO/Input Files/cVECTO.vb
rename to VECTO/Input Files/VectoJob.vb
index beff758414..bac43a76bb 100644
--- a/VECTO/Input Files/cVECTO.vb	
+++ b/VECTO/Input Files/VectoJob.vb	
@@ -17,7 +17,7 @@ Imports System.Linq
 Imports Newtonsoft.Json.Linq
 Imports TUGraz.VECTO.Input_Files
 
-Public Class cVECTO
+Public Class VectoJob
 	Private Const FormatVersion As Short = 3
 
 	'AA-TB
@@ -30,21 +30,21 @@ Public Class cVECTO
 	Private _myPath As String
 
 	'Input parameters
-	Private ReadOnly _stPathVeh As cSubPath
-	Private ReadOnly _stPathEng As cSubPath
-	Private ReadOnly _stPathGbx As cSubPath
+	Private ReadOnly _stPathVeh As SubPath
+	Private ReadOnly _stPathEng As SubPath
+	Private ReadOnly _stPathGbx As SubPath
 
 	Private _boStartStop As Boolean
 	Private _siStStV As Single
 	Private _siStStT As Single
 	Public StStDelay As Integer
 
-	Private ReadOnly _driverAccelerationFile As cSubPath
+	Private ReadOnly _driverAccelerationFile As SubPath
 
 	Public ReadOnly AuxPaths As Dictionary(Of String, AuxEntry)
 	'Alle Nebenverbraucher die in der Veh-Datei UND im Zyklus definiert sind
 
-	Public ReadOnly CycleFiles As List(Of cSubPath)
+	Public ReadOnly CycleFiles As List(Of SubPath)
 
 	Public EngOnly As Boolean
 
@@ -59,11 +59,11 @@ Public Class cVECTO
 
 	Public Class AuxEntry
 		Public Type As String
-		Public ReadOnly Path As cSubPath
+		Public ReadOnly Path As SubPath
 		Public TechStr As String = ""
 
 		Public Sub New()
-			Path = New cSubPath
+			Path = New SubPath
 		End Sub
 	End Class
 
@@ -72,19 +72,19 @@ Public Class cVECTO
 		_myPath = ""
 		_sFilePath = ""
 
-		_stPathVeh = New cSubPath
-		_stPathEng = New cSubPath
-		_stPathGbx = New cSubPath
+		_stPathVeh = New SubPath
+		_stPathEng = New SubPath
+		_stPathGbx = New SubPath
 
-		_driverAccelerationFile = New cSubPath
+		_driverAccelerationFile = New SubPath
 
 		AuxPaths = New Dictionary(Of String, AuxEntry)
 
-		CycleFiles = New List(Of cSubPath)
+		CycleFiles = New List(Of SubPath)
 	End Sub
 
 	Public Function SaveFile() As Boolean
-		Dim json As New JSON
+		Dim json As New JSONParser
 
 		'Header
 		json.Content.Add("Header", New Dictionary(Of String, Object) From {
@@ -162,7 +162,7 @@ Public Class cVECTO
 
 		SetDefault()
 
-		Dim json As New JSON
+		Dim json As New JSONParser
 		If Not json.ReadFile(_sFilePath) Then Return False
 
 		Try
@@ -186,7 +186,7 @@ Public Class cVECTO
 
 			If Not body("Cycles") Is Nothing Then
 				For Each str As String In body("Cycles")
-					Dim subPath = New cSubPath
+					Dim subPath = New SubPath
 					subPath.Init(_myPath, str)
 					CycleFiles.Add(subPath)
 				Next
@@ -212,7 +212,7 @@ Public Class cVECTO
 					Dim auxId As String = UCase(Trim(dic("ID").ToString))
 
 					If AuxPaths.ContainsKey(auxId) Then
-						WorkerMsg(tMsgID.Err, "Multiple definitions of the same auxiliary type (" & auxId & ")!", msgSrc)
+						WorkerMsg(MessageType.Err, "Multiple definitions of the same auxiliary type (" & auxId & ")!", msgSrc)
 						Return False
 					End If
 
@@ -233,7 +233,7 @@ Public Class cVECTO
 					If (auxId = sKey.AUX.HVAC) Then
 						If Not String.IsNullOrWhiteSpace(auxEntry.TechStr) Then
 							auxEntry.TechStr = ""
-							WorkerMsg(tMsgID.Normal, "Aux: Automatically Upgraded HVAC to new format.", msgSrc)
+							WorkerMsg(MessageType.Normal, "Aux: Automatically Upgraded HVAC to new format.", msgSrc)
 						End If
 					End If
 
@@ -252,7 +252,7 @@ Public Class cVECTO
 							Else
 								auxEntry.TechStr = "Standard technology - LED headlights, all"
 							End If
-							WorkerMsg(tMsgID.Normal, "Aux: Automatically Upgraded Electric System to new format: '" + auxEntry.TechStr + "'",
+							WorkerMsg(MessageType.Normal, "Aux: Automatically Upgraded Electric System to new format: '" + auxEntry.TechStr + "'",
 									msgSrc)
 						End If
 					End If
@@ -260,10 +260,10 @@ Public Class cVECTO
 					If auxId = sKey.AUX.SteerPump Then
 						Select Case auxEntry.TechStr
 							Case "Variable displacement"
-								WorkerMsg(tMsgID.Warn, "Aux: Steering Pump Technology not automatically convertible. Please set new value.",
+								WorkerMsg(MessageType.Warn, "Aux: Steering Pump Technology not automatically convertible. Please set new value.",
 										msgSrc)
 							Case "Hydraulic supported by electric"
-								WorkerMsg(tMsgID.Warn, "Aux: Steering Pump Technology not automatically convertible. Please set new value.",
+								WorkerMsg(MessageType.Warn, "Aux: Steering Pump Technology not automatically convertible. Please set new value.",
 										msgSrc)
 						End Select
 					End If
@@ -281,7 +281,7 @@ Public Class cVECTO
 
 					If fileVersion = 2 AndAlso auxId = sKey.AUX.PneumSys Then
 						auxEntry.TechStr = ""
-						WorkerMsg(tMsgID.Warn, "Aux: Pneumatic System must be updated. Please set new value.",
+						WorkerMsg(MessageType.Warn, "Aux: Pneumatic System must be updated. Please set new value.",
 								msgSrc)
 					End If
 
@@ -335,7 +335,7 @@ Public Class cVECTO
 						EcoRollOn = False
 
 					Case Else
-						WorkerMsg(tMsgID.Err, "Value '" & dic("Mode").ToString() & "' is not valid for OverSpeedEcoRoll/Mode!", msgSrc)
+						WorkerMsg(MessageType.Err, "Value '" & dic("Mode").ToString() & "' is not valid for OverSpeedEcoRoll/Mode!", msgSrc)
 						Return False
 				End Select
 
@@ -350,7 +350,7 @@ Public Class cVECTO
 
 
 		Catch ex As Exception
-			WorkerMsg(tMsgID.Err, "Failed to read VECTO file! " & ex.Message, msgSrc)
+			WorkerMsg(MessageType.Err, "Failed to read VECTO file! " & ex.Message, msgSrc)
 			Return False
 		End Try
 
diff --git a/VECTO/Input Files/cVEH.vb b/VECTO/Input Files/Vehicle.vb
similarity index 89%
rename from VECTO/Input Files/cVEH.vb
rename to VECTO/Input Files/Vehicle.vb
index f406bd478e..236bf0dd6b 100644
--- a/VECTO/Input Files/cVEH.vb	
+++ b/VECTO/Input Files/Vehicle.vb	
@@ -1,286 +1,286 @@
-' Copyright 2014 European Union.
-' Licensed under the EUPL (the 'Licence');
-'
-' * You may not use this work except in compliance with the Licence.
-' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
-' * Unless required by applicable law or agreed to in writing,
-'   software distributed under the Licence is distributed on an "AS IS" basis,
-'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-'
-' See the LICENSE.txt for the specific language governing permissions and limitations.
-Option Infer On
-
-Imports System.Collections.Generic
-Imports System.IO
-Imports System.Linq
-Imports TUGraz.VECTO.Input_Files
-Imports TUGraz.VectoCommon.Models
-Imports TUGraz.VectoCommon.Utils
-
-
-Public Class cVEH
-	'V2 MassMax is now saved in [t] instead of [kg]
-	Private Const FormatVersion As Short = 7
-	Private FileVersion As Short
-
-	Private sFilePath As String
-	Private MyPath As String
-
-	Public Mass As Single
-	Public Loading As Single
-
-	Public CdA0 As Single
-
-	Public CdMode As CrossWindCorrectionMode
-	Public CdFile As cSubPath
-	Private CdX As List(Of Single)
-	Private CdY As List(Of Single)
-
-
-	Public RtType As RetarderType 'tRtType '0=None, 1=Primary, 2=Secondary
-	Public RtRatio As Single = 0
-	Public RtFile As cSubPath
-	Private RtnU As List(Of Single)
-	Private RtM As List(Of Single)
-
-	Public rdyn As Single
-	Public Axles As List(Of cAxle)
-
-
-	Public VehCat As VehicleCategory
-	Public MassExtra As Single
-	Public MassMax As Single
-	Public AxleConf As AxleConfiguration
-
-	Public SavedInDeclMode As Boolean
-	Public AngularGearType As AngularGearType '0=None, 1=Separate, 2=Included
-	Public AngularGearRatio As Single
-	Public AngularGearLossMapFile As cSubPath
-
-
-	Public Class cAxle
-		Public RRC As Single
-		Public Share As Single
-		Public TwinTire As Boolean
-		Public FzISO As Single
-		Public Wheels As String
-		Public Inertia As Single
-	End Class
-
-
-	Public Sub New()
-		MyPath = ""
-		sFilePath = ""
-		CdFile = New cSubPath
-		CdX = New List(Of Single)
-		CdY = New List(Of Single)
-		RtFile = New cSubPath
-		AngularGearLossMapFile = New cSubPath()
-		RtnU = New List(Of Single)
-		RtM = New List(Of Single)
-		Axles = New List(Of cAxle)
-		SetDefault()
-	End Sub
-
-	Private Sub SetDefault()
-		Mass = 0
-		MassExtra = 0
-		Loading = 0
-		CdA0 = 0
-		'		CdA0Act = CdA0
-		'		CdA02 = 0
-		CdFile.Clear()
-		CdMode = CrossWindCorrectionMode.NoCorrection
-		CdX.Clear()
-		CdY.Clear()
-
-		rdyn = 0
-
-		RtType = RetarderType.None
-		RtRatio = 1
-		RtnU.Clear()
-		RtM.Clear()
-		RtFile.Clear()
-		AngularGearLossMapFile.Clear()
-
-		AngularGearType = AngularGearType.None
-		AngularGearLossMapFile.Clear()
-		AngularGearRatio = 1
-
-		Axles.Clear()
-		VehCat = VehicleCategory.RigidTruck	'tVehCat.Undef
-		MassMax = 0
-		AxleConf = AxleConfiguration.AxleConfig_4x2	 'tAxleConf.Undef
-
-		SavedInDeclMode = False
-	End Sub
-
-	Public Function ReadFile(Optional showMsg As Boolean = True) As Boolean
-		Const msgSrc = "VEH/ReadFile"
-		SetDefault()
-
-		Dim json As New JSON
-		If Not json.ReadFile(sFilePath) Then Return False
-
-		Try
-			Dim header = json.Content("Header")
-			Dim body = json.Content("Body")
-
-			FileVersion = header("FileVersion")
-			If FileVersion > 4 Then
-				SavedInDeclMode = body("SavedInDeclMode")
-			Else
-				SavedInDeclMode = Cfg.DeclMode
-			End If
-
-			Mass = body("CurbWeight")
-			MassExtra = body("CurbWeightExtra")
-			Loading = body("Loading")
-			VehCat = body("VehCat").ToString.ParseEnum(Of VehicleCategory)() 'ConvVehCat(body("VehCat").ToString)
-			AxleConf = AxleConfigurationHelper.Parse(body("AxleConfig")("Type").ToString)
-			If FileVersion < 2 Then
-				'convert kg to ton
-				MassMax /= 1000
-			Else
-				MassMax = body("MassMax")
-			End If
-
-			If FileVersion < 7 Then
-				'calc CdA from Cd and area value
-				CdA0 = CSng(body("Cd")) * CSng(body("CrossSecArea"))
-			Else
-				CdA0 = body("CdA")
-			End If
-
-			'CdA02 = CdA0
-
-			CdMode = CrossWindCorrectionModeHelper.Parse(body("CdCorrMode").ToString)
-			If Not body("CdCorrFile") Is Nothing Then
-				CdFile.Init(MyPath, body("CdCorrFile"))
-			End If
-
-			If body("Retarder") Is Nothing Then
-				RtType = RetarderType.None
-			Else
-				RtType = RetarderTypeHelper.Parse(body("Retarder")("Type").ToString)
-				If Not body("Retarder")("Ratio") Is Nothing Then
-					RtRatio = body("Retarder")("Ratio")
-				End If
-				If Not body("Retarder")("File") Is Nothing Then
-					RtFile.Init(MyPath, body("Retarder")("File"))
-				End If
-			End If
-
-			If body("AngularGear") Is Nothing Then
-				AngularGearType = AngularGearType.None
-			Else
-				AngularGearType = body("AngularGear")("Type").ToString.ParseEnum(Of AngularGearType)()
-				If Not body("AngularGear")("Ratio") Is Nothing Then
-					AngularGearRatio = body("AngularGear")("Ratio")
-				End If
-				If Not body("AngularGear")("LossMap") Is Nothing Then
-					AngularGearLossMapFile.Init(MyPath, body("AngularGear")("LossMap"))
-				End If
-			End If
-
-			Dim inertiaTemp As Single
-			If FileVersion < 3 Then
-				inertiaTemp = body("WheelsInertia")
-				rdyn = 1000 * body("WheelsDiaEff") / 2
-			Else
-				rdyn = body("rdyn")
-			End If
-
-			Dim axleCount = body("AxleConfig")("Axles").Count()
-			For Each axleEntry In body("AxleConfig")("Axles")
-				Dim axle = New cAxle With {
-						.Share = CSng(axleEntry("AxleWeightShare")),
-						.TwinTire = CBool(axleEntry("TwinTyres")),
-						.RRC = CSng(axleEntry("RRCISO")),
-						.FzISO = CSng(axleEntry("FzISO"))}
-
-				If FileVersion < 3 Then
-					axle.Wheels = "-"
-					axle.Inertia = inertiaTemp / (IIf(axle.TwinTire, 4, 2) * axleCount)
-				Else
-					axle.Wheels = CStr(axleEntry("Wheels")).Replace("R ", "R")
-					axle.Inertia = CSng(axleEntry("Inertia"))
-				End If
-				Axles.Add(axle)
-			Next
-
-		Catch ex As Exception
-			If showMsg Then WorkerMsg(tMsgID.Err, "Failed to read Vehicle file! " & ex.Message, msgSrc)
-			Return False
-		End Try
-
-		Return True
-	End Function
-
-	Public Function SaveFile() As Boolean
-		SavedInDeclMode = Cfg.DeclMode
-
-		Dim json As New JSON
-		'Header
-		json.Content.Add("Header", New Dictionary(Of String, Object) From {
-							{"CreatedBy", Lic.LicString & " (" & Lic.GUID & ")"},
-							{"Date", Now.ToUniversalTime().ToString("o")},
-							{"AppVersion", VECTOvers},
-							{"FileVersion", FormatVersion}})
-
-		'Body
-		Dim dic As Dictionary(Of String, Object)
-		dic = New Dictionary(Of String, Object) From {
-			{"SavedInDeclMode", Cfg.DeclMode},
-			{"VehCat", VehCat.ToString()},
-			{"CurbWeight", Mass},
-			{"CurbWeightExtra", MassExtra},
-			{"Loading", Loading},
-			{"MassMax", MassMax},
-			{"CdA", CdA0},
-			{"rdyn", rdyn},
-			{"CdCorrMode", CdMode.GetName()},
-			{"CdCorrFile", CdFile.PathOrDummy},
-			{"Retarder", New Dictionary(Of String, Object) From {
-				{"Type", RtType.GetName()},
-				{"Ratio", RtRatio},
-				{"File", RtFile.PathOrDummy}}},
-			{"AngularGear", New Dictionary(Of String, Object) From {
-				{"Type", AngularGearType.ToString()},
-				{"Ratio", AngularGearRatio},
-				{"LossMap", AngularGearLossMapFile.PathOrDummy}}},
-			{"AxleConfig", New Dictionary(Of String, Object) From {
-				{"Type", AxleConf.GetName()},
-				{"Axles", (From axle In Axles Select New Dictionary(Of String, Object) From {
-					{"Inertia", axle.Inertia},
-					{"Wheels", axle.Wheels},
-					{"AxleWeightShare", axle.Share},
-					{"TwinTyres", axle.TwinTire},
-					{"RRCISO", axle.RRC},
-					{"FzISO", axle.FzISO}})}}}
-			}
-
-		json.Content.Add("Body", dic)
-		Return json.WriteFile(sFilePath)
-	End Function
-
-
-#Region "Properties"
-
-
-	Public Property FilePath() As String
-		Get
-			Return sFilePath
-		End Get
-		Set(value As String)
-			sFilePath = value
-			If sFilePath = "" Then
-				MyPath = ""
-			Else
-				MyPath = Path.GetDirectoryName(sFilePath) & "\"
-			End If
-		End Set
-	End Property
-
-#End Region
+' Copyright 2014 European Union.
+' Licensed under the EUPL (the 'Licence');
+'
+' * You may not use this work except in compliance with the Licence.
+' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
+' * Unless required by applicable law or agreed to in writing,
+'   software distributed under the Licence is distributed on an "AS IS" basis,
+'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+'
+' See the LICENSE.txt for the specific language governing permissions and limitations.
+Option Infer On
+
+Imports System.Collections.Generic
+Imports System.IO
+Imports System.Linq
+Imports TUGraz.VECTO.Input_Files
+Imports TUGraz.VectoCommon.Models
+Imports TUGraz.VectoCommon.Utils
+
+
+Public Class Vehicle
+	'V2 MassMax is now saved in [t] instead of [kg]
+	Private Const FormatVersion As Short = 7
+	Private FileVersion As Short
+
+	Private sFilePath As String
+	Private MyPath As String
+
+	Public Mass As Single
+	Public Loading As Single
+
+	Public CdA0 As Single
+
+	Public CdMode As CrossWindCorrectionMode
+	Public ReadOnly CdFile As SubPath
+	Private ReadOnly CdX As List(Of Single)
+	Private ReadOnly CdY As List(Of Single)
+
+
+	Public RtType As RetarderType 'tRtType '0=None, 1=Primary, 2=Secondary
+	Public RtRatio As Single = 0
+	Public ReadOnly RtFile As SubPath
+	Private ReadOnly RtnU As List(Of Single)
+	Private ReadOnly RtM As List(Of Single)
+
+	Public rdyn As Single
+	Public ReadOnly Axles As List(Of Axle)
+
+
+	Public VehCat As VehicleCategory
+	Public MassExtra As Single
+	Public MassMax As Single
+	Public AxleConf As AxleConfiguration
+
+	Public SavedInDeclMode As Boolean
+	Public AngularGearType As AngularGearType '0=None, 1=Separate, 2=Included
+	Public AngularGearRatio As Single
+	Public ReadOnly AngularGearLossMapFile As SubPath
+
+
+	Public Class Axle
+		Public RRC As Single
+		Public Share As Single
+		Public TwinTire As Boolean
+		Public FzISO As Single
+		Public Wheels As String
+		Public Inertia As Single
+	End Class
+
+
+	Public Sub New()
+		MyPath = ""
+		sFilePath = ""
+		CdFile = New SubPath
+		CdX = New List(Of Single)
+		CdY = New List(Of Single)
+		RtFile = New SubPath
+		AngularGearLossMapFile = New SubPath()
+		RtnU = New List(Of Single)
+		RtM = New List(Of Single)
+		Axles = New List(Of Axle)
+		SetDefault()
+	End Sub
+
+	Private Sub SetDefault()
+		Mass = 0
+		MassExtra = 0
+		Loading = 0
+		CdA0 = 0
+		'		CdA0Act = CdA0
+		'		CdA02 = 0
+		CdFile.Clear()
+		CdMode = CrossWindCorrectionMode.NoCorrection
+		CdX.Clear()
+		CdY.Clear()
+
+		rdyn = 0
+
+		RtType = RetarderType.None
+		RtRatio = 1
+		RtnU.Clear()
+		RtM.Clear()
+		RtFile.Clear()
+		AngularGearLossMapFile.Clear()
+
+		AngularGearType = AngularGearType.None
+		AngularGearLossMapFile.Clear()
+		AngularGearRatio = 1
+
+		Axles.Clear()
+		VehCat = VehicleCategory.RigidTruck	'tVehCat.Undef
+		MassMax = 0
+		AxleConf = AxleConfiguration.AxleConfig_4x2	 'tAxleConf.Undef
+
+		SavedInDeclMode = False
+	End Sub
+
+	Public Function ReadFile(Optional showMsg As Boolean = True) As Boolean
+		Const msgSrc = "VEH/ReadFile"
+		SetDefault()
+
+		Dim json As New JSONParser
+		If Not json.ReadFile(sFilePath) Then Return False
+
+		Try
+			Dim header = json.Content("Header")
+			Dim body = json.Content("Body")
+
+			FileVersion = header("FileVersion")
+			If FileVersion > 4 Then
+				SavedInDeclMode = body("SavedInDeclMode")
+			Else
+				SavedInDeclMode = Cfg.DeclMode
+			End If
+
+			Mass = body("CurbWeight")
+			MassExtra = body("CurbWeightExtra")
+			Loading = body("Loading")
+			VehCat = body("VehCat").ToString.ParseEnum(Of VehicleCategory)() 'ConvVehCat(body("VehCat").ToString)
+			AxleConf = AxleConfigurationHelper.Parse(body("AxleConfig")("Type").ToString)
+			If FileVersion < 2 Then
+				'convert kg to ton
+				MassMax /= 1000
+			Else
+				MassMax = body("MassMax")
+			End If
+
+			If FileVersion < 7 Then
+				'calc CdA from Cd and area value
+				CdA0 = CSng(body("Cd")) * CSng(body("CrossSecArea"))
+			Else
+				CdA0 = body("CdA")
+			End If
+
+			'CdA02 = CdA0
+
+			CdMode = CrossWindCorrectionModeHelper.Parse(body("CdCorrMode").ToString)
+			If Not body("CdCorrFile") Is Nothing Then
+				CdFile.Init(MyPath, body("CdCorrFile"))
+			End If
+
+			If body("Retarder") Is Nothing Then
+				RtType = RetarderType.None
+			Else
+				RtType = RetarderTypeHelper.Parse(body("Retarder")("Type").ToString)
+				If Not body("Retarder")("Ratio") Is Nothing Then
+					RtRatio = body("Retarder")("Ratio")
+				End If
+				If Not body("Retarder")("File") Is Nothing Then
+					RtFile.Init(MyPath, body("Retarder")("File"))
+				End If
+			End If
+
+			If body("AngularGear") Is Nothing Then
+				AngularGearType = AngularGearType.None
+			Else
+				AngularGearType = body("AngularGear")("Type").ToString.ParseEnum(Of AngularGearType)()
+				If Not body("AngularGear")("Ratio") Is Nothing Then
+					AngularGearRatio = body("AngularGear")("Ratio")
+				End If
+				If Not body("AngularGear")("LossMap") Is Nothing Then
+					AngularGearLossMapFile.Init(MyPath, body("AngularGear")("LossMap"))
+				End If
+			End If
+
+			Dim inertiaTemp As Single
+			If FileVersion < 3 Then
+				inertiaTemp = body("WheelsInertia")
+				rdyn = 1000 * body("WheelsDiaEff") / 2
+			Else
+				rdyn = body("rdyn")
+			End If
+
+			Dim axleCount = body("AxleConfig")("Axles").Count()
+			For Each axleEntry In body("AxleConfig")("Axles")
+				Dim axle = New Axle With {
+						.Share = CSng(axleEntry("AxleWeightShare")),
+						.TwinTire = CBool(axleEntry("TwinTyres")),
+						.RRC = CSng(axleEntry("RRCISO")),
+						.FzISO = CSng(axleEntry("FzISO"))}
+
+				If FileVersion < 3 Then
+					axle.Wheels = "-"
+					axle.Inertia = inertiaTemp / (IIf(axle.TwinTire, 4, 2) * axleCount)
+				Else
+					axle.Wheels = CStr(axleEntry("Wheels")).Replace("R ", "R")
+					axle.Inertia = CSng(axleEntry("Inertia"))
+				End If
+				Axles.Add(axle)
+			Next
+
+		Catch ex As Exception
+			If showMsg Then WorkerMsg(MessageType.Err, "Failed to read Vehicle file! " & ex.Message, msgSrc)
+			Return False
+		End Try
+
+		Return True
+	End Function
+
+	Public Function SaveFile() As Boolean
+		SavedInDeclMode = Cfg.DeclMode
+
+		Dim json As New JSONParser
+		'Header
+		json.Content.Add("Header", New Dictionary(Of String, Object) From {
+							{"CreatedBy", Lic.LicString & " (" & Lic.GUID & ")"},
+							{"Date", Now.ToUniversalTime().ToString("o")},
+							{"AppVersion", VECTOvers},
+							{"FileVersion", FormatVersion}})
+
+		'Body
+		Dim dic As Dictionary(Of String, Object)
+		dic = New Dictionary(Of String, Object) From {
+			{"SavedInDeclMode", Cfg.DeclMode},
+			{"VehCat", VehCat.ToString()},
+			{"CurbWeight", Mass},
+			{"CurbWeightExtra", MassExtra},
+			{"Loading", Loading},
+			{"MassMax", MassMax},
+			{"CdA", CdA0},
+			{"rdyn", rdyn},
+			{"CdCorrMode", CdMode.GetName()},
+			{"CdCorrFile", CdFile.PathOrDummy},
+			{"Retarder", New Dictionary(Of String, Object) From {
+				{"Type", RtType.GetName()},
+				{"Ratio", RtRatio},
+				{"File", RtFile.PathOrDummy}}},
+			{"AngularGear", New Dictionary(Of String, Object) From {
+				{"Type", AngularGearType.ToString()},
+				{"Ratio", AngularGearRatio},
+				{"LossMap", AngularGearLossMapFile.PathOrDummy}}},
+			{"AxleConfig", New Dictionary(Of String, Object) From {
+				{"Type", AxleConf.GetName()},
+				{"Axles", (From axle In Axles Select New Dictionary(Of String, Object) From {
+					{"Inertia", axle.Inertia},
+					{"Wheels", axle.Wheels},
+					{"AxleWeightShare", axle.Share},
+					{"TwinTyres", axle.TwinTire},
+					{"RRCISO", axle.RRC},
+					{"FzISO", axle.FzISO}})}}}
+			}
+
+		json.Content.Add("Body", dic)
+		Return json.WriteFile(sFilePath)
+	End Function
+
+
+#Region "Properties"
+
+
+	Public Property FilePath() As String
+		Get
+			Return sFilePath
+		End Get
+		Set(value As String)
+			sFilePath = value
+			If sFilePath = "" Then
+				MyPath = ""
+			Else
+				MyPath = Path.GetDirectoryName(sFilePath) & "\"
+			End If
+		End Set
+	End Property
+
+#End Region
 End Class
\ No newline at end of file
diff --git a/VECTO/cJSONparser.vb b/VECTO/JSONparser.vb
similarity index 98%
rename from VECTO/cJSONparser.vb
rename to VECTO/JSONparser.vb
index fd1e8a46ee..8a4cbcf797 100644
--- a/VECTO/cJSONparser.vb
+++ b/VECTO/JSONparser.vb
@@ -17,7 +17,7 @@ Imports Newtonsoft.Json
 ''' uses JSON.NET http://json.codeplex.com/
 ''' </summary>
 ''' <remarks></remarks>
-Public Class JSON
+Public Class JSONParser
 	Public Content As Dictionary(Of String, Object)
 
 	Public Sub New()
diff --git a/VECTO/M_MAIN.vb b/VECTO/MainModule.vb
similarity index 90%
rename from VECTO/M_MAIN.vb
rename to VECTO/MainModule.vb
index 853a8c4dec..7ffac9567e 100644
--- a/VECTO/M_MAIN.vb
+++ b/VECTO/MainModule.vb
@@ -1,65 +1,65 @@
-' Copyright 2014 European Union.
-' Licensed under the EUPL (the 'Licence');
-'
-' * You may not use this work except in compliance with the Licence.
-' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
-' * Unless required by applicable law or agreed to in writing,
-'   software distributed under the Licence is distributed on an "AS IS" basis,
-'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-'
-' See the LICENSE.txt for the specific language governing permissions and limitations.
-Imports System.Collections.Generic
-Imports TUGraz.VectoCommon.Utils
-Imports TUGraz.VectoCore.Models.SimulationComponent.Data
-Imports TUGraz.VectoCore.Models.SimulationComponent.Data.Engine
-
-''' <summary>
-''' Main calculation routines.
-''' </summary>
-''' <remarks></remarks>
-Module M_MAIN
-	Public JobFileList As List(Of String)
-
-	Public Function ConvertToEngineData(fld As cFLD, nIdle As Single) As CombustionEngineData
-
-		Dim retVal As CombustionEngineData = New CombustionEngineData()
-		retVal.FullLoadCurve = New EngineFullLoadCurve()
-		retVal.FullLoadCurve.FullLoadEntries = New List(Of FullLoadCurve.FullLoadCurveEntry)
-		For i As Integer = 0 To fld.LnU.Count - 1
-			retVal.FullLoadCurve.FullLoadEntries.Add(
-				New FullLoadCurve.FullLoadCurveEntry() _
-														With {.EngineSpeed = CType(fld.LnU(i), Double).RPMtoRad(),
-														.TorqueFullLoad = CType(fld.LTq(i), Double).SI(Of NewtonMeter)(),
-														.TorqueDrag = CType(fld.LTqDrag(i), Double).SI(Of NewtonMeter)()})
-		Next
-
-		retVal.IdleSpeed = CType(nIdle, Double).RPMtoRad()
-		Return retVal
-	End Function
-
-	Public Function ConvPicPath(hdVclass As String, isLongHaul As Boolean) As Bitmap
-		Dim longHaulFlag As String = ""
-		If isLongHaul Then
-			longHaulFlag = "t"
-		End If
-
-		Select Case hdVclass
-			Case 1, 2, 3
-				Return My.Resources._4x2r ' resourcePath & "4x2r.png"
-			Case 4
-				If isLongHaul Then Return My.Resources._4x2rt
-
-				Return My.Resources._4x2r 'resourcePath & "4x2r" & longHaulFlag & ".png"
-			Case 5
-				Return My.Resources._4x2tt ' resourcePath & "4x2tt.png"
-			Case 9
-				If isLongHaul Then Return My.Resources._6x2rt
-				Return My.Resources._6x2r ' resourcePath & "6x2r" & longHaulFlag & ".png"
-			Case 10
-				Return My.Resources._6x2tt ' resourcePath & "6x2tt.png"
-			Case Else
-				Return My.Resources.Undef  ' resourcePath & "Undef.png"
-		End Select
-	End Function
-
-End Module
+' Copyright 2014 European Union.
+' Licensed under the EUPL (the 'Licence');
+'
+' * You may not use this work except in compliance with the Licence.
+' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
+' * Unless required by applicable law or agreed to in writing,
+'   software distributed under the Licence is distributed on an "AS IS" basis,
+'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+'
+' See the LICENSE.txt for the specific language governing permissions and limitations.
+Imports System.Collections.Generic
+Imports TUGraz.VectoCommon.Utils
+Imports TUGraz.VectoCore.Models.SimulationComponent.Data
+Imports TUGraz.VectoCore.Models.SimulationComponent.Data.Engine
+
+''' <summary>
+''' Main calculation routines.
+''' </summary>
+''' <remarks></remarks>
+Module MainModule
+	Public JobFileList As List(Of String)
+
+	Public Function ConvertToEngineData(fld As EngineFullLoadCurve, nIdle As Single) As CombustionEngineData
+
+		Dim retVal As CombustionEngineData = New CombustionEngineData()
+		retVal.FullLoadCurve = New TUGraz.VectoCore.Models.SimulationComponent.Data.Engine.EngineFullLoadCurve()
+		retVal.FullLoadCurve.FullLoadEntries = New List(Of FullLoadCurve.FullLoadCurveEntry)
+		For i As Integer = 0 To fld.LnU.Count - 1
+			retVal.FullLoadCurve.FullLoadEntries.Add(
+				New FullLoadCurve.FullLoadCurveEntry() _
+														With {.EngineSpeed = CType(fld.LnU(i), Double).RPMtoRad(),
+														.TorqueFullLoad = CType(fld.LTq(i), Double).SI(Of NewtonMeter)(),
+														.TorqueDrag = CType(fld.LTqDrag(i), Double).SI(Of NewtonMeter)()})
+		Next
+
+		retVal.IdleSpeed = CType(nIdle, Double).RPMtoRad()
+		Return retVal
+	End Function
+
+	Public Function ConvPicPath(hdVclass As String, isLongHaul As Boolean) As Bitmap
+		Dim longHaulFlag As String = ""
+		If isLongHaul Then
+			longHaulFlag = "t"
+		End If
+
+		Select Case hdVclass
+			Case 1, 2, 3
+				Return My.Resources._4x2r ' resourcePath & "4x2r.png"
+			Case 4
+				If isLongHaul Then Return My.Resources._4x2rt
+
+				Return My.Resources._4x2r 'resourcePath & "4x2r" & longHaulFlag & ".png"
+			Case 5
+				Return My.Resources._4x2tt ' resourcePath & "4x2tt.png"
+			Case 9
+				If isLongHaul Then Return My.Resources._6x2rt
+				Return My.Resources._6x2r ' resourcePath & "6x2r" & longHaulFlag & ".png"
+			Case 10
+				Return My.Resources._6x2tt ' resourcePath & "6x2tt.png"
+			Case Else
+				Return My.Resources.Undef  ' resourcePath & "Undef.png"
+		End Select
+	End Function
+
+End Module
diff --git a/VECTO/My Project/Application.Designer.vb b/VECTO/My Project/Application.Designer.vb
index c29e79c746..3c1840c9e0 100644
--- a/VECTO/My Project/Application.Designer.vb	
+++ b/VECTO/My Project/Application.Designer.vb	
@@ -33,7 +33,7 @@ Namespace My
         
         <DebuggerStepThrough()>  _
         Protected Overrides Sub OnCreateMainForm()
-            Me.MainForm = VECTO.F_MAINForm
+			Me.MainForm = VECTO.MainForm
         End Sub
     End Class
 End Namespace
diff --git a/VECTO/Resources/4x2r.png b/VECTO/Resources/4x2r.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e9743755e507850624ac7d2868b96bfc2d1a412
GIT binary patch
literal 2565
zcmZ8j2UJtp7LAx_02%tnN{KWL1NKHUm<%8a8F~>AkTQUR5kiz9j874W(!_{>kf@9l
z2{HtvXatd7BcSw90-=L6>EyqJFXMOJm0Ql)d!K#JdvC3TV~zDigmw!-AP^Bl1GFgw
zvK0mHr{P<{`OKCJyk*M`Q++*wvn4_0;DLp`V2&}l&9De5whjN_8()J@s=FNV(KV(V
zpH%BbuJnzs4t&-?rnkoBwcSf^dRo|V`)_8<KVK+Colgro9%Qz}<+jCSe<A05A?LP{
z>0ik7HgZlYIk)vmUfXj<*URGW=kL1GKlG%Quoz5EQT^bX+JT(P{>+cPj7CmoS#M5N
ze}3ISc10h(nqA*HUe!9<+%s9)GF;O>#_XP`Y#l9W8ZP@h!Wx=s>78t2PqT(*I|ip)
z`@haFu8d7DEUm0f&MwU@tgy%C2gc_|rWX1}W@qM?SJ&1Tmsf`;zj3)-?{DZv@TP*k
z1~xY!5E%*HZ;Lyn32Y8zmmkL3&&<coFTe@s3c2`)3(n^Tc#=19bNj=^HF)CqbqEBW
zXoyCc6FMfk1I;9@c9u998cCUYMzk2gYH7b78ytnD8z2Nu^l*jqNJ@!fCju2-1vbnk
zj?Br`?U;IJqMj&;OVvmx1Uxv4FxVIpsEu)agh2b-n^sI;hT41Gc~D2Q4g#{uF_D=%
zD5yAEY;%f+OKk4JXt+Et*(~ihgzr=ilLyYvbqj)d^XENqL>N`#co9g(h7;w%RLxw1
zJODrVX@M7t$Mf^`zxiPj<$;&XgM3mvA<IJ&%{*qy$LAV>1<0pm^}z+4qu)QKw#)Ky
za)O}v5vyGGDPFR9l;?4Puoty#3nU!g8?`@-Ix?@xLvoz;pp|Sm!h^KNy94>aDzXDA
zeyqM!mq#?45C!0fH1vnyUY-fNVLr5|{+$Z%CQ^&r-wPr<IzrZhR6))}>AH>-08hAu
z+CV!ndqVZV;u-@}=M=)ILPCq60jLGGgdet$n&h$5NTu4mN@S_=g=b=DtP*VHwhsW$
zc!`aw1iOHNE%UU^f4@!SImkFz$G#38Eu4sQLZFsqwA`X{7_~-dW(5oSEYe%$ImpO{
z@W~;tMLyZJFNlw}A@J;{H32Jp)Eg$Rm)N`zyjG+<a8Ny)Z<8cEzO@G|;qSDM*QN~N
zF~0N+uv~HytSARI?T3dAwrul=0DA&Hv+vXYy#?av=pRzwL25t6eiByvQSLkEr`Tro
z4Ikm(tN#l>|E3hfkrhKT^Ni!FtE^X|<pDn<<XJHk2;ti@0I8rmZ~+VQT!YK<wz!SW
zrVi+hPvGBp6aG{BySab0K-#<*_`Ul3EaW784h@)C@Qqk1|E$4o@Ahsy2}h`Ysw=e(
z7&vh&P;^gE*Y03i!u`${M~Thv!FPg^Xx~-XhsXOk8IAUIjec63{<AGXC5+mxYv$wW
zu8z|U2xzXDCElhMz>Zs*D0jDYc$X0qG-E61cKy=(QT{T=nkQWg@?vS$j$#)Hf39<#
ziVU$Sz$E@C%VEmt(O*QJ>QfX8;JMVJo2c{S21%VYI?0S(K)+-zc}zLLZ8Uc^AM2vh
zNQe~Dj@_SD0qlNz+GjS+=BU7+r|jS!ll&?e3>ZbGE$J*od~+_!(r&HQOpX<JEiITq
zqgI3p<agX3`aSLRHs<um`nqjuvrSKruBM#6D!20$^s@!Ct}WF!)-r{w^Y~RqgjW=E
zXnT@n&X5MHyHtAz%3t~z=W3)HvZ*H$%^X%JD7La~wPO|UWQ0}+=7mrbgghNrw(qh^
zDVBy&X?>2%-d(;r^S!=Tv^1d@h2iz#D0j!0b!X^b{|P0sueo1Qjk2XxT1B;_eq^^R
zstTZv?pG1V(W(p=LkHYKSspr9gX7C$rvr}cUpTy!WhG&5gi8FVn|K5B4Uoxwyy`Ei
z9{QC~cRAT%eQJ<NzzYgFFu&S+PfCx3u4geX^#?Er?FpBLTyR>2IumEH`(PsWp~!5+
zGsh?+Sx({81`SCLJ^o!U4vp;vIQNLzC8RkSPh&;Kl2=q?lrpP)hxXJ;JT)68k`$+w
zi_rJif7tP<S4P{*bwd7d^0mm5A@B?e^;sy@8QD}US9uPbpLA1;Mt2s~gMKz)dKRye
zGGS_}*Pr2(I@z;>d)&i^3Im}bYQt%cM9i%%!n>aq1SJhh_gjSDILjC}VZ$?$sBZnC
zLaz;ib)ZO>w<mGjhw1LzwR}IV#kh9LpoF<5YGVCrra?g}o5)z+Cu+BJ>-f$_3N!?%
zI-Pz`0y(2#jk>d>Hng{~sZxNgkai7llhieH#sJ!Jhn|?^lk@Xo73Z+sP$gs6INKPk
ziH9hM9{kZTHPKGvkSs8&tU7%pt%Y=VS<mATrM@fRkde$1cqtIyP(}vvjTQFwL+{AN
z^i{t0HjPKMG=sD_i7d|Si6M_<5qr;SEuPHqMK0blWltLQ)zY|3!5y1MT`+1_C@uKj
z#Qh6pV6TZvjx^~~w6x*X7bW}Zj-U>^VoW>L4karA&NZZzH<vDJ{kpMp)`Hr^NURMS
zs-rAZ&|a_#x*_(0O-##-!#H>Dbh!v0g}3hgg`>n5SxGG+{31v?fPBchW69A~m=3Ol
zV#v~l6V34vsqreaWg&MLLB*B^oUWdaq?DDVV%~i`YuZncgaj$bxMjf{gwh!YPkZ7)
zPaK8IVQB)+wWO5%q_K6SnS8SsQdcldZwb*ZXN>+S79yE~H<+5*%WjX7#XbNstL{2n
zNp5h2U=CD~E~t)ezex#(sv4s#6&d%vDbGDAvy!jm!759$YR%#6diXLPLkGVtHQ~1v
zT*lWzed-gKO^hMKvs;VW_*#syjbs-s9pBQ|^yJPPt6(}8cIK0C4np$G`=!<9dnZjn
zr?HxH!S%S=77ut1qJ5hma~Gq8TdH&l$TWzI?8ypH=QfR<cW0Ntz(^SU;l@BmZwy7?
he?weRTrtRQP1xR#y(4Dq0`E^A#1LbQ&eFRK{1<XMmiGVv

literal 0
HcmV?d00001

diff --git a/VECTO/Resources/4x2rt.png b/VECTO/Resources/4x2rt.png
new file mode 100644
index 0000000000000000000000000000000000000000..6aeb34d129142c4a2b55f7250e34a521b96d873d
GIT binary patch
literal 2929
zcmbVOc~sJA7q%IisA-WYE6Xt?Qwt{xHK{bikugodn3A%voJP(1O2vfAg(538&D5|=
zT=J-u8Y;L<npvs2FS#P-3hn|fB_;~r?*}yV&7Aq`I~<nxzR&aA``q_(es8EF&Suq$
zO)J#Y)K=LZvL>jheTxBpPeH#0KKCuL2fvp15^Su#Irt{90$7YW+8@Q@Z<HLnRq7o2
z_5!2QJFezTL>VQa&Mm5fl2Gd%SMC3#fx+px{k%E+MQc=U`@?)L^Cj;_T2oR{7xNF^
z!#r+yRx5+u&dB33IPDA$H!7!{!R}z>bv(-Frj&e4FYQiw_3`=J-luPRN}7g>>IVyI
z1zBZ%?8<?{T0u$UP*!<gVV!_oHIVbZpHt1R@0w`o6}@X2sp=Se*E&+uIo{MQtn3(j
z(>zk%Hp=Bs_6$$A_KCRssh;5(-r!Wnz~tvS>G+i7i*!*m^W~F7${+tcDwYT)KKGB#
zOn;tVSd`7pFN}z0<#M_A&~Po_db#(Z6TWI{8-4)aOFWXAfkvrmUdA53{HvGyWvVOL
zP0hjcEZNH!Si$k`?w)7eXhKsTfGD-K#vHxE6MhUNZn9ZdId$Vf3M(+=+}X#^mgKFm
zMpWEM{h<5Z<nsMuxzI%0fxcp*uAxp;HzA?ox=OD#T2RFv*D)H=>d_W-m^vM9rEU$S
zLow<)5KJ&UL>&SnXk(rVg9Wj|#_0a8M@$<!<qG<0`gYCN5!F|9Lu_Kabju2N?}g+p
zTe$@T!9WLe5Ks)%N}aAA45tGx2n?d53RtJ(amVYm!JV7tns6YBs@eiVR}wTq5~>OX
z>?La%tpyN}xKnx{q$tS}2CN1tao6Dxoe@kBDE)i1Qe|P+L16Wu(d`>hG^Q2;=F)q(
z9289#oc^EH^dI&h)a0i&9Yy|ya6qkU@!yE<se7!!9QRKv$`Dw9ghHjL`>+uxiu+rM
zsFzA@BTI#g>RvFt{m!+&D7;N0LB5BQ4@4EBN^f>0_8UQuWM73j15<`XL16=ib*gmb
ziaj62UX=i~1ZeC1YGuV~=2%4=4uIO@O6_%=P>?1-^{)hxgMaIWD)IBDw^SG{5QB*Y
zd)xU+QGaU8yc!rR`8T5Hcfb~qvRt5EuDvS&Jk^jpA%GT8J`e{+hOTZ6T2lrv>KHKi
zHGqI302C1V8u-5`{%<B>U=D4>pE~~(hJYgo=29X;s&zsv&dm8NKR<nLx-RVZxuKXD
zyQT`gHTtC{_qLUpB{7L~=<=OVglgDzLV%Vl$6hhHg9eB0)3qUGYd*aNe5s_@s?4bz
ztA-qG2tZa9Fz_dS0P|P3l>deh_{iam!<jF7Nc$qvGQ@sAuUl7b$aHgknNKrI47zYp
zM;DXdCM(kzH64?+uR7vr&hd^J>?m8t*UazOfq`b2;nL-P*_`&2NRZlQIPtWo!1B?7
zB-#0TDh5AK#^GWEGB>9rSGl`(<2`nH9k{slXV%g-ikscMU((oZ1B0RyT!*yXcAAaJ
zXD35Hyhye~zW5S9;S~5BAVED`O)m_u;A@(qXmIk5kx|DTZh1pC-Res#(BI#EPIKHG
zY2J9vc$m<XakPQ82CQJvaKg<q)jaWS29@q|IO0?0tq!1SCMPHMcEc5v_U;DAF@NXo
zTF$jx5It^am^SU~WllD#h4Jki7wtLzd!2W%FNM%k5^g0N#b2(B84dB#eRhr2U7}@P
z?Iig$(3jjTq!g}My)zpH^y7Y}rcHE>$wALzGE2TgaHy%ZaKm~Y?WkldC*IzDe1sE`
z8w{^%3*Tyc(!G<Bs83H1sCe2eOT5$_SugO}v*vvfP=?_A`zXPOZS(=wxzqY+*r&O$
zW4Vj>oVsg0v0iL)7SYTa!*bWMO{~c(PVs*(v}$?>_m$R;`Q7PWRuObK+M^fO`+Y=_
z&I+<A{}7>6ZgIbXwbG>2*$@6~y6+_U#q5O)Kch`ljrONT4Y_2Xc`qOP7=D3s#5IoM
zWdT~yYm=*wW-pQ|itZH3XE@uJCiTjOUvzezECqqOUr3K9YBK3d+rIlnXq3_VW2r-P
zONmp)<`g*5_@1uB<;iC%R*dDnPWGo-&kH5T#(JCrqX>n@PQU?vg&0qSwcpM2!$=}4
zR|<{NJ1iFFoh-KrudjCbQQ_?TR?h;YbMO9>8(L#;3nhec7rl(V_Sq_dnCzxb3U(OF
zD@ZOfxkTHZCdzqoYR^l1V64CdgWJxXd5zp;)LgLC;q}sbuI!RscRDZ5U+Pwcet<Ms
zrO2RXG{6?wWuh?_Gqa7u9f8@?EcwY<!Gfx5sHrMram@)=dPcLA^sevt9!BHGho@zo
z=v9IlPLaX}<3<GOh}?8pEnT~W?(SJ?nl184c}R_Oc^tSNJiy-_cw7b%yPQ|}L00{$
zDE_gV8Ed#rH6fw<ZEliAHFTe$*v&x~Dc!Cq@pv*tc@(;F8}SE<e<L>0^O|M6iK1oI
zpOReS5-#p72FCDIJv!PxTtA7Fi#*qclO}Zf?dKil>`o-9W<u|MOe2e{(VE*LlhqXw
zLxWz^R<XC-R8-ts8Pfvp6}HIk#Q9lz#s*v!^JngCgeZ>nKq8Y;!Aed{m~HfEx2Vc7
z>B0m=J~LFzDt_n{at0Dtp0ybF^2=U<Up<?o>8VwZj$N0Fd?%fyq73WxkOVrvJdy<K
zDeSFwq}<fl{?=!pk_8oa_0~D=amCtsGv^fGc<2E7h`sTDF!y-0vdtUrt*uasbZOR5
zjz<xKR`2+Y7%UNvyY%%eh&osQB}-$vdiJmp+t9cLu10^LRPJWrUl;bE4?T637%UfN
z>(<cL_g%o9i26ZGKWHLsvUD+C+@FLbo{E$vSXPF56(bhB<fsqz+DJkezx*x<CM&eO
zG!pwG8<B>_z2a)X4obx)nePL}$jrF{B;xuk-YmMS_p)u{-FRA{JGRD$c_kN#2%eSX
zQS?M&OEk{BO9N&l<!eM_Y>q0u*pHsNK(tmD(pnAt--JCFMo*m~T5l9?*-i{B3wto4
zSi*&wGV)NnDUy)RPn{#dZsb`yN$VfI*FX|j{M1Pj>`5LiKaG&DWro+%*A|9B(-+4@
zLis)+zU|{;D%a_R(`|lv5(%~>U;eqa`~*!j>TtCu&zpILgG8jxMw)4NILl|L+{oim
zWNrNlQ5ZC1v8B_ph5c)R*8xS_V8^Az7V(pP8?p|?MaFzX#X>q{ZLX63G~p3jOJiT=
zl^i6Zd=_tck?JMC=D{iUJwAl5)6%~s4ucj4z6<~U-WkZ(2M~A_11@4;pHBb0o87mX
avHWRU<M#0KT^oVBqM9uhXU(!YL;o*SGB|Dk

literal 0
HcmV?d00001

diff --git a/VECTO/Resources/4x2tt.png b/VECTO/Resources/4x2tt.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e1b64fa88c12d870aab871bcb700bc150cd5864
GIT binary patch
literal 3306
zcmbtWc|4SR7a!43l1gQngi^R#kU=RKR9w5F)mVmMhC#TEv6YA@nG$0+y0VQWV<|fs
zyU}3mTiN%rYi#fH==QnY_w&B*Kkw%=bI$XebAIRhJ>T=pe4ao9y=y$Xg?2+A5FRZ}
z4I>DI9RXa=aj^sT0-Fx#*j$XRsqIiL_o@PJ`VDk$T+#O_F@92ZC$PdPvi?DAqj_+p
z^~)-|u$l+44Nj4D9tllhIUS_DPXE-Fn1XJfw~UwB?eT>@F(0}~xt-6`nJ?e9hfzDi
za@xakJHn`d?F`H5jL7SJQ_`DM*7v5kH??9QxxBxGF<M9;$!{2@)(oaselGbmnoj#n
ztsQ*dIQ*{qOHSPoy=S_%W3qK%_9Jt=zH5rsHo@qdsp*(3ZyE0&n`eHW?HroxA6w`c
z{MJ1(x3s!8HMjD8ZDV%f`{K&l(A3iK^wPxFmGRl-^^MIh6ASZ8tX0<f*49?;P&+v3
zE+@^~E)WR+0r1Oa6W;=e0}*t+a?AC)Bia>j;cN}j#h{!WU4T1LeKZ<_vVJ%NzYl?M
zKhn}b+;HojiM3Pj*5rT0?v;Q=P6a){;j@uN&x}-W(4@(SWw*9?afWvflt<My?h5@v
zP+{`6RTg|xm5Y4D4^ef#cn9(b0TJNXHb4C%gkdJ$3u3YC&<nSXpL=|<XI6;jB*r7d
z1@V>PlHv0G>3+Ec5)faA70-O5QKe|PC{O<%K&7T{mH>x9BBJye;t@h<T?9Djs<fTn
z3;-e*n6hAv8Yd8!@2miiIh*d;v8Tmc5UjK{-)By2T2=xgQ5%4JOn|2_woj{UXM&am
zp=?mhyT?GQbNxpH5HdB;L&_jv#bwauL@=tro}1->6>i$*g9j6pWuWyL<rxs*aB(1x
zZueG{#BZ}ag#u9b!a*9hn`c2Fs2NC;J@~6SNHO+@(?@w60niCT0|6ku`XtyA(K2%%
z@Qbv)ATi=Me@CE=JNoZwpkF~20o$tNyy^Qd!~D>NePkPnEVH#et)&`2DAOwY-y-%~
zfK<0EL5{yGdIH25N+KYD&6TyoVDYVLaB?8>V`V?r_SX{su})xlzijg#DKP#^?#HHo
z3H%?$wOYRUf@f-TCNmNE=;!>2Qh9xFE>Y9%XX!s9$k`D&qxd3f#*(!cDn$W#KZ;&`
ziV*Na0J{4ja=}MT=IMUReNc;iP+2x0+Z}>v<o(|<pcGJYAGF!~*M2k(fI(t+yxE-|
zOtFE~=@D5;ZfMs9cwlk5LdpjdSco&y-O&QZAC7;4Jl2kH=O676jZB?5{+d(*Jw1C*
zhu8JtJ1b)tiMI%~-=k=%;5=Ltjb+u2SW^((!2?x=rum7%-<SSuS|l#zeOwn5mxJ@w
za6Kk;VGOc2O>(Or@5D9Uyimqna92i|t%v78WE7j#0=1d^(IUoeY4CYZg!EGX)6Udk
zUA=M#UyUR*WTN<#{5VPiO^c1pzrUe!m4=kEaoAx36PJbaJsq=-M{v%mA00urR}Wrk
ze7eG2ebPJ!ap3wnA5Uby;Oi_3tyr=tC0M(pbHB3PEDT`7p7@ev4XyIVJWME(2~`Mx
z{pzAqpJ-req-a?2w47~rvQS=5oHxuRAV{lyUT+&FF_dHsJ>)TIp{$L0FZ(bvW*FCO
z;VYhm9u~H}gB&;;O`qg_5iNoDI!@@aGT2lw$T~lMs1=8Dh*Isq(?@4Ro_f$nE6wY-
z2F7CHwk&2pR#Sido~>NgW}8DDZ_Yqz`=^GJz9*M^Xlds^(BF1f_XTo5CE7G;XOk8A
z%37V;$#tn!*xHQ6pk6nmqQ~aJ-*^iNx2+fmV)`gK4h@qyygxHPS)<qfMcI2{B`kx+
z98^d=Bh9#l^!3_0l!kXFbfFk`h`FQWS4h~+>Z2@+wXmm@ne2gkE-mD_R4MtyV^Rk4
zSv4k-FE0md*{{Z5y(VTFTbwSN!q7sxyo)e_)#y<Q+p?4EYzDTbI<mEy^-Yg`p~1Sk
zsbX2WbdKg?s2Ngj^`P$TCsO=d&S2oAq`P~<EtlgN3P=s_vDq=fw(3Pv-#EoVaV!pj
zl6ZpU!PE-oD#Ixq=e6QUr=h2z7vP)?6S;G!VT69%)^wIs!lw6TbI|%`xC``3a#HWU
z>>}aA$yQ4q%Pg%0Y8AN<N#{?^mE~7ynR;)jk*?yu`R2M4om|Ug!kopd4NR@)KXHn!
z0i`tZTh*-5&nO|>^YqHRV>OSm40mZ0K1U#4rk=pmUK8~BNVr6+pX5y51=e!+MM>z(
zHNMYgL_5tdMDMQ*con<iAn3Z^Rv}T^#ZdBf2fc^$>*WHSaFQ_eN&HM5HqNs&+Ht7D
zFZ4cFylGpkoaFrB*Xd%%9MuwvGZlw0ml8cml4q6oq>XoYiuYH4Ye6cOhI+dNJ2s#2
z{mtir`U~+ryGNE>*_@7}kv)O))Jn3)MwG|-2?c-t!TcfRi7fvY>-c+e<H$0xOM#Ui
z43UbJ0c!{E&OCTkoGvr&MK*JJcdW0Pu{R+nBH8$p-{!Y=F<-Uo+Wo{s3p<|7r?Gzb
zV<PLq5qD2wRSr6!GS4js!JZ`)j4;~U-Y7$HJE20(w*BOcl#cjA=m8xf=@1mI!}L7c
zTfJl`g@a3M3^m6)6rc<$HPmP6F!_4Qn^&!&-64~NE^`Ah8AF%FQ+=K=b;`TwApHn~
zS3EX*cI)aUi&ZPu1kVet*56ATv-U+uqp?Un;J4r^n?l(yEBV3Fz?S6R!C*d@si!2V
zur4hX+smX_C5^H-E1Y@$8-~@o;$0OekX~eIP^Y85R|j?@=!lnnN^oiK&87yZ?_N6d
z9?)%EFEA*pUUG04$9Ee(&d^cECh=TgDzUgsDQVVqWdF#huUC4M3QOe~fl7poGZZMi
zQJ%JH^f9aWjIoPQ9EXTBNNo&_oej#rpR2!QBr!Pb-<B@q>X0O6+6s*g2ss@pQh}d2
zCkb_j_Z)FPs~(pqmw!;G#pts4%0}8Sx4}ufd~qwdlYlmi8b4g+a;^uui)pV_OE0%L
zh0{DyH{Q^tph-q+tA(=%Wao-SYhC?n(<AB=h1)ejMT9F@dF<smkkS=SJOi`BsF%{e
z5QwVua6ebp#o8AC>63z9C;sa9`)8SO1r5SWuMa*CFK@>XniCa`N3>yY+#9O+GVEdE
z2016h?)p^T>Lz~Gx;oI5kJtgfdw?pe^gM${i+a^97UwIDJ<L@wN$Fes?P5e13Zwp_
z&8VBGa%q8jJ4dzl%bD=98NtSBfF&OLr%3;o8x4g(3vNHpZ^o%R^-y-|CdNkY?tC+7
z;9oL|9xzS15iiqMj<Ltp24e3}rTvgs?GAILx>=305HWc?6VfppydkF>6uT6G`F)5T
z)|Y2(lvKQSf6@J{l&>(XqdSf2vM)|=Kef+jW=K1xGzN=Tf1Mvp^5f?!X>7Mwu`(MO
zPMco6O{DV_NY!XhOoaL;W*HJ9Gj59xhkfKrnkZFWR?x60^IHubLp}hY2|~()?+N>A
z`~7K6lx}<#z;dTrbxGd$h9OS@E1bIJXr5GjIB5jrUQ?8nE+4_?laA9YV=aDgOh4$5
zL<Dm?)%KRs2&GD8#8@By^;v9N1OBLSs~c*OYMS$%81l(PZ-bmn@(MQ_9Tl#f^v^X5
zf2C3)=T_FHf1Ky+5TMpNX2eb;d>Myq^09ZUUBNt?DU0KJ+u%z5MnwWDFTeg{KG<x)
z(&>WD=B-}hW*z13N_`CmGh<x}ij*aCWcE|V6XqWHaQ1nx)r>`lzWF05z{KV(IkORm
zqZ`?UVj(w+hFS+4lL=FQj%m<$h;d4^&1oM^cFE-+rTX{Ano#sP7e=sof3)eZR9v#b
zDu~RpoU>TPYYs()59MxhJIT`?fG<4YXWReV&Cg)W;AN6srsb%mjxg}T4$-=zr;({<
G{`g-dat&($

literal 0
HcmV?d00001

diff --git a/VECTO/Resources/6x2r.png b/VECTO/Resources/6x2r.png
new file mode 100644
index 0000000000000000000000000000000000000000..290259e37a61c522ea7fe4bb018015dc69a55dbf
GIT binary patch
literal 3167
zcmZ`*c|25m8y~mvHiSmqY?X$Dx?NKuC8aZwrNLw^OSEt;xfDgldZKFyqio|9T9CEE
z49Zd?%go4b2AM%*8&uX1-gBnzTfLwA{xN5s=lA<Q-{<>0zvrCKFM?pKCn_u>j6fhn
z4fJ(P5r}mFWPd`fgPxiKc=%7i%Ty2d%kh^1wU9GTz?<uugj8CDRa-~Aa!aW9Br_bM
zYp&mGbd0OLevj!%rW5ZsB^0x7<+R-{=!kp9N}_b7miL5YwxmCQn_AX$JHI2Tq$`=y
zl~BY=D1n~rgks2G$30~w6n8zS?9Hm?JgDf+dDWNwl3Up_{QS*(Dsw2mroX8ET`6;@
zvUxcFb$@B&P*KCXr*#9x^uaf8C))d_Xzim7>~UJhD5IPAx^t|BGg;3bf7v$LHTaP`
zGTqTX)iwBuJ2Jz5_p#^wr@7C|yiW^@%PUhei?a*MgS@%14+}#Ra|2^D({oFsQ}bU|
zRzEL&SzB9s9vM;sRW0PHf7T0uklY0S1pY{GgBpd9_SQY)ZRX+R?Q{OBBf`k#;#ChX
z$itX8Ik{YP44PEGf<Oq58R!7!zCDv1H=7=Psk$o}%pUcr`x%!_qI4ZLn(vA7J@YIw
zSYEekjotl#iqv;-qLIjrYk|+O)N3j;w#~5yX$orUilL8{bcIj=S`H<T1VS<4Xb^)#
z>!3gsK(ZT)KPsQd5d8&RLfWGmYKB9A65xgi3<5ym&>%V#gOo$@O$hy?i`GHwAd#7@
zl$|g@eELBYgjB|@>Oeui%8kiF*bG!R0C}(X2>=Qzz@H+UAvQbEGzccVkQ|KJbT^};
z8P4+HQ3yXcP=6J|qS}-jLeBpJq92(NrvDN`;Yh{+eTO0j1y~DauAYGT9ieEXTsQ>M
zw*^({vhZe#U}oSC=_2@xJ%YRZVC<M=ywOKKH&%J>H&~l;`SHKCDFQjw;!vUc@yF2-
z280W6&K4)+u4{0lyM9Y7U*pgYxX{zLgaW=6ycO=oEg_Wr6(PfSFm+FAhJqMWV}__O
zL-B)6usCcP_Vc$MWq7}Xu(%dQ!AvTgOP5{^vq~vq!e1*WyVM|&a?Um2rh||K@ZetM
zIbo>hgm|?dWaWm#J!0$|kbsW^3W!Ta?sA4D*2*a#h6$9#fSh&TMEbz&@|V_s!^$bE
z05)_e8w%JjWY_>}iabS7g(VSe!8>r};Dycc;lpryzn}Sc6YlI!>ma1&>tK9aNAjoS
zXVCvZU`;;{5kx8e51@Zwk%xnST-W*0`AHf~c=A!`hJhjIFv3J48_@WwXbdv$8U-3E
zI1JJbWeta#fr4qF+8|Z%h7vL}eEWCzzskM`{rxWd&GWSf|33uY@5#tWI<me#I$Ley
zb^F4c!>VtI>znfqx-L%Mp5qig#G{JrTbk;*y&D&pFUB6<i{rR8tr<suNv!psjTZtE
zH!vn-eQruRPdRqJz3^L*bjA4OE0crct>%izZWU!So{G)G{H|@-6sBcmFSRK)O;xVp
zIxyxRR4dO(p;1oFdv<<cm5g69HY1}iRc3IGgg7qUpdVP71?(NVPY|<&{TQJbo}hbx
zgzc!Y>(Fej64f<`EvB9Fb$KDoYJ4i9v?lE{*4KF*#>f#znggdz-Gnrj^~e_g9!{sb
z?AZ)nmW*FjF7JvX6#pS}HIFNEjL-tfJBwBJ+FhBVU+lqQ6!vKN6&B<`#hxQ9nVv6y
zk+9<l`N*Qh3#<q?1Y~qbmsr2|t32mInfl8R%CQ16E{3tBG%T;-`givx<yrE0xpQ|}
zV-6*0F>lQ!m}*)D#MOy(PD7Fqz}g^OrYYePZNa7sl%B>i4zJ~gjd#}2`VOmZX~B^T
zPjN3q7R1@|%eT5%%aX$0W2xMJ_E&=c%c9O#U;6UMLe5qA1wc1Nft|Q}Gng+~(rNW)
z^wb^VE$oQwHePCI{&+x2ANM*Qsb-aRE?`PIaG`?T=Q9!F32|0uG+%trl3Ku}+Zr?<
zjcA#k)b>zZyTPkmUe#t4k6h*Chk#B@wa?cNdEC_A(gX5~<HqhRsr!7hOSh&*BQXg1
z#5$F8OT_=sc`82Jq<WqgeB#D2n%6VvB>ey{V%TN3P<P30vR4_m%46ni*MK73zHzTx
z@75Cs9A)ki^UQ(>Tnq6_cQeS9xGHrTHLB)ifcshF7423vqZT~5spgoNlj+u+sa#Z%
zK7qR9nL79(xal&mkoQr`4owl^hB`64$NRLB9#s_aXR-0z{Wh6bZ^PC+W~Wc71b<=M
zva5EuChr<046l>(v~ibLjsu70Bl`~&22WmKF4S+-jSHCkv^p-?7b`vIpIVKttnegP
z5Gi(BfO(Xkb_`c${i!E1C$F78o|ZIoRO?d5p(gvRJ6*?CypKQ3<hLV+)gn_G#axmN
zKVox3c%+(^vf6vk0Q7f!j$S+dIfaj!1KT+2C3U_7iz|(@&6<KHidAGPP>c*B8`A1k
z$+5p`o`NQJS#UCj-72#qF?BXoUtrp>JzZ;`9_b0*y?pSKaU%3O&2QNABvV~xhAA7g
z_Hb)Xw7b*ED=sk@dvfF*$30r1{Bbf|V7JK(ULGy7pj%Yhj^^%9du<e(twhw~CeQ@r
z8YBR0J<lbY^VCsK5IZaIf+Rw-jK)@}QY!kD(r9MV%pGX(vUo{p7VB}?@5J9H+kCD&
zH@e}fR68HVX79VBjX`$HKc;4}4vE=N<*|>YsILBG*=EA3uYYM%jCi~n@J5|dH$rmM
zyAkF{l*_A2av>Kg#J=Y=W-Unr2Aez1n7Q?a?Ik`zIQwPOlZm<Qs+3=2vQ-n0LBvVU
z1>%YHySYIPdk;%%#*3=7m(M!9o*9p!+<6GjmedVJq-hlG)0Vc)%B8J05(iXtOx)rv
zn%)`yD=8<-Q%ew8jy_s&+DbhBKp9>)VI7XNp|xFR`5aBN5c<Tr7pX@YY@Uta@y+<A
zclfG53FS}o<Ql?8U7{nCo;F|ZzP~mUP`d}T4NqewS8P)_vQuMe)xc(8^T0NKu5CFJ
zz?PfLS=|BO9@JGiKkE}qtrPThB1($v-6KLl39n1N(L*{VB`5V9H$K-W$B(2ndKr3f
zwkwn=>6^H93}Hisciv?xtmRLLgS}7=LK#|hQC0taK(y>v-*<A9F`;P?xIijax-uoy
z)*)lstcjN$RMASd%c}oSO;qwf#1#c?Bhpx9Bo25RI$C+33*)1c=1PJtuA&h}&a_g8
zFB3lTccr7s{I(1|!W=EQvKG+3i9uexcBh=)c~ycG1*%c%244^#_@rDt8C#U@rD(hB
zu6?O4>Gy*D@zT?FXHF}%O8PB`rbl8LVpvkB6`p8p-@G%OQy<q=YZo}W52GhI<`PXE
z6}vS5#@zmvJhpH6-u6pJ_UfCtX>nYw7rjm1+=|M`*3zmzBIS*5X8SK2e>mPG+}19$
z^S;KUp{1R={|kZb^W`7u@7*v-knZUAvF+*o%f<F40~6gLvh8AJ6~yJ92RT|`zH4-p
zfB1b37WeR2sP=k`YYQj$fZmk4H-QaiD3c^h_CX0(DXkazq8|sT7^8w#v4G+Go=!a7
znvdSAyzu$vUfEZ2`WM}9Tffq<Vp>+O=alDmq*r~Sm_JF=JQjR{G|ciXQ)%9rOWnRA
zD}WTIh%}AQ)z6gUDgy)EyAd(aT@xw(^|tv>*H8FH3f)IZqQgPSRis3v*27lN%@|>z
LYphd<a{&JXvfq}0

literal 0
HcmV?d00001

diff --git a/VECTO/Resources/6x2rt.png b/VECTO/Resources/6x2rt.png
new file mode 100644
index 0000000000000000000000000000000000000000..b078dbaf65a61c3922321209b7271f3d046ec427
GIT binary patch
literal 3337
zcmZ8j3p|ti8%H{*zl<V68c~OnN=)wAp&_@GOC3&Bq#JWrIV_hFCq-KBX;dhbg@rb`
zwUEof%xznx8DnlUn#=Zo->uH4|Npbk-sgS3zvp?r-{<#x-p}Wk?COk=-Lzwqn3$NX
zy`9Z*F|iGB;C)Vd1Mu8&Y4=mWh=(0Vz$K2ni)jTMmaC(itxFui{bs`-$&HsWq~Pp!
z-_+*F{Ez<Wt&#a1!P#xm*e=X#%B|AgJLUc9l>?d8gL$>XaZh^+>PGV34Bsj1&#W3u
ze>H%?4PdGUF|P+OuLm(W3Z{yZRXtcp7=6}2Eqps#+DI>cM<eu%*L5;#I=+@Qf5MTz
z;5)t&y2tS!zm~Op!hQJi>iy@}ZDXAy(|z=rroM>}6joFJMElTG50y=#u-^4fw2&tU
z$L46vh5k=7G$v<oY<`$APx&&({kA$azsy@*pW*NpmsiK8xRbNXU#GdBCpin;m9=&L
zx0SVtnI(ZhkU)J*0=kw7wmTIjCbnGx{EG(^^a2|trV?&@GW-PUe0bEEP=7I}i|0a7
zVSu;G<^1`J=ls!ZqYyE%%^CJK)^1ma*`w<|J3N(0^Kk=4zbr!^2RaohHBtl9d}S|r
zEZn$}GRPAM^7kdDn#&%Fn#nU;cC@5ZF5|7LOb8ZXw0CM!32BhC={J-h5>WUq8|g&p
zI0#e{o_ORoL|T49U4dn++v1)>fp&I3i`Xe|I?g)mXz_$MRMn*g_f{>Ixfly8Pk@9S
z;XrM6NkS_$6M?6+wKN=}3H;(AagZN?U*J@{V;|`IWoY~YEG1r9K!K64UuB^{&XAuf
z91@?_mns2fybu~JZ%qmWn?>HuHFeN)cNWHfC5eNPo~j$cDjxr1^cJjs0)t?iKt7MB
z=7~aj^btT`XeIIn=vDu0wxy>+!J@fqTZK#&U^n)tZJ@DbHh@(UjfKU^L^Z#g0R{?O
zD_c+%iEjc3;?tb?8-cyB3oa4^%!f-qo4t`m2SEDWBKmE)y^2C!^CVCch7NYvc16g0
zD)48c-M(4anMnee{YohQ!2u~DJ8Y9NXbtFl!3J@|KO2WfTB04f=>=NY&@CYU0sE*p
zDAXP%EPxyRIpcf2!GAzu($=>JtZxHlC4qP#6GQ-xLZ0xHGk^IPm6w(WVnKdUm;_V;
z3PRrjn_V_QE&%-iB%$Ls#(xJBylwvl|33;C%0yw}_lP)ft^nwViU`QrEf*|7q{SUP
zVi9g*fi<PPKl2>giAUuJB+hJkW7>6m>ZT!`81YD6)5hz^umeiLa=_R_G=cUs0Ux>|
zy>WN3o;3$^`mm@SNw~L6jvS~wL{T{E!nTCHe&3cK122;HqXm66k#Y%Wg=A-vtJ|YM
z4T9Nv&g-K502+mCV^<>8dZBz8eNPYml>I&!`)z{iJTy|5BW=(1UF|$R^xoNipGGOn
z1X@)YtyIx<ku4=RbxCt~f5JjneIpAOP_MdaUHWdy2DmD!DZ*rAp{zm&4!78g|7EHj
zRs~g1R}6tOimE-exQgk|UnHlw$~jac9m&?m`Vjt~k@7m*&_+b>^bFjd2qXFXtj4au
zcwAA=!(7dIWV-g^6=j`{3#7jRF*00V&hJe)yy;TdLXoD!M6q?&VZ_dUq5N({@{28z
zis9tO5<3M`8K+Q>_Ija+5*3WaJh4>&sO?=>o}pn!Qm3~_dar6TPQ78)h<YbQ8QYoL
zV^~zK_Pr^@7|z(T!Q5nr;;(SVNRN3@XL!VF6g8-b8f08gosX##im6#VXglPErYCu)
zra-X0?f9NIoFrp^PTew--F{`u{)$ep9C_sEb6hcTsc)!6TK<oDtZ5ss`R+xk3%5OV
zOWoFHVWr4c9V|U}zt?QpAY`@fL@-R(Ao1aTL=%VPoz_}6=I&lxy7a*NLKqxQh^cgo
z96gO(n(OPeVlsn9s3o@{f7Ge9bvG=<|JJXre|oGy5934pbIMG1`*2>GE6R8~dT01L
ztnkWZY~|;7q=HIQHANZtQ*0|wO4WXfM&5aBx|}#bcp}_-cGDplxl{&@9{M);gyG`s
z9+W=9Hr`dQ>M;77{uwIgC3+=OQPC%My~DprsC=pTCjM~($x3j^pFDh(uOT4UpRZF>
z6o;#Bc)>~XvS&H#>&;)Z+Fc5sI%@mrDpK`_heWseEwkZnlG2^!@Z)(68Bb;yIosQ^
zyV+YUylQO{6R(@0XQ^KN>6!<}US=9OBebL8URVaNnf<MfIlrBEY{xtxR)NKSf1wt?
zUu*NszNpAgl&D1NU5BN_uCi_cv}WebeM4rYC~CAhYb;{f<B*_zsOwh1>FQo~iJ$WY
zy(&xeH_c}=uO7Y$@>e_IxfP0~bx}=5Dfb)mX3IQ{bM7Lv!{7*&yaxFb_(zMnf^3#w
z%%4u6xca-%haJ7EVf7<Rlb25k<1`Eo3ogV^U+l(<(R)w%h^mF}y|QDm#*)JfGG{#*
zL$>AgoX=|HH8U?y4Qy?2CGt7w)%6IW#=wi?VWSbfDL#C%=OO>~YsxfkiJw!+!#1AF
z0GaLnae+o>yifrY&U}1e0b@;n{#ZZql4jToMok!IaOf2;qJ2+B3C=hP6^_`=>nvtv
z+qRY(r-obTs%#yWK4c>3jSm3YJ)6@VtAE!~MuuBs=&-C~xZa427`G#uV?X`nW}vgE
zS;Uz=N@06=SpB1re?DATZuQD}^#Je4aT5=pSZWpr*_P$HuZUA%LkU#zVXi0N%Eg`p
z29p}IVpfpqWyTS&WY}xu-*b4MNb?KlJNr>rQ?9*F7xk&fHaL@$P;52bkuleW&^`w*
zR>>E@a21n!jHz0R!@XshN??aq7Y#r9(cez@Y0-%0mJFe=gGC%Ut*OWpcU%tP!0(z6
zv!ga7WgzlxbVR77?v%`_mYKDGvMnFI4LFHcSJHzM@-6Wzy^p^x8W@@fozO2*_=e_>
zZ5s=7JpkkqN|ep#=CbfR@xNvwW!9|FdbZT{cwnRgwQPs#NP+GCZW4lSbXsB1Q(r*O
zh%>T=6_OjOf_W$4P@upk-5g(CQ<0a}&!dO#2i!tJBhx@PPQY~G0M|y4!HHuXL?44O
zgsAbK6V45oNN;c<P-$A$QbfAHHG=q?GH|NIm)oWgLA7@rJ_&dNJ0#u{3}ipqJF@u3
z2|yozS|dArp{vY!u58rW-9O@TOS{;`;O%m)%QfL*reX%kbxF5%M8}RhFf-{cmq99#
z+|-5QAMh&<2IU(BvH2}b7~`OBTs+6+(zA%9n?M~e4#_iysMsFhCLzm2qfXXbEf{-p
zJvz{F;x#>{{S1iCx-_UPnIhXf`vmp+JE5ht9P@$$Y&JiE9tZ{~GL5~6N^Iuy`veQ)
z2a{Y&{Q{(nTORtjQSIk_wEQ$*RG;7$!fGtmO+uY%%o9I~Pm2c_+{=uyYDcwQL-~KV
z_{Z=)p57xEU6X#x;vO|CM#@y>Sxqj(<SZKK+zLEec}+>9n-anU8fC0y_`Q5sz1p<t
zJ}dC0oyJ(GGUiApZ#LtvR-8vmOiegy>vTuMnkKpC*1eD!gmzCDKZ&&ecKLNv!Tfw>
zvu1--GB@)6bZ(T?bxTb%b<B}Ip5S`zot2c1kuNl<<fSDn#wP7~=ANV?g%VRVs<nKU
zhNln2BEyfICFGmO#&F%M9zVoo?ujZ=m@q|Kt%R+H97GqgO7Qv0*-rbGtwG92{wn!$
z=>T<E+^!5?@cgphK$j7${ht!al`b@zcy%@UDssX$FPG+AmoAs!b7@`SRR*wQj~WEE
zL;UNTy-^wk+y9bfmf_bs$WflpeG0xJv|VHQv&ISphAhntE}0F{6y1nLm*nqv1rYk_
e)=WRgmm9sRvrN{jv;yw%V)nMqHWhH+`2PaM=_y|T

literal 0
HcmV?d00001

diff --git a/VECTO/Resources/6x2tt.png b/VECTO/Resources/6x2tt.png
new file mode 100644
index 0000000000000000000000000000000000000000..d752ac94daf159eb6f33dc612f3b9a8f57cdb23a
GIT binary patch
literal 3022
zcmb_ec|6ql8=s;5DhxK$8nmQcn=8aPa*vE7VImb)MrcVPN37dU7ir6`Sx02B2~lz+
zgvl+G8A5L3n%r{V`}q#G_VxSs_j=7d&*!<`&-;14pLu;JoM38z;uPXUAP^`cLp^f@
zf*l9WGke*AoV86#0}AP7ZlKGiLk+41#u(w$8N69ospZXb>+m<O<XVrox5Rsu*Ap9^
zqN=YaHh9F<2PD5E=e6I;phsr6M!jf@Dd<Qj>I{3_oK)PE@TxO1t2HLSBPyqjoZCju
z?;z*3k@Gspx$Wfq_Sk}sl+y0B@}88}-5GECo=|&Bn@5V9hF>-eWmWd))-nnkhDzU$
z6gCcJRrTlAF>-1K^6Cehx+YrsrYc&Pb?svnt<1L{$D4a5Yum@DbY|6uPaT6Zy`!I7
z`=@$G=Q;*wJBMf688ZvZYvZ#^D{C85b1U;pYlGtppQe|FCKd)h&3#^2UEkPTUR`HS
zEpBaXk$Nb#VCsDyhE`q(gus6Ii~J>t4i<$F^v0j}ws61X?Q8GpgfMY&@O1YA)*-V?
zms}j2LMD~2ArPGBjr4G5{5mHS18l4f_-=<)UG$v5(|-KPGSyk`FwNhH?kvRaXR@+s
z_e5!gEyDA<@5n^XXi(CVrVy`7!41;#6))%<h!80~L?{k{*~1dMIuuuVP(=~p)TW*0
z+6>ilt!AaU^4;db!$~)Ap*YN*9re`_co2iA%(~orAOWetB=Qjnh;n;aevpNb&^PiV
z5YYc?A7+m@*3cs^6i3h{NtHYB5g&v*u|YUNROb2}kRdj~s^nD%P0%55nmOqPt4hhx
z88*+7q(VRyp-urwLXa-X@yqXh>q^MJ3%6Z|*<FhPJ)D%8VxTMD_9r4=bSEW)MPWt}
zxNgqyfI7xeP<PUeFwD!%#vSqU6!nlq3C_M@5BG0$VRSw)sT5K9z48(_w2uMl7}s10
zJc!^oKuUltHf~NUfV|5>OO9U+@IAB6;-qB}bQ@-)Q3JC1HY<QkfjME&xh&uZU|u8?
z<nSHfq1#an!n&+5mZ|{rli@c7oztnTEMUPj9Kqz^sbs<XtWy|3gG#nom`n=18jSa!
z{v5y+@iix1Rs_oixB>=;xY^+E&JifYe;ia`Z)g2ah~@Y<whi=uN<K-WSn>$W#~HU%
z@|=Db$agsi?wQUDA|C=m68XR`z_>uc_Vx)Voqedxzad_wooU{&ljQe)`5?X=cip>s
zC!%_6cMA-S|AxL;hMQGszqBo0fA-P#VNwm{F!z35%~i=vEU}L=b}BC*)!N;??7QPl
zRjB>Ewx7@_EU}xCakEEVY6>f|Y^Is_t8~*y-~m#!?m0EQFe+Br`SM(EO3D4eh_;a>
zHQ!d7*os3d&6cJ#Q}$b^%xs?;@>SF00#|+XIMXga@MB6nan3;IL6*X$2Yu9Sls={;
zo;6V}3|BDJ@FrVCZpz2+C8d=dmtGo~6G+r<vdB42ZoK*jU}!sxPSuY5se*DOalN43
zvn@+>SjJE7Xl&OW!5>A6Yb5nUFebNfHm23SURP-%OP&G~GSRd{v&~AT$5tzy4|8Wu
zs-D%(yf4@3k@?C}jZ}5w-0^BAZ)&)FdNAYXG8H#5s~+#HSGLkII7YH-!bS1LN@oS`
z%tZgz>7K2@)WzN+hEeG$DE#)bYY}emby9^?wYvJ;Uv^C{Y;4SNB}0vZXTD$QR(G4<
ztPgrG_+d#z+{|_O7#QlFh4)20b^(sbD-X!+qT)jGzck;8vH4Yh+P%*r?~|qH6OC<9
z)9%atNgpPZ8`fgppw25Y7lk(yQv2pc$_K1GpUUj!T<H&N9ey6G&V7{{i^~g|rmb-u
zcO8){BJhBT+EwvK+_248`(917$OJ4-7R|_HA#EVb5@f2cen@df@0{$%I9U>Fz?80s
zlmY0SklnKaRqMe@3Uo!Vb&Mmjw@=t=PJ-fCXw9|*cuQFIRas-+w=u!N8}A=JfKCZw
zKkO4K)xMm#^<(-_!#sRR2GNO_%l)5Clpie~*@83jb!IU^0ge2{0rl!h^cHvzH!Zv!
z(!<8b%P}puae4{T7}6Z$_`Nr&$TIKS^PbW^JMBbzf}udQvy3!f_P@A0Q6d}6HhzD(
z9LG@{1Kxp0gd4ZA$D`q4Y9aCjgxZ*x5iZpZNF6!rQQwolO{FyHx8i%<D96!9D2#%$
z32}a;XIe7ISnFgbxD5wPY4_ehXXiB8gD*|dp975V_eJ&!%dY5AhOFtk9k4U9?*nq&
zudFE%YbpMA#QDv^<oGT&aWiw}?I)TN+|vK^`s!AQaqR_E$FX!Vh1KS%tj;J2E3=NB
zE@2RlqDrqnjPQLF&5XnN-QDQGxE!#2>4X$vc9e{|a?X7H6Qm+!vVhkY^&jj*OBVh4
zZ2RHxv!lEf&uJ}Vi8U0fWEzK-wasLGbi&EDf58{?Xi4J54}FrLMocT8P*DGYiF`u+
ziX*&(0d#2}RFH7sLh-yaH4^twH<dRq-36EKC~XDbdsVzjnTkhLk=GP0RFHK2hQ6pD
zZ^wSAqL{30a?^(gNQ2eS7sK2&h2$NY1CnVaea2IqWQ~8@PopLRBwkO^bZ}4+pR)gH
zasCq;$;>FbAgMswi?EktX4w@y7WUp=F7YhCyPw4Cgj+by)Q83`2O0bD_g@dwsOCbD
zWTcy{iPxPYXwA<~_n}-Yw>hTg=lBsmGYS8pr^8ByUl7Wrrq>SLq%}Qu;hDXWV$eJ9
zOd)>_*zJ=TykJ7T_aBJcBAn$$m0y)@J~v>$?SlDRzPJe6B=(4~UN@TCt>Uu$_L>mn
z66to-B!I=`sTp45eb8j}skLnPFqq_SV6Kroc?KqF9lyvT8G~wviZfuq0_-FUuutuR
z-HMYzRNtM`n4a_T(6{g`wZ<P8mVU39V~mA}g5QF@w}Xq2o<{O=l)JiM)&>_<x15|I
zU!09SdiW7xzD{oR;Is0-H;PLMB(#1ZISpUMA0fJ;&4Ze79krQAM56Uo$Z19_=XiH}
z$YT-rH%n~<OpkfIGUygO^lQ0P$!AF=5>{U&I_)&b6IpR8o0e3Pov%FF3ATZH?1G-X
z!7vDZ@yF;YKI;Nk`HA=n=5>00grDy04_mEeWp(Mo96>AHy(h)A74MeUQYx62=-9h{
zy3paR)u%lrZe<IZvF9d_P0<1CC@ks+c$2&_ZgxJiUAD7!0_ZEzYu!?jZa<hbfPHFz
z9xTze&p+Mqe3Q{FX>IS#?-H-CA;unM7un1C@?FGTrMA+x1Ntft(ymqUEAXvU<JLwv
zH++(fQ~g4+b?oPvE}g!HYGPbbq9Nzq3$^S53QDgL=HE(;^{o*wnr`ubhWhD>-w&j3
sUF2cCR)N^n;KjQ0uHAKpezVE0waP6m>Af5d{)i%s@TPjtbcw(H1Kli5{r~^~

literal 0
HcmV?d00001

diff --git a/VECTO/Resources/Undef.png b/VECTO/Resources/Undef.png
new file mode 100644
index 0000000000000000000000000000000000000000..7357fd75808d2e83fa30dee4a767ccfad443f416
GIT binary patch
literal 624
zcmeAS@N?(olHy`uVBq!ia0y~yV0HqsKX3pE29EpP-av{a-O<;Pfnj4`&F{d;Kt5-I
zM`SSrgSZd~Gp5hK1k}YKS>hT|5}cn_Ql40p%HW%sT$Eo7<SF>4rDZ0k*1t6^WME)?
z>*?YcQgQ3;WkX&D2A;zkKBY&Pv2IN6=T!^}dY~ZG(0afrL2-is2uE<}uz;`_6E`Ce
zHv*+#(h(dGX)z|SbYm+6SUN!wq8pD+G=nj9q8W^^6HO<~NeDa9bdu~OoSuOhj1dgv
iI*Ib|CCW+v*(Qm<TwScvaSfO{7(8A5T-G@yGywppz^4rW

literal 0
HcmV?d00001

diff --git a/VECTO/VECTO.vbproj b/VECTO/VECTO.vbproj
index 03fb546e15..c9790df3f5 100644
--- a/VECTO/VECTO.vbproj
+++ b/VECTO/VECTO.vbproj
@@ -155,127 +155,127 @@
   </ItemGroup>
   <ItemGroup>
     <Compile Include="ApplicationEvents.vb" />
-    <Compile Include="cJSONparser.vb" />
-    <Compile Include="GUI\F_FileSign.Designer.vb">
-      <DependentUpon>F_FileSign.vb</DependentUpon>
+    <Compile Include="JSONparser.vb" />
+    <Compile Include="GUI\FileSignDialog.Designer.vb">
+      <DependentUpon>FileSignDialog.vb</DependentUpon>
     </Compile>
-    <Compile Include="GUI\F_FileSign.vb">
+    <Compile Include="GUI\FileSignDialog.vb">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="GUI\F_Graph.Designer.vb">
-      <DependentUpon>F_Graph.vb</DependentUpon>
+    <Compile Include="GUI\GraphForm.Designer.vb">
+      <DependentUpon>GraphForm.vb</DependentUpon>
     </Compile>
-    <Compile Include="GUI\F_Graph.vb">
+    <Compile Include="GUI\GraphForm.vb">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="GUI\F_Graph_ChEdit.Designer.vb">
-      <DependentUpon>F_Graph_ChEdit.vb</DependentUpon>
+    <Compile Include="GUI\GraphEditChannelDialog.Designer.vb">
+      <DependentUpon>GraphEditChannelDialog.vb</DependentUpon>
     </Compile>
-    <Compile Include="GUI\F_Graph_ChEdit.vb">
+    <Compile Include="GUI\GraphEditChannelDialog.vb">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="GUI\F_JIRA.Designer.vb">
-      <DependentUpon>F_JIRA.vb</DependentUpon>
+    <Compile Include="GUI\JiraDialog.Designer.vb">
+      <DependentUpon>JiraDialog.vb</DependentUpon>
     </Compile>
-    <Compile Include="GUI\F_JIRA.vb">
+    <Compile Include="GUI\JiraDialog.vb">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="GUI\F_Welcome.Designer.vb">
-      <DependentUpon>F_Welcome.vb</DependentUpon>
+    <Compile Include="GUI\WelcomeDialog.Designer.vb">
+      <DependentUpon>WelcomeDialog.vb</DependentUpon>
     </Compile>
-    <Compile Include="GUI\F_Welcome.vb">
+    <Compile Include="GUI\WelcomeDialog.vb">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="GUI\F_ENG.Designer.vb">
-      <DependentUpon>F_ENG.vb</DependentUpon>
+    <Compile Include="GUI\EngineForm.Designer.vb">
+      <DependentUpon>EngineForm.vb</DependentUpon>
     </Compile>
-    <Compile Include="GUI\F_ENG.vb">
+    <Compile Include="GUI\EngineForm.vb">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="GUI\F_GBX.Designer.vb">
-      <DependentUpon>F_GBX.vb</DependentUpon>
+    <Compile Include="GUI\GearboxForm.Designer.vb">
+      <DependentUpon>GearboxForm.vb</DependentUpon>
     </Compile>
-    <Compile Include="GUI\F_GBX.vb">
+    <Compile Include="GUI\GearboxForm.vb">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="GUI\F_VEH_AuxDlog.Designer.vb">
-      <DependentUpon>F_VEH_AuxDlog.vb</DependentUpon>
+    <Compile Include="GUI\VehicleAuxiliariesDialog.Designer.vb">
+      <DependentUpon>VehicleAuxiliariesDialog.vb</DependentUpon>
     </Compile>
-    <Compile Include="GUI\F_VEH_AuxDlog.vb">
+    <Compile Include="GUI\VehicleAuxiliariesDialog.vb">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="GUI\F_VEH_Axle.Designer.vb">
-      <DependentUpon>F_VEH_Axle.vb</DependentUpon>
+    <Compile Include="GUI\VehicleAxleDialog.Designer.vb">
+      <DependentUpon>VehicleAxleDialog.vb</DependentUpon>
     </Compile>
-    <Compile Include="GUI\F_VEH_Axle.vb">
+    <Compile Include="GUI\VehicleAxleDialog.vb">
       <SubType>Form</SubType>
     </Compile>
     <Compile Include="Input Files\cAdvancedAuxiliary.vb" />
-    <Compile Include="Input Files\cENG.vb" />
-    <Compile Include="Input Files\cGBX.vb" />
+    <Compile Include="Input Files\Engine.vb" />
+    <Compile Include="Input Files\Gearbox.vb" />
     <Compile Include="Configuration.vb" />
-    <Compile Include="File Browser\cFileBrowser.vb" />
-    <Compile Include="mAAUX_Global.vb" />
-    <Compile Include="File Browser\FB_Dialog.designer.vb">
-      <DependentUpon>FB_Dialog.vb</DependentUpon>
+    <Compile Include="File Browser\FileBrowser.vb" />
+    <Compile Include="AdvancedAuxiliariesModule.vb" />
+    <Compile Include="File Browser\FileBrowserDialog.designer.vb">
+      <DependentUpon>FileBrowserDialog.vb</DependentUpon>
     </Compile>
-    <Compile Include="File Browser\FB_Dialog.vb">
+    <Compile Include="File Browser\FileBrowserDialog.vb">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="File Browser\FB_FavDlog.designer.vb">
-      <DependentUpon>FB_FavDlog.vb</DependentUpon>
+    <Compile Include="File Browser\FileBrowserFavoritesDialog.designer.vb">
+      <DependentUpon>FileBrowserFavoritesDialog.vb</DependentUpon>
     </Compile>
-    <Compile Include="File Browser\FB_FavDlog.vb">
+    <Compile Include="File Browser\FileBrowserFavoritesDialog.vb">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="Input Files\cFLD.vb" />
-    <Compile Include="Input Files\cMAP.vb" />
-    <Compile Include="Input Files\cVECTO.vb" />
-    <Compile Include="Input Files\cVEH.vb" />
+    <Compile Include="Input Files\EngineFullLoadCurve.vb" />
+    <Compile Include="Input Files\FuelconsumptionMap.vb" />
+    <Compile Include="Input Files\VectoJob.vb" />
+    <Compile Include="Input Files\Vehicle.vb" />
     <Compile Include="GUI\GearboxGearDialog.Designer.vb">
       <DependentUpon>GearboxGearDialog.vb</DependentUpon>
     </Compile>
     <Compile Include="GUI\GearboxGearDialog.vb">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="Input Files\cSubPath.vb" />
-    <Compile Include="GUI\F_VECTO.Designer.vb">
-      <DependentUpon>F_VECTO.vb</DependentUpon>
+    <Compile Include="Input Files\SubPath.vb" />
+    <Compile Include="GUI\VectoJobForm.Designer.vb">
+      <DependentUpon>VectoJobForm.vb</DependentUpon>
     </Compile>
-    <Compile Include="GUI\F_VECTO.vb">
+    <Compile Include="GUI\VectoJobForm.vb">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="cFile V3.vb" />
+    <Compile Include="CsvFile.vb" />
     <Compile Include="VECTO_Global.vb" />
     <Compile Include="VECTO_Types.vb" />
     <Compile Include="GUI\GUI_Subs.vb" />
-    <Compile Include="GUI\F_VEH.Designer.vb">
-      <DependentUpon>F_VEH.vb</DependentUpon>
+    <Compile Include="GUI\VehicleForm.Designer.vb">
+      <DependentUpon>VehicleForm.vb</DependentUpon>
     </Compile>
-    <Compile Include="GUI\F_VEH.vb">
+    <Compile Include="GUI\VehicleForm.vb">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="GUI\F_Settings.Designer.vb">
-      <DependentUpon>F_Settings.vb</DependentUpon>
+    <Compile Include="GUI\Settings.Designer.vb">
+      <DependentUpon>Settings.vb</DependentUpon>
     </Compile>
-    <Compile Include="GUI\F_Settings.vb">
+    <Compile Include="GUI\Settings.vb">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="GUI\F_AboutBox.Designer.vb">
-      <DependentUpon>F_AboutBox.vb</DependentUpon>
+    <Compile Include="GUI\AboutBox.Designer.vb">
+      <DependentUpon>AboutBox.vb</DependentUpon>
     </Compile>
-    <Compile Include="GUI\F_AboutBox.vb">
+    <Compile Include="GUI\AboutBox.vb">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="M_MAIN.vb" />
-    <Compile Include="GUI\F_MAINForm.vb">
+    <Compile Include="MainModule.vb" />
+    <Compile Include="GUI\MainForm.vb">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="GUI\F_MAINForm.Designer.vb">
-      <DependentUpon>F_MAINForm.vb</DependentUpon>
+    <Compile Include="GUI\MainForm.Designer.vb">
+      <DependentUpon>MainForm.vb</DependentUpon>
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="File Browser\FB_Global.vb" />
+    <Compile Include="File Browser\FileBrowserModule.vb" />
     <Compile Include="My Project\AssemblyInfo.vb" />
     <Compile Include="My Project\Application.Designer.vb">
       <AutoGen>True</AutoGen>
@@ -293,59 +293,59 @@
     </Compile>
   </ItemGroup>
   <ItemGroup>
-    <EmbeddedResource Include="File Browser\FB_Dialog.resx">
-      <DependentUpon>FB_Dialog.vb</DependentUpon>
+    <EmbeddedResource Include="File Browser\FileBrowserDialog.resx">
+      <DependentUpon>FileBrowserDialog.vb</DependentUpon>
       <SubType>Designer</SubType>
     </EmbeddedResource>
-    <EmbeddedResource Include="File Browser\FB_FavDlog.resx">
-      <DependentUpon>FB_FavDlog.vb</DependentUpon>
+    <EmbeddedResource Include="File Browser\FileBrowserFavoritesDialog.resx">
+      <DependentUpon>FileBrowserFavoritesDialog.vb</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GUI\F_FileSign.resx">
-      <DependentUpon>F_FileSign.vb</DependentUpon>
+    <EmbeddedResource Include="GUI\FileSignDialog.resx">
+      <DependentUpon>FileSignDialog.vb</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GUI\F_Graph.resx">
-      <DependentUpon>F_Graph.vb</DependentUpon>
+    <EmbeddedResource Include="GUI\GraphForm.resx">
+      <DependentUpon>GraphForm.vb</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GUI\F_Graph_ChEdit.resx">
-      <DependentUpon>F_Graph_ChEdit.vb</DependentUpon>
+    <EmbeddedResource Include="GUI\GraphEditChannelDialog.resx">
+      <DependentUpon>GraphEditChannelDialog.vb</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GUI\F_JIRA.resx">
-      <DependentUpon>F_JIRA.vb</DependentUpon>
+    <EmbeddedResource Include="GUI\JiraDialog.resx">
+      <DependentUpon>JiraDialog.vb</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GUI\F_Welcome.resx">
-      <DependentUpon>F_Welcome.vb</DependentUpon>
+    <EmbeddedResource Include="GUI\WelcomeDialog.resx">
+      <DependentUpon>WelcomeDialog.vb</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GUI\F_ENG.resx">
-      <DependentUpon>F_ENG.vb</DependentUpon>
+    <EmbeddedResource Include="GUI\EngineForm.resx">
+      <DependentUpon>EngineForm.vb</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GUI\F_GBX.resx">
-      <DependentUpon>F_GBX.vb</DependentUpon>
+    <EmbeddedResource Include="GUI\GearboxForm.resx">
+      <DependentUpon>GearboxForm.vb</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GUI\F_MAINForm.resx">
+    <EmbeddedResource Include="GUI\MainForm.resx">
       <SubType>Designer</SubType>
-      <DependentUpon>F_MAINForm.vb</DependentUpon>
+      <DependentUpon>MainForm.vb</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GUI\F_VECTO.resx">
+    <EmbeddedResource Include="GUI\VectoJobForm.resx">
       <SubType>Designer</SubType>
-      <DependentUpon>F_VECTO.vb</DependentUpon>
+      <DependentUpon>VectoJobForm.vb</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GUI\F_VEH.resx">
+    <EmbeddedResource Include="GUI\VehicleForm.resx">
       <SubType>Designer</SubType>
-      <DependentUpon>F_VEH.vb</DependentUpon>
+      <DependentUpon>VehicleForm.vb</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GUI\F_Settings.resx">
+    <EmbeddedResource Include="GUI\Settings.resx">
       <SubType>Designer</SubType>
-      <DependentUpon>F_Settings.vb</DependentUpon>
+      <DependentUpon>Settings.vb</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GUI\F_AboutBox.resx">
+    <EmbeddedResource Include="GUI\AboutBox.resx">
       <SubType>Designer</SubType>
-      <DependentUpon>F_AboutBox.vb</DependentUpon>
+      <DependentUpon>AboutBox.vb</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GUI\F_VEH_AuxDlog.resx">
-      <DependentUpon>F_VEH_AuxDlog.vb</DependentUpon>
+    <EmbeddedResource Include="GUI\VehicleAuxiliariesDialog.resx">
+      <DependentUpon>VehicleAuxiliariesDialog.vb</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GUI\F_VEH_Axle.resx">
-      <DependentUpon>F_VEH_Axle.vb</DependentUpon>
+    <EmbeddedResource Include="GUI\VehicleAxleDialog.resx">
+      <DependentUpon>VehicleAxleDialog.vb</DependentUpon>
     </EmbeddedResource>
     <EmbeddedResource Include="GUI\GearboxGearDialog.resx">
       <DependentUpon>GearboxGearDialog.vb</DependentUpon>
diff --git a/VECTO/VECTO_Global.vb b/VECTO/VECTO_Global.vb
index 9176b3729f..a31ae060a2 100644
--- a/VECTO/VECTO_Global.vb
+++ b/VECTO/VECTO_Global.vb
@@ -32,14 +32,14 @@ Public Module VECTO_Global
 
 	Public sKey As csKey
 
-	Public FileFormat As Encoding = Encoding.UTF8
+	Public ReadOnly FileFormat As Encoding = Encoding.UTF8
 
 	Public Lic As cLicense
 	'Public VSUM As cVSUM
 	'Public DEV As cDEV
 
 
-	Public ProgBarCtrl As cProgBarCtrl
+	Public ProgBarCtrl As ProgressbarControl
 
 	''' <summary>
 	''' Converts engine speed and torque to power.
@@ -60,8 +60,8 @@ Public Module VECTO_Global
 			Try
 				LOGstream = My.Computer.FileSystem.OpenTextFileWriter(MyAppPath & "LOG.txt", True, FileFormat)
 				LOGstream.AutoFlush = True
-				WriteToLog(tMsgID.Normal, "Starting Session " & Now)
-				WriteToLog(tMsgID.Normal, "VECTO " & VECTOvers)
+				WriteToLog(MessageType.Normal, "Starting Session " & Now)
+				WriteToLog(MessageType.Normal, "VECTO " & VECTOvers)
 			Catch ex As Exception
 				Return False
 			End Try
@@ -82,7 +82,7 @@ Public Module VECTO_Global
 				'If Log too large: Delete
 				If logfDetail.Length / (2 ^ 20) > Cfg.LogSize Then
 
-					WriteToLog(tMsgID.Normal, "Starting new logfile")
+					WriteToLog(MessageType.Normal, "Starting new logfile")
 					LOGstream.Close()
 
 					BackUpError = False
@@ -97,9 +97,9 @@ Public Module VECTO_Global
 					If Not StartLog() Then Return False
 
 					If BackUpError Then
-						WriteToLog(tMsgID.Err, "Failed to backup logfile! (" & MyAppPath & "LOG_backup.txt)")
+						WriteToLog(MessageType.Err, "Failed to backup logfile! (" & MyAppPath & "LOG_backup.txt)")
 					Else
-						WriteToLog(tMsgID.Normal, "Logfile restarted. Old log saved to LOG_backup.txt")
+						WriteToLog(MessageType.Normal, "Logfile restarted. Old log saved to LOG_backup.txt")
 					End If
 
 				End If
@@ -111,7 +111,7 @@ Public Module VECTO_Global
 
 		Public Function CloseLog() As Boolean
 			Try
-				WriteToLog(tMsgID.Normal, "Closing Session " & Now)
+				WriteToLog(MessageType.Normal, "Closing Session " & Now)
 				LOGstream.Close()
 			Catch ex As Exception
 				Return False
@@ -121,13 +121,13 @@ Public Module VECTO_Global
 		End Function
 
 
-		Public Function WriteToLog(MsgType As tMsgID, Msg As String) As Boolean
+		Public Function WriteToLog(MsgType As MessageType, Msg As String) As Boolean
 			Dim MsgTypeStr As String
 
 			Select Case MsgType
-				Case tMsgID.Err
+				Case MessageType.Err
 					MsgTypeStr = "Error"
-				Case tMsgID.Warn
+				Case MessageType.Warn
 					MsgTypeStr = "Warning"
 				Case Else
 					MsgTypeStr = "-"
@@ -252,7 +252,7 @@ End Module
 
 
 Public Class csKey
-	Public AUX As csKeyAux
+	Public ReadOnly AUX As csKeyAux
 
 	Public HomePath As String = "<HOME>"
 	Public JobPath As String = "<JOBPATH>"
diff --git a/VECTO/VECTO_Types.vb b/VECTO/VECTO_Types.vb
index 8025a593dc..7ad9b0e277 100644
--- a/VECTO/VECTO_Types.vb
+++ b/VECTO/VECTO_Types.vb
@@ -30,28 +30,9 @@ Public Enum tWorkMsgType
 	Abort
 End Enum
 
-Public Enum tMsgID
+Public Enum MessageType
 	NewJob
 	Normal
 	Warn
 	Err
-End Enum
-
-
-Public Enum tCalcResult
-	Err
-	Abort
-	Done
-End Enum
-
-Public Enum tJobStatus
-	Running
-	Queued
-	OK
-	Err
-	Warn
-	Undef
-End Enum
-
-
-
+End Enum
\ No newline at end of file
diff --git a/VECTO/cFile V3.vb b/VECTO/cFile V3.vb
deleted file mode 100644
index 69eb390df0..0000000000
--- a/VECTO/cFile V3.vb	
+++ /dev/null
@@ -1,151 +0,0 @@
-' Copyright 2014 European Union.
-' Licensed under the EUPL (the 'Licence');
-'
-' * You may not use this work except in compliance with the Licence.
-' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
-' * Unless required by applicable law or agreed to in writing,
-'   software distributed under the Licence is distributed on an "AS IS" basis,
-'   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-'
-' See the LICENSE.txt for the specific language governing permissions and limitations.
-Imports System.IO
-Imports System.Text
-Imports Microsoft.VisualBasic.FileIO
-
-Public Class cFile_V3
-
-	Private TxtFldParser As TextFieldParser
-	Private StrWrter As StreamWriter
-	Private Mode As FileMode
-	Private Path As String
-	Private Sepp As String
-	Private SkipCom As Boolean
-	Private StopE As Boolean
-	Private FileOpen As Boolean
-	Private PreLine As String()
-	Private FileEnd As Boolean
-
-	Public Sub New()
-		Reset()
-	End Sub
-
-	Private Sub Reset()
-		FileOpen = False
-		Mode = FileMode.Undefined
-		PreLine = Nothing
-		FileEnd = False
-	End Sub
-
-	Public Function OpenRead(ByVal FileName As String, Optional ByVal Separator As String = ",", Optional ByVal SkipComment As Boolean = True, Optional ByVal StopAtE As Boolean = False) As Boolean
-		Reset()
-		StopE = StopAtE
-		Path = FileName
-		Sepp = Separator
-		SkipCom = SkipComment
-		If Not (Mode = FileMode.Undefined) Then Return False
-		If Not File.Exists(Path) Then Return False
-		Mode = FileMode.Read
-		Try
-			TxtFldParser = New TextFieldParser(Path, Encoding.Default)
-			FileOpen = True
-		Catch ex As Exception
-			Return False
-		End Try
-		TxtFldParser.TextFieldType = FieldType.Delimited
-		TxtFldParser.Delimiters = New String() {Sepp}
-
-		'If TxtFldParser.EndOfData Then Return False
-
-		ReadLine()
-		Return True
-	End Function
-
-	Public Function ReadLine() As String()
-		Dim line As String()
-		Dim line0 As String
-
-		line = PreLine
-
-lb10:
-		If TxtFldParser.EndOfData Then
-
-			FileEnd = True
-
-		Else
-
-			PreLine = TxtFldParser.ReadFields
-			line0 = UCase(Trim(PreLine(0)))
-
-			If SkipCom Then
-				If Left(line0, 1) = "#" Then GoTo lb10
-			End If
-
-			If StopE Then FileEnd = (line0 = "E")
-
-		End If
-
-		Return line
-
-	End Function
-
-	Public Sub Close()
-		Select Case Mode
-			Case FileMode.Read
-				If FileOpen Then TxtFldParser.Close()
-				TxtFldParser = Nothing
-			Case FileMode.Write
-				If FileOpen Then StrWrter.Close()
-				StrWrter = Nothing
-		End Select
-		Reset()
-	End Sub
-
-	Public ReadOnly Property EndOfFile() As Boolean
-		Get
-			Return FileEnd
-		End Get
-	End Property
-
-	Public Function OpenWrite(ByVal FileName As String, Optional ByVal Separator As String = ",", Optional ByVal AutoFlush As Boolean = False, Optional ByVal Append As Boolean = False) As Boolean
-		Reset()
-		Path = FileName
-		Sepp = Separator
-		If Not (Mode = FileMode.Undefined) Then Return False
-		Mode = FileMode.Write
-		Try
-			StrWrter = My.Computer.FileSystem.OpenTextFileWriter(Path, Append, FileFormat)
-			FileOpen = True
-		Catch ex As Exception
-			Return False
-		End Try
-		StrWrter.AutoFlush = AutoFlush
-		Return True
-	End Function
-
-	Public Sub WriteLine(ByVal ParamArray x() As Object)
-		Dim St As String
-		Dim StB As New StringBuilder
-		Dim Skip As Boolean
-		Skip = True
-		For Each St In x
-			If Skip Then
-				StB.Append(St)
-				Skip = False
-			Else
-				StB.Append(Sepp & St)
-			End If
-		Next
-		StrWrter.WriteLine(StB.ToString)
-
-	End Sub
-	Public Sub WriteLine(ByVal x As String)
-		StrWrter.WriteLine(x)
-	End Sub
-
-	Private Enum FileMode
-		Undefined
-		Read
-		Write
-	End Enum
-
-End Class
-- 
GitLab