版本-v1.2.0 一道试用

This commit is contained in:
CPL 2023-11-08 13:52:00 +08:00
parent 2a841bbfa9
commit 8e78cdd0ba
22 changed files with 3117 additions and 2734 deletions

View File

@ -189,7 +189,7 @@ namespace ProductionControl.Device
{ {
if (taskList.Count < 1 || _onnxSession == null) if (taskList.Count < 1 || _onnxSession == null)
{ {
Thread.Sleep(0); Thread.Sleep(5);
continue; continue;
} }
@ -223,6 +223,7 @@ namespace ProductionControl.Device
lock (taskOperationList) lock (taskOperationList)
taskOperationList.Add(task); taskOperationList.Add(task);
} }
Thread.Sleep(5);
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -240,7 +241,7 @@ namespace ProductionControl.Device
{ {
if (taskOperationList.Count < 1) if (taskOperationList.Count < 1)
{ {
Thread.Sleep(0); Thread.Sleep(5);
continue; continue;
} }
@ -295,6 +296,7 @@ namespace ProductionControl.Device
callback(task); callback(task);
} }
} }
Thread.Sleep(5);
} }
catch (Exception ex) catch (Exception ex)
{ {

View File

@ -384,7 +384,7 @@ namespace ProductionControl.Device
if ((!isContinuousMode && this.scanNum < 1) || if ((!isContinuousMode && this.scanNum < 1) ||
(isContinuousMode && (this.previewHwnd == IntPtr.Zero || !isOpenWin))) (isContinuousMode && (this.previewHwnd == IntPtr.Zero || !isOpenWin)))
{ {
Thread.Sleep(500); Thread.Sleep(50);
continue; continue;
} }

View File

@ -260,6 +260,7 @@ namespace ProductionControl.Device
callback(task); callback(task);
step = 102; step = 102;
} }
Thread.Sleep(5);
} }
catch (Exception ex) catch (Exception ex)
{ {

View File

@ -6,6 +6,7 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using OpenCvSharp; using OpenCvSharp;
using ProductionControl.Device; using ProductionControl.Device;
using ProductionControl.UI;
using ProductionControl.Utils; using ProductionControl.Utils;
using SqlSugar; using SqlSugar;
using System; using System;
@ -815,7 +816,7 @@ namespace ProductionControl
warning(WarningEnum.Low);//终止 warning(WarningEnum.Low);//终止
return stepIndex; return stepIndex;
} }
if (!endEvent.WaitOne(5000)) if (!endEvent.WaitOne(10000))
{ {
devContainer.devScannerGentl.ScanEvent = null; devContainer.devScannerGentl.ScanEvent = null;
AddTextEvent($"{stepIndex + 1}-{processName}", $"相机采集照片超时!", WarningEnum.Low); AddTextEvent($"{stepIndex + 1}-{processName}", $"相机采集照片超时!", WarningEnum.Low);
@ -875,7 +876,7 @@ namespace ProductionControl
return stepIndex; return stepIndex;
} }
if (!endEventCC.WaitOne(5000)) if (!endEventCC.WaitOne(10000))
{ {
devContainer.devScannerCC.ScanEventPath = null; devContainer.devScannerCC.ScanEventPath = null;
AddTextEvent($"{stepIndex + 1}-{processName}", $"相机采集照片超时!", WarningEnum.Low); AddTextEvent($"{stepIndex + 1}-{processName}", $"相机采集照片超时!", WarningEnum.Low);
@ -909,10 +910,36 @@ namespace ProductionControl
//2023-10-27 //2023-10-27
bool useMap = false;
List<double> getPosList = new List<double>(); List<double> getPosList = new List<double>();
try try
{ {
getPosList = processParam.Value<JArray>("GetPointList").ToObject<List<double>>(); useMap = processParam.Value<bool>("UseMapPoints");
if (useMap) {
var list = model.GetPointList.Split(',');
List<double> dList = new List<double>();
if (list.Length < 28)
{
for (int i = 0; i < 28; i++)
{
dList.Add(0);
}
}
else
{
for (int i = 0; i < list.Length; i++)
{
dList.Add(double.Parse(list[i]));
}
}
getPosList = dList;
}
else
{
for (int i = 0; i < 28; i++)
getPosList.Add(0);
}
//getPosList = processParam.Value<JArray>("GetPointList").ToObject<List<double>>();
} }
catch catch
{ {
@ -941,9 +968,13 @@ namespace ProductionControl
if ((sizeIndex == 333 || sizeIndex == 777) && gbxBmpPath == "") if ((sizeIndex == 333 || sizeIndex == 777) && gbxBmpPath == "")
AddTextEvent($"{stepIndex + 1}-{processName}", $"尺寸检测index:{sizeIndex},图纸不存在!", WarningEnum.Low); AddTextEvent($"{stepIndex + 1}-{processName}", $"尺寸检测index:{sizeIndex},图纸不存在!", WarningEnum.Low);
//2023-10-27 //2023-10-27
if ((getPosList != null) && (getPosList.Count() != 28)) //if ((sizeIndex == 3333)&&(getPosList != null) && (getPosList.Count() != 28))
AddTextEvent($"{stepIndex + 1}-{processName}", $"尺寸检测index:{sizeIndex},图纸读点不存在!", WarningEnum.Low); // AddTextEvent($"{stepIndex + 1}-{processName}", $"尺寸检测index:{sizeIndex},图纸读点不存在!", WarningEnum.Low);
AddTextEvent($"{stepIndex + 1}-{processName}", $"开始图纸读点index:{sizeIndex},PT1:{getPosArray[0]},PPT2:{getPosArray[2]},PPT3:{getPosArray[4]},PPT4:{getPosArray[6]},PPT5:{getPosArray[8]}..."); if (useMap&&(sizeIndex == 3333) && (getPosArray != null) && (getPosArray.Count() == 28) && (getPosArray[0] != 0))
AddTextEvent($"{stepIndex + 1}-{processName}", $"开始图纸读点index:{sizeIndex},PT1:{getPosArray[0]},PT2:{getPosArray[2]},PT3:{getPosArray[4]},PT4:{getPosArray[6]},PT5:{getPosArray[8]}," +
$"线宽1:[{getPosArray[10]},{getPosArray[11]}],线宽2:[{getPosArray[12]},{getPosArray[13]}],线宽3:[{getPosArray[14]},{getPosArray[15]}]," +
$"线宽4:[{getPosArray[16]},{getPosArray[17]}],线宽5:[{getPosArray[18]},{getPosArray[19]}],线宽6:[{getPosArray[20]},{getPosArray[21]}]," +
$"线宽7:[{getPosArray[22]},{getPosArray[23]}],线宽8:[{getPosArray[24]},{getPosArray[25]}],线宽9:[{getPosArray[26]},{getPosArray[27]}]");
//需要偏移校正index=0时不能异步 //10,20,30...  //需要偏移校正index=0时不能异步 //10,20,30... 
endEvent = new AutoResetEvent(false); endEvent = new AutoResetEvent(false);
devContainer.libSize.add(new SizeTask() devContainer.libSize.add(new SizeTask()
@ -1549,6 +1580,9 @@ namespace ProductionControl
order.DefectCount = (int)this.gboxDefectList.Tag; order.DefectCount = (int)this.gboxDefectList.Tag;
order.Succeed = true; order.Succeed = true;
order.ModifyUserCode = order.CreateUserCode = Config.loginUser.Code; order.ModifyUserCode = order.CreateUserCode = Config.loginUser.Code;
order.Abnormalities = "";//无异常
order.RepairCode = "";//无修复人员
//如SN检测已存在先删除 //如SN检测已存在先删除
var oldSNOrder= svcOrder.GetFirst(m=> m.SN==order.SN); var oldSNOrder= svcOrder.GetFirst(m=> m.SN==order.SN);
if(oldSNOrder!=null) if(oldSNOrder!=null)
@ -2291,6 +2325,9 @@ namespace ProductionControl
} }
private void tsbtnOpenDev_Click(object sender, EventArgs e) private void tsbtnOpenDev_Click(object sender, EventArgs e)
{ {
//FrmGetPosByPic frr = new FrmGetPosByPic(new SizeLibProp());
//frr.ShowDialog();
Config.LoadAllConfig(); Config.LoadAllConfig();
//设置程序最小/大线程池 //设置程序最小/大线程池
// Get the current settings. // Get the current settings.

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,5 @@
using OpenCvSharp; using OpenCvSharp;
using ProductionControl.UI;
using ProductionControl.UIExtend; using ProductionControl.UIExtend;
using ProductionControl.Utils; using ProductionControl.Utils;
using System; using System;
@ -13,6 +14,7 @@ using System.IO;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Web.Configuration;
using System.Windows.Forms; using System.Windows.Forms;
namespace ProductionControl namespace ProductionControl
@ -22,11 +24,14 @@ namespace ProductionControl
Service.ClassesService svcClasses = new Service.ClassesService(); Service.ClassesService svcClasses = new Service.ClassesService();
Service.ProductService service = new Service.ProductService(); Service.ProductService service = new Service.ProductService();
Models.Product model = new Models.Product(); Models.Product model = new Models.Product();
string MapPath = "";
public FrmProductInfo(Models.Product m=null) public FrmProductInfo(Models.Product m=null)
{ {
InitializeComponent(); InitializeComponent();
this.dgvBatchList.AutoGenerateColumns = false; this.dgvBatchList.AutoGenerateColumns = false;
checkCustomerVer(); checkCustomerVer();
//this.cbMarkType.SelectedIndex = -1;
if (m!=null) if (m!=null)
{ {
model = m; model = m;
@ -64,12 +69,22 @@ namespace ProductionControl
this.tsbtnAddFile.Enabled = true; this.tsbtnAddFile.Enabled = true;
this.tsbtnNewBatchId.Enabled = true; this.tsbtnNewBatchId.Enabled = true;
this.dgvBatchList.DataSource = new BindingSource(m.BatchHistoryList, null); this.dgvBatchList.DataSource = new BindingSource(m.BatchHistoryList, null);
//2023-11-2 mark
this.cbMarkType.SelectedIndex = m.MarkType;
this.numMarkSize.Value = (decimal)m.MarkSize;
Models.Attachment attachmentFile = model.AttachmentList.FirstOrDefault(x => x.Type == 0); Models.Attachment attachmentFile = model.AttachmentList.FirstOrDefault(x => x.Type == 0);
if (attachmentFile!=null) if (attachmentFile!=null)
{ {
this.btnOpenFile.Text = attachmentFile.Name; this.btnOpenFile.Text = attachmentFile.Name;
this.btnOpenFile.Visible = true; this.btnOpenFile.Visible = true;
//为兼容老版本,发现图纸图片地址为空,检索图片地址
if (string.IsNullOrEmpty(model.MapPath))
{
string targFilePath = Application.StartupPath + $"\\Attachment\\product\\{model.Id}\\";
targFilePath += attachmentFile.Name;
model.MapPath = targFilePath.Substring(0, targFilePath.Length - 4) + ".bmp";
}
} }
} }
@ -77,7 +92,8 @@ namespace ProductionControl
initDataView(); initDataView();
} }
private void FrmProductInfo_Load(object sender, EventArgs e) private void FrmProductInfo_Load(object sender, EventArgs e)
{ {
//this.cbMarkType.SelectedIndex = -1;
} }
private void checkCustomerVer() private void checkCustomerVer()
{ {
@ -130,7 +146,7 @@ namespace ProductionControl
cmbDefectModelFile.Items.Add(onlyName); cmbDefectModelFile.Items.Add(onlyName);
if (!string.IsNullOrWhiteSpace(model.DefectModelFile) && onlyName.ToLower()== model.DefectModelFile.ToLower()) if (!string.IsNullOrWhiteSpace(model.DefectModelFile) && onlyName.ToLower()== model.DefectModelFile.ToLower())
this.cmbDefectModelFile.SelectedItem = model.DefectModelFile; this.cmbDefectModelFile.SelectedItem = model.DefectModelFile;
} }
} }
private void btnSave_Click(object sender, EventArgs e) private void btnSave_Click(object sender, EventArgs e)
{ {
@ -151,6 +167,9 @@ namespace ProductionControl
throw new Exception("请正确填写产品目数!"); throw new Exception("请正确填写产品目数!");
if (this.cmbDefectModelFile.SelectedIndex < 0) if (this.cmbDefectModelFile.SelectedIndex < 0)
throw new Exception("请选择检测模型文件!"); throw new Exception("请选择检测模型文件!");
if (this.cbMarkType.SelectedIndex < 0)
throw new Exception("请选择Mark");
//if (szBatchId == "")// || liTargetCount < 1 //if (szBatchId == "")// || liTargetCount < 1
// throw new Exception("请填写批次号");// 和批次目标数量!"); // throw new Exception("请填写批次号");// 和批次目标数量!");
if (szHeightBaseDec != "") if (szHeightBaseDec != "")
@ -188,6 +207,13 @@ namespace ProductionControl
model.QualifiedCriterionList = new List<Models.QualifiedCriterion>(); model.QualifiedCriterionList = new List<Models.QualifiedCriterion>();
else else
model.QualifiedCriterionList.Clear(); model.QualifiedCriterionList.Clear();
if (string.IsNullOrEmpty(model.MapPath))
{
model.MapPath = "";
model.GetPointList = "";
}
foreach (DefectCountOfSizeControl defectControl in this.flpQualifiedPannel.Controls) foreach (DefectCountOfSizeControl defectControl in this.flpQualifiedPannel.Controls)
{ {
if (defectControl.Checked) if (defectControl.Checked)
@ -203,7 +229,12 @@ namespace ProductionControl
}); });
} }
} }
model.ModifyUserCode = Config.loginUser.Code; model.ModifyUserCode = Config.loginUser.Code;
//2023-11-2 mark
model.MarkType = this.cbMarkType.SelectedIndex;
model.MarkSize = (double)this.numMarkSize.Value;
bool result; bool result;
if (model.Id == 0) if (model.Id == 0)
{ {
@ -267,7 +298,9 @@ namespace ProductionControl
private void btnAddFile_Click(object sender, EventArgs e) private void btnAddFile_Click(object sender, EventArgs e)
{ {
try try
{ {
if (this.cbMarkType.SelectedIndex < 0)
throw new Exception("请选择Mark");
//.dwg /.dxf /.dws /.dwt //.dwg /.dxf /.dws /.dwt
string filePath = FileUtil.selectFile("gbx,gbr文件|*.gb?"); string filePath = FileUtil.selectFile("gbx,gbr文件|*.gb?");
if (string.IsNullOrWhiteSpace(filePath)) if (string.IsNullOrWhiteSpace(filePath))
@ -291,11 +324,38 @@ namespace ProductionControl
throw new Exception("移动文件失败!"); throw new Exception("移动文件失败!");
//后台线程转BMP与JPG //后台线程转BMP与JPG
string tempClass = this.cmbClasses.Text;
int tempIndex = this.cbMarkType.SelectedIndex;
double tempValue = (double)this.numMarkSize.Value;
Task.Run(() => Task.Run(() =>
{ {
Yolo5.Yolo_Class yolo = new Yolo5.Yolo_Class(); Yolo5.Yolo_Class yolo = new Yolo5.Yolo_Class();
string bmpPath = targFilePath.Substring(0, targFilePath.Length - 4) + ".bmp"; string bmpPath = targFilePath.Substring(0, targFilePath.Length - 4) + ".bmp";
yolo.gerber2image(targFilePath, bmpPath); //2023-11-3 mark
//yolo.gerber2image(targFilePath, bmpPath);
double[] markParam = new double[4];
if(tempClass.Contains("乳剂"))
markParam[0] = 2;
else if (tempClass.Contains("PI"))
markParam[0] = 1;
else
markParam[0] = 0;
if (tempIndex == 0)
{
//默认情况 实心圆0.5mm
markParam[1] = 2;
markParam[2] = 0.5;
markParam[3] = 1;
}
else
{
markParam[1] = tempIndex - 1;
markParam[2] = tempValue;
markParam[3] = tempIndex == 1 ? 0 : 1;
}
yolo.gerber2image(targFilePath, bmpPath, markParam);
//换背景JPG //换背景JPG
Mat mat = Cv2.ImRead(bmpPath); Mat mat = Cv2.ImRead(bmpPath);
Cv2.CvtColor(mat, mat, ColorConversionCodes.RGB2GRAY);//转灰度图 Cv2.CvtColor(mat, mat, ColorConversionCodes.RGB2GRAY);//转灰度图
@ -309,6 +369,7 @@ namespace ProductionControl
mat.Set<byte>(i, j, 255); mat.Set<byte>(i, j, 255);
} }
} }
model.MapPath = bmpPath;
//灰转彩 //灰转彩
//Cv2.CvtColor(mat, mat, ColorConversionCodes.GRAY2RGB); //Cv2.CvtColor(mat, mat, ColorConversionCodes.GRAY2RGB);
//for (int i = 0; i < mat.Height; i++) //for (int i = 0; i < mat.Height; i++)
@ -320,9 +381,10 @@ namespace ProductionControl
// } // }
//} //}
bmpPath = targFilePath.Substring(0, targFilePath.Length - 4) + ".jpg"; bmpPath = targFilePath.Substring(0, targFilePath.Length - 4) + ".jpg";
//model.MapPath = bmpPath;
OpenCvSharp.Extensions.BitmapConverter.ToBitmap(mat).Save(bmpPath, ImageFormat.Jpeg); OpenCvSharp.Extensions.BitmapConverter.ToBitmap(mat).Save(bmpPath, ImageFormat.Jpeg);
});//不能加.Start(); });//不能加.Start();
Models.Attachment attachmentFile = model.AttachmentList.FirstOrDefault(m => m.Type == 0); Models.Attachment attachmentFile = model.AttachmentList.FirstOrDefault(m => m.Type == 0);
if (attachmentFile!=null) if (attachmentFile!=null)
{ {
@ -367,6 +429,40 @@ namespace ProductionControl
string filePath = Application.StartupPath + $"\\Attachment\\product\\{model.Id}\\" + attachmentFile.NameTimestamp + attachmentFile.ExtendName; string filePath = Application.StartupPath + $"\\Attachment\\product\\{model.Id}\\" + attachmentFile.NameTimestamp + attachmentFile.ExtendName;
if(File.Exists(filePath)) if(File.Exists(filePath))
Process.Start(filePath); Process.Start(filePath);
} }
private void tbtnGetPos_Click(object sender, EventArgs e)
{
if ((model.MapPath == null)||(string.IsNullOrEmpty(model.MapPath)))
{
MessageBox.Show("还未上传图纸!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
var list = model.GetPointList.Split(',');
List<double> dList = new List<double>();
if (list.Length < 28)
{
for (int i = 0; i < 28; i++)
{
dList.Add(0);
}
}
else
{
for (int i = 0; i < list.Length; i++)
{
dList.Add(double.Parse(list[i]));
}
}
FrmGetPosByPic frm = new FrmGetPosByPic(model.MapPath, dList.ToArray());
frm.ShowDialog();
model.GetPointList = string.Join(",", frm.GetPoints()); ;
model.MapPath = frm.GetMapPath();
if (!service.UpdateNav(model))
throw new Exception("保存文件失败!");
model = service.GetModelNav(model.Code);
}
} }
} }

View File

@ -1,198 +1,228 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<root> <root>
<!-- <!--
Microsoft ResX Schema Microsoft ResX Schema
Version 2.0 Version 2.0
The primary goals of this format is to allow a simple XML format The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes various data types are done through the TypeConverter classes
associated with the data types. associated with the data types.
Example: Example:
... ado.net/XML headers & schema ... ... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader> <resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader> <resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, 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="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="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value> <value>[base64 mime encoded serialized .NET Framework object]</value>
</data> </data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <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> <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment> <comment>This is a comment</comment>
</data> </data>
There are any number of "resheader" rows that contain simple There are any number of "resheader" rows that contain simple
name/value pairs. name/value pairs.
Each data row contains a name, and value. The row also contains a Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture. text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the Classes that don't support this are serialized and stored with the
mimetype set. mimetype set.
The mimetype is used for serialized objects, and tells the The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly: extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below. read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64 mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64 mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64 mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter : using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding. : 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: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:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true"> <xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType> <xsd:complexType>
<xsd:choice maxOccurs="unbounded"> <xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata"> <xsd:element name="metadata">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" /> <xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" /> <xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" /> <xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" /> <xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" /> <xsd:attribute ref="xml:space" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="assembly"> <xsd:element name="assembly">
<xsd:complexType> <xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" /> <xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" /> <xsd:attribute name="name" type="xsd:string" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="data"> <xsd:element name="data">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <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:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> <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="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" /> <xsd:attribute ref="xml:space" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="resheader"> <xsd:element name="resheader">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" /> <xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
</xsd:choice> </xsd:choice>
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
</xsd:schema> </xsd:schema>
<resheader name="resmimetype"> <resheader name="resmimetype">
<value>text/microsoft-resx</value> <value>text/microsoft-resx</value>
</resheader> </resheader>
<resheader name="version"> <resheader name="version">
<value>2.0</value> <value>2.0</value>
</resheader> </resheader>
<resheader name="reader"> <resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<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>166, 17</value> <value>166, 17</value>
</metadata> </metadata>
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value> <value>17, 17</value>
</metadata> </metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="tsbtnSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="tsbtnSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAIfSURBVFhH7ZdPS9xAGMZfKUiFiuAXKFXqRfBmi8U/F1Hr YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIgSURBVFhH7ZdPaxNBGMbfIBQFpeAXEBV7KfTWFsU/FzER
wdseRGxqZiaZN60H8Rt4K+2l0g/QVrEFwS/gTfRoFTz02Jt4rhQrpdV3htlspju7m8kGQfCBH9mdmffJ es2hlHabnZndeVc9BL+BN2kvLX4Aa4sWCn4Bb9Ieq4Ueeuyt9NwiUcQ/7wyTzY6ZJDubRQj0gR+bzMz7
s5M32V24k0MdECXjxExhuJwGngwaPw9VKp3A4l0QeFUKHNeMc04JHK4zaZ9J455DXI6lhQx/0Cf4DCLe 7JPZdzcJXMihCkTJQ6JWGC6rwJNJ4+ehen0MWPwJBP4pBY6vjHNOCZzuMhmex8Y9h7h8kBYyPKZP8A5E
8Ed+ghC/a5+XeApR1GPO0EJRMpoG4PjRjBYTl29SLyG3zWgLZQMIuWVGi0nI9ZqX9gvMTBNlAzD8Ykbz vOmP3IAQj7TPMp5AFI2bMwxQlNxPA3B8a0aLicvXqZeQO2Z0gLIBhHxvRotJyPWOl/YLzEwfZQMw/GBG
i+ES7VykX3N8bwWYx18QJg/1XEO1E2BlpYvq/ulaJY7vUq8qYXxAMx163ql2AoRhN9X9JC70ey7fpl4W 84thg3Yu0q85rlkB5vEbhMkNPddTwwRoNq9Q3W9dq8RxNfVqE8Z7NFPR804NEyAMr1HdGdHS77lcSb0s
clXPO2X1AG6a0XxKkgcwO/dX1ypZTWixo+edsgM0WdhA+rY1zSvwQ8arRtOdtQOo7XxmZvzEcIhqzzJe 5Es975TVA7hlRvMpSa5Cbe6XrlWymtDio553yg7QZ2EP6dvWNK/ANxmvDn131g6gtvOemfETwymqPc14
NTwCKFRTnRDf6AFz1Bpax/EYguCPqa/HM0D53M4AQXBeiOpdkcUrgDIR8jkw1luIOH5MPvuWp98OUGO1 dfAIoFBNdUh8oQfM18HQOo4HEAQ/TX03ngHKZzQDBMF5Idp3RRavAMpEyKfA2PVCxPEd8tm1PP12gBpr
K4GJ5el5CS6pq5dBJE+9YfET8ptJv5ar3M4mLBPPABd0CV4AfzWgG0od86LWR9EIMHloed58E0q0PL13 WAlMLE/PS/CDuvoFiGTWGxbPkF8t/VpuM5pNWCaeAVp0CZaAP5vQDaWOeVHro+guMLlvef7/JpRoeXrv
QMhFEKIflrBPH/9Hjbvgrx9RPf3I1Y/onAGyP0pt1HeCH66HkEZ+NWdzSN06zqIyaRYgCO7Tor36opJY gJCLIMRtaOAtffwXNe6CP79J9fQjVz+icwbI/ii1Ud8JfrgeQhq5bc7mkLp1nEVl0i9AEFymRZ+7i0pi
WPhNuzxtztZAlco9WjxB/eD+21UUgVO6L+5kCeAaOZxlqQnAQFgAAAAASUVORK5CYII= YeE77XLVnK2H6vVLtPgR9YP7b1dRBD7RfXEhSwB/AekDZZ13nHnPAAAAAElFTkSuQmCC
</value> </value>
</data> </data>
<data name="tsbtnAddFile.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="tsbtnAddFile.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAHlSURBVFhH7dfJK0VhGAbwYwhJSSmlLJSFhbKwsFAWykKJ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHlSURBVFhH7dfJK0VhGAbwYwhJSSmlLJSFhbKwsFAWykKJ
/4FrnufZNY9/gLWNrMzzPF/z5VqgpJRSVx2EDOFxP13x3fte9ZKz4a1n/Xu+77zn1FH+x3baTHH6NlMs /4FrnufZNY9/gLWNrMzzPF/z5VqgpJRSVx2EDOFxP13x3fte9ZKz4a1n/Xu+77zn1FH+x3baTHH6NlMs
Wndj0LIbjZadKDQbI9FkjEDjdjgatsJQvxWKus0Q1G4Eo2YjCPr1QFSvBaBqzR+Vq36oMPii3OCDshVv Wndj0LIbjZadKDQbI9FkjEDjdjgatsJQvxWKus0Q1G4Eo2YjCPr1QFSvBaBqzR+Vq36oMPii3OCDshVv
lC57oXTJEyVLHihecNNbGXraTfH4NXzRHUULbiicd4WVk+dXT/4JL5hzQf6Ms/1NaIbPOiPPEiv7MVri lC57oXTJEyVLHihecNNbGXraTfH4NXzRHUULbiicd4WVk+dXT/4JL5hzQf6Ms/1NaIbPOiPPEiv7MVri
uTNO9gW0xHOnqQJMfF8dx/vsq6MsPGdKsS/APfkLnqVw8OxJogD32l/wJIWDZ00QBbjP/BkPUjh45jhR uTNO9gW0xHOnqQJMfF8dx/vsq6MsPGdKsS/APfkLnqVw8OxJogD32l/wJIWDZ00QBbjP/BkPUjh45jhR
gLtwT7iTwsEzxogCHFws3CNupHDw9FGigCN8T+21XPDVt2I87ybxtBGigKOT30P9USg8dZgo4Oja72D+ gLtwT7iTwsEzxogCHFws3CNupHDw9FGigCN8T+21XPDVt2I87ybxtBGigKOT30P9USg8dZgo4Oja72D+
USg8dYgo4OiZ76hduMXZt7Jp7iTxlEGiwFcLR31kbnAq5auFs8WTqQIcXGz7NU6kcPDkAaIABxev2hWO USg8dYgo4OiZ76hduMXZt7Jp7iTxlEGiwFcLR31kbnAq5auFs8WTqQIcXGz7NU6kcPDkAaIABxev2hWO
pXDwpH6iAAcX7/kljqRwcB1VgIOLj8wFDqVwcF0fUYCDi4VbPe+wwAdvMZg7WHhiL1GAg3MXzhanC2iI pXDwpH6iAAcX7/kljqRwcB1VgIOLj8wFDqVwcF0fUYCDi4VbPe+wwAdvMZg7WHhiL1GAg3MXzhanC2iI
kwW0xMkC4qdBKzyhR6F/ULTARawcPeKnQfOT/+FRlFcvY36aacjOgwAAAABJRU5ErkJggg== kwW0xMkC4qdBKzyhR6F/ULTARawcPeKnQfOT/+FRlFcvY36aacjOgwAAAABJRU5ErkJggg==
</value> </value>
</data> </data>
<data name="tsbtnNewBatchId.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="tsbtnNewBatchId.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAHlSURBVFhH7dfJK0VhGAbwYwhJSSmlLJSFhbKwsFAWykKJ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHlSURBVFhH7dfJK0VhGAbwYwhJSSmlLJSFhbKwsFAWykKJ
/4FrnufZNY9/gLWNrMzzPF/z5VqgpJRSVx2EDOFxP13x3fte9ZKz4a1n/Xu+77zn1FH+x3baTHH6NlMs /4FrnufZNY9/gLWNrMzzPF/z5VqgpJRSVx2EDOFxP13x3fte9ZKz4a1n/Xu+77zn1FH+x3baTHH6NlMs
Wndj0LIbjZadKDQbI9FkjEDjdjgatsJQvxWKus0Q1G4Eo2YjCPr1QFSvBaBqzR+Vq36oMPii3OCDshVv Wndj0LIbjZadKDQbI9FkjEDjdjgatsJQvxWKus0Q1G4Eo2YjCPr1QFSvBaBqzR+Vq36oMPii3OCDshVv
lC57oXTJEyVLHihecNNbGXraTfH4NXzRHUULbiicd4WVk+dXT/4JL5hzQf6Ms/1NaIbPOiPPEiv7MVri lC57oXTJEyVLHihecNNbGXraTfH4NXzRHUULbiicd4WVk+dXT/4JL5hzQf6Ms/1NaIbPOiPPEiv7MVri
uTNO9gW0xHOnqQJMfF8dx/vsq6MsPGdKsS/APfkLnqVw8OxJogD32l/wJIWDZ00QBbjP/BkPUjh45jhR uTNO9gW0xHOnqQJMfF8dx/vsq6MsPGdKsS/APfkLnqVw8OxJogD32l/wJIWDZ00QBbjP/BkPUjh45jhR
gLtwT7iTwsEzxogCHFws3CNupHDw9FGigCN8T+21XPDVt2I87ybxtBGigKOT30P9USg8dZgo4Oja72D+ gLtwT7iTwsEzxogCHFws3CNupHDw9FGigCN8T+21XPDVt2I87ybxtBGigKOT30P9USg8dZgo4Oja72D+
USg8dYgo4OiZ76hduMXZt7Jp7iTxlEGiwFcLR31kbnAq5auFs8WTqQIcXGz7NU6kcPDkAaIABxev2hWO USg8dYgo4OiZ76hduMXZt7Jp7iTxlEGiwFcLR31kbnAq5auFs8WTqQIcXGz7NU6kcPDkAaIABxev2hWO
pXDwpH6iAAcX7/kljqRwcB1VgIOLj8wFDqVwcF0fUYCDi4VbPe+wwAdvMZg7WHhiL1GAg3MXzhanC2iI pXDwpH6iAAcX7/kljqRwcB1VgIOLj8wFDqVwcF0fUYCDi4VbPe+wwAdvMZg7WHhiL1GAg3MXzhanC2iI
kwW0xMkC4qdBKzyhR6F/ULTARawcPeKnQfOT/+FRlFcvY36aacjOgwAAAABJRU5ErkJggg== kwW0xMkC4qdBKzyhR6F/ULTARawcPeKnQfOT/+FRlFcvY36aacjOgwAAAABJRU5ErkJggg==
</value> </value>
</data> </data>
<data name="tsbtnClose.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="tbtnGetPos.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAJQSURBVFhHxZfNctNAEIQFb0UuYEu8DFwoiOwrVPGbFPAE YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAATeSURBVFhHxVZJSGRXFBWcly7cKCK4cOFCFEGQtIiKG4Nu
vKhjV9huzSiz69aubA501XfwuGdms7ORtV3S8/9M/qHQs0T8/l9ArVKIzwbqMA4vj2P/5rDb3FgIcs+1 FAVbsgmCihOkRRcdcaiKEIQmAUXBRJCItp1EhJgOZhHaMtEKiogjpbZDiOIQ24izpSfvvPrv++tbJYpC
UIfb/sVx//rtw4f+lYUoGLi609j/ftwPj85p139B3FQWXQuFWnnt4Y99NZmwqmiYjfvhK12TyuItKNRQ Lhzum/5/55173/3fB/+z6QSefQ4kv3T5Z8Inq75pTHoNcpzrjGsVDGN3mU6Aiz/+QsCqeRMyVdswzzE1
tR/G7Qbf03jcbd8pE7hyJ6jyL4+gJzw0Yz7K5JxuL9oJCjmqloOe8CFhOgOV1YLTuP0Gn6ls6lDwqhpO bvYK9ybAhXz586+AQgGzN48Zx93mv76ZJxke7C5zCwEZ88GKb4FKA8z9u8C1BAnxQPcmwIVkzAf5gqbv
3NU8cWFeTkr8blYoNn6qkTwq1ynOlSxQ3wm9CKrZ/Pw8zQXyQq2dGIcfZp2FmPI6C/9RWfM5CDXnOPb3 AYsBTW9cY9ILyDE1p6CNkwiVeJACTCQqYCTQMQy0/6p5Ad2LMXrV5ria43NSAUGA73sQAaUAT6AI/Dgu
ZsUz5F55nMr5yT5EqPY8+49AfecsjGzuUwYiVGsRNRrN2UMFI1RrvorinKjaQAZLqLTV1TlH4LU0SNV0 YAd+0LwE2wIcc/ztRM9vh3htO5PrdQXEe/g+hvYuc09CkwI8ETccmQdsAvQjC1pf8zT79Dpa3zjQ+vO5
ZFBBteYN4DE7pGpFZFBBpZl+Uk0j8JgdUrUiMlhCpZ/QX6qhAl5Lg1RNRwYj1CXNnZWLkEGHSjPNXlQu G4EHKWBOQklAyMuTcrO5v4B5A1T/6uoa3d3d6P9pHNbu92h4fSEJ8D1MwoddQyogYuemgCDAk3LDzX1g
AblWBpI9VBBQreaYd+tcNBZxFmAQSv/HP1VBJ25xa0SoZVYo6xU/MAClVdef7fl8qeYi9LNBNN8Nd6qA 64PwAluiTX9x6YTVakVvby9av7PhRfsGyr651EPwoFtAxp5ywEjg+MyFIwGSIAGLxYKqqiq8ffsLLB0j
s7ClVHtkw51ZIeYVBVo/qfV5Qs1FpB5mpZA4vZLt+88qwUmJS3OMUPCqGg56mXVKOrzf3CijkxLWPtsB +PTVJp6/cj7sGuohMChAAkw0nYA4MTemHZ/eKNDY2Ijy8nIUFhZi9Pc/UPnlO+Rat5Fpvbp/CKQCDIFZ
hRxVy0FP+JhQfy0/m9saqNp5yl7LKxeTNT+pS1BL58qvaE/GdF2KhvSaNc8pqSy+Fgq1strF1Ww24rqE AZGETEASoPzq9PRUhNbQ0ICysjLk5+cjKysLf05M4ZM6GzJe7gkC165FXsw9B7RSrAgwB6gACTDh9Nhr
C6TPxxQLXgOFmryc2pWs67ruL9BDjecFstIGAAAAAElFTkSuQmCC YJtWX1+P0tJS5OXlIS0tDampqbBPziDzs1EkvfiA62vvJG6HQBDQQ8BboF1DKkCYbwKNm5eUlCA3N1du
</value> Hhsbi+TkZExML+Gj4jEcHh56JeEWAnMpVkmo1wAD1BiNJ6f8OTk5SElJQUREBAICAqQa7+wOTExM4Ojo
</data> yCOJGwKaArcIsPIJyEoooFdErU/jRunp6cjIyEB0dDT8/f3h4+MjUVBQAIfDgampKRwfH7seMJgbAU+l
<metadata name="colBatchId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> WEKr/XpfgH2CFhcXh/j4eERFRSEwMFDfXIHhmZmZkTg7066RZu5JaFLACIv2FdT79KJPi4yMRFhYGIKC
<value>True</value> gm5trtDc3CxVWFxcxPn5uetBYV6TkKAS3qDmaSEhIXdurtDT0wO73Y7l5WVcXFzIZ28roP3RUAnlvbXp
</metadata> aX5+fh43HB7WYmSy0dFRrK2t4fLy0pADWh0gCTOYG5lijt44xvU0tWFMTAyCg4P1fnZ2Nv7Z/1cWp6Ki
<metadata name="colTargetCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> Ilmua2pq0N7ejunpaZyenroToArSi3AY+0xQ4xzbsi/aNG4WHh6O9Y0NmXCKgK+vL9bX1+XHqq+vD5OT
<value>True</value> kzIPFhYWsLu7667AYyw0NBRzc3NoaWnB0tKS3FiRqK6uxuzsLIaGhmRBMtuTEBgbG0NdXR0qKirkySi9
</metadata> IkByLEJtbW1YXV29VYyehEBXVxcqKysxMDAg5bXZbDoBgvP9/f0YHx93u4K0RxPgqfhHNDg4iM3NTezs
<metadata name="colCompleteCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 7MhTJiUl6QQSEhJwcnIir+H29rb2pMseTeDg4AArKyvyxUwqnnB/f18mHTdPTEyUBBkG/jewEBnt0QR4
<value>True</value> WqfTqceWfmtrS/wrXsmPEI2J2dHRgaampqcn4MmY7VSGuVBbW4vi4mJ5FXkTnjwEnoynZ7llzDs7O2VF
</metadata> nJ+fx97enl6CXQb8ByPXL/2UPF2mAAAAAElFTkSuQmCC
<metadata name="colCreateTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> </value>
<value>True</value> </data>
</metadata> <data name="tsbtnClose.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJQSURBVFhHxZfNctNAEIQFb0UuYEu8DFwoiOwrVPGbFPAE
vKhjV9huzSiz69aubA501XfwuGdms7ORtV3S8/9M/qHQs0T8/l9ArVKIzwbqMA4vj2P/5rDb3FgIcs+1
UIfb/sVx//rtw4f+lYUoGLi609j/ftwPj85p139B3FQWXQuFWnnt4Y99NZmwqmiYjfvhK12TyuItKNRQ
tR/G7Qbf03jcbd8pE7hyJ6jyL4+gJzw0Yz7K5JxuL9oJCjmqloOe8CFhOgOV1YLTuP0Gn6ls6lDwqhpO
3NU8cWFeTkr8blYoNn6qkTwq1ynOlSxQ3wm9CKrZ/Pw8zQXyQq2dGIcfZp2FmPI6C/9RWfM5CDXnOPb3
ZsUz5F55nMr5yT5EqPY8+49AfecsjGzuUwYiVGsRNRrN2UMFI1RrvorinKjaQAZLqLTV1TlH4LU0SNV0
ZFBBteYN4DE7pGpFZFBBpZl+Uk0j8JgdUrUiMlhCpZ/QX6qhAl5Lg1RNRwYj1CXNnZWLkEGHSjPNXlQu
AblWBpI9VBBQreaYd+tcNBZxFmAQSv/HP1VBJ25xa0SoZVYo6xU/MAClVdef7fl8qeYi9LNBNN8Nd6qA
s7ClVHtkw51ZIeYVBVo/qfV5Qs1FpB5mpZA4vZLt+88qwUmJS3OMUPCqGg56mXVKOrzf3CijkxLWPtsB
hRxVy0FP+JhQfy0/m9saqNp5yl7LKxeTNT+pS1BL58qvaE/GdF2KhvSaNc8pqSy+Fgq1strF1Ww24rqE
C6TPxxQLXgOFmryc2pWs67ruL9BDjecFstIGAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>166, 17</value>
</metadata>
<metadata name="colBatchId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colTargetCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colCompleteCount.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="colCreateTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root> </root>

View File

@ -234,6 +234,8 @@ namespace ProductionControl
AssistStepInfo = list[liIndex].AssistStepInfo, AssistStepInfo = list[liIndex].AssistStepInfo,
ProductAssistProcessList = new List<ProductAssistProcess>(), ProductAssistProcessList = new List<ProductAssistProcess>(),
MapPath = "",
GetPointList = "",
//OrderList = new List<Order>(), //OrderList = new List<Order>(),
ModifyUserCode = Config.loginUser.Code, ModifyUserCode = Config.loginUser.Code,

View File

@ -28,241 +28,244 @@
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmStepList)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmStepList));
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
this.toolStrip1 = new System.Windows.Forms.ToolStrip(); this.toolStrip1 = new System.Windows.Forms.ToolStrip();
this.tsbtnAdd = new System.Windows.Forms.ToolStripButton(); this.tsbtnAdd = new System.Windows.Forms.ToolStripButton();
this.tsbtnDel = new System.Windows.Forms.ToolStripButton(); this.tsbtnDel = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
this.tsbtnClone = new System.Windows.Forms.ToolStripButton(); this.tsbtnClone = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.tsbtnClose = new System.Windows.Forms.ToolStripButton(); this.tsbtnClose = new System.Windows.Forms.ToolStripButton();
this.statusStrip1 = new System.Windows.Forms.StatusStrip(); this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.tsslCount = new System.Windows.Forms.ToolStripStatusLabel(); this.tsslCount = new System.Windows.Forms.ToolStripStatusLabel();
this.dataGridView1 = new System.Windows.Forms.DataGridView(); this.dataGridView1 = new System.Windows.Forms.DataGridView();
this.colId = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colId = new System.Windows.Forms.DataGridViewTextBoxColumn();
this. = new System.Windows.Forms.DataGridViewTextBoxColumn(); this. = new System.Windows.Forms.DataGridViewTextBoxColumn();
this. = new System.Windows.Forms.DataGridViewTextBoxColumn(); this. = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.toolStrip1.SuspendLayout(); this.toolStrip1.SuspendLayout();
this.statusStrip1.SuspendLayout(); this.statusStrip1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
this.SuspendLayout(); this.SuspendLayout();
// //
// toolStrip1 // toolStrip1
// //
this.toolStrip1.BackColor = System.Drawing.SystemColors.GradientInactiveCaption; this.toolStrip1.BackColor = System.Drawing.SystemColors.GradientInactiveCaption;
this.toolStrip1.ImageScalingSize = new System.Drawing.Size(32, 32); this.toolStrip1.ImageScalingSize = new System.Drawing.Size(32, 32);
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tsbtnAdd, this.tsbtnAdd,
this.tsbtnDel, this.tsbtnDel,
this.toolStripSeparator4, this.toolStripSeparator4,
this.tsbtnClone, this.tsbtnClone,
this.toolStripSeparator1, this.toolStripSeparator1,
this.tsbtnClose}); this.tsbtnClose});
this.toolStrip1.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow; this.toolStrip1.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow;
this.toolStrip1.Location = new System.Drawing.Point(0, 0); this.toolStrip1.Location = new System.Drawing.Point(0, 0);
this.toolStrip1.Name = "toolStrip1"; this.toolStrip1.Name = "toolStrip1";
this.toolStrip1.Size = new System.Drawing.Size(1002, 65); this.toolStrip1.Size = new System.Drawing.Size(668, 56);
this.toolStrip1.TabIndex = 12; this.toolStrip1.TabIndex = 12;
this.toolStrip1.Text = "toolStrip1"; this.toolStrip1.Text = "toolStrip1";
// //
// tsbtnAdd // tsbtnAdd
// //
this.tsbtnAdd.Image = ((System.Drawing.Image)(resources.GetObject("tsbtnAdd.Image"))); this.tsbtnAdd.Image = ((System.Drawing.Image)(resources.GetObject("tsbtnAdd.Image")));
this.tsbtnAdd.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.tsbtnAdd.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.tsbtnAdd.ImageTransparentColor = System.Drawing.Color.Magenta; this.tsbtnAdd.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbtnAdd.Name = "tsbtnAdd"; this.tsbtnAdd.Name = "tsbtnAdd";
this.tsbtnAdd.Size = new System.Drawing.Size(70, 60); this.tsbtnAdd.Size = new System.Drawing.Size(52, 53);
this.tsbtnAdd.Text = " 添加 "; this.tsbtnAdd.Text = " 添加 ";
this.tsbtnAdd.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText; this.tsbtnAdd.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.tsbtnAdd.Click += new System.EventHandler(this.tsbtnAdd_Click); this.tsbtnAdd.Click += new System.EventHandler(this.tsbtnAdd_Click);
// //
// tsbtnDel // tsbtnDel
// //
this.tsbtnDel.Image = ((System.Drawing.Image)(resources.GetObject("tsbtnDel.Image"))); this.tsbtnDel.Image = ((System.Drawing.Image)(resources.GetObject("tsbtnDel.Image")));
this.tsbtnDel.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.tsbtnDel.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.tsbtnDel.ImageTransparentColor = System.Drawing.Color.Magenta; this.tsbtnDel.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbtnDel.Name = "tsbtnDel"; this.tsbtnDel.Name = "tsbtnDel";
this.tsbtnDel.Size = new System.Drawing.Size(70, 60); this.tsbtnDel.Size = new System.Drawing.Size(52, 53);
this.tsbtnDel.Text = " 删除 "; this.tsbtnDel.Text = " 删除 ";
this.tsbtnDel.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText; this.tsbtnDel.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.tsbtnDel.Click += new System.EventHandler(this.tsbtnDel_Click); this.tsbtnDel.Click += new System.EventHandler(this.tsbtnDel_Click);
// //
// toolStripSeparator4 // toolStripSeparator4
// //
this.toolStripSeparator4.Name = "toolStripSeparator4"; this.toolStripSeparator4.Name = "toolStripSeparator4";
this.toolStripSeparator4.Size = new System.Drawing.Size(6, 65); this.toolStripSeparator4.Size = new System.Drawing.Size(6, 56);
// //
// tsbtnClone // tsbtnClone
// //
this.tsbtnClone.Image = ((System.Drawing.Image)(resources.GetObject("tsbtnClone.Image"))); this.tsbtnClone.Image = ((System.Drawing.Image)(resources.GetObject("tsbtnClone.Image")));
this.tsbtnClone.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.tsbtnClone.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.tsbtnClone.ImageTransparentColor = System.Drawing.Color.Magenta; this.tsbtnClone.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbtnClone.Name = "tsbtnClone"; this.tsbtnClone.Name = "tsbtnClone";
this.tsbtnClone.Size = new System.Drawing.Size(70, 60); this.tsbtnClone.Size = new System.Drawing.Size(52, 53);
this.tsbtnClone.Text = " 克隆 "; this.tsbtnClone.Text = " 克隆 ";
this.tsbtnClone.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText; this.tsbtnClone.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.tsbtnClone.ToolTipText = "克隆当前流程"; this.tsbtnClone.ToolTipText = "克隆当前流程";
this.tsbtnClone.Click += new System.EventHandler(this.tsbtnClone_Click); this.tsbtnClone.Click += new System.EventHandler(this.tsbtnClone_Click);
// //
// toolStripSeparator1 // toolStripSeparator1
// //
this.toolStripSeparator1.Name = "toolStripSeparator1"; this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(6, 65); this.toolStripSeparator1.Size = new System.Drawing.Size(6, 56);
// //
// tsbtnClose // tsbtnClose
// //
this.tsbtnClose.Image = ((System.Drawing.Image)(resources.GetObject("tsbtnClose.Image"))); this.tsbtnClose.Image = ((System.Drawing.Image)(resources.GetObject("tsbtnClose.Image")));
this.tsbtnClose.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.tsbtnClose.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.tsbtnClose.ImageTransparentColor = System.Drawing.Color.Magenta; this.tsbtnClose.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbtnClose.Name = "tsbtnClose"; this.tsbtnClose.Name = "tsbtnClose";
this.tsbtnClose.Size = new System.Drawing.Size(70, 60); this.tsbtnClose.Size = new System.Drawing.Size(52, 53);
this.tsbtnClose.Text = " 关闭 "; this.tsbtnClose.Text = " 关闭 ";
this.tsbtnClose.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText; this.tsbtnClose.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.tsbtnClose.Click += new System.EventHandler(this.tsbtnClose_Click); this.tsbtnClose.Click += new System.EventHandler(this.tsbtnClose_Click);
// //
// statusStrip1 // statusStrip1
// //
this.statusStrip1.ImageScalingSize = new System.Drawing.Size(24, 24); this.statusStrip1.ImageScalingSize = new System.Drawing.Size(24, 24);
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tsslCount}); this.tsslCount});
this.statusStrip1.Location = new System.Drawing.Point(0, 681); this.statusStrip1.Location = new System.Drawing.Point(0, 453);
this.statusStrip1.Name = "statusStrip1"; this.statusStrip1.Name = "statusStrip1";
this.statusStrip1.Size = new System.Drawing.Size(1002, 31); this.statusStrip1.Padding = new System.Windows.Forms.Padding(1, 0, 9, 0);
this.statusStrip1.TabIndex = 22; this.statusStrip1.Size = new System.Drawing.Size(668, 22);
this.statusStrip1.Text = "statusStrip1"; this.statusStrip1.TabIndex = 22;
// this.statusStrip1.Text = "statusStrip1";
// tsslCount //
// // tsslCount
this.tsslCount.Name = "tsslCount"; //
this.tsslCount.Size = new System.Drawing.Size(33, 24); this.tsslCount.Name = "tsslCount";
this.tsslCount.Text = "共 "; this.tsslCount.Size = new System.Drawing.Size(24, 17);
// this.tsslCount.Text = "共 ";
// dataGridView1 //
// // dataGridView1
this.dataGridView1.AllowUserToAddRows = false; //
this.dataGridView1.AllowUserToDeleteRows = false; this.dataGridView1.AllowUserToAddRows = false;
dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; this.dataGridView1.AllowUserToDeleteRows = false;
dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control; dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle1.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control;
dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText; dataGridViewCellStyle1.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText;
dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
this.dataGridView1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dataGridView1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.colId, this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this., this.colId,
this., this.,
this.Column2, this.,
this.Column1}); this.Column2,
dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; this.Column1});
dataGridViewCellStyle5.BackColor = System.Drawing.SystemColors.Window; dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle5.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); dataGridViewCellStyle5.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle5.ForeColor = System.Drawing.SystemColors.ControlText; dataGridViewCellStyle5.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
dataGridViewCellStyle5.SelectionBackColor = System.Drawing.SystemColors.Highlight; dataGridViewCellStyle5.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle5.SelectionForeColor = System.Drawing.SystemColors.HighlightText; dataGridViewCellStyle5.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.False; dataGridViewCellStyle5.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
this.dataGridView1.DefaultCellStyle = dataGridViewCellStyle5; dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; this.dataGridView1.DefaultCellStyle = dataGridViewCellStyle5;
this.dataGridView1.Location = new System.Drawing.Point(0, 65); this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill;
this.dataGridView1.MultiSelect = false; this.dataGridView1.Location = new System.Drawing.Point(0, 56);
this.dataGridView1.Name = "dataGridView1"; this.dataGridView1.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.dataGridView1.ReadOnly = true; this.dataGridView1.MultiSelect = false;
this.dataGridView1.RowHeadersVisible = false; this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.RowHeadersWidth = 62; this.dataGridView1.ReadOnly = true;
dataGridViewCellStyle6.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.dataGridView1.RowHeadersVisible = false;
this.dataGridView1.RowsDefaultCellStyle = dataGridViewCellStyle6; this.dataGridView1.RowHeadersWidth = 62;
this.dataGridView1.RowTemplate.Height = 30; dataGridViewCellStyle6.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; this.dataGridView1.RowsDefaultCellStyle = dataGridViewCellStyle6;
this.dataGridView1.Size = new System.Drawing.Size(1002, 616); this.dataGridView1.RowTemplate.Height = 30;
this.dataGridView1.TabIndex = 23; this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.dataGridView1.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellDoubleClick); this.dataGridView1.Size = new System.Drawing.Size(668, 397);
// this.dataGridView1.TabIndex = 23;
// colId this.dataGridView1.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellDoubleClick);
// //
this.colId.DataPropertyName = "Id"; // colId
this.colId.HeaderText = "ID"; //
this.colId.MinimumWidth = 8; this.colId.DataPropertyName = "Id";
this.colId.Name = "colId"; this.colId.HeaderText = "ID";
this.colId.ReadOnly = true; this.colId.MinimumWidth = 8;
this.colId.Visible = false; this.colId.Name = "colId";
this.colId.Width = 150; this.colId.ReadOnly = true;
// this.colId.Visible = false;
// 检测值 this.colId.Width = 150;
// //
this..DataPropertyName = "Code"; // 检测值
dataGridViewCellStyle2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Bold); //
this..DefaultCellStyle = dataGridViewCellStyle2; this..DataPropertyName = "Code";
this..HeaderText = "编号"; dataGridViewCellStyle2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Bold);
this..MinimumWidth = 8; this..DefaultCellStyle = dataGridViewCellStyle2;
this..Name = "检测值"; this..HeaderText = "编号";
this..ReadOnly = true; this..MinimumWidth = 8;
this..Width = 200; this..Name = "检测值";
// this..ReadOnly = true;
// 工序 this..Width = 200;
// //
this..AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; // 工序
this..DataPropertyName = "Name"; //
dataGridViewCellStyle3.BackColor = System.Drawing.Color.White; this..AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
dataGridViewCellStyle3.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this..DataPropertyName = "Name";
this..DefaultCellStyle = dataGridViewCellStyle3; dataGridViewCellStyle3.BackColor = System.Drawing.Color.White;
this..HeaderText = "名称"; dataGridViewCellStyle3.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this..MinimumWidth = 8; this..DefaultCellStyle = dataGridViewCellStyle3;
this..Name = "工序"; this..HeaderText = "名称";
this..ReadOnly = true; this..MinimumWidth = 8;
// this..Name = "工序";
// Column2 this..ReadOnly = true;
// //
this.Column2.DataPropertyName = "ModifyUserCode"; // Column2
this.Column2.HeaderText = "修订人"; //
this.Column2.MinimumWidth = 8; this.Column2.DataPropertyName = "ModifyUserCode";
this.Column2.Name = "Column2"; this.Column2.HeaderText = "修订人";
this.Column2.ReadOnly = true; this.Column2.MinimumWidth = 8;
this.Column2.Width = 150; this.Column2.Name = "Column2";
// this.Column2.ReadOnly = true;
// Column1 this.Column2.Width = 150;
// //
this.Column1.DataPropertyName = "ModifyTime"; // Column1
dataGridViewCellStyle4.Format = "g"; //
dataGridViewCellStyle4.NullValue = null; this.Column1.DataPropertyName = "ModifyTime";
this.Column1.DefaultCellStyle = dataGridViewCellStyle4; dataGridViewCellStyle4.Format = "g";
this.Column1.HeaderText = "修订日期"; dataGridViewCellStyle4.NullValue = null;
this.Column1.MinimumWidth = 8; this.Column1.DefaultCellStyle = dataGridViewCellStyle4;
this.Column1.Name = "Column1"; this.Column1.HeaderText = "修订日期";
this.Column1.ReadOnly = true; this.Column1.MinimumWidth = 8;
this.Column1.Width = 150; this.Column1.Name = "Column1";
// this.Column1.ReadOnly = true;
// FrmStepList this.Column1.Width = 150;
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 18F); // FrmStepList
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; //
this.ClientSize = new System.Drawing.Size(1002, 712); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.Controls.Add(this.dataGridView1); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.statusStrip1); this.ClientSize = new System.Drawing.Size(668, 475);
this.Controls.Add(this.toolStrip1); this.Controls.Add(this.dataGridView1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Controls.Add(this.statusStrip1);
this.Name = "FrmStepList"; this.Controls.Add(this.toolStrip1);
this.ShowInTaskbar = false; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.Text = "流程管理"; this.Name = "FrmStepList";
this.Load += new System.EventHandler(this.FrmStepList_Load); this.ShowInTaskbar = false;
this.toolStrip1.ResumeLayout(false); this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.toolStrip1.PerformLayout(); this.Text = "流程管理";
this.statusStrip1.ResumeLayout(false); this.Load += new System.EventHandler(this.FrmStepList_Load);
this.statusStrip1.PerformLayout(); this.toolStrip1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); this.toolStrip1.PerformLayout();
this.ResumeLayout(false); this.statusStrip1.ResumeLayout(false);
this.PerformLayout(); this.statusStrip1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
} }
#endregion #endregion

