Fixed open and save files

This commit is contained in:
Administrator 2022-03-26 21:03:02 +01:00
parent f4642870e6
commit d9419df191
11 changed files with 512 additions and 179 deletions

View File

@ -30,7 +30,7 @@ namespace App
private void InitializeComponent() private void InitializeComponent()
{ {
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
this.deviceDescription1 = new Aml.Editor.Plugin.DeviceDescription(); this.deviceDescription1 = new Aml.Editor.Plugin.DeviceDescription(new Aml.Editor.Plugin.MWController());
this.SuspendLayout(); this.SuspendLayout();
// //
// deviceDescription1 // deviceDescription1

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Aml.Engine" version="1.5.8" targetFramework="net472" />
<package id="System.IO.FileSystem.AccessControl" version="5.0.0" targetFramework="net472" />
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net472" />
<package id="System.IO.Packaging" version="5.0.0" targetFramework="net472" />
<package id="System.Security.AccessControl" version="5.0.0" targetFramework="net472" />
<package id="System.Security.Principal.Windows" version="5.0.0" targetFramework="net472" />
</packages>

BIN
SOURCE/Plugin/AML.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

View File

@ -58,7 +58,6 @@ namespace Aml.Editor.Plugin
this.helpButton = new System.Windows.Forms.ToolStripDropDownButton(); this.helpButton = new System.Windows.Forms.ToolStripDropDownButton();
this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.manualToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.manualToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.fileNameLabel = new System.Windows.Forms.ToolStripLabel();
this.vendorNameTextBox = new System.Windows.Forms.ToolStripTextBox(); this.vendorNameTextBox = new System.Windows.Forms.ToolStripTextBox();
this.filePathLabel = new System.Windows.Forms.ToolStripLabel(); this.filePathLabel = new System.Windows.Forms.ToolStripLabel();
this.deviceNameTextBox = new System.Windows.Forms.ToolStripTextBox(); this.deviceNameTextBox = new System.Windows.Forms.ToolStripTextBox();
@ -295,7 +294,6 @@ namespace Aml.Editor.Plugin
this.fileButton, this.fileButton,
this.librariesSplitButton, this.librariesSplitButton,
this.helpButton, this.helpButton,
this.fileNameLabel,
this.vendorNameTextBox, this.vendorNameTextBox,
this.filePathLabel, this.filePathLabel,
this.deviceNameTextBox, this.deviceNameTextBox,
@ -468,14 +466,6 @@ namespace Aml.Editor.Plugin
this.manualToolStripMenuItem.Text = "Manual"; this.manualToolStripMenuItem.Text = "Manual";
this.manualToolStripMenuItem.Click += new System.EventHandler(this.manualToolStripMenuItem_Click); this.manualToolStripMenuItem.Click += new System.EventHandler(this.manualToolStripMenuItem_Click);
// //
// fileNameLabel
//
this.fileNameLabel.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.fileNameLabel.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold);
this.fileNameLabel.ForeColor = System.Drawing.Color.Black;
this.fileNameLabel.Name = "fileNameLabel";
this.fileNameLabel.Size = new System.Drawing.Size(0, 20);
//
// vendorNameTextBox // vendorNameTextBox
// //
this.vendorNameTextBox.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; this.vendorNameTextBox.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
@ -1105,8 +1095,8 @@ namespace Aml.Editor.Plugin
this.toolStripLabel20.BackColor = System.Drawing.Color.Transparent; this.toolStripLabel20.BackColor = System.Drawing.Color.Transparent;
this.toolStripLabel20.ForeColor = System.Drawing.Color.Black; this.toolStripLabel20.ForeColor = System.Drawing.Color.Black;
this.toolStripLabel20.Name = "toolStripLabel20"; this.toolStripLabel20.Name = "toolStripLabel20";
this.toolStripLabel20.Size = new System.Drawing.Size(122, 22); this.toolStripLabel20.Size = new System.Drawing.Size(113, 22);
this.toolStripLabel20.Text = "Generic Information 2"; this.toolStripLabel20.Text = "Generic Information";
// //
// deleteRoleClassButton // deleteRoleClassButton
// //
@ -2626,7 +2616,6 @@ namespace Aml.Editor.Plugin
private System.Windows.Forms.Label TableHeader_lbl_Copyright; private System.Windows.Forms.Label TableHeader_lbl_Copyright;
private System.Windows.Forms.Label TableHeader_lbl_Description; private System.Windows.Forms.Label TableHeader_lbl_Description;
private System.Windows.Forms.TextBox descriptionTxtBoxElecAttri; private System.Windows.Forms.TextBox descriptionTxtBoxElecAttri;
private System.Windows.Forms.ToolStripLabel fileNameLabel;
private System.Windows.Forms.TreeView treeViewElectricalInterfaces; private System.Windows.Forms.TreeView treeViewElectricalInterfaces;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn17; private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn17;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn18; private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn18;

View File

@ -1614,7 +1614,7 @@ namespace Aml.Editor.Plugin
{ {
SaveFileDialog saveFileDialog = new SaveFileDialog(); SaveFileDialog saveFileDialog = new SaveFileDialog();
// saveFileDialog.Filter = "AML Files( *.amlx )| *.amlx;"; saveFileDialog.Filter = "AML Files( *.amlx )| *.amlx;";
saveFileDialog.FileName = vendorNameTextBox.Text + "-" + deviceNameTextBox.Text + "-V.1.0-" + DateTime.Now.Date.ToShortDateString(); saveFileDialog.FileName = vendorNameTextBox.Text + "-" + deviceNameTextBox.Text + "-V.1.0-" + DateTime.Now.Date.ToShortDateString();
if (saveFileDialog.ShowDialog() == DialogResult.OK) if (saveFileDialog.ShowDialog() == DialogResult.OK)
@ -1622,11 +1622,9 @@ namespace Aml.Editor.Plugin
device.filepath = Path.GetDirectoryName(saveFileDialog.FileName); device.filepath = Path.GetDirectoryName(saveFileDialog.FileName);
device.environment = Path.GetDirectoryName(saveFileDialog.FileName); device.environment = Path.GetDirectoryName(saveFileDialog.FileName);
//filePathLabel.Text = Path.GetDirectoryName(saveFileDialog.FileName);
device.fileName = saveFileDialog.FileName; device.fileName = saveFileDialog.FileName;
fileNameLabel.Text = "";
// storing user defined values of Attachebles data grid view in to list // storing user defined values of Attachebles data grid view in to list
// Pass the device to the controller // Pass the device to the controller
@ -1750,7 +1748,6 @@ namespace Aml.Editor.Plugin
device.fileName = saveFileDialog.FileName; device.fileName = saveFileDialog.FileName;
fileNameLabel.Text = "";
// storing user defined values of Attachebles data grid view in to list // storing user defined values of Attachebles data grid view in to list
// Pass the device to the controller // Pass the device to the controller
@ -2076,7 +2073,6 @@ namespace Aml.Editor.Plugin
document = CAEXDocument.LoadFromStream(part.GetStream()); document = CAEXDocument.LoadFromStream(part.GetStream());
} }
fileNameLabel.Text = fileInfo.Name;
getAllInterfaces(treeViewInterfaceClassLib.Nodes); getAllInterfaces(treeViewInterfaceClassLib.Nodes);
foreach (var classLibType in document.CAEXFile.SystemUnitClassLib) foreach (var classLibType in document.CAEXFile.SystemUnitClassLib)
@ -3590,7 +3586,6 @@ namespace Aml.Editor.Plugin
{ {
vendorNameTextBox.Text = ""; vendorNameTextBox.Text = "";
deviceNameTextBox.Text = ""; deviceNameTextBox.Text = "";
fileNameLabel.Text = "";
genericDataHeaderLabel.Text = ""; genericDataHeaderLabel.Text = "";
electricalInterfacesHeaderlabel.Text = ""; electricalInterfacesHeaderlabel.Text = "";
genericInformationDataGridView.Rows.Clear(); genericInformationDataGridView.Rows.Clear();

View File

@ -123,6 +123,33 @@
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>265, 17</value> <value>265, 17</value>
</metadata> </metadata>
<metadata name="toolStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1330, 103</value>
</metadata>
<metadata name="toolStrip24.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1066, 103</value>
</metadata>
<metadata name="toolStrip5.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>273, 146</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn24.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn25.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn26.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn27.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn28.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn29.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn24.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="dataGridViewTextBoxColumn24.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
@ -144,6 +171,9 @@
<metadata name="toolStrip5.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="toolStrip5.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>273, 146</value> <value>273, 146</value>
</metadata> </metadata>
<metadata name="deleteRoleClassesButton.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 80</value>
</metadata>
<metadata name="imageList2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="imageList2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>278, 103</value> <value>278, 103</value>
</metadata> </metadata>
@ -151,63 +181,63 @@
<value> <value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD6 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD4
DAAAAk1TRnQBSQFMAgEBAwEAAfgBAwH4AQMBHAEAARwBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo DAAAAk1TRnQBSQFMAgEBAwIAAQQBAAEEARwBAAEcAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
AwABcAMAARwDAAEBAQABCAUAAUABDBgAAYACAAGAAwACgAEAAYADAAGAAQABgAEAAoACAAPAAQABwAHc AXADAAEcAwABAQEAAQgFAAFAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AcABAAHwAcoBpgEAATMFAAEzAQABMwEAATMBAAIzAgADFgEAAxwBAAMiAQADKQEAA1UBAANNAQADQgEA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AzkBAAGAAXwB/wEAAlAB/wEAAZMBAAHWAQAB/wHsAcwBAAHGAdYB7wEAAdYC5wEAAZABqQGtAgAB/wEz AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
AwABZgMAAZkDAAHMAgABMwMAAjMCAAEzAWYCAAEzAZkCAAEzAcwCAAEzAf8CAAFmAwABZgEzAgACZgIA AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
AWYBmQIAAWYBzAIAAWYB/wIAAZkDAAGZATMCAAGZAWYCAAKZAgABmQHMAgABmQH/AgABzAMAAcwBMwIA AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
AcwBZgIAAcwBmQIAAswCAAHMAf8CAAH/AWYCAAH/AZkCAAH/AcwBAAEzAf8CAAH/AQABMwEAATMBAAFm AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
AQABMwEAAZkBAAEzAQABzAEAATMBAAH/AQAB/wEzAgADMwEAAjMBZgEAAjMBmQEAAjMBzAEAAjMB/wEA ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
ATMBZgIAATMBZgEzAQABMwJmAQABMwFmAZkBAAEzAWYBzAEAATMBZgH/AQABMwGZAgABMwGZATMBAAEz AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
AZkBZgEAATMCmQEAATMBmQHMAQABMwGZAf8BAAEzAcwCAAEzAcwBMwEAATMBzAFmAQABMwHMAZkBAAEz AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
AswBAAEzAcwB/wEAATMB/wEzAQABMwH/AWYBAAEzAf8BmQEAATMB/wHMAQABMwL/AQABZgMAAWYBAAEz AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
AQABZgEAAWYBAAFmAQABmQEAAWYBAAHMAQABZgEAAf8BAAFmATMCAAFmAjMBAAFmATMBZgEAAWYBMwGZ AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
AQABZgEzAcwBAAFmATMB/wEAAmYCAAJmATMBAANmAQACZgGZAQACZgHMAQABZgGZAgABZgGZATMBAAFm AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
AZkBZgEAAWYCmQEAAWYBmQHMAQABZgGZAf8BAAFmAcwCAAFmAcwBMwEAAWYBzAGZAQABZgLMAQABZgHM AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
Af8BAAFmAf8CAAFmAf8BMwEAAWYB/wGZAQABZgH/AcwBAAHMAQAB/wEAAf8BAAHMAQACmQIAAZkBMwGZ AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
AQABmQEAAZkBAAGZAQABzAEAAZkDAAGZAjMBAAGZAQABZgEAAZkBMwHMAQABmQEAAf8BAAGZAWYCAAGZ AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
AWYBMwEAAZkBMwFmAQABmQFmAZkBAAGZAWYBzAEAAZkBMwH/AQACmQEzAQACmQFmAQADmQEAApkBzAEA ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
ApkB/wEAAZkBzAIAAZkBzAEzAQABZgHMAWYBAAGZAcwBmQEAAZkCzAEAAZkBzAH/AQABmQH/AgABmQH/ Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
ATMBAAGZAcwBZgEAAZkB/wGZAQABmQH/AcwBAAGZAv8BAAHMAwABmQEAATMBAAHMAQABZgEAAcwBAAGZ AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
AQABzAEAAcwBAAGZATMCAAHMAjMBAAHMATMBZgEAAcwBMwGZAQABzAEzAcwBAAHMATMB/wEAAcwBZgIA AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
AcwBZgEzAQABmQJmAQABzAFmAZkBAAHMAWYBzAEAAZkBZgH/AQABzAGZAgABzAGZATMBAAHMAZkBZgEA AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
AcwCmQEAAcwBmQHMAQABzAGZAf8BAALMAgACzAEzAQACzAFmAQACzAGZAQADzAEAAswB/wEAAcwB/wIA ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
AcwB/wEzAQABmQH/AWYBAAHMAf8BmQEAAcwB/wHMAQABzAL/AQABzAEAATMBAAH/AQABZgEAAf8BAAGZ Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
AQABzAEzAgAB/wIzAQAB/wEzAWYBAAH/ATMBmQEAAf8BMwHMAQAB/wEzAf8BAAH/AWYCAAH/AWYBMwEA AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
AcwCZgEAAf8BZgGZAQAB/wFmAcwBAAHMAWYB/wEAAf8BmQIAAf8BmQEzAQAB/wGZAWYBAAH/ApkBAAH/ AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
AZkBzAEAAf8BmQH/AQAB/wHMAgAB/wHMATMBAAH/AcwBZgEAAf8BzAGZAQAB/wLMAQAB/wHMAf8BAAL/ AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
ATMBAAHMAf8BZgEAAv8BmQEAAv8BzAEAAmYB/wEAAWYB/wFmAQABZgL/AQAB/wJmAQAB/wFmAf8BAAL/ AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AWYBAAEhAQABpQEAA18BAAN3AQADhgEAA5YBAAPLAQADsgEAA9cBAAPdAQAD4wEAA+oBAAPxAQAD+AEA AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfAB+wH/AQABpAKgAQADgAMAAf8CAAH/AwAC/wEAAf8DAAH/AQAB/wEAAv8CAAP/AQA49Bv/AfQcAA3/ AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wEAOPQb/wH0HAAN/w32
DfYB/wH2OP8cAAH/AvYK/wT2Bf8D9gL/AfY4/xwAA/YY/wH2OP8cAAP2D/8B9Aj/AfYH/w/0Iv8cAAL2 Af8B9jj/HAAB/wL2Cv8E9gX/A/YC/wH2OP8cAAP2GP8B9jj/HAAD9g//AfQI/wH2B/8P9CL/HAAC9gT/
BP8Q9Az/AfQB8wLxA/IE8QHyAvEB8gHzIv8cAAH2BP8C9AEZDQkBGQL0BP8B9gX/AfMBvAgHAe8CBwG1 EPQM/wH0AfMC8QPyBPEB8gLxAfIB8yL/HAAB9gT/AvQBGQ0JARkC9AT/AfYF/wHzAbwIBwHvAgcBtQEH
AQcB8AH0If8cAAX/AfQBGQG7BJEHtAKRAbsBGQH0BP8C9gT/AfMBBwG1CrsCtQG7AfQh/xwAAfYE/wH0 AfAB9CH/HAAF/wH0ARkBuwSRB7QCkQG7ARkB9AT/AvYE/wHzAQcBtQq7ArUBuwH0If8cAAH2BP8B9AEJ
AQkBtAKLA60BswGtAYsCswGtAosBtAEJAfQE/wL2BP8BGQIJCBkB8QEZAQkBtQG7AfQh/xwAAfYE/wH0 AbQCiwOtAbMBrQGLArMBrQKLAbQBCQH0BP8C9gT/ARkCCQgZAfEBGQEJAbUBuwH0If8cAAH2BP8B9AEJ
AQkBswGLAa0DswG6AbQBrQG0AdsBswGtAYsBtAEJAfQE/wL2BP8B8wEJAhkCBwHxAfIB7wGSAfcB8AIZ AbMBiwGtA7MBugG0Aa0BtAHbAbMBrQGLAbQBCQH0BP8C9gT/AfMBCQIZAgcB8QHyAe8BkgH3AfACGQIJ
AgkB9BX/AfQCGQH0CP8cAAH2BP8B9AHcAbMBiwG0AboBswHbAdwBCQGzAdsB3AHbAbMBrQG0AQkB9Ar/ AfQV/wH0AhkB9Aj/HAAB9gT/AfQB3AGzAYsBtAG6AbMB2wHcAQkBswHbAdwB2wGzAa0BtAEJAfQK/wHy
AfIBvAEZAfIB7QHsAfABBwFtARMBEgHtAfEBGQG7AQcB9BT/ARkBtQKRAbsB8AHzBf8B9hwABv8BCQGz AbwBGQHyAe0B7AHwAQcBbQETARIB7QHxARkBuwEHAfQU/wEZAbUCkQG7AfAB8wX/AfYcAAb/AQkBswGL
AYsBtAG6AbMB3AG0AboBswLbAbMBrAGLAbQBCQH0Cv8B8gEHAvAC6wG8AewBQwESARMBEgHvAfMCBwH0 AbQBugGzAdwBtAG6AbMC2wGzAawBiwG0AQkB9Ar/AfIBBwLwAusBvAHsAUMBEgETARIB7wHzAgcB9A3/
Df8B9AHyAfMB9AL/AfQBtQGLA2wBtQHxAfQE/wH2HAAG/wEJAbMBiwG0AboBtAHcAbQBkQGLAboB2wGz AfQB8gHzAfQC/wH0AbUBiwNsAbUB8QH0BP8B9hwABv8BCQGzAYsBtAG6AbQB3AG0AZEBiwG6AdsBswKs
AqwBuQEJAfQK/wHyAbwB8QHwAW0B6wEHAeoBEgHvAfcBbQHvAfMCBwH0Df8B8gHvAQcB8gL0ARkBiwFs AbkBCQH0Cv8B8gG8AfEB8AFtAesBBwHqARIB7wH3AW0B7wHzAgcB9A3/AfIB7wEHAfIC9AEZAYsBbAGL
AYsBkQKLAe8B8gT/AfYcAAX/AfQBCQGzAYsBtAG6AbQB3AK0AYsBugHbAbMCrAGtAQkB9Ar/AfIBBwHx AZECiwHvAfIE/wH2HAAF/wH0AQkBswGLAbQBugG0AdwCtAGLAboB2wGzAqwBrQEJAfQK/wHyAQcB8QHw
AfABbQHrAe8B6gFtAfEB8AHvAbwB8gIHAfQN/wHxAewBrgEJAhkBtQFsAYsBCQEZAbQBiwG0AfEE/wH2 AW0B6wHvAeoBbQHxAfAB7wG8AfICBwH0Df8B8QHsAa4BCQIZAbUBbAGLAQkBGQG0AYsBtAHxBP8B9hwA
HAAF/wH0AQkBswGLAbQBugGzAdwBuwEJAbMC2wGzAqwBswEJAfQK/wHyAQcB8QHwAm0B7wHqAesB8QHz Bf8B9AEJAbMBiwG0AboBswHcAbsBCQGzAtsBswKsAbMBCQH0Cv8B8gEHAfEB8AJtAe8B6gHrAfEB8wL0
AvQB8gIHAfQN/wHxAewBbAGuAZECrgFmAbQCGQG7AZABkQHwBP8B9hwABf8B9AEJAbMBiwG0AboBswHb AfICBwH0Df8B8QHsAWwBrgGRAq4BZgG0AhkBuwGQAZEB8AT/AfYcAAX/AfQBCQGzAYsBtAG6AbMB2wLh
AuEBswLbAbMCsgGzAQkB9Ar/AfIBBwHxAfACbQH3ARMB6wLzAfIB8wHyAgcB8w3/AfEC7AO7AbQBbAGL AbMC2wGzArIBswEJAfQK/wHyAQcB8QHwAm0B9wETAesC8wHyAfMB8gIHAfMN/wHxAuwDuwG0AWwBiwIJ
AgkBtAGLAbQB8QT/AfYcAAH2BP8B9AEJAbMBiwKzAa0DswGtArMDrAGzAQkB9Ar/AfIBBwLwAm0BBwJt AbQBiwG0AfEE/wH2HAAB9gT/AfQBCQGzAYsCswGtA7MBrQKzA6wBswEJAfQK/wHyAQcC8AJtAQcCbQG8
AbwB7wHtAQcB8gHvAQcB9A3/AfIB7wEHARkC4gEZAosBtAGRApABuwHzBP8B9hwAAvYD/wH0AQkBtAKL Ae8B7QEHAfIB7wEHAfQN/wHyAe8BBwEZAuIBGQKLAbQBkQKQAbsB8wT/AfYcAAL2A/8B9AEJAbQCiwGt
Aa0CrAKtBawBrQG0AQkB9Ar/AfIBBwLwAW0B6wG8AesBFQHrAm0BBwEZArsB9A3/AfQB8gHzBPQBtAGL AqwCrQWsAa0BtAEJAfQK/wHyAQcC8AFtAesBvAHrARUB6wJtAQcBGQK7AfQN/wH0AfIB8wT0AbQBiwFm
AWYBbAGLAbQBGQH0Bf8cAAL2BP8B8wEJAbsBtQG0AbMBrQGzCLQBvAH0Cv8B8gEHAQkB8AHsAesB8AH3 AWwBiwG0ARkB9AX/HAAC9gT/AfMBCQG7AbUBtAGzAa0Bswi0AbwB9Ar/AfIBBwEJAfAB7AHrAfAB9wEU
ARQBFQEUAewB8AEZArsB9BT/ARkBuwKRAbUBvAH0Bv8cAAL2Bf8B4gMZAdwBtAGzBtwCtAG8C/8B8gEH ARUBFAHsAfABGQK7AfQU/wEZAbsCkQG1AbwB9Ab/HAAC9gX/AeIDGQHcAbQBswbcArQBvAv/AfIBBwEJ
AQkBGQH3AZEBGQHwAfcB6wGRAQcCGQG7AQkB9BX/AfQB8gHzAvQH/xwAAvYG/wP0ARkBuwG6AbsBtQO7 ARkB9wGRARkB8AH3AesBkQEHAhkBuwEJAfQV/wH0AfIB8wL0B/8cAAL2Bv8D9AEZAbsBugG7AbUDuwO1
A7UB8QP2CP8B8gEHAQkCGQEJAhkB8AG8AQkB8gIZAQkBvAH0If8cAAL2CP8C9AEZArwBBwK8AwkB8AHz AfED9gj/AfIBBwEJAhkBCQIZAfABvAEJAfICGQEJAbwB9CH/HAAC9gj/AvQBGQK8AQcCvAMJAfAB8wP2
A/YI/wHyAe8DuwIHAbsEBwEJAbsB9wHvAfMh/xwAAfYG/wP2Av8B9AHzBfQC8wL/AvYD/wH2Bf8B8wEH CP8B8gHvA7sCBwG7BAcBCQG7AfcB7wHzIf8cAAH2Bv8D9gL/AfQB8wX0AvMC/wL2A/8B9gX/AfMBBwH3
AfcDtQG7AbUCuwHvAbUB7wK1AQcB8yH/HAAH/wT2A/8D9gb/AvYD/wH2Bf8B9AHxAbwB8AO8AQkCGQHw A7UBuwG1ArsB7wG1Ae8CtQEHAfMh/xwAB/8E9gP/A/YG/wL2A/8B9gX/AfQB8QG8AfADvAEJAhkB8AG8
AbwBGQG8AfAB8xf/AvYJ/xwAB/8E9gT/A/YF/wL2Cv8B9ALzBvQC8wP0GP8B9gr/HAAH/wT2Bf8C9gX/ ARkBvAHwAfMX/wL2Cf8cAAf/BPYE/wP2Bf8C9gr/AfQC8wb0AvMD9Bj/AfYK/xwAB/8E9gX/AvYF/wH2
AfYN/wH0Cf8B9CT/HAAH/wP2B/8C9gT/AfY8/xwAB/8E9gf/AfZB/xwAAUIBTQE+BwABPgMAASgDAAFw Df8B9An/AfQk/xwAB/8D9gf/AvYE/wH2PP8cAAf/BPYH/wH2Qf8cAAFCAU0BPgcAAT4DAAEoAwABcAMA
AwABHAMAAQEBAAEBBQABwAEBFgAD//8AwgAL ARwDAAEBAQABAQUAAcABARYAA///AMIACw==
</value> </value>
</data> </data>
<metadata name="dataGridViewTextBoxColumn31.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="dataGridViewTextBoxColumn31.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
@ -225,6 +255,21 @@
<metadata name="dataGridViewCheckBoxColumn2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="dataGridViewCheckBoxColumn2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
<metadata name="dataGridViewTextBoxColumn31.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn32.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="loadfromLibrary.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="loadFromComponentFile.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewCheckBoxColumn2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="deleteRoleClassesButton.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="deleteRoleClassesButton.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 80</value> <value>17, 80</value>
</metadata> </metadata>
@ -262,8 +307,38 @@
<metadata name="dataGridViewTextBoxColumn22.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="dataGridViewTextBoxColumn22.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
<metadata name="toolStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="dataGridViewTextBoxColumn17.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>1330, 103</value> <value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn18.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn19.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn20.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn21.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn22.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="SerialNumber.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="SelectedClassorInterface.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="libraryFile.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="componentFile.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewCheckBoxColumn1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata> </metadata>
<metadata name="SerialNumber.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="SerialNumber.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
@ -298,6 +373,18 @@
TgDQASA1MVpwzwAAAABJRU5ErkJggg== TgDQASA1MVpwzwAAAABJRU5ErkJggg==
</value> </value>
</data> </data>
<metadata name="toolStrip19.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1179, 60</value>
</metadata>
<metadata name="ElementName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="FilePath.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Add.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ElementName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="ElementName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
@ -328,6 +415,9 @@
<metadata name="toolStrip13.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="toolStrip13.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>729, 60</value> <value>729, 60</value>
</metadata> </metadata>
<metadata name="toolStrip13.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>729, 60</value>
</metadata>
<data name="addRole.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="addRole.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@ -336,6 +426,12 @@
RgtnViTyCJEC4UCoEdfIj94AAAAASUVORK5CYII= RgtnViTyCJEC4UCoEdfIj94AAAAASUVORK5CYII=
</value> </value>
</data> </data>
<metadata name="toolStrip7.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1311, 60</value>
</metadata>
<metadata name="toolStrip9.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1435, 60</value>
</metadata>
<metadata name="imageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="imageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>149, 103</value> <value>149, 103</value>
</metadata> </metadata>
@ -343,64 +439,64 @@
<value> <value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABC ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABA
DQAAAk1TRnQBSQFMAgEBAwEAAfgBAwH4AQMBHAEAARwBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo DQAAAk1TRnQBSQFMAgEBAwIAAQQBAAEEARwBAAEcAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
AwABcAMAARwDAAEBAQABCAUAAUABDBgAAYACAAGAAwACgAEAAYADAAGAAQABgAEAAoACAAPAAQABwAHc AXADAAEcAwABAQEAAQgFAAFAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AcABAAHwAcoBpgEAATMFAAEzAQABMwEAATMBAAIzAgADFgEAAxwBAAMiAQADKQEAA1UBAANNAQADQgEA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AzkBAAGAAXwB/wEAAlAB/wEAAZMBAAHWAQAB/wHsAcwBAAHGAdYB7wEAAdYC5wEAAZABqQGtAgAB/wEz AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
AwABZgMAAZkDAAHMAgABMwMAAjMCAAEzAWYCAAEzAZkCAAEzAcwCAAEzAf8CAAFmAwABZgEzAgACZgIA AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
AWYBmQIAAWYBzAIAAWYB/wIAAZkDAAGZATMCAAGZAWYCAAKZAgABmQHMAgABmQH/AgABzAMAAcwBMwIA AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
AcwBZgIAAcwBmQIAAswCAAHMAf8CAAH/AWYCAAH/AZkCAAH/AcwBAAEzAf8CAAH/AQABMwEAATMBAAFm AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
AQABMwEAAZkBAAEzAQABzAEAATMBAAH/AQAB/wEzAgADMwEAAjMBZgEAAjMBmQEAAjMBzAEAAjMB/wEA ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
ATMBZgIAATMBZgEzAQABMwJmAQABMwFmAZkBAAEzAWYBzAEAATMBZgH/AQABMwGZAgABMwGZATMBAAEz AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
AZkBZgEAATMCmQEAATMBmQHMAQABMwGZAf8BAAEzAcwCAAEzAcwBMwEAATMBzAFmAQABMwHMAZkBAAEz AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
AswBAAEzAcwB/wEAATMB/wEzAQABMwH/AWYBAAEzAf8BmQEAATMB/wHMAQABMwL/AQABZgMAAWYBAAEz AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
AQABZgEAAWYBAAFmAQABmQEAAWYBAAHMAQABZgEAAf8BAAFmATMCAAFmAjMBAAFmATMBZgEAAWYBMwGZ AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
AQABZgEzAcwBAAFmATMB/wEAAmYCAAJmATMBAANmAQACZgGZAQACZgHMAQABZgGZAgABZgGZATMBAAFm AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
AZkBZgEAAWYCmQEAAWYBmQHMAQABZgGZAf8BAAFmAcwCAAFmAcwBMwEAAWYBzAGZAQABZgLMAQABZgHM AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
Af8BAAFmAf8CAAFmAf8BMwEAAWYB/wGZAQABZgH/AcwBAAHMAQAB/wEAAf8BAAHMAQACmQIAAZkBMwGZ AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
AQABmQEAAZkBAAGZAQABzAEAAZkDAAGZAjMBAAGZAQABZgEAAZkBMwHMAQABmQEAAf8BAAGZAWYCAAGZ AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
AWYBMwEAAZkBMwFmAQABmQFmAZkBAAGZAWYBzAEAAZkBMwH/AQACmQEzAQACmQFmAQADmQEAApkBzAEA ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
ApkB/wEAAZkBzAIAAZkBzAEzAQABZgHMAWYBAAGZAcwBmQEAAZkCzAEAAZkBzAH/AQABmQH/AgABmQH/ Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
ATMBAAGZAcwBZgEAAZkB/wGZAQABmQH/AcwBAAGZAv8BAAHMAwABmQEAATMBAAHMAQABZgEAAcwBAAGZ AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
AQABzAEAAcwBAAGZATMCAAHMAjMBAAHMATMBZgEAAcwBMwGZAQABzAEzAcwBAAHMATMB/wEAAcwBZgIA AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
AcwBZgEzAQABmQJmAQABzAFmAZkBAAHMAWYBzAEAAZkBZgH/AQABzAGZAgABzAGZATMBAAHMAZkBZgEA AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
AcwCmQEAAcwBmQHMAQABzAGZAf8BAALMAgACzAEzAQACzAFmAQACzAGZAQADzAEAAswB/wEAAcwB/wIA ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
AcwB/wEzAQABmQH/AWYBAAHMAf8BmQEAAcwB/wHMAQABzAL/AQABzAEAATMBAAH/AQABZgEAAf8BAAGZ Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
AQABzAEzAgAB/wIzAQAB/wEzAWYBAAH/ATMBmQEAAf8BMwHMAQAB/wEzAf8BAAH/AWYCAAH/AWYBMwEA AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
AcwCZgEAAf8BZgGZAQAB/wFmAcwBAAHMAWYB/wEAAf8BmQIAAf8BmQEzAQAB/wGZAWYBAAH/ApkBAAH/ AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
AZkBzAEAAf8BmQH/AQAB/wHMAgAB/wHMATMBAAH/AcwBZgEAAf8BzAGZAQAB/wLMAQAB/wHMAf8BAAL/ AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
ATMBAAHMAf8BZgEAAv8BmQEAAv8BzAEAAmYB/wEAAWYB/wFmAQABZgL/AQAB/wJmAQAB/wFmAf8BAAL/ AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AWYBAAEhAQABpQEAA18BAAN3AQADhgEAA5YBAAPLAQADsgEAA9cBAAPdAQAD4wEAA+oBAAPxAQAD+AEA AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfAB+wH/AQABpAKgAQADgAMAAf8CAAH/AwAC/wEAAf8DAAH/AQAB/wEAAv8CAAP/AQAc9BP2CP8B9Bv/ AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wEAHPQT9gj/AfQb/wH0
AfQcAAT2A/8N9Aj/BPYX/wH2HP8cAAP2A/8B9AnzARkD8yP/AfYc/xwAAf8B9gP/AfQOCQEZAfQF/wH2 HAAE9gP/DfQI/wT2F/8B9hz/HAAD9gP/AfQJ8wEZA/Mj/wH2HP8cAAH/AfYD/wH0DgkBGQH0Bf8B9hv/
G/8B9hz/HAAE/wH0AfIBuw20AQkB9AX/AfYB/wH2Nv8cAAX/AfEBtAyLAZEBCQH0BP8B9AEaBfYL/wH2 AfYc/xwABP8B9AHyAbsNtAEJAfQF/wH2Af8B9jb/HAAF/wHxAbQMiwGRAQkB9AT/AfQBGgX2C/8B9gr/
Cv8B9hz/HAAD/wL2ARkBtAGtCrMBrQG0AbwE/wH2ARsBkwX2Av8B9gb/A/YK/wH2HP8cAAP/AvYBGQG0 AfYc/xwAA/8C9gEZAbQBrQqzAa0BtAG8BP8B9gEbAZMF9gL/AfYG/wP2Cv8B9hz/HAAD/wL2ARkBtAGt
Aa0BtAK6AbQBuwEJAtsBCQHbAbMBtAG8BP8B9gEbAZoB9gH/A/YB9AHyA/EB8gEZAfIC8QPyBPEB8yH/ AbQCugG0AbsBCQLbAQkB2wGzAbQBvAT/AfYBGwGaAfYB/wP2AfQB8gPxAfIBGQHyAvED8gTxAfMh/xwA
HAAD/wL2ARkBtAGtAdsBugG7AbQCCQHcAdsB3AG6ArMBvAX/AfQBGgT/AfQB3QK1AgcCtQG7ArUBuwG1 A/8C9gEZAbQBrQHbAboBuwG0AgkB3AHbAdwBugKzAbwF/wH0ARoE/wH0Ad0CtQIHArUBuwK1AbsBtQHv
Ae8BuwG1Au8B8AH0IP8cAAT/AfYBGQG0Aa0C3AG7AZEBGQGRAbQB2wHcAbMBrAGzAbwF/wL2BP8B9AEJ AbsBtQLvAfAB9CD/HAAE/wH2ARkBtAGtAtwBuwGRARkBkQG0AdsB3AGzAawBswG8Bf8C9gT/AfQBCQG1
AbUBCQIZAt0BGQLdARkBCQHwARkB3QEJAfcBvAH0FP8B9AIZAfQI/xwABf8BGQG0Aa0B3AEZAQkBtAEZ AQkCGQLdARkC3QEZAQkB8AEZAd0BCQH3AbwB9BT/AfQCGQH0CP8cAAX/ARkBtAGtAdwBGQEJAbQBGQKL
AosBtAHcAbMBrQG0AbwF/wP2A/8B9AEHAfcC8gHwARkB8gHwAfEC8wHxAbwBCQEZAQkB9wEHAfQT/wEZ AbQB3AGzAa0BtAG8Bf8D9gP/AfQBBwH3AvIB8AEZAfIB8AHxAvMB8QG8AQkBGQEJAfcBBwH0E/8BGQG1
AbUCkQG7AfAB8wX/AfYcAAX/ARkBtAGtAdwCCQG0ARkBkQGzAdsB3AGzAawBtAG8B/8B9gH/AfYC/wEH ApEBuwHwAfMF/wH2HAAF/wEZAbQBrQHcAgkBtAEZAZEBswHbAdwBswGsAbQBvAf/AfYB/wH2Av8BBwH3
AfcB8AH3AewB9wHvAesB7AHwAbwB7AEUAeoBuwEJAbsBvA3/AfQB8gHzAfQC/wH0AbUBiwNsAbUB8QH0 AfAB9wHsAfcB7wHrAewB8AG8AewBFAHqAbsBCQG7AbwN/wH0AfIB8wH0Av8B9AG1AYsDbAG1AfEB9AT/
BP8B9hwABf8BGQG0Aa0C3AEJAbQBGQG0AboC2wGzAawBtAG8B/8C9gL/AfQBvAG1AbsB7AEUAesBEgEQ AfYcAAX/ARkBtAGtAtwBCQG0ARkBtAG6AtsBswGsAbQBvAf/AvYC/wH0AbwBtQG7AewBFAHrARIBEAHs
AewB8QHtARABEQHsAQkBGQG7AQcN/wHyAe8BBwHyAvQBGQGLAWwBiwGRAosB7wHyBP8B9hwABf8BGQG0 AfEB7QEQAREB7AEJARkBuwEHDf8B8gHvAQcB8gL0ARkBiwFsAYsBkQKLAe8B8gT/AfYcAAX/ARkBtAGt
Aa0D3AG0ARkB3AHiAtsBswGsAbQBvAf/AvYC/wH0AQkBtQG7AewBQwEVAQ8BFAHvAfEB7AEQAZIB8gIZ A9wBtAEZAdwB4gLbAbMBrAG0AbwH/wL2Av8B9AEJAbUBuwHsAUMBFQEPARQB7wHxAewBEAGSAfICGQG7
AbsBvAH/AfYL/wHxAewBrgEJAhkBtQFsAYsBCQEZAbQBiwG0AfEE/wH2HAAF/wHyAbQBrQG6AdsBugGz AbwB/wH2C/8B8QHsAa4BCQIZAbUBbAGLAQkBGQG0AYsBtAHxBP8B9hwABf8B8gG0Aa0BugHbAboBswG0
AbQB2wG6AbMB2wGzAawBswEJAfQG/wH2A/8B9AEHAe8BvAHsAQ8CDgFDAe8B8AHsAREB9wHyAfQBGQH3 AdsBugGzAdsBswGsAbMBCQH0Bv8B9gP/AfQBBwHvAbwB7AEPAg4BQwHvAfAB7AERAfcB8gH0ARkB9wEH
AQcN/wHxAewBbAGuAZECrgFmAbQCGQG7AZABkQHwBP8B9hwABf8B8gG0AYsBswG0AbMBrQWzAa0BrAGz Df8B8QHsAWwBrgGRAq4BZgG0AhkBuwGQAZEB8AT/AfYcAAX/AfIBtAGLAbMBtAGzAa0FswGtAawBswEJ
AQkB9AX/AvYD/wH0AQcBuwG8AesBFQJtARAB7AEHAesBEQHsAfEB8wEJAfcBvAL2C/8B8QLsA7sBtAFs AfQF/wL2A/8B9AEHAbsBvAHrARUCbQEQAewBBwHrAREB7AHxAfMBCQH3AbwC9gv/AfEC7AO7AbQBbAGL
AYsCCQG0AYsBtAHxBP8B9hwABf8B8gG0BYsBrQGLAa0DrAGtAbQBCQH0BP8C9gT/AfQBCQG1AQkBkQEV AgkBtAGLAbQB8QT/AfYcAAX/AfIBtAWLAa0BiwGtA6wBrQG0AQkB9AT/AvYE/wH0AQkBtQEJAZEBFQIT
AhMBQwH3AfMBkgFDARQB7AG7AQkB9wEHDf8B8gHvAQcBGQLiARkCiwG0AZECkAG7AfME/wH2HAAF/wHz AUMB9wHzAZIBQwEUAewBuwEJAfcBBw3/AfIB7wEHARkC4gEZAosBtAGRApABuwHzBP8B9hwABf8B8wIJ
AgkBuwK6AYsBtAG6A9sCugG0AQkB9AT/AvYD/wL0AQkBuwEJAbUBbQHqAW0B7QHwAfQBvAHsAW0B6wG7 AbsCugGLAbQBugPbAroBtAEJAfQE/wL2A/8C9AEJAbsBCQG1AW0B6gFtAe0B8AH0AbwB7AFtAesBuwEJ
AQkB9wEHDf8B9AHyAfME9AG0AYsBZgFsAYsBtAEZAfQF/xwABv8B4gMZAbsBkQG0AbsE2wG6AbQBCQH0 AfcBBw3/AfQB8gHzBPQBtAGLAWYBbAGLAbQBGQH0Bf8cAAb/AeIDGQG7AZEBtAG7BNsBugG0AQkB9AT/
BP8C9gT/AfQCuwEZAfICvAHwAfEB8wH0AfMB8AK8ARkBCQH3AQcU/wEZAbsCkQG1AbwB9Ab/HAAH/wPi AvYE/wH0ArsBGQHyArwB8AHxAfMB9AHzAfACvAEZAQkB9wEHFP8BGQG7ApEBtQG8AfQG/xwAB/8D4gEZ
ARkBuwGRBrQBugHwAfYF/wH2BP8B9AG8AfcBCQjwAQkB8AG8AgkBtAEHFf8B9AHyAfMC9Af/HAAJ/wL0 AbsBkQa0AboB8AH2Bf8B9gT/AfQBvAH3AQkI8AEJAfABvAIJAbQBBxX/AfQB8gHzAvQH/xwACf8C9AHw
AfACvAEHAbsBvAEIAgkB8wL2BP8B9gT/AfQB8AHvArsG7wK7A+8CuwHwIf8cAAT/AfYG/wH0A/MBGQPz ArwBBwG7AbwBCAIJAfMC9gT/AfYE/wH0AfAB7wK7Bu8CuwPvArsB8CH/HAAE/wH2Bv8B9APzARkD8wH0
AfQD9gr/AfMB8gPxAfAI8QHwAvEB9AH/AfYf/xwACf8B9gH/AfYB/wL2Bf8D9hn/AvQB/wP2Hv8cAAf/ A/YK/wHzAfID8QHwCPEB8ALxAfQB/wH2H/8cAAn/AfYB/wH2Af8C9gX/A/YZ/wL0Af8D9h7/HAAH/wj2
CPYF/wP2HP8C9hT/AvYJ/xwAB/8D9gL/AfYH/wL2HP8B9AP2E/8B9gr/HAAH/wH2Df8B9hj/AvYC/wH0 Bf8D9hz/AvYU/wL2Cf8cAAf/A/YC/wH2B/8C9hz/AfQD9hP/AfYK/xwAB/8B9g3/AfYY/wL2Av8B9AP2
A/Ye/xwAB/8B9g3/AfYE/wL2Ef8D9gL/BPYe/xwAFf8B9gT/AvYF/wP2Cf8D9gL/BPYe/xwAAUIBTQE+ Hv8cAAf/AfYN/wH2BP8C9hH/A/YC/wT2Hv8cABX/AfYE/wL2Bf8D9gn/A/YC/wT2Hv8cAAFCAU0BPgcA
BwABPgMAASgDAAFwAwABHAMAAQEBAAEBBQABwAEBFgAD//8AwgAL AT4DAAEoAwABcAMAARwDAAEBAQABAQUAAcABARYAA///AMIACw==
</value> </value>
</data> </data>
<metadata name="toolStrip7.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="toolStrip7.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
@ -417,7 +513,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC4 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC4
CQAAAk1TRnQBSQFMAgEBAgEAAfABAwHwAQMBGQEAARkBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo CQAAAk1TRnQBSQFMAgEBAgEAAfgBAwH4AQMBGQEAARkBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABZAMAARkDAAEBAQABCAUAAcQBCRgAAYACAAGAAwACgAEAAYADAAGAAQABgAEAAoACAAPAAQABwAHc AwABZAMAARkDAAEBAQABCAUAAcQBCRgAAYACAAGAAwACgAEAAYADAAGAAQABgAEAAoACAAPAAQABwAHc
AcABAAHwAcoBpgEAATMFAAEzAQABMwEAATMBAAIzAgADFgEAAxwBAAMiAQADKQEAA1UBAANNAQADQgEA AcABAAHwAcoBpgEAATMFAAEzAQABMwEAATMBAAIzAgADFgEAAxwBAAMiAQADKQEAA1UBAANNAQADQgEA
AzkBAAGAAXwB/wEAAlAB/wEAAZMBAAHWAQAB/wHsAcwBAAHGAdYB7wEAAdYC5wEAAZABqQGtAgAB/wEz AzkBAAGAAXwB/wEAAlAB/wEAAZMBAAHWAQAB/wHsAcwBAAHGAdYB7wEAAdYC5wEAAZABqQGtAgAB/wEz
@ -471,42 +567,42 @@
<value> <value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAA ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD+
CAAAAk1TRnQBSQFMAwEBAAH4AQMB+AEDARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA BwAAAk1TRnQBSQFMAwECAAEEAQABBAEQAQABEAEABP8BCQEACP8BQgFNATYBBAYAATYBBAIAASgDAAFA
AUADAAEQAwABAQEAAQgGAAEEGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA AwABEAMAAQEBAAEIBgABBBgAAYACAAGAAwACgAEAAYADAAGAAQABgAEAAoACAAPAAQABwAHcAcABAAHw
AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA AcoBpgEAATMFAAEzAQABMwEAATMBAAIzAgADFgEAAxwBAAMiAQADKQEAA1UBAANNAQADQgEAAzkBAAGA
AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm AXwB/wEAAlAB/wEAAZMBAAHWAQAB/wHsAcwBAAHGAdYB7wEAAdYC5wEAAZABqQGtAgAB/wEzAwABZgMA
AwABmQMAAcwCAAEzAwACMwIAATMBZgIAATMBmQIAATMBzAIAATMB/wIAAWYDAAFmATMCAAJmAgABZgGZ AZkDAAHMAgABMwMAAjMCAAEzAWYCAAEzAZkCAAEzAcwCAAEzAf8CAAFmAwABZgEzAgACZgIAAWYBmQIA
AgABZgHMAgABZgH/AgABmQMAAZkBMwIAAZkBZgIAApkCAAGZAcwCAAGZAf8CAAHMAwABzAEzAgABzAFm AWYBzAIAAWYB/wIAAZkDAAGZATMCAAGZAWYCAAKZAgABmQHMAgABmQH/AgABzAMAAcwBMwIAAcwBZgIA
AgABzAGZAgACzAIAAcwB/wIAAf8BZgIAAf8BmQIAAf8BzAEAATMB/wIAAf8BAAEzAQABMwEAAWYBAAEz AcwBmQIAAswCAAHMAf8CAAH/AWYCAAH/AZkCAAH/AcwBAAEzAf8CAAH/AQABMwEAATMBAAFmAQABMwEA
AQABmQEAATMBAAHMAQABMwEAAf8BAAH/ATMCAAMzAQACMwFmAQACMwGZAQACMwHMAQACMwH/AQABMwFm AZkBAAEzAQABzAEAATMBAAH/AQAB/wEzAgADMwEAAjMBZgEAAjMBmQEAAjMBzAEAAjMB/wEAATMBZgIA
AgABMwFmATMBAAEzAmYBAAEzAWYBmQEAATMBZgHMAQABMwFmAf8BAAEzAZkCAAEzAZkBMwEAATMBmQFm ATMBZgEzAQABMwJmAQABMwFmAZkBAAEzAWYBzAEAATMBZgH/AQABMwGZAgABMwGZATMBAAEzAZkBZgEA
AQABMwKZAQABMwGZAcwBAAEzAZkB/wEAATMBzAIAATMBzAEzAQABMwHMAWYBAAEzAcwBmQEAATMCzAEA ATMCmQEAATMBmQHMAQABMwGZAf8BAAEzAcwCAAEzAcwBMwEAATMBzAFmAQABMwHMAZkBAAEzAswBAAEz
ATMBzAH/AQABMwH/ATMBAAEzAf8BZgEAATMB/wGZAQABMwH/AcwBAAEzAv8BAAFmAwABZgEAATMBAAFm AcwB/wEAATMB/wEzAQABMwH/AWYBAAEzAf8BmQEAATMB/wHMAQABMwL/AQABZgMAAWYBAAEzAQABZgEA
AQABZgEAAWYBAAGZAQABZgEAAcwBAAFmAQAB/wEAAWYBMwIAAWYCMwEAAWYBMwFmAQABZgEzAZkBAAFm AWYBAAFmAQABmQEAAWYBAAHMAQABZgEAAf8BAAFmATMCAAFmAjMBAAFmATMBZgEAAWYBMwGZAQABZgEz
ATMBzAEAAWYBMwH/AQACZgIAAmYBMwEAA2YBAAJmAZkBAAJmAcwBAAFmAZkCAAFmAZkBMwEAAWYBmQFm AcwBAAFmATMB/wEAAmYCAAJmATMBAANmAQACZgGZAQACZgHMAQABZgGZAgABZgGZATMBAAFmAZkBZgEA
AQABZgKZAQABZgGZAcwBAAFmAZkB/wEAAWYBzAIAAWYBzAEzAQABZgHMAZkBAAFmAswBAAFmAcwB/wEA AWYCmQEAAWYBmQHMAQABZgGZAf8BAAFmAcwCAAFmAcwBMwEAAWYBzAGZAQABZgLMAQABZgHMAf8BAAFm
AWYB/wIAAWYB/wEzAQABZgH/AZkBAAFmAf8BzAEAAcwBAAH/AQAB/wEAAcwBAAKZAgABmQEzAZkBAAGZ Af8CAAFmAf8BMwEAAWYB/wGZAQABZgH/AcwBAAHMAQAB/wEAAf8BAAHMAQACmQIAAZkBMwGZAQABmQEA
AQABmQEAAZkBAAHMAQABmQMAAZkCMwEAAZkBAAFmAQABmQEzAcwBAAGZAQAB/wEAAZkBZgIAAZkBZgEz AZkBAAGZAQABzAEAAZkDAAGZAjMBAAGZAQABZgEAAZkBMwHMAQABmQEAAf8BAAGZAWYCAAGZAWYBMwEA
AQABmQEzAWYBAAGZAWYBmQEAAZkBZgHMAQABmQEzAf8BAAKZATMBAAKZAWYBAAOZAQACmQHMAQACmQH/ AZkBMwFmAQABmQFmAZkBAAGZAWYBzAEAAZkBMwH/AQACmQEzAQACmQFmAQADmQEAApkBzAEAApkB/wEA
AQABmQHMAgABmQHMATMBAAFmAcwBZgEAAZkBzAGZAQABmQLMAQABmQHMAf8BAAGZAf8CAAGZAf8BMwEA AZkBzAIAAZkBzAEzAQABZgHMAWYBAAGZAcwBmQEAAZkCzAEAAZkBzAH/AQABmQH/AgABmQH/ATMBAAGZ
AZkBzAFmAQABmQH/AZkBAAGZAf8BzAEAAZkC/wEAAcwDAAGZAQABMwEAAcwBAAFmAQABzAEAAZkBAAHM AcwBZgEAAZkB/wGZAQABmQH/AcwBAAGZAv8BAAHMAwABmQEAATMBAAHMAQABZgEAAcwBAAGZAQABzAEA
AQABzAEAAZkBMwIAAcwCMwEAAcwBMwFmAQABzAEzAZkBAAHMATMBzAEAAcwBMwH/AQABzAFmAgABzAFm AcwBAAGZATMCAAHMAjMBAAHMATMBZgEAAcwBMwGZAQABzAEzAcwBAAHMATMB/wEAAcwBZgIAAcwBZgEz
ATMBAAGZAmYBAAHMAWYBmQEAAcwBZgHMAQABmQFmAf8BAAHMAZkCAAHMAZkBMwEAAcwBmQFmAQABzAKZ AQABmQJmAQABzAFmAZkBAAHMAWYBzAEAAZkBZgH/AQABzAGZAgABzAGZATMBAAHMAZkBZgEAAcwCmQEA
AQABzAGZAcwBAAHMAZkB/wEAAswCAALMATMBAALMAWYBAALMAZkBAAPMAQACzAH/AQABzAH/AgABzAH/ AcwBmQHMAQABzAGZAf8BAALMAgACzAEzAQACzAFmAQACzAGZAQADzAEAAswB/wEAAcwB/wIAAcwB/wEz
ATMBAAGZAf8BZgEAAcwB/wGZAQABzAH/AcwBAAHMAv8BAAHMAQABMwEAAf8BAAFmAQAB/wEAAZkBAAHM AQABmQH/AWYBAAHMAf8BmQEAAcwB/wHMAQABzAL/AQABzAEAATMBAAH/AQABZgEAAf8BAAGZAQABzAEz
ATMCAAH/AjMBAAH/ATMBZgEAAf8BMwGZAQAB/wEzAcwBAAH/ATMB/wEAAf8BZgIAAf8BZgEzAQABzAJm AgAB/wIzAQAB/wEzAWYBAAH/ATMBmQEAAf8BMwHMAQAB/wEzAf8BAAH/AWYCAAH/AWYBMwEAAcwCZgEA
AQAB/wFmAZkBAAH/AWYBzAEAAcwBZgH/AQAB/wGZAgAB/wGZATMBAAH/AZkBZgEAAf8CmQEAAf8BmQHM Af8BZgGZAQAB/wFmAcwBAAHMAWYB/wEAAf8BmQIAAf8BmQEzAQAB/wGZAWYBAAH/ApkBAAH/AZkBzAEA
AQAB/wGZAf8BAAH/AcwCAAH/AcwBMwEAAf8BzAFmAQAB/wHMAZkBAAH/AswBAAH/AcwB/wEAAv8BMwEA Af8BmQH/AQAB/wHMAgAB/wHMATMBAAH/AcwBZgEAAf8BzAGZAQAB/wLMAQAB/wHMAf8BAAL/ATMBAAHM
AcwB/wFmAQAC/wGZAQAC/wHMAQACZgH/AQABZgH/AWYBAAFmAv8BAAH/AmYBAAH/AWYB/wEAAv8BZgEA Af8BZgEAAv8BmQEAAv8BzAEAAmYB/wEAAWYB/wFmAQABZgL/AQAB/wJmAQAB/wFmAf8BAAL/AWYBAAEh
ASEBAAGlAQADXwEAA3cBAAOGAQADlgEAA8sBAAOyAQAD1wEAA90BAAPjAQAD6gEAA/EBAAP4AQAB8AH7 AQABpQEAA18BAAN3AQADhgEAA5YBAAPLAQADsgEAA9cBAAPdAQAD4wEAA+oBAAPxAQAD+AEAAfAB+wH/
Af8BAAGkAqABAAOAAwAB/wIAAf8DAAL/AQAB/wMAAf8BAAH/AQAC/wIAA/8BAAL2B/8B9Ab/MAAB9gL/ AQABpAKgAQADgAMAAf8CAAH/AwAC/wEAAf8DAAH/AQAB/wEAAv8CAAP/AQAC9gf/AfQG/zAAAfYC/wH0
AfQIGQT/MAAD/wEZB7MBtAP/AfYwAAL/AfYBCQGsAbMBrQGLA60BswP/ARowAAL/AfYBCQGsAbQBugEJ CBkE/zAAA/8BGQezAbQD/wH2MAAC/wH2AQkBrAGzAa0BiwOtAbMD/wEaMAAC/wH2AQkBrAG0AboBCQLc
AtwBtAGzAf8B9gH/ARswAAP/AQkBrAEJAbQB8AG0AdwBrQGzA/8B9jAAA/8BCQGtAdwBugHwAbMB3AGt AbQBswH/AfYB/wEbMAAD/wEJAawBCQG0AfABtAHcAa0BswP/AfYwAAP/AQkBrQHcAboB8AGzAdwBrQGz
AbME/zAAA/8BCQGtAdwBugEZAeIB2wGsAbME/zAAA/8BCQGtAbQEswGsAbME/zAAA/8BGQK0AbMBtAK6 BP8wAAP/AQkBrQHcAboBGQHiAdsBrAGzBP8wAAP/AQkBrQG0BLMBrAGzBP8wAAP/ARkCtAGzAbQCugGz
AbMBtAP/AfYwAAT/AeIBGQG6A7QBugG0A/8B9jAABv8B8gEHAbsDCQH2A/8wAAX/AfYG/wH2A/8wAAT/ AbQD/wH2MAAE/wHiARkBugO0AboBtAP/AfYwAAb/AfIBBwG7AwkB9gP/MAAF/wH2Bv8B9gP/MAAE/wP2
A/YB/wH2A/8B9gP/MAAE/wH2B/8B9gP/MAAP/wH2MAABQgFNAT4HAAE+AwABKAMAAUADAAEQAwABAQEA Af8B9gP/AfYD/zAABP8B9gf/AfYD/zAAD/8B9jAAAUIBTQE+BwABPgMAASgDAAFAAwABEAMAAQEBAAEB
AQEFAAGAFwAD/4EACw== BQABgBcAA/+BAAs=
</value> </value>
</data> </data>
<metadata name="contextMenuStripforInterfaceClassLib.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="contextMenuStripforInterfaceClassLib.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

View File

@ -28,12 +28,9 @@ namespace Aml.Editor.Plugin
/// <summary> /// <summary>
/// Init the controller and reload all amlx devices /// Init the controller and reload all amlx devices
/// </summary> /// </summary>
/// <param name="modellingWizard"></param> public MWController()
public MWController(ModellingWizard modellingWizard)
{ {
this.modellingWizard = modellingWizard;
mWData = new MWData(this); mWData = new MWData(this);
} }
/// <summary> /// <summary>
@ -101,6 +98,7 @@ namespace Aml.Editor.Plugin
/// <param name="targetGUI">the GUI Type to display</param> /// <param name="targetGUI">the GUI Type to display</param>
public void ChangeGui(MWGUIType targetGUI) public void ChangeGui(MWGUIType targetGUI)
{ {
// TODO modellingWizard is null
switch (targetGUI) switch (targetGUI)
{ {

View File

@ -28,7 +28,7 @@ namespace Aml.Editor.Plugin
public ModellingWizard() public ModellingWizard()
{ {
mWController = new MWController(this); mWController = new MWController();
// Defines the Command list, which will contain user commands, which a user can select // Defines the Command list, which will contain user commands, which a user can select
// via the PlugIn Menu. // via the PlugIn Menu.

View File

@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Dieser Code wurde von einem Tool generiert.
// Laufzeitversion:4.0.30319.42000
//
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
// der Code erneut generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Aml.Editor.Plugin.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}

View File

@ -0,0 +1,6 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
</SettingsFile>

214
SOURCE/Plugin/README.md Normal file
View File

@ -0,0 +1,214 @@
# Gsd2Aml.Lib
Welcome to the Gsd2Aml.Lib! This library was developed as a student project by (in alphabetical order)
1. Nico Dietz
2. Steffen Gerdes
3. Constantin Ruhdorfer
4. Jonas Komarek
5. Phuc Quang Vu
6. Michael Weidmann
at [Cooperate State University Stuttgart](https://www.dhbw-stuttgart.de/home/).
This project is distributed via:
1. [GitHub](https://github.com/TINF17C/GSD2AML-Converter)
2. [NuGet](https://www.nuget.org/packages/Gsd2Aml.Lib)
We can be found as a [GitHub Team](https://github.com/orgs/TINF17C/teams/gsd2aml).
## About this project
This library converts a Profinet (PN-)GSD file to AutomationML.
The library can either
1. return a string containing the AutomatonML content.
2. convert the GSD file to an .aml file and package that, including all its dependencies, into an .amlx package. This process uses the [AML.Engine](https://www.nuget.org/packages/Aml.Engine).
## Contributing to this project
Contributions are always welcome!
If you want to contribute feel free to fork this repo and later perform a pull request.
## File structure
The relevant files and folders are listed here.
### Logging/
Contains the logging service.
### Models/
Contains the classes representing AML and GSD.
Also contains the used XSD files.
### Properties/
Contains the assembly info.
### Compressor.cs
Contains all the logic that is required to:
1. Create a temporary folder
2. Find files and copy them to this folder
3. Uses the AML.Engine to build the .amlx package
### Converter.cs
Contains all the logic that traverses the GSD file and uses the rulesset file to translate the GSD file to AML.
### Util.cs
Contains the utility functionality.
### gsd2aml.xml
This is the rulesset file.
Please have a look below.
## GSD2AML Rules
The rules for conversion are written in XML and are listed here.
### Tables of Content
1. [Structure](#structure)
2. [References](#references)
3. [Reference Types](#reference_types)
4. [GUID](#guid)
5. [The Rule Element](#rule_element)
### <a name="structure"></a>Structure
This section will explain the structure of a gsd2aml rulesset file.
The gsd2aml file will consist of one, and only one, element, the `<Body>`. Each seperate rule shall be direct child of this element.
A rule must start with the GSD element, which is to be replaced. It must have a child `<Replacement>` describing the corresponding XML-structure of the AML replacement.
```xml
<ProfileBody>
<Replacement>
<SystemUnitClassLib Name="ComponentSystemUnitClassLib">
<Version>1.0.0</Version>
</SystemUnitClassLib>
</Replacement>
</ProfileBody>
```
Additionally a rule can also have any number of `<Reference>` childs. References will be explained in the following section.
### <a name="references"></a>References
#### <a name="references-normal_references"></a>Normal Reference
It may not be possible to replace a GSD element with a static replacements. Let's look at this example:
```xml
<SubslotItem SubslotNumber="32768" TextId="TOK_Subslot_8000" />
```
This element has a attribute "SubslotNumber". In order to transform this element to AML the attribute "SubslotNumber" should be converted into an `Attribute`, `<Value>` pair.
```xml
<ExternalInterface Name="" ID="">
<Attribute Name="SubslotNumber" AttributeDataType="xs:integer">
<Value></Value>
</Attribute>
</ExternalInterface>
```
Unfortunately the converter itself cannot figure out where this information is located. A referece, signaled by a `$` followed by an identifier like `$1`, is necessary.
The conversion rule for "SubslotItem" may look like this:
```xml
<SubslotItem>
<Replacement>
<ExternalInterface Name="" ID="">
<Attribute Name="SubslotNumber" AttriubteDataType="xs:integer">
<Value>$1<Value>
</Attribute>
</ExternalInterface>
</Replacement>
<Reference Ref="$1">
<ISO15745Profile.ProfileBody.ApplicationProcess.DeviceAccessPointList.DeviceAccessPointItem.SlotList.SlotItem SubslotNumber="" />
</Reference>
</SubslotItem>
```
Every reference within the replacement element shall have a corresponding reference element. This element must have the attribute `Ref=""` with the identifier. There are different [types](#reference_types) of references. These will be explained later. The content of the reference shall be a the location of the referenced value. A reference only has one child. The child is the full qualified path to the referenced element in a point sepearted list without whitespace.
The element shall have one attribute, which shall be the same attribute that is being referenced. If the attribute exists, its value will be the return value.
#### <a name="references-true_references"></a>True Reference
You may have noticed that the example above never resolved the GSD attribute TextId of the "SubslotItem" element. This is because the TextId attribute in itself is also a reference within the GSD file and as such must be handled differently. To differentiate this case from a normal reference, it shall be named "true reference".
A true reference within an GSD file will always reference another element within a "List", that has the attribute `ID` or other identifying attribute like `TextId`.
These references must be handled differently by the GSD2AML Converter. The converter will know of the different "reference lists" (such as `ExternalTextList`) and their location within the GSD. The converter merely needs to know which list to look in and the corresponding id. Therefore each list will receive its own "type" which can be used as an attribute of the reference element. The other way around, this means that the converter __cannot__ handle true references of lists that the converter does not know.
Consider the example from above. `TextId=TOK_Subslot_8000` signifies that this attribute references an element within a text list with the id `TOK_Subslot_8000`.
```xml
<SubslotItem>
<Replacement>
<ExternalInterface Name="$1" ID="GUID" RefBaseClassPath="physicalEndPoint/SubSlot">
<Attribute Name="SubslotNumber" AttributeDataType="xs:integer">
<Value>$2</Value>
</Attribute>
</ExternalInterface>
</Replacement>
<Reference Ref="$1" Type="TextRef">
<ISO15745Profile.ProfileBody.ApplicationProcess.DeviceAccessPointList.DeviceAccessPointItem.SlotList.SlotItem TextId="" />
</Reference>
<Reference Ref="$2">
<ISO15745Profile.ProfileBody.ApplicationProcess.DeviceAccessPointList.DeviceAccessPointItem.SlotList.SlotItem SubslotNumber="" />
</Reference>
</SubslotItem>
```
The type `TextRef` will tell the converter to search under `ExternalTextList/PrimaryLanguage`. The content of a true reference is the location of the corresponding id.
Other languages will be ignored.
### <a name="reference_types"></a>Reference Types
This section will list the different reference types and their uses.
#### <a name="reference_types-Normal-Ref></a>Normal Ref
No type is specified. The refernced value will be used.
#### <a name="reference_types-TextRef"></a>TextRef
A `TextRef` is a true reference. Within the GSD it will reference an element within `<ExternalTextList>`. As the name suggest it will only return a single text. It will only over use the `<PrimaryLanguage>`. The location of the reference __id__ used in the GSD will be given as content of the reference.
#### <a name="reference_types-graphicref"></a>GraphicRef
A `GraphicRef` is a true reference. Within the GSD it will reference an element within `GraphicsList`. The location of the reference __id__ used in the GSD will be given as content of the reference.
#### <a name="special_reference_types"></a>RelGsdFilePath
`RelGsdFilePath` returns a relative path to the original GSD file.
### <a name="guid"></a>GUID
Every time the converters reads the string `GUID`, it will be replaced with a real GUID.
### <a name="rule_element"></a> The Rule Element
In order to maintain modularity while also providing a way to define the structure of the result aml in terms of parent-child relationships, a `<Rule></Rule>` element is introduced.
The content of the `<Rule></Rule>` tag shall be a full a string consisting of the relative path from the parent rule element to the GSD element, which should be placed here.
That path shall a rule of its own and a child of the `<Body>` element.
Example:
```xml
<InternalElement CAEXObject.Name="LogicalInterface" CAEXObject.ID="GUID">
<SystemUnitClassType.InternalElement>
<Rule>
ProfileBody.ApplicationProcess.DeviceAccessPointList.DeviceAccessPointItem.SystemDefinedSubmoduleList.InterfaceSubmoduleItem
</Rule>
</SystemUnitClassType.InternalElement>
</InternalElement>
<ProfileBody.ApplicationProcess.DeviceAccessPointList.DeviceAccessPointItem.SystemDefinedSubmoduleList.InterfaceSubmoduleItem>
...
</ProfileBody.ApplicationProcess.DeviceAccessPointList.DeviceAccessPointItem.SystemDefinedSubmoduleList.InterfaceSubmoduleItem>
```