View File

@ -1,4 +1,5 @@
using Models; using Models;
using Newtonsoft.Json.Linq;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
@ -110,16 +111,35 @@ namespace ProductionControl
ProcessList = new List<StepProcess>() ProcessList = new List<StepProcess>()
}; };
foreach(var item in list[liIndex].ProcessList) foreach(var item in list[liIndex].ProcessList)
{ {
newStep.ProcessList.Add(new StepProcess() StepProcess sp;
{ string spPrarms = "";
Order = item.Order, if (item.ProcessCode == "Size")
ProcessCode=item.ProcessCode, {
ProcessName = item.ProcessName, if (item.ProcessParams.IndexOf("MapPath") > 0)
ProcessParams=item.ProcessParams, {
ModifyUserCode = Config.loginUser.Code, JObject jo = JObject.Parse(item.ProcessParams);//解析成json
CreateUserCode = Config.loginUser.Code jo["MapPath"] = "";//修改需要的字段
}); jo["GetPointList"] = null;
spPrarms = Convert.ToString(jo);
}
else
spPrarms = item.ProcessParams;
}
else
spPrarms = item.ProcessParams;
sp = new StepProcess()
{
Order = item.Order,
ProcessCode = item.ProcessCode,
ProcessName = item.ProcessName,
ProcessParams = spPrarms,
ModifyUserCode = Config.loginUser.Code,
CreateUserCode = Config.loginUser.Code
};
newStep.ProcessList.Add(sp);
} }
try try

View File

@ -1,473 +1,473 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<root> <root>
<!-- <!--
Microsoft ResX Schema Microsoft ResX Schema
Version 2.0 Version 2.0
The primary goals of this format is to allow a simple XML format The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes various data types are done through the TypeConverter classes
associated with the data types. associated with the data types.
Example: Example:
... ado.net/XML headers & schema ... ... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader> <resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader> <resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, 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="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="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value> <value>[base64 mime encoded serialized .NET Framework object]</value>
</data> </data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <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> <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment> <comment>This is a comment</comment>
</data> </data>
There are any number of "resheader" rows that contain simple There are any number of "resheader" rows that contain simple
name/value pairs. name/value pairs.
Each data row contains a name, and value. The row also contains a Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture. text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the Classes that don't support this are serialized and stored with the
mimetype set. mimetype set.
The mimetype is used for serialized objects, and tells the The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly: extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below. read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64 mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64 mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding. : and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64 mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter : using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding. : 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: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:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true"> <xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType> <xsd:complexType>
<xsd:choice maxOccurs="unbounded"> <xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata"> <xsd:element name="metadata">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" /> <xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" /> <xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" /> <xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" /> <xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" /> <xsd:attribute ref="xml:space" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="assembly"> <xsd:element name="assembly">
<xsd:complexType> <xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" /> <xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" /> <xsd:attribute name="name" type="xsd:string" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="data"> <xsd:element name="data">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <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:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> <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="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" /> <xsd:attribute ref="xml:space" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
<xsd:element name="resheader"> <xsd:element name="resheader">
<xsd:complexType> <xsd:complexType>
<xsd:sequence> <xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence> </xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" /> <xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
</xsd:choice> </xsd:choice>
</xsd:complexType> </xsd:complexType>
</xsd:element> </xsd:element>
</xsd:schema> </xsd:schema>
<resheader name="resmimetype"> <resheader name="resmimetype">
<value>text/microsoft-resx</value> <value>text/microsoft-resx</value>
</resheader> </resheader>
<resheader name="version"> <resheader name="version">
<value>2.0</value> <value>2.0</value>
</resheader> </resheader>
<resheader name="reader"> <resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value> <value>17, 17</value>
</metadata> </metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="tsbtnAdd.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="tsbtnAdd.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAHoSURBVFhH3ZfNSwJBGMaFIIgM3R2/gu5B/0OXDp26eutk YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHmSURBVFhH3ZfNSwJBGMaFIIgM3Rm/gu5B/0OXDp26eusi
uTv2QfQvddf+gCCKTkKn8BituDNqdI6+IJtH39RUGHcakfrBA77jvM/7oLvLTmyUuCdTjIsK48En47Jj lTv2QfQvddf+gCCKTkKn8BiuuDNqdI6+IJtH39R0YdxtROoHD/iO8z7vw+ouO7Fx4kWV4kJWuKh/cqG6
R/ASFXjTmMlkeSujGqrjBtZUxQwaN45KWcZG15dH6vO6TfU8EUKUadwI+dqiW5Cvjhfe0op14I0ZmEVL dgQvWYE3jQkmK9oZ3VCdNLCmKmbQuEl0yjI2Mlcd68/rNtX3RAhZpnFj5GuLrKBenaJ/RyvWgTdmYBYt
A7K7rWWV8M31xRUtWQfemIFZtDQAi0jHeHhDS3rynYWupgTemGEtAPPlBUSlFusBEvuiBVGpxf4vwMMA Dcnutpd1wjfmymtasg68MQOzaGkIFpGOC/+Wlszkuws9TQm8McNaAO6qS4hKI9YDJPZlG6LSiP0rIHwP
olLL/wvgcnkPUanFOEDuuJl2PHHm+OH5sFZ48AyNrmMveqi9j3EA129u9J5i0ws91N7HOABInATJVLG+ otLI/wvAhHqAqDQSOUDupJV2ivLccf2LUcVF/RkaX8de9FD7gMgBmNva6D/Fphd6qH1A5AAgceolUweN
mj54zH2LFWUDGl7DHuylth/8KsAk1N4HiEotswgw59vQa9QhKrVYD5DkYRuiUov9X4CHWxCVWqwHiIpR 1fThY+5b/EA1odE17MFeavvBrwIEoffWISqNzCLAnG/DYrMBUWnEeoCk8DsQlUbsXwHhb0FUGrEeICyR
gLXTxpK6veL4PorQg16y6RI5gFsS+QSXL6wQfKiHy3skqR70woPsogdIcbnp+PLS5eLaROiFB9n90WvA AqydNZf07RXH92GEHvSSTY/QAVhJ5hNCvfCC96EfLu+hpHvQCw+yCx8gJdSm46orJuRNFKEXHmT3R/8D
JpEDuCW5rf7PO+aLmpFULzzIzuQaEDt45VInmycToRceZKcPoBLP77UchwXcNrM+mGDGxIMJwLFJJZzT NgkdgJXUtv4977kra5Gke+FBdlH+A3IHr1xceE9RhF54kJ05gE48v9dyHBZw28z6YIIZgQcTgGOTTjin
0UyR2Wtn1aaZHk4xg8ZNZuVQMLzXqYvI6vEcnvCmMUQs9gWGsZeiWY4KFwAAAABJRU5ErkJggg== o5kms9fJ6k0zPZxiBo0LZuVIcrzX2T6ewxPeNIaIxb4AstuXauG3ePoAAAAASUVORK5CYII=
</value> </value>
</data> </data>
<data name="tsbtnDel.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="tsbtnDel.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
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
</value> </value>
</data> </data>
<data name="tsbtnClone.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="tsbtnClone.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAIUSURBVFhH7ZNrS9tgGIb7///LQMb2QSbTTTJXMm3XQ9Ic YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIUSURBVFhH7ZNrS9tgGIb7///LQMb2QSbTTTJXMm3XQ9Ic
WpK0OfVoutZqrN7LK4/wkrwGfepHb7igFO7nbkKvxkeeo9kp3HTNRvTpFC9OmiF/eGQj+nSKFzvJcLd/ WpK0OfVoutZqrN7LK4/wkrwGfepHb7igFO7nbkKvxkeeo9kp3HTNRvTpFC9OmiF/eGQj+nSKFzvJcLd/
ZCP6dIoXO85we//ARvTpFC+D6Bo3+Z6N6NMpXsxwhc3tPRvRp1O8GJMl/u1yNqKvskOm1pTeeIlse8dG ZCP6dIoXO85we//ARvTpFC+D6Bo3+Z6N6NMpXsxwhc3tPRvRp1O8GJMl/u1yNqKvskOm1pTeeIlse8dG
9FV2yNSa0g3mWG12bERfZYdMrSl/vRkW6xs2oq+yQ6bWlHZxYJZt2Yi+yg6ZWlOuRlOkqw0b0VfZIVNr 9FV2yNSa0g3mWG12bERfZYdMrSl/vRkW6xs2oq+yQ6bWlHZxYJZt2Yi+yg6ZWlOuRlOkqw0b0VfZIVNr
yuUwQbxYs9HtUGmHjDCF5qrR3QSTecbCT5fQjEBph4wwheaqadoRgunqzYyiGdxJgrO2o7RDRphCc9X8 yuUwQbxYs9HtUGmHjDCF5qrR3QSTecbCT5fQjEBph4wwheaqadoRgunqzYyiGdxJgrO2o7RDRphCc9X8
tkJ4yfJNuJMpLD9GfzjGN91Q2iEjTKG5an4NQozixatxxilML0LPDdAaDPFFayvtkBGm0Fw1mjmBG85f tkJ4yfJNuJMpLD9GfzjGN91Q2iEjTKG5an4NQozixatxxilML0LPDdAaDPFFayvtkBGm0Fw1mjmBG85f
heUn2OR44nq3x3S9g5eulHbICFNorprz4k9kF6+0Doueulu88sU2R7TcFD9ohv4oVJpRRphCc9X87AWw heUn2OR44nq3x3S9g5eulHbICFNorprz4k9kF6+0Doueulu88sU2R7TcFD9ohv4oVJpRRphCc9X87AWw
gvRFBsVTG8VQxwlwabjFd0nx2UezYynNKPNsCs1V86PnwyxGVBhe/PTULcuD3ndw0TahXfVwoulKM8rI gvRFBsVTG8VQxwlwabjFd0nx2UezYynNKPNsCs1V86PnwyxGVBhe/PTULcuD3ndw0TahXfVwoulKM8rI
ptBcNUdNF2ddv8Jpx8NJa4jjPxa+XvTx+byNT991HB2fKs0oUzaF5nh5D1PoFC/vYQqd4uVQU+gMP4eY ptBcNUdNF2ddv8Jpx8NJa4jjPxa+XvTx+byNT991HB2fKs0oUzaF5nh5D1PoFC/vYQqd4uVQU+gMP4eY
QicOC9cUqh8ejilU/cgLaTT+A+NY6S8KKsPSAAAAAElFTkSuQmCC QicOC9cUqh8ejilU/cgLaTT+A+NY6S8KKsPSAAAAAElFTkSuQmCC
</value> </value>
</data> </data>
<data name="tsbtnClose.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="tsbtnClose.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAJQSURBVFhHxZfNctNAEIQFb0UuYEu8DFwoiOwrVPGbFPAE YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJQSURBVFhHxZfNctNAEIQFb0UuYEu8DFwoiOwrVPGbFPAE
vKhjV9huzSiz69aubA501XfwuGdms7ORtV3S8/9M/qHQs0T8/l9ArVKIzwbqMA4vj2P/5rDb3FgIcs+1 vKhjV9huzSiz69aubA501XfwuGdms7ORtV3S8/9M/qHQs0T8/l9ArVKIzwbqMA4vj2P/5rDb3FgIcs+1
UIfb/sVx//rtw4f+lYUoGLi609j/ftwPj85p139B3FQWXQuFWnnt4Y99NZmwqmiYjfvhK12TyuItKNRQ UIfb/sVx//rtw4f+lYUoGLi609j/ftwPj85p139B3FQWXQuFWnnt4Y99NZmwqmiYjfvhK12TyuItKNRQ
tR/G7Qbf03jcbd8pE7hyJ6jyL4+gJzw0Yz7K5JxuL9oJCjmqloOe8CFhOgOV1YLTuP0Gn6ls6lDwqhpO tR/G7Qbf03jcbd8pE7hyJ6jyL4+gJzw0Yz7K5JxuL9oJCjmqloOe8CFhOgOV1YLTuP0Gn6ls6lDwqhpO
3NU8cWFeTkr8blYoNn6qkTwq1ynOlSxQ3wm9CKrZ/Pw8zQXyQq2dGIcfZp2FmPI6C/9RWfM5CDXnOPb3 3NU8cWFeTkr8blYoNn6qkTwq1ynOlSxQ3wm9CKrZ/Pw8zQXyQq2dGIcfZp2FmPI6C/9RWfM5CDXnOPb3
ZsUz5F55nMr5yT5EqPY8+49AfecsjGzuUwYiVGsRNRrN2UMFI1RrvorinKjaQAZLqLTV1TlH4LU0SNV0 ZsUz5F55nMr5yT5EqPY8+49AfecsjGzuUwYiVGsRNRrN2UMFI1RrvorinKjaQAZLqLTV1TlH4LU0SNV0
ZFBBteYN4DE7pGpFZFBBpZl+Uk0j8JgdUrUiMlhCpZ/QX6qhAl5Lg1RNRwYj1CXNnZWLkEGHSjPNXlQu ZFBBteYN4DE7pGpFZFBBpZl+Uk0j8JgdUrUiMlhCpZ/QX6qhAl5Lg1RNRwYj1CXNnZWLkEGHSjPNXlQu
AblWBpI9VBBQreaYd+tcNBZxFmAQSv/HP1VBJ25xa0SoZVYo6xU/MAClVdef7fl8qeYi9LNBNN8Nd6qA AblWBpI9VBBQreaYd+tcNBZxFmAQSv/HP1VBJ25xa0SoZVYo6xU/MAClVdef7fl8qeYi9LNBNN8Nd6qA
s7ClVHtkw51ZIeYVBVo/qfV5Qs1FpB5mpZA4vZLt+88qwUmJS3OMUPCqGg56mXVKOrzf3CijkxLWPtsB s7ClVHtkw51ZIeYVBVo/qfV5Qs1FpB5mpZA4vZLt+88qwUmJS3OMUPCqGg56mXVKOrzf3CijkxLWPtsB
hRxVy0FP+JhQfy0/m9saqNp5yl7LKxeTNT+pS1BL58qvaE/GdF2KhvSaNc8pqSy+Fgq1strF1Ww24rqE hRxVy0FP+JhQfy0/m9saqNp5yl7LKxeTNT+pS1BL58qvaE/GdF2KhvSaNc8pqSy+Fgq1strF1Ww24rqE
C6TPxxQLXgOFmryc2pWs67ruL9BDjecFstIGAAAAAElFTkSuQmCC C6TPxxQLXgOFmryc2pWs67ruL9BDjecFstIGAAAAAElFTkSuQmCC
</value> </value>
</data> </data>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>664, 17</value> <value>664, 17</value>
</metadata> </metadata>
<metadata name="colId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="colId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
<metadata name="检测值.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="检测值.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
<metadata name="工序.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="工序.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
<metadata name="Column2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="Column2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
<metadata name="Column1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="Column1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
AAABAAQAEBAAAAEACABoBQAARgAAACAgAAABAAgAqAgAAK4FAAAwMAAAAQAIAKgOAABWDgAAAAAAAAEA AAABAAQAEBAAAAEACABoBQAARgAAACAgAAABAAgAqAgAAK4FAAAwMAAAAQAIAKgOAABWDgAAAAAAAAEA
IACHIAAA/hwAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAABELAAARCwAAAAEAAAABAABaUD0AWlE9AF5V IACHIAAA/hwAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAABELAAARCwAAAAEAAAABAABaUD0AWlE9AF5V
QABiWEIAYlhEAGtgSQB9cFYAjIJuAI2DbwAZp10AGaldABy6aAAevGoAL755AC/AdwAxwHkANdSFADfW QABiWEIAYlhEAGtgSQB9cFYAjIJuAI2DbwAZp10AGaldABy6aAAevGoAL755AC/AdwAxwHkANdSFADfW
hwA11ooAN9aKADrZigCCdVoAiHteAIR4YQCHjGcAnY1tAJ6ObgCSiXYAkol6AJWMeQCVjHoAlox6AJCS hwA11ooAN9aKADrZigCCdVoAiHteAIR4YQCHjGcAnY1tAJ6ObgCSiXYAkol6AJWMeQCVjHoAlox6AJCS
bgCfkHAAoI1tAKCObgCjkHAAopByAKKScgCmnIYAqZ+JAKqcigCqn4oA++OxAPvjsgD747MA++S1AP3l bgCfkHAAoI1tAKCObgCjkHAAopByAKKScgCmnIYAqZ+JAKqcigCqn4oA++OxAPvjsgD747MA++S1AP3l
sQD95bMA/+WzAP3ltgD/5bYA++a6AP/oswD/6LYA/+u2AP/swgD+8dIA/vTZAP723gD+9t8A//XhAP75 sQD95bMA/+WzAP3ltgD/5bYA++a6AP/oswD/6LYA/+u2AP/swgD+8dIA/vTZAP723gD+9t8A//XhAP75
4QD/+OAA//nhAP/45ABIPy4AUUIxAEs/MQBNRDQAS0UxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 4QD/+OAA//nhAP/45ABIPy4AUUIxAEs/MQBNRDQAS0UxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARwQEBAQE AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARwQEBAQE
BAQEBAQEBAQER0cFHx4cHigpJygeBx4eB0dHR0dHRwECBQUCAUdHR0dHR0dHRkRGAQQEAUZERERHR0dH BAQEBAQEBAQER0cFHx4cHigpJygeBx4eB0dHR0dHRwECBQUCAUdHR0dHR0dHRkRGAQQEAUZERERHR0dH
FxglISIZGhoaISUGR0dHRyAxCTYxMjEyMjE1GUdHR0cgPQsJNjEsLC4uMRlHRwoKCQkLCwo1MS4uLC8h FxglISIZGhoaISUGR0dHRyAxCTYxMjEyMjE1GUdHR0cgPQsJNjEsLC4uMRlHRwoKCQkLCwo1MS4uLC8h
R0cJDAsLCwsLCi8sLC41GkdHDxQSEhMTEQ45LCwsNRpHRw0ODg4QEA1AQTouLDUaR0dHRyBAEA5BPT1B R0cJDAsLCwsLCi8sLC41GkdHDxQSEhMTEQ45LCwsNRpHRw0ODg4QEA1AQTouLDUaR0dHRyBAEA5BPT1B
OzQxGkdHR0cgQA5AOzs7O0BAOBlHR0dHFiAlIhkZGRkZIiUVR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dH OzQxGkdHR0cgQA5AOzs7O0BAOBlHR0dHFiAlIhkZGRkZIiUVR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dH
R0dHR0dHR0dHR4ABAACAAQAA+B8AAOADAADAAwAAwAMAAMADAAAAAwAAAAMAAAADAAAAAwAAwAMAAMAD R0dHR0dHR0dHR4ABAACAAQAA+B8AAOADAADAAwAAwAMAAMADAAAAAwAAAAMAAAADAAAAAwAAwAMAAMAD
AADAAwAA//8AAP//AAAoAAAAIAAAAEAAAAABAAgAAAAAAAAEAAAAAAAAAAAAAAABAAAAAQAAWVA/AFlT AADAAwAA//8AAP//AAAoAAAAIAAAAEAAAAABAAgAAAAAAAAEAAAAAAAAAAAAAAABAAAAAQAAWVA/AFlT
PwBaUT4AY1lDAGRaRABkXEQAZFxEAHdrUwBhV0EAYVpEAGRaRABkWkQAZlxGAHZqUQB3a1EAd2tSAHdr PwBaUT4AY1lDAGRaRABkXEQAZFxEAHdrUwBhV0EAYVpEAGRaRABkWkQAZlxGAHZqUQB3a1EAd2tSAHdr
VAB3blQAemtRAHpqUwB6a1QAeW1UAHpuVAB6blYAc2hQAHltUwBhV0EAZFpEAGRXRABmV0YAZFpEABa6 VAB3blQAemtRAHpqUwB6a1QAeW1UAHpuVAB6blYAc2hQAHltUwBhV0EAZFpEAGRXRABmV0YAZFpEABa6
ZQAZumgAGbxoABy6aAAcvGgAHLxqAB68aAAevGoAIL9qACm9bgAtvm8AML9wADW/cgA11IcANdSFADXW ZQAZumgAGbxoABy6aAAcvGgAHLxqAB68aAAevGoAIL9qACm9bgAtvm8AML9wADW/cgA11IcANdSFADXW
hwAkwnEAOcF2AD7EfABRjVwARL98ACnUggAv1oUAMNSFADHUhgAy1IYAM9SHADLWhQA11IUANdWHADXW hwAkwnEAOcF2AD7EfABRjVwARL98ACnUggAv1oUAMNSFADHUhgAy1IYAM9SHADLWhQA11IUANdWHADXW
hQA11ocAN9aFADfWhwA31YgAVNCMAGHcmwCbqnwAp52IAKqgiwCf3JsAnd6uAKDergCv6rsAtezBALzt hQA11ocAN9aFADfWhwA31YgAVNCMAGHcmwCbqnwAp52IAKqgiwCf3JsAnd6uAKDergCv6rsAtezBALzt
xADGs4sAybaLAMm2jgDMto4AybqXAN3gqADi4aoA5uKsAOrjrQDu464A++OvAPLmtgD747EA++S0AP3j xADGs4sAybaLAMm2jgDMto4AybqXAN3gqADi4aoA5uKsAOrjrQDu464A++OvAPLmtgD747EA++S0AP3j
sQD947MA/uOyAP3lsQD95bMA/+WxAP/msgD75roA++a7AP3nuQD/6LMA/+m1AP/otgD/67YA/+u5AMLu sQD947MA/uOyAP3lsQD95bMA/+WxAP/msgD75roA++a7AP3nuQD/6LMA/+m1AP/otgD/67YA/+u5AMLu
xwDH78kAze/MANXwzgD268IA++nEAPvqxQD/8M0A/vLVAP7z1QD/89kA/vPdAP/02gD+9d4A/vbeAP/1 xwDH78kAze/MANXwzgD268IA++nEAPvqxQD/8M0A/vLVAP7z1QD/89kA/vPdAP/02gD+9d4A/vbeAP/1
4QD+9uAA//bgAP734gD+9+MA//XkAP/15wD/+eMA//jkAP/45wD/+uYA//vnAGZaRABpXkgAZ11HAGRc 4QD+9uAA//bgAP734gD+9+MA//XkAP/15wD/+eMA//jkAP/45wD/+uYA//vnAGZaRABpXkgAZ11HAGRc
RAAcumgAHLpoABy/agCyqJQArqSQALuxnQC7sZ0Abl9FALqwnAC6sJ8ArqSQAHBkSgB1alMAAAAAAAAA RAAcumgAHLpoABy/agCyqJQArqSQALuxnQC7sZ0Abl9FALqwnAC6sJ8ArqSQAHBkSgB1alMAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJaW AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJaW
lpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpYYCggICAgLCwsLCwsMDAgKCgkLCwsLCwsKCwoD lpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpYYCggICAgLCwsLCwsMDAgKCgkLCwsLCwsKCwoD
lpaWlhcVFxcVFQ8PDw8PDw8VFxcXFw8PFxYPDw8VDxeWlpaWlkZGRkZGRUVFRUVFRUVGRkZGRUaWRkVF lpaWlhcVFxcVFQ8PDw8PDw8VFxcXFw8PFxYPDw8VDxeWlpaWlkZGRkZGRUVFRUVFRUVGRkZGRUaWRkVF
RUVGlpaWlpaWjZSTk42TjI6Ojo6OjZWWkJSUlpaNk5OTk42WlpaWlpaWlpaWlpaWBAUGBgYFBgYMBQYA RUVGlpaWlpaWjZSTk42TjI6Ojo6OjZWWkJSUlpaNk5OTk42WlpaWlpaWlpaWlpaWBAUGBgYFBgYMBQYA
lpaWlpaWlpaWlpaWlpaWlpaWlpaIhwcXDw8NFxcEiIiWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlQICAggJ lpaWlpaWlpaWlpaWlpaWlpaWlpaIhwcXDw8NFxcEiIiWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlQICAggJ
DZaWlpaWlpaWlpaWlpaWlpaWiAaFGhoaGhocAgECAQEBHBwcHBwcHIWFlpaWlpaWlpZETU1FT01NTU1N DZaWlpaWlpaWlpaWlpaWlpaWiAaFGhoaGhocAgECAQEBHBwcHBwcHIWFlpaWlpaWlpZETU1FT01NTU1N
TU1NTU1NTU1NTU1NUQ2WlpaWlpaWlhN+cSdSZl9fX19ZZmFZX1lZYVlmYWFoCpaWlpaWlpaWDX19HyhT TU1NTU1NTU1NTU1NUQ2WlpaWlpaWlhN+cSdSZl9fX19ZZmFZX1lZYVlmYWFoCpaWlpaWlpaWDX19HyhT
X19hWWFZWWVhWWVZYVlhV2gIlpaWlpaWlpYPhH8iIilUZllhWWFhV2FXWWFXYVllaAiWlpaWlpaWlg+C X19hWWFZWWVhWWVZYVlhV2gIlpaWlpaWlpYPhH8iIilUZllhWWFhV2FXWWFXYVllaAiWlpaWlpaWlg+C
giMiIjBUZmFhWVdlWWVlV2VZYVdoCJaWlpaJiYmLMkhIIyckIjBWZVdlYVlhV1dhWWVXZWgIlpaWlick giMiIjBUZmFhWVdlWWVlV2VZYVdoCJaWlpaJiYmLMkhIIyckIjBWZVdlYVlhV1dhWWVXZWgIlpaWlick
JCQkIiAkJCQjHzBYYVdZYVlhZVdhV2FXaAiWlpaWIiIiIiIiIiIiIiIiIjFuXWFhWWFhV2VXZVloCJaW JCQkIiAkJCQjHzBYYVdZYVlhZVdhV2FXaAiWlpaWIiIiIiIiIiIiIiIiIjFuXWFhWWFhV2VXZVloCJaW
lpYvLy8vLy8vLy8vLy8vL0J0WVlhWVllV2FXYWgIlpaWlkBAQEBAQEBAPz9AQEBAbXt3Y11hYVdhV2Fh lpYvLy8vLy8vLy8vLy8vL0J0WVlhWVllV2FXYWgIlpaWlkBAQEBAQEBAPz9AQEBAbXt3Y11hYVdhV2Fh
aAiWlpaWQEBAQEA7Ozs/Pz9AQGyCe3t9b1lXYVllWWFoCJaWlpYsLS0uM0NDOztAQDlre357d359c1pZ aAiWlpaWQEBAQEA7Ozs/Pz9AQGyCe3t9b1lXYVllWWFoCJaWlpYsLS0uM0NDOztAQDlre357d359c1pZ
YVdXYWgIlpaWlpaWlpYShIA6QDo5an17fnt+d3t9e2NZYWFZaAiWlpaWlpaWlg6EezpANUx9e3t3fnd+ YVdXYWgIlpaWlpaWlpYShIA6QDo5an17fnt+d3t9e2NZYWFZaAiWlpaWlpaWlg6EezpANUx9e3t3fnd+
fn19e29XWWFoCJaWlpaWlpaWDoSANTpLfXt+fn53fnd+e3t7gHNdXWgIlpaWlpaWlpYRgHs0Sn50d3d3 fn19e29XWWFoCJaWlpaWlpaWDoSANTpLfXt+fn53fnd+e3t7gHNdXWgIlpaWlpaWlpYRgHs0Sn50d3d3
d3d3d3R3d3d3d3ZkaQiWlpaWlpaWlhNhXUddV1dXV1dXV1lXV1dXV1dXWVdmCJaWlpaWlpaWGRcQFA8P d3d3d3R3d3d3d3ZkaQiWlpaWlpaWlhNhXUddV1dXV1dXV1lXV1dXV1dXWVdmCJaWlpaWlpaWGRcQFA8P
EBAQEBQNEBAQEBAQEA8QEBcYlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaW EBAQEBQNEBAQEBAQEA8QEBcYlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaW
lpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaW lpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaW
lpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaW lpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaW
lpb/////wAAAA8AAAAPgAAIH4ABGB//AA///wAP///Af//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADwAA lpb/////wAAAA8AAAAPgAAIH4ABGB//AA///wAP///Af//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADwAA
AA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////////////// AA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////
/////////////ygAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAAAAAAAAAAAAEAAAABAABORjYAZlxGAGNZ /////////////ygAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAAAAAAAAAAAAEAAAABAABORjYAZlxGAGNZ
QwBkXEQAYVdDAGRaRABmWkQAZFxEAGZcRQBmXEYAaF5HAGZcRgBmXEYAa2BJAHltUwB6blQAe29VAHxu QwBkXEQAYVdDAGRaRABmWkQAZFxEAGZcRQBmXEYAaF5HAGZcRgBmXEYAa2BJAHltUwB6blQAe29VAHxu
VAB8cFYAf3NZAE5GNgBkXEQAa2FKAB66agBmXEYAd2tSAHltUwBmXEYAZlxGAGZcRwCupJAArqSQALGk VAB8cFYAf3NZAE5GNgBkXEQAa2FKAB66agBmXEYAd2tSAHltUwBmXEYAZlxGAGZcRwCupJAArqSQALGk
kACdknwAnZV8ABO6aAAXumgAGbppABq6aQAbu2oAGbxqABy6aAAeumgAHrtqABy8aAAcvGoAHrxqACC8 kACdknwAnZV8ABO6aAAXumgAGbppABq6aQAbu2oAGbxqABy6aAAeumgAHrtqABy8aAAcvGoAHrxqACC8
awAivG0AJb5wACm/cgA6o2MAKcBxAEyzdgBSuHoAQMN7AB68agAcvGoANdSFADfWhwA11ocALdSFADHU awAivG0AJb5wACm/cgA6o2MAKcBxAEyzdgBSuHoAQMN7AB68agAcvGoANdSFADfWhwA11ocALdSFADHU
hgAy1IYAMtaFADXUhQA01IcANdSHADXWhQA11ocAN9aFADfWhwA11YgAN9WJADrVigA81osAP9aMAELX hgAy1IYAMtaFADXUhQA01IcANdSHADXWhQA11ocAN9aFADfWhwA11YgAN9WJADrVigA81osAP9aMAELX
jQBG2Y8AVtmUAGLNiwBnzpAAeuClAIZ5XACNgWkAkYNlAJaHaACSk28AqJh1AKqadwCtnXoAoqB7AK+g jQBG2Y8AVtmUAGLNiwBnzpAAeuClAIZ5XACNgWkAkYNlAJaHaACSk28AqJh1AKqadwCtnXoAoqB7AK+g
fACxoHwAs6F9ALWjfwCupJAArqSUAK6kkACvpZEArqSUALKokQCyqJQApJmEAKechwC4o4IAvKqEAL2x fACxoHwAs6F9ALWjfwCupJAArqSUAK6kkACvpZEArqSUALKokQCyqJQApJmEAKechwC4o4IAvKqEAL2x
mAC9sJsAvbKbAL21ngCJ0I4Ai9GVAJXdnQCd05MAjtilAJjksQCb5bQApdeYAKvZmgCz2p0AudufAK7e mAC9sJsAvbKbAL21ngCJ0I4Ai9GVAJXdnQCd05MAjtilAJjksQCb5bQApdeYAKvZmgCz2p0AudufAK7e
oAC/3KEAteq8ALvtxADAsJsAyN2jANLepQDX4q8A3ee9APvjsQD747IA++OzAPvltwD947EA/eOyAP3l oAC/3KEAteq8ALvtxADAsJsAyN2jANLepQDX4q8A3ee9APvjsQD747IA++OzAPvltwD947EA/eOyAP3l
sQD95bMA/+WzAP3mtgD75bgA/+W5AP/oswD96LYA/+i2AP/puQDB7scAx+/JAM3vzADV8M4A3fHQAOLs sQD95bMA/+WzAP3mtgD75bgA/+W5AP/oswD96LYA/+i2AP/puQDB7scAx+/JAM3vzADV8M4A3fHQAOLs
zwDh7NQA4fLSAOby1ADq89YA6PTVAPvowAD76MEA/evEAP7x0AD+8dEA/vHSAP7y0gD/8tUA//PVAP7z zwDh7NQA4fLSAOby1ADq89YA6PTVAPvowAD76MEA/evEAP7x0AD+8dEA/vHSAP7y0gD/8tUA//PVAP7z
2wD+9NsA/vXbAP713AD/9d4A/vbeAP/23gD/9eEA/vfhAP734wD/9eQA//jkAHpuVACup5AAd2hOAHVp 2wD+9NsA/vXbAP713AD/9d4A/vbeAP/23gD/9eEA/vfhAP734wD/9eQA//jkAHpuVACup5AAd2hOAHVp
TwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA TwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt7e3t7e3 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt7e3t7e3
t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3 t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3
t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3GAwMDAMMDAwMBAQMDAMDAwMDAwMDBAwMDAMK t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3GAwMDAMMDAwMBAQMDAMDAwMDAwMDBAwMDAMK
AwMEAwMDAwMDAwMDDAwAt7e3t7e3Dg0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0ODQ0NDQ0NDQ0N AwMEAwMDAwMDAwMDDAwAt7e3t7e3Dg0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0ODQ0NDQ0NDQ0N
DQ0Kt7e3t7e3U1NTDw8PDw8PHlNTUw8PDx9THxMTEx4PD1NTEh9TVw8PDw8PDw8PDxITt7e3t7e3tyB/ DQ0Kt7e3t7e3U1NTDw8PDw8PHlNTUw8PDx9THxMTEx4PD1NTEh9TVw8PDw8PDw8PDxITt7e3t7e3tyB/
Z2dnZ2dnZ2d/aGdnaGhsaGhoZ2doZ25oaGhotyFoZ2dnZ2hnaCC1t7e3t7e3t7UeVGIeHmIeACIfZyFT Z2dnZ2dnZ2d/aGdnaGhsaGhoZ2doZ25oaGhotyFoZ2dnZ2hnaCC1t7e3t7e3t7UeVGIeHmIeACIfZyFT
Zx4eZ2JiZxRnU7RiYlQCt7RiYiBiYiBiYrS3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3 Zx4eZ2JiZxRnU7RiYlQCt7RiYiBiYiBiYrS3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3
t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3GwAZGBgYGBgYGBgYGBgYGQAbt7e3t7e3t7e3 t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3GwAZGBgYGBgYGBgYGBgYGQAbt7e3t7e3t7e3
t7e3t7e3t7e3t7e3t7e3t7e3t7e3DB0NCggKCAoKCAgICAgKCQAMt7e3t7e3t7e3t7e3t7e3t7e3t7e3 t7e3t7e3t7e3t7e3t7e3t7e3t7e3DB0NCggKCAoKCAgICAgKCQAMt7e3t7e3t7e3t7e3t7e3t7e3t7e3
t7e3t7e3t7e3t7e3tFMTEhISEhISExKzt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3 t7e3t7e3t7e3t7e3tFMTEhISEhISExKzt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3
txsEBAQEBAQEBBu3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3txQAAAAAAAAAABS3 txsEBAQEBAQEBBu3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3txQAAAAAAAAAABS3
t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3FQUFBQUFBQUJCQgJCAgJCAkJBQUFBQUFCg0FBQUFBQUFBQUV t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3FQUFBQUFBQUJCQgJCAgJCAkJBQUFBQUFCg0FBQUFBQUFBQUV
t7e3t7e3t7e3t7e3ElRZWVdaWVhYWFhYWFhYWFhYWFhYWFhZWFhYWFhYWVlYWVMHt7e3t7e3t7e3t7e3 t7e3t7e3t7e3t7e3ElRZWVdaWVhYWFhYWFhYWFhYWFhYWFhZWFhYWFhYWVlYWVMHt7e3t7e3t7e3t7e3
E26mkm9ykYmJioqKioqKioqKioqKioqKioqKioqKioqKil4Ft7e3t7e3t7e3t7e3Em2vrXAjdpGKiYmJ E26mkm9ykYmJioqKioqKioqKioqKioqKioqKioqKioqKil4Ft7e3t7e3t7e3t7e3Em2vrXAjdpGKiYmJ
iYmJiYmJiYmJiYmJiYmJiYmJiYmJklwFt7e3t7e3t7e3t7e3DmyxsnMoJHeRiomJiYmJiYmJiYmJiYmJ iYmJiYmJiYmJiYmJiYmJiYmJiYmJklwFt7e3t7e3t7e3t7e3DmyxsnMoJHeRiomJiYmJiYmJiYmJiYmJ
iYmJiYmJiYmJilwFt7e3t7e3t7e3t7e3Em2xsXMoLiR4kYWKiYmJiYmJiYmJiYmJiYmJiYmJiYmKkl0F iYmJiYmJiYmJilwFt7e3t7e3t7e3t7e3Em2xsXMoLiR4kYWKiYmJiYmJiYmJiYmJiYmJiYmJiYmKkl0F
t7e3t7e3t7e3t7e3D2yxsXMoLiwkeZCKioqJiYmJiYmJiYmJiYmJiYmJiYmKkFoFt7e3t7e3t7e3t7e3 t7e3t7e3t7e3t7e3D2yxsXMoLiwkeZCKioqJiYmJiYmJiYmJiYmJiYmJiYmKkFoFt7e3t7e3t7e3t7e3
EmyxsXMoLi4kLn+KiomJiYmJiYmJiYmJiYmJiYmJiYmJkF0Ft7e3t7e3t7e3t7e3Dn6ysnMuLi4uKSl/ EmyxsXMoLi4kLn+KiomJiYmJiYmJiYmJiYmJiYmJiYmJkF0Ft7e3t7e3t7e3t7e3Dn6ysnMuLi4uKSl/
kYqJiYmJiYmJiYmJiYmJiYmJiYmJkF0Ft7e3t7e3OBcXFxc5MzZRUTcuLi4uLiwwgJGJiYmJiYmJiYmJ kYqJiYmJiYmJiYmJiYmJiYmJiYmJkF0Ft7e3t7e3OBcXFxc5MzZRUTcuLi4uLiwwgJGJiYmJiYmJiYmJ
iYmJiYmJiYmJkF0Kt7e3t7e3KS8uLi4uLi4oKSkuLi4uLi4sMIGJiYmJiYmJiYmJiYmJiYmJiYmJkGgK iYmJiYmJiYmJkF0Kt7e3t7e3KS8uLi4uLi4oKSkuLi4uLi4sMIGJiYmJiYmJiYmJiYmJiYmJiYmJkGgK
t7e3t7e3Ly4uLi4uLi4uLi4uLi4uLi4uKTGCioiJiYmJiYmJiYmJiYmJiYmJkFwFt7e3t7e3KS4uLi4u t7e3t7e3Ly4uLi4uLi4uLi4uLi4uLi4uKTGCioiJiYmJiYmJiYmJiYmJiYmJkFwFt7e3t7e3KS4uLi4u
Li4uLi4uLi4uLi4uLik0mYqIiYmJiYmJiYmJiYmJiYmJkFwFt7e3t7e3KSkpKSkpKSkpKSkpKSkuLCkp Li4uLi4uLi4uLi4uLik0mYqIiYmJiYmJiYmJiYmJiYmJkFwFt7e3t7e3KSkpKSkpKSkpKSkpKSkuLCkp
KSkpNJmghImJiYmJiYmJiYmJiYmJkFwFt7e3t7e3RkZKREZKRERGRkZKRkpEREpGRkpETpyypISIiYmJ KSkpNJmghImJiYmJiYmJiYmJiYmJkFwFt7e3t7e3RkZKREZKRERGRkZKRkpEREpGRkpETpyypISIiYmJ
iYmJiYmJiYmJkFwFt7e3t7e3QkZGRkZGRkZGRkZGRkZGREZGRkJNnLKusq2NiYmJiYmJiYmJiYmJkFwF iYmJiYmJiYmJkFwFt7e3t7e3QkZGRkZGRkZGRkZGRkZGREZGRkJNnLKusq2NiYmJiYmJiYmJiYmJkFwF
t7e3t7e3RERGRkZGRkZGRkZGRkZGRkZGREubsq6urq+vn4iJiYmJiYmJiYmJkFwFt7e3t7e3SUZGRkZE t7e3t7e3RERGRkZGRkZGRkZGRkZGRkZGREubsq6urq+vn4iJiYmJiYmJiYmJkFwFt7e3t7e3SUZGRkZE
SURBQkJGRkZGRkRES5qyrq6urq6ysaSEiImJiYmJiYmJkFwJt7e3t7e3Ojs7Ozs8NVBSUk9ERkZGRkRK SURBQkJGRkZGRkRES5qyrq6urq6ysaSEiImJiYmJiYmJkFwJt7e3t7e3Ojs7Ozs8NVBSUk9ERkZGRkRK
l7Gurq6urq6urrKojYmJiYmJiYmJkFwJt7e3t7e3t7e3t7e3EWyysnVERkZGREmWsq6urq6urq6urq6y l7Gurq6urq6urrKojYmJiYmJiYmJkFwJt7e3t7e3t7e3t7e3EWyysnVERkZGREmWsq6urq6urq6urq6y
r5+DiYmJiYmJkVwFt7e3t7e3t7e3t7e3D2yxsXVERkZESZWyrq6urq6urq6urq6usrGhhIOJiYmJkVwF r5+DiYmJiYmJkVwFt7e3t7e3t7e3t7e3D2yxsXVERkZESZWyrq6urq6urq6urq6usrGhhIOJiYmJkVwF
t7e3t7e3t7e3t7e3EmyxsXVERERClLGurq6urq6urq6urq6urq6vqIWJiYmKkFwFt7e3t7e3t7e3t7e3 t7e3t7e3t7e3t7e3EmyxsXVERERClLGurq6urq6urq6urq6urq6vqIWJiYmKkFwFt7e3t7e3t7e3t7e3
Dm2xsXVERECTsa6urq6urq6urq6urq6urq6usq6fiYmKkFwFt7e3t7e3t7e3t7e3Dm2ysnVAQH2yrq6u Dm2xsXVERECTsa6urq6urq6urq6urq6urq6usq6fiYmKkFwFt7e3t7e3t7e3t7e3Dm2ysnVAQH2yrq6u
rq6urq6urq6urq6urq6urq6yoYSIilwFt7e3t7e3t7e3t7e3EmutrXQ9fK2nqKenp6enp62np6enp6en rq6urq6urq6urq6urq6urq6yoYSIilwFt7e3t7e3t7e3t7e3EmutrXQ9fK2nqKenp6enp62np6enp6en
p6etp6etraaKklwFt7e3t7e3t7e3t7e3EmqRkXF6ioqKioqKioqKiomJioqKioqKioqKioqKioqFkV4F p6etp6etraaKklwFt7e3t7e3t7e3t7e3EmqRkXF6ioqKioqKioqKiomJioqKioqKioqKioqKioqFkV4F
t7e3t7e3t7e3t7e3DlZfX1tpX15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eaVUFt7e3t7e3t7e3t7e3 t7e3t7e3t7e3t7e3DlZfX1tpX15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eaVUFt7e3t7e3t7e3t7e3
Gg4SDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8ODhIODhIOEhIZt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3 Gg4SDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8ODhIODhIOEhIZt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3
t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3 t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3
t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3 t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3
t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3 t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3
t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3 t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3
t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3 t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3
t7e3t7e3t7e3t7e3t7e3t7e3////////AAD///////8AAOAAAAAABwAA4AAAAAAHAADgAAAAAAcAAPAA t7e3t7e3t7e3t7e3t7e3t7e3////////AAD///////8AAOAAAAAABwAA4AAAAAAHAADgAAAAAAcAAPAA
AABABwAA8AAAAEAPAAD///////8AAP/+AAB//wAA//4AAH//AAD//8AD//8AAP//4Af//wAA///gB/// AABABwAA8AAAAEAPAAD///////8AAP/+AAB//wAA//4AAH//AAD//8AD//8AAP//4Af//wAA///gB///
AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwA AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwA
AAAAPwAA/AAAAAA/AAAAAAAAAD8AAAAAAAAAPwAAAAAAAAA/AAAAAAAAAD8AAAAAAAAAPwAAAAAAAAA/ AAAAPwAA/AAAAAA/AAAAAAAAAD8AAAAAAAAAPwAAAAAAAAA/AAAAAAAAAD8AAAAAAAAAPwAAAAAAAAA/
AAAAAAAAAD8AAAAAAAAAPwAAAAAAAAA/AAAAAAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwA AAAAAAAAAD8AAAAAAAAAPwAAAAAAAAA/AAAAAAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwA
AAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAP///////wAA//////// AAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAP///////wAA////////
AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAiVBORw0KGgoAAAANSUhEUgAA AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAiVBORw0KGgoAAAANSUhEUgAA
AQAAAAEACAYAAABccqhmAAAgTklEQVR42u2de3Qc1Z3nv7e7ql/qVkvWA8s2NrZxgkkgNgaCzMMvbLAZ AQAAAAEACAYAAABccqhmAAAgTklEQVR42u2de3Qc1Z3nv7e7ql/qVkvWA8s2NrZxgkkgNgaCzMMvbLAZ
A5mJYR5hZ3czszs7hzx2MsmZncyyezaHsznJJJshzuYByTyS2YwhhIfBxjZCtjE2OBiTByQBjCFYlpGl A5mJYR5hZ3czszs7hzx2MsmZncyyezaHsznJJJshzuYByTyS2YwhhIfBxjZCtjE2OBiTByQBjCFYlpGl
lrpbanVXV9XdP+Qrl9r9rm7V6/c5R6dLVXVv/erW/X3v7956XPbAjj0gCMKb+Kw2gCAI6yABIAgPQwJA lrpbanVXV9XdP+Qrl9r9rm7V6/c5R6dLVXVv/erW/X3v7956XPbAjj0gCMKb+Kw2gCAI6yABIAgPQwJA
EB6GBIAgPAwJAEF4GBIAgvAwJAAE4WFIAAjCw5AAEISHIQEgCA9DAkAQHoYEgCA8DAkAQXgYEgCC8DAk EB6GBIAgPAwJAEF4GBIAgvAwJAAE4WFIAAjCw5AAEISHIQEgCA9DAkAQHoYEgCA8DAkAQXgYEgCC8DAk
AAThYUgACMLDkAAQhIchASAID0MCQBAehgSAIDwMCQBBeBgSAILwMCQABOFhSAAIwsOQABCEhyEBIAgP AAThYUgACMLDkAAQhIchASAID0MCQBAehgSAIDwMCQBBeBgSAILwMCQABOFhSAAIwsOQABCEhyEBIAgP
QwJAEB6GBIAgPAwJAEF4GBIAgvAwJAAE4WFIAAjCw5AAEISHIQEgCA9DAkAQHoYEgCA8DAkAQXgYEgCC QwJAEB6GBIAgPAwJAEF4GBIAgvAwJAAE4WFIAAjCw5AAEISHIQEgCA9DAkAQHoYEgCA8DAkAQXgYEgCC
8DAkAAThYSSrDShk1+6dS9IjQ9/vXnBJgvl9d/h8PhIpwrbMW3Ax0sog0kNq0e2TE+MIBINHU2Ojh+VA 8DAkAAThYSSrDShk1+6dS9IjQ9/vXnBJgvl9d/h8PhIpwrbMW3Ax0sog0kNq0e2TE+MIBINHU2Ojh+VA
aPuWzVvfttpmI+yBHXustmGagy8c+AqAvwaAWLdUslAJwmmI+jx48q0Dd3/ik+ustkdgm9a1f3/fozjn aPuWzVvfttpmI+yBHXustmGagy8c+AqAvwaAWLdUslAJwmmI+jx48q0Dd3/ik+ustkdgm9a1f3/fozjn
/ADI+QlXIerzRYuW3PjEE4983Wp7BLYQgIMvHPiKX5Y+ZrUdBNFsfD6fLz6n89PP7X/2S1bbAthAAPr6 /ADI+QlXIerzRYuW3PjEE4983Wp7BLYQgIMvHPiKX5Y+ZrUdBNFsfD6fLz6n89PP7X/2S1bbAthAAPr6
90VhaPkJws3kFQWZ8VR2PDn6uV27n7zZanssFwA5ELgv1m27sUiCaDhKLouJ1BhURYkACOma+hdW22S5 90VhaPkJws3kFQWZ8VR2PDn6uV27n7zZanssFwA5ELgv1m27sUiCaDhKLouJ1BhURYkACOma+hdW22S5
AOi6fhv19wk3o+u6rmnqUCadmrle07ZYbZvlTS9j7CKrbSCIZqHkssikUz4A3VbbUgw7CMCcctv/5K/u AOi6fhv19wk3o+u6rmnqUCadmrle07ZYbZvlTS9j7CKrbSCIZqHkssikUz4A3VbbUgw7CMCcctv/5K/u
K5ve5/cDAHRNK7p9WP0ROqVPWH2aJW0vZfds5tFU2Bh8vg7rbGRjAG+z7PS/9bf3ltscssywc1guAJUQ K5ve5/cDAHRNK7p9WP0ROqVPWH2aJW0vZfds5tFU2Bh8vg7rbGRjAG+z7PS/9bf3ltscssywc1guAJUQ
Dl7vfsPjPwBCQHfwT60+FVPn1+w8mkeHxTZ2WF0Atsb2AmAWHXkMZb8LAOiUPmFzZyGI2cXyQcDZYij7 Dl7vfsPjPwBCQHfwT60+FVPn1+w8mkeHxTZ2WF0Atsb2AmAWHXkMZb8LAOiUPmFzZyGI2cXyQcDZYij7
XQyrP7LaDIKwFZ4RAGBKBIZy/2y1GQRhGzwlAAAwnP0BiQBBnMNzAiDGBEgECMKDAiBweyTQ4ge6glZb XQyrP7LaDIKwFZ4RAGBKBIZy/2y1GQRhGzwlAAAwnP0BiQBBnMNzAiDGBEgECMKDAiBweyTQ4ge6glZb
Qdgd298FuLLtQo1SNI6An12wDAA5nSPoO///r5LF8xWRQE9Iwofi9xTNu9y6Stsm1VGEpfaqbFc0DgAl Qdgd298FuLLtQo1SNI6An12wDAA5nSPoO///r5LF8xWRQE9Iwofi9xTNu9y6Stsm1VGEpfaqbFc0DgAl
j1HtuRejJ1x/2ReWZeHxjHaXsqVWe6st30rHLmZrqWMXnqdxXU7nM9Ynchxnc/WXqd2wvQAUw3ghCy9q j1HtuRejJ1x/2ReWZeHxjHaXsqVWe6st30rHLmZrqWMXnqdxXU7nM9Ynchxnc/WXqd2wvQAUw3ghCy9q
4YWsxM/HvgUA0yJQrJKUq7SlthVz/lK21+IU5c69HopVfkHh+sLjVWNLpX3KHd9MvuVsrXSexnXiN6Ny 4YWsxM/HvgUA0yJQrJKUq7SlthVz/lK21+IU5c69HopVfkHh+sLjVWNLpX3KHd9MvuVsrXSexnXiN6Ny
DE5yTNj4mat6cKQANJpCEfAStQqm245fDYkcx6lJbj4jG0ICcI5fjn0PgDdFgLiQnM7BOHAmyzGWt9qa DE5yTNj4mat6cKQANJpCEfAStQqm245fDYkcx6lJbj4jG0ICcI5fjn0PgDdFgLiQnM7BOHAmyzGWt9qa
5kECcA4deRIBYhpNhytD/kJIAAzoyHu6O0BMtfwTebg25C/E1QJQOIJbLSQC3kTROE5l3N/qG3G1AJiB 5kECcA4deRIBYhpNhytD/kJIAAzoyHu6O0BMtfwTebg25C/E1QJQOIJbLSQC3kTROE5l3N/qG3G1AJiB
RMBbJHIco4q3nB9wuQCYHWGmMQF3Iwb6RhR33duvBVcLgFloYND9vOexkL8QEoAKkAi4j5zOXfdEX714 RMBbJHIco4q3nB9wuQCYHWGmMQF3Iwb6RhR33duvBVcLgFloYND9vOexkL8QEoAKkAi4j5zOXfdEX714
9l2AWhB3B95IP2K1KYRJyPlnQhFADbyc+Bp0ruKy1j+y2hSiDnI6x29T3ri9Vy0kADXyyug/QOMqdQcc 9l2AWhB3B95IP2K1KYRJyPlnQhFADbyc+Bp0ruKy1j+y2hSiDnI6x29T3ri9Vy0kADXyyug/QOMqdQcc
xuCkTq1+EUgA6uCXY9+D7AvhA7FtVptCVCCnc5ya8PZAXzlIAOpARx4vJ74GACQCNsar9/ZrwfUC4IMM xuCkTq1+EUgA6uCXY9+D7AvhA7FtVptCVCCnc5ya8PZAXzlIAOpARx4vJ74GACQCNsar9/ZrwfUC4IMM
Hc15m4PGBOwJDfRVjyfuAvggNy3vV0b/ge4O2AgR8pPzV4frI4Bmtf5GXkk8AIC6A1bj5vf2m4XrBWA2 Hc15m4PGBOwJDfRVjyfuAvggNy3vV0b/ge4O2AgR8pPzV4frI4Bmtf5GXkk8AIC6A1bj5vf2m4XrBWA2
oDEBa6GQv35IABoIicDsQ6P85iABaDDUHZgdvPbefrMgAWgwOvIkAk2GWv3GQQLQBIQIMEhYFvuY1ea4 oDEBa6GQv35IABoIicDsQ6P85iABaDDUHZgdvPbefrMgAWgwOvIkAk2GWv3GQQLQBIQIMEhYFvuY1ea4
Crq331hsLwD1fEveDujI41ji6+BQKRJoADTQ1xxsLwBOdH4BdQcaA4X8zcP2AuB0SATMQSF/cyEBmAVI Crq331hsLwD1fEveDujI41ji6+BQKRJoADTQ1xxsLwBOdH4BdQcaA4X8zcP2AuB0SATMQSF/cyEBmAVI
BGrHSSG/rmnw+f1Wm1EXJACzBIlA9TjtvX2nOj9AAjCrkAhUhh7nnV1IAGYZEoHSnEjr1NefZWz9NiDX BGrHSSG/rmnw+f1Wm1EXJACzBIlA9TjtvX2nOj9AAjCrkAhUhh7nnV1IAGYZEoHSnEjr1NefZWz9NiDX
9ayZ9JPqqNWnUBQhAvQW4XnI+a1BSn/o796x0oBVH5p6VVdH/nc+yAvHRlvQ1j4x9X/mkoWPn7rD6jJq 9ayZ9JPqqNWnUBQhAvQW4XnI+a1BSn/o796x0oBVH5p6VVdH/nc+yAvHRlvQ1j4x9X/mkoWPn7rD6jJq
CvSwED3OawckAAutNEC8ruuDvBAAWtvHoE9tWqhH3kHGxa2Clx8Wonv79sA2YwCz8d6+HfHimEBG5Xhr CvSwED3OawckAAutNEC8ruuDvBAAWtvHoE9tWqhH3kHGxa2Clx8Wonv79sA2YwCz8d6+HfHimEBG5Xhr
nFp9O2AbAfAyQgQkFsGS6G1Wm9M0cjrH+5McY97UeltCAmATdORxdOTLAOBKEcioHIOTFPLbDRIAG+FW nFp9O2AbAfAyQgQkFsGS6G1Wm9M0cjrH+5McY97UeltCAmATdORxdOTLAOBKEcioHIOTFPLbDRIAG+FW
EaB7+/aFBMBmuEUExMy7Z7IU8tsZEgAb4gYR0HRQyO8ASABsio48Xhz5ElSecdTdAbq37yxIAGyOkx4W EaB7+/aFBMBmuEUExMy7Z7IU8tsZEgAb4gYR0HRQyO8ASABsio48Xhz5ElSecdTdAbq37yxIAGyOkx4W
UjSOUxlq9Z0ECYDNEQ8L+VnAtt2BnM4p5HcoJAAOwM5jAorG8T4N9DkWW78MRJxHiMCb6cesNmWajMpp UjSOUxlq9Z0ECYDNEQ8L+VnAtt2BnM4p5HcoJAAOwM5jAorG8T4N9DkWW78MRJxHiMCb6cesNmWajMpp
lN/hUATgIOzSHaCBPvdAAuBArOoO5PQph3fKp7qIypAAOAzx0tTRkS9D48qs3h2ggT73QQLgUGazO0Ah lN/hUATgIOzSHaCBPvdAAuBArOoO5PQph3fKp7qIypAAOAzx0tTRkS9D48qs3h2ggT73QQLgUGazO0Ah
v3shAXAwYmCwmZEA3dt3NyQADqdZkYBo9emb/O6GBMAF6MjjF2PfA9CYgUE7hPxO/ta+kyABcAkZ7f2G v3shAXAwYmCwmZEA3dt3NyQADqdZkYBo9emb/O6GBMAF6MjjF2PfA9CYgUE7hPxO/ta+kyABcAkZ7f2G
3B2wy6e6muX8JCwzIQFwEWaeGPRKyE/OPxMSAJdR78Cg1SE/YQ30KLAL0ZHHa8l/wtvjT1e1f06nL/Z4 3B2wy6e6muX8JCwzIQFwEWaeGPRKyE/OPxMSAJdR78Cg1SE/YQ30KLAL0ZHHa8l/wtvjT1e1f06nL/Z4
Fem904OQJesCgbyq4qLYYryfPgkAltriLs5CUp4u2RVQNI5xlVp9ryMBU05oJcL5rbBFCI5VZdCs4y9u Fem904OQJesCgbyq4qLYYryfPgkAltriLs5CUp4u2RVQNI5xlVp9ryMBU05oJcL5rbBFCI5VZdCs4y9u
vwEbFt5fdJuicbxH9/YJ0BiA5eLX6OPLkoQFseuw9dLtCEvtM7YpGofK3fE4L43mNwbPC4DbKOX8ADCi vwEbFt5fdJuicbxH9/YJ0BiA5eLX6OPLkoQFseuw9dLtCEvtM7YpGofK3fE4L43mNwbPC4DbKOX8ADCi
uOclHnL+xkAC4CIWt99QsuWnkJ8oBgmASxDO72dtM9bTN/mJcpAAuIDCll/RphzeTSE/0RxIABxOsbDf uOclHnL+xkAC4CIWt99QsuWnkJ8oBgmASxDO72dtM9bTN/mJcpAAuIDCll/RphzeTSE/0RxIABxOsbDf
LQN9dscNA5EkAA6mWMtP9/ZnD6c7P0AC4FgWtfVe4PwU8hO1QgLgQBa19eKOZd9GWGqfbvXd/hIP0RxI LQN9dscNA5EkAA6mWMtP9/ZnD6c7P0AC4FgWtfVe4PwU8hO1QgLgQBa19eKOZd9GWGqfbvXd/hIP0RxI
AByGMeynkJ8wCwmAgzCG/RmV00AfYRoSAIdgDPsTOU4hP9EQSAAcgHB+P2vD7yZ05HUgrTj/FhRhPSQA AByGMeynkJ8wCwmAgzCG/RmV00AfYRoSAIdgDPsTOU4hP9EQSAAcgHB+P2vD7yZ05HUgrTj/FhRhPSQA
NueDF6/ALXO/DQA4k+VIZKeafbs4vxvuhXsZEgCbIksSlvR8GL0dP8Cb4/Hp9XZzNrvZYzekQCADAKqi NueDF6/ALXO/DQA4k+VIZKeafbs4vxvuhXsZEgCbIksSlvR8GL0dP8Cb4/Hp9XZzNrvZYzekQCADAKqi
RKy2pah9VhtAXMhFscXQeCfWdX8Xw7l28xkSlpFXcpADQavNKAkJgA1RtDg2LvkOhnPtNNDncBhYRFUU RKy2pah9VhtAXMhFscXQeCfWdX8Xw7l28xkSlpFXcpADQavNKAkJgA1RtDg2LvkOhnPtNNDncBhYRFUU
q80oCQmAzeiMXoPrLv420tocq00h6sBpYyL0UVAb0Rm9BqvmfxsaOqw2hagTJzk/UEcEYPU39NyKaPnJ q80oCQmAzeiMXoPrLv420tocq00h6sBpYyL0UVAb0Rm9BqvmfxsaOqw2hagTJzk/UEcEYPU39NyKaPnJ
+YnZpO4uQL1CUPjVXxISoD2yglp+whIc3QVwwyfE2yMrcO3FD8HnI+cnZh9pYMedc+bf/fiHq01Q2GIP +YnZpO4uQL1CUPjVXxISoD2yglp+whIc3QVwwyfE2yMrcO3FD8HnI+cnZh9pYMedc+bf/fiHq01Q2GIP
7LjzV/PvfvzDb/7jpuFl/2FvZ+H+Azvu/JVPDsR6fv/hRcXS547+x4OFaSbVgenlv/zzPzN1gv/vtW2z 7LjzV/PvfvzDb/7jpuFl/2FvZ+H+Azvu/JVPDsR6fv/hRcXS547+x4OFaSbVgenlv/zzPzN1gv/vtW2z
U5J1IPr85Pz2w2mDefUibdy0dQyjWw/Vm8HlmwCMbj10+Z0ARu9GX/++KABsWLdxfHo7MNb3U9+ocb2g U5J1IPr85Pz2w2mDefUibdy0dQyjWw/Vm8HlmwCMbj10+Z0ARu9GX/++KABsWLdxfHo7MNb3U9+ocb2g
f7BvKNg10q0mLgIAXH/Nqm+8dGLgs/lE94SuaRMXt17bbXUhNYPO6DW4sueb5Pw2xQvODzThNmChg1da f7BvKNg10q0mLgIAXH/Nqm+8dGLgs/lE94SuaRMXt17bbXUhNYPO6DW4sueb5Pw2xQvODzThNmChg1da
7/P7W4TzA8ALPzv2WeAiABx+v+Rq5w9KF5nPjCBMYPkYANd5uNh6BtZitW3NgJyfsBOWC4DP57PchtmC 7/P7W4TzA8ALPzv2WeAiABx+v+Rq5w9KF5nPjCBMYPkYANd5uNh6BtZitW3NgJyfsBOWC4DP57PchtmC
nJ+wG55xPqtpj6wg5ydsh/PvozkAGu0n7ApFAE1GtPzk/Naha/RGVSlcLwBWPizUHlmBlfO/09Swnyp3 nJ+wG55xPqtpj6wg5ydsh/PvozkAGu0n7ApFAE1GtPzk/Naha/RGVSlcLwBWPizUHlmBlfO/09Swnyp3
ZbxyS68eXC8AVj1qPBvOD1DlJszhegGwgtlyfoIwCwlAgyHndydu7WqRADQQcn570gjndWtXiwSgQZDz ZbxyS68eXC8AVj1qPBvOD1DlJszhegGwgtlyfoIwCwlAgyHndydu7WqRADQQcn570gjndWtXiwSgQZDz
2xe3Om8jIAFoAOT8hFMhATAJOT/hZOhJQBOQ80/hlXfn64GDZwBMfxrcbvMDkADUCTn/ecj5S2PnOQEA 2xe3Om8jIAFoAOT8hFMhATAJOT/hZOhJQBOQ80/hlXfn64GDZwBMfxrcbvMDkADUCTn/ecj5S2PnOQEA
6gLUBTk/USt5JWe1CUWhCKBGyPmJWlAVJcLBM3aNBEgAaiAeXk7OT9SMnWcHoi5AlbRHVmDVgn8k53cp 6gLUBTk/USt5JWe1CUWhCKBGyPmJWlAVJcLBM3aNBEgAaiAeXk7OT9SMnWcHoi5AlbRHVmDVgn8k53cp
bn3SrxIkAFUQDy/HivnbyfldjFcHMqkLUAHq8xNuhiKAMlDLT7gdigBKEA8vpz4/4XooAigCOT/hFUgA bn3SrxIkAFUQDy/HivnbyfldjFcHMqkLUAHq8xNuhiKAMlDLT7gdigBKEA8vpz4/4XooAigCOT/hFUgA
CiDnJ7wECYABcn7Ca7h2DCCjcgxO8qr3j4eX46oFD5LzE57CdQKQ0zkSOY6zNTx6LZw/JM232nyCmFVc CiDnJ7wECYABcn7Ca7h2DCCjcgxO8qr3j4eX46oFD5LzE57CdQKQ0zkSOY6zNTx6LZw/JM232nyCmFVc
JQA5nePUBMdEDQ91UdhPNAsnPF3oGgFI5DhOFQn5ZUkq+Wlwcn6imTjh6UJXDAIOTupFnR9AWed3Qp/f JQA5nePUBMdEDQ91UdhPNAsnPF3oGgFI5DhOFQn5ZUkq+Wlwcn6imTjh6UJXDAIOTupFnR9AWed3Qp/f
ilbECS0X0RgcHQGIgb5aQn7AWX1+K1oRJ7RcRGNwpADkdI6JPEq2+uVwkvMTRLNxnADU2+oD5PwEUYij ilbECS0X0RgcHQGIgb5aQn7AWX1+K1oRJ7RcRGNwpADkdI6JPEq2+uVwkvMTRLNxnADU2+oD5PwEUYij
BCCjcrw1XnurD7jL+ekjnESjcMwgYCI35fxigErXtKoHq9zm/LWevx2xyn63lF+jsH0EUCzkr+XCucn5 BCCjcrw1XnurD7jL+ekjnESjcMwgYCI35fxigErXtKoHq9zm/LWevx2xyn63lF+jsH0EUCzkr+XCucn5
3YTP77fMAcnxz2O5AOQVBXIgUHSbksviuw8+WPMFM1auM4PXYKLnqbL71JpnIymWrwjvqz1esf1L5Wv2 3YTP77fMAcnxz2O5AOQVBXIgUHSbksviuw8+WPMFM1auM4PXYKLnqbL71JpnIymWrwjvqz1esf1L5Wv2
HGq11+wxG32dqsmvHptLpZECgUypuQCkQCBTd8E0CMsFIJNOJeMdnfHC9ZMT48hNZvD6q8fOG1ukMMW6 HGq11+wxG32dqsmvHptLpZECgUypuQCkQCBTd8E0CMsFIJNOJeMdnfHC9ZMT48hNZvD6q8fOG1ukMMW6
UgUdDEfwm1++Wr4Qzl2IaiZtKDxOpbTlLnJeyYGB1TVRhMhXy6t5zvV4PXlUOr9ylbeevEqVU6ljlrre UgUdDEfwm1++Wr4Qzl2IaiZtKDxOpbTlLnJeyYGB1TVRhMhXy6t5zvV4PXlUOr9ylbeevEqVU6ljlrre
5cq71v3qPQ9BpbKSSjRuAKDm81mztpnF8jEAxvDo3J550//nFQXjyTFd09QLHKdYAYt1pS60pqp6JRtU 5cq71v3qPQ9BpbKSSjRuAKDm81mztpnF8jEAxvDo3J550//nFQXjyTFd09QLHKdYAYt1pS60pqp6JRtU
RYnUW1Eqpc0ruQu+Cd+Ib8SL4zbS+UW+xZYbkVep/Eods9T1LmeXFAhkjOLY6DIplW815zbDTjmgc11/ RYnUW1Eqpc0ruQu+Cd+Ib8SL4zbS+UW+xZYbkVep/Eods9T1LmeXFAhkjOLY6DIplW815zbDTjmgc11/
qxH2mcFyAfBJ8r+99+47AKZC/txkRlfzig8cIUkOVHTeSqh5paHnWKtTyIHg9OwwwvHF/3b9VryT0fJq qxH2mcFyAfBJ8r+99+47AKZC/txkRlfzig8cIUkOVHTeSqh5paHnWKtTyIHg9OwwwvHF/3b9VryT0fJq
XjioX5bkZhxD5FtvCz4dRTB22KJimsZyAdiy+fZnfT52NK8oULJZXTismld8jXZeKzC2FkaHt+tMMU7H XjioX5bkZhxD5FtvCz4dRTB22KJimsZyAdiy+fZnfT52NK8oULJZXTismld8jXZeKzC2FkaHt+tMMU7H
L0uycNBGRAAiopACgQxjvqRRYCRZDtWTp6ooEV3X3rjjjm1/ZXV52cLBJjOZv8ukU0mr7WgGha2F+KXW L0uycNBGRAAiopACgQxjvqRRYCRZDtWTp6ooEV3X3rjjjm1/ZXV52cLBJjOZv8ukU0mr7WgGha2F+KXW
v3k0MgIojCjqFRhJDujij/l8J3xgf2t1OQE2EYAtm29/1i/L2zRVTYt1kiRDak4Edz7/BnQxqkHLq3lJ v3k0MgIojCjqFRhJDujij/l8J3xgf2t1OQE2EYAtm29/1i/L2zRVTYt1kiRDak4Edz7/BnQxqkHLq3lJ
lkNqPp8VrUalCKBZtrXO6fy1+BXLbkKMi1RyzmrLVzi8mWhCCgQyIprVNPUVvyT/ly2/97HHrS4rwCYC lkNqPp8VrUalCKBZtrXO6fy1+BXLbkKMi1RyzmrLVzi8mWhCCgQyIprVNPUVvyT/ly2/97HHrS4rwCYC
AEyJQCTWevFkOnUgFp/zmF+WEWmNN81BVTUPvySZOv9qb+OIFkOS5ZAYFKwmAojEWpt1+paPPk+VR/0i AEyJQCTWevFkOnUgFp/zmF+WEWmNN81BVTUPvySZOv9qb+OIFkOS5ZAYFKwmAojEWpt1+paPPk+VR/0i
ZxzsK0Y1g6Pxjq5ENcfS8mre2OpXG2FM34nI57PM53s5n1ceiERb1wPs7eaUaO2wB3bssdqGC+jr3xfN ZxzsK0Y1g6Pxjq5ENcfS8mre2OpXG2FM34nI57PM53s5n1ceiERb1wPs7eaUaO2wB3bssdqGC+jr3xfN
ZSevA4C8ktsiB4K71JxymjP+Z4yzh4y/ciC0PRQOh7OTmZ68ktsSi7d/37icTo5+UuxbbFul9GKZcfZQ ZSevA4C8ktsiB4K71JxymjP+Z4yzh4y/ciC0PRQOh7OTmZ68ktsSi7d/37icTo5+UuxbbFul9GKZcfZQ
tK2NifykYGCesM1oeygcGRRpjHaLvNIjZ78Y6+i6X+wn0hnzmjoef10Khp8LRyLfA0cSDPGpX9YOzkfB tK2NifykYGCesM1oeygcGRRpjHaLvNIjZ78Y6+i6X+wn0hnzmjoef10Khp8LRyLfA0cSDPGpX9YOzkfB
EACHMp4eu7Kg+EYBtIt/oq1tvzm3GAYwOb08lWdgPDV2mTFdJjm6tJZrFYm3nzCmj7a2vwfwCYC1AHwi EACHMp4eu7Kg+EYBtIt/oq1tvzm3GAYwOb08lWdgPDV2mTFdJjm6tJZrFYm3nzCmj7a2vwfwCYC1AHwi
NZZ40+fzf1XXtc/LgdD2vJK9V/z6fP6v+iXpQ8XKoFy5AAAYmwQAKRB8PxSODBa7LmK9uNbiGhjzLTxm NZZ40+fzf1XXtc/LgdD2vJK9V/z6fP6v+iXpQ8XKoFy5AAAYmwQAKRB8PxSODBa7LmK9uNbiGhjzLTxm
qesn8jt76t3txuunKrmq3icPh0NPb9y0daxJLlM3thSAWujr3xcFgA3rNo6L/4stm02/a/fOJVs2b327 qesn8jt76t3txuunKrmq3icPh0NPb9y0daxJLlM3thSAWujr3xcFgA3rNo6L/4stm02/a/fOJVs2b327
1LL4reaYxY5biv79fY+K5YETv/nY/KWXPWb8P9bRdbRc+vTI2WsBwJhOpAWAwvRi/2qpdHw5GP5j2Y9E 1LL4reaYxY5biv79fY+K5YETv/nY/KWXPWb8P9bRdbRc+vTI2WsBwJhOpAWAwvRi/2qpdHw5GP5j2Y9E
YeXftXvnkmLrjdtFGVdLubKvVN7Nun52xxUCYOYimE1fLD+gcsWo9rj9+/seFc4KTDmy8f9qBaAUzRSA YeXftXvnkmLrjdtFGVdLubKvVN7Nun52xxUCYOYimE1fLD+gcsWo9rj9+/seFc4KTDmy8f9qBaAUzRSA
1raOgXVrN/yBuRJtDNUKylT0me2utG+j641VWP4koNvYsG7j+K7dO5cAGK+0XzX5GZ292P92pbWtYyA1 1raOgXVrN/yBuRJtDNUKylT0me2utG+j641VWP4koNvYsG7j+K7dO5cAGK+0XzX5GZ292P92pbWtYyA1
NmKbFzCqjSbOXZeK18YNzg8A/s3b7rHaBlMsWbzU1MTrZtMXY9myD442Ip9dTz125+RE+m7juvlLL3ss NmKbFzCqjSbOXZeK18YNzg8A/s3b7rHaBlMsWbzU1MTrZtMXY9myD442Ip9dTz125+RE+m7juvlLL3ss
PTq8XPwfjLQMiOXWto6BXHZyxsihMpmZX5gePpbumrfwKHwsXXjMYKRlIBhpGShMVwrj8Y0IO94+eeKd PTq8XPwfjLQMiOXWto6BXHZyxsihMpmZX5gePpbumrfwKHwsXXjMYKRlIBhpGShMVwrj8Y0IO94+eeKd
Zcs+aJtBL2ImtrkLQFyIqmpvFK5LjY3ML+zPG7eJ5da2joFS+xhbZ5/fP10HjMtmMOYTDAV/a10JEpWg Zcs+aJtBL2ImtrkLQFyIqmpvFK5LjY3ML+zPG7eJ5da2joFS+xhbZ5/fP10HjMtmMOYTDAV/a10JEpWg
LoCNkYKBeYXrhPMW9r2FwwvHFo6eHjk7I3165Oy16ZGz0313XdP0wu1m7TbmOZ5K/VcAlj/xRhSHBMDG LoCNkYKBeYXrhPMW9r2FwwvHFo6eHjk7I3165Oy16ZGz0313XdP0wu1m7TbmOZ5K/VcAlj/xRhSHBMDG
pEeG/nvhumL96lL97Vr74IViUCs+v98n8hDLfp+vaQ8zEOZx/F0At9LXvy8qSdJQdjIT0vINealtVvHL pEeG/nvhumL96lL97Vr74IViUCs+v98n8hDLfp+vaQ8zEOZx/F0At9LXvy8qSdJQdjIT0vINealtVvHL
MvyShEAwhJuuX0NdTZtCEYBNkWX5QTAWCrdErTbFNAcP7f/xTTes/SOr7SAuhJTZhuzbu7ONc36H1XY0 MvyShEAwhJuuX0NdTZtCEYBNkWX5QTAWCrdErTbFNAcP7f/xTTes/SOr7SAuhJTZhuzbu7ONc36H1XY0
DMbu3rd3Z5vVZhAXQgJgQ+Rw9AXm89X1qqldCYSjp0kE7AcJgM3Y/3z/a/G5geXmc7IXzOcLaZz9H6vt DMbu3rd3Z5vVZhAXQgJgQ+Rw9AXm89X1qqldCYSjp0kE7AcJgM3Y/3z/a/G5geXmc7IXzOcLaZz9H6vt
IGZCg4A2oa9/X9TnY8/6Jdn0bTi7EuuWMHY6t1/Xtdvd8iSd06EIwGL6+vdFd+1+8mY5EEi52fkBID2k IGZCg4A2oa9/X9TnY8/6Jdn0bTi7EuuWMHY6t1/Xtdvd8iSd06EIwGL6+vdFd+1+8mY5EEi52fkBID2k
wi/512bSyZNPPvHIfWI9dQ2sg+4CWEhf/96/8Evyp6KtcdeF/OWId3R1APif/Qf6rkmNJd6MtrbdZzpT wi/512bSyZNPPvHIfWI9dQ2sg+4CWEhf/96/8Evyp6KtcdeF/OWId3R1APif/Qf6rkmNJd6MtrbdZzpT
oi6oC2ASLZf+wlPPPDO3vaOrZ/CdE3NDsdbj2XRqZSjS8gD8/hsL9/cxtiQab5ubHhu9VpJk+GUZpe7z oi6oC2ASLZf+wlPPPDO3vaOrZ/CdE3NDsdbj2XRqZSjS8gD8/hsL9/cxtiQab5ubHhu9VpJk+GUZpe7z
++Xz35vQ8vnp/43LVdl4bn9xnMLlYvtVc+xq9yu33S9JyKRT4Jwfbe/sPjk6cnaQgfs5mJZNp1b2LL70 ++Xz35vQ8vnp/43LVdl4bn9xnMLlYvtVc+xq9yu33S9JyKRT4Jwfbe/sPjk6cnaQgfs5mJZNp1b2LL70
Z6PDQxIAMHD/ZDp9ZSjWehwA2ju71ZuuX/MF666+8yEBMImmjGde+Nmx0Njw0Iz1bZ3d0DR1CAAm0+lu Z6PDQxIAMHD/ZDp9ZSjWehwA2ju71ZuuX/MF666+8yEBMImmjGde+Nmx0Njw0Iz1bZ3d0DR1CAAm0+lu
AAjHYkPp0UR3sXwkSYaq5i/4rRbGfEnO9XjrnM5fp0cT88QXcSp99iuVGLZV9CHJAb3Yx2ALyiULIAQA AAjHYkPp0UR3sXwkSYaq5i/4rRbGfEnO9XjrnM5fp0cT88QXcSp99iuVGLZV9CHJAb3Yx2ALyiULIAQA
t9+xjbqxJqAugEme3r276O26c4Iww9lLOT+AaWcv/K0W4fDp0cQ8v98fN06HkEoML26d03myME0qMbzY t9+xjbqxJqAugEme3r276O26c4Iww9lLOT+AaWcv/K0W4fDp0cQ8v98fN06HkEoML26d03myME0qMbzY
6vK7oBxKfAm6oFxcdYvUSkg9XYbf749rmjbjC8vFnL/cesI7UATgMiKt8V+fa/Fd98VfovFQBOBCSrXs 6vK7oBxKfAm6oFxcdYvUSkg9XYbf749rmjbjC8vFnL/cesI7UATgMiKt8V+fa/Fd98VfovFQBOBCSrXs
dgv57TA5ptchAXAJjPmSkiQjPZqYl0kllxudXSwbheGGa68+dOO1V1v2efBmzvlAVA8JgAtgzJcUfX/x dgv57TA5ptchAXAJjPmSkiQjPZqYl0kllxudXSwbheGGa68+dOO1V1v2efBmzvlAVA8JgAtgzJcUfX/x
K0lyqNDxxf+ZVHL53mf7/txKm/2yjGhrW/0zDzd54hivQGMAJuHAN4zfly/1q+aylwCAqihxKRBItsTb K0lyqNDxxf+ZVHL53mf7/txKm/2yjGhrW/0zDzd54hivQGMAJuHAN4zfly/1q+aylwCAqihxKRBItsTb
pst+Ipk6aPyevfEXmvb8li23nT545MjKm3p7jx88cmTl2tW9rz71zDN3xeLt3z976t3tXQsW3Su+ey++ pst+Ipk6aPyevfEXmvb8li23nT545MjKm3p7jx88cmTl2tW9rz71zDN3xeLt3z976t3tXQsW3Su+ey++
W5+fzMSymYlPR+PthzjXB9au7n11/+EjvZqaRzASmVy7uvfVA0deug2c3dMSb70JABjzPZ9Ojn4SAArn W5+fzMSymYlPR+PthzjXB9au7n11/+EjvZqaRzASmVy7uvfVA0deug2c3dMSb70JABjzPZ9Ojn4SAArn
XzCu03K5AQCQAoHkls2b43uf6/+5mO9AHLfcMjQtOjZ05jNaR9f94PwSAJCCoXfySm5LtDX+xkRyTDWu XzCu03K5AQCQAoHkls2b43uf6/+5mO9AHLfcMjQtOjZ05jNaR9f94PwSAJCCoXfySm5LtDX+xkRyTDWu
M84LIAeCu7Lp1EfAeVJVlIbOjOxF6DkAi9m3d2dbXsOcSl+t3bd3Z5tPDql6Pitlc/nw1q2/Pyi2VTv/ M84LIAeCu7Lp1EfAeVJVlIbOjOxF6DkAi9m3d2dbXsOcSl+t3bd3Z5tPDql6Pitlc/nw1q2/Pyi2VTv/
QbF9Sn0uu9T6fXt3ts32BBeF8zCUm0+AqA0SAIfhlgkpCHtAYwAE4WFoDMBhUMtPNBKKAAjCw5AAEISH QbF9Sn0uu9T6fXt3ts32BBeF8zCUm0+AqA0SAIfhlgkpCHtAYwAE4WFoDMBhUMtPNBKKAAjCw5AAEISH
cbQAiAExgiDqY9bGAHbu/GkPA/9SJBYfvKn3o2eef/GlezjHvjW9H02Dsbmc8xMMaAFjc3/y8I6VANC1 cbQAiAExgiDqY9bGAHbu/GkPA/9SJBYfvKn3o2eef/GlezjHvjW9H02Dsbmc8xMMaAFjc3/y8I6VANC1
YNEhALip96NnGGNLf/LwjpUf33bXfztw5KU05/xd4LwIMMYWca7fuGZ1r//A4SOXr1nd+/ruPXs2brn1 YNEhALip96NnGGNLf/LwjpUf33bXfztw5KU05/xd4LwIMMYWca7fuGZ1r//A4SOXr1nd+/ruPXs2brn1
1rcB4CcP/9uqzvkLH59IjV0SDof/R+FtpJ07f9qzedPGP969Z8+NABCJtQ6sWd37OmNsabPLhvOp67Dr 1rcB4CcP/9uqzvkLH59IjV0SDof/R+FtpJ07f9qzedPGP969Z8+NABCJtQ6sWd37OmNsabPLhvOp67Dr
mV28pbVNEsfd9cwzSwAg3tH1xuqrr3qXMbb0wOEXJ0R57H/hcHB44Hcf7py/8PG1q3tlMDb3xz/858/2 mV28pbVNEsfd9cwzSwAg3tH1xuqrr3qXMbb0wOEXJ0R57H/hcHB44Hcf7py/8PG1q3tlMDb3xz/858/2
LFn2l2tW9/oBgAEtHJiY+mULHn1kxxUAEI7FfjGZTq34+F1/eKzQnj19+7+8ZfPvzXi/edfup7pv2bD2 LFn2l2tW9/oBgAEtHJiY+mULHn1kxxUAEI7FfjGZTq34+F1/eKzQnj19+7+8ZfPvzXi/edfup7pv2bD2
bzjnLYyxidLnwgf2Pnfgh8FQMGMcr9i1+6nuW9av+fdgbG6tZcMYVGP+nOOQHIq9VEs+u3Y/1b1p/Zp7 bzjnLYyxidLnwgf2Pnfgh8FQMGMcr9i1+6nuW9av+fdgbG6tZcMYVGP+nOOQHIq9VEs+u3Y/1b1p/Zp7
GGNlJ0vhnJ/YvXffTwtvszLGFt3U+9G158uULdi955mFm2+5ZZ+ob4yxpeD84QNHXkpryuSATw6pAKDn GGNlJ0vhnJ/YvXffTwtvszLGFt3U+9G158uULdi955mFm2+5ZZ+ob4yxpeD84QNHXkpryuSATw6pAKDn
s1Je41dvWr/ugyK9qOd/sO2un4i63bVg0SHO9UQuq/xrYfk3i1m5DbjjRw/pH7/rD3HlzTJ+8ezUa53z s1Je41dvWr/ugyK9qOd/sO2un4i63bVg0SHO9UQuq/xrYfk3i1m5DbjjRw/pH7/rD3HlzTJ+8ezUa53z
bliF04em6t5HNtyAn/cdAgCsWj8Px547fUEexn16b7kRR/Y8/439Lxy5DwDWrL7uT6/eMP+bx547Pb2f bliF04em6t5HNtyAn/cdAgCsWj8Px547fUEexn16b7kRR/Y8/439Lxy5DwDWrL7uT6/eMP+bx547Pb2f
+J13wypc0RbFnqcOzMifc2yXgtFPA4CaG3+AMdw7GwVeLcbzFXZ3RpZNn0fhdgBYt+VG9O963lhGM9YV +J13wypc0RbFnqcOzMifc2yXgtFPA4CaG3+AMdw7GwVeLcbzFXZ3RpZNn0fhdgBYt+VG9O963lhGM9YV
S1MUjhwH/xcpGPvPAKAp418H8NmaToDzv/EHY1+pO315spzzHwr7KlHz8TlyB1988efr1tx8HQCoufTn S1MUjhwH/xcpGPvPAKAp418H8NmaToDzv/EHY1+pO315spzzHwr7KlHz8TlyB1988efr1tx8HQCoufTn
GGNfNZafqL/L1l6PN/e/cEH5co7t/Qf679u4aeuYlkt/AYx92bi91LK4bgC+4Q9Emz6lWtMF4MknHvmT GGNfNZafqL/L1l6PN/e/cEH5co7t/Qf679u4aeuYlkt/AYx92bi91LK4bgC+4Q9Emz6lWtMF4MknHvmT
2zZv/mFTMud89f7DR1Z85r4v/N+qKraBdVtuRP/TB1dz4HoG/G8wRndECuCcfx5AljH2zXrS7+l7btOm 2zZv/mFTMud89f7DR1Z85r4v/N+qKraBdVtuRP/TB1dz4HoG/G8wRndECuCcfx5AljH2zXrS7+l7btOm
9es+whj7apPs+5QUjH2r3D7CeevNnwHHwNjhWtOuWj8P/+vzD33ztls3/7ie9L233Igjzxxc7Q/GXmxG 9es+whj7apPs+5QUjH2r3D7CeevNnwHHwNjhWtOuWj8P/+vzD33ztls3/7ie9L233Igjzxxc7Q/GXmxG
2QmaLgBvvfu2vrin23xGxeD8+NRZsJX1pUcO4K/Xnd7tmC1fQLxs1JwPeHB+3B+MrSq3i6aMZ+o+PufH 2QmaLgBvvfu2vrin23xGxeD8+NRZsJX1pUcO4K/Xnd7tmC1fQLxs1JwPeHB+3B+MrSq3i6aMZ+o+PufH
AXY5GIL1JecPMrB/V296cOT8wWi4waU2g6a3ek1z/imuMNVyMwTBcUWzy8C5sMuttqC8eazJnzOr3/mn AXY5GIL1JecPMrB/V296cOT8wWi4waU2g6a3ek1z/imuMNVyMwTBcUWzy8C5sMuttqC8eazJnzOr3/mn
zGPmXrgycexqcfRdgIaE7RT6l4YhaLISTrW8nKsm8qicfzk42FSkV+f5uxyq/ESzCYEx647uASc2g7Mj zGPmXrgycexqcfRdgIaE7RT6l4YhaLISTrW8nKsm8qicfzk42FSkV+f5uxyq/ESzCYEx647uASc2g7Mj
AIIgTNGwCGDf3p1tiaGhx6LtHX8/Pjry17GOrvvTI2e/+PFtdx0/MXCm5CDS0gU904NxJwbOrFw6f+70 AIIgTNGwCGDf3p1tiaGhx6LtHX8/Pjry17GOrvvTI2e/+PFtdx0/MXCm5CDS0gU904NxJwbOrFw6f+70
/sblkumL7F8uD+M+J8+cXalrWsk8jNsL9612XS02+vx+LJ7bVdP2SuuqSW9k8dyu4wBw8szZlYX71lpm /sblkumL7F8uD+M+J8+cXalrWsk8jNsL9612XS02+vx+LJ7bVdP2SuuqSW9k8dyu4wBw8szZlYX71lpm
1awrdx2rucbHDx/sLzUHw2233nri7YEzFetLteVaqj5Wur7l62/P1EC0AVH2J8+cXXns+R39sY6u+/NK 1awrdx2rucbHDx/sLzUHw2233nri7YEzFetLteVaqj5Wur7l62/P1EC0AVH2J8+cXXns+R39sY6u+/NK
bovYLgdC2yu9Pl4tDbkL8OQTj3znsitW/Kczg6cxt2cejL+VuP7qq44DwAsvv0Ij8URdGOuacTnWLSE9 bovYLgdC2yu9Pl4tDbkL8OQTj3znsitW/Kczg6cxt2cejL+VuP7qq44DwAsvv0Ij8URdGOuacTnWLSE9
1Kzhh+rQdV33+XxlI+3VV1/14OGXXyk7YFh4jgPv/e7pdWs2bDVrn2kB2PGj7/f3LL50Tb3pr7/6quPk 1Kzhh+rQdV33+XxlI+3VV1/14OGXXyk7YFh4jgPv/e7pdWs2bDVrn2kB2PGj7/f3LL50Tb3pr7/6quPk
/ARRO2PDQ/fcfse2fzWTh+kxgFh7R93ODwDPH335I40uGILwAsFwxPQDdqYFINIa182krxQeEQRRnHCL /ARRO2PDQ/fcfse2fzWTh+kxgFh7R93ODwDPH335I40uGILwAsFwxPQDdqYFINIa182krxQeEQRRnHCL
+XfhTDsfOTBBOBdyXoLwMCQAhG3Rdd1U95KojOnnAJRcFppa/60WSQ4AANS8UnKfYnPNV0so0pIAgGxm +XfhTDsfOTBBOBdyXoLwMCQAhG3Rdd1U95KojOnnAJRcFppa/60WSQ4AANS8UnKfYnPNV0so0pIAgGxm
Yo7Zc20GoUhLwkrb/JJk6vqZOb9QpCUxkRybEwiHi9rglyQfACiTkyi2j1+SwJivbN1pNvXWL1HuoXAk Yo7Zc20GoUhLwkrb/JJk6vqZOb9QpCUxkRybEwiHi9rglyQfACiTkyi2j1+SwJivbN1pNvXWL1HuoXAk
m53MWDbbsWkByKRTNc9lbyQ3mZkxPZUkyaFz879PL0uSHFKy2eTUtNfFj9M6p/PXxrnuxf/BcOR9ABC/ m53MWDbbsWkByKRTNc9lbyQ3mZkxPZUkyaFz879PL0uSHFKy2eTUtNfFj9M6p/PXxrnuxf/BcOR9ABC/
hYg0UiCQURUlUrh8QYEVbCuVrlgexbbnJjNzKu1TKe9qbK9mfbU2V5Ov4frOqbRNTVeuO6X2KZxfsFr7 hYg0UiCQURUlUrh8QYEVbCuVrlgexbbnJjNzKu1TKe9qbK9mfbU2V5Ov4frOqbRNTVeuO6X2KZxfsFr7
xHoxiWrhFOqpxPByY50qtVxt/SrFhjVrHtr77LP3RlrjM+zIpJLLxTrj+kr51Yrp5wCefOIRU2HaOfHI xHoxiWrhFOqpxPByY50qtVxt/SrFhjVrHtr77LP3RlrjM+zIpJLLxTrj+kr51Yrp5wCefOIRU2HaOfHI
Fjq+mOYKAIxTXnGu1zQbTKVZchtdoISzKKwfddSH7DnHrMtBK9XPTCq5XFXzWcP0bjPyv/2Obaa68ZaP Fjq+mOYKAIxTXnGu1zQbTKVZchtdoISzKKwfddSH7DnHrMtBK9XPTCq5XFXzWcP0bjPyv/2Obaa68ZaP
AYiTEyIg1nOuBzVNSxqdXwhCraQSw4sLZ8a120y5hDMRjllqRuZKiHpYrH6mEsOLRaNYOOEr0JgJVk13 AYiTEyIg1nOuBzVNSxqdXwhCraQSw4sLZ8a120y5hDMRjllqRuZKiHpYrH6mEsOLRaNYOOEr0JgJVk13
ARhjI5zzjroOLsmItManC9AYhqVHE/POhfxZwA/O9biqVg42jIqaSgwvz6SSy3HuwxTGsKp1TufJ9Ghi ARhjI5zzjroOLsmItManC9AYhqVHE/POhfxZwA/O9biqVg42jIqaSgwvz6SSy3HuwxTGsKp1TufJ9Ghi
nukSJByN2QjQbHqjcGRSyeWioTN2Tc5Fx4Dh9WdJkqFpWtLs+ZuOADKp5K/M5mEklRhenEkll593/qko nukSJByN2QjQbHqjcGRSyeWioTN2Tc5Fx4Dh9WdJkqFpWtLs+ZuOADKp5K/M5mEklRhenEkll593/qko
oZb0xv+NkUVhPrH2OZVfViCIJmNw8qyIfMU2Y9fYiF+WEY23Hzd7bNMC0LVg0b1tnd01hyPB8IXjRkY1 oZb0xv+NkUVhPrH2OZVfViCIJmNw8qyIfMU2Y9fYiF+WEY23Hzd7bNMC0LVg0b1tnd01hyPB8IXjRkY1
NI4HoIZPOok8jC2/IR9kUsnlouWnCICwCkmSIckBvWBdSJLkUKx9zmnRkJ3zg1Bh2txkJsu5/imzdpgW NI4HoIZPOok8jC2/IR9kUsnlouWnCICwCkmSIckBvWBdSJLkUKx9zmnRkJ3zg1Bh2txkJsu5/imzdpgW
gPVrb35t8ORbB2oNR8ItUUTb2gHMbLWL3QWox67CPDRNS4rBRdHyUwTgbArvADiJYKQF0Xibz9j6iz9g gPVrb35t8ORbB2oNR8ItUUTb2gHMbLWL3QWox67CPDRNS4rBRdHyUwTgbArvADiJYKQF0Xibz9j6iz9g
RmNY2PhlNU1LcuA769fe/JpZOxr2UdB9e3e2wR+4ITOeWj9taTq1MtbRdb+q5D7AgUsBgHH+OmdT35qb RmNY2PhlNU1LcuA769fe/JpZOxr2UdB9e3e2wR+4ITOeWj9taTq1MtbRdb+q5D7AgUsBgHH+OmdT35qb
sQy8xYFLC7b/VgqGTqRHzn4xFGs9DgBtHV0Hx0bO3iQHgrvEnPTGX/E9gsLvEszpWfC1xOCpz0XbO/5e sQy8xYFLC7b/VgqGTqRHzn4xFGs9DgBtHV0Hx0bO3iQHgrvEnPTGX/E9gsLvEszpWfC1xOCpz0XbO/5e
VfMbDLatbuqVJmxNS2t8aDyV/AAAiDrVOf/iHeOp5AcYMFYp/WQ6tc5Y90TdMtZDY33LK7ktDDjGgemP VfMbDLatbuqVJmxNS2t8aDyV/AAAiDrVOf/iHeOp5AcYMFYp/WQ6tc5Y90TdMtZDY33LK7ktDDjGgemP
mcp+6WB6LPEZkSYUaz0ubAnFWo9Lktwn1keirc/llfzRRs0bQNODE4SD6OvfF23kBLGW3wYkCMI6SAAI mcp+6WB6LPEZkSYUaz0ubAnFWo9Lktwn1keirc/llfzRRs0bQNODE4SD6OvfF23kBLGW3wYkCMI6SAAI
wkE0enp4EgCC8DAkAAThYUgACMLDkAAQhIchASAID0MCQBAehgSAIDwMCQBBeBgSAILwMCQABOFhSAAI wkE0enp4EgCC8DAkAAThYUgACMLDkAAQhIchASAID0MCQBAehgSAIDwMCQBBeBgSAILwMCQABOFhSAAI
wsOQABCEh/n/kzJOKq1u/QcAAAAASUVORK5CYII= wsOQABCEh/n/kzJOKq1u/QcAAAAASUVORK5CYII=
</value> </value>
</data> </data>
</root> </root>

File diff suppressed because it is too large Load Diff

View File

@ -124,16 +124,16 @@
<data name="tsbtnSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="tsbtnSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIfSURBVFhH7ZdPS9xAGMZfKUiFiuAXKFXqRfBmi8U/F1Hr YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIeSURBVFhH7ZfLShxBFIaPCJKAQcgLhBh0I7hTSYi6CVEX
wdseRGxqZiaZN60H8Rt4K+2l0g/QVrEFwS/gTfRoFTz02Jt4rhQrpdV3htlspju7m8kGQfCBH9mdmffJ Lmchoq1dVd112rgQ3yC7oBslD+CNJBDIC7gTXXoBFy7dSdaRYELI5VRR09Pl1Mx09TQBwR8+eqaqzt//
s5M32V24k0MdECXjxExhuJwGngwaPw9VKp3A4l0QeFUKHNeMc04JHK4zaZ9J455DXI6lhQx/0Cf4DCLe VJ/umYF7OdQBUTJGTBaGywngyYDx81Cl0gUs3geBf0uB41vjnFMCh+pM2ueVcc8hLkfTQoaX9Al2QMS7
8Ed+ghC/a5+XeApR1GPO0EJRMpoG4PjRjBYTl29SLyG3zWgLZQMIuWVGi0nI9ZqX9gvMTBNlAzD8Ykbz /shtCPFC+yzgFURRjzlDC0XJyzQAxy0zWkxcvku9hPxsRlsoG0DID2a0mITcrHlpv8DMNFE2AMOPZjS/
i+ES7VykX3N8bwWYx18QJg/1XEO1E2BlpYvq/ulaJY7vUq8qYXxAMx163ql2AoRhN9X9JC70ey7fpl4W GC7SzkX6NccNK8AMfocweaLnGqqdACsrD6nuj65V4rieelUJ4yOa6dDzTrUTIAwfUd034ka/53It9bKQ
clXPO2X1AG6a0XxKkgcwO/dX1ypZTWixo+edsgM0WdhA+rY1zSvwQ8arRtOdtQOo7XxmZvzEcIhqzzJe q3reKasHcM+M5lOSdMPU9G9dq2Q1ocUXPe+UHaDJwgbSt61pXoHvM141mu6sHUBt5wsz4yeGg1T7NeNV
NTwCKFRTnRDf6AFz1Bpax/EYguCPqa/HM0D53M4AQXBeiOpdkcUrgDIR8jkw1luIOH5MPvuWp98OUGO1 wyOAQjXVOXFCD5jT1tA6jmcQBL9MfT2eAcrnbgYIgutCVO+KLF4BlImQU8DY40LEcR/5HFqefjtAjdWu
K4GJ5el5CS6pq5dBJE+9YfET8ptJv5ar3M4mLBPPABd0CV4AfzWgG0od86LWR9EIMHloed58E0q0PL13 BCaWp+cl+EldvQwiGfGGxcPkN5l+LVe5m01YJp4BbugSzANf6tcNpY55Ueuj6DkweWx5/v8mlGh5eu+A
QMhFEKIflrBPH/9Hjbvgrx9RPf3I1Y/onAGyP0pt1HeCH66HkEZ+NWdzSN06zqIyaRYgCO7Tor36opJY kHMgxDNYxF59vI0ad8HfPKV6+pGrH9E5A2R/lNqo7wQ/XA8hjfxkzuaQunWcRWXSLEAQPKBFB/VFJTE7
WPhNuzxtztZAlco9WjxB/eD+21UUgVO6L+5kCeAaOZxlqQnAQFgAAAAASUVORK5CYII= +4N2ecKcrYEqlU5aPE794P7bVRSBr3Vf3MsSwD8RV2WjuxFNUgAAAABJRU5ErkJggg==
</value> </value>
</data> </data>
<data name="tsbtnClose.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="tsbtnClose.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -257,6 +257,9 @@
<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>166, 17</value> <value>166, 17</value>
</metadata> </metadata>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>166, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>56</value> <value>56</value>
</metadata> </metadata>

View File

@ -108,7 +108,7 @@
</Reference> </Reference>
<Reference Include="ImageBox, Version=2.2.1.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="ImageBox, Version=2.2.1.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\模块化\MMImageBox\ImageBox\bin\Release\ImageBox.dll</HintPath> <HintPath>..\..\..\..\..\..\模块化\MMImageBox\ImageBox\bin\Debug\ImageBox.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.ML.OnnxRuntime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=f27f157f0a5b7bb6, processorArchitecture=MSIL"> <Reference Include="Microsoft.ML.OnnxRuntime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=f27f157f0a5b7bb6, processorArchitecture=MSIL">
<HintPath>packages\Microsoft.ML.OnnxRuntime.Managed.1.8.0\lib\netstandard1.1\Microsoft.ML.OnnxRuntime.dll</HintPath> <HintPath>packages\Microsoft.ML.OnnxRuntime.Managed.1.8.0\lib\netstandard1.1\Microsoft.ML.OnnxRuntime.dll</HintPath>
@ -314,7 +314,7 @@
<Reference Include="WindowsBase" /> <Reference Include="WindowsBase" />
<Reference Include="Yolo5, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="Yolo5, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>bin\x64\Debug\Yolo5.dll</HintPath> <HintPath>..\..\Dlls\Yolo5.dll</HintPath>
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -32,15 +32,48 @@
this.toolStrip1 = new System.Windows.Forms.ToolStrip(); this.toolStrip1 = new System.Windows.Forms.ToolStrip();
this.tsbtnSave = new System.Windows.Forms.ToolStripButton(); this.tsbtnSave = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.tsbtnSetPTPos = new System.Windows.Forms.ToolStripButton();
this.tsbtnSetLinePos = new System.Windows.Forms.ToolStripButton(); this.tsbtnSetLinePos = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
this.tsbtnShowPos = new System.Windows.Forms.ToolStripButton();
this.tsbtnClear = new System.Windows.Forms.ToolStripButton(); this.tsbtnClear = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.tsbtnClose = new System.Windows.Forms.ToolStripButton(); this.tsbtnClose = new System.Windows.Forms.ToolStripButton();
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.textBox1 = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.textBox2 = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.textBox3 = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.textBox4 = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.textBox5 = new System.Windows.Forms.TextBox();
this.label6 = new System.Windows.Forms.Label();
this.textBox6 = new System.Windows.Forms.TextBox();
this.label7 = new System.Windows.Forms.Label();
this.textBox7 = new System.Windows.Forms.TextBox();
this.label8 = new System.Windows.Forms.Label();
this.textBox8 = new System.Windows.Forms.TextBox();
this.label9 = new System.Windows.Forms.Label();
this.textBox9 = new System.Windows.Forms.TextBox();
this.label10 = new System.Windows.Forms.Label();
this.textBox10 = new System.Windows.Forms.TextBox();
this.label11 = new System.Windows.Forms.Label();
this.textBox11 = new System.Windows.Forms.TextBox();
this.label12 = new System.Windows.Forms.Label();
this.textBox12 = new System.Windows.Forms.TextBox();
this.label13 = new System.Windows.Forms.Label();
this.textBox13 = new System.Windows.Forms.TextBox();
this.label14 = new System.Windows.Forms.Label();
this.textBox14 = new System.Windows.Forms.TextBox();
this.imageBox1 = new ImageToolKits.ImageBox(); this.imageBox1 = new ImageToolKits.ImageBox();
this.toolStrip1.SuspendLayout(); this.toolStrip1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout();
this.splitContainer1.Panel2.SuspendLayout();
this.splitContainer1.SuspendLayout();
this.groupBox1.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
// toolStrip1 // toolStrip1
@ -50,17 +83,15 @@
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.tsbtnSave, this.tsbtnSave,
this.toolStripSeparator2, this.toolStripSeparator2,
this.tsbtnSetPTPos,
this.tsbtnSetLinePos, this.tsbtnSetLinePos,
this.toolStripSeparator3, this.toolStripSeparator3,
this.tsbtnShowPos,
this.tsbtnClear, this.tsbtnClear,
this.toolStripSeparator1, this.toolStripSeparator1,
this.tsbtnClose}); this.tsbtnClose});
this.toolStrip1.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow; this.toolStrip1.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow;
this.toolStrip1.Location = new System.Drawing.Point(0, 0); this.toolStrip1.Location = new System.Drawing.Point(0, 0);
this.toolStrip1.Name = "toolStrip1"; this.toolStrip1.Name = "toolStrip1";
this.toolStrip1.Size = new System.Drawing.Size(814, 56); this.toolStrip1.Size = new System.Drawing.Size(959, 56);
this.toolStrip1.TabIndex = 15; this.toolStrip1.TabIndex = 15;
this.toolStrip1.Text = "toolStrip1"; this.toolStrip1.Text = "toolStrip1";
// //
@ -80,47 +111,24 @@
this.toolStripSeparator2.Name = "toolStripSeparator2"; this.toolStripSeparator2.Name = "toolStripSeparator2";
this.toolStripSeparator2.Size = new System.Drawing.Size(6, 56); this.toolStripSeparator2.Size = new System.Drawing.Size(6, 56);
// //
// tsbtnSetPTPos
//
this.tsbtnSetPTPos.Image = ((System.Drawing.Image)(resources.GetObject("tsbtnSetPTPos.Image")));
this.tsbtnSetPTPos.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.tsbtnSetPTPos.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbtnSetPTPos.Name = "tsbtnSetPTPos";
this.tsbtnSetPTPos.Size = new System.Drawing.Size(74, 53);
this.tsbtnSetPTPos.Text = "设置PT选点";
this.tsbtnSetPTPos.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.tsbtnSetPTPos.ToolTipText = "设置PT";
this.tsbtnSetPTPos.Click += new System.EventHandler(this.tsbtnSetPTPos_Click);
//
// tsbtnSetLinePos // tsbtnSetLinePos
// //
this.tsbtnSetLinePos.Image = ((System.Drawing.Image)(resources.GetObject("tsbtnSetLinePos.Image"))); this.tsbtnSetLinePos.Image = ((System.Drawing.Image)(resources.GetObject("tsbtnSetLinePos.Image")));
this.tsbtnSetLinePos.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.tsbtnSetLinePos.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.tsbtnSetLinePos.ImageTransparentColor = System.Drawing.Color.Magenta; this.tsbtnSetLinePos.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbtnSetLinePos.Name = "tsbtnSetLinePos"; this.tsbtnSetLinePos.Name = "tsbtnSetLinePos";
this.tsbtnSetLinePos.Size = new System.Drawing.Size(84, 53); this.tsbtnSetLinePos.Size = new System.Drawing.Size(60, 53);
this.tsbtnSetLinePos.Text = "设置线宽选点"; this.tsbtnSetLinePos.Text = "返回点位";
this.tsbtnSetLinePos.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText; this.tsbtnSetLinePos.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.tsbtnSetLinePos.ToolTipText = "设置线宽"; this.tsbtnSetLinePos.ToolTipText = "设置线宽";
this.tsbtnSetLinePos.Click += new System.EventHandler(this.tsbtnSetLinePos_Click); this.tsbtnSetLinePos.Visible = false;
this.tsbtnSetLinePos.Click += new System.EventHandler(this.tsbtnDelectPos_Click);
// //
// toolStripSeparator3 // toolStripSeparator3
// //
this.toolStripSeparator3.Name = "toolStripSeparator3"; this.toolStripSeparator3.Name = "toolStripSeparator3";
this.toolStripSeparator3.Size = new System.Drawing.Size(6, 56); this.toolStripSeparator3.Size = new System.Drawing.Size(6, 56);
// //
// tsbtnShowPos
//
this.tsbtnShowPos.Image = ((System.Drawing.Image)(resources.GetObject("tsbtnShowPos.Image")));
this.tsbtnShowPos.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.tsbtnShowPos.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tsbtnShowPos.Name = "tsbtnShowPos";
this.tsbtnShowPos.Size = new System.Drawing.Size(84, 53);
this.tsbtnShowPos.Text = "显示所有标点";
this.tsbtnShowPos.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.tsbtnShowPos.ToolTipText = "显示标点";
this.tsbtnShowPos.Click += new System.EventHandler(this.tsbtnShowPos_Click);
//
// tsbtnClear // tsbtnClear
// //
this.tsbtnClear.Image = ((System.Drawing.Image)(resources.GetObject("tsbtnClear.Image"))); this.tsbtnClear.Image = ((System.Drawing.Image)(resources.GetObject("tsbtnClear.Image")));
@ -149,34 +157,317 @@
this.tsbtnClose.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText; this.tsbtnClose.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.tsbtnClose.Click += new System.EventHandler(this.tsbtnClose_Click); this.tsbtnClose.Click += new System.EventHandler(this.tsbtnClose_Click);
// //
// splitContainer1
//
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer1.Location = new System.Drawing.Point(0, 56);
this.splitContainer1.Name = "splitContainer1";
//
// splitContainer1.Panel1
//
this.splitContainer1.Panel1.Controls.Add(this.imageBox1);
//
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.groupBox1);
this.splitContainer1.Size = new System.Drawing.Size(959, 509);
this.splitContainer1.SplitterDistance = 680;
this.splitContainer1.TabIndex = 16;
//
// groupBox1
//
this.groupBox1.Controls.Add(this.label14);
this.groupBox1.Controls.Add(this.textBox14);
this.groupBox1.Controls.Add(this.label13);
this.groupBox1.Controls.Add(this.textBox13);
this.groupBox1.Controls.Add(this.label12);
this.groupBox1.Controls.Add(this.textBox12);
this.groupBox1.Controls.Add(this.label11);
this.groupBox1.Controls.Add(this.textBox11);
this.groupBox1.Controls.Add(this.label10);
this.groupBox1.Controls.Add(this.textBox10);
this.groupBox1.Controls.Add(this.label9);
this.groupBox1.Controls.Add(this.textBox9);
this.groupBox1.Controls.Add(this.label8);
this.groupBox1.Controls.Add(this.textBox8);
this.groupBox1.Controls.Add(this.label7);
this.groupBox1.Controls.Add(this.textBox7);
this.groupBox1.Controls.Add(this.label6);
this.groupBox1.Controls.Add(this.textBox6);
this.groupBox1.Controls.Add(this.label5);
this.groupBox1.Controls.Add(this.textBox5);
this.groupBox1.Controls.Add(this.label4);
this.groupBox1.Controls.Add(this.textBox4);
this.groupBox1.Controls.Add(this.label3);
this.groupBox1.Controls.Add(this.textBox3);
this.groupBox1.Controls.Add(this.label2);
this.groupBox1.Controls.Add(this.textBox2);
this.groupBox1.Controls.Add(this.label1);
this.groupBox1.Controls.Add(this.textBox1);
this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill;
this.groupBox1.Location = new System.Drawing.Point(0, 0);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(275, 509);
this.groupBox1.TabIndex = 0;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "点位数据";
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(71, 30);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(151, 21);
this.textBox1.TabIndex = 0;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(36, 33);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(29, 12);
this.label1.TabIndex = 1;
this.label1.Text = "PT1:";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(36, 60);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(29, 12);
this.label2.TabIndex = 3;
this.label2.Text = "PT2:";
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(71, 57);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(151, 21);
this.textBox2.TabIndex = 2;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(36, 87);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(29, 12);
this.label3.TabIndex = 5;
this.label3.Text = "PT3:";
//
// textBox3
//
this.textBox3.Location = new System.Drawing.Point(71, 84);
this.textBox3.Name = "textBox3";
this.textBox3.Size = new System.Drawing.Size(151, 21);
this.textBox3.TabIndex = 4;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(36, 114);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(29, 12);
this.label4.TabIndex = 7;
this.label4.Text = "PT4:";
//
// textBox4
//
this.textBox4.Location = new System.Drawing.Point(71, 111);
this.textBox4.Name = "textBox4";
this.textBox4.Size = new System.Drawing.Size(151, 21);
this.textBox4.TabIndex = 6;
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(36, 141);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(29, 12);
this.label5.TabIndex = 9;
this.label5.Text = "PT5:";
//
// textBox5
//
this.textBox5.Location = new System.Drawing.Point(71, 138);
this.textBox5.Name = "textBox5";
this.textBox5.Size = new System.Drawing.Size(151, 21);
this.textBox5.TabIndex = 8;
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(24, 204);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(41, 12);
this.label6.TabIndex = 11;
this.label6.Text = "线宽1:";
//
// textBox6
//
this.textBox6.Location = new System.Drawing.Point(71, 201);
this.textBox6.Name = "textBox6";
this.textBox6.Size = new System.Drawing.Size(151, 21);
this.textBox6.TabIndex = 10;
//
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(24, 231);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(41, 12);
this.label7.TabIndex = 13;
this.label7.Text = "线宽2:";
//
// textBox7
//
this.textBox7.Location = new System.Drawing.Point(71, 228);
this.textBox7.Name = "textBox7";
this.textBox7.Size = new System.Drawing.Size(151, 21);
this.textBox7.TabIndex = 12;
//
// label8
//
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(24, 258);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(41, 12);
this.label8.TabIndex = 15;
this.label8.Text = "线宽3:";
//
// textBox8
//
this.textBox8.Location = new System.Drawing.Point(71, 255);
this.textBox8.Name = "textBox8";
this.textBox8.Size = new System.Drawing.Size(151, 21);
this.textBox8.TabIndex = 14;
//
// label9
//
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(24, 285);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(41, 12);
this.label9.TabIndex = 17;
this.label9.Text = "线宽4:";
//
// textBox9
//
this.textBox9.Location = new System.Drawing.Point(71, 282);
this.textBox9.Name = "textBox9";
this.textBox9.Size = new System.Drawing.Size(151, 21);
this.textBox9.TabIndex = 16;
//
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(24, 312);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(41, 12);
this.label10.TabIndex = 19;
this.label10.Text = "线宽5:";
//
// textBox10
//
this.textBox10.Location = new System.Drawing.Point(71, 309);
this.textBox10.Name = "textBox10";
this.textBox10.Size = new System.Drawing.Size(151, 21);
this.textBox10.TabIndex = 18;
//
// label11
//
this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(24, 339);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(41, 12);
this.label11.TabIndex = 21;
this.label11.Text = "线宽6:";
//
// textBox11
//
this.textBox11.Location = new System.Drawing.Point(71, 336);
this.textBox11.Name = "textBox11";
this.textBox11.Size = new System.Drawing.Size(151, 21);
this.textBox11.TabIndex = 20;
//
// label12
//
this.label12.AutoSize = true;
this.label12.Location = new System.Drawing.Point(24, 366);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(41, 12);
this.label12.TabIndex = 23;
this.label12.Text = "线宽7:";
//
// textBox12
//
this.textBox12.Location = new System.Drawing.Point(71, 363);
this.textBox12.Name = "textBox12";
this.textBox12.Size = new System.Drawing.Size(151, 21);
this.textBox12.TabIndex = 22;
//
// label13
//
this.label13.AutoSize = true;
this.label13.Location = new System.Drawing.Point(24, 393);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(41, 12);
this.label13.TabIndex = 25;
this.label13.Text = "线宽8:";
//
// textBox13
//
this.textBox13.Location = new System.Drawing.Point(71, 390);
this.textBox13.Name = "textBox13";
this.textBox13.Size = new System.Drawing.Size(151, 21);
this.textBox13.TabIndex = 24;
//
// label14
//
this.label14.AutoSize = true;
this.label14.Location = new System.Drawing.Point(24, 420);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(41, 12);
this.label14.TabIndex = 27;
this.label14.Text = "线宽9:";
//
// textBox14
//
this.textBox14.Location = new System.Drawing.Point(71, 417);
this.textBox14.Name = "textBox14";
this.textBox14.Size = new System.Drawing.Size(151, 21);
this.textBox14.TabIndex = 26;
//
// imageBox1 // imageBox1
// //
this.imageBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.imageBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.imageBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.imageBox1.ColorName = System.Drawing.Color.LimeGreen; this.imageBox1.ColorName = System.Drawing.Color.LimeGreen;
this.imageBox1.Dock = System.Windows.Forms.DockStyle.Fill;
this.imageBox1.DrawParam = null; this.imageBox1.DrawParam = null;
this.imageBox1.Image = null; this.imageBox1.Image = null;
this.imageBox1.Location = new System.Drawing.Point(0, 56); this.imageBox1.Location = new System.Drawing.Point(0, 0);
this.imageBox1.Margin = new System.Windows.Forms.Padding(0); this.imageBox1.Margin = new System.Windows.Forms.Padding(0);
this.imageBox1.Name = "imageBox1"; this.imageBox1.Name = "imageBox1";
this.imageBox1.Size = new System.Drawing.Size(805, 500); this.imageBox1.Size = new System.Drawing.Size(680, 509);
this.imageBox1.TabIndex = 14; this.imageBox1.TabIndex = 15;
// //
// FrmGetPosByPic // FrmGetPosByPic
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.ActiveCaption; this.BackColor = System.Drawing.SystemColors.ActiveCaption;
this.ClientSize = new System.Drawing.Size(814, 565); this.ClientSize = new System.Drawing.Size(959, 565);
this.Controls.Add(this.splitContainer1);
this.Controls.Add(this.toolStrip1); this.Controls.Add(this.toolStrip1);
this.Controls.Add(this.imageBox1);
this.Name = "FrmGetPosByPic"; this.Name = "FrmGetPosByPic";
this.Text = "图纸抓取点位"; this.Text = "图纸抓取点位";
this.Load += new System.EventHandler(this.FrmGetPosByPic_Load); this.Load += new System.EventHandler(this.FrmGetPosByPic_Load);
this.toolStrip1.ResumeLayout(false); this.toolStrip1.ResumeLayout(false);
this.toolStrip1.PerformLayout(); this.toolStrip1.PerformLayout();
this.splitContainer1.Panel1.ResumeLayout(false);
this.splitContainer1.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
this.splitContainer1.ResumeLayout(false);
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false); this.ResumeLayout(false);
this.PerformLayout(); this.PerformLayout();
@ -187,13 +478,41 @@
private System.Windows.Forms.ToolStrip toolStrip1; private System.Windows.Forms.ToolStrip toolStrip1;
private System.Windows.Forms.ToolStripButton tsbtnSave; private System.Windows.Forms.ToolStripButton tsbtnSave;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
private System.Windows.Forms.ToolStripButton tsbtnSetPTPos;
private System.Windows.Forms.ToolStripButton tsbtnSetLinePos; private System.Windows.Forms.ToolStripButton tsbtnSetLinePos;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator3; private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
private System.Windows.Forms.ToolStripButton tsbtnShowPos;
private System.Windows.Forms.ToolStripButton tsbtnClear; private System.Windows.Forms.ToolStripButton tsbtnClear;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripButton tsbtnClose; private System.Windows.Forms.ToolStripButton tsbtnClose;
private System.Windows.Forms.SplitContainer splitContainer1;
private ImageToolKits.ImageBox imageBox1; private ImageToolKits.ImageBox imageBox1;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Label label14;
private System.Windows.Forms.TextBox textBox14;
private System.Windows.Forms.Label label13;
private System.Windows.Forms.TextBox textBox13;
private System.Windows.Forms.Label label12;
private System.Windows.Forms.TextBox textBox12;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.TextBox textBox11;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.TextBox textBox10;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.TextBox textBox9;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.TextBox textBox8;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.TextBox textBox7;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox textBox6;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.TextBox textBox5;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox textBox4;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox textBox3;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox textBox1;
} }
} }

View File

@ -16,42 +16,94 @@ namespace ProductionControl.UI
{ {
public partial class FrmGetPosByPic : Form public partial class FrmGetPosByPic : Form
{ {
private SizeLibProp sizeLibProp;
List<ImageBox.BaseDrawParam> pickARoi = new List<ImageBox.BaseDrawParam>(); List<ImageBox.BaseDrawParam> pickARoi = new List<ImageBox.BaseDrawParam>();
Mat Img; Mat Img;
private TextBox[] tbArray = new TextBox[14];
string _Path; string _Path;
public FrmGetPosByPic(SizeLibProp prop) double[] _Points;
public FrmGetPosByPic(string map, double[] pointlist)
{ {
_Path = map;
_Points = pointlist;
pickARoi.Clear(); pickARoi.Clear();
sizeLibProp = prop;
InitializeComponent(); InitializeComponent();
//lbPoslist.Items.Clear(); //lbPoslist.Items.Clear();
this.imageBox1.SetLowLevelMode(14);
imageBox1.DrawOverAllEventHandler += imgBox_DrawOverAllEventHandler;
tbArray[0] = this.textBox1;
tbArray[1] = this.textBox2;
tbArray[2] = this.textBox3;
tbArray[3] = this.textBox4;
tbArray[4] = this.textBox5;
tbArray[5] = this.textBox6;
tbArray[6] = this.textBox7;
tbArray[7] = this.textBox8;
tbArray[8] = this.textBox9;
tbArray[9] = this.textBox10;
tbArray[10] = this.textBox11;
tbArray[11] = this.textBox12;
tbArray[12] = this.textBox13;
tbArray[13] = this.textBox14;
} }
public string GetMapPath()
{ return _Path; }
public double[] GetPoints()
{
return _Points; }
void imgBox_DrawOverAllEventHandler(object sender, List<ImageBox.BaseDrawParam> e)
{
if (e.Count > 0)
{
imageBox1.RefreshWindow(imageBox1.Image, e, ImageBox.ImageModeEnum.Part);
this.pickARoi = imageBox1.GetLowPoints();
for (int i = 0; i < 14; i++)
{
if (i < e.Count)
tbArray[i].Text = "X:" + (e[i] as ImageBox.Point).Column.ToString("0.000") + ", Y:" + (e[i] as ImageBox.Point).Row.ToString("0.000");
else
tbArray[i].Text = "";
}
}
}
private void FrmGetPosByPic_Load(object sender, EventArgs e) private void FrmGetPosByPic_Load(object sender, EventArgs e)
{ {
List<ImageBox.BaseDrawParam> roi = new List<ImageBox.BaseDrawParam>(); List<ImageBox.BaseDrawParam> roi = new List<ImageBox.BaseDrawParam>();
if (File.Exists(sizeLibProp.MapPath)) if (File.Exists(_Path))
{ {
Img = new Mat(sizeLibProp.MapPath); Img = new Mat(_Path);
//this.imageBox1.RefreshWindow(Img); if ((_Points[0] != 0) && (_Points[2] != 0) && (_Points[4] != 0) && (_Points[6] != 0) && (_Points[8] != 0))
if (sizeLibProp.GetPointList.Length == (14 * 2))
{ {
for (int i = 0; i < 14; i++) //this.imageBox1.RefreshWindow(Img);
if (_Points.Length == (14 * 2))
{ {
//string pos = sizeLibProp.GetPointList[5 + 2 * i].ToString() + "," + sizeLibProp.GetPointList[5 + 2 * i +1].ToString(); for (int i = 0; i < 14; i++)
//lbPoslist.Items.Add(pos); {
ImageBox.BaseDrawParam point = new ImageBox.Point((float)sizeLibProp.GetPointList[2 * i + 1], (float)sizeLibProp.GetPointList[2 * i]); //string pos = sizeLibProp.GetPointList[5 + 2 * i].ToString() + "," + sizeLibProp.GetPointList[5 + 2 * i +1].ToString();
roi.Add(point); //lbPoslist.Items.Add(pos);
pickARoi.Add(point); ImageBox.BaseDrawParam point = new ImageBox.Point((float)_Points[2 * i + 1], (float)_Points[2 * i]);
tbArray[i].Text = "X:" + _Points[2 * i + 0].ToString("0.000") + ", Y:" + _Points[2 * i + 1].ToString("0.000");
roi.Add(point);
pickARoi.Add(point);
}
imageBox1.SetDrawPrms(pickARoi);
//imageBox1.RefreshWindow(Img, roi);
//imageBox1.Refresh();
} }
imageBox1.RefreshWindow(Img, roi); else if (_Points.Length > 0)
imageBox1.Refresh(); MessageBox.Show("点位数据错误!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
else if (sizeLibProp.GetPointList.Length > 0) //else
MessageBox.Show("点位数据错误!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error); //{
//imageBox1.RefreshWindow(Img, roi);
//imageBox1.Refresh();
//}
} }
else else
{ {
@ -59,7 +111,6 @@ namespace ProductionControl.UI
if (File.Exists(maop_path)) if (File.Exists(maop_path))
{ {
_Path = maop_path; _Path = maop_path;
sizeLibProp.MapPath = maop_path;
Img = new Mat(maop_path); Img = new Mat(maop_path);
this.imageBox1.RefreshWindow(Img); this.imageBox1.RefreshWindow(Img);
} }
@ -69,54 +120,25 @@ namespace ProductionControl.UI
return; return;
} }
} }
imageBox1.RefreshWindow(Img, roi);
imageBox1.Refresh();
imageBox1.DisplayROIs(roi);
} }
private void tsbtnSetPTPos_Click(object sender, EventArgs e)
{
if ((imageBox1.DrawParam != null) && ((imageBox1.DrawParam as ImageBox.Point).IsValid()))
{
bool isSame = false;
foreach (var t in pickARoi)
{
if (((t as ImageBox.Point).Row == (imageBox1.DrawParam as ImageBox.Point).Row) && ((t as ImageBox.Point).Column == (imageBox1.DrawParam as ImageBox.Point).Column))
isSame = true;
}
if (!isSame)
pickARoi.Add(imageBox1.DrawParam);
else
MessageBox.Show("点位相同!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void tsbtnSetLinePos_Click(object sender, EventArgs e)
{
if ((imageBox1.DrawParam != null) && ((imageBox1.DrawParam as ImageBox.Point).IsValid()))
{
bool isSame = false;
foreach (var t in pickARoi)
{
if (((t as ImageBox.Point).Row == (imageBox1.DrawParam as ImageBox.Point).Row) && ((t as ImageBox.Point).Column == (imageBox1.DrawParam as ImageBox.Point).Column))
isSame = true;
}
if (!isSame)
pickARoi.Add(imageBox1.DrawParam);
else
MessageBox.Show("点位相同!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void tsbtnShowPos_Click(object sender, EventArgs e)
{
imageBox1.RefreshWindow(Img, pickARoi, ImageBox.ImageModeEnum.Zoom);
}
private void tsbtnClear_Click(object sender, EventArgs e) private void tsbtnClear_Click(object sender, EventArgs e)
{ {
if (MessageBox.Show("是否清空所有点位?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.OK) if (MessageBox.Show("是否清空所有点位?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.OK)
{ {
pickARoi.Clear(); pickARoi.Clear();
this.imageBox1.ClearLowPoints();
this.imageBox1.RefreshWindow(Img); this.imageBox1.RefreshWindow(Img);
for (int i = 0; i < 14; i++)
{
tbArray[i].Text = "";
}
} }
} }
@ -127,30 +149,37 @@ namespace ProductionControl.UI
private void tsbtnSave_Click(object sender, EventArgs e) private void tsbtnSave_Click(object sender, EventArgs e)
{ {
pickARoi = this.imageBox1.GetLowPoints();
if (pickARoi.Count == 14) if (pickARoi.Count == 14)
{ {
sizeLibProp.GetPointList = new double[14 * 2]; _Points = new double[14 * 2];
for (int i = 0; i < 14; i++) for (int i = 0; i < 14; i++)
{ {
sizeLibProp.GetPointList[2 * i] = (pickARoi[i] as ImageBox.Point).Column; _Points[2 * i] = Math.Round((pickARoi[i] as ImageBox.Point).Column,3);
sizeLibProp.GetPointList[2 * i + 1] = (pickARoi[i] as ImageBox.Point).Row; _Points[2 * i + 1] = Math.Round((pickARoi[i] as ImageBox.Point).Row,3);
} }
sizeLibProp.MapPath = _Path;
this.DialogResult = DialogResult.OK; this.DialogResult = DialogResult.OK;
} }
else if (pickARoi.Count >0) else if (pickARoi.Count >0)
MessageBox.Show("点位设置错误,点数不对!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show("点位设置错误,点数不对!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error);
else else
{ {
sizeLibProp.GetPointList = new double[14 * 2]; _Points = new double[14 * 2];
for (int i = 0; i < 14; i++) for (int i = 0; i < 14; i++)
{ {
sizeLibProp.GetPointList[2 * i] = 0; _Points[2 * i] = 0;
sizeLibProp.GetPointList[2 * i + 1] = 0; _Points[2 * i + 1] = 0;
} }
} }
} }
private void tsbtnDelectPos_Click(object sender, EventArgs e)
{
this.imageBox1.DelectOntPoint();
this.pickARoi.RemoveAt(pickARoi.Count - 1);
}
} }
} }

View File

@ -124,46 +124,16 @@
<data name="tsbtnSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="tsbtnSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIdSURBVFhH7ZdBS9xAFMefFEShRfALiC31UvBmS8Xai1T7 YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIfSURBVFhH7ZdNa9RAGMefIpQKSsEvUFTsRfDWFsWXi7jr
AXIQ0WhmJpkX60H6DXoTe2npB2itqCD0C/QmemwVPHj0Jj23FBWp+maYzWbc2d1MNhQE//AjuzPz/vnv VUhBiqabmUnmiXoofgNvohfFD+BL0UKhX8CbtEet4KHH3sRzpWxFfHlmmM1m3NlsJgnCwv7hR3Zn5vnn
5CW7C3dyqAvidJyYKg2Xk8DTJ8bPQ0HQDSz5DgKvKoHjO+NcUAJHGkw6Z8K4FxCXL7JChsf0CdZAJF/9 v5Mn2V2YyKEpiNOrRLsyXLaAp+eNn4eCYBpY8h4E/mkEjo+Mc0kJXBgwqc91415CXF7JChnu0yd4DSJ5
kV8gwiPtM48nEMd95gxtFKdjWQCOn81oOXG5knkJuW1G2ygfQMgNM1pOQn6se2m/0My0UD4Aw00zWlwM 4498BRHuaZ9V/ApxPGvOMEJxejkLwPGlGa0mLh9nXkJumtERygcQ8q0ZrSYhn/e9tF9oZgqUD8DwnRkt
F2jnYv2a4wcrwDT+hSgd0HNN1UmA5eVeqrvUtUoc32deNaJkj2a69LxTnQSIogdU95s41e+5XM28LORb L4Yd2rlYv+b4zApwGw8hSuf03FDVCbC2dpzqfutaJY5PM68eUbJDM1N63qk6AaLoJNUdEF39nssnmZeF
Pe+U1QO4bkaLKU3vQzD9T9cqWU1o8U3PO2UHaLGwifRta5pX4KecV52WO2sHUNs5amb8xHCYan/lvOp4 fKjnnbJ6ANfNaDml6Qm4tfxL1ypZTWixpeedsgMULBwifdua5hX4IufVp3Bn7QBqOy+ZGT8xvEC133Je
BFCopjokftIDZr89tI7jAYThhalvxDNA9dzOAGH4pxS1uyKPVwBlIuRrYKy/FEnymHx2LU+/HaDG6lQC fTwCKFRTfSE+0QNmdzS0juNnCMOfpn4QzwDNM54BwvB7JXp3RR6vAMpEyJvA2KlKJMk58tm2PP12gBqr
U8vT8xKcU1cvgUifecOSp+Q3lX0t17idTVglngFO6RLMAV8c0g2ljkVR6+P4OTD5w/L8/00o0fL03gEh rgSmlqfnJfhBXf0ARLrkDUsWya+dfS33GM8mbBLPAF26BHeB35vXDaWOZVHr4/giMPnR8vz/TSjR8vTe
Z0GIR7CAD/XxJmrcBX8zSPX0I1c/ogsGyP8otVHfCX64HkIauWXO5pC6dZxFVdIqQBj20KKdxqKKmJk5 ASHvgBBnoYNn9PFf1LgLfv801dOPXP2ILhkg/6PURn0n+OF6CGnkhjmbQ+rWcRY1SVGAMJyhRR8Gixpi
o12eNGdroiC4R4tfUj+4/3aVReAr3Rd3sgRwDfSiZevD7cv7AAAAAElFTkSuQmCC ZeWIdrllzjZEQXCMFl+jfnD/7aqKwBu6LyayBPAXe9Nl2fMEcA4AAAAASUVORK5CYII=
</value>
</data>
<data name="tsbtnSetPTPos.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
0MR3PqwIhTUAAAAASUVORK5CYII=
</value> </value>
</data> </data>
<data name="tsbtnSetLinePos.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="tsbtnSetLinePos.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -194,36 +164,6 @@
HRU3Pz9PCdriBQHS+OaNcrBiY5GSmEB/S/z9Mk5TB1EHrx38rk709jyEoK+PeCn1LylgNBrpSPtYCZC2 HRU3Pz9PCdriBQHS+OaNcrBiY5GSmEB/S/z9Mk5TB1EHrx38rk709jyEoK+PeCn1LylgNBrpSPtYCZC2
FzPZKOdwqGPXZDJRpZQQqySTkgn0+knikFn6jLe3UltYCZATxJ8/h/CQICKxFlMGg81kzmLJHvj/AP4F FzPZKOdwqGPXZDJRpZQQqySTkgn0+knikFn6jLe3UltYCZATxJ8/h/CQICKxFlMGg81kzmLJHvj/AP4F
0MR3PqwIhTUAAAAASUVORK5CYII= 0MR3PqwIhTUAAAAASUVORK5CYII=
</value>
</data>
<data name="tsbtnShowPos.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value> </value>
</data> </data>
<data name="tsbtnClear.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="tsbtnClear.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">

View File

@ -30,9 +30,11 @@ namespace ProductionControl.UI
public string SizeTag { get; set; } public string SizeTag { get; set; }
//2023-10-27 新增图纸选点 //2023-10-27 新增图纸选点
[PropertyOrder(1), Browsable(true), Category("1 数据"), DisplayName("1.6 图纸图片"), Description("图纸图片文件名")] [PropertyOrder(1), Browsable(true), Category("1 数据"), DisplayName("1.6 使用点位"), Description("是否使用图纸抓取的点位")]
public bool UseMapPoints { get; set; }
[PropertyOrder(1), Browsable(true), Category("1 数据"), DisplayName("1.7 图纸图片"), Description("图纸图片文件名")]
public string MapPath { get; set; } public string MapPath { get; set; }
[PropertyOrder(1), Browsable(true), Category("1 数据"), DisplayName("1.7 抓取位置"), Description("图纸上选取的点位根据选取的5个PT点9个线宽点计算真是走位。")] [PropertyOrder(1), Browsable(true), Category("1 数据"), DisplayName("1.8 抓取位置"), Description("图纸上选取的点位根据选取的5个PT点9个线宽点计算真是走位。")]
//public double[] GetPointList { get; set; } = new double[23];//默认对应0和2号AXIS //public double[] GetPointList { get; set; } = new double[23];//默认对应0和2号AXIS
public double[] GetPointList { get; set; } = new double[23] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; public double[] GetPointList { get; set; } = new double[23] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

View File

@ -38,11 +38,11 @@
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.tbtnExport = new System.Windows.Forms.ToolStripButton(); this.tbtnExport = new System.Windows.Forms.ToolStripButton();
this.tbtnImport = new System.Windows.Forms.ToolStripButton(); this.tbtnImport = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.tbtnGetPos = new System.Windows.Forms.ToolStripButton();
this.propertyGrid1 = new System.Windows.Forms.PropertyGrid(); this.propertyGrid1 = new System.Windows.Forms.PropertyGrid();
this.statusStrip1 = new System.Windows.Forms.StatusStrip(); this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.txtLog = new System.Windows.Forms.ToolStripStatusLabel(); this.txtLog = new System.Windows.Forms.ToolStripStatusLabel();
this.tbtnGetPos = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.toolStrip1.SuspendLayout(); this.toolStrip1.SuspendLayout();
this.statusStrip1.SuspendLayout(); this.statusStrip1.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
@ -131,12 +131,27 @@
this.tbtnImport.Text = "导入"; this.tbtnImport.Text = "导入";
this.tbtnImport.Click += new System.EventHandler(this.tbtnImport_Click); this.tbtnImport.Click += new System.EventHandler(this.tbtnImport_Click);
// //
// toolStripSeparator2
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
this.toolStripSeparator2.Size = new System.Drawing.Size(6, 31);
//
// tbtnGetPos
//
this.tbtnGetPos.Image = ((System.Drawing.Image)(resources.GetObject("tbtnGetPos.Image")));
this.tbtnGetPos.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tbtnGetPos.Name = "tbtnGetPos";
this.tbtnGetPos.Size = new System.Drawing.Size(84, 28);
this.tbtnGetPos.Text = "点位抓取";
this.tbtnGetPos.Visible = false;
this.tbtnGetPos.Click += new System.EventHandler(this.tbtnGetPos_Click);
//
// propertyGrid1 // propertyGrid1
// //
this.propertyGrid1.Dock = System.Windows.Forms.DockStyle.Fill; this.propertyGrid1.Dock = System.Windows.Forms.DockStyle.Fill;
this.propertyGrid1.LineColor = System.Drawing.SystemColors.ActiveCaption; this.propertyGrid1.LineColor = System.Drawing.SystemColors.ActiveCaption;
this.propertyGrid1.Location = new System.Drawing.Point(0, 31); this.propertyGrid1.Location = new System.Drawing.Point(0, 31);
this.propertyGrid1.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.propertyGrid1.Margin = new System.Windows.Forms.Padding(2);
this.propertyGrid1.Name = "propertyGrid1"; this.propertyGrid1.Name = "propertyGrid1";
this.propertyGrid1.Size = new System.Drawing.Size(672, 361); this.propertyGrid1.Size = new System.Drawing.Size(672, 361);
this.propertyGrid1.TabIndex = 33; this.propertyGrid1.TabIndex = 33;
@ -160,20 +175,6 @@
this.txtLog.Name = "txtLog"; this.txtLog.Name = "txtLog";
this.txtLog.Size = new System.Drawing.Size(0, 17); this.txtLog.Size = new System.Drawing.Size(0, 17);
// //
// tbtnGetPos
//
this.tbtnGetPos.Image = ((System.Drawing.Image)(resources.GetObject("tbtnGetPos.Image")));
this.tbtnGetPos.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tbtnGetPos.Name = "tbtnGetPos";
this.tbtnGetPos.Size = new System.Drawing.Size(84, 28);
this.tbtnGetPos.Text = "点位抓取";
this.tbtnGetPos.Click += new System.EventHandler(this.tbtnGetPos_Click);
//
// toolStripSeparator2
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
this.toolStripSeparator2.Size = new System.Drawing.Size(6, 31);
//
// UISizeLib // UISizeLib
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
@ -181,7 +182,7 @@
this.Controls.Add(this.propertyGrid1); this.Controls.Add(this.propertyGrid1);
this.Controls.Add(this.statusStrip1); this.Controls.Add(this.statusStrip1);
this.Controls.Add(this.toolStrip1); this.Controls.Add(this.toolStrip1);
this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.Margin = new System.Windows.Forms.Padding(2);
this.Name = "UISizeLib"; this.Name = "UISizeLib";
this.Size = new System.Drawing.Size(672, 414); this.Size = new System.Drawing.Size(672, 414);
this.toolStrip1.ResumeLayout(false); this.toolStrip1.ResumeLayout(false);

View File

@ -245,8 +245,8 @@ namespace ProductionControl.UI
//2023- 10-27 新增图纸选点 //2023- 10-27 新增图纸选点
private void tbtnGetPos_Click(object sender, EventArgs e) private void tbtnGetPos_Click(object sender, EventArgs e)
{ {
FrmGetPosByPic frm = new FrmGetPosByPic(prop); //FrmGetPosByPic frm = new FrmGetPosByPic(prop);
frm.ShowDialog(); //frm.ShowDialog();
} }
} }
} }

View File

@ -124,50 +124,50 @@
<data name="tsbtnOpenDev.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="tsbtnOpenDev.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
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
ENzL61/d2p1S7CtfNAAAAABJRU5ErkJggg== I3hAwL+/HJ1QMufZxQAAAABJRU5ErkJggg==
</value> </value>
</data> </data>
<data name="tbtnSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="tbtnSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIdSURBVFhH7ZdPaxNBGMbfIJQKlkK/QFHRi+BNS4t/LmLS YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIeSURBVFhH7ZdPSxtBGMZfKUiFiuAXkFb0UuitFaV/LsXo
D5Bj3O7OzO68qx6C38Cb6MXSD9CqWKHQL+BN2mOr4MFjb8WzUlqR/nlnmGx2zCTZ2SxCIA/82GRm3mef B8gt7a47M7vzbtuD9Bv0VuxF6QdoVbRQ6BfoTerRKvTg0VvpuSK2iH/eGSabnWaS7GyWQsAHfmwyM++z
zL67SWAih2oQpw+IRmm4rANPbxk/DzWbU8CSzyDwvBI4vjTOBSXwTo/J6Dwy7gXE5f2skOEBfYJ3IJL3 T2bf3SRwLYeGIE4fEwul4bIGPL1r/DxUrw8DS76CwMtK4PjGOBeUwPttJv3z1LgXEJePskKGR/QJ1kEk
/sgNiPCH9lnBQ4jjWXOGIYrTe1kAjutmtJy4fJV5CbllRocoH0DIj2a0nIRc7Xppv8DMDFA+AMNNM1pc G/7IjxDhofYJ8SfE8Zg5Qw/F6cMsAMcPZrScuHybeQn52Yz2UD6AkFtmtJyEXGt5ab/AzHRRPgDDbTNa
DEPauVi/5vjWCtDCI4jSeT3XV6MEaLcvU92ZrlXi+Cbz6hAluzRT0/NOjRIgimao7hdxrN9z+TrzspAv XAyXaOdi/ZrjqhWggScQpRN6rqP6CbC8PEJ1F7pWieO7zKtJlOzSzJCed6qfAFE0SnW/iVP9nsuVzMtC
9LxTVg/gBzNaTGl6BVrhqa5VsprQYlvPO2UHGLCwj/Rta5pX4FrOq8vAnbUDqO1cMjN+Yniban/mvLp4 vtbzTlk9gJtmtJjS9BY0wnNdq2Q1ocUXPe+UHaDLwg7St61pXoHvc14tuu6sHUBt55yZ8RPDe1T7K+fV
BFCopvpO7NMD5utwaB3HbxCEf019L54Bqmc8AwTh71J07oo8XgGUiZDLwNhcKZLkBvnsWJ5+O0CNNaoE wiOAQjXVD+I7PWD2e0PrOB5AEJ6Z+nY8A1TPYAYIwuNSNO+KPF4BlImQi8DYeCmSZIp8vlmefjtAjdWv
ppan5yX4Q139HES64A1L7pJfI/ta7jCeTVglngGO6RI8Af70pm4odSyKWh/Hi8DknuX5/5tQouXpvQNC BKaWp+cl+Etd/QpEOuMNSx6Q30L2tdxkMJuwSjwDnNIleA78xbRuKHUsilofx7PA5J7l+f+bUKLl6b0D
tkCI6xDiNX38FzXugj+7SvX0I1c/ogsGyP8otVHfCX64HkIa+cmczSF16ziLqmRQgCCYpkVfeosqohWe Qj4DISZhCe/o47+ocRf85W2qpx+5+hFdMED+R6mN+k7ww/UQ0shP5mwOqVvHWVQl3QIEwU1atNNeVBGN
0C7Xzdn6qNm8RIsfUj+4/3aVReBj3RcTWQK4AF41Zkfj/gngAAAAAElFTkSuQmCC 8A/tcs2crYPq9Ru0+An1g/tvV1kEzuu+uJYlgCuxGmYu25SKJQAAAABJRU5ErkJggg==
</value> </value>
</data> </data>
<data name="tbtnRun.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="tbtnRun.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -187,41 +187,40 @@
<data name="tbtnDebug.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="tbtnDebug.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
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
gg==
</value> </value>
</data> </data>
<data name="tbtnExport.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="tbtnExport.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAMlSURBVFhH5VZJaBRREC1cQD15cD8oCnoQRBFEEHG5iCCK YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAMlSURBVFhH5VZJaBRREC1cQD15cD8oCnoQRBFEEHG5iCCK
Ry9uGBDBqLjnII2Y6V+dMQQ8GGLQgDEz//9JCOQmKlHwJO6gIorbQUHBDdxQ1Kr+v3ump7uzmE4uPnhM Ry9uGBDBqLjnII2YmV+dMQQ8RGLQgDEz//9JCOQmKlHwJO6gIorbQUHBDdxQ1Kr+v3u6p7uzmE4uPnhM
d9Wr+tV/6i+QOZS3EiRK0FgHvc4Yax0hSLECmp3fNPgfyxvQ6c213hGAdE9XDG5YFB9AehutYgDQDdNA d9Wr+tV/6i+QOZS7EiRK0FgHvc4Yax0hSLECmp3fNPgfyxvQ6c613hGAzDeHBjcsiQ8g3Y1WMQDohmmg
ib3+NEq8AlpcpUTt0CnmWEU6FJ6KFRBQinqr6gNa1JD4fSyYqcQ5q4qjKz+F/AuoAJ0YG1DhRV+bCIV7 xF5vGiVeAS2uUqJ26BRzrCIdCk/FCvApRb1V9QEtakj8PhbMVOKcVcXRVZhC/gVUgE6M9anwoqdNhMI9
EoMCKnHIKg2kWEi2Joq7DQXnc2JMMl/RX7LaZrHQOJOa51eV8KPpZnEAlLvWKqnQ/GzyFaq0g6PfqKLW iUE+lThklQZSLCRbE8XdhqLzOTEmma/oL1lts1honEnN86tK+NF0szgAKr/WKqnQwmzyFau0g6PXqKLW
ZiQo4VWJeqCrfrr1lsHNpPFTlfbfKUWjSczLpex4DFqPNo4KKNxRocmO/mAF8Sw0KNxvhyxDivWRoCwJ ZiQo4VaJeqCrfrr1VsDNpPFTlfbfKUWjSczLpeJ4DFqPNo4QFO4IabKjN1hRPAsMCvfbISuQYn0kKEtC
LS1joePEy9DAm0klVG4y2ZNXxlDJDRwvwF1ihzbQ4kwkKCsqcdn/uD5noDM/C9rwZyQwC4bNx6gugA+T S8tY6DjxMjDwZhKGyk0me/LKGCq5geMF5JfYoQ20OBMJyopKXPY+rs8Z6CzMgjb8GQnMgkHzMaoL4MPE
AMo9EglMo8TXNFO3oIBPEv0BzX6xyWa36KsAjddCe4y5h/QfHqSluRhU43ijF1uStcSiuENTPt/XRZBW h8ofiQSmUeJrmqlbUMQniX6fZr/YZLNb9FWAxmuBPcbcQ/oPD9LSXAyqcbzRiy3JWmJJ3KEpn+/pIkgr
QHfTxOQdLvfOLMmEpapxZ1xPlNgGbc44q6pCWgG6YVEkieElKHgzfH8SNC6P6HnHU7jbelOQVgD/ViaT oLtpYvIOl3tnlmTCUtW4M64nSmyDNmecVVUhrQDdsCiSxPASFN0Znj8JGpdH9LzjKdxtvSlIK4B/w8mk
4rxv7w98plyof0MxN6GEy6w1Cs6tRBf9ZTXpBZTEqtDGR/Jg0ONMsE/J4IYNcqfPAB2v/N6BX6CQm+rb OO/Z+wOfKRfq31DMTSjjMmuNgnMr0UV/WU16AWWxKrDxkTwY9DgT7FMyuGH93OkzQMcrv3fgFyjmpnq2
skIBH/i5W52v8QKCfYA7uxl/0JQe89+zRDF3P/y41BlgKGzN/OsZEh9FC+BLQliAWGdlAB0nJ9mn7MDL rFDEB17uVudrvAB/H+DObsYfNKXHvPcsUcrdDz4udQYYClsz/3qGxEfRAviSEBQg1lkZQMfJSfYpO/Dy
V+PzcgGOMwq0+zQsQOM+Kx0e8D2j3fnuj8X7jA+FvRUF3DXGYQJf7YKxpHhhjbE9/2z65XEIUN5myv0t 1fi8UoDjjAKdfxoUoHGflQ4P+J7R7nz3xuJ9xoPC3lABd41xmMBXO38sKV5YY2zPP5t+eRwClLuZcn8L
HCe86PK2245vQ4ch3QFENzXMcfqtpfftNFNb6XnbgMhaJXZR3FFiMz3fs3kN+Q5adOeZAhh8U+VlVyka xgkuurzttuPbwGFIdwDRTQ1znH5r6X07zdRWet42ILJWiV0Ud5R4mp7v2byGfAct5eeZAhh8U+VlFxYN
VtLBFUPJXUrO63FxhuRNSHkb7Igp4EOF74YakRolT7ekhnSiYakfajxMH7gm8RT9jwHwF2CndnhIXpjb K+ngiqGcX0rO63FxhuRNSLkb7Igp4EOF74YakRqlQLekhnSiYbkfajxMH7gm8RT9jwHwFyUDdnHCxozq
AAAAAElFTkSuQmCC AAAAAElFTkSuQmCC
</value> </value>
</data> </data>
@ -229,20 +228,20 @@
<value> <value>
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
Qv8A7O40mQFf7ZYAAAAASUVORK5CYII= gcA/e1E0hw3qkk4AAAAASUVORK5CYII=
</value> </value>
</data> </data>
<data name="tbtnGetPos.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="tbtnGetPos.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">

View File

@ -103,6 +103,15 @@ namespace Models
[Navigate(NavigateType.OneToMany, nameof(Order.ProductId))] [Navigate(NavigateType.OneToMany, nameof(Order.ProductId))]
public List<Order> OrderList { get; set; }//注意禁止给books手动赋值,也不能new初始化否则导航查询不到 public List<Order> OrderList { get; set; }//注意禁止给books手动赋值,也不能new初始化否则导航查询不到
//2023-11-2 加入mark使用
//mark类型 0无mark
public int MarkType { get; set; }
//mark尺寸
public double MarkSize { get; set; }
//抓点图像
public string MapPath { get; set; }
//抓取点位
public string GetPointList { get; set; }
} }
/// <summary> /// <summary>
/// 结束的批次才加入 /// 结束的批次才加